La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Base de Datos II Modelo Relacional. Pasaje MER - Relacional Proceso de transformación de un concepto a una implementación Se convierten en tablas: Entidades.

Presentaciones similares


Presentación del tema: "Base de Datos II Modelo Relacional. Pasaje MER - Relacional Proceso de transformación de un concepto a una implementación Se convierten en tablas: Entidades."— Transcripción de la presentación:

1 Base de Datos II Modelo Relacional

2 Pasaje MER - Relacional Proceso de transformación de un concepto a una implementación Se convierten en tablas: Entidades fuertes y Atributos Relaciones Agregaciones Entidades Débiles No existe un pasaje totalmente automatizado

3 Pasaje – Entidades Fuertes (1) Cada atributo común se coloca como un atributo de la tabla Atributos compuestos se colocan como un atributo separado por cada hoja Atributos claves se colocan como subrayados (puede ser clave compuesta) EMPLEADOS Nombre Dirección Sexo {M,F} Departamento Ciudad Calle Nro_puerta CI EMPLEADOS( CI, Nombre, Sexo, Departamento, Ciudad, Calle, Nro_puerta)

4 Pasaje – Entidades Fuertes (2) Atributos multivaluados generan una nueva tabla Contiene un atributo por cada componente (similar a caso anterior) Debe contener además la clave de la Entidad. EMPLEADOS Nombre Dirección Sexo {M,F} Departamento Calle Nro_puerta CI Teléfonos * EMPLEADOS + EMP_TELEFONOS( CI, nro_telefono)

5 Pasaje – Relaciones (1) Por regla general se debe crear una nueva tabla conteniendo las claves de las entidades que relaciona. Si contienen atributos propios se deben incluir. La clave dependerá de restricciones de la realidad. Por lo general será la pareja de claves de ambas entidades. R (Clave_a, Clave_b, atributos de R…. ) A B R Clave_b Clave_a atributos

6 Pasaje – Relaciones (1) ALUMNOS( NroAlumno, NombreAlumno) MATERIAS( CodMateria, NombreMat) INSCRIPTO (NroAlumno, CodMateria, Fecha) Ejemplo 1 (relación N:M, un alumno se puede inscribir a una materia varias veces) ALUMNOS MATERIAS Inscripto CodMateria NombreAlumno NroAlumno NombreMat Fecha

7 Pasaje – Relaciones (2) ALUMNOS MATERIAS Inscripto ALUMNOS( NroAlumno, NombreAlumno) MATERIAS( CodMateria, NombreMat) INSCRIPTO (NroAlumno, CodMateria, Fecha) CodMateria NombreAlumno Ejemplo 2 : Un alumno se puede inscribir a una materia pero una sola vez para cada fecha. NroAlumno NombreMat Fecha

8 Pasaje – Relaciones (3) B (Clave_b, … atributos de B, Clave_a) Si la relación es 1:N puede NO CREARSE nueva tabla Se incrustan la clave en la entidad con cardinalidad N Si contiene atributos propios es mejor crearla. Si la relación es PARCIAL sobre B, cuando un elemento de B no esté relacionado con alguno de A Clave_a contendrá NULL Si la relación es TOTAL sobre B, se debe definir una restricción de integridad (referencial) de B hacia A. A B R Clave_b Clave_a 1:N 0:1

9 Pasaje – Relaciones (4) EMPLEADOS( CI, NomEmp, CodSec) SECCIONES( CodSec, NomSec) Ejemplo 1 : Un empleado trabaja en una única sección. EMPLEADOS SECCIONES Trabaja CodSec NomEmp CI NomSec 1:N 0:1

10 Genera una nueva tabla : EMPLEADOS( CI, NomEmp) SECCIONES( CodSec, NomSec) TRABAJA (CI, CodSec, FecDesde, FecHasta) Periodo FecDesde FecHasta Trabaja Ejemplo 2 : Un empleado trabaja en una única sección en un determinado período Pasaje – Relaciones (4) EMPLEADOS SECCIONES Trabaja CodSec NomEmp CI NomSec 1:N 0:1

11 Pasaje – Relaciones (5) Mínimos y máximos definidos Cuando existen mínimos > 1 o cotas superiores no se pueden definir mediante restricciones estáticas. Deben ser definidas por código. Ej : triggers o mediante el programa que utilice la base de datos, por ejemplo Visual Basic.

12 Pasaje – Agregaciones Se tratan como una relación. Independientemente de las cardinalidades se debe implementar como una tabla aparte (pues van a ser nuevamente relacionadas con alguna otra Entidad)

13 Pasaje – Entidades Débiles (1) Son casos particulares de relación 1:N No se crea tabla adicional para la relación. Se agrega en la tabla correspondiente a la Entidad Débil la clave de la Entidad Fuerte. La nueva clave está formada entonces por este nuevo conjunto. Debe haber una clave foránea desde la Entidad Débil a la Fuerte. HOSPITAL( NomHosp, Direccion) SALA(NroSala, NomHosp, camas) HOSPITAL SALA Pertenece NroSala Direccion NomHosp camas 1:N

