Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id...

36
1 Modelo Relacional (La piedra angular de las tecnologías de información en nuestra época) Universidad de los Andes Demián Gutierrez Enero 2010

Transcript of Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id...

Page 1: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

1

Modelo Relacional(La piedra angular de las tecnologías de información en nuestra época)

Universidad de los AndesDemián Gutierrez

Enero 2010

Page 2: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

2

Modelo ER / Diagramas ER

Mundo Real(Minimundo)

Esquema Interno

Esquema Conceptual

Esquema Externo

ModeladoER

BD

Transformación

Transformación

Modelos Conceptuales(De alto nivel, ERE,

UML)

Modelos“de Implementación” (básicos)

(De bajo nivel)

Page 3: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

3

Modelo Básicos (de implementación)

Jerárquico (1960 / 1966, primera implementación IBM)

Redes (Charles Bachman en 1969)

Relacional (E. Codd en 1970 )

Orientado por Objetos(Fines de los 80)

Objeto – Relacional(Inicios de los 90)

Page 4: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

4

Modelo Relacional (Objeto-Relacional)

Está basado en el concepto matemático de relación.

Se fundamenta en la teoría de normalización de las relaciones, que permite eliminar el comportamiento anormal de las relaciones, luego de

actualizaciones, así como el control de la redundancia de datos

Page 5: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

5

Modelo Relacional (Conceptos)

Dominio:Conjunto de valores

Ej:

colores = {'rojo', 'verde', 'azul'}marcas = {'fiat', 'toyota', 'ford', 'honda'}

Page 6: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

6

Modelo Relacional (Conceptos)

Relación: Subconjunto del producto

cartesiano de una lista de dominios

¿Subcon... de qué de una lista de qué?

Page 7: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

7

Modelo Relacional (Conceptos)

Producto cartesiano de colores y marcas(denotado colores x marcas):

colores={'rojo', 'verde', 'azul'}marcas={'fiat', 'toyota', 'ford', 'honda'}

color marca

rojo

verde

azul

rojo

verde

azul

rojo

... ...

fiat

fiat

fiat

toyota

toyoya

toyota

ford

Producto Cartesiano:Todos contra todos:

Page 8: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

8

Modelo Relacional (Conceptos)

...luego podemos tomar un subconjunto del producto cartesiano de los dominios:

color marca

rojo

verde

azul

rojo

verde

azul

rojo

... ...

fiat

fiat

fiat

toyota

toyoya

toyota

ford

R1={('fiat', 'verde'), ('toyota', 'azul'), ('ford', 'rojo')}

R2={('rojo', 'honda')}, o bien R3={}

R1 color marca

verde

azul

rojo

fiat

toyota

fordRelación

Page 9: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

9

Modelo Relacional (Conceptos)

Esquema de una relación (o tabla): nombre de la relación seguido de la lista de sus atributos con sus

dominios

Atributo: Columna en una relación identificada por un nombre

Tupla / Registro: Fila en una tabla o relación que contiene un conjunto de valores acordes al esquema

de la relación (sus columnas y dominios)

Page 10: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

10

Modelo Relacional (Conceptos)

R1 color marca

verde

azul

rojo

fiat

toyota

ford

Atributo o Columna

Esquema por

extensión

Tupla o fila(toyota, azul)

Tabla o Relación

R1(marca, color)

Esquema por intensión (Si, con

“s”, no es un error)

NOTA: El valor de un atributo puede ser nulo en una columna particular.

¿Qué significa esto?

Page 11: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

11

Modelo Relacional (Conceptos)

INTENSIÓN. En Teoría de los Conceptos, el conjunto de las propiedades, las características o atributos esenciales (y

también accidentales) de un objeto, que le dan una identidad específica y lo distinguen de cualquier otro. En

la construcción de un concepto, refiere a la suma de sus enunciados esenciales. // 2. En Lingüística, conjunto de

rasgos semánticos que definen la clase denotada por el signo. Cuanto mayor es la intensión de un concepto, más limitada es

su extensión. Son precisos más rasgos semánticos para definir "gaviota" que para definir "ave", aunque en el universo

real hay más aves que gaviotas. V.A. DEFINICION POR INTENSION. V.A. EXTENSION.I INTENSION; CONNOTATION.

Tomado de: http://www.eubca.edu.uy/diccionario/letra_i.htm

Page 12: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

12

¿qué es una base de datos relacional?

Page 13: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

13

Base de Datos Relacional

Base de Datos Relacional:Base de datos que cumple con el modelo

relacional, donde su esquema es un conjunto de esquemas de relación de diferente

nombre cada uno

Esquema de una base de datos:El conjunto de esquemas o tablas que

conforman una base de datos

Page 14: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

14

Reglas de Formación

Cada tupla tiene un número fijo de atributos o columnas

