Você está na página 1de 10

Modelo

El Modelo Relacional es actualmente el


principal modelo de datos para las
aplicaciones de procesamiento de datos

Modelo
Relacional

Las implementaciones actuales de las


bases de datos casi siempre se basan
en el enfoque del modelo relacional

Es simple y facilita el trabajo del programador


Bases de Datos
Ingenier
Ingeniera T
Tcnica en Inform
Informtica de Sistemas
Introducci
Introduccin

ndice
Bases de Datos Relacionales

Bases de Datos
Relacionales

Reduccin de Esquemas E-R a Tablas

Modelo Relacional
Bases de Datos
Ingenier
Ingeniera T
Tcnica en Inform
Informtica de Sistemas
Introducci
Introduccin

Tablas

Estructura B
Bsica de Tabla

Una Base de Datos Relacional consiste en un


conjunto de tablas, a cada una de las cuales se le
asigna un nombre exclusivo

Atributos
Relacin
ejemplo

Cada fila de la tabla representa una


relacin entre un conjunto de valores
Una tabla es un conjunto de relaciones existe una
fuerte correspondencia entre el concepto de tabla y
el concepto
Modelo Relacional
matemtico
Las relaciones son tablas que representan informacin
de relacin
Las columnas estn encabezadas por atributos; cada

atributo tiene un dominio relacionado, o tipo de datos


A los renglones se les llama tuplas, y una tupla posee
un componente en cada atributo de la relacin

Bases de Datos Relacionales

Atributo 1

Atributo 2

Valor 1

Valor 2

Atributo 3
Valor 3

Valor 4

Valor 5

Valor 6

Valor 7

Valor 8

Valor 9

Valor 10

Valor 11

Valor 12

Valor 13

Valor 14

Valor 15

Valor 16

Valor 17

Valor 18

Al conjunto de
valores
permitidos de
un atributo se le
llama dominio

Una tabla de n atributos es un subconjunto de D1 x D2 x


x Di x x Dn-1 x Dn (matemticamente una relacin es un
subconjunto del producto cartesiano de la lista de dominios)
Bases de Datos Relacionales

Nomenclatura

Esquema

El orden de las
tuplas es irrelevante

Relacin (tabla)
Atributo 1

Atributo 2

Atributo 3

Valor 1

Valor 2

Valor 3

Valor 4

Valor 5

Valor 6

Valor 7

Valor 8

Valor 9

Valor 10

Valor 11

Valor 12

Valor 13

Valor 14

Valor 15

Valor 16

Valor 17

Valor 18

Esquema de Relacin: El nombre de una relacin y el


conjunto de sus atributos
Esquema-abc=(atributo1(dominio1),
atributo2(dominio2), , atributoN(dominioN))

Tupla (fila)

Relacin: Una tabla con la estructura indicada en el


esquema de relacin
nombre(Esquema-abc)
Ejemplar de Relacin o Instancia:

t[atributo 1]t=1=Valor 1
Los dominios deben ser atmicos pero no tiene por que ser
disjuntos y el valor nulo pertenece a todos los dominios
Bases de Datos Relacionales

estado actual, variable conforme se actualiza

Bases de Datos Relacionales

Tuplas

Dominios

A los renglones de una relacin, si no son el rengln


del encabezado que contiene los atributos, se les da
el nombre de tuplas

El modelo relacional exige que los componentes de una


tupla sean atmicos, o sea que pertenezcan a algn
tipo elemental como enteros o cadenas de caracteres

Una tupla tiene un componente para


cada uno de los atributos de la relacin
Esquemas
Un nombre de relacin junto con los atributos de cada relacin forma un
esquema relacional
Una coleccin de estos esquemas constituye un esquema de base de datos
A los datos particulares de una relacin o coleccin de relaciones se le da
el nombre de instancia del esquema de la relacin o de la base de datos

Bases de Datos Relacionales

Ejemplo 1: Banco

No se admite que un valor sea una


