lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe,...

30

Transcript of lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe,...

Page 1: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson
Page 2: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

H T T P : / / L E C A S A B E . C O M 2

PASAJE DE MER

A

MODELO RELACIONAL

Page 3: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

INTRODUCCIÓN

H T T P : / / L E C A S A B E . C O M 3

Hay reglas para cada estructura del MER:

Entidades Fuertes y Atributos

Entidades Débiles

Relaciones

Agregaciones

Categorizaciones

Page 4: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

ENTIDADES

H T T P : / / L E C A S A B E . C O M 4

En principio, cada colección de objetos (entidad)

genera una tabla con el mismo nombre, para

almacenar los datos que la describen (atributos).

Por cada atributo simple se crea un campo/columna

en la tabla.

Para cada atributo estructurado se crean tantos

campos/columnas como “hojas” tenga la estructura.

Si tiene atributos multivaluados los procesamos más

adelante.

Page 5: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

ENTIDADES

H T T P : / / L E C A S A B E . C O M 5

¿Cual es la clave primaria?

Se selecciona uno de los atributos determinantes de

la entidad como PK de la tabla.

Los restantes atributos determinantes (si los

hubiere) deben ser marcados como claves

alternativas.

Page 6: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

ENTIDADES – EJEMPLO

H T T P : / / L E C A S A B E . C O M 6

Personal (cedula, nombre, edad, ciudad, calle, numero)

Page 7: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

ATRIBUTOS MULTIVALUADOS

H T T P : / / L E C A S A B E . C O M 7

Por cada atributo multivaluado (ya sea de entidad o

de relación) se crea una tabla.

Se crea un atributo para el multivaluado.

Se agregan atributos que representan la PK de la

tabla que modela la entidad o relación a la cual

pertenece el multivaluado.

Page 8: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

ATRIBUTOS MULTIVALUADOS

H T T P : / / L E C A S A B E . C O M 8

¿Cómo se determina la clave primaria?

La PK está formada por todos sus atributos.

Dado que se usan al menos dos tablas para la

representación relacional, se deben restringir las

relaciones entre esas tablas.

Se agregan las FK que correspondan.

Page 9: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

ATRIBUTOS MULTIVALUADOS - EJEMPLO

H T T P : / / L E C A S A B E . C O M 9

Personal (cedula, nombre, edad, ciudad, calle, numero)

Telefonos (cedula, telefono)

Page 10: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

RELACIONES BINARIAS N:N

H T T P : / / L E C A S A B E . C O M 10

Para cada relación binaria con cardinalidad N:N se crea

una tabla donde:

Se colocan las PK de las tablas que representan a

cada una de las entidades participantes.

Si existen atributos en la relación se tratan como si

fueran los de una entidad.

Page 11: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

RELACIONES BINARIAS N:N

H T T P : / / L E C A S A B E . C O M 11

¿Cómo se determina la clave primaria?

La PK está formada por los atributos correspondientes

a las PK de las tablas que representan a las entidades

participantes.

Page 12: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

RELACIONES BINARIAS N:N - EJEMPLO

H T T P : / / L E C A S A B E . C O M 12

Page 13: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

RELACIONES BINARIAS N:N - EJEMPLO

H T T P : / / L E C A S A B E . C O M 13

En el pasaje tendríamos las siguientes tablas:

Sala (nombre, cant_camas)

Personal (cedula, nombre, ciudad, calle, numero)

Trabajan (nombreSala, cedula, entrada, salida)

Page 14: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

RELACIONES BINARIAS 1:N

H T T P : / / L E C A S A B E . C O M 14

Hay que dividir dos casos que se tratan en forma

diferente:

1:N Sin totalidad del lado N.

1:N Con totalidad del lado N.

Page 15: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

RELACIONES BINARIAS 1:N

H T T P : / / L E C A S A B E . C O M 15

Si es sin totalidad del lado N

Se trata como una N:N excepto por la PK de la tabla de

la relación, que es la clave del lado N.

Si es con totalidad del lado N

No se crea tabla para la relación y se agrega la clave de

la tabla de la entidad del lado 1 en la tabla de la

entidad del lado N.

No hay cambios en la PK.

Page 16: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

RELACIONES BINARIAS 1:N - EJEMPLO

H T T P : / / L E C A S A B E . C O M 16

Los funcionarios pueden trabajar o no en salas.

Si trabajan en salas, lo hacen sólo en una.

SIN totalidad

del lado N

Page 17: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

RELACIONES BINARIAS 1:N - EJEMPLO

H T T P : / / L E C A S A B E . C O M 17

En el pasaje, SIN totalidad del lado N, tendríamos las

siguientes tablas:

Sala (nombre, cant_camas)

Personal (cedula, nombre, ciudad, calle, numero)