Cada relación o tabla contiene un único tipo de fila o tupla

No se permiten atributos compuestos o grupos repetitivos (Atributos Multivaluados)

Para que una relación sea una relación, debe cumplir con:

Page 15: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

15

Modelo Relacional (Conceptos)

Estudiante Cédula Nombre Apellido Curso9.644.667 Pedro Pérez BD, IS10.133.212 Gabriel Mendoza PRI , CA1011.332.334 Luis Gonzales PRI I , SR10, EST114.126.112 Gilberto Zapata BD, IA

Atributo Multivaluado / Compuesto

Grupo Repetitivo

Estudiante Cédula Nombre Apellido Curso9.644.667 Pedro Pérez BD9.644.667 Pedro Pérez IS

10.133.212 Gabriel Mendoza PRI10.133.212 Gabriel Mendoza CA1011.332.334 Luis Gonzales PRII11.332.334 Luis Gonzales SR1011.332.334 Luis Gonzales EST114.126.112 Gilberto Zapata BD14.126.112 Gilberto Zapata IA

Page 16: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

16

Reglas de Formación

Un atributo o grupo de ellos que identifiquen unívoca e inequívocamente cada tupla de la relación es una clave

candidata

Cada tupla es única y se identifica con su clave primaria

La clave primaria de una relación se selecciona entre las claves candidatas

Además, también, debe cumplir con:

Los atributos que forman parte de la clave primaria no pueden ser nulos

Page 17: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

17

Modelo Relacional (Conceptos)

Estudiante Cédula #Carnet Nombre Apellido

9.644.667 10203 Pedro Pérez

14.126.112 11098 Gilberto Zapata

Claves candidatas:

Cédula

o bien...

#Carnet

Superclaves:

Cédula + #CarnetCédula + Nombre#Carnet + Apellido

etcétera...

Estudiante Cédula #Carnet Nombre Apellido

9.644.667 10203 Pedro

14.126.112 11098 Zapata

Pérez

Gilberto

Clave primaria (seleccionada de

las claves candidatas):

Cédula

¿Por qué nombre + apellido no es una clave candidata?

La clave se representa

subrayando los atributos que la

componen

Page 18: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

18

Claves:Concretas / Abstractas / Incrementales (Auto)

Estudiante Cédula #Carnet Nombre Apellido

9.644.667 10203 Pedro Pérez

14.126.112 11098 Gilberto Zapata

Materia Código Nombre

BD01 Bases de Datos

IS02 Ing. del Software

Estudiante Cédula #Carnet Nombre Apellido

1 9.644.667 10203 Pedro

2 14.126.112 11098 Zapata

Id

Pérez

Gilberto

La cédula es algo muy concreto, existe, hasta “cierto punto” se puede

tocar

El código en el fondo no existe, es un invento que se usa para poder diferenciar una materia

de otra (pero sin embargo, una vez establecido es un atributo que tiene sentido)

El id (de identificador) simplemente no existe.

Cada fila tiene (por decreto) un id distinto, y este se va generando de

forma incremental a medida que se insertan

registros

¿Independientemente de que el Id seala clave la cédula podrá repetirse?

Page 19: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

19

Claves:Simples / Compuestas

Estudiante Cédula #Carnet Nombre Apellido

9.644.667 10203 Pedro

14.126.112 11098 Zapata

Pérez

GilbertoLa cédula por si sola puede diferenciar un estudiante de

otro

Semestre Fecha Inicio Fecha Fin

A09 07/01/09 06/05/09

B09 15/05/09 15/12/09

A10 05/01/10 15/07/10

B10 20/05/10 14/12/10

CodSem

Semestre Año Fecha Inicio Fecha Fin

A 09 07/01/09 06/05/09

B 09 15/05/09 15/12/09

A 10 05/01/10 15/07/10

B 10 20/05/10 14/12/10

Sem

El CodSem por si mismo puede diferenciar un

semestre de otro

Ni el atributo Sem, ni el atributo Año por si mismos pueden

diferenciar un semestre de otro, es necesario usarlos en conjunto

(concatenados) para poder diferenciar un semestre de otro

Page 20: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

20

Reglas de Formación

Además, también, debe cumplir con:

Si un atributo A que pertenece a R1 es también la clave primaria de R2,

entonces A es un atributo foráneo de R1, y se le suele llamar clave foránea

(Integridad Referencial)

Page 21: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

21

Reglas de Formación

Si A es la clave primaria de R2 y también una clave foránea de R1, entonces para toda tupla de R1

donde A != nulo debe existir la tupla correspondiente en R2 con el valor de A que existe en la tupla de R1

Los atributos que forman parte de una clave foránea pueden ser nulos (no hay relación), aunque en

muchos casos es buena idea evitar esto si es posible

