En las siguientes páginas realizaremos un análisis de los principales conceptos relacionados con Bases de Datos. Comenzaremos con un breve análisis del Modelo Entidad Relación (MER) para continuar con las dependencias funcionales y su aplicación para la normalización. Finalmente veremos una introducción al manejo de SQL para la consulta a la base de datos.
Conceptos Previos
Antes de comenzar con el análisis de los contenidos antes mencionados es importante definir una serie de conceptos que están involucrados en bases de datos y que son los siguientes:
-
Datos Persistentes: Los datos persistentes son aquellos que permanecen en el tiempo. Almacenados en una base de datos se dice que al ser aceptados por el DBMS sólo pueden ser removidos de la base de datos por una solicitud explícita al DBMS. Las características de un dato persistente son: No es efímero, es estructurado, posee sentido semántico y tiene integridad.
-
Base de datos: Es un conjunto de datos persistentes que es utilizado por los sistemas de aplicación de alguna empresa dada.
-
Atributo: Se refiere a una columna de una tabla (el que conocíamos como campo en un archivo).
-
Tupla: Corresponde a una fila de una tabla (el que conocíamos como registro en un archivo).
-
Cardinalidad: Es el número de tuplas que contiene una tabla.
-
Grado: Es el número de atributos que posee una tabla.
-
Dominio: No es más que un tipo de dato, que puede ser definido por el sistema, como Integer o char o, uno más complejo definido por el usuario. La importancia de los dominios radica en que cuando se desea realizar una relación entre dos o más tablas, las claves por las que se relacionan deben pertenecer forzosamente al mismo dominio.
-
Tabla o Relación: Es un conjunto de tuplas que han de ser por toda fuerza distintas. Esto también implica que el orden de las tuplas es irrelevante. El conjunto vacío es una relación particular: la relación nula o vacía.
-
Clave Primaria: Es aquél atributo o conjunto de atributos que identifica en forma única a una tupla de otra.
-
Clave Foránea: Es aquella clave que permite relacionar dos o más tablas, donde en una de las tablas debe ser necesariamente clave primaria.
En toda relación debe existir una clave primaria que identifique únicamente a cada tupla, pero puede como no puede existir una clave foránea.
- Grado = 4
- Cardinalidad = 7
- Clave Primaria = RUT
- Atributos = RUT, Nombre, Apellido, Nota
- Tuplas = Cada fila.
-
Sistema Gestor de Bases de Datos: Es un conjunto de programas que se encargan de manejar la creación y todos los accesos a las bases de datos. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta.
Una de las ventajas del DBMS es que puede ser invocado desde programas de aplicación que pertenecen a Sistemas Transaccionales escritos en algún lenguaje de alto nivel, para la creación o actualización de las bases de datos, o bien para efectos de consulta a través de lenguajes propios que tienen las bases de datos o lenguajes de cuarta generación.
Objetivos en el uso de un sistema de gestión de base de datos:
- Oportunidad, asociado a la eficiencia y eficacia.
- Disponibilidad, permitiendo la accesibilidad de datos
- Consistencias (oportunidad + disponibilidad), como calidad de datos
- Evolución, para adaptarse al entorno
- Integridad, en el nivel de los datos así como el sistema.
Objetivos del sistema de gestión de base de datos que podemos identificar son:
- Independencia de datos
- Accesibilidad limitada
- Datos al día y sin redundancias
- Consistencia
- Interfaz única
- Entrada directa a los datos
- Recuperación por diferentes accesos
- Función completa de interrogantes
- Estandarización
- Seguridad
-
Tipos de Modelos de Datos: En la actualidad existen fundamentalmente tres alternativas para diseñar bases de datos: el modelo jerárquico, el modelo de red y el modelo relacional.
-
El modelo jerárquico: Puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y relaciones de uno a muchos.
-
El modelo de red: Este modelo permite la representación de muchos a muchos, de tal forma que cualquier registro dentro de la base de datos puede tener varias ocurrencias superiores a él. El modelo de red evita la redundancia en la información a través de la incorporación de un tipo de registro denominado el conector.
-
El Modelo relacional: Es el modelo que se está empleando con mayor frecuencia en el modelamiento de bases de datos en la actualidad debido a las ventajas que ofrece sobre los dos modelos anteriores, entre ellas, el entendimiento más rápido por parte de los usuarios que no tienen conocimientos profundos sobre sistemas de bases de datos. Consiste principalmente en una combinación de los dos tipos de modelos anteriores, entregando las herramientas para las relaciones uno a uno, uno a muchos y muchos a muchos entre otros.
El Modelo Entidad Relación
El propósito de un Modelo de Entidad Relación (MER) es mostrar las entidades y la forma en que éstas se relacionan unas con otras. En otras palabras, el MER es la representación conceptual de una situación real, a través de sus objetos de datos y relaciones entre ellos.
En la construcción de un MER se involucran una serie de pasos como la identificación de las entidades, la identificación de la relaciones que existen entre las entidades y la identificación de la cardinalidad de cada relación.
El primer paso implica la identificación de las entidades, para ello nos podemos preguntar ¿cuáles son los entes acerca de los cuales se desea almacenar información?. Por ejemplo, en el caso de un Sistema de Atención Médico, la respuesta a la pregunta anterior podría ser: PACIENTE, MEDICO, HORA DE ATENCION, BOX MEDICO, RESERVA HORA, , etc.. Es costumbre denominar a las entidades con nombres en singular, por ejemplo, PACIENTE en lugar de PACIENTES, esto para luego poder identificar en forma mucho más fácil la cardinalidad que hay en las relaciones entre las entidades.
Luego de tener identificadas las entidades, se crea una tabla (o relación) por cada una, indicándose el nombre en la parte superior de ésta y los campos luego, como se muestra en la siguiente figura:
Por convención, el nombre de la entidad estará escrito en singular y letras mayúsculas. Los nombres de los atributos los escribiremos con letras minúsculas y la clave primaria, sea simple o compuesta, deberá estar subrayada.
Para la identificación de las relaciones y cardinalidad utilizaremos la siguiente simbología entre las muchas que existen:
-
Cero o uno:
-
Uno:
-
Cero o Muchos:
-
Uno o Muchos:
-
Relación:
EL paso siguiente es preguntarse para cada par de entidades ¿cuál es la relación (si es que existe) entre ellas? Por ejemplo, se sabe que (de nuestro ejemplo) un paciente puede tener varias horas de atención, pero una hora de atención sólo puede estar relacionada con un solo paciente. De este ejemplo podemos desprender la relación “uno es a muchos” que representamos en la siguiente figura.
Cómo podemos apreciar, la cardinalidad “uno a muchos” se ve reflejada poniendo una pata de gallo adosada a la tabla cuyas tuplas se repetirán y en la otra una línea pequeña perpendicular.
Al considerar las tablas (o entidades) PACIENTE y DIAGNOSTICO podemos encontrarnos con que un paciente puede tener varios diagnósticos y un diagnóstico pertenece a un único paciente.