1. Introducción
SQLite es uno de esos gestores de Base de Datos que te puede sacar de apuro en cualquier momento, lo bueno de esta herramienta es que la base de datos se almacena en un fichero del disco duro como en el caso de Microsoft Access, solo que SQLite es software libre.
Uno de los problemas principales con este pequeño gestor de base de datos es que no tiene una herramienta oficial para poder generar un modelo Entidad/Relación que permita exportar dicho modelo hacia el gestor SQLite, en este pequeño tutorial vamos ver como crear un diagrama entidad relación y exportarlo a dicho gestor.
1.1. Contenidos
- Fundamentos del modelado entidad relación.
- Creación del modelo Entidad Relación.
- Exportar el modelo a SQLite
2. Requisitos
- KataKuntur Data Base Modeller en su versión mínima 2.0.0.1, lo puedes descargar de aquí(es gratis).
3. Fundamentos del modelo Entidad/Relación
El modelamiento de base de datos es muy variados, siendo el estándar más conocido el IDEF1X, pero no es el único modelo, aunque cada modelador de bases de datos utiliza su propia notación a conveniencia, y esta no es la excepción en la herramienta Kata Kuntur. Kata Kuntur usa modelado entidad relación muy diferente a los demas diagramadores, pero si estas acostumbrado a usar otros modeladores de bases de datos, usar Kata Kuntur no será dificil. Aquí explicaré algunos de los conceptos necesarios de aprender antes de usar Kata Kuntur.
3.1. Entidad
Una entidad es la representación de un objeto, clase o sustantitivo del cual se desea agrupar datos. Una entidad es representada en forma de un rectángulo en el cual se ubica un texto con el nombre de dicha entidad, en la siguiente imagen podemos ver un ejemplo:
3.1.1. Atributos
Los atributos son la forma en como los datos de una entidad son organizados, un atibuto puede contener diferentes valores. Los atributos tienen características que limitan los datos de los atributos, las posibles características de un atributo son:
Nombre : Define un identificador textual para el atributo, el nombre del atributo debe estar relacionado con los datos que se van a almacenar.
Clave de Unicidad: determina si el posible dato del atributo puede ser tomado como identificador único de la entidad, en base de datos se le conoce como llave primaria(primary key). Para ser identificador único se deben cumplir 2 requisitos, los posibles valores deben ser únicos por registro y la longitud debe ser limitada. Cuando un atributo es clave de unicidad se adiciona un "#"(sharp, numeral, almohadilla) al nombre del atributo.
Llave única: determina si los valores posibles para el atributo no se pueden repetir por cada registro.
Nulabilidad: determina si es obligatorio la asignación de un valor para un registro. Para representar la nulabilidad se designa un "*"(asterisco) cuando el valor para el atrbuto es obligatorio, en caso de no ser obligatorio se representa con "o"(círculo)
Tipo de dato: determina el tipo de dato asignado para el atributo. Se podrá seleccionar de una lista el tipo de dato sólo cuando se haya seleccionado un gestor de base de datos al crear el diagrama. La visualización del tipo de dato sólo está disponible al momento de cambiar el modo de visualización de lógico a físico.
Descripción: campo que permite colocar información adicional al atributo, es útil para un diccionario de datos. La descripcíon no es representado en el diagrama.
En la siguiente imagen podemos ver la entidad cliente con algunos atributos designados:
3.2. Relación
Las relaciones determinan el tipo de asociación existenten entre entidades, y la manera en cómo se relacionan estas entidades. A diferencia de muchos diagramadores de base de datos, en Kata Kuntur las relaciones están divididas en 2 segmentos los caules corresponden a cada entidad relacionada. Cada segmento posee un grado, opcionalidad y una etiqueta independiente
3.2.1. Grado
El grado es un atributo de una relación que determina la cantidad o nivel de la relación, el grado siempre está conectado a la entidad. Dentro de los posibles valores del grado tenemos:
- Uno o más(identificativo),
- Uno o más,
- Uno y solo un,
Ejemplo de grados:
3.2.2. Opcionalidad
- Puede, determina que la relación se da de manera opcional, pudiendo cumplirse o no. La representación de esta opcionalidad se hace con líneas punteadas.
- Debe, determina que la relación se da de manera obligatoria, debe cumplirse siemre. La representación de esta opcionalidad se realiza con una línea contínua.
Ejemplo de opcionalidad:
3.2.3. Etiqueta
Las etiquetas permiten identificar la relación y adicionar información acerca de como esta se realiza. Gracias a la etiqueta se puede definir de manera completa entre grado, opcionalidad y entidad.
3.2.3. Modo de lectura
Cada uno de los atributos tienen una finalidad conjunta, permiten determinar la relación existente entre las relaciones, para ver como leer una relación veamos la siguiente imagen:
Podemos observar una relación existente entre CLIENTE y VENTA, la relación se lee desde ambas entiades. Para leer desde una entidad se toman la opcionaliad y la etiqueta relacionada de la entidad que se desea leer y se toma el grado opuesto.
Ejemplo:
Desde CLIENTE:
CADA CLIENTE puede realizar una o más VENTAS.
Desde VENTA:
CADA VENTA debe pertenecer a un y sólo un CLIENTE.
3.3. Llaves Foráneas
Las llaves foráneas son atributos especiales que se crean de manera automática al momento de crear relaciones entre entidades. La llave foránea se adiciona como un atributo hacia la entidad que recibe la relación(recibe el grado uno o más), de esta manera la entidad acumula tantas llaves foráneas relacionadas a otras entidades como relaciones tenga. Las llaves foráneas generadas pueden ser visualizadas en el modo físico del diagrama, adicionalmente, no se permite su edición.
3.3.1. Identificativa
Cuando una llave foránea es identificativa, esta, forma parte de la clave de unicidad de la entidad que recibe la relación. Para crear una llave foránea identificativa hay que establecer el grado de la relación en la entidad correcta a uno o más(identificativo).
En la imagen superior podemos visualizar la llave foránea generáda en la entidad DETALLE a partir de la relación con la entidad VENTA, el nombre de la llave foránea generada en DETALLE lleva el nombre de la llave primaria de VENTA adicionalmente el nombre de la entidad, resultando como nombre venta_cod_venta. Además podemos observar el identificador de clave de unicidad "#"(almohadilla, sharp) como parte de la especificación de la llave foránea, esto indica que venta_cod_venta es parte de la clave de unicidad de la entidad DETALLE.
3.3.2. No Identificativa
Cuando una llave foránea es no identificativa solo formará parte de los atributos de la entidad que recibe la relación. Para crear una llave foránea no identificativa hay que establecer el grado de la relación en la entidad correcta a uno o más, este grado se establece por defecto al crear la relación.
En la imagen superior podemos observar una relación entre la entidades CLIENTE y VENTA lo cual a originado que a la entidad VENTA se le cree una llave foránea, el caso es similar que en las llaves foráneas identificativas, pero, aquí la llave generada no cuenta con el identificador de unicidad "#"(almohadilla, sharp), lo que hace que esta llave foránea solo se comporte como un atributo común adicional.
4. Creación del modelo Entidad/Relación
4.1. Creando un diagrama
Una vez descargado la herramienta Kata Kuntur, procedemos a instalarla. una vez instalado damos doble clic al acceso directo en el escritorio.
Ahora nos dirigimos al menú Archivo->Nuevo diagrama:
En la sección de Nombre del proyecto colocaremos una descripción breve para nuestro diagrama, en Gestor DBMS debemos seleccionar el gestor de base de datos que deseemos usar, puedes escoger entre SQLITE, SQLServer, PostgreSQL o MySQL, cabe mencionar que para poder seleccionar un tipo de dato para nuestros atributos se debe seleccionar un Gestor DBMS, el campo ORM Model lo dejaremos en blanco y aceptamos. Esto creará un nuevo diagrama en blanco, ahora procedemos a agregar entidades.
4.2. Edición de entidades y atributos
Para agregar una entidad nos dirigimos al menú Diagrama->Agregar entidad o simplemente presioamos la tecla T, ahora simplemente damos clic en el área del diagrama donde desemos crear nuestra entidad:
Para poder editar atributos simplemente damos doble clic a la entidad que deseamos editar, nos aparecerá la ventana de edición de atributos:
Simplemente agreamos y modificamos los atributos para cada entidad. Al final el área de diagramas debe quedarte así:
4.3. Edición de relaciones
Una vez que hemos creado las entidades ahora pasaremos a crear las relaciones, para crear una relación nos dirigimos al menú Diagrama->Agregar relación o simplemente presionamos la tecla R, finalmente, le damos clic a una de las entidades que vamos a relacionar, y sin soltar el botón del mouse, lo dirigimos hacia la otra entidad, mientras se realiza esta operación aparecerá una línea provicional. Para que la relación se cree, la línea provicional debe estar uniendo las entidades que se desea relacionar.
Una vez que la linea provicional une a las dos entidades soltamos el botón del mouse, e inmediatamente se creará una relación de uno a muchos.
Para editar una relación le daremos doble clic a la relación, lo cual hará aparecer la ventana de edición de relaciones:
La ventana de edición de relaciones está hecha para poder editar las relaciones según el modo de lectura de la relacion. Finalmente creamos y editamos relaciones hasta que el diagrama nos quede de la siguiente manera:
4.4. Modo Lógico - Físico
En sí, el modo físico o lógico no realiza ningún cambio al diagrama, solamente pertime visualizar el diagrama desde vistas diferentes. Para cambiar el modo simplemente seleccionamos el modo de visualización del modificador ubicado en la barra de herramientas:
4.4.1. Modo lógico
Este es el modo predeterminado del diagrama, es la vista mínima del diagrama:
- Se visualizan las entidades y relaciones.
- Se visualiza los nombres de atributos.
- Se visualiza la clave de unicidad de los atributos.
- Se visualiza la nulabilidad de los atributos.
4.4.2. Modo físico
Es una vista más detallada del diagrama, además de mostrar lo mismo que en la vista lógica se muestra:
- Tipo de dato de los atributos.
- Llaves foráneas(de otro color)
5. Exportar el modelo a SQLite
Para exportar el diagrama creado con Kata Kuntur debimos haber seleccionado el Gestor DBMS en la ventana de nuevo diagrama, en caso de no haberlo hecho no dirigimos a Editar->Propiedades de diagrama y seleccionamos el gestor de base de datos SQLite. Una vez determinado que hemos seleccionado el gestor DBMS y además hemos asignado los tipos de datos para cada atributo nos dirigimos al menú Archivo->Exportar a DBMS, esto creará una nueva pestaña con la configuración para exportar un diagrama. Como las base de datos en SQLite se trabajan como archivos, parecido a access, vamos a darle clic en el botón especificar base de datos(marcado de color anaranjado en la siguiente imagen), en el diálogo de guardar que va a aparecer escribimos un nombre de base de datos, en este caso mydb, y damos clic en guardar:
Finalmente damos clic en el bóton exportar a base de datos para que inicie la exportación:
- Botón para exportar al gestor de base de datos.
- Área de mensajes del gestor de base de datos.
6. Videos relacionados
Introducción al modelamiento con Kata Kuntur
Exportando a un gestor de Base de Datos con Kata Kuntur
7. Bibliografía
IDEF1X -> http://www.idef.com/IDEF1x.htm
Guia de Usuario | Kata Kuntur -> http://katakuntur.jeanmazuelos.com/content/guia-de-usuario