Está en la página 1de 55

Modelo

Relacional

Caractersticas Modelo







Sencillo: construido a partir de relaciones


Uniforme
Soporte matemtico
Principio de independencia mantenido
LDD, LMD
Propuesto por Codd(1970)

Conceptos Bsicos
Relaciones
 Dominios y atributos
 Restricciones de Integridad
 Valor Null
 Esquemas Relacionales


Conceptos Bsicos


Relaciones
 Estructura bsica
 Representacin: tabla

Atributos
 Propiedades de relaciones
 Representacin: columnas

Conceptos Bsicos


Dominios
 Conjunto de valores
 Atributos asociados con dominios

Tupla
 Ejemplar de una relacin
 Representacin: filas

Un ejemplo de una relacin


atributos
(o columnas)
id_estudiante

0807689
0789899
0788222
0678111

Nombre_estud

Luis Gmez
Mara Ruiz
Jose Cordoba
Luis Marin

estudiante

Promedio

3.5
4.1
3.2
4.0

tuplas
(o filas)

Dominios





Conjunto de valores atmicos


Asociado con un nombre
Valores del mismo tipo
Definidos por extensin o comprensin

Atributos






Propiedades de relaciones
Asociado con un nombre
Asociado a una relacin
Valores del mismo tipo
Valores tomados de un dominio

Tipos de Atributos





Cada atributo de una relacin tiene un


nombre
El conjunto de valores permitidos de un
atributo es su dominio
Valores atributos atmicos (no se pueden
descomponer)
 Ej. Valor atributo nmero de cuenta no
descompuesto en conjunto de nmeros
Dominio atmico: elementos atmicos
null valor especial de cualquier dominio

Relaciones



Definidas matemticamente
Compuesta por
nombre de relacin,
conjunto de atributos Ai
dominios asociados a atributos

Definicin formal
Dados conjuntos D1, D2, . Dn una relacin r es
conjunto de
D1 x D2 x x Dn
Una relacin 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 relacin definida sobre
Estudiantes x Profesores x Asignaturas

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


Esquemas vs. Instancias

Esquemas de Relacin
Definidos a partir de atributos A1, A2, , An
R = (A1, A2, , An )
es un esquema de relacin
Esquema_Estudiante = (Id-estudiante,
estudiante Nombre, Promedio )

Instancias de Relacin




Valores actuales (instancia de relacin) de una


relacin 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
atributos
(o columnas)
id_estudiante
0807689
0789899
0788222
0678111

Nombre_estud
Luis Gmez
Mara Ruiz
Jose Cordoba
Luis Marin
estudiante

Promedio
3.5
4.1
3.2
4.0

tuplas
(o filas)

Relaciones sin orden


orden de tuplas irrelevante
Id-estudiante

Nombre

Promedio

0807689

Luis Gmez

3.5

0789899

Mara Ruiz

4.1

0788222

Jose Cordoba

3.2

0678111

Luis Marin

4.0

0807685

Jorge Arbelaez

3.5

Base de Datos


Conjunto finito de relaciones {Ri}

Informacin organizacin almacenada en


relaciones
estudiantes : almacena informacin de estudiante
asignaturas : almacena informacin de asignaturas
profesores : almacena informacin 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

Relacin profesor
cdula

nombre

categora facultad

ltimo ttulo

3456777 Juan Mejia

Titular

Ph.D.

3434343 Cecilia Mnera

Asociado Ciencias

Ingeniera

M. Sc.

4554551 Carlos Crdenas Auxiliar

Artes

M.A.

3123434 Luisa Vargas

Titular

Ingeniera

Ph.D.

6666666 Carmen Suarez

Asociado Salud

M.Sc.

2223344 Jose Rubio

Auxiliar

M.Sc.

Salud

Relacin Asignatura
cdigo

nombre

Cred.

tipo

Nivel

7500098

Matemticas 1

Fund.

Profesional

7000002

Investigacin I

Fund.

Doctorado

7800034

Clculo

Electiva

Tecnolgico

50890000 Ingls

Electiva

Tecnolgico

7508702

Fundamentos BD

Electiva

Doctorado

2223344

Cine y Arte

