Base de Datos Unidad 3 Prof. Domingo Hernández
Universidad de Los Andes
Facultad de Ingeniería
Instituto de Fotogrametría
Contenido
◦ ¿ Qué es el modelo relacional ?
◦¿ Elementos del modelo relacional?
◦ ¿ Cómo transformar el modelo ERE al modelo relacional ?
◦ ¿ Cómo transformar el modelo de clases al modelo relacional ?
◦ ¿ Qué son dependencias funcionales ?
◦ ¿ Qué es el proceso de Normalización ?
Objetivos a alcanzar
◦ Desarrollar habilidades en el modelado de bases de datos relacionales.
◦ Desarrollar habilidades en la transformación de modelos semánticos al modelos relacional.
◦Desarrollar habilidades en el proceso de normalización.
Mundo Real (Minimundo)
Esquema Interno
Esquema Conceptual
Esquema Externo
Modelado ER
BD
Transformación
Transformación
Modelos Conceptuales (De alto nivel)
Modelos “de Implementación”
(básicos) (De bajo nivel)
Jerárquico (1960 / 1966, primera implementación IBM)
Redes (Charles Bachman en 1969)
Relacional (E. Codd en 1970 )
Orientado por Objetos (Fines de los 80)
Objeto – Relacional (Inicios de los 90)
Este modelo fue propuesto por E. F Codd en el artículo intitulado “A Relational Model of Data for Large Share Data Bank” Communication ACM June 1970.
Reimpreso en Communication ACM January 1983.
Está basado en el concepto matemático de relación.
Se fundamenta en la teoría de
normalización de las relaciones, que permite eliminar el comportamiento anormal de las relaciones, luego de actualizaciones, así como el control
de la redundancia de datos
Lograr la independencia de Datos: Establece una clara división entre los aspectos lógicos y físicos de la base de datos.
Establecer una comunicación clara: Es lo suficientemente simple como para permitir que cualquier usuario final pueda tener un entendimiento común de los datos y puedan comunicarse entre si, utilizando el modelo.
Procesar conjuntos: Debido a que esta sustentado en la teoría de conjuntos, se pueden utilizar todas sus operaciones básicas (Unión, Intersección, Producto cartesiano, etc).
El modelo Relacional hace uso de una única estructura de datos conocida como la relación y emplea como elementos estructurales los dominios, los atributos, las claves y las tuplas.
Una relación se puede representar conceptualmente de dos maneras:
1.- Por extensión.
2.- Por compresión o Intensión.
Para representar una relación por extensión se emplean las tablas. Una tabla es un arreglo bidimensional que varia en el tiempo y en el cual el orden en las filas es irrelevante.
Empleado.
Nombre Apellido C.I. Fecha_Nac. Dirección Sexo Salario
José Peréz 1234567 09/01/55 Av. Sucre M 600.000
Juan Chacón 3334455 08/12/45 Calle 33 M 800.000
Alicia Páez 9998877 19/07/58 Calle 22 F 500.000
Luisa Olivero 9876543 20/06/45 Av. Paez F 860.000
Luis Cañate 6668844 15/10/65 Calle 10 M 760.000
María Lobera 4534534 30/11/63 Calle 56 F 500.000
Pedro Ochoa 9879879 09/02/67 Av. Flores M 500.000
Javier Nieto 8886655 09/10/45 Calle 46 M 999.000
Nombres y Cédulas
Apellidos Fechas Direcciones Sexo Salarios
Cárdinalidad Tuplas
Dominios
Grados
Atributos
INTENSIÓN. En Teoría de los Conceptos, el conjunto de las propiedades, las características o atributos
esenciales (y también accidentales) de un objeto, que le dan una identidad específica y lo distinguen de
cualquier otro. En la construcción de un concepto, refiere a la suma de sus enunciados esenciales. // 2. En Lingüística, conjunto de rasgos semánticos que definen
la clase denotada por el signo. Cuanto mayor es la intensión de un concepto, más limitada es su extensión.
Son precisos más rasgos semánticos para definir "gaviota" que para definir "ave", aunque en el universo
real hay más aves que gaviotas.
Una relación se representa por compresión mediante lo que se denominará Esquema de una relación.
Este tipo de representación permite una mejor manipulación
de las relaciones a nivel conceptual.
Para la relación Empleado presentada por extensión su representación por comprensión es:
Empleado (Nombre, Apellido, C.I., Fecha_Nac., Dirección, Sexo, Salario )
Dominio: Conjunto de valores
Ej:
colores={'rojo', 'verde', 'azul'} marcas={'fiat', 'toyota', 'ford', 'honda'}
Relación: Subconjunto del producto cartesiano de una lista de dominios
Producto cartesiano de colores y marcas (denotado colores x marcas):
colores={'rojo', 'verde', 'azul'}
marcas={'fiat', 'toyota', 'ford', 'honda'}
color marca
rojo
verde
azul
rojo
verde
azul
rojo
... ...
fiat
fiat
fiat
toyota
toyoya
toyota
ford
Producto Cartesiano: Todos contra todos:
...luego podemos tomar un subconjunto del producto cartesiano de los dominios:
color marca
rojo
verde
azul
rojo
verde
azul
rojo
... ...
fiat
fiat
fiat
toyota
toyoya
toyota
ford
R1={('fiat', 'verde'), ('toyota', 'azul'), ('ford', 'rojo')}
R2={('rojo', 'honda')}, o bien R3={}
R1 color marca
verde
azul
rojo
fiat
toyota
fordRelación
Esquema de una relación o tabla: nombre de la relación seguido de la lista de sus atributos con
sus dominios
Atributo: Columna en una relación identificada por un nombre
Tupla / Registro: Fila en una tabla o relación que contiene un conjunto de valores acordes al
esquema de la relación (sus columnas y dominios)
R1 color marca
verde
azul
rojo
fiat
toyota
ford
Atributo o
Columna
Esquema por
extensión
Tupla o fila (toyota, azul)
Tabla o Relación
R1(marca, color)
Esquema por intensión (Si, con
“s”, no es un error)
NOTA: El valor de un atributo puede ser nulo en una columna particular.
Base de datos cuyo esquema es un conjunto de esquemas de relación de
diferente nombre cada una, y donde sus ocurrencias son las tuplas de esas
relaciones
Esquema de una base de datos: El conjunto de esquemas o tablas que
conforman una base de datos
Cada tupla tiene un número fijo de atributos o columnas.
Cada relación o tabla contiene un único tipo de fila o tupla.
No se permiten atributos compuestos o grupos repetitivos (Atributos Multivaluados)
Para que una relación sea una relación, debe cumplir con:
Cada tabla contiene un sólo tipo de tupla descrito mediante un esquema de relación.
Cada tupla tiene un número fijo de atributos explícitamente denominado.
No se permiten atributos compuestos, es decir, cada valor de un atributo debe ser atómico.
Cada tupla es única y se identifica por su clave primaria. No se permiten registros duplicados.
Un atributo o grupo de atributos que identifiquen de manera unívoca e inequívoca a cada tupla de la relación recibe el nombre de clave candidata.
Las características que debe cumplir una clave candidata son las de Identificación única y No redundancia.
Identificación Única: El valor de una clave candidata identifica únicamente a una tupla correspondiente, es decir no existen dos o más registros con el mismo valor de campo clave.
Propiedad de no redundancia: Las claves candidatas deben ser no redundantes, es decir, ningunos de los atributos que la forman pueden ser removidos sin destruir la propiedad de identificación única.
La clave primaria de una relación es seleccionada entre las claves candidatas.
Los atributos que forman parte de la clave primaria no pueden ser nulos.
Si un atributo “A” de una relación R1 es la clave primaria de una relación R2, entonces “A” es un atributo foráneo de R1.
R1(x, y, A) R2(A, B, C, D)
Sea el diagrama ER para Empleado y proyecto
Empleado Proyecto
Trabaja
1 N
R2= Empleado(Cédula, Nombre, Dirección, Teléfono)
R1= Proyecto(Cód_Proy, Nombre, Ubicación, Cedula)
El orden de la tuplas no es relevante, por lo que no tienen que estar necesariamente ordenados.
Los atributos toman sus valores correspondientes desde los dominios.
Un mismo dominio puede ser utilizado por diferentes atributos.
Por medio del empleo de las operaciones del modelo (Selección, proyección, juntura, etc. ) pueden producirse nuevas tablas.
Estudiante Cédula Nombre Apellido Curso9.644.667 Pedro Pérez BD, IS10.133.212 Gabriel Mendoza PRI, CA1011.332.334 Luis Gonzales PRII, SR10, EST114.126.112 Gilberto Zapata BD, IA
Atributo Multivaluad
o / Compuesto
Grupo Repetitivo
Estudiante Cédula Nombre Apellido Curso9.644.667 Pedro Pérez BD9.644.667 Pedro Pérez IS10.133.212 Gabriel Mendoza PRI10.133.212 Gabriel Mendoza CA1011.332.334 Luis Gonzales PRII11.332.334 Luis Gonzales SR1011.332.334 Luis Gonzales EST114.126.112 Gilberto Zapata BD
14.126.112 Gilberto Zapata IA
Estudiante Cédula #Carnet Nombre Apellido
9.644.667 10203 Pedro Pérez
14.126.112 11098 Gilberto Zapata
Claves candidatas:
Cédula
o bien...
#Carnet
Superclaves:
Cédula + #Carnet Cédula + Nombre
#Carnet + Apellido
etcétera...
Estudiante Cédula #Carnet Nombre Apellido
9.644.667 10203 Pedro
14.126.112 11098 Zapata
Pérez
Gilberto
Clave primaria (seleccionada de
las claves candidatas):
Cédula
¿Por qué nombre + apellido no es una clave candidata?
La clave se representa subrayando los atributos
que la componen
Estudiante Cédula #Carnet Nombre Apellido
9.644.667 10203 Pedro Pérez
14.126.112 11098 Gilberto Zapata
Materia Código Nombre
BD01 Bases de Datos
IS02 Ing. del Software
Estudiante Cédula #Carnet Nombre Apellido
1 9.644.667 10203 Pedro
2 14.126.112 11098 Zapata
Id
Pérez
Gilberto
La cédula es algo muy concreto, existe, hasta “cierto punto”.
El código en el fondo no existe, es un invento que se usa para poder diferenciar una materia de otra (pero sin embargo, una vez establecido tiene sentido)
El id (de identificador) simplemente no existe. Cada fila tiene (por decreto) un id distinto, y este se va generando de forma incremental a medida que se insertan registros.
Estudiante Cédula #Carnet Nombre Apellido
9.644.667 10203 Pedro
14.126.112 11098 Zapata
Pérez
GilbertoLa cédula por si sola puede diferenciar un estudiante de otro.
Semestre Fecha Inicio Fecha Fin
A09 07/01/09 06/05/09
B09 15/05/09 15/12/09
A10 05/01/10 15/07/10
B10 20/05/10 14/12/10
CodSem
Semestre Año Fecha Inicio Fecha Fin
A 09 07/01/09 06/05/09
B 09 15/05/09 15/12/09
A 10 05/01/10 15/07/10
B 10 20/05/10 14/12/10
Sem
El CodSem por si mismo puede diferenciar un semestre de otro.
Ni el atributo Sem, ni el atributo Año por si mismos pueden diferenciar un semestre de otro, es necesario usarlos en conjunto (concatenados) para poder diferenciar un semestre de otro.
Además, también, debe cumplir con: Si un atributo A que pertenece a R1 es también la clave primaria de R2, entonces A es un atributo foráneo de R1, y se le suele llamar clave foránea
(Integridad Referencial)
Si A es la clave primaria de R1 y también una clave foránea de R2, entonces para toda tupla de R2
donde A != nulo debe existir la tupla correspondiente en R1 con el valor de A que existe en la tupla de R2
Los atributos que forman parte de una clave foránea pueden ser nulos (no hay relación)
Materia Código Nombre
BD Bases de Datos
IS Ing. del Software
SO Sist. Operativos
Estudiante Cédula Nombre Apellido
9.644.667 Pedro Pérez
14.126.112 Gilberto Zapata
¿Cuál será la clave primaria de esta
relación?
9.644.667 BD
9.644.667 SO
14.126.112 BD
14.126.112 IS
Est-Mat CedulaEst CódigoMat
¿Qué tipo de relación existe
(cardinalidad) entre Estudiante y Est-Mat? ¿Y entre Est-Mat y Materia? ¿Y entre Estudiante y
Materia?
Est-Mat es una tabla intermedia que sirve para relacionar Estudiante con
Materia
Los Sistemas de Gestión de Bases de Datos permiten establecer ciertas reglas que deben cumplirse sobre los atributos en las distintas relaciones que conforman una base de datos relacional.
Semestre Fecha Inicio Fecha Fin Fecha Inscripción Fecha Retiro
U09 07/01/09 06/05/09 05/01/09 01/04/09
A10 11/01/10 15/07/10 05/01/10 10/06/10
B10 20/05/10 14/12/10 15/05/10 09/11/10
CodSem
Fecha Inicio< Fecha FinFecha Inscripción< Fecha Inicio
Fecha Retiro< Fecha FinFecha Inicio< Fecha Fin
Son los predicados definidos por el Administrador de la Base de Datos sobre los valores de los atributos usando el lenguaje de definición de datos.
Regla de integridad de la entidad. Ningún valor de los componentes de una clave primaria puede ser nulo.
Ejemplo:
Tabla Empleado
Número_carnet Cota_del_libro Fecha_préstamo
IS000999 CHK-198 12-12-2009
IC004555 ? 01-01-2010
? DCG-98 02-02-2010
Regla de integridad de referencia.
Sea “A” la clave primaria de una relación R1 y a su vez, un atributo foráneo de R2
R1(A, B, C, D) R2(X, Y, A)
Entonces por cada tupla en R2 en la que el valor de A sea no nulo, debe existir la correspondiente tupla en la relación R1.
Regla de integridad de valores de un atributo. Se aplican a los valores de los atributos y son
definidas por el Administrador de Base de datos utilizando un lenguaje de definición de datos.
Ejemplo:
Verify On Empleado sueldo > 0 And sueldo < 100.000
Cliente(codCli, nombre, balance, limiteCrédito, descuento, dirección)
Pedido(codPed, estado, dirEnvio, codArt, cantPedida, cantEnviada)
Articulo( codArt, nomArt, descripcion)
Inventario(codArt, codPlanta, cantidadExistencia)
Las claves primarias están subrayadas y las claves foráneas aparecen escritas en itálicas (y en negrita)
Pedido-Cliente(codPed, codCli)
At ribut o Descripción Dominio
Código del cliente Cadena(4)
nombre Nombre del cliente
balance Moneda (NO NULO)
Moneda (NO NULO)
descuento Descuento aplicado Moneda (NO NULO)
Código del pedido Cadena(6)
codCli
Cadena(32) sólo letras ,.” -’
Balance actual del cliente
lim iteCrédito Lím ite de crédito del cliente
dirección, dirEnvio Dirección del cliente y dirección de envío
Cadena(128) letras, dígitos, . , # ‘ / -
codPed
Se puede tener una sola tabla de dominios (con todos los dominios de todas las relaciones)
continua...
Atributo Descripción Dom inio
estado Línea de pedido
Cantidad pedida Entero+
Entero+
Código del art ículo Cadena(8)
Nombre del art ículo
descripción Descripción del art ículo
Código de la planta Cadena(2)
Entero+ (NO NULO)
Enumerado:0= pedido, 1= procesado,
2= pagado,3= env iado, 4= cancelado
cantPedida
cantEnv iada Cantidad env iada del art ículo
codArt
nomArt Cadena(64) letras,
dígitos
Cadena(256) letras ,.” -’
codPlanta
cantEx istencia Cantidad actual en
ex istencia
...continuación
At ribut o De scripción Dom inio
Código del client e
nom bre Nom bre del client e
balance Balance act ual del client e Moneda (NO NULO)
Lím it e de crédit o del client e Moneda (NO NULO)
descuent o Descuent o aplicado Moneda (NO NULO)
dirección
Ta bla : Client e
codCli Cadena(4) (PK)
Cadena(32) sólo let ras ,.” -’
lim it eCrédit o
Dirección del client e y
d irección de envío
Cadena(128) let ras,
díg it os, . , # ‘ / -
At ribut o De scripción Dom inio
Código del pedido Cadena(6)
est ado Línea de pedido
Código del art ícu lo
Cant idad pedida Ent ero+
Cant idad env iada del art ícu lo Ent ero+
Ta bla : Pedido
codPed
Enum erado: 0= pedido, 1= procesado, 2= pagado,
3= env iado, 4= cancelado
dirEnv io Dirección del client e y
d irección de envío
Cadena(128) let ras,
díg it os, . , # ‘ / -
codArt Cadena(8) (Re fe re ncia a la t a bla Art ículo)
cant Pedida
cant Env iada
continua...
At ribut o De scripción Dom inio
Código del art ícu lo
Nom bre del art ícu lo Cadena(64) let ras, díg it os
descripción Descripción del art ícu lo
Ta bla : Art ícu lo
codArt Cadena(8) (PK)
nom Art
Cadena(256) let ras ,.” -’
At ribut o De scripción Dom inio
Código del pedido
Código del client e
Ta bla : Pedido-Client e
codPed Cadena(6) (Re fe re ncia a
la t a bla Pe dido) (PK)
codCli Cadena(4) (Re fe re ncia a
la t a bla Clie nt e ) (PK)
At ribut o De scripción Dom inio
Código del art ícu lo
Código de la p lant a
Ent ero+ (NO NULO)
Ta bla : Invent ario
codArt Cadena(8) (Re fe re ncia a
la t a bla Art ículo) (PK)
codPlant a Cadena(2) (PK)
cant Ex ist encia Cant idad act ual en
ex ist encia
...continuación
Un modelo Entidad Relación Extendido se convierte a un esquema relacional aplicando un conjunto de reglas.
Por ejemplo considere el siguiente esquema :
Empleado
Cédula_Empleado Nombre Dirección
Familiares_Empl.
1
Familiares
M
Nombrefamiliar
Fecha_nacimientoAyuda_EconomicaF-AYE
M N
Cod_ayuda MontoDescripciónFecha_Inicio
Sexo
Parentesco
Cada Conjunto-Entidad Fuerte se convierte en un esquema de relación constituido por todos los atributos del conjunto entidad.
Empleado(Cédula_Empleado, Nombre, Dirección, Sexo)
Ayuda_Económica(Cód_ayuda,Descripción,Monto).
Cada tupla en la relación representa una entidad en el conjunto entidad.
La clave primaria de la relación es la misma del conjunto entidad.
Cada Conjunto relacion en el caso de una cardinalidad (n :m) Entre conjuntos Entidades se convierte en una relación cuya clave primaria es la concatenación de las claves primarias de los conjuntos entidad asociados, y sus atributos no claves, son los mismos que los de la relación.
En cada conjunto relación de cardinalidad 1 :m por lo general no se tiene una nueva tabla sino que se asigna como clave foránea en el conjunto entidad cuya cardinalidad es m la clave del conjunto entidad cuya cardinalidad es uno.
En caso de un conjunto relación 1 : 1 no se tiene una nueva tabla que representa al conjunto interrelación sino que se asigna como clave foránea a alguna de las entidades la clave de la otra entidad a objeto de minimizar el uso de la operación de juntura.
En Resumen:
Cada conjunto relación entre los conjuntos entidades
que asocia se convierte en un esquema de relación si:
a. El conjunto relación tiene atributos
b. El tipo de correspondencia del mismo es N:M
La clave primaria es la concatenación de las claves primarias de los conjunto entidad que ella asocia y sus atributos son los mismos del conjunto relación tratado.
Los conjuntos de valores del diagrama ERE se
convierten en los dominios del modelo relacional.
Los conjuntos de Entidades Débiles Se convierten en relaciones con clave primaria igual a la concatenación de la clave primaria del conjunto entidad fuerte del cual dependen con algún atributo de identificación única que posea el conjunto de entidad débil.
Familiares(Cédula_empleado, Nombre_familiar, Fecha_nacimiento, Parentesco)
Conjunto Entidad Débil
Cada especialización es un esquema de relación con los atributos de la especialización y con clave la del conjunto entidad general.
Una categoría es una subclase de la unión de dos o más superclases, por lo que se crea una clave para la categoría y la misma se coloca en los esquemas de relación de las superclases si ellas tienen diferentes esquemas.
◦ ¿ Qué es el modelo relacional ?
◦¿ Elementos del modelo relacional?
◦ ¿ Cómo transformar el modelo ERE al modelo relacional ?
Elmasri, R. Y Navathe, S. Fundamentos de Sistemas de
Bases de Datos. Pearson Addison-Wesley 2da. Edición
Leer (Capítulo 4)
Korth, H. Y Silverschatz, A. Fundamentos de Bases de
Datos. McGraw-Hill 2da Edición
Leer (Capítulo 3)