BD Relacional

Post on 06-Dec-2015

27 views 1 download

description

Paso de modelo entidad relacion a modelo relacional

Transcript of BD Relacional

ModeloRelacional

Características Modelo

� Sencillo: construido a partir de relaciones

� Uniforme� Soporte matemático

� Principio de independencia mantenido� LDD, LMD

� Propuesto por Codd(1970)

Conceptos Básicos

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

Conceptos Básicos

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

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

Conceptos Básicos

� Dominios� Conjunto de valores� Atributos asociados con dominios

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

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)

Dominios

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

Atributos

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

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

Relaciones

� Definidas matemáticamente� Compuesta por

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

• dominios asociados a atributos

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

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

Relaciones:descripción

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

Esquemas vs. Instancias

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 )

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)

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

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

Base de Datos

� Relaciones

� Con nombre asignado

� Persistentes (de base, vistas materializadas)

� Temporales (Definidas por el usuario, vistas temporales)

� Sin nombre

� Temporales : resultado consulta

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

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

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

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.

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

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 .

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

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)

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

Esquema BDR: Definición

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

E: nombre esquema relacional

{Ri}: conjunto de esquemas de relación

{Ii} : conjunto de restricciones de integridad

Del Modelo E-R al 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

Conjunto entidad

relación (tabla)

Profesor

cédula Nombre categoría

AuxiliarYT3242424

titularNN5454545

categoríanombreccééduladula

ProfesorProfesor

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

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

Proceso de Transformación

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.

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

Entidades Fuertes

Depto

DeptNo

Edificio

Nombre

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

Dept PK

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

Ejemplo

Préstamo

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

Pagos Llave primariacompuesta

PagosFecha

cantidadNoPrestamo NoPago

Discriminador

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.

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 !

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#

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.

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

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

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

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

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

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

Ejemplo

Encuentro

EncuentroNo

JugadorJugador No

falta

faltaNo

registro

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

registroLlave Primariacompuesta

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

Ejemplo

EmpleadoNoNombreDirección

Empleado

EMPLEADOEmpleado NoNombreDirección

SECRETARIAVel_digitar

TECNICOGrado

INGENIEROTipo

EmpleadoNovelocidad

Secretaria

EmpleadoNoGrado

Técnico

EmpleadoNoTipo

Ingeniero

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!

Ejemplo

VehículoeNoLicenciaNoPrecioNodepuestos

Carro

VEHICULOVehiculo NoLicencia NoPrecio

CARRONo de puestos

CAMIONNo de ejeTonelaje

Camión VehículoNoLicenciaNoPrecioNodeEjesTonelaje