Trabajan (nombreSala, cedula, entrada, salida)

Page 18: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

RELACIONES BINARIAS 1:N - EJEMPLO

H T T P : / / L E C A S A B E . C O M 18

Todos los funcionarios trabajan en salas.

Cada funcionario trabaja en una sola sala.

CON totalidad

del lado N

Page 19: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

RELACIONES BINARIAS 1:N - EJEMPLO

H T T P : / / L E C A S A B E . C O M 19

En el pasaje, CON totalidad del lado N, tendríamos las

siguientes tablas:

Sala (nombre, cant_camas)

Personal (cedula, nombre, ciudad, calle, numero,

nombreSala, hEntrada, hSalida)

Page 20: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

ENTIDADES DÉBILES

H T T P : / / L E C A S A B E . C O M 20

Por cada entidad débil se crea una tabla.

Se procede con las relaciones 1:N y totales del lado

N, no creando la tabla de la relación y agregando la

clave primaria de la tabla de la entidad fuerte en la

tabla de la entidad débil.

Page 21: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

ENTIDADES DÉBILES

H T T P : / / L E C A S A B E . C O M 21

¿Cuál es la clave primaria?

Clave primaria de la tabla que representa a la entidad

fuerte más atributo/s que representa al identificador

parcial.

Page 22: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

ENTIDADES DÉBILES - EJEMPLO

H T T P : / / L E C A S A B E . C O M 22

Hospital (nombre, direccion, telefono)

Sala (nombreHospital, nombreSala, cantCamas)

Page 23: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

AGREGACIONES

H T T P : / / L E C A S A B E . C O M 23

Page 24: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

AGREGACIONES

H T T P : / / L E C A S A B E . C O M 24

En un MER el operador de agregación transforma a las

relaciones en entidades.

En este caso las parejas de la relación Trabajan se

relacionan con Tarea.

¿Cómo se identifican las parejas de Trabajan?

Tarea (nombreTarea, descripcion)

Trabajan (nombreSala, cedula, hEntrada, hSalida)

Realizan (nombreSala, cedula, nombreTarea)

Page 25: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

CATEGORIZACIÓN

H T T P : / / L E C A S A B E . C O M 25

Tenemos diferentes opciones de implementación:

1. Por Joins: se aplica en cualquier caso, pero puede

tener menos performance que el caso 3.

2. Con atributo de tipo: si es disjunta.

3. Con atributo booleanos: también se puede aplicar

en cualquier caso, pero típicamente gasta más

memoria que el caso 1.

*Dos conjuntos son disjuntos si no tienen ningún elemento en común.

Page 26: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

CATEGORIZACIÓN – 1. JOINS

H T T P : / / L E C A S A B E . C O M 26

Page 27: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

CATEGORIZACIÓN – 1. JOINS

H T T P : / / L E C A S A B E . C O M 27

En el pasaje a tablas se crea una tabla para la super-

entidad y una tabla por cada sub-entidad con referencia

a la super-entidad.

Personal (cedula, nombre, ciudad, calle, numero)

Medico (cedulaPersonal, especialidad)

Enfermero (cedulaPersonal)

Aministrativo (cedulaPersonal, antigüedad)

Page 28: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

CATEGORIZACIÓN – 2. DISJUNTA

H T T P : / / L E C A S A B E . C O M 28

Una tabla con todos los atributos y un atributo de tipo.

Sólo si la categorización es disjunta.

Personal(cedula, nombre, ciudad, calle, numero,

especialidad, antigüedad, tipo)

especialidad y antigüedad pueden generar valores

nulos!

Hay que mantener consistente el tipo con los valores

de los otros atributos

Page 29: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

CATEGORIZACIÓN – 3. ATRIBUTO BOOLEANO

H T T P : / / L E C A S A B E . C O M 29

Una tabla con todos los atributos y un atributo booleano

por cada sub-entidad. Sólo si la categorización no es

disjunta.

Personal(cedula, nombre, ciudad, calle, numero,

especialidad, antigüedad, esMedico, esEnfermero,

esAdministrativo)

especialidad y antigüedad también pueden generar

valores nulos!

Page 30: lecasabe - Base de datos · H T T P : / / L E C A S A B E . C O M 30 FUENTE: Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid, España, Pearson

H T T P : / / L E C A S A B E . C O M 30

FUENTE:

Elmasri, R. & Navathe, S., (2007), Fundamentos de sistemas de bases de datos, Madrid,

España, Pearson Educación S.A.

Capítulo 9 de Fundamentals of Database Systems, R. Elmasri, S. Navathe, 3ra edición, Addison

Wesley, 2000

Capítulo 12 de Conceptual Database Design. An Entity-Relationship Approach. Batini, Ceri,

Navathe. Benjamin/Cummings, 1992.