estructura de registro, un conjunto, una
lista, un arreglo o cualquier otro tipo que
razonablemente pueda tener sus valores
divididos en componentes ms pequeos

Cada atributo de una relacin se asocia con un dominio


Bases de Datos Relacionales

10

Ejemplo 1: Banco

Esquema_cuenta=(numero_cuenta,
nombre_sucursal, saldo)

Esquema_sucursal=(nombre_sucursal,
ciudad_sucursal, activos)

numero_cuenta

nombre_sucursal

saldo

nombre_sucursal

ciudad_sucursal

activos

C-101

Principal

500

Principal

Santiago

75000

C-102

Fingoi

700

Fingoi

Lugo

10000

C-103

Murallas

900

Murallas

Lugo

10000

C-201

Plaza Roja

450

Plaza Roja

Santiago

5000

C-225

Fingoi

1200

Vite

Santiago

8000

C-315

Principal

1000

Riazor

A Corua

12000

C-316

Vite

100

C-317

Riazor

150

sucursal(Esquema_sucursal)

cuenta(Esquema_cuenta)
Conceptos B
Bsicos

11

Conceptos B
Bsicos

12

Ejemplo 1: Banco

Ejemplo 1: Banco

Esquema_cliente=(nombre_cliente,
calle_cliente, ciudad_cliente)

Esquema_impositor=(nombre_cliente,
nmero_cuenta)

nombre_cliente

calle_cliente

ciudad_cliente

nombre_cliente

nmero_cuenta

Abril

Diputacin

Lugo

Amo

C-101

Amo

La Rosa

Santiago

Abril

C-102

Barreiro

Jazmn

Rbade

Gonzlez

C-315

Fernndez

Pimentel

Lugo

Lpez

C-201

Prez

Camelias

Santiago

Lpez

C-102

Gonzlez

Constitucin

Negreira

Santos

C-201

Gmez

Agro

Ames

Rodrguez

Fidel

Oleiros

C-102

Barreiro

C-225

Fernndez

C-103

Prez

C-315

Gmez

C-316

Rodrguez

C-317

impositor(Esquema_impositor)

cliente(Esquema_cliente)
Conceptos B
Bsicos

Fernndez

13

Ejemplo 1: Banco

Conceptos B
Bsicos

14

Ejemplo 1: Banco

Esquema_prestamo=(numero_prestamo,
nombre_sucursal, importe)

Esquema_prestatario=(nombre_cliente,
numero_prestamo)

numero_prestamo

nombre_sucursal

importe

nombre_cliente

numero_prestamo

P-13

Fingoi

10000

Fernndez

P-13

P-23

Fingoi

8700

Abril

P-13

P-18

Vite

15100

Prez

P-18

Fernndez

P-23

Barreiro

P-13

Rodrguez

P-18

prestamo(Esquema_prestamo)

prestatario(Esquema_prestatario)

Conceptos B
Bsicos

15

Ejemplo 2: Biblioteca

Conceptos B
Bsicos

16

Ejemplo 2: Biblioteca

Esquema_usuario=(nombre, ciudad)

Esquema_libro=(isbn, titulo, autor, ao)

nombre

ciudad

isbn

ttulo

autor

ao

Prez

Santiago

624

1930

Lpez

Ames

615

1999

Rodrguez

Santiago

834

2000

Fernndez

Santiago

963

2001

211

2000

usuario(Esquema_usuario)

Conceptos B
Bsicos

libro(Esquema_libro)

17

Conceptos B
Bsicos

18

Ejemplo 2: Biblioteca

Ejemplo 3: Videoclub

Esquema_prestamo=(nombre, isbn, devolucion)

Esquema_socio=(nombre, telefono, ciudad, alta)

nombre

isbn

Devolucin

nombre

telefono

ciudad

alta

Prez

834

10/12

Prez

934611

Santiago

11/2003

Rodrguez

211

5/11

Fernndez

611934

Santiago

11/1999

Prez

963

15/11

Gonzlez

611611

Ames

6/1998

Fernndez

624

10/10

socio(Esquema_socio)

