BD Relacional

55
Modelo Relacional

description

Paso de modelo entidad relacion a modelo relacional

Transcript of BD Relacional

Page 1: BD Relacional

ModeloRelacional

Page 2: BD Relacional

Características Modelo

� Sencillo: construido a partir de relaciones

� Uniforme� Soporte matemático

� Principio de independencia mantenido� LDD, LMD

� Propuesto por Codd(1970)

Page 3: BD Relacional

Conceptos Básicos

� Relaciones� Dominios y atributos� Restricciones de Integridad� Valor Null� Esquemas Relacionales

Page 4: BD Relacional

Conceptos Básicos

� Relaciones� Estructura básica� Representación: tabla

� Atributos� Propiedades de relaciones� Representación: columnas

Page 5: BD Relacional

Conceptos Básicos

� Dominios� Conjunto de valores� Atributos asociados con dominios

� Tupla� Ejemplar de una relación� Representación: filas

Page 6: BD Relacional

Un ejemplo de una relación

atributos(o columnas)

0807689078989907882220678111

id_estudianteid_estudiante

Luis GómezMaría RuizJose CordobaLuis Marin

Nombre_estud

3.54.13.24.0

Promedio

estudiante

tuplas(o filas)

Page 7: BD Relacional

Dominios

� Conjunto de valores atómicos� Asociado con un nombre� Valores del mismo tipo� Definidos por extensión o comprensión

Page 8: BD Relacional

Atributos

� Propiedades de relaciones� Asociado con un nombre� Asociado a una relación� Valores del mismo tipo� Valores tomados de un dominio

Page 9: BD Relacional

Tipos de Atributos� Cada atributo de una relación tiene un

nombre� El conjunto de valores permitidos de un

atributo es su dominio

� Valores atributos atómicos (no se puedendescomponer)� Ej. Valor atributo número de cuenta no

descompuesto en conjunto de números� Dominio atómico: elementos atómicos

� null valor especial de cualquier dominio

Page 10: BD Relacional

Relaciones

� Definidas matemáticamente� Compuesta por

• nombre de relación, • conjunto de atributos Ai

• dominios asociados a atributos

Page 11: BD Relacional

Definición formal

Dados conjuntos D1, D2, …. Dn una relación r esconjunto de

D1 x D2 x … x Dn

Una relación es un conjunto de n-tuplas

(a1, a2, …, an) donde cada ai ∈ Di

Page 12: BD Relacional

Ejemplo

� Estudiantes = {e1,e2,e3, e4, …}

� Profesores = {p1, p2, p3, …}

� Asignaturas = {MDI, MDII, BD, SOFT,....}

r = { (e1,p1,MDI), (e1,p3,BD), (e3, p2, MDI),

(e2, p3, BD) } es una relación definida sobreEstudiantes x Profesores x Asignaturas

Page 13: BD Relacional

Relaciones:descripción

� Nombre asociado� Cabecera: pares (atributo, dominio)� Esquema: Nombre y cabecera� Cuerpo: conjunto de tuplas

Page 14: BD Relacional

Esquemas vs. Instancias

Page 15: BD Relacional

Esquemas de Relación

Definidos a partir de atributos A1, A2, …, An

R = (A1, A2, …, An ) es un esquema de relación

Esquema_Estudiante = (IdId--estudianteestudiante, Nombre, Promedio )

Page 16: BD Relacional

Instancias de Relación� Valores actuales (instancia de relación) de una

relación especificados en tabla

� Un elemento t de r es una tupla, fila de la tabla

� Conjunto de tuplas r = {t1, t2,..., tn} donde cada

ti = (x1, x2,... xm) xi ∈ Di

estudiante

0807689078989907882220678111

id_estudiante

Luis GómezMaría RuizJose CordobaLuis Marin

Nombre_estud

3.54.13.24.0

Promedio

atributos(o columnas)

tuplas(o filas)

Page 17: BD Relacional

Relaciones sin orden

orden de tuplas irrelevante

3.5Jorge Arbelaez0807685

4.0Luis Marin0678111

3.2Jose Cordoba0788222

4.1María Ruiz0789899

3.5Luis Gómez0807689

PromedioNombreId-estudiante

Page 18: BD Relacional

Base de Datos� Conjunto finito de relaciones {Ri}

� Información organización almacenada en relaciones

estudiantes : almacena información de estudianteasignaturas : almacena información de asignaturasprofesores : almacena información de profesores

Page 19: BD Relacional

Base de Datos

� Relaciones

� Con nombre asignado

� Persistentes (de base, vistas materializadas)

� Temporales (Definidas por el usuario, vistas temporales)

� Sin nombre

� Temporales : resultado consulta

Page 20: BD Relacional

Relación profesor

M.Sc.SaludAuxiliarJose Rubio2223344

M.Sc.SaludAsociadoCarmen Suarez6666666

Ph.D.IngenieríaTitularLuisa Vargas3123434

M.A.ArtesAuxiliarCarlos Cárdenas4554551

M. Sc.CienciasAsociadoCecilia Múnera3434343

Ph.D.IngenieríaTitularJuan Mejia3456777

