Download - Modelo Relacional(E-I-M).pdf
-
1
Modelo Relacional
-
2
Caractersticas Generales
Posee un slido fundamento terico
Introducido en 1970 por Codd
Basado en una estructura simple y uniforme
Describe principios bsicos
-
3
Caractersticas Generales (Cont)
Modelo Auto
4 ruedas
asientos
se traslada
etc.
Caractersticas
esenciales,
imprescindibles
-
4
Caractersticas Generales (Cont)
autos diferentes
de fabricantes
diferentes
iguales en cuanto a
sus propiedades
fundamentales
-
5
Modelo Relacional
Modelo
Relacional
Estructura
Integridad
Manipulacin
-
6
Modelo Relacional
Estructura
Forma en la que se almacenan los datos
-
7
Estructura
base de datos
relacional
coleccin de
relaciones
informalmente
tablas
archivos simples
-
8
Estructura
Terminologa: Tablas tabla
DNI Nombre Direcc Edad
20198234 Miguel Los Alerces 11 S 22 16754234 Ana 25 de mayo 23 E 35 6578432 Elmo Libertador 33 O 67 18987000 Juan Salta 10 32
filas
columnas
-
9
Estructura
Terminologa: Archivosarchivo
DNI Nombre Direcc Edad
20198234 Miguel Los Alerces 11 S 2216754234 Ana 25 de mayo 23 E 35 6578432 Elmo Libertador 33 O 6718987000 Juan Salta 10 32
registros
campos
-
10
Estructura
Relacin
nica estructura del modelo
Estructura elemental, no descomponible, atmica
-
11
Estructura: Grficamente
DNI Nombre Direcc Edad
20198234 Miguel Los Alerces 11 S 22 16754234 Ana 25 de mayo 23 E 35 6578432 Elmo Libertador 33 O 67 18987000 Juan Salta 10 32
tuplas
atributos
relacin
dominios
-
12
Estructura: Dominios
Un dominio D es un conjunto de valores
atmicos vlidos
Un dominio, en general, tendr:
Nombre
Tipo de datos
Formato
Informacin adicional (ejemplo, unidad de medida)
-
13
Estructura: Dominios
Ejemplos:
Nros_tel_Argentina Def. lgica: Conjunto de nros. tel. vlidos de xxx dgitos de Argentina. Tipo de dato/Formato: Cadena de caracteres de la forma (ddd)dddd, donde cada d representa a un dgito decimal, y los 3 primeros
forman el cdigo de rea.
Pesos_pacientes Def. lgica: Pesos posibles de los pacientes de un mdico pediatra, oscilan entre 0,500 y 60 (por ejemplo). Tipo de dato/Formato: Nmero real entre 0,500 y 60.
Unidad de medida: Kilogramo
Promedios_notas: Valores posibles de los promedios de notas, cada uno ser un valor real entre 0 y 10.
Edades_alumnos: Edades posibles de los alumnos de la facultad, oscilan entre 17 y 50 (por ejemplo).
Estados_civiles_empleados: Valores posibles para el estado civil de un empleado, a saber: soltero, casado, separado,viudo.
Estados_civiles_alumnos: Valor posible para el estado civil de un alumno de una escuela primaria, a saber: soltero.
-
14
Estructura: Dominios
Complejidad del concepto de dominios:
Definir el conjunto de todos los dominios posibles
Definir las operaciones unarias y binarias vlidas
Para cada operacin vlida definida, identificar el
dominio resultante
-
15
Un esquema de relacin se compone de:
Nombre
Lista de atributos
Denotado:
R(A1, A2, A3, , An)
nombre grado
(Cantidad de atributos)
Estructura: Esquema de Relacin /
Intensin de una Relacin
-
16
Estructura: Esquema de Relacin /
Intensin de una Relacin
R(A1, A2, A3, , An)
Cada Ai es el nombre del rol que desempea algn
dominio D en el esquema de relacin R
El dominio D de Ai, se denota dom(Ai)
Cada dom(Ai) no son necesariamente distintos
Ejemplo de dominios:
dom(tel_alum)= Nros_tel_Argentina
Donde Nros_tel_Argentina es un dominio previamente
definido
-
17
Estructura: Relacin / Estado de
Relacin / Extensin
Una relacin r del esquema de relacin
R(A1, A2, A3, , An) denotado por r(R) es un conjunto
finito de transformaciones* r = {t1,t2, , tm}
* Transformacin = Funcin
Donde:
Cada tupla ti es una transformacin de R en D
D es la unin de todos los dominios de los atributos
Por lo tanto, t[Ai] debe estar en dom(Ai) con 1in para
cada transformacin t en r
-
18
Estructura: Relacin / Estado de
Relacin / Extensin
* Transformacin = Funcin
Donde:
Cada t[Ai] es un elemento de dom(Ai) o bien un valor nulo
El i-simo valor de la tupla t que corresponde al atributo Ai, se
denota t[Ai]
Entonces, cada tupla se considera como un conjunto de pares
(atributo, valor)
ti = {(A3,vi3), (A1,vi1), (Am,vim), }
Por lo tanto, puesto que ya vimos que r = {t1,t2, , tm}
entonces r es un conjunto de conjuntos
-
19
Estructura: Relacin / Estado de
Relacin / Extensin
Una relacin tambin puede definirse:
r(R) es una relacin matemtica de grado n sobre los
dominios dom(A1), dom(A2), , dom(An)
Subconjunto del producto cartesiano de los dominios de R
r(R) c (dom(A1) x dom(A2)x x dom(An))
-
20
Estructura: Relacin / Estado de
Relacin / Extensin
r(R) c (dom(A1) x dom(A2)x x dom(An))
El producto cartesiano corresponde a todas las combinaciones posibles de los valores de los dominios
subyacentes
El estado actual de la relacin r refleja solamente las tuplas vlidas que representan un estado especfico del
mundo real
-
21
Estructura: Caractersticas de las
Relaciones
Las tuplas de una relacin no estn
ordenadas
Los atributos de una tupla no estn
ordenados
Cada valor en una tupla es un valor atmico
No existen tuplas repetidas (clave primaria)
-
22
Modelo Relacional
Modelo
Relacional
Estructura
Integridad
Manipulacin
-
23
Integridad
Concepto Integridad:
Refiere a la correctitud de los datos
Las restricciones contribuyen a mantenerla
-
24
Integridad
Restricciones
de integridad
Restricciones
especficas de una
base de datos
Restricciones
generales aplicables
a cualquier base de
datos
Definidas dentro del
modelo relacional
-
25
Integridad
Las restricciones del modelo relacional son:
1. De dominio
2. De clave
3. De no nulo
4. De integridad de entidades
5. De integridad referencial
Relaciones individuales
Base de datos
(Varias relaciones)
-
26
Integridad
Restricciones dominio (Sobre relaciones individuales):
Especifican que el valor de cada atributo Ai debe ser un valor atmico del dominio
dom(Ai )
-
27
Integridad
Restricciones de clave (Sobre relaciones individuales):
Una relacin est definida como un conjunto de tuplas
No pueden existir tuplas repetidas
Siempre existir un subconjunto de atributos SC que
satisfacer, en todo estado de la relacin, para cualquier
par de tuplas i j:
Ti[SC] Tj[SC]
Toda superclave especifica una restriccin de unicidad
superclave
-
28
Integridad
Restricciones de nulo (Sobre relaciones individuales):
Para cada atributo se puede especificar si permite o no
valores nulos
-
29
Integridad
Restricciones aplicadas a bases de datos
Un esquema de base de datos relacional S es:
Un conjunto de esquemas de relaciones
S={R1, R2, , Rm}
Un conjunto de restricciones RI de integridad
-
30
Integridad
Restricciones aplicadas a bases de datos
Un estado de base de datos relacional BD de S es un
conjunto de estados de relaciones BD={r1, r2, , rm} tal que:
Cada ri es un estado de Ri
Todo ri satisface las restricciones de integridad
especificadas en RI
-
31
Integridad
Restriccin de integridad de entidades
Ningn valor de clave primaria (CP) puede contener
valores nulos
-
32
Integridad
Restriccin de integridad referencial
Clave fornea (Rest.Int. entre los esquemas de relaciones R1y R2, no necesariamente distintas ): Un conjunto de atributos CF del esquema de relacin R1 es una clave fornea de R1 si satisface:
Los atributos de CF tienen el mismo dominio que los atributos de la
CP del esquema de relacin R2.
Todo valor de CF en una tupla ti ocurre como valor de CP en alguna
tupla del estado actual de r2 o bien es totalmente nulo.
R1 Relacin Referenciante
R2 Relacin Referenciada
Contiene la Regla de Integridad Referencial
-
33
Integridad
Restriccin de integridad referencial
Relacin
Referenciante
Relacin
Referenciada
Clave fornea
Clave primaria
-
34
Modelo Relacional
Modelo
Relacional
Estructura
Integridad
Manipulacin
-
35
Algebra Relacional
Operadores del algebra se pueden clasificar
Segn la pertenencia a la
teora de conjuntos
Segn la posibilidad de
descomponerlos
Tradicionales
Especiales
Primitivos
Derivados
Segn la cantidad de
argumentos
Unarios
Binarios
-
36
Algebra Relacional (Bsica)
Segn la pertenencia a la
teora de conjuntos
Segn la posibilidad de
descomponerlos
Tradicionales
1. Unin
2. Interseccin
3. Diferencia
4. Producto Cartesiano
Especiales
1. Seleccin
2. Proyeccin
3. Join
4. Divisin
Primitivos
1. Unin
2. Diferencia
3. Producto Cartesiano
4. Seleccin
5. Proyeccin
Derivados
1. Interseccin
2. Join
3. Divisin
Segn la cantidad de
argumentos
Unarios
1.Seleccin
2.Proyeccin
Binarios
1.Unin
2.Diferencia
3.Producto
Cartesiano
4.Interseccin
5.Join
6.Divisin
-
37
Algebra Relacional
Todos los operadores satisfacen la propiedad de clausura:
Todo operador del lgebra toma como argumento/s esquemas de relaciones y devuelve tambin
un esquema de relacin
Ninguna expresin del algebra
puede generar tuplas repetidas
Generar expresiones
encadenadas o anidadas
-
38
Algebra Relacional
Secuencias de operaciones y operador renombrar:
Es frecuente necesitar aplicar varios operadores uno tras otro
Anidar expresiones Aplicar los operadores de a uno y
crear resultados intermedios
Nombrar las relaciones intermedias
Temp Expresin
-
39
Algebra Relacional
Secuencias de operaciones: Asignacin
No slo permite darle nombre a una relacin sino tambin cambiar
el nombre de sus atributos
R2 (nom_nuevo1, nom_nuevo2) R1
Donde:
R1 tiene atributos nombre1 y nombre 2
nombre1 y nom_nuevo1 estn definidos sobre el mismo dominio
idem para nombre2 y nom_nuevo2
-
40
Algebra Relacional
Operador renombrar
No slo permite renombrar el nombre de la relacin sino tambin
el nombre de sus atributos
Donde:
R es el nombre de la relacin original
S es el nuevo nombre de la relacin
B1, B2, , Bn son los nuevos nombres de los atributos. Si los atributos de R
son (A1 ,A2, , An) en ese orden, entonces cada Ai se renombra como Bi
S(B1,B2, , Bn) (R) Renombra la relacin R y sus atributos
S (R) o
(B1,B2, , Bn) (R)
Renombra nicamente la relacin
Renombra slo los atributos
NOTA: En el caso que no necesiten ser renombrados todos los atributos, lo mismo se los debe
mencionar a todos, y se colocan los mismos nombres, es decir, los viejos.
-
41
Algebra Relacional
Operador Funcin Notacin
Seleccin Genera otra relacin cuyo
esquema es el mismo de R y,
en cuanto a la extensin, posee
todas las tuplas de R que
satisfacen la condicin de
seleccin
(R)
-
42
Algebra Relacional
Comentarios:
La es una expresin booleana que puede utilizar los
operadores de comparacin {,=,,,}. Estos operadores se aplican a
atributos cuyos dominios son valores ordenados (numricos, fechas, cadenas de
caracteres). Un ejemplo de dominio no ordenado es COLOR={rojo, verde,
amarillo}.
Las clusulas pueden conectarse con operadores booleanos
El operador seleccin es conmutativo:
( (R)) = ( (R))
Siempre es posible reemplazar una cascada de selecciones en una sola:
( (R)) = and (R)
Operador seleccin
-
43
Algebra Relacional
Operador Funcin Notacin
Proyeccin Genera otro esquema de
relacin que contiene solamente
los atributos de R especificados
en la lista de atributos
R
Comentarios:
La cantidad de tuplas de la relacin resultante ser menor o igual a la
cantidad de tuplas de la relacin R.
El operador de proyeccin no es conmutativo.
-
44
Algebra Relacional
Algunas consideraciones importantes:
Relaciones Unin Compatibles o Compatibles con la Unin
Dos relaciones, R(A1, A2, , An) y S(B1, B2, , Bn), sern unin
compatibles si tienen el mismo tipo de tuplas. Es decir, si ambas
tienen grado n y si dom(Ai)=dom(Bi) para 1 i n.
Calificacin de Atributos
Los atributos de una relacin R(A1, A2, , An) pueden ser calificados
colocando el nombre de la relacin, luego un punto y por ltimo el
nombre del atributo, por ejemplo,R.A2.
-
45
Algebra Relacional
Operador Funcin Notacin
Unin * Genera un esquema de relacin que
posee el mismo conjunto de atributos
de R1 y R2, e incluye las tuplas que
pertenecen a R1 o a R2 o a ambas
R1 U R2
* Los argumentos deben ser Unin Compatibles
Comentarios:
La cantidad de tuplas de la relacin resultante ser menor o igual a la
cantidad de tuplas de la relacin R1 + la cantidad de tuplas de R2.
El operador union es conmutativo.
-
46
Algebra Relacional
Operador Funcin Notacin
Interseccin* Genera un esquema de relacin que
posee el mismo conjunto de atributos
de R1 y R2, e incluye las tuplas que
pertenecen a R1 y a R2
R1 R2
* Los argumentos deben ser Unin Compatibles
Comentarios:
El operador interseccin es conmutativo.
-
47
Algebra Relacional
Operador Funcin Notacin
Diferencia * Genera un esquema de relacin que
posee el mismo conjunto de atributos
de R1 y R2, e incluye las tuplas que
pertenecen a R1 y no pertenencen a
R2
R1 - R2
* Los argumentos deben ser Unin Compatibles
Comentarios:
El operador diferencia no es conmutativo.
-
48
Algebra Relacional
Operador Funcin Notacin
Producto
Cartesiano
Genera un esquema de relacin
que posee la unin de atributos
de R1 y R2, y como tuplas todas
las combinaciones posibles de
las tuplas de R1 y R2
R1 x R2
Comentarios:
El operador producto cartesiano es conmutativo.
-
49
Algebra Relacional
Operador Funcin Notacin
Join Genera un esquema de relacin que
posee la unin de atributos de R1 y
R2, (n+m), y como tuplas todas las
combinaciones posibles de R1 y R2 que satisfacen la condicin de
reunin
R1 R2
Donde:
R1(A1,A2, , An)
R2(B1,B2, , Bm)
Comentarios:
La condicin de reunin es de la forma y y y .
Donde cada tiene la forma Ai Bj. Ai y Bj pertenecen al mismo dominio
y es un operador de comparacin {=,,,,}. Un join con una condicin
general como sta, se denomina Join.
En particular, cuando la condicin de reunin utiliza el operador de
comparacin =, el join es llamado equijoin.
-
50
Algebra Relacional
Operador Funcin Notacin
Join Externo
Derecho
Idem anterior pero adems posee
todas las tuplas de R2 que no tienen
valores coincidentes en R1
R1 R2
Donde:
R1(A1,A2, , An)
R2(B1,B2, , Bm)
Join Externo
Izquierdo
Idem anterior pero adems posee
todas las tuplas de R1 que no tienen
valores coincidentes en R2
R1 R2
Donde:
R1(A1,A2, , An)
R2(B1,B2, , Bm)
Join Externo
Completo
Idem anterior pero adems posee
todas las tuplas de R1 que no tienen
valores coincidentes en R2, y todas
las tuplas de R2 que no tienen
valores coincidentes en R1
R1 R2
Donde:
R1(A1,A2, , An)
R2(B1,B2, , Bm)
-
51
Algebra Relacional
Operador Funcin Notacin
Natural Join Es equivalente a un equijoin con
ciertas diferencias:
La condicin de reunin es
implcita, y es la igualdad sobre
los atributos con idnticos
nombres en ambas relaciones
(R1y R2). Adems los atributos
coincidentes son mostrados
slo una vez en la relacin
resultante.
R1 * R2
Comentarios:
El operador Natural Join es conmutativo.
R1 y R2 deben tener uno o ms atributos en comn.
-
52
Algebra Relacional
Operador Funcin Notacin
Division Genera una relacin que posee
como atributos, los de R1 que
no estn en R2 (digamos Z). Y
en cuanto a las tuplas, todos
aquellos valores Z que estn
combinados en R1 con todos
los valores presentes en R2.
R1 R2
Donde:
Si Z son atributos de
R1 y S los de R2,
entonces S Z
Comentarios:
El operador Divisin no es conmutativo.
-
53
Algebra Relacional
Algunos operadores presentados corresponden a extensiones del algebra
bsica, ellos son:
1.Join Externo Izquierdo
2.Join Externo Derecho
3.Join Externo Completo
Fundamentalmente en esta instancia trabajaremos con el conjunto de
operadores bsicos.
El standard SQL2 posee, entre otros, este tipo de operadores, y en ese
contexto trabajaremos con ellos.
-
54
Prioridades de operaciones
Tienen prioridad las operaciones unarias
sobre las binarias
Las expresiones del lgebra se evalan de
izquierda a derecha
Se pueden utilizar parntesis para alterar el
orden implcito de las expresiones
-
55
Modelo Relacional
Modelo
Relacional
Estructura
Integridad
Manipulacin
-
56
Reglas de Codd
Codd defini 12 reglas que todo sistema relacional
debera soportar.
Al menos puede considerarse una referecia a partir de la
cual, un sistema podr considerarse "ms relacional" en
funcin al cumplimiento de estas reglas.
-
57
Reglas de Codd
Regla No. 1 - La Regla de la informacin
Toda la informacin en un RDBMS est explcitamente representada
de una sola manera por valores en una tabla.
Toda la informacin en una base de datos relacional se representa
explcitamente en el nivel lgico exactamente de una manera: con valores en
tablas. Por tanto los metadatos (diccionario, catlogo) se representan exactamente
igual que los datos de usuario. Y puede usarse el mismo lenguaje (ej. SQL) para
acceder a los datos y a los metadatos (regla 4)
-
58
Reglas de Codd
Regla No. 2 - La regla del acceso
garantizado
Cada tem de datos debe ser lgicamente accesible al ejecutar una
bsqueda que combine el nombre de la tabla, su clave primaria, y el
nombre de la columna.
Dado un nombre de tabla, dado el valor de la clave primaria, y dado el nombre
de la columna requerida, deber encontrarse uno y solamente un valor. Por esta
razn la definicin de claves primarias para todas las tablas es prcticamente
obligatoria.
-
59
Reglas de Codd
Regla No. 3 - Tratamiento sistemtico de
los valores nulos
La informacin inaplicable o faltante puede ser representada a travs
de valores nulos.
Un RDBMS (Sistema Gestor de Bases de Datos Relacionales) debe ser capaz
de soportar el uso de valores nulos en el lugar de columnas cuyos valores sean
desconocidos o inaplicables.
-
60
Reglas de Codd
Regla No. 4 - La regla de la descripcin de
la base de datos
La descripcin de la base de datos es almacenada de la misma manera
que los datos ordinarios, esto es, en tablas y columnas, y debe ser
accesible a los usuarios autorizados.
La informacin de tablas, vistas, permisos de acceso de usuarios autorizados,
etc, debe ser almacenada exactamente de la misma manera: En tablas. Estas
tablas deben ser accesibles igual que todas las tablas, a travs de sentencias de
SQL (o similar).
-
61
Reglas de Codd
Regla No. 5 - La regla del sub-lenguaje
Integral
Debe haber al menos un lenguaje que sea integral para soportar la
definicin de datos, manipulacin de datos, definicin de vistas,
restricciones de integridad, y control de autorizaciones y transacciones.
Esto significa que debe haber por lo menos un lenguaje con una sintaxis bien
definida que pueda ser usado para administrar completamente la base de datos.
-
62
Reglas de Codd
Regla No. 6 - La regla de la actualizacin
de vistas
Todas las vistas que son tericamente actualizables, deben ser
actualizables por el sistema mismo.
La mayora de las RDBMS permiten actualizar vistas simples, pero deshabilitan
los intentos de actualizar vistas complejas.
-
63
Reglas de Codd
Regla No. 7 - La regla de insertar y
actualizar
La capacidad de manejar una base de datos con operandos simples se
aplica no slo para la recuperacin o consulta de datos, sino tambin para
la insercin, actualizacin y borrado de datos.
Las clusulas para leer, escribir, eliminar y agregar registros (SELECT, UPDATE,
DELETE e INSERT en SQL) deben estar disponibles y operables,
independientemente del tipo de relaciones y restricciones que haya entre las tablas.
-
64
Reglas de Codd
Regla No. 8 - La regla de independencia
fsicaEl acceso de usuarios a la base de datos a travs de terminales o
programas de aplicacin, debe permanecer consistente lgicamente
cuando quiera que haya cambios en los datos almacenados, o sean
cambiados los mtodos de acceso a los datos.
El comportamiento de los programas de aplicacin y de la actividad de usuarios
va terminales debera ser predecible basados en la definicin lgica de la base de
datos, y ste comportamiento debera permanecer inalterado, independientemente
de los cambios en la definicin fsica de sta.
-
65
Reglas de Codd
Regla No. 9 - La regla de independencia
lgicaLos programas de aplicacin y las actividades de acceso por terminal
deben permanecer lgicamente inalteradas cuando quiera que se hagan
cambios (segn los permisos asignados) en las tablas de la base de
datos.
La independencia lgica de los datos especifica que los programas de aplicacin
y las actividades de terminal deben ser independientes de la estructura lgica, por
lo tanto los cambios en la estructura lgica no deben alterar o modificar estos
programas de aplicacin.
-
66
Reglas de Codd
Regla No. 10 - La regla de la independencia
de la integridad
Todas las restricciones de integridad deben ser definibles en los datos, y
almacenables en el catalogo, no en el programa de aplicacin.
-
67
Reglas de Codd
Regla No. 11 - La regla de la distribucinEl sistema debe poseer un lenguaje de datos que pueda soportar que la
base de datos est distribuida fsicamente en distintos lugares sin que esto
afecte o altere a los programas de aplicacin.
El soporte para bases de datos distribuidas significa que una coleccin arbitraria de
relaciones, bases de datos corriendo en una mezcla de distintas mquinas y distintos
sistemas operativos y que est conectada por una variedad de redes, pueda funcionar
como si estuviera disponible como en una nica base de datos en una sola mquina.
-
68
Reglas de Codd
Regla No. 12 - Regla de la no-subversinSi el sistema tiene lenguajes de bajo nivel, estos lenguajes de ninguna
manera pueden ser usados para violar la integridad de las reglas y
restricciones expresadas en un lenguaje de alto nivel (como SQL).
Algunos productos solamente construyen una interfaz relacional para sus bases de
datos No relacionales, lo que hace posible la subversin (violacin) de las restricciones
de integridad. Esto no debe ser permitido.
-
69
Reglas de Codd
As, estas 12 reglas nos permiten evaluar un
motor de base de datos relacional en vista a
los items descriptos.