prestamo(Esquema_prestamo)

Conceptos B
Bsicos

19

Ejemplo 3: Videoclub

Conceptos B
Bsicos

20

Ejemplo 3: Videoclub

Esquema_pelicula=(titulo, pais)

Esquema_alquiler=(nombre, titulo, devolucion)

ttulo

pas

nombre

ttulo

Espaa

Prez

9/10

Espaa

Prez

11/10

USA

Prez

15/10

pelicula(Esquema_pelicula)

devolucin

alquiler(Esquema_alquiler)

Conceptos B
Bsicos

21

Ejemplo 4: Pel
Pelculas

Conceptos B
Bsicos

22

Ejemplo 4: Pel
Pelculas

Esquema_pelicula=(titulo,ao,longitud,tipopelicula)

Esquema_estrella=(nombre,direccion)

titulo

ao

longitud

tipopelicula

nombre

direccin

Suburbio Azul

1934

102

byn

Prez

Calle Cascabel, 4

La Guerra Imperial

1989

96

color

Prez

Calle Rosa, 2

No Soy El

1967

198

byn

Ms Alla del Valor

1956

133

byn

estrella(Esquema_estrella)

pelicula(Esquema_pelicula)

Conceptos B
Bsicos

23

Conceptos B
Bsicos

24

Ejemplo 4: Pel
Pelculas

Claves

Esquema_estudio=(nombre,direccion)
nombre

direccin

MGM

Av Redonda

FOX

Av Cuadrada

PAT

Av Ovalada

Los conceptos de superclave, de clave


candidata y de clave primaria son
aplicables en el modelo relacional de la misma
forma que en el modelo entidad-relacin

estudio(Esquema_estudio)

Llaves
La superllave de una relacin es un conjunto de atributos
que determinan todos los atributos de la relacin

Conceptos B
Bsicos

25

Bases de Datos Relacionales

26

Entidad-Relaci
Relacin vs Relacional

Reduccin de
Esquemas E-R
a Tablas

Los modelos Entidad-Relacin y Relacional son


representaciones abstractas de porciones
del mundo real
Los dos modelos emplean principios de diseo
similares se puede convertir un diseo
Entidad-Relacin en un diseo relacional
(se puede derivar el modelo relacional a partir de
un diagrama Entidad-Relacin)

Modelo Relacional
Bases de Datos
Ingenier
Ingeniera T
Tcnica en Inform
Informtica de Sistemas
Reducci
Reduccin de Esquemas EE-R a tablas

Transformaci
Transformacin

Conj. Entidades Fuertes

Una Base de Datos que se ajusta a un modelo


Entidad-Relacin se puede representar por una
coleccin de tablas en un modelo relacional

Sea E un conjunto de entidades fuertes con los


atributos descriptivos a1, a2, , an

Para cada conjunto de entidades de la base de datos


y para cada conjunto relaciones de la base de datos
hay una nica tabla a la que se asigna el nombre del
conjunto de entidades o del conjunto de relaciones

Se representa mediante una tabla llamada E con


n columnas distintas, cada una de las cuales
correspondientes a cada uno de los atributos de E

Conversin de los Conjuntos Entidad en Relaciones


La relacin de un conjunto entidad tiene un atributo por cada
atributo del conjunto
Una excepcin est constituida por un conjunto entidad dbil E,
cuya relacin ha de poseer tambin atributos llave de los otros
conjuntos entidad que sirven para identificar las entidades de E

Cada tabla tiene varias columnas, cada


una de las cuales tiene un nombre nico
Reducci
Reduccin de Esquemas EE-R a tablas

28

29

Reducci
Reduccin de Esquemas EE-R a tablas

30

Ejemplo 1: Banco
Prstamo

num_pre

Conj. Entidades D
Dbiles
Sea A un conjunto de entidades dbiles con
los atributos a1, a2, , am

resto

Sea B el conjunto de entidades fuerte del que


A depende

imp_ini

Sea la clave primaria de B el conjunto de


atributos b1, b2, , bn

