Tema 2. Bases de Datos Relacionales Conceptos de BD relacionales Codd propone el modelo relacional para bases de datos en 1970. Ésta es la base para la construcción de los SGBDR. El modelo relacional consiste en: Conjunto de objetos o relaciones Conjunto de operadores que actúan sobre los objetos Reglas para asegurar la integridad y consistencia del propio modelo. I-2 Introducción a Oracle - Tema Introductorio- pág. 1
Definición de una Base de Datos Relacional Una relación consta de: Un esquema: conjunto de pares (atributo,dominio). Un cuerpo: conjunto de tuplas de pares (atributo,valor). I-3 Definición de una Base de Datos Relacional Ejemplo de relación: Tabla: DEPARTAMENTOS DEPTNO DNOMBRE DLUGAR 01 MANTENIMIENTO MÁLAGA 10 CUENTAS MADRID 20 I+D MALAGA 30 VENTAS SEVILLA 40 MARKETING MADRID ESQUEMA CUERPO I-4 Introducción a Oracle - Tema Introductorio- pág. 2
Definición de una Base de Datos Relacional Una base de datos relacional es un conjunto de relaciones (o tablas) de dos dimensiones. Base de Datos Tabla: EMPLEADOS EMPNO ENOMBRE CARGO DEPTNO 7839 KING PRESIDENT 10 7698 BLAKE ASESOR 30 7782 CLARK ASESOR 10 7566 JONES ASESOR 20 I-5 Tabla: DEPARTAMENTOS DEPTNO DNOMBRE DLUGAR 10 CUENTAS MADRID 20 I+D MALAGA 30 VENTAS SEVILLA 40 MARKETING MADRID Terminología de las BDR 2 3 4 1 NUMERO NOMBRE PUESTO JEFE ANTIG SALAR COMIS DEPTNO 6 ------------- ------------ --------------------- -------- ---------------- ----------- -------------- ----------- 7839 KING PRESIDENTE 17-NOV-81 5000 10 7698 BLAKE ASESOR 7839 01-MAY-81 2850 30 7782 CLARK ASESOR 7839 09-JUN-81 2450 10 7566 JONES ASESOR 7839 02-ABR-81 2975 20 7654 MARTIN JEFE VENTAS 7698 28-SEP-81 1250 1400 30 7499 ALLEN JEFE VENTAS 7698 20-FEB-81 1600 300 30 7844 TURNER JEFE VENTAS 7698 08-SEP-81 1500 0 30 7900 JAMES EMPLEADO 7698 03-DIC-81 950 30 7521 WARD JEFE VENTAS 7698 22-FEB-81 1250 500 30 7902 FORD ANALISTA 7566 03-DIC-81 3000 20 7369 SMITH EMPLEADO 7902 17-DIC-80 800 20 7788 SCOTT ANALISTA 7566 09-DIC-82 3000 20 7876 ADAMS EMPLEADO 7788 12-ENE-83 1100 20 7934 MILLER EMPLEADO 7782 23-ENE-82 1300 10 5 I-6 Introducción a Oracle - Tema Introductorio- pág. 3
Definición de una Base de Datos Relacional Los dominios se completan con el valor NULL. Claves candidatas. Clave minimal. Clave Primaria. Criterios de selección. Clave foránea. MODELO ORIENTADO A VALORES I-7 Relaciones. Funcionamiento. Cada fila de una tabla se identifica mediante la Clave Primaria (PK). Se pueden relacionar datos de varias tablas mediante las Claves Foráneas (FK). Tabla: EMPLEADOS NÚMERO NOMBRE CARGO DEPTNO 7839 KING PRESIDENT 10 7698 BLAKE ASRSOR 30 7782 CLARK ASESOR 10 7566 JONES ASESOR 20 Tabla: DEPARTAMENTOS DEPTNO NOMBRE LUGAR 10 CUENTAS MADRID 20 I + D MALAGA 30 VENTAS SEVILLA 40 MARKETING MADRID Clave Primaria Clave Foránea Clave Primaria I-8 Introducción a Oracle - Tema Introductorio- pág. 4
Reglas del Modelo Relacional Propiedad de la clave primaria: IDENTIFICAR Primera Regla de Integridad (de la Entidad): Las componentes de una clave primaria no pueden ser nulos. I-9 Reglas del Modelo Relacional Clave Foránea: relaciones entre tablas Segunda Regla de Integridad (de Referencia): Las componentes de una clave foránea son nulas o son iguales que el valor de alguna una primaria en una tabla del modelo. I-10 Introducción a Oracle - Tema Introductorio- pág. 5
Operaciones relacionales. Operaciones de Conjuntos Unión Tabla 1 Tabla 2 Tabla 1 U Tabla 2 I-11 Operaciones relacionales. Operaciones de Conjuntos Unión Compatibles: Unión. Intersección. Diferencia. Libres: Producto Cartesiano. I-12 Introducción a Oracle - Tema Introductorio- pág. 6
Operaciones relacionales Selección Proyección Tabla 1 Reunión (join) Tabla 1 I-13 Tabla 1 Tabla 2 Álgebra relacional Operaciones de Conjuntos: R S, R S, R S, R/S. Selección: σ Predicado R Proyección: Π Atributos R Reunión: R S = Π Ω\FK (σ FK=PK R S) I-14 Introducción a Oracle - Tema Introductorio- pág. 7
Ejemplo de Algebra Relacional PROV VENTAS Dni Nombre Telefono Dni Codigo 222 Díaz 134528 222 c2 454 López 457889 222 c1 667 Martín 998076 454 c1 667 c1 Qué proveedores venden el producto de código c2?: Π Nombre (PROV (σ codigo="c2 VENTAS) ) Π Nombre ( σ codigo="c2 ( PROV VENTAS) ) I-15 Cálculo Relacional El cálculo dota de una notación para formular la definición de la relación deseada en términos de las otras relaciones (se indica qué se quiere y no cómo se quiere) I-16 Introducción a Oracle - Tema Introductorio- pág. 8
Notación en Cálculo Relacional El cálculo relacional está fundado sobre la lógica de primer orden. < objetivos > WHERE < predicado> < objetivos > especifica las tablas y atributos requeridos. < predicados > contiene las propiedades o condiciones que deben satisfacerse. I-17 Ejemplo de Cálculo Relacional PROV VENTAS Dni Nombre Telefono Dni Codigo 222 Díaz 134528 222 c1 454 López 457889 222 c2 667 Martín 998076 454 c1 667 c2 Qué proveedores venden el producto de código c2?: ( prov.nombre) WHERE (ventas.codigo = c2 AND ventas.dni = prov.dni) I-18 Introducción a Oracle - Tema Introductorio- pág. 9