último títulofacultadcategoríanombreccééduladula

Page 21: BD Relacional

Relación Asignatura

ProfesionalFund.4Cine y Arte2223344

DoctoradoElectiva6Fundamentos BD7508702

TecnológicoElectiva3Inglés50890000

TecnológicoElectiva3Cálculo7800034

DoctoradoFund.6Investigación I7000002

ProfesionalFund.3Matemáticas 17500098

NiveltipoCred.nombreccóódigodigo

Page 22: BD Relacional

Restricciones

� Del Modelo de Datos� Relación: conjunto conjunto � No par de tuplas iguales: requisito Llave primaria� Orden tuplas no significativo� Orden de atributos no significativo� Atributos con un único valor� Atributos que integran llave primaria no nulos:

integridadintegridad entidadentidad

Page 23: BD Relacional

Llaves ( Key )Sea K ⊆ R

K es una superllavesuperllave de R si los valores de K identifican de manera única cualquiertupla de una relación r(R)

� Ejemplo: {cédula, nombre} y

{cédula}

son superllaves de Profesor.

Page 24: BD Relacional

Llaves (Cont.)

� K es una llavellave candidatacandidata si K es minimal{cédula} es llave candidata para Profesor

� Es superllave

� Ninguno de sus subconjuntos es una superllave

�� LlaveLlave PrimariaPrimaria: llave candidata escogida comoidentificador de tuplas en una relación

� Escoger atributo cuyo valor nunca o rara vez cambie• email es único pero puede cambiar

Page 25: BD Relacional

Llaves foráneas

� Esquema de relación conteniendo atributo llaveprimaria de otra relación: LlaveLlave ForFor ááneanea

Aributo Cédula de Profesor es llave foráneade Programación

� Solo los valores que aparecen para la llaveprimaria en la relacirelaci óónn referentereferente puedenaparecer como valores de llave foránea en la relación referenciadareferenciada .

Page 26: BD Relacional

Llaves Foráneas

Estudiante ( Id_estudId_estud, cédula, nombre, promedio, cod_programa)

Programas (cod_programacod_programa, nombre, id_director, totalcréditos)

Profesores (id_profid_prof, nombre, categoría, titulo,...)

PK

FK

CK

PK

FK

PK

Page 27: BD Relacional

Valores Nulos (Null)� Mecanismo representación información

� Desconocida� Inaplicable� No disponible� Inexistente� ...

� Necesaria en el BD� Creación de tuplas con valores desconocidos (pago

préstamo)� Adición atributos a relación existente� Atributos no aplicables (editorial articulo)

Page 28: BD Relacional

Esquema Relación: Definición

R ⟨⟨⟨⟨ A:D, I ⟩⟩⟩⟩

R: es un nombre de relación

A: lista de atributosD: dominios asociados a los atributos

I: restricciones de integridad sobre atributos y tuplas de una relación

Page 29: BD Relacional

Esquema BDR: Definición

E ⟨⟨⟨⟨ {Ri}, {Ii}⟩⟩⟩⟩

E: nombre esquema relacional

{Ri}: conjunto de esquemas de relación

{Ii} : conjunto de restricciones de integridad

Page 30: BD Relacional

Del Modelo E-R al Relacional

Page 31: BD Relacional

Transformación E-R a MR

� E-R � no soportado por SGBD� Transformación a modelo datos soportado SGBD

� Transformación� No-determinista

• Mas de una forma de representar aspectos E-R en MR• Aspectos MR no representados en E-R

� Reglas de transformación

Page 32: BD Relacional

Conjunto entidad

relación (tabla)

Profesor

cédula Nombre categoría

AuxiliarYT3242424

titularNN5454545

categoríanombreccééduladula

ProfesorProfesor

Page 33: BD Relacional

Conjunto relación

tabla

331-2026

331-2075

aula

Jueves 14-17750001M3242424

Martes 8-10750033M5454545

horariocódigoccééduladula

ProgramaciProgramaci óónn

ProfesorProgram Asignatura

Horario Aula

cédula Nombre

categoría

Código Nombre

Page 34: BD Relacional

Atributos de conjunto relación

Atributos de relación o tabla son:� Llaves de cada entidad participante

(como llaves foráneas)

• Conforman una superllave para la relación

� Todos los Atributos descriptivos

Page 35: BD Relacional

Proceso de Transformación

Page 36: BD Relacional

Etapas

Paso 1� Por cada entidad ‘fuerte’ en el modelo

ER crear una relación base con unacolumna por cada atributo simple de la entidad.

� El atributo llave para la entidad es la llave primaria de la relación.

Page 37: BD Relacional

Ejemplo

EmpleadoEmpNo

Salario Comision

Fech_despNombre

Cargo

EmpNo Number(4)Nombre Varchar2(10)Cargo Varchar2(9)Salario Number(7,2)Comision Number(7,2)Fech_desp Date

Emp PK

Page 38: BD Relacional

Entidades Fuertes

Depto

DeptNo

Edificio

Nombre

DeptNo Number(2)Nombre Varchar2(14)Edificio Varchar2(13)

Dept PK

Page 39: BD Relacional