Además, también, debe cumplir con:

Page 22: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

22

Claves:Foráneas (I)

Departamento Código Nombre

01 9644667

02 Computación 14126112

03 Control NULL

CédulaJefe

Inv. de Operaciones

Profesor Cédula Nombre Apellido

9.644.667 Pedro 01

14.126.112 Zapata 02

CodDpto

Pérez

Gilberto

CédulaJefe es una clave foránea de departamento que apunta al

atributo Cédula en Profesor

CodDpto es una clave foránea de Profesor que apunta al atributo Código

en Departamento

Si tomamos todas las claves foráneas del

diagrama y asumimos que CédulaJefe en

Departamento es única (Es decir, no se puede repetir en filas distintas) ¿Qué tipos relaciones existen

(cardinalidad) entre Departamento y Profesor?

Page 23: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

23

Claves:Foráneas (I I)

Materia Código Nombre

BD Bases de Datos

IS Ing. del Software

SO Sist. Operativos

Estudiante Cédula Nombre Apellido

9.644.667 Pedro Pérez

14.126.112 Gilberto Zapata

¿Cuál será la clave primaria de esta

relación?

9.644.667 BD

9.644.667 SO

14.126.112 BD

14.126.112 IS

Est-Mat CedulaEst CódigoMat

¿Qué tipo de relación existe (cardinalidad) entre

Estudiante y Est-Mat? ¿Y entre Est-Mat y Materia?

¿Y entre Estudiante y Materia?

Est-Mat es una tabla intermedia que sirve para relacionar Estudiante con Materia

Page 24: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

24

Reglas de Formación

Los valores de los atributos deben pertenecer al dominio definido para

cada atributo

El orden de las tuplas en la relación es irrelevante (No se puede contar con que

las tuplas vengan en cierto orden)

Además...:

Page 25: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

25

Reglas de Formación

Un mismo dominio puede ser usado por diferentes atributos (Independientemente

de que exista una relación de claves foráneas o no)

Además...:

A partir de una o más tablas se pueden producir nuevas tablas diferentes

mediante el uso de las operaciones del álgebra relacional

Page 26: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

26

Reglas de Integridad

Los Sistemas de Gestión de Bases de Datos permiten establecer ciertas reglas que deben cumplirse sobre

los atributos en las distintas relaciones que conforman una base de datos relacional

Semestre Fecha Inicio Fecha Fin Fecha Inscripción Fecha Retiro

U09 07/01/09 06/05/09 05/01/09 01/04/09

A10 11/01/10 15/07/10 05/01/10 10/06/10

B10 20/05/10 14/12/10 15/05/10 09/11/10

CodSem

Fecha Inicio< Fecha FinFecha Inscripción< Fecha Inicio

Fecha Retiro< Fecha Fin

Son los predicados definidos por el Administrador de la Base de Datos sobre los valores de los atributos usando

el lenguaje de definición de datos

Page 27: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

27

Ejemplo de un Esquema Relacional(Esquema)

Cliente(codCli, nombre, balance, limiteCrédito, descuento, dirección)

Pedido(codPed, estado, dirEnvio, codArt, cantPedida, cantEnviada)

Articulo( codArt, nomArt, descripcion)

Inventario(codArt, codPlanta, cantidadExistencia)

Las claves primarias están subrayadas y las claves foráneas aparecen escritas en itálicas (y en negrita)

Pedido-Cliente(codPed, codCli)

¿Qué relaciones extrañas, posibles

problemas o incoherencias puede

encontrar en el modelo?

¿Cuántos artículos puedo almacenar en

una planta?

¿Cuántos artículos pueden incluirse en

un pedido?

¿Cuántos clientes están involucrados

en un pedido?

Page 28: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

28

Ejemplo de un Esquema Relacional(Esquema)

Cliente(codCli, nombre, balance, limiteCrédito, descuento, dirección)

Pedido(codPed, estado, dirEnvio, codCli, cantPedida, cantEnviada)

Articulo( codArt, nomArt, descripcion)

Inventario(codArt, codPlanta, cantidadExistencia)

Pedido-Artículo(codPed, codArt)

Page 29: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

29

Ejemplo de un Esquema Relacional(Tabla de Dominios I) (Una tabla global)

Atributo Descripción DominioCódigo del cliente Cadena(4)

nombre Nombre del cliente

balance Moneda (NO NULO)

Moneda (NO NULO)

descuento Descuento aplicado Moneda (NO NULO)

Código del pedido Cadena(6)

codCliCadena(32) sólo letras ,.”-’

Balance actual del cliente

limiteCrédito Límite de crédito del cliente

dirección, dirEnvio Dirección del cliente y dirección de envío

Cadena(128) letras, dígitos, . , # ‘ / -

codPed