Prstamo
numero_prestamo

importe_inicial

P-11

900

resto
125

P-14

1200

1100

P-15

2000

565

Se representa el conjunto de entidades A mediante


una tabla llamada A con una columna por cada
uno de los siguientes atributos:
{a1, a2, , am} U {b1, b2, , bn}

Reducci
Reduccin de Esquemas EE-R a tablas

31

Reducci
Reduccin de Esquemas EE-R a tablas

Ejemplo 1: Banco
Prstamo

num_pre

Conj. Relaciones
Sea R un conjunto de relaciones, sean a1, a2, , am
el conjunto de atributos formados por la unin de las
claves primarias de cada uno de los conjuntos de
entidades que participan en R y sean b1, b2, , bn los
atributos descriptivos de R (si los hay)

Pago

PagoPrst
resto

fe_pa

num_pag

imp_ini

32

imp_pag

Se representa el conjunto de relaciones R mediante


una tabla llamada R con una columna por cada
uno de los siguientes atributos:

Pago
numero_prestamo

numero_pago

importe_pago

Fecha_pago

P-11

53

50

07/06/2002

P-14

16

35

12/12/2000

P-15

11

25

01/03/1999

{a1, a2, , am} U {b1, b2, , bn}


Conversin de Relaciones E/R en Relaciones
La relacin de una relacin E/R tiene atributos que corresponden a los
atributos llave de cada conjunto entidad que participa en la relacin

Reducci
Reduccin de Esquemas EE-R a tablas

33

Ejemplo 1: Banco
direc_cli

Prestatario

Cliente

Prestamo

ciud_cli

ap1_cli
ap2_cli

num_pre

cpost_cli

Un conjunto de relaciones uniendo un conjunto de


entidades dbiles con el correspondiente conjunto de
entidades fuertes es un caso especial

resto

En general, la tabla para el conjunto de relaciones


que une un conjunto de entidades dbiles con su
correspondiente conjunto de entidades fuertes es
redundante y, por tanto, no es necesaria

imp_ini

Prestatario
id_cliente

numero_prestamo

514862

P-11

486251

P-14

485926

P-15

Prstamo

num_pre

Reducci
Reduccin de Esquemas EE-R a tablas

34

Redundancia de Tablas

id_cli

nomb_cli

Reducci
Reduccin de Esquemas EE-R a tablas

35

Pago

PagoPrst
resto
imp_ini

num_pag

Reducci
Reduccin de Esquemas EE-R a tablas

fe_pa
imp_pag

36

Combinaci
Combinacin de Tablas

Ejemplo 1: Banco

Considerar un conjunto de relaciones R, varios a


uno, del conjunto de entidades A al conjunto de
entidades B
Tablas A, B y R

saldo

num_cu

activos

ciud_suc

direc_suc
nom_suc

Cuenta

SucCuenta

Sucursal
id_suc

Suponer que la participacin de A es total


Cuenta

Entonces, se pueden combinar las


tablas A y R para formar una nica
tabla consistente en la unin de las
columnas de ambas tablas
Reducci
Reduccin de Esquemas EE-R a tablas

37

Combinaci
Combinacin de Tablas

numero_cuenta

saldo

id_sucursal

C-101

2000

C-202

10000

C-567

300

Reducci
Reduccin de Esquemas EE-R a tablas

38

Atributos Compuestos

En el caso de relaciones uno a uno, la tabla del


conjunto de relaciones se puede combinar con
cualquiera de las tablas de los conjuntos de
entidades

Los atributos compuestos se manejan creando un


atributo separado para cada uno de los atributos
componentes; no se crea una columna separada
para el atributo compuesto

Las tablas se pueden combinar incluso si la


participacin es parcial (usando valores nulos)

Reducci
Reduccin de Esquemas EE-R a tablas

39

Atributos Multivalorados

40

Generalizaci
Generalizacin-Especializaci
Especializacin

Para los atributos multivalorados se crean nuevas