Fund.

Profesional

Restricciones


Del Modelo de Datos









Relacin: 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:
integridad entidad

Llaves (Key)
Sea K R
K es una superllave de R si los valores de
K identifican de manera nica cualquier
tupla de una relacin r(R)
 Ejemplo: {cdula, nombre} y
{cdula}
son superllaves de Profesor.

Llaves (Cont.)


K es una llave candidata si K es minimal


{cdula} es llave candidata para Profesor
 Es superllave
 Ninguno de sus subconjuntos es una superllave

Llave Primaria:
Primaria llave candidata escogida como
identificador de tuplas en una relacin
 Escoger atributo cuyo valor nunca o rara vez cambie
email es nico pero puede cambiar

Llaves forneas


Esquema de relacin conteniendo atributo llave


primaria de otra relacin: Llave Fornea
Aributo Cdula de Profesor es llave fornea
de Programacin

Solo los valores que aparecen para la llave


primaria en la relacin referente pueden
aparecer como valores de llave fornea en la
relacin referenciada.
referenciada

Llaves Forneas
Estudiante (

Programas

CK
FK
PK
Id_estud,
Id_estud cdula, nombre, promedio, cod_programa)

PK
FK
(cod_programa,
cod_programa nombre, id_director, totalcrditos)

Profesores (id_prof,
id_prof nombre, categora, titulo,...)
PK

Valores Nulos (Null)




Mecanismo representacin informacin








Desconocida
Inaplicable
No disponible
Inexistente
...

Necesaria en el BD
 Creacin de tuplas con valores desconocidos (pago
prstamo)
 Adicin atributos a relacin existente
 Atributos no aplicables (editorial articulo)

Esquema Relacin: Definicin


R A:D, I
R: es un nombre de relacin
A: lista de atributos
D: dominios asociados a los atributos
I: restricciones de integridad sobre atributos y
tuplas de una relacin

Esquema BDR: Definicin


E {Ri}, {Ii}
E: nombre esquema relacional

{Ri}: conjunto de esquemas de relacin


{Ii} : conjunto de restricciones de integridad

Del Modelo E-R al Relacional

Transformacin E-R a MR


E-R
 no soportado por SGBD
 Transformacin a modelo datos soportado SGBD

Transformacin
 No-determinista
Mas de una forma de representar aspectos E-R en MR
Aspectos MR no representados en E-R

 Reglas de transformacin

Conjunto entidad
relacin (tabla)
cdula

Nombre

Profesor

categora

Profesor
cdula
5454545
3242424

nombre
NN
YT

categora
titular
Auxiliar

Conjunto relacin
tabla

Horario

Profesor
cdula

Aula
Program

Asignatura
Cdigo

Nombre

Nombre

categora

Programacin
cdula
cdigo

aula

horario

5454545

750033M

331-2075

Martes 8-10

3242424

750001M

331-2026

Jueves 14-17

Atributos de conjunto relacin


Atributos de relacin o tabla son:
 Llaves de cada entidad participante
(como llaves forneas)
Conforman una superllave para la
relacin

 Todos los Atributos descriptivos

Proceso de Transformacin

Etapas
Paso 1
 Por

cada entidad fuerte en el modelo


ER crear una relacin base con una
columna por cada atributo simple de la
entidad.
 El atributo llave para la entidad es la
llave primaria de la relacin.

Ejemplo

EmpNo

Empleado

Nombre

Fech_desp
Salario

Emp EmpNo

Cargo

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

Comision
PK

Entidades Fuertes
Depto

Edificio
Nombre

DeptNo

Dept DeptNo
Nombre
Edificio

Number(2)
Varchar2(14)
Varchar2(13)

PK

Etapas
Paso 2
Por cada entidad dbil, crear una relacin
consistiendo de todos los atributos simples
de esa entidad e incluir columnas para las
llaves primarias de las entidades de las
que dependen

Ejemplo
Prstamo

Pagos

Fecha
cantidad

NoPrestamo

Pagos Noprestamo
Nopago
Fecha
Cantidad

NoPago

Char(8)
Number(4)
Date
Number(9,2)

Discriminador
Llave primaria
compuesta