Se puede tener una sola tabla de dominios (con todos los dominios de todas las relaciones)

continua...TODO: REVISAR COHERENCIA

Page 30: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

30

Ejemplo de un Esquema Relacional(Tabla de Dominios I) (Una tabla global)

Atributo Descripción Dominio

estado Línea de pedido

Cantidad pedida Entero+

Entero+

Código del artículo Cadena(8)

Nombre del artículo

descripción Descripción del artículo

Código de la planta Cadena(2)

Entero+ (NO NULO)

Enumerado:0=pedido, 1=procesado, 2=pagado,3=enviado, 4=cancelado

cantPedida

cantEnviada Cantidad enviada del artículo

codArt

nomArt Cadena(64) letras, dígitosCadena(256) letras ,.”-’

codPlanta

cantExistencia Cantidad actual en existencia

...continuación

Page 31: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

31

Ejemplo de un Esquema Relacional(Tabla de Dominios I) (Una tabla por relación)

Atributo Descripción Dominio

Código del cliente

nombre Nombre del cliente

balance Balance actual del cliente Moneda (NO NULO)

Límite de crédito del cliente Moneda (NO NULO)

descuento Descuento aplicado Moneda (NO NULO)

dirección

Tabla: Cliente

codCli Cadena(4) (PK)

Cadena(32) sólo letras ,.”-’

limiteCrédito

Dirección del cliente y dirección de envío

Cadena(128) letras, dígitos, . , # ‘ / -

Atributo Descripción Dominio

Código del pedido Cadena(6)

estado Línea de pedido

Cantidad pedida Entero+

Cantidad enviada del artículo Entero+

Tabla: Pedido

codPed

Enumerado: 0=pedido, 1=procesado, 2=pagado, 3=enviado, 4=cancelado

dirEnvio Dirección del cliente y dirección de envío

Cadena(128) letras, dígitos, . , # ‘ / -

codCli Código del cliente que realiza el pedido

Cadena(8) (Referencia a la tabla Cliente)

cantPedida

cantEnviadacontinua...

Page 32: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

32

Ejemplo de un Esquema Relacional(Tabla de Dominios I I) (Una tabla por relación)

Atributo Descripción Dominio

Código del artículo

Nombre del artículo Cadena(64) letras, dígitos

descripción Descripción del artículo

Tabla: Artículo

codArt Cadena(8) (PK)

nomArt

Cadena(256) letras ,.”-’

Atributo Descripción Dominio

Código del pedido

Código del artículo

Tabla: Pedido-Artículo

codPed Cadena(6) (Referencia a la tabla Pedido) (PK)

codArt Cadena(4) (Referencia a la tabla Cliente) (PK)

Atributo Descripción Dominio

Código del artículo

Código de la planta

Entero+ (NO NULO)

Tabla: Inventario

codArt Cadena(8) (Referencia a la tabla Artículo) (PK)

codPlanta Cadena(2) (PK)

cantExistencia Cantidad actual en existencia

...continuación

Page 33: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

33

Modelo Objeto-Relacional

Es una extensión (algunas veces caótica poco estandarizada y muy dependiente del SGBD) que pretende añadir algunas

características de Orientación por objetos al modelo Relacional

Page 34: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

34

Modelo Objeto-Relacional

Se pueden crear nuevos tipos de datos que pueden ser tipos compuestos, pero que deben ser soportados por el propietario del tipo, esto es deben definir al menos dos métodos transformadores, uno para convertir el tipo nuevo a ASCII y el otro que convierte de ASCII al nuevo tipo. Se soportan tipos complejos como: registros,

conjuntos, referencias, listas, pilas, colas y arreglos

Tipo Compuesto Teléfono (cód_país, cód_área, cód_sector, número_local)

Ej: Teléfono (58, 274, 244, 3454)

Se traduce a una columna (Atributo) que tiene “cadenas”de con el siguiente formato:

'+cód_país-cód_área-cód_sector-número_local'

Ej: '+58-274-244-3454'

transformación definida por el propietarioo creador del tipo

Page 35: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

35

Modelo Objeto-Relacional

Se pueden crear funciones que tengan un código en algún lenguaje de programación, por ejemplo: SQL,

Java, C, etcétera (Stored Procedures / Procedimientos Almacenados)

Se pueden crear operadores asignándoles un nombre y asociándolos a una función ya definida o creada con

anterioridad

Posibilidad de incluir el chequeo de las reglas de integridad referencial a través de los triggers o gatillos

Se soporta el encadenamiento dinámico y herencia en los tipos tupla o registro

Page 36: Modelo Relacional -  · contiene un conjunto de valores acordes al esquema ... (por decreto) un id distinto, y ... Son los predicados definidos por el Administrador de la

36

Gracias

¡Gracias!