tablas; esa nueva tabla contiene la clave primaria
del conjunto de entidades al cual pertenece el atributo
y los diferentes valores del atributo generan
diferentes tuplas

Reducci
Reduccin de Esquemas EE-R a tablas

Reducci
Reduccin de Esquemas EE-R a tablas

Se crea una tabla para el conjunto de entidades


de ms alto nivel; Para cada conjunto de
entidades de nivel ms bajo se crea una tabla
que incluya una columna para cada uno de los
atributos de ese conjunto de entidades ms una
columna por cada atributo de la clave principal
del conjunto de entidades de alto nivel

41

Reducci
Reduccin de Esquemas EE-R a tablas

42

Soluci
Solucin Alternativa

Ejemplo 1: Banco

Se puede emplear un valor nulo especial, denotado NULL

saldo

activos

Cuando ste aparece en el componente de la tupla de algn


atributo, ello significa informalmente que no existe un valor
apropiado del atributo de esa tupla

Sucursal
SucCuenta

Si se permite utilizar NULL como un valor


en las tuplas, se puede manejar una
jerarqua de clases con una sola relacin

Cliente

nomb_cli

43

Reducci
Reduccin de Esquemas EE-R a tablas

saldo

num_cu

Sucursal

Cuenta

Impositor

Prestatario

Cliente
Prstamo

num_pre

Id_cl Nom
iente bre_
clien
te

resto

imp_ini

Reducci
Reduccin de Esquemas EE-R a tablas

45

saldo

Id_s
ucur
sal

SucPresta
Prestatario

Apell Apell Direc Cdi Ciud


ido1 ido2 cin goPo ad_c
_clie _clie _clie stal_ lient
nte
nte
nte clien
e
te

Prstamo

num_pre

resto

imp_ini

46

Ejemplo 1: Banco
Sucursal

Cuenta
id_sucursal

activ
os

Reducci
Reduccin de Esquemas EE-R a tablas

Ejemplo 1: Banco
Numero_cu
enta

Nom Direc Ciud


bre_ cion ad_s
sucu _suc ucur
rsal ursal sal

SucCuenta

id_suc

SucPresta

Apell Apell Direc Cdi Ciud


ido1 ido2 cin goPo ad_c
_clie _clie _clie stal_ lient
nte
nte
nte clien
e
te

44

Id_s
ucur
sal

nom_suc

SucCuenta

Id_cl Nom
iente bre_
clien
te

imp_ini

Sucursal

direc_suc

activos

Cliente

num_pre

resto

Ejemplo 1: Banco

ciud_suc

Cuenta

Prstamo

direc_cli

ciud_cli

Ejemplo 1: Banco

Impositor

SucPresta

cpost_cli

ap2_cli

num_cu

id_suc

Prestatario

id_cli

ap1_cli

saldo

nom_suc

Cuenta

Impositor

Reducci
Reduccin de Esquemas EE-R a tablas

direc_suc

ciud_suc

num_cu

Nom Direc Ciud


bre_ cion ad_s
sucu _suc ucur
rsal ursal sal

activ
os

Sucursal

Cuenta
Numero_cu
enta

id_sucursal

saldo

Id_s
ucur
sal

Nom Direc Ciud


bre_ cion ad_s
sucu _suc ucur
rsal ursal sal

activ
os

Impositor
Impositor

Cliente
Id_cl Nom
iente bre_
clien
te

id_cliente

SucPresta
Prestatario

Apell Apell Direc Cdi Ciud


ido1 ido2 cin goPo ad_c
_clie _clie _clie stal_ lient
nte
nte
nte clien
e
te

numero_cu
enta
Cliente

Prstamo

num_pre

Reducci
Reduccin de Esquemas EE-R a tablas

Id_cl Nom
iente bre_
clien
te

resto

imp_ini

47

SucPresta
Prestatario

Apell Apell Direc Cdi Ciud


ido1 ido2 cin goPo ad_c
_clie _clie _clie stal_ lient
nte
nte
nte clien
e
te

Prstamo

num_pre

Reducci
Reduccin de Esquemas EE-R a tablas

