Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Unidad III (antes Unidad 4)
Modelo Relacional
2
Características Generales
Posee un sólido fundamento teórico Introducido en 1970 por Codd Basado en una estructura simple y uniforme Describe principios básicos
3
Características Generales (Cont)
Modelo Auto 4 ruedas asientos se traslada etc. Características esenciales, imprescindibles
4
Características Generales (Cont)
autos diferentes de fabricantes diferentes iguales en cuanto a sus propiedades fundamentales
5
Modelo Relacional Estructura Integridad Manipulación Modelo Relacional
6
Forma en la que se almacenan los datos
Modelo Relacional Estructura Forma en la que se almacenan los datos
7
colección de relaciones
Estructura colección de relaciones base de datos relacional informalmente tablas archivos simples
8
Estructura Terminología: Tablas tabla columnas filas
9
Terminología: Archivos
Estructura Terminología: Archivos archivo campos registros
10
Estructura Relación Única estructura del modelo
Estructura elemental, no descomponible, atómica
11
Estructura: Gráficamente
dominios Dni Nombres Direcciones Edades atributos tuplas relación
12
Un dominio D es un conjunto de valores atómicos válidos
Estructura: Dominios Un dominio D es un conjunto de valores atómicos válidos Un dominio, en general, tendrá: Nombre Tipo de datos Formato Información adicional (ejemplo, unidad de medida)
13
Estructura: Dominios Ejemplos: Nros_tel_Argentina Pesos_pacientes
Def. lógica: Conjunto de nros. tel. válidos de xxx dígitos de Argentina. Tipo de dato/Formato: Cadena de caracteres de la forma (ddd)dddd, donde cada d representa a un dígito decimal, y los 3 primeros forman el código de área. Pesos_pacientes Def. lógica: Pesos posibles de los pacientes de un médico pediatra, oscilan entre 0,500 y 60 (por ejemplo). Tipo de dato/Formato: Número 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 válidas Para cada operación válida definida, identificar el dominio resultante
15
Estructura: Esquema de Relación / Intensión de una Relación
Un esquema de relación se compone de: Nombre Lista de atributos Denotado: R(A1, A2, A3, …, An) nombre grado (Cantidad de atributos)
16
Estructura: Esquema de Relación / Intensión de una Relación
R(A1, A2, A3, …, An) Cada Ai es el nombre del rol que desempeña algún dominio D en el esquema de relación 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: Relación / Estado de Relación / Extensión
Una relación r del esquema de relación R(A1, A2, A3, …, An) denotado por r(R) es un conjunto finito de transformaciones* r = {t1,t2, …, tm} Donde: Cada tupla ti es una transformación de R en D D es la unión de todos los dominios de los atributos Por lo tanto, t[Ai] debe estar en dom(Ai) con 1≤i≤n para cada transformación t en r * Transformación = Función
18
Estructura: Relación / Estado de Relación / Extensión
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 * Transformación = Función
19
Estructura: Relación / Estado de Relación / Extensión
Una relación también puede definirse: r(R) es una relación matemática 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: Relación / Estado de Relación / Extensión
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 relación r refleja solamente las tuplas válidas que representan un estado específico del mundo real
21
Estructura: Características de las Relaciones
Las tuplas de una relación no están ordenadas Los atributos de una tupla no están ordenados Cada valor en una tupla es un valor atómico No existen tuplas repetidas (clave primaria)
22
Modelo Relacional Estructura Integridad Manipulación Modelo Relacional
23
Las restricciones contribuyen a mantenerla
Integridad Concepto Integridad: Refiere a la correctitud de los datos Las restricciones contribuyen a mantenerla
24
Definidas dentro del modelo relacional
Integridad Restricciones de integridad Restricciones específicas 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: De dominio
De clave De no nulo De integridad de entidades 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 atómico del dominio dom(Ai )
27
Integridad Restricciones de clave (Sobre relaciones individuales):
Una relación 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 relación, para cualquier par de tuplas i j: Ti[SC] ≠ Tj[SC] Toda superclave especifica una restricción de unicidad superclave
28
Integridad Restricciones de nulo (Sobre relaciones individuales):
Para cada atributo se puede especificar si permite o no valores nulos
29
Restricciones aplicadas a bases de datos
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
Restricciones aplicadas a bases de datos
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 Restricción de integridad de entidades
Ningún valor de clave primaria (CP) puede contener valores nulos
32
Contiene la Regla de Integridad Referencial
Restricción de integridad referencial Clave foránea (Rest.Int. entre los esquemas de relaciones R1 y R2, no necesariamente distintas ): Un conjunto de atributos CF del esquema de relación R1 es una clave foránea de R1 si satisface: Los atributos de CF tienen el mismo dominio que los atributos de la CP del esquema de relación 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 Relación Referenciante R2 Relación Referenciada Contiene la Regla de Integridad Referencial
33
Integridad Restricción de integridad referencial Clave foránea
Relación Referenciante apunta Clave primaria Relación Referenciada
34
Modelo Relacional Estructura Integridad Manipulación Modelo Relacional
35
Algebra Relacional Operadores del algebra se pueden clasificar
Según la pertenencia a la teoría de conjuntos Según la posibilidad de descomponerlos Según la cantidad de argumentos Tradicionales Especiales Primitivos Derivados Unarios Binarios
36
Algebra Relacional (Básica)
Según la pertenencia a la teoría de conjuntos Según la posibilidad de descomponerlos Según la cantidad de argumentos Tradicionales Unión Intersección Diferencia Producto Cartesiano Especiales Selección Proyección Join División Primitivos Unión Diferencia Producto Cartesiano Selección Proyección Derivados Intersección Join División Unarios Selección Proyección Binarios Unión Diferencia Producto Cartesiano Intersección Join División
37
Algebra Relacional Todos los operadores satisfacen la propiedad de clausura: Todo operador del álgebra toma como argumento/s esquemas de relaciones y devuelve también un esquema de relación Ninguna expresión 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 Expresión
39
Algebra Relacional Secuencias de operaciones: Asignación Donde:
No sólo permite darle nombre a una relación sino también cambiar el nombre de sus atributos R2 (nom_nuevo1, nom_nuevo2) R1 Donde: R1 tiene atributos nombre1 y nombre 2 nombre1 y nom_nuevo1 están definidos sobre el mismo dominio idem para nombre2 y nom_nuevo2
40
Algebra Relacional Operador renombrar
No sólo permite renombrar el nombre de la relación sino también el nombre de sus atributos ρS(B1,B2, …, Bn) (R) Renombra la relación R y sus atributos ρS (R) o Renombra únicamente la relación ρ(B1,B2, …, Bn) (R) Renombra sólo los atributos Donde: R es el nombre de la relación original S es el nuevo nombre de la relación 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 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 Función Notación Selección
Genera otra relación cuyo esquema es el mismo de R y, en cuanto a la extensión, posee todas las tuplas de R que satisfacen la condición de selección σ<condicion de selección> (R)
42
Algebra Relacional Operador selección Comentarios:
La <condición de selección> es una expresión booleana que puede utilizar los operadores de comparación {<,>,=,≤,≥,≠}. Estos operadores se aplican a atributos cuyos dominios son valores ordenados (numéricos, fechas, cadenas de caracteres). Un ejemplo de dominio no ordenado es COLOR={rojo, verde, amarillo}. Las cláusulas pueden conectarse con operadores booleanos El operador selección es conmutativo: σ<cond1> (σ<cond2> (R)) = σ<cond2> (σ<cond1> (R)) Siempre es posible reemplazar una cascada de selecciones en una sola: σ<cond1> (σ<cond2> (R)) = σ<cond1> and <cond2> (R)
43
Algebra Relacional Operador Función Notación Comentarios: Proyección
Genera otro esquema de relación que contiene solamente los atributos de R especificados en la lista de atributos π<lista de atributos> R Comentarios: La cantidad de tuplas de la relación resultante será menor o igual a la cantidad de tuplas de la relación R. El operador de proyección no es conmutativo.
44
Algebra Relacional Algunas consideraciones importantes:
Relaciones Unión Compatibles o Compatibles con la Unión Dos relaciones, R(A1, A2, …, An) y S(B1, B2, …, Bn), serán unión 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. Calificación de Atributos Los atributos de una relación R(A1, A2, …, An) pueden ser calificados colocando el nombre de la relación, luego un punto y por último el nombre del atributo, por ejemplo,R.A2.
45
Algebra Relacional Operador Función Notación Comentarios: Unión *
Genera un esquema de relación 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 Comentarios: La cantidad de tuplas de la relación resultante será menor o igual a la cantidad de tuplas de la relación R1 + la cantidad de tuplas de R2. El operador union es conmutativo. * Los argumentos deben ser Unión Compatibles
46
Algebra Relacional Operador Función Notación Intersección*
Genera un esquema de relación que posee el mismo conjunto de atributos de R1 y R2, e incluye las tuplas que pertenecen a R1 y a R2 R1 ∩ R2 Comentarios: El operador intersección es conmutativo. * Los argumentos deben ser Unión Compatibles
47
Algebra Relacional Operador Función Notación Diferencia *
Genera un esquema de relación 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 Comentarios: El operador diferencia no es conmutativo. * Los argumentos deben ser Unión Compatibles
48
Algebra Relacional Operador Función Notación Producto Cartesiano
Genera un esquema de relación que posee la unión 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 Función Notación Join
Genera un esquema de relación que posee la unión de atributos de R1 y R2, (n+m), y como tuplas todas las combinaciones posibles de R1 y R2 que satisfacen la condición de reunión R1 <cond. de reunión> R2 Donde: R1(A1,A2, …, An) R2(B1,B2, …, Bm) Comentarios: La condición de reunión es de la forma <cond> y <cond> y …y <cond>. Donde cada <cond> tiene la forma Ai θ Bj. Ai y Bj pertenecen al mismo dominio y θ es un operador de comparación {=,<,>,≤,≥,≠}. Un join con una condición general como ésta, se denomina θ Join. En particular, cuando la condición de reunión utiliza el operador de comparación =, el join es llamado equijoin.
50
Algebra Relacional Operador Función Notación Join Externo Derecho
Idem anterior pero además posee todas las tuplas de R2 que no tienen valores coincidentes en R1 R1 <cond. de reunión>R2 Donde: R1(A1,A2, …, An) R2(B1,B2, …, Bm) Join Externo Izquierdo Idem anterior pero además posee todas las tuplas de R1 que no tienen valores coincidentes en R2 R <cond. de reunión>R2 Join Externo Completo Idem anterior pero además 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
51
Algebra Relacional Operador Función Notación Natural Join
Es equivalente a un equijoin con ciertas diferencias: La condición de reunión es implícita, y es la igualdad sobre los atributos con idénticos nombres en ambas relaciones (R1y R2). Además los atributos coincidentes son mostrados sólo una vez en la relación resultante. R1 * R2 Comentarios: El operador Natural Join es conmutativo. R1 y R2 deben tener uno o más atributos en común.
52
Algebra Relacional Operador Función Notación Division
Genera una relación que posee como atributos, los de R1 que no están en R2 (digamos Z’). Y en cuanto a las tuplas, todos aquellos valores Z’ que están 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 División no es conmutativo.
53
Algebra Relacional Algunos operadores presentados corresponden a extensiones del algebra básica, ellos son: Join Externo Izquierdo Join Externo Derecho Join Externo Completo Fundamentalmente en esta instancia trabajaremos con el conjunto de operadores básicos. 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 evalúan de izquierda a derecha Se pueden utilizar paréntesis para alterar el orden implícito de las expresiones
55
Modelo Relacional Estructura Integridad Manipulación Modelo Relacional
56
Reglas de Codd Codd definió 12 reglas que todo sistema relacional debería soportar. Al menos puede considerarse una referecia a partir de la cual, un sistema podrá considerarse "más relacional" en función al cumplimiento de estas reglas.
57
Regla No. 1 - La Regla de la información
Reglas de Codd Regla No. 1 - La Regla de la información Toda la información en un RDBMS está explícitamente representada de una sola manera por valores en una tabla. Toda la información en una base de datos relacional se representa explícitamente en el nivel lógico exactamente de una manera: con valores en tablas. Por tanto los metadatos (diccionario, catálogo) 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
Regla No. 2 - La regla del acceso garantizado
Reglas de Codd Regla No. 2 - La regla del acceso garantizado Cada ítem de datos debe ser lógicamente accesible al ejecutar una búsqueda 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 razón la definición de claves primarias para todas las tablas es prácticamente obligatoria.
59
Regla No. 3 - Tratamiento sistemático de los valores nulos
Reglas de Codd Regla No. 3 - Tratamiento sistemático de los valores nulos La información inaplicable o faltante puede ser representada a través 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
Regla No. 4 - La regla de la descripción de la base de datos
Reglas de Codd Regla No. 4 - La regla de la descripción de la base de datos La descripción 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 información 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 través de sentencias de SQL (o similar).
61
Regla No. 5 - La regla del sub-lenguaje Integral
Reglas de Codd Regla No. 5 - La regla del sub-lenguaje Integral Debe haber al menos un lenguaje que sea integral para soportar la definición de datos, manipulación de datos, definición 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
Regla No. 6 - La regla de la actualización de vistas
Reglas de Codd Regla No. 6 - La regla de la actualización de vistas Todas las vistas que son teóricamente actualizables, deben ser actualizables por el sistema mismo. La mayoría de las RDBMS permiten actualizar vistas simples, pero deshabilitan los intentos de actualizar vistas complejas.
63
Regla No. 7 - La regla de insertar y actualizar
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 sólo para la recuperación o consulta de datos, sino también para la inserción, actualización y borrado de datos. Las cláusulas 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
Regla No. 8 - La regla de independencia física
Reglas de Codd Regla No. 8 - La regla de independencia física El acceso de usuarios a la base de datos a través de terminales o programas de aplicación, debe permanecer consistente lógicamente cuando quiera que haya cambios en los datos almacenados, o sean cambiados los métodos de acceso a los datos. El comportamiento de los programas de aplicación y de la actividad de usuarios vía terminales debería ser predecible basados en la definición lógica de la base de datos, y éste comportamiento debería permanecer inalterado, independientemente de los cambios en la definición física de ésta.
65
Regla No. 9 - La regla de independencia lógica
Reglas de Codd Regla No. 9 - La regla de independencia lógica Los programas de aplicación y las actividades de acceso por terminal deben permanecer lógicamente inalteradas cuando quiera que se hagan cambios (según los permisos asignados) en las tablas de la base de datos. La independencia lógica de los datos especifica que los programas de aplicación y las actividades de terminal deben ser independientes de la estructura lógica, por lo tanto los cambios en la estructura lógica no deben alterar o modificar estos programas de aplicación.
66
Regla No. 10 - La regla de la independencia de la integridad
Reglas de Codd Regla No 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 aplicación.
67
Regla No. 11 - La regla de la distribución
Reglas de Codd Regla No La regla de la distribución El sistema debe poseer un lenguaje de datos que pueda soportar que la base de datos esté distribuida físicamente en distintos lugares sin que esto afecte o altere a los programas de aplicación. El soporte para bases de datos distribuidas significa que una colección arbitraria de relaciones, bases de datos corriendo en una mezcla de distintas máquinas 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 máquina.
68
Regla No. 12 - Regla de la no-subversión
Reglas de Codd Regla No Regla de la no-subversión Si 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 subversión (violación) 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.
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.