Etapas
Paso 3
Cuando dos entidades participan en una
relacin 1-m, la relacin representando la
entidad con la cardinalidad m(muchos)
debe tener una columna para la llave
fornea representando esta relacin.

Ejemplo
D#

E#

Dept

Asignado

Emp

Trabaja en

Emp EmpNo

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

Llave Fornea

Como un empleado debe trabajar en un departamento,


la columna DeptNo en la relacin Emp (tabla) no puede
ser NULL!

Ejemplo
D#

E#

Dept

Asignado

Emp

Trabaja en

Emp EmpNo

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

Llave fornea

Como un empleado podria no trabajar en un


departamento, la columna DeptNo en la relacin Emp
(tabla) puede ser NULL!

Etapas
Paso 4
Cuando dos entidades participen en una
relacin (1-1), una columna de llave fornea
se debe incluir en la relacin que representa
una de estas entidades.

Ejemplo
E#

ID#

Emp

Tiene

ID Tarjeta

Pertenece a

Emp EmpNo
Nombre
Direcc
DOB
IDNo

ID Tarjeta

IDNo
Desde
Expira
EmpNo

Number(6)
Varchar2(10)
Varchar2(200)
Date
Char(10)
Char(10)
Date
Date
Number(6)

Llave Fornea
Una de las dos

Llave Fornea

Etapas
Paso 5
Cuando dos entidades participan en una
relacin m:m, entonces una relacin se
debe crear consistiendo de llaves forneas
provenientes de las dos relaciones que
representan a las entidades participantes.

Ejemplo
P#

C#
Conduce

Persona

Carro

Conducido por

Persona-CarroPersonNo Number(6)
CarroNo

P#

Person

Char(7)

P#,C#
Person-Car

Llave Fornea
Llave Fornea

C#

Car

Etapas
Paso 6
Cuando una entidad tenga un atributo
multivaluado, crear una relacin con una
columna para la llave fornea de la
relacin que representa la entidad y una
columna para el atributo multivaluado.

Ejemplo
Lenguaje
Lenguaje
Lenguaje

Programador

Nombre
EmpNo

Programador EmpNo
Prog-Leng

Nombre

Number(2)
Varchar2(14)

EmpNo
Lenguaje

Number(2)
Varchar2(20)

Llave primaria

Llave primaria
compuesta

Etapas
Paso 7
Cuando ms de dos entidades participan
en una relacin, se debe crear una relacin
consistiendo de llaves forneas de aquellas
relaciones representando las entidades
participantes en la relacin

Ejemplo
EncuentroNo

Encuentro

Jugador No

registro

Jugador

faltaNo

falta

registro

EncuentroNo
JugadorNo
faltaNo
Fecha

Number(4)
Number(6)
Number(3)
Date

Llave Primaria
compuesta

Etapas
Sub-tipo
Para sub-tipos, crear relaciones separadas
por cada subtipo consistiendo de los
atributos propios del subtipo. Incluir como
llave fornea la superllave que acta como
llave primaria del super-tipo, que juega el
papel de llave primaria del sub-tipo.
Crear una relacin separada para el
supertipo

Ejemplo
EMPLEADO
Empleado No
Nombre
Direccin
SECRETARIA
Vel_digitar

Empleado

Secretaria

TECNICO

INGENIERO

Grado

EmpleadoNo
Nombre
Direccin

Tcnico

velocidad

EmpleadoNo

Grado

Ingeniero
EmpleadoNo

Tipo

EmpleadoNo
Tipo

Etapas
Paso 8 Opcin B
Para sub-tipos, crear relaciones separadas
por cada subtipo consistiendo de todos los
atributos del supertipo, y todos aquellos
que son propios de un sub-tipo dado. La
llave primaria del super-tipo es la llave
primaria de cada subtipo
No crear una relacin para el supertipo!

Ejemplo
VEHICULO
Vehiculo No
Licencia No
Precio

CARRO

CAMION

No de puestos

No de eje
Tonelaje

Carro

VehculoeNo
LicenciaNo
Precio
Nodepuestos

Camin

VehculoNo
LicenciaNo
Precio
NodeEjes
Tonelaje