resto

imp_ini

48

Ejemplo 1: Banco
Sucursal

Cuenta
Numero_cu
enta

id_sucursal

Ejemplo 1: Banco

saldo

Id_s
ucur
sal

Nom Direc Ciud


bre_ cion ad_s
sucu _suc ucur
rsal ursal sal

Impositor
id_cliente

Nm
ero_
prest
amo

Prestatario

Id_s Impo resto


ucur rte_i
sal nicial

id_cliente

Id_cl Nom
iente bre_
clien
te

Reducci
Reduccin de Esquemas EE-R a tablas

numero_cu
enta

id_sucursal

49

nom
bre_
sucu
rsal

Impositor
id_cliente

direc
cion
_suc
ursal

Cliente
id_cli nom apelli apelli direc codi ciud
ente bre_ do1_ do2_ cion gopo ad_c
clien clien clien _clie stal_ lient
te
te
te
nte clien
e
te

Nom Direc Ciud


bre_ cion ad_s
sucu _suc ucur
rsal ursal sal

activ
os

Prstamo

numero_cu
enta

Nm
ero_
prest
amo

Id_s Impo resto


ucur rte_i
sal nicial

Prestatario
id_cliente

numero_pr
estamo

Reducci
Reduccin de Esquemas EE-R a tablas

50

Diagrama de Esquemas
ciud
ad_s
ucur
sal

activ
os

num
ero_
prest
amo

id_s
ucur
sal

impo resto
rte_i
nicial

numero_cu
enta

id_sucursal

saldo

id_cliente

Cliente
numero_pr
estamo

Reducci
Reduccin de Esquemas EE-R a tablas

nom
bre_
sucu
rsal

id_s
ucur
sal

51

direc
cion
_suc
ursal

ciud
ad_s
ucur
sal

activ
os

Prstamo

numero_cu
enta

id_cli nom apelli apelli direc cdi ciud


ente bre_ do1_ do2_ cion goPo ad_c
clien clien clien _clie stal_ lient
te
te
te
nte clien
e
te

Prestatario
id_cliente

Sucursal

Cuenta

Impositor

Prstamo

numero_cu
enta

Id_s
ucur
sal

Ejemplo 1: Banco
Sucursal

saldo

saldo

Apell Apell Direc Cdi Ciud


ido1 ido2 cin goPo ad_c
_clie _clie _clie stal_ lient
nte
nte
nte clien
e
te

Ejemplo 1: Banco
id_s
ucur
sal

id_sucursal

Cliente

Apell Apell Direc Cdi Ciud


ido1 ido2 cin goPo ad_c
_clie _clie _clie stal_ lient
nte
nte
nte clien
e
te

Cuenta

Sucursal

Cuenta
Numero_cu
enta

Impositor

Prstamo

numero_cu
enta
Cliente

Id_cl Nom
iente bre_
clien
te

activ
os

num
ero_
prest
amo

id_s
ucur
sal

impo resto
rte_i
nicial

Prestatario
id_cliente

numero_pr
estamo

Reducci
Reduccin de Esquemas EE-R a tablas

52

Temas de Discusi
Discusin

Temas
de Discusin
y Ejercicios

Cmo se convertira una base de datos expresada en


Lenguaje ODL al modelo relacional?

Modelo Relacional
Bases de Datos
Ingenier
Ingeniera T
Tcnica en Inform
Informtica de Sistemas
Temas de Discusi
Discusin y Ejercicios

54

Ejercicios
Transformar al Modelo Relacional los esquemas E-R de los
ejemplos de la biblioteca, el videoclub y las pelculas
Indicar un posible Diagrama E-R para la base de datos
relacional dada por las relaciones
empleado (nombre_empleado, calle, ciudad)
trabaja (nombre_empleado, nombre_empresa, sueldo)
empresa (nombre_empresa, ciudad)
jefe (nombre_empleado, nombre_jefe)

Temas de Discusi
Discusin y Ejercicios

55

10

Você também pode gostar