T3 Modelo de Datos Relacional

11,799 views
11,617 views

Published on

Sobre el modelo de datos relacional, Álgebra Relacional

4 Comments
9 Likes
Statistics
Notes
No Downloads
Views
Total views
11,799
On SlideShare
0
From Embeds
0
Number of Embeds
428
Actions
Shares
0
Downloads
0
Comments
4
Likes
9
Embeds 0
No embeds

No notes for slide

T3 Modelo de Datos Relacional

  1. 1. Sistemas Gestores de Base de Datos Tema.- 3 El Modelo Relacional
  2. 2. 3.1.- Introducción <ul><li>Modelo relacional basado en las matemáticas: </li></ul><ul><ul><li>Teoría de conjuntos </li></ul></ul><ul><ul><li>Lógica de predicados </li></ul></ul><ul><li>La teoría matemática: </li></ul><ul><ul><li>Predecible </li></ul></ul><ul><ul><li>Fiable </li></ul></ul><ul><ul><li>Seguro </li></ul></ul>
  3. 3. 3.2.- El modelo relacional <ul><li>A nivel lógico como tablas </li></ul><ul><li>El modelo relacional como modelo de datos: </li></ul><ul><ul><li>Estructura de datos </li></ul></ul><ul><ul><li>Integridad de datos </li></ul></ul><ul><ul><li>Manejo de datos </li></ul></ul>
  4. 4. 3.3.- Estructura de datos relacional <ul><li>Relaciones (definiciones): </li></ul><ul><ul><li>Relación: es una tabla con filas y columnas. </li></ul></ul><ul><ul><li>Atributo: columnas (campos) </li></ul></ul><ul><ul><li>Registros: filas (registros individuales) </li></ul></ul><ul><ul><li>Dominio: valores de los atributos </li></ul></ul><ul><ul><li>Tupla: fila de la relación=registro </li></ul></ul><ul><ul><li>Grado: numero de atributos de la relación </li></ul></ul><ul><ul><li>Cardinalidad: numero de tuplas de la relación </li></ul></ul><ul><ul><li>Definición formal de la relación . </li></ul></ul>
  5. 5. 3.3.- Estructura de datos relacional <ul><li>Relaciones: </li></ul><ul><ul><li>Relación </li></ul></ul><ul><ul><li>Atributos </li></ul></ul><ul><ul><li>Registro </li></ul></ul><ul><ul><li>Dominio (atributo) </li></ul></ul><ul><ul><li>Tupla=registro </li></ul></ul><ul><ul><li>Grado: 6 </li></ul></ul><ul><ul><li>Cardinalidad: 5 </li></ul></ul>
  6. 6. 3.3.- Estructura de datos relacional <ul><li>Propiedades de las relaciones : </li></ul><ul><ul><li>Cada relación un nombre unico. </li></ul></ul><ul><ul><li>Los valores de los atributos son atómicos. </li></ul></ul><ul><ul><li>No hay dos atributos que se llamen igual. </li></ul></ul><ul><ul><li>El orden de los atributos no importa. </li></ul></ul><ul><ul><li>Cada tupla es distinta </li></ul></ul><ul><ul><li>El orden de las tuplas no importa </li></ul></ul>
  7. 7. 3.3.- Estructura de datos relacional Relación Dominio
  8. 8. 3.3.- Estructura de datos relacional <ul><li>Tipos de relaciones: </li></ul><ul><ul><li>Relaciones base. </li></ul></ul><ul><ul><li>Vistas. </li></ul></ul><ul><ul><li>Instantaneas. </li></ul></ul><ul><ul><li>Resultados de consultas </li></ul></ul><ul><ul><li>Resultados intermedios. </li></ul></ul><ul><ul><li>Resultados temporales </li></ul></ul>
  9. 9. 3.3.- Estructura de datos relacional <ul><li>Claves: </li></ul><ul><ul><li>Superclave: identifican de modo único </li></ul></ul><ul><ul><li>Clave candidata: superclave unica e irreducible </li></ul></ul><ul><ul><li>Clave compuesta: formada por mas de un atributo </li></ul></ul><ul><ul><li>Clave primaria: clave candidata para identificar tuplas </li></ul></ul><ul><ul><li>Claves altenativas: las claves candidatas que no son elegidas como primaria. </li></ul></ul><ul><ul><li>Clave ajenas: atributos que son clave primaria en otra relación. </li></ul></ul>
  10. 10. 3.3.- Estructura de datos relacional <ul><li>Esquema de una BDR: </li></ul><ul><ul><li>Nombre (atributos) </li></ul></ul><ul><ul><ul><li>Oficina ( Onum , Calle, Area, Población, Teléfono, Fax) </li></ul></ul></ul><ul><ul><ul><ul><li>clave primaria </li></ul></ul></ul></ul><ul><ul><li>Relación—clave ajena--> Relación </li></ul></ul><ul><ul><ul><ul><li>Onum </li></ul></ul></ul></ul><ul><ul><ul><li>Plantilla Oficina: </li></ul></ul></ul><ul><ul><ul><ul><li>Oficina a la que pertenece el empleado </li></ul></ul></ul></ul>
  11. 11. 3.3.- Estructura de datos relacional Esquema Diagramas Referenciales
  12. 12. 3.4.- Reglas de integridad <ul><li>Para garantizar que los datos son correctos. </li></ul><ul><ul><li>Nulos. </li></ul></ul><ul><ul><li>R.I. de entidades: ninguno de los atributos que componen la clave primaria pueden ser nulos. </li></ul></ul><ul><ul><li>R.I. Referencial: si hay alguna clave ajena en una relación sus valores deben coincidir con los valores de la clave primaria a la que hacen referencia. </li></ul></ul><ul><ul><li>Reglas de negocio. </li></ul></ul>
  13. 13. 3.5.- Lenguajes relacionales <ul><li>Álgebra relacional </li></ul><ul><ul><ul><li>Selección </li></ul></ul></ul><ul><ul><ul><li>Proyección </li></ul></ul></ul><ul><ul><ul><li>Producto cartesiano </li></ul></ul></ul><ul><ul><ul><li>Unión </li></ul></ul></ul><ul><ul><ul><li>Diferencia </li></ul></ul></ul><ul><ul><ul><li>Concatenación Join </li></ul></ul></ul><ul><ul><ul><li>Concatenación externa </li></ul></ul></ul><ul><ul><ul><li>Interseción </li></ul></ul></ul><ul><ul><ul><li>División </li></ul></ul></ul><ul><ul><ul><li>Agrupación </li></ul></ul></ul>Unarias: trabaja sobre una sola relación Binarias: trabaja sobre una par de relaciones Fundamentales
  14. 14. 3.5.1- Álgebra relacional <ul><li>Selección :Subconjuto que cumple una determinada condición </li></ul><ul><li>Plantilla WHERE salario>25000 </li></ul>
  15. 15. 3.5.1- Álgebra relacional <ul><li>Proyección : un subconjunto de datos </li></ul><ul><li>Plantilla [nombre, apellido] </li></ul>
  16. 16. 3.5.1- Álgebra relacional <ul><li>Proyección : un subconjunto de datos </li></ul><ul><li>Plantilla [nombre, apellido] </li></ul>
  17. 17. 3.5.1- Álgebra relacional <ul><li>Producto cartesiano : concatenación de una relación (tabla) con todas las tuplas (registros o filas) de otra relación. </li></ul><ul><ul><ul><li>Inqulino [qnum,nombre,apellido] </li></ul></ul></ul><ul><ul><ul><li>X </li></ul></ul></ul><ul><ul><ul><li>Visita [qnum,inum.comentario] </li></ul></ul></ul>
  18. 18. 3.5.1- Álgebra relacional <ul><li>Producto cartesiano : concatenación de una relación (tabla) con todas las tuplas (registros o filas) de otra relación. </li></ul>Inquilino Visitas <ul><ul><ul><li>Inqulino [qnum,nombre,apellido] </li></ul></ul></ul><ul><ul><ul><li>X </li></ul></ul></ul><ul><ul><ul><li>Visita [qnum,inum.comentario] </li></ul></ul></ul>
  19. 19. 3.5.1- Álgebre relacional <ul><li>Unión : la unión de dos tablas, las cuales son compatibles </li></ul><ul><ul><li>Oficina [area] UNIÓN Inmueble [area] </li></ul></ul><ul><li>U = </li></ul>
  20. 20. 3.5.1- Álgebre relacional <ul><li>Unión : la unión de dos tablas, las cuales son compatibles </li></ul><ul><ul><li>Oficina [area] UNIÓN Inmueble [area] </li></ul></ul><ul><li>U = </li></ul>
  21. 21. 3.5.1- Álgebre relacional <ul><li>Diferencia :las tuplas que se encuentran en una relación R y no en la S </li></ul><ul><ul><li>Oficina [población] MINUS Inmueble[población] </li></ul></ul><ul><li>- = </li></ul>
  22. 22. 3.5.1- Álgebre relacional <ul><li>Diferencia :las tuplas que se encuentran en una relación R y no en la S </li></ul><ul><ul><li>Oficina [población] MINUS Inmueble[población] </li></ul></ul><ul><li>- = </li></ul>
  23. 23. 3.5.1- Álgebre relacional <ul><li>Concatenación (join) : las tuplas de R concatenadas con las de S que tienen atributos comunes </li></ul><ul><li>Inquilino [qnum,nombre,apellido] JOIN Visitas [qnum, inum,comentario] </li></ul>
  24. 24. 3.5.1- Álgebre relacional <ul><li>Concatenación externa :ademas muestra las tuplas de R que no tienen valores comunes con S. (Inmueble JOIN Visitas (+)) [inmueble.inum,calle,población,visitas.qnum,fecha,comentario] </li></ul>
  25. 25. 3.5.1- Álgebra relacional <ul><li>Intersección : las tuplas de R que tambien se están en S. (R y S deben ser compatibles). </li></ul><ul><li>Tambien se puede representar como la diferencia. R Interseción S= R menos (R menos S) </li></ul><ul><ul><li>Oficina[población] INTERSECT Inmueble[poblacion] </li></ul></ul>
  26. 26. 3.5.1- Álgebra relacional <ul><li>Intersección : las tuplas de R que tambien se están en S. (R y S deben ser compatibles). </li></ul><ul><li>Tambien se puede representar como la diferencia. R Interseción S= R menos (R menos S) </li></ul><ul><ul><li>Oficina[población] INTERSECT Inmueble[poblacion] </li></ul></ul>
  27. 27. 3.5.1- Álgebra relacional <ul><li>División : A cjto atributos de R y B cjto de atributos de S, tal que B es un subconjuto de A y si C = A-B, el resultado es C (las tuplas de R que estan acompañadas de S) </li></ul><ul><li>Visitas [qnum, inum] DIV (Inmueble where hab=3)[inum ] </li></ul><ul><li>/ = </li></ul>
  28. 28. 3.5.1- Álgebra relacional <ul><li>División : A cjto atributos de R y B cjto de atributos de S, tal que B es un subconjuto de A y si C = A-B, el resultado es C (las tuplas de R que estan acompañadas de S) </li></ul><ul><li>Visitas [qnum, inum] DIV (Inmueble where hab=3)[inum ] </li></ul><ul><li>/ = </li></ul>
  29. 29. 3.5.1- Álgebra relacional <ul><li>Agrupación : Agrupa las tuplas de R que tienen los mismos valores en los atributos especificados, para realizar un cálculo sobre ellos. </li></ul><ul><ul><li>Cálculos: SUM, MAX, MIN, COUNT y AVG </li></ul></ul><ul><ul><ul><li>Plantilla GROUPBY(oficina) ADD SUM (salario) AS Salario_total </li></ul></ul></ul>
  30. 30. 3.5.1- Álgebra relacional <ul><li>Agrupación : Agrupa las tuplas de R que tienen los mismos valores en los atributos especificados, para realizar un cálculo sobre ellos. </li></ul><ul><ul><li>Cálculos: SUM, MAX, MIN, COUNT y AVG </li></ul></ul><ul><ul><ul><li>Plantilla GROUPBY(oficina) ADD SUM (salario) AS Salario_total </li></ul></ul></ul>
  31. 31. 3.5.1- Álgebra relacional <ul><li>Agrupación : Agrupa las tuplas de R que tienen los mismos valores en los atributos especificados, para realizar un cálculo sobre ellos. </li></ul><ul><ul><li>Cálculos: SUM, MAX, MIN, COUNT y AVG </li></ul></ul><ul><ul><ul><li>Plantilla GROUPBY(oNum) ADD SUM (salario) AS Salario_total </li></ul></ul></ul>
  32. 32. 3.5.1- Álgebra relacional <ul><ul><ul><li>Selección </li></ul></ul></ul><ul><ul><ul><li>Proyección </li></ul></ul></ul><ul><ul><ul><li>Unión </li></ul></ul></ul><ul><ul><ul><li>Interseción </li></ul></ul></ul><ul><ul><ul><li>Diferencia </li></ul></ul></ul><ul><ul><ul><li>Join </li></ul></ul></ul><ul><ul><ul><li>División </li></ul></ul></ul><ul><ul><ul><li>Producto cartesiano </li></ul></ul></ul>Resumen Gráfico
  33. 33. 3.5.2- Cálculo relacional <ul><li>Orientado a tuplas (Codd) </li></ul><ul><ul><ul><li>RANGE OF PX IS PLANTILLA </li></ul></ul></ul><ul><ul><ul><li>PX WHERE PX.salario >10000 </li></ul></ul></ul><ul><ul><ul><li> ) NOT  PX (PX.población = 'castellón') </li></ul></ul></ul><ul><ul><ul><li> )  PX (PX.población = 'castellón') </li></ul></ul></ul><ul><li>Orientado a dominios </li></ul><ul><ul><ul><li>PLANTILLA(puesto:px, onum:ox) </li></ul></ul></ul><ul><ul><ul><li>PLANTILLA(puesto:'supervisor', onum:'03') </li></ul></ul></ul>
  34. 34. 3.5.2- Cálculo relacional <ul><li>Orientado a tuplas </li></ul><ul><li>Rango de PX es PLANTILLA </li></ul><ul><li>PX WHERE PX.salario >10000 </li></ul><ul><li>Rango de PX es PLANTILLA </li></ul><ul><li>Rango de OX es OFICINA </li></ul><ul><li>OX WHERE  PX (PX.onum=OX.onum AND PX.fecha_nac>= '1/1/65') </li></ul><ul><li>Álgebra Relacional </li></ul><ul><li>PLANTILLA WHERE salario >10000 </li></ul><ul><li>PLANTILLA JOIN OFICINA WHERE fecha_nac>='1/1/65' </li></ul>Obtener las oficinas cuyos empleados nacieron despues de 1965 Obtener los empleados que ganan mas de 10000€
  35. 35. 3.6.- Vistas <ul><li>Es una relación virtual </li></ul><ul><ul><li>Seguridad </li></ul></ul><ul><ul><li>Facilidades de formato </li></ul></ul><ul><ul><li>Simplifican operaciones </li></ul></ul><ul><li>Proporcionan independencia de datos a nivel lógico. </li></ul>

×