You are on page 1of 27

Programacin de Base de datos I

Ing. Aaron Reaos

Modelo Relacional
En el captulo Anterior se mencionaron 3 tipos de modelados: Conceptual, lgico y fsico. El modelo E-R se considera un modelo conceptual ya que permite ver con claridad la informacin utilizada en algn problema o negocio.

Modelo Relacional
Ahora nos concentraremos en desarrollar un buen modelo Lgico que se conoce como Esquema de la base de datos (Database Schema). A partir del cual se podr realizar el modelado fsico en el DBMS. Es importante mencionar que es un paso necesario, no se puede partir de un modelo conceptual para realizar un modelo fsico.

Porqu? Modelo Relacional


Puede resultar confuso el concepto de modelo entidad-relacin vs modelo relacional, quizs por el parecido en sus palabras. El objetivo del modelo relacional es crear un esquema(schema)- El cual consiste en un conjunto de tablas que representan relaciones, relaciones entre los datos.

Porqu? Modelo Relacional


Las tablas, pueden ser construidas de diversas maneras: Creando un conjunto de tablas iniciales y aplicar normalizacin hasta conseguir el esquema ms ptimo. Convertir el diagrama E-R a tablas y posteriormente aplicar tambin operaciones de normalizacin hasta conseguir el esquema ptimo.

Porqu? Modelo Relacional


La primera tcnica fue de las primeras en existir y, como es de suponerse, la segunda al ser ms reciente es mucho ms conveniente en varios aspectos: El partir de un diagrama visual es muy til para apreciar los detalles, de ah que se llama modelo conceptual. El crear las tablas iniciales es mucho ms simple a travs de las reglas de conversin.

Porqu? Modelo Relacional


Se podra pensar que es lo mismo porque finalmente hay que normalizar las tablas de todas formas, pero la ventaja de partir del modelo E-R es que la normalizacin es mnima por lo general. Aun cuando se normalice de manera deficiente, se garantiza un esquema aceptable, en la primer tcnica no es as.

Conceptos Bsicos
Tablas: El modelo relacional proporciona una manera simple de representar los datos: un tabla bidimensional llamada relacin.

Conceptos Bsicos
Atributos: Son las columnas de una relacin y describen caractersticas particulares de ella. Esquemas: Es el nombre que se le da a una relacin y el conjunto de atributos en ella. Pelculas (ttulo, ao, duracin, tipo) En un modelo relacin, un diseo consiste de uno o ms esquemas, a este conjunto se le conoce como esquema relacional de base de datos (relational database schema) o simplemente esquema de base de datos (database schema).

Conceptos Bsicos
Tuplas: Cada uno de los renglones en una relacin conteniendo valores para cada uno de los atributos (Star Wars, 1997,124,color) Dominios: describe un conjunto de posibles valores para cierto atributo. Como un dominio restringe los valores del atributo, puede ser considerado como una restriccin. Distintos tipos de dominios son: enteros, cadenas de texto, fecha, no procedurales etc.

Conversin de un Modelo E-R a un esquema de base de datos


Un modelo es una representacin visual que grficamente nos da una perspectiva de como se encuentran los datos involucrados en un proyecto u organizacin.
Pero no nos presenta propiamente una instancia de los datos, un ejemplo que muestre con claridad algunos datos de muestra y como se relacionan en realidad.

Por eso es conveniente crear un esquema, el cual consiste de tablas las cuales en sus renglones(tuplas) contiene instancias de los datos.

Conversin a tablas desde un modelo con relaciones (1-1,1-m,m-m)


Se comienza con un modelo E-R Porque es ms fcil de disear Tiene dos conceptos: entidad y relacin
Reglas de Conversin: 1. Cada entidad se transforma en una tabla con los mismos atributos. 2. Se agregan claves donde sea necesario 3. Cada relacin se transforma en una tabla en que los atributos son las claves de cada entidad participante

