El objetivo del diseño lógico es convertir los esquemas conceptuales locales en un esquema lógico global que se ajuste al modelo de SMBD sobre el que se vaya a implementar el sistema. Mientras que el objetivo fundamental del diseño conceptual es la compleción y expresividad de los esquemas conceptuales locales, el objetivo del diseño lógico es obtener una representación que use, del modo más eficiente posible, los recursos que el modelo de SMBD posee para estructurar los datos y para modelar las restricciones.
Los modelos de bases de datos más extendidos son el modelo relacional, el modelo de red y el modelo jerárquico. El modelo orientado a objetos es también muy popular, pero no existe un modelo estándar orientado a objetos.
El modelo relacional (y los modelos previos) carecen de ciertos rasgos de abstracción que se usan en los modelos conceptuales. Por lo tanto, un primer paso en la fase del diseño lógico consistirá en la conversión de esos mecanismos de representación de alto nivel en términos de las estructuras de bajo nivel disponibles en el modelo relacional
"Su objetivo es transformar el esquema conceptual obtenido en la etapa anterior, adaptándolo al modelo de datos en el que se apoya el SMBD (modelo relacional en nuestro caso) que se va a utilizar." (Miguel y Piattini, 1999).
El modelo entidad-relación es sencillo, pero a la vez suficientemente potente para servir de intermediario entre el usuario y el administrador de datos. Permite abstraer lo necesario de la realidad que se implantará en la computadora. Ahora hay que transformar este esquema conceptual a un modelo más cercano al SMBD a utilizar. Como se mencionó anteriormente, éste es el trabajo del diseño lógico, el cual se ayuda de un modelo de datos para generar el esquema lógico: el modelo relacional.
El modelo relacional representa la segunda generación de los SMBD. En él, todos los datos están estructurados a nivel lógico como tablas formadas por filas y columnas, aunque a nivel físico pueden tener una estructura completamente distinta. Un punto fuerte del modelo relacional es la sencillez de su estructura lógica, pero detrás de esa simple estructura hay un fundamento teórico importante del que carecen los SMBD de la primera generación, lo que constituye otro punto a su favor.
"El modelo relacional fue presentado por E. F. Codd en 1970 en su célebre artículo de ACM titulado 'Un modelo de datos relacional para grandes bancos de datos compartidos', constituyó un hito en la historia de las bases de datos." (Miguel, A. et al., 2000).
Transcurridas más de tres décadas desde la publicación del artículo de Codd, los sistemas relacionales dominan el mecado y, según un estudio de IDC (IDC, 1999 citado en Miguel, A. et al., 2000), 90% de las ventas de SMBD son de sistemas relacionales. Es por ello que en este curso centraremos el modelo lógico en el modelo relacional de Codd.
Relación
Una relación es una tabla con columnas y filas que sirve para representar tanto los objetos como las asociaciones entre ellos (relaciones del modelo entidad-relación) (Marqués, 2001).
Un SMBD sólo necesita que el usuario pueda percibir la base de datos como un conjunto de tablas. Esta percepción sólo se aplica a la estructura lógica de la base de datos (en el nivel externo y conceptual de la arquitectura de tres niveles ANSI-SPARC). No se aplica a la estructura física de la base de datos, que se puede implementar con distintas estructuras de almacenamiento. La Figura 1 muestra gráficamente una relación.
Atributo
Un atributo es el nombre de una columna de una relación y representan a los atributos del modelo entidad-relación. En el modelo relacional, las relaciones se utilizan para almacenar información sobre los objetos que se representan en la base de datos. Una relación se representa gráficamente como una tabla bidimensional en la que las filas corresponden a registros individuales y las columnas corresponden a los campos o atributos de esos registros. Los atributos pueden aparecer en la relación en cualquier orden (Marqués, 2001).
Esquema de una base de datos relacional
Las relaciones y sus atributos se representan esquematicamente colocando el nombre de la relación en mayúsculas, seguido de los atributos entre paréntesis. Y para representar una relación en un instante determinado con datos (instancia de una relación), se utiliza una tabla donde la columnas son los atributos y las filas las instancias de esa relación. Lo anterior se muestra en la Figura 1.
Figura 1. Ejemplo de representación de una relación.
Dominio
El concepto de dominio es importante porque permite que el usuario defina, en un lugar común, el significado y la fuente de los valores que los atributos pueden tomar. Esto hace que haya más información disponible para el sistema cuando éste va a ejecutar una operación relacional, de modo que las operaciones que son semánticamente incorrectas se pueden evitar (Marqués, 2001).
Tupla
Una tupla es una fila de una relación. Los elementos de una relación son las tuplas o filas de la tabla. En la relación CURSO de la Figura 1, cada tupla tiene cuatro valores, uno para cada atributo. Las tuplas de una relación no siguen ningún orden (Marqués, 2001).
Cardinalidad
La cardinalidad de una relación es el número de tuplas que contiene. Ya que en las relaciones se van insertando y borrando tuplas a menudo, la cardinalidad de las mismas varía constantemente (Marqués, 2001).
Base de datos relacional
Una base de datos relacional es un conjunto de relaciones normalizadas (Marqués, 2001).
Propiedades de las relaciones
Las relaciones tienen las siguientes características (Marqués, 2001):
Ya que en una relación no hay tuplas repetidas, éstas se pueden distinguir unas de otras, es decir, se pueden identificar de modo único. La forma de identificarlas es mediante los valores de sus atributos.
Una superclave es un atributo o un conjunto de atributos que identifican de modo único las tuplas de una relación (Marqués, 2001).
Una clave candidata es una superclave en la que ninguno de sus subconjuntos es una superclave de la relación. El atributo o conjunto de atributos K de la relación R es una clave candidata para R si y sólo si satisface las siguientes propiedades (Marqués, 2001):
Cuando una clave candidata está formada por más de un atributo, se dice que es una clave compuesta. Una relación puede tener varias claves candidatas; el único modo de identificar las claves candidatas es conociendo el significado real de los atributos, ya que esto permite saber si es posible que aparezcan duplicados. Sólo usando esta información semántica se puede saber con certeza si un conjunto de atributos forman una clave candidata.
La clave primaria de un relación es aquella clave candidata que se escoge para identificar sus tuplas de modo único. Ya que una relación no tiene tuplas duplicadas, siempre hay una clave candidata y, por lo tanto, la relación siempre tiene clave primaria. En el peor caso, la clave primaria estará formada por todos los atributos de la relación, pero normalmente habrá un pequeño subconjunto de los atributos que haga esta función.
Las claves candidatas que no son escogidas como clave primaria son denominadas claves alternativas. Una clave ajena es un atributo o un conjunto de atributos de una relación cuyos valores coinciden con los valores de la clave primaria de alguna otra relación (puede ser la misma). Las claves ajenas representan relaciones entre datos.
Transformación del esquema conceptual al lógico
Las tres reglas básicas para convertir un esquema en el modelo entidad-relación al relacional son las siguientes (Miguel, A. et al., 2000):
Debido a que el modelo relacional no distingue entre entidades y relaciones, ambos conceptos deben representarse mediante relaciones. Esto implica una pérdida de semántica respecto del esquema entidad-relación, ya que las relaciones N:M no se distinguen de las entidades y las 1:N se representan mediante una propagación de clave, desapareciendo incluso el nombre de la relación.
En el ejemplo de la Figura 2 puede observarse que las tres entidades DEPARTAMENTO, PROFESOR y CURSO se han transformado en otras tantas relaciones. La relación N:M Imparte da lugar a una nueva relación cuya clave es la concatenación de las claves primarias de las entidades que participan en ella (Cod_prof de PROFESOR y Cod_curso de CURSO), siendo además estas claves ajenas de Imparte, que referencian a las tablas PROFESOR y CURSO, respectivamente; la relación 1:N Pertenece se ha transformado mediante el mecanismo de propagación de clave, por el que se ha incluido en la tabla PROFESOR el atributo clave de la entidad DEPARTAMENTO (Nombre_dep), que constituye, por tanto, clave ajena de la relación PROFESOR referenciando a la tabla DEPARTAMENTO.
Figura 2. Ejemplo de paso del modelo entidad-relación al modelo relacional.