14 Pasaje – Entidades Débiles (2) CLAVE FORÁNEA Se dice que B posee clave foránea hacia A si todo elemento de tabla B debe tener su atributo clave dentro de un atributo clave de alguna tupla de tabla A. Decimos que Fk(B) referencia Pk(A) En nuestro ejemplo : Toda tupla de SALAS debe tener una pareja en alguna tupla de HOSPITALES con el mismo NomHosp. Además : NomHosp debe ser CLAVE en HOSPITALES NomHosp,NroSala es CLAVE en SALAS

15 Pasaje – Categorizaciones (1) Atributos_C Clave SmSm S1S1 C S2S Existen diferentes implementaciones, dependiendo de la cantidad de atributos, solapamiento y completitud. C( Clave_C, …Atributos_C….) S 1 (Clave_C, … Atributos_propios_S 1 )

16 Pasaje – Categorizaciones (2) Caso 1 : Relación No-total y C posee atributos propios 1. Crear una tabla para C 2. Crear una tabla para cada sub-categoría S i conteniendo sus atributos propios + Clave(C) 3. Crear restricciones de integridad desde cada clave de S i a C C( Clave_C) S i S i (Clave_C, … Atributos_propios_S i ) y crear Integridad Referencial de S i a C PERSONAS( CI, Nombre) ESTUDIANTES( CI, Nro_est) DOCENTES( CI, Grado) ESTUDIANTES.CI referencia PERSONAS.CI DOCENTES.CI referencia PERSONAS.CI Ejemplo Nombre CI ESTUDIANTE PERSONAS DOCENTE Grado Nro_est

17 Pasaje – Categorizaciones (3) Caso 2 : Relación No-total y C no posee atributos propios (solo clave) 1. Crear una tabla para cada sub-categoría S i conteniendo sus atributos propios + Clave(C) 2. No es necesario crear C pues es una abstracción. C se puede implementar como una vista : C = П(S 1 ) U П(S 2 ) … U П(S n ) Clave_C PERSONAS( CI, Nombre) ESTUDIANTES( CI, Nro_est) DOCENTES( CI, Grado) ESTUDIANTES.CI referencia PERSONAS.CI DOCENTES.CI referencia PERSONAS.CI Ejemplo Nombre aaa ESTUDIANTE AAAA DOCENTE Grado Nro_est

18 Pasaje – Categorizaciones (4) Caso 3 : Relación Total y sub-categorias SIN atributos propios. Crear una tabla para C 2 variantes : a) Agregar a C un atributo para discriminante que indica la categoria a que pertenece cada tupla. b) Agregar a C tantos atributos booleanos como sub-categorias de C existan. Ej. Nombre CI ESTUDIANTE PERSONAS DOCENTE ADMINISTRATIVO Versión 1 PERSONAS( CI, Nombre, TipoPersona) Versión 2 PERSONAS( CI, Nombre, EsEstudiante, EsDocente, EsAdministrativo)

19 Pasaje – Categorizaciones (6) Caso 4 : Si todas las categorías poseen atributos propios Opción 1 : Implementar una única tabla conteniendo la unión de todos los atributos de C + S i utilizando 1 de las 2 técnicas de caso anterior (tener en cuenta si hay o no solapamiento) Rápido de implementar Genera gran cantidad de datos NULL Exige correspondiencia entre atributos : implementar código Ej: Si Tipo=ADMINISTRATIVO atributos que no correspondan a ADMINISTRATIVO deben valer NULL o ser ignorados Implementación obscura, lejana de modelo conceptual Ej: (sin solapamiento) CINombreDireccionTipoNroEstPuestoGrado 1JuanMercedes 1467ESTUDIANTE557NULL 2MariaSan jose 321DOCENTENULL 2 3Pedro18 de Julio 1234ADMINISTRATIVONULLRecepcionistaNULL 4AnaSarandi 320DOCENTE558NULL1 Nombre CI ESTUDIANTE PERSONAS DOCENTE PERSONAS Direccion Puesto Grado ADMINISTRATIVO NroEst

20 Pasaje – Categorizaciones (7) Caso 4 : Si todas las categorías poseen atributos propios Opción 2 : a) No implementar C b) Implementar cada subcategoria S i como una tabla independiente conteniendo sus atributos + atributos de C Cubre solapamiento y totalidad. Fácil de implementar Más prolijo que versión anterior Puede generar redundancia !!!!!!!!! Ej: Si Ana es Docente y también Administrativo CICI Nom bre DireccionGra do 4AnaSarandi 3201 ………... Nombre CI ESTUDIANTE PERSONAS DOCENTE ADMINISTRATIVO DOCENTE Direccion CICI Nom bre DireccionPuesto 4AnaMercedes 1451 Telefonist a ………… ADMINISTRATIVO Puesto Grado

21 Pasaje – Categorizaciones (8) Caso 4 : Si todas las categorías poseen atributos propios Opción 3 : a) Implementar C como una tabla independiente b) Implementar cada subcategoria S i como una tabla independiente + Clave( C ) c) Incluir restricciones de integridad desde S i hacia C Cubre solapamiento y totalidad. Luego se pueden definir vistas de cada S i para presentar una visión más cercana a la conceptual. Evita redundancia Prolijidad : más cercano al diseño conceptual Exige más inteligencia para agregar registros Costo de implementar/mantener las vistas C.Clave = S i.clave V i = C S i


Descargar ppt "Base de Datos II Modelo Relacional. Pasaje MER - Relacional Proceso de transformación de un concepto a una implementación Se convierten en tablas: Entidades."

Presentaciones similares


Anuncios Google