Reglas de Conversin:
Cardinalidad 1:1 Si una de las entidades posee cardinalidad (0,1) y la otra (1,1), conviene propagar la clave de la entidad con cardinalidad (1,1) a la tabla resultante de la entidad con cardinalidad (0,1). Si ambas entidades poseen cardinalidades (1,1) se puede propagar la clave de cualquiera de ellas a la tabla resultante de la otra.

Reglas de Conversin:
relacin 1:1
En el siguiente modelo entidad-relacin un equipo de ftbol tiene a un nico presidente y un presidente preside a un nico club de ftbol. En este ejemplo, tal y como dicen las reglas, podemos propagar la clave de cualquier tabla a la tabla resultante de la otra. Es decir, tenemos dos opciones, o mover la clave de PRESIDENTE a EQUIPO o mover la clave de EQUIPO a PRESIDENTE. El modelo relacional podra quedar de cualquiera de las dos formas siguientes: EQUIPO(cdigo,nombre,ao_fundacin) PRESIDENTE(dni,nombre,cdigo_equipo) EQUIPO(cdigo,nombre,ao_fundacin,dni_presidente) PRESIDENTE(dni,nombre)

Reglas de Conversin:

relacin N:M Las relaciones N:M se transforman en una nueva tabla que tendr como clave primaria la concatenacin de los atributos clave de las entidades que relaciona.

Reglas de Conversin:
Relaciones N:M Supongamos el siguiente modelo entidad-relacin. En este caso la relacin compra se transforma en una nueva tabla cuya clave primaria estar formada por los atributos dni, que es la clave primaria de cliente, y cdigo, que es la clave primaria de producto. Adems tendr como campo fecha compra, ya que este atributo forma parte de la relacin. El modelo relacional quedara de la siguiente forma (en negrita las claves primarias): CLIENTE(dni,nombre,apellidos) PRODUCTO(cdigo,descripcin) COMPRAS(dni_cliente,cdigo_producto,fecha_compra)

Reglas de Conversin:
En las relaciones 1:N se pueden tener dos casos: Si la entidad que participa con cardinalidad mxima uno lo hace tambin con cardinalidad mnima uno, entonces se propaga el atributo de la entidad que tiene cardinalidad mxima 1 a la que tiene cardinalidad mxima N, desapareciendo el nombre de la relacin. Si existen atributos en la relacin stos tambin se propagarn.

Reglas de Conversin:
Ejemplo : En el siguiente modelo entidad-relacin un empleado pertenece a un nico departamento (debe pertenecer a uno obligatoriamente), y un departamento tiene 1 o ms empleados. En este caso se propaga el atributo cdigo de departamento a la tabla EMPLEADO. El modelo relacional quedara de la siguiente manera: EMPLEADO(dni,nombre,salario,cdigo_departamento) DEPARTAMENTO(cdigo,nombre,localizacin)

Reglas de Conversin:
Si la entidad que participa con cardinalidad mxima uno lo hace tambin cardinalidad mnima cero, entonces se crea una nueva tabla formada por las claves de cada entidad y los atributos de la relacin. La clave primaria de la nueva tabla ser el identificador de la entidad que participa con cardinalidad mxima N.

Reglas de Conversin:
Ejemplo: Imaginemos ahora que pudiera darse el caso de que hubiera empleados que no pertenecieran a ningn departamento. En este caso la entidad que participa con cardinalidad mxima 1, DEPARTAMENTO, tambin lo hace con cardinalidad mnima 0, ya que puede haber empleados que no pertenezcan a ningn departamento. As pues, se crea una nueva tabla formada por dni de EMPLEADO y cdigo de DEPARTAMENTO. En esta nueva tabla dni de EMPLEADO ser la clave primaria. El modelo relacional quedara de la siguiente forma: EMPLEADO(dni,nombre,salario) DEPARTAMENTO(cdigo,nombre,localizacin) PERTENECE(dni_empleado,cdigo_departamento)

Combinar relaciones
El caso tpico son las relaciones 1-N Relaciones 1-1 deberan descartarse antes

You might also like