Etapas

Paso 2Por cada entidad ‘débil’, crear una relaciónconsistiendo de todos los atributos simples de esa entidad e incluir columnas para lasllaves primarias de las entidades de lasque dependen

Page 40: BD Relacional

Ejemplo

Préstamo

Noprestamo Char(8)Nopago Number(4)Fecha DateCantidad Number(9,2)

Pagos Llave primariacompuesta

PagosFecha

cantidadNoPrestamo NoPago

Discriminador

Page 41: BD Relacional

Etapas

Paso 3Cuando dos entidades participan en unarelación 1-m, la relación representando la entidad con la cardinalidad m(muchos) debe tener una columna para la llaveforánea representando esta relación.

Page 42: BD Relacional

Ejemplo

Dept

D#

EmpTrabaja en

Asignado E#

EmpNo Number(4)Nombre Varchar2(10)Cargo Varchar2(9)Salario Number(7,2)Comision Number(7,2)Fech-desp DateDeptNo Number(2)

Emp

Llave Foránea

Como un empleado ‘debe’ trabajar en un departamento, la columna DeptNo en la relación Emp (tabla) no puede ser NULL !

Page 43: BD Relacional

Ejemplo

EmpNo Number(4)Nombre Varchar2(10)Cargo Varchar2(9)Salario Number(7,2)Comis Number(7,2)Fech-desp DateDeptNo Number(2)

Emp

Llave foránea

Como un empleado ‘podria no’ trabajar en un departamento, la columna DeptNo en la relación Emp(tabla) puede ser NULL !

Dept

D#

EmpTrabaja en

Asignado E#

Page 44: BD Relacional

Etapas

Paso 4Cuando dos entidades participen en unarelación (1-1), una columna de llave foránease debe incluir en la relación que representauna de estas entidades.

Page 45: BD Relacional

Ejemplo

Emp

E#

ID TarjetaPertenece a

TieneID#

EmpNo Number(6)Nombre Varchar2(10)Direcc Varchar2(200)DOB DateIDNo Char(10)

Emp

Llave Foránea

IDNo Char(10) Desde DateExpira Date EmpNo Number(6)

ID Tarjeta

Llave Foránea

Una de las dos

Page 46: BD Relacional

Paso 5Cuando dos entidades participan en unarelación m:m, entonces una relación se debe crear consistiendo de llaves foráneasprovenientes de las dos relaciones querepresentan a las entidades participantes.

Etapas

Page 47: BD Relacional

Ejemplo

Persona

P#

CarroConducido por

Conduce C#

PersonNo Number(6)CarroNo Char(7)

Persona-CarroLlave Foránea

Person

P#

CarC#

Person-Car

P#,C#

Llave Foránea

Page 48: BD Relacional

Paso 6Cuando una entidad tenga un atributomultivaluado, crear una relación con unacolumna para la llave foránea de la relación que representa la entidad y unacolumna para el atributo multivaluado.

Etapas

Page 49: BD Relacional

LenguajeLenguaje

Ejemplo

Programador

EmpNo

Lenguaje

Nombre

EmpNo Number(2)Nombre Varchar2(14)

Programador Llave primaria

EmpNo Number(2)Lenguaje Varchar2(20)

Prog-Leng Llave primariacompuesta

Page 50: BD Relacional

Etapas

Paso 7Cuando más de dos entidades participanen una relación, se debe crear una relaciónconsistiendo de llaves foráneas de aquellasrelaciones representando las entidadesparticipantes en la relación

Page 51: BD Relacional

Ejemplo

Encuentro

EncuentroNo

JugadorJugador No

falta

faltaNo

registro

EncuentroNo Number(4)JugadorNo Number(6)faltaNo Number(3)Fecha Date

registroLlave Primariacompuesta

Page 52: BD Relacional

Sub-tipoPara sub-tipos, crear relaciones separadaspor cada subtipo consistiendo de losatributos propios del subtipo. Incluir comollave foránea la superllave que actúa comollave primaria del super-tipo, que juega el papel de llave primaria del sub-tipo.

Crear una relación separada para el supertipo

Etapas

Page 53: BD Relacional

Ejemplo

EmpleadoNoNombreDirección

Empleado

EMPLEADOEmpleado NoNombreDirección

SECRETARIAVel_digitar

TECNICOGrado

INGENIEROTipo

EmpleadoNovelocidad

Secretaria

EmpleadoNoGrado

Técnico

EmpleadoNoTipo

Ingeniero

Page 54: BD Relacional

Etapas

Paso 8 – Opción BPara sub-tipos, crear relaciones separadaspor cada subtipo consistiendo de todos losatributos del supertipo, y todos aquellosque son propios de un sub-tipo dado. La llave primaria del super-tipo es la llaveprimaria de cada subtipo

No crear una relación para el supertipo!

Page 55: BD Relacional

Ejemplo

VehículoeNoLicenciaNoPrecioNodepuestos

Carro

VEHICULOVehiculo NoLicencia NoPrecio

CARRONo de puestos

CAMIONNo de ejeTonelaje

Camión VehículoNoLicenciaNoPrecioNodeEjesTonelaje