TEMA 4 MODELO DE BASE DE DATOS RELACIONAL. 1. Introducción Estructura de Datos Reglas de Integridad... 24

Tamaño: px
Comenzar la demostración a partir de la página:

Download "TEMA 4 MODELO DE BASE DE DATOS RELACIONAL. 1. Introducción... 2. 2. Estructura de Datos... 4. 3. Reglas de Integridad... 24"

Transcripción

1 TEMA 4 MODELO DE BASE DE DATOS RELACIONAL 1. Introducción Estructura de Datos Reglas de Integridad Manipulación de Datos (a) Álgebra Relacional (b) Cálculo Relacional

2 Introducción CODD: Creador del MODELO RELACIONAL (1970). MODELO RELACIONAL: Único modelo del cual se ha dado un enfoque teórico antes de realizar cualquier implementación práctica. A mediados de los 70 se construyen dos prototipos: 1. SYSTEM R (IBM) (SQL) { * BD2 actual * Recerca * Altres SGBD con SQL 2. INGRES (Univ. of California at Berkeley) { INGRES comercial (SQL) 2

3 MODELO RELACIONAL dividido en tres partes: 1. Estructura de Datos 2. Integridad de los Datos REGLAS DE INTEGRIDAD 3. Manipulación de los Datos Álgebra Relacional Cálculo Relacional Cada parte contiene sus propios términos relacionales. 3

4 Estructura de Datos Términos relacionales de la Estructura de Datos: RELACIÓN: Tabla. TUPLA: Fila de la tabla. ATRIBUTO: Columna de la tabla. CARDINALIDAD: Número de tuplas de la tabla. GRADO: Número de atributos. CLAVE PRIMARIA: Identificador (campo o campos) único de la tabla. DOMINIO: Conjunto de valores legales, permitidos en un atributo. 4

5 Definición en SQL CREATE TABLE s ( s# CHAR(5) NOT NULL, snom CHAR(20) NOT NULL, zona SMALLINT NOT NULL, ciudad CHAR(15) NOT NULL, PRIMARY KEY (s#) ) ; CREATE TABLE p ( p# CHAR(6) NOT NULL, pnom CHAR(20) NOT NULL, color CHAR(7) NOT NULL, pes SMALLINT NOT NULL, ciudad CHAR(15) NOT NULL, PRIMARY KEY (p#) ) ; CREATE TABLE SP ( s# CHAR(5) NOT NULL, p# CHAR(6) NOT NULL, cant INTEGER NOT NULL, PRIMARY KEY (s#, p#), FOREIGN KEY (s#) REFERENCES s, FOREIGN KEY (p#) REFERENCES p ) ; 5

6 TERMINOLOGÍA RELACIONAL INFORMAL Relación Tabla Tupla Fila o Registro Cardinalidad Número de filas Atributo Columna o campo Grado Número de columnas Clave Primaria Identificador único Dominio Conjunto de valores permitidos Sistemas Relacionales implementados que se utilizan actualmente NO se ajustan a TODOS los conceptos relacionales. Ejemplo: Noción de DOMINIO es un aspecto teórico, que no se considera en sistemas relacionales muy conocidos como DB2 o INGRES. 6

7 Conceptos relacionales: DOMINIO RELACIÓN BASE DE DATOS RELACIONAL 7

8 DOMINIO Un dato individual, un valor escalar es: Menor unidad semántica de información. No descomponible (atómico). Ejemplos: Valor escalar: No es posible descomponerlo. Cadena de caracteres: Si se descompone, pierde su significado. No tiene estructura interna. Def. DOMINIO: 1. Conjunto de mínimas unidades semánticas de información DOMINIO SIMPLE 2. Conjunto de datos de los cuales toman el valor los atributos. Cada atributo un dominio asociado Cada dominio más de un atributo asociado 8

9 UTILIDAD DE LOS DOMINIOS 1. Controlar que los valores de los atributos esten entre los permitidos. 2. Comprobar las comparaciones. Control de tipos. Ejemplo: SELECT P.*, SP.* FROM P,SP WHERE P.P#=SP.P# SELECT P.*, SP.* FROM P,SP WHERE P.PES=SP.CANT Tiene sentido la comparación DOMINIOS IGUALES Comparación incoherente DOMINIOS DIFERENTES. ERROR 3. Realizar consultas como Qué relaciones de la BD contienen información de proveedores? equivale a Qué relaciones de la BD incluyen un atributo definido sobre el dominio de números de proveedor? 9

10 DEFINICIÓN DE DOMINIOS CREATE DOMAIN <nom> <tipus> CHECK <dominio> donde <dominio> puede ser Rango de valores numéricos (a, b). Conjunto de strings de carácteres (w 1, w 2... w n ). Llamada a un procedimiento que controle el dominio. 10

11 Ejemplo: CREATE DOMAIN d_s# CREATE DOMAIN d_nom CHAR(5); CHECK CALL comprova_s#; CHAR(20); CREATE DOMAIN d_zona SMALLINT; CHECK IN (10,20,30,40,50); CREATE DOMAIN d_ciudad CHAR(15); CREATE DOMAIN d_p# CHAR(6); CHECK CALL comprova_p#; CREATE DOMAIN d_color CHAR(7); CHECK IN ( Azul, Groc, Verd, Vermell ); CREATE DOMAIN d_pes SMALLINT; CHECK BETWEEN 1 AND 100; CREATE DOMAIN d_cant INTEGER; CHECK BETWEEN 1 AND 1000; CREATE TABLE s ( s# DOMAIN (d_s#) NOT NULL, snom DOMAIN (d_nom) NOT NULL, zona DOMAIN (d_zona) NOT NULL, ciudad DOMAIN (d_ciudad) NOT NULL, PRIMARY KEY (s#) ) ; CREATE TABLE p ( p# DOMAIN (d_p#) NOT NULL, pnom DOMAIN (d_nom) NOT NULL, color DOMAIN (d_color) NOT NULL, pes DOMAIN (d_pes) NOT NULL, ciudad DOMAIN (d_ciudad) NOT NULL, PRIMARY KEY (p#) ) ; CREATE TABLE sp ( s# DOMAIN (d_s#) NOT NULL, p# DOMAIN (d_p#) NOT NULL, cant DOMAIN (d_cant) NOT NULL, PRIMARY KEY (s#, p#), FOREIGN KEY (s#) REFERENCES s, FOREIGN KEY (p#) REFERENCES p ) ; 11

12 En dominios definidos como un conjunto de valores no siempre tiene sentido la ordenación SEMÁNTICA pero siempre habrá una ordenación LÉXICA. Ejemplo: d color = ( Azul, amarillo, verde, rojo ) azul es anterior a amarillo azul < amarillo no tiene sentido 12

13 DOMINIOS COMPUESTOS Combinación de dominios simples. Ejemplo: Definir el dominio DATA CREATE DOMAIN d dia NUMBER(2) CHECK BETWEEN 1 AND 31; CREATE DOMAIN d mes NUMBER(2) CHECK BETWEEN 1 AND 12; CREATE DOMAIN d any NUMBER(4) CHECK BETWEEN 1 AND 9999; CREATE DOMAIN data ( dia DOMAIN (d dia), mes DOMAIN (d mes), any DOMAIN (d any) ) CHECK CALL data correcta Tipus de atributos: Atributos simples: Corresponden a dominios simples. Atributos compostos: Corresponden a dominios compuestos. 13

14 IMPORTANTE EN UN ATRIBUTO COMPUESTO: Tener la capacidad de poder acceder a todo el atributo compuesto o a cada una de sus componentes por separado. Ejemplo: CREATE empleado ( num_emp DOMAIN (d_num_emp), fecha_ingreso DOMAIN (fecha), PRIMARY KEY (num_emp) ); data ingres: atributo compuesto. Se puede hacer referencia a Atributo compuesto SELECT FROM empleado WHERE empleado.fecha_ingreso= ; Componentes del atributo compuesto SELECT FROM empleado WHERE ANY(empleado.fecha_ingreso)< 2004 AND MES(empleado.fecha_ingreso)< 06 ; 14

15 PROBLEMA DE LOS DOMINIOS Puede ser que restrinja excesivamente las expresiones o las comparaciones. 1. Comparación entre diferentes dominios (los definidos con instrucción CREATE y los predefinidos CHAR, INTEGER) pueden ser correctos SEMÁNTICAMENTE pero no serlo SINTÁCTICAMENTE. Ejemplo: mes(data) } {{ } dominio d mes < 12 }{{} dominio INTEGER ciudad } {{ } dominio d ciudad = LONDRES } {{ } dominio CHAR any(data) } {{ } dominio d any + 10 }{{} dominio INTEGER } {{ } dominio? > any(avui) } {{ } dominio d any 2. Dominios booleanos (si/no,masculino/femenino) Tienen sentido las comparaciones del tipo A = B ó A B NO tienen sentido comparaciones del tipus A < B ó A > B 15

16 3. En ciertos casos es necesario definir expresiones combinando dominios Ejemplo: e = vt Tres dominios: ESPACIO (e), VELOCIDAD (v) y TIEMPO (t). Para resolver problemas de combinación de dominios, dos posibles soluciones: CODD: Definir operadores especiales para saltarse las comprobaciones de tipos. DATE: Para cada dominio, Especificar las reglas de conversión de tipos, Especificar el tipo resultante para cada cálculo de expresiones con diferentes dominios. 16

17 Para ofrecer un sistema completo de Bases de Datos hay que hacer: 1. Especificar un conjunto completo de dominios D, intentando que sea CERRADO RESPECTO A LOS OPERADORES Dados d i, d j dominios de D y una operación, D ES CERRADO si y sólo si d i d j D d i, d j D, 2. Definir los operadores unarios para cada dominio de D. 3. Definir los operadores binarios para cada dominio de D. 4. Especificar el resultado de cualquier expresión permitida. 17

18 RELACIÓN Definición: Una relación R se define sobre un conjunto de dominios D 1... D n y se compone de dos partes: 1. Cabecera: Conjunto fijo de parejas atributo/dominio. {(A 1 : D 1 ), (A 2 : D 2 )... (A n : D n )} 2. Cuerpo: Conjunto de n-tuplas, donde una n-tupla es un conjunto de parejas atributo/valor. {(A 1 : V i,1 ), (A 2 : V i,2 )... (A n : V i,n )} i = 1... m on m es la cardinalidad de la relación (número de tuplas) VARIABLE EN EL TIEMPO n es el grado de la relación (número de atributos) FIJO EN EL TIEMPO 3. Clave Primaria 18

19 PROPIEDADES DE LAS RELACIONES 1. No hay tuplas duplicadas RELACIÓN es un conjunto. No existen elementos duplicados en un conjunto. La mayoría de sistemas relacionales no controlan que haya tuplas duplicadas en la relación, ofreciendo métodos para controlarlo indirectamente (CREATE INDEX, clave primaria). En una relación siempre existirá una clave primaria (conjunto de atributos que definen una tupla de forma única). En una TABLA pueden existir elementos duplicados. 2. Las tuplas no estan ordenadas En un conjunto, los elementos no estan ordenados. P1 P3 P3 misma relación P4 P5 P1 P4 P5 No obstante existe la posibilidad de ordenar respecto de un conjunto de atributos (índices). 3. Atributos no estan ordenados Cabecera de las relaciones: Conjunto de parejas atributo/dominio, sin existir ninguna ordenación entre los elementos. 19

20 4. Todos los elementos de un dominio son atómicos Todo valor en una relación tendrá un sólo valor indivisible, NO UNA LISTA DE VALORES. Si los elementos de un dominio son compuestos, se realiza una combinación de valores, pero sólo una combinación. tupla UN valor por atributo. RELACIÓN NORMALIZADA: Las relaciones no contienen grupos repetitivos. PRIMERA FORMA NORMAL S# P# CANT S1 P1 300 P2 200 P3 400 P4 200 P5 100 P6 100 S2 P1 300 P2 400 S3 P3 200 S4 P2 200 P4 300 P5 400 Normalización = S# P# CANT S1 P1 300 S1 P2 200 S1 P3 400 S1 P4 200 S1 P5 100 S1 P6 100 S2 P1 300 S2 P2 400 S3 P3 200 S4 P2 200 S4 P4 300 S4 P

21 TIPOS DE RELACIONES 1. RELACIONES BASE Tabla base de SQL. Tabla con nombre y datos propios. 2. VISTAS - RELACIONES VIRTUALES Relaciones con nombre, definidas en términos de otras relaciones con nombre. No tiene datos almacenados propios. Relación derivada. 3. INSTANTÁNEAS - SNAPSHOTS Relación derivada parecida a vista pero real (no virtual). Relación con datos propios. Definidas en términos de otras relaciones. Se crea de forma parecida a una consulta CREATE SNAPSHOT sc AS SELECT s#, ciudad FROM s REFRESH EVERY DAY Resultado de la consulta se guarda en una relación de sólo lectura. Se refresca la tabla de forma periódica (EVERY DAY). 21

22 4. RESULTADOS DE CONSULTAS Relación resultante de una consulta. Puede tener nombre o no tenerlo. No tienen una existencia persistente en la BD. 5. RESULTADOS INTERMEDIOS Relación usualmente sin nombre resultante de alguna expresión anidada dentro de una otra expresión relacional. No tienen una existencia persistente en la BD. Ejemplo: Listar las ciudades de los subministradores de la pieza P2: SELECT s.ciudad FROM s WHERE s.s# IN ( SELECT sp.s# FROM sp WHERE sp.p# = P2 ); 6. RESULTADOS TEMPORALES Relación con nombre que se destruye de forma automática en algún momento determinado (variables locales a un procedimiento). Relaciones base, vistas y snapshots son más permanentes, pues sólo son destruidas por acciones expĺıcitas del usuario. 22

23 BASE DE DATOS RELACIONAL Def. BASE DE DATOS RELACIONAL: Base de Datos percibida por el usuario como una colección de relaciones normalizadas de diferentes grados que varía con el tiempo. Percibida por el usuario: Modelo relacional se aplica en los niveles externo (usuarios) y conceptual (DBA). No se aplica sobre el nivel interno. Variable en el tiempo: Relaciones van variando su número de tuplas en el tiempo. Comparación BD relacional con un fichero: relación fichero tupla registro atributo campo 23

24 Reglas de integridad Reglas que permiten controlar que la información de la BD sea correcta. Reglas que informan al DBMS de ciertas restricciones del mundo real. Dos niveles: 1. REGLAS ESPECÍFICAS: Se aplican a una BD específica. 2. REGLAS GENERALES (METARREGLAS): Reglas aplicables a cualquier BD. 24

25 1. REGLAS ESPECÍFICAS Se definen según el contexto y el entorno de trabajo. Ejemplo de reglas específicas sobre BD proveedorespiezas (S,SP,P ): Número de proveedor ha de ser de la forma Snnn Número de pieza ha de ser de la forma Pnnn Zona ha de estar entre 1 y 100. El peso ha de ser positivo. Las entregas de piezas (cant) han de ser múltiples de 100. Todas las piezas rojas han de guardarse en Londres. Un proveedor no puede subministrar más de la mitad de las piezas. 25

26 2. REGLAS GENERALES (METARREGLAS) Reglas de integridad aplicables a cualquier BD. Tres reglas importantes: 1. Regla de Integridad de las Entidades 2. Regla de Integridad Referencial 3. Regla de Integridad de los Dominios: Todo valor de un atributo ha de pertenecer al dominio sobre el cual hemos definido el atributo. 26

27 1. Regla de Integridad de las Entidades Regla que afecta a las claves primarias de las relaciones. Def. CLAVE PRIMARIA: Atributo (o atributos) que identifican de forma única cada tupla de la relación. Como máximo, pueden ser clave primaria TODOS los atributos de la relación. Pueden existir diversos conjuntos de atributos que cumplan la definición: CLAVES CANDIDATAS 27

28 Definición: Un conjunto de atributos k (simple o compuesto) de la relación R es una clave candidata de R satisface las siguientes propiedades: 1. UNICIDAD: En todo momento no existen dos tuplas en R con el mismo valor de k. 2. MINIMALIDAD: Si k es compuesto, no será posible eliminar ninguna componente de k sin destruir la propiedad de unicidad. Consideraciones: Como mínimo, existe siempre UNA CLAVE CANDIDATA: la unión de todos los atributos de la relación. DE entre todas las claves candidatas, escoger una como CLAVE PRIMARIA. el resto definidas como CLAVES ALTERNATIVAS. Ejemplo: Tabla de provincia. claves candidatas código postal y nombre de provincia. código postal: clave primaria (clave alternativa). nombre de provincia: clave alternativa (clave primaria). 28

29 Observaciones sobre las claves primarias: Toda relación tiene una clave candidata. Toda relación tiene SIEMPRE una clave primaria. La clave primaria es la realmente importante. Claves alternativas poco importantes. Toda relación tiene clave primaria, pero en la práctica importa sólo la clave primaria en las relaciones base. Definir la clave primaria no implica que se haya de definir un fichero índice para estos campos. Clave primaria ofrece un MECANISMO DE DIRECCIO- NAMIENTO DE TUPLAS en un sistema relacional. Una consulta sobre una clave primaria retornará como máximo una sola tupla. Ejemplo: SELECT * FROM p WHERE p#= P3 SELECT * FROM p WHERE ciudad= Paris ==> 1 tupla ==> n tuplas 29

30 REGLA DE INTEGRIDAD DE LAS ENTIDADES Ninguna componente de la clave primaria puede aceptar valores NULL NULL ausencia de información Representa que para esta tupla no se tiene información sobre el valor del atributo. No representa un valor aplicable. 30

31 Justificación de la Regla de integridad de las entidades: Las relaciones base (o tuplas) corresponden a entidades del mundo real. Entidades del mundo real son distingibles, identificables de una forma u otra. Representantes de entidades en la BD han de ser distinguibles. Claves primarias hacen la función de identificación única de tuplas en el modelo relacional. Una clave primaria a NULL es equivalente a decir que existe una entidad en el mundo que no es distinguible. En la relación S, el valor S# a NULL significa que existe un proveedor sin identidad. Si NULL significa propiedad no aplicable, la tupla no tiene sentido. Les entidades han de tener un significado (proveedor, pieza, venta). Si NULL significa valor desconocido, no podemos afirmar nada de una cosa desconocida. No sabemos si una tupla representa valores conocidos. 31

32 Otro enunciado de la regla: En una BD relacional, nunca registraremos información sobre alguien que no podemos identificar Observaciones sobre la regla: CLAVES PRIMARIAS COMPUESTAS: No pueden aceptar valores NULL ninguna de las componentes de la clave. Regla de integridad aplicable a relaciones base. Regla de integridad se aplica a claves primarias, NO a claves alternativas, que pueden admitir valores NULL. 32

33 2. Regla de Integridad Referencial Regla que afecta a las Claves externas de las relaciones. Def. CLAVE EXTERNA: Conjunto de atributos de una relación R2, los valores del cual han de coincidir con valores de una clave primaria de una relación R1 (R1, R2 no tienen por qué ser diferentes). Ejemplo: Atributo S# de la relación SP : Se permite un valor de S# sólo si este mismo valor aparece en la clave primaria S# de la relación S. (Es absurdo tener envio de proveedor S9 si no es dado de alta en la tabla de proveedores.) Atributo P# de la relación SP: Analogía con el anterior. Atributos S#, P# de la relación SP son CLAVES EXTERNAS. OBSERVACIÓN: Caso inverso ES posible. Que exista un valor en clave primaria, pero que NO exista en clave externa (Proveedor definido en clave primaria, pero que no ha hecho aún ningún envio). Un valor de referencia a la clave externa TUPLA REFERENCIADA 33

34 Def. TUPLA REFERENCIADA: Tupla donde existe el valor correspondiente de la clave primaria. Def. RESTRICCIÓN REFERENCIAL: Restricción que impone que los valores de una clave externa han de concordar con valores de la clave primaria. Def. RELACIÓN REFERENCIAL: Relación que contiene la clave externa. Def. RELACIÓN REFERENCIADA: contiene la clave primaria. Relación que Falta de Integridad Referencial: Cuando la BD tiene valores no válidos de clave externa. Referencias especificadas en el DIAGRAMA REFERENCIAL S }{{} relación referenciada SP }{{} relación referencial P }{{} relación referenciada a veces las relaciones son etiquetadas con la clave externa S S# SP P # P 34

35 Def. CLAVE EXTERNA: Conjunto de atributos CE de la relación R2 que satisface dos propiedades importantes independendientemente del tiempo: 1. Todo valor de CE es totalmente NULL ó totalmente NO NULL No se admiten combinaciones entre NULL y NO NULL, pues la clave externa referencia una clave primaria. 2. Existe una relación R1 con clave primaria CP, en la cual cada valor NO NULL de CE es idéntico al valor de CP en alguna tupla de R1. 35

36 Observaciones: La clave externa y la clave primaria han de tener el mismo dominio. La clave externa no ha de pertenecer a la clave primaria de la relación que la contiene...pero puede pertenecer. Ejemplo: Campos SP.S#, SP.P# son claves externas y a la vez clave primaria de SP. Una relación puede ser referenciada y referencial simultáneamente R3 R2 R1 Ruta referencial: cadena de restricciones referenciales R(n) R(n 1) R(n 2)... R2 R1 36

37 Relaciones R1, R2 no tienen por qué ser diferentes: RELACIONES AUTORREFERENCIALES Ejemplo: Relación EMPLEADO EMPLEADO (numemp,...,salario,..., numemp ger,...) numemp: numemo ger: clave primaria de EMPLEADO. número de empleado correspondiente al gerente de este empleado. Clave externa de EMPLEADO. Relaciones autorreferenciales pueden dar lugar a CICLOS REFERENCIALES Ruta referencial desde una relación hacia sí misma R(n) R(n 1) R(n 2)... R2 R1 R(n) Claves externas han de poder aceptar valores NULL Ejemplo: Relación EMPLEADO Pregunta: Cuál es el numemp ger del presidente de la compañía?. 37

38 REGLA DE INTEGRIDAD REFERENCIAL La BD no ha de tener valores de clave externa sin concordancia Todo valor NO NULL de clave externa ha de existir en la clave primaria de la relación referenciada Si valor B fa referencia a A A ha de existir Observacions: 1. Integridad referencial exige concordancia entre claves externas y llaves primarias (no claves alternativas) clave externa - integridad referencial conceptos muy interrelacionados 38

39 ESTRATEGIAS PARA GARANTIZAR LA INTEGRIDAD REFERENCIAL EN UNA BD No permitir realizar ninguna operación o transacción que pueda llevar a la BD a un estado incorrecto. Aceptar la operación que produce un estado ilegal, pero realizar ciertas operaciones de compensación para garantizar el estado legal. Ejemplo: Relaciones proveedores-piezas (S,SP,P ). Si usuario elimina proveedor S1 de la relación S, SE HA DE HACER que el sistema elimine también de la relación SP los envíos del proveedor S1. corresponde al DBA decidir qué transacciones peligrosas no se pueden realizar. se pueden realizar. En este caso, QUÉ operaciones de compensación han de realizarse?. Por tanto, para cada clave externa habrá de cuestionarse las REGLAS PARA CLAVES EXTERNAS 39

40 REGLAS PARA CLAVES EXTERNAS 1. Puede aceptar valores nulos la clave externa? Respuesta depende del significado de la BD y de la poĺıtica de datos que se quiera modelizar. Ejemplo: proveedores-piezas (S,SP,P ). Tiene sentido un envío con proveedor desconocido? NO Ejemplo: empleados-departamentos Tiene sentido un empleado no asignado a un departamento? SI 2. Qué se hace si se borra una tupla referenciada? Ejemplo: proveedores-piezas (S,SP,P ). Borrar proveedor S1 de la relación S. Tres posibilidades: RESTRINGIDA (restricted): Se borra la tupla en el caso RESTRINGIDO en que no hay ningún valor de clave externa que la referencie. ES PROPAGA (cascades): Se borra la tupla referenciada y se PROPAGA el borrado a todas las tuplas referenciales a ella. ANULA (nullifies): Se borra la tupla referenciada y se asigna a NULL los valores de las claves externas referenciales. Esta opción es válida si las claves externas aceptan valor NULL. 40

41 3. Qué se hace si se modifica la clave primaria de la tupla referenciada? Ejemplo: proveedores - piezas (S,SP,P ). Modificar el número de proveedor en la relación S. Tres posibilidades: RESTRINGIDA (restricted): Se permite modificar la tupla en el caso RESTRINGIDO en que no hay ningún valor de clave externa que la referencie. ES PROPAGA (cascades): La modificación se PROPAGA a las claves externas de la relación referencial. ANUL LA (nullifies): Se modifica la clave primaria de la tupla referenciada y se asigna a NULL los valores de las claves externas referenciales. Esta opción es válida si las claves externas aceptan valor NULL. 41

42 DEFINICIÓN SQL DE CLAVE EXTERNA En la definición SQL de relación base. Hay que definir Atributos Relación referenciada (clave primaria) Reglas para claves externas FOREIGN KEY (<nombre_clave_externa>) REFERENCES <objetivo> NULLS [NOT] ALLOWED DELETE OF <objetivo> <efecto> UPDATE OF <clave_primaria_objectivo> <efecto> on < objectivo > relación referenciada < efecto > RESTRICTED CASCADES NULLIFIES 42

43 Observaciones: Posibilidades de tratamiento alternativos a RESTRICTED, CASCADES y NULLIFIES (todo y que estas estrategias són las más usuales): Conversación con el usuario final Grabar la información a borrar o modificarla en otro archivo. Transferir la información a borrar o modificar a otras tuplas Para incluir estos tratamientos alternativos en definición SQL: <efecto> <nombre rutina tractamiento> 43

44 Regla de clave externa CASCADES puede comportar problemas R3 b R2 a R1 donde referencia a: Regla de clave externa: CASCADES Se eliminan tuplas de R1 eliminar tuplas de R2. Problema: Si eliminamos tuplas de R2, cómo afecta a las tuplas de R3?. donde referencia b: Regla de clave externa: X PROBLEMA: Si regla X no permite eliminar tuplas de R3 como consecuencia a la eliminación de tuplas de R2, tupla de R1 no puede ser borrada. Operaciones de modificación de la BD son de tipo atómico (se hacen todas o no se hace ninguna), a pesar de que comporten toda una serie de operaciones adicionales, como por ejemplo la regla de clave externa CASCADES. 44

45 Manipulación de Datos Tercera y última parte del modelo relacional. Alternativas (estrategias) para constituir la base formal de la manipulación de datos: ÁLGEBRA RELACIONAL CÁLCULO RELACIONAL expresión expresión Álgebra Cálculo Relacional Relacional 45

46 ÁLGEBRA RELACIONAL Conjunto de operaciones expĺıcitas para indicar al sistema la forma de construir una relación. Formulación prescriptiva. Álgebra proporciona procedimiento para resolver el problema. Ejemplo: Obtener los números y ciudades de los proveedores que suministren la pieza P2 formulación algebraica 1. Formar el join natural de las relaciones S y SP según S#. 2. Restringir el resultado del join a las tuplas de la pieza P2. 3. Proyectar el resultado sobre S#, CIUDAD. Basada en procedimientos. Formulación más próxima a lenguaje de programación. Lenguaje: SQL. 46

47 CÁLCULO RELACIONAL Ofrece una notación para formular la definición de la consulta deseada. Formulación descriptiva. Da la definición de lo que se quiere. Ejemplo: Obtener los números y ciudades de los proveedores que suministran la pieza P2 formulación cálculo relacional OBTENER S# y CIUDAD PARA LOS PROVEEDORES TALES QUE EXISTA UN ENVIO SP CON EL MISMO VALOR EN S# Y CON EL VALOR P2 EN P# Observaciones: Usuario define las características del resultado. Sistema decide qué joins, proyecciones, etc. se han de realizar para obtener el resultado. Basada en el área de la lógica matemática CÁLCULO DE PREDICADOS. Formulación más próxima a lenguaje natural. Lenguaje: QBE (Query by Example). 47

48 ÁLGEBRA RELACIONAL Conjunto de operadores de alto nivel que operan sobre relaciones Reglas para construir expresiones Cada operador se aplica a una (operador unario) o a dos (operador binario) relaciones y produce una relación de salida. 48

49 OPERADORES: OPERADORES DE CONJUNTOS Unión Intersección Diferencia Producto cartesiano OPERADORES RELACIONALES Restricción Projección Reunión (join) natural Join theta (join general) División OPERADORES ADICIONALES Ampliación (extensión) Resumen División General Join extern (outer join) Join theta extern (outer join theta) ASIGNACIÓN RELACIONAL 49

50 Operadores de CODD Ocho operadores: Operadores de conjuntos (4) Operadores relacionales (4) 50

51 DEFINICIÓN INTUÏTIVA DE LOS CUATRO OPERADORES DE CONJUNTOS UNIÓ (op. binario) Construye una relación formada por todas las tuplas que aparezcan en cualquiera de las dos relaciones especificadas. INTERSECCIÓN (op. binario): Construye una relación formada per aquellas tuplas que aparezcan en las dos relaciones especificadas. DIFERÉNCIA (op. binario) Construye una relación formada por todas las tuplas de la primera relación que no aparezcan en la segunda de las dos tuplas especificadas. PRODUCTO CARTESIANO (op. binario) Construye una relación que contiene todas las combinaciones posibles de tuplas, una de cada una de las dos relaciones. GRÁFICAMENTE 51

52 DEFINICIÓN INTUITIVA DE LOS CUATRO OPERADORES RELACIONALES RESTRICCIÓN (op. unario) Genera una nueva relación, formada por las tuplas de la tabla original que cumplen una cierta condición. PROYECCIÓN (op. unario) Genera una nueva relación formada por los atributos especificados de la tabla original. JOIN-REUNIÓN (op. binario) Construye una relación que contiene todas las posibles combinaciones de tuplas, una por cada una de las relaciones, de manera que las dos tuplas que forman una combinación satisfacen una condición especificada. Parecido al producto cartesiano pero las tuplas seleccionadas han de cumplir ciertas restricciones. DIVISIÓN (op. binario) Dadas dos relaciones (una binaria y otra unaria), construye una nueva relación formada por todos los valores de un atributo de la relación binaria que coinciden con el otro atributo, con todos los valores de la relación unaria. GRÁFICAMENTE 52

53 Aspecto importante: PROPIEDAD DE CIERRE EN- TRE OPERADORES: Resultado de cada operador es una nueva relación. Esto permite que cada operación pueda ser operando de otra. ENCADENAMIENTO DE OPERACIONES 53

54 SINTAXIS PARA EL ÁLGEBRA RELACIONAL Para garantizar la propiedad de cierre entre operadores, el resultado de toda operación entre relaciones ha de ser una NUEVA RELACIÓN. Toda relación ha de tener: CABECERA: Nombre de los atributos CUERPO: Datos, valores de los atributos CLAVE PRIMARIA Qué cabecera tienen las operaciones entre relaciones? Importante para referenciar atributos en operacions posteriores si son encadenadas. Álgebra relacional ha de garantizar la cabecera, el cuerpo y la clave primaria de los resultados intermedios de cualquier operador para garantizar la formación de expresiones relacionales. Ejemplo: Operador RENAME Operador que cambia el nombre de los atributos de una relación. Toma una relación y crea una nueva relación donde se ha cambiado el nombre a uno de los atributos. S RENAME ciudad AS sciudad RESULTADO: Nueva relación sin nombre con el mismo cuerpo que la relación S, pero con el nombre de atributo sciudad en lugar de ciudad existente en la relación S. 54

55 GRAMÁTICA: (en formato BNF - Backus Normal Form) expresion ::= expresion_una_relacion expresion_dos_relaciones expresion_una_relacion ::= redenominar restriccion projeccion redenominar ::= terme RENAME atributo AS atributo [,atributo AS atributo] terme ::= relacio (expresio) restriccio ::= terme ON comparacio projeccio ::= terme terme [llista_atributos] llista_atributos ::= atributo atributo, llista atributos expresio_dues_relaciones::= terme operacio_binaria terme operacio_binaria ::= UNION INTERSECT MINUS TIMES JOIN DIVIDEBY relacion ::= identificador atributo ::= identificador comparacio ::= = <> < > Relación formada per cabecera, cuerpo y... CLAVE PRIMARIA Para garantizar propiedad de cierre para los operadores: REGLAS DE HERENCIA DE CLAVE PRIMARIA Dadas claves primarias de los operandos de una expresión relacional, encontrar cual es la clave primaria de la relación resultante de la expresión. A continuación se examinan los operadores del álgebra relacional, utilizando la gramática especificada y detallando como se forman las relaciones resultantes de los operadores (cabecera, cuerpo y clave primaria). 55

56 OPERADORES TRADICIONALES DE CONJUNTOS Operadores de conjuntos RELACIONALES: No tienen el mismo significado que operadores de conjuntos MATEMÁTICOS. Válidos cuando operandos tienen la misma estructura (cabecera), lo que garantiza la propiedad de cierre de las operaciones. Ejemplo: R1 R2 Si R1, R2 tienen diferente estructura, de qué tipo es la relación resultante?. 56

57 Definición: Dos relaciones son COMPATIBLES RES- PECTO LA UNIÓN (unión-compatibles) si sus cabeceras son idénticas, es decir: Las dos tienen el mismo conjunto de nombres de atributos (mismo grado). Atributos correspondientes a las dos relaciones tienen el mismo dominio. Operadores que requieren esta propiedad: Unión Intersección Diferencia OPERADORES DE CONJUNTOS: UNIÓN INTERSECCIÓN DIFERENCIA PRODUCTO CARTESIANO 57

58 UNIÓN Definición: Dadas dos relaciones A,B unión-compatibles, A B corresponde a una otra relación con misma cabecera de A y B. cuerpo formado por todas las tuplas pertenecientes a A, B, A y B eliminando duplicados. Ejemplo: A: S# SNOM ZONA CIUDAD S1 Salazar 20 Londres S4 Corona 20 Londres B: S# SNOM ZONA CIUDAD S1 Salazar 20 Londres S2 Jaime 10 Paris A B: S# SNOM ZONA CIUDAD S1 Salazar 20 Londres S4 Corona 20 Londres S2 Jaime 10 Paris 58

59 INTERSECCIÓN Definición: Dadas dos relaciones A,B unión-compatibles, A B corresponde a otra relación con misma cabecera de A y B. cuerpo formado por todas las tuplas pertenecientes a A y a B. Ejemplo: A: S# SNOM ZONA CIUDAD S1 Salazar 20 Londres S4 Corona 20 Londres B: S# SNOM ZONA CIUDAD S1 Salazar 20 Londres S2 Jaime 10 Paris A B: S# SNOM ZONA CIUDAD S1 Salazar 20 Londres 59

60 DIFERÉNCIA Definición: Dadas dos relaciones A,B unión-compatibles, A - B corresponde a otra relación con misma cabecera de A y B. cuerpo formado per las tuplas de A que no pertenecen a B. Ejemplo: A: S# SNOM ZONA CIUDAD S1 Salazar 20 Londres S4 Corona 20 Londres B: S# SNOM ZONA CIUDAD S1 Salazar 20 Londres S2 Jaime 10 Paris A - B: S# SNOM ZONA CIUDAD S4 Corona 20 Londres B - A: S# SNOM ZONA CIUDAD S2 Jaime 10 Paris 60

61 PRODUCTO CARTESIANO Operación con poca importancia práctica. Hay sistemas relacionales que no incorporan esta operación. Para garantizar la propiedad de cierre, no puede haber atributos iguales en los dos operandos. No existen atributos iguales en una relación, ni que sea resultado de una operación. Definición: Dos relaciones són COMPATIBLES RES- PECTO EL PRODUCTO (producto-compatibles) si las dos cabeceras son disjuntas, no tienen ningún atributo en común. 61

62 Definición: Dadas dos relaciones A,B producto-compatibles, A B corresponde a otra relación con cabecera formada per la unión de las dos cabeceras. cuerpo formado por todas las tuplas formadas por la combinación de una tupla de A por cada una de B, y esto para todas las tuplas de A. (combinación de tuplas, no de campos) Ejemplo: A: S# SNOM B: P# S1 Salazar P1 S4 Corona P2 S2 Jaime P3 P4 P5 P6 A B: S# SNOM P# S# SNOM P# S1 Salazar P1 S1 Salazar P4 S4 Corona P1 S4 Corona P4 S2 Jaume P1 S2 Jaume P4 S1 Salazar P2 S1 Salazar P5 S4 Corona P2 S4 Corona P5 S2 Jaume P2 S2 Jaume P5 S1 Salazar P3 S1 Salazar P6 S4 Corona P3 S4 Corona P6 S2 Jaume P3 S2 Jaume P6 62

63 Unión Intersección Producto Cartesiano Propiedades { Conmutativa Asociativa Conmutativa: A B B A A B B A A B B A Asociativa: (A B) C A (B C) (A B) C A (B C) (A B) C A (B C) 63

64 OPERADORES RELACIONALES RESTRICCIÓN PROJECCIÓN REUNIÓN (JOIN) NATURAL DIVISIÓN 64

65 RESTRICCIÓN Definición: Sea la representación de cualquier operador de comparación simple (=,, <,, >, ). Dada una relación A y dos atributos X, Y, A WHERE X Y es otra relación con misma cabecera de A cuerpo formado per las tuplas que hacen verdadera la condición X Y. Consideraciones: X, Y definidos en el mismo dominio. A puede o no ser una relación con nombre. También puede ser el resultado de una expresión relacional. X, Y pueden ser: Nombres de atributos Constantes Identificadores de lenguaje anfitrión (SQL Inmerso) En la definición se ha puesto una expresión condicional simple, peró también puede ir una combinación de expresiones condicionales simples (expresión condicional compuesta): A WHERE C1 AND C2 A WHERE (C1 OR C2) AND C3 A WHERE NOT C1 65

66 Ejemplo: S: S# SNOM ZONA CIUDAD S1 Salazar 20 Londres S2 Jaume 10 Paris S3 Bernal 30 Paris S4 Corona 20 Londres S5 Aldana 30 Atenas P: P# PNOM COLOR PES CIUDAD P1 Femella Roja 12 Londres P2 Pern Verd 17 Paris P3 Cojinete Azul 17 Roma P4 Cojinete Roja 14 Londres P5 Rodet Azul 12 Paris P6 Engranatge Roja 19 Londres S WHERE S# SNOM ZONA CIUDAD CIUDAD= Londres : S1 Salazar 20 Londres S4 Corona 20 Londres P WHERE P# PNOM COLOR PES CIUDAD PES < 14: P1 Femella Roja 12 Londres P5 Rodet Azul 12 Paris 66

67 Ejemplo: SP: S# P# CANT S1 P1 300 S1 P2 200 S1 P3 400 S1 P4 200 S1 P5 100 S1 P6 100 S2 P1 300 S2 P2 400 S3 P3 200 S4 P2 200 S4 P4 300 S4 P5 400 SP WHERE S# P# CANT (S#= S1 ) AND (P#= P1 ): S1 P

68 PROJECCIÓN Definición: La PROYECCIÓN DE LA RELACIÓN A SEGÚN LOS ATRIBUTOS X,Y,...,Z, denotada como es otra relación con A[X, Y,..., Z] cabecera formada por los atributos X, Y,..., Z. cuerpo formado por el conjunto de todas las tuplas (X : x, Y : y,..., Z : z) con valores de la relación A de forma que x es el valor del atributo X, y es el valor del atributo Y... y z es el valor del atributo Z, evitando duplicados de tuplas. 68

69 Ejemplo: S: S# SNOM ZONA CIUDAD S1 Salazar 20 Londres S2 Jaime 10 Paris S3 Bernal 10 Paris S4 Corona 20 Londres S5 Aldana 30 Atenas P: P# PNOM COLOR PES CIUDAD P1 Femella Roja 12 Londres P2 Pern Verd 17 Paris P3 Cojinete Azul 17 Roma P4 Cojinete Roja 14 Londres P5 Rodet Azul 12 Paris P6 Engranatge Roja 19 Londres S[CIUDAD]: CIUDAD Londres Paris Atenas P[COLOR,CIUDAD]: COLOR CIUDAD Roja Verd Azul Azul Londres Paris Roma Paris (S WHERE CIUDAD= Paris )[S#]: S# S2 S3 69

70 REUNIÓN (JOIN) NATURAL Definición: Dadas dos relaciones A, B con las cabeceras A : (X 1, X 2,..., X m, Y 1, Y 2,..., Y n ) B : (Y 1, Y 2,..., Y n, Z 1, Z 2,..., Z p ) donde Y i son los atributos comunes a las relaciones A, B definidos en los mismo dominios, considerando (X 1, X 2,..., X m ), (Y 1, Y 2,..., Y n ), y (Z 1, Z 2,..., Z p ) como atributos compuestos X, Y, Z, la REUNIÓN NATURAL DE A y B (A JOIN B) es otra relación con: cabecera formada por los atributos X, Y, Z. cuerpo formado por el conjunto de todas las tuplas (X : x, Y : y, Z : z) tales que 1. Existe en la relación A una tupla con valor x en el atributo X y valor y en el atributo Y. 2. Existe en la relación B una tupla con valor y en el atributo Y y valor z en el atributo Z. 70

71 Propiedades: CONMUTATIVA: A JOIN B B JOIN A ASOCIATIVA: (A JOIN B) JOIN C A JOIN (B JOIN C) Si no existen atributos comunes, A JOIN B A B En la práctica, los operadores JOIN y PRODUCTO CARTESIANO se unifican en un único expresado como : Si atributos no comunes, PRODUCTO CARTE- SIANO: A B A B Si atributos comunes, JOIN: A B A JOIN B 71

72 Ejemplo: S: S# SNOM ZONA CIUDAD S1 Salazar 20 Londres S2 Jaime 10 Paris S3 Bernal 10 Paris S4 Corona 20 Londres S5 Aldana 30 Atenas P: P# PNOM COLOR PES CIUDAD P1 Femella Roja 12 Londres P2 Pern Verd 17 Paris P3 Cojinete Azul 17 Roma P4 Cojinete Roja 14 Londres P5 Rodet Azul 12 Paris P6 Engranatge Roja 19 Londres S P: S# SNOM ZONA CIUDAD P# PNOM COLOR PES S1 Salazar 20 Londres P1 Femella Roja 12 S1 Salazar 20 Londres P4 Cojinete Roja 14 S1 Salazar 20 Londres P6 Engranatge Roja 19 S2 Jaime 10 Paris P2 Pern Verd 17 S2 Jaime 10 Paris P5 Rodet Azul 12 S3 Bernal 10 Paris P2 Pern Verd 17 S3 Bernal 10 Paris P5 Rodet Azul 12 S4 Corona 20 Londres P1 Femella Roja 12 S4 Corona 20 Londres P4 Cojinete Roja 14 S4 Corona 20 Londres P6 Engranatge Roja 19 72

73 JOIN THETA (JOIN GENERAL) Combinar tablas con condición diferente a la igualdad, que es la condición propia del join natural. Definición: Sea la representación de cualquier operador de comparación simple (=,, <,, >, ), Dadas A, B dos relaciones producto-compatibles, el JOIN-theta de la relación A según el atributo X con la relación B según el atributo Y que se denota A B WHERE X Y es otra relación con: cabecera formada por la cabecera del producto cartesiano A, B (unión de las cabeceras A, B) cuerpo formado por las tuplas del producto cartesiano A, B que cumplan la condición X Y, siendo X, Y sobre el mismo dominio y siendo aplicable sobre el dominio. 73

74 Ejemplo: Calcular el join-major de la relación S según CIUDAD, con la relación P según CIUDAD. S: S# SNOM ZONA CIUDAD S1 Salazar 20 Londres S2 Jaime 10 Paris S3 Bernal 10 Paris S4 Corona 20 Londres S5 Aldana 30 Atenas P: P# PNOM COLOR PES CIUDAD P1 Femella Roja 12 Londres P2 Pern Verde 17 Paris P3 Cojinete Azul 17 Roma P4 Cojinete Roja 14 Londres P5 Rodete Azul 12 Paris P6 Engranaje Roja 19 Londres ((S RENAME CIUDAD AS SCIUDAD) (P RENAME CIUDAD AS PCIUDAD)) WHERE SCIUDAD > PCIUDAD 74

75 (S RENAME CIUTAT AS SCIUTAT) (P RENAME CIUTAT AS PCIUTAT): S# SNOM ZONA SCIUTAT P# PNOM COLOR PES PCIUTAT S1 Salazar 20 Londres P1 Femella Vermell 12 Londres S1 Salazar 20 Londres P2 Pern Verd 17 Paris S1 Salazar 20 Londres P3 Coixinet Blau 17 Roma S1 Salazar 20 Londres P4 Coixinet Vermell 14 Londres S1 Salazar 20 Londres P5 Rodet Blau 12 Paris S1 Salazar 20 Londres P6 Engranatge Vermell 19 Londres S2 Jaume 10 Paris P1 Femella Vermell 12 Londres S2 Jaume 10 Paris P2 Pern Verd 17 Paris S2 Jaume 10 Paris P3 Coixinet Blau 17 Roma S2 Jaume 10 Paris P4 Coixinet Vermell 14 Londres S2 Jaume 10 Paris P5 Rodet Blau 12 Paris S2 Jaume 10 Paris P6 Engranatge Vermell 19 Londres S3 Bernal 30 Paris P1 Femella Vermell 12 Londres S3 Bernal 30 Paris P2 Pern Verd 17 Paris S3 Bernal 30 Paris P3 Coixinet Blau 17 Roma S3 Bernal 30 Paris P4 Coixinet Vermell 14 Londres S3 Bernal 30 Paris P5 Rodet Blau 12 Paris S3 Bernal 30 Paris P6 Engranatge Vermell 19 Londres S4 Corona 20 Londres P1 Femella Vermell 12 Londres S4 Corona 20 Londres P2 Coixinet Blau 17 Paris S4 Corona 20 Londres P3 Coixinet Vermell 17 Roma S4 Corona 20 Londres P4 Coixinet Vermell 14 Londres S4 Corona 20 Londres P5 Rodet Blau 12 Paris S4 Corona 20 Londres P6 Engranatge Vermell 19 Londres S5 Aldana 30 Atenas P1 Femella Vermell 12 Londres S5 Aldana 30 Atenas P2 Coixinet Blau 17 Paris S5 Aldana 30 Atenas P3 Coixinet Vermell 17 Roma S5 Aldana 30 Atenas P4 Coixinet Vermell 14 Londres S5 Aldana 30 Atenas P5 Rodet Blau 12 Paris S5 Aldana 30 Atenas P6 Engranatge Vermell 19 Londres 75

76 Observaciones: Si es la igualdad EQUIJOINS En equijoins, han de existir como a mínimo dos atributos iguales, uno por cada relación, con dominios iguales. Se eliminan atributos duplicados JOIN NATURAL: Equijoin en el cual se eliminan atributos duplicados. S P ( ( S ( P RENAME CIUDAD AS PCIUDAD ) ) WHERE CIUDAD=PCIUDAD [S#,SNOM,ZONA,CIUDAD,P#,PNOM,COLOR,PES] ) ( ( ( S RENAME CIUDAD AS SCIUDAD ) P ) WHERE SCIUDAD=CIUDAD [S#,SNOM,ZONA,CIUDAD,P#,PNOM,COLOR,PES] ) 76

77 DIVISIÓN Definición: Dadas dos relaciones A, B con las cabeceras A : (X 1, X 2,..., X m, Y 1, Y 2,..., Y n ) B : (Y 1, Y 2,..., Y n ) siendo (Y 1, Y 2,..., Y n ) atributos comunes sobre los mismos dominios, considerando (X 1, X 2,..., X m ), (Y 1, Y 2,..., Y n ) como atributos compuestos X, Y la DIVISIÓN DE A y B (A B) es otra relación con: cabecera formada por los atributos X. cuerpo formado por el conjunto de todas las tuplas (X : x) tales que aparece una tupla (X : x, Y : y) en A para todas las tuplas (Y : y) presentes en B. Cuerpo formado por todos los valores de X en A con valores Y en A que incluyen todos los valores de Y en B. 77

78 Ejemplo: SPP: S# P# A: P# P1 S1 P1 S1 P2 B: P# S1 P3 P2 S1 P4 P4 S1 P5 S1 P6 C: P# S2 P1 P1 S2 P2 P2 S3 P3 P3 S4 P2 P4 S4 P4 P5 S4 P5 P6 SPP A: S# S1 S2 (Sólo dos valores S# contienen P1) SPP B: S# S1 S4 (Sólo S1,S4 se asocian simultáneamente a P2, P4) SPP C: S# S1 (Sólo S1 está relacionado simultáneamente a P1, P2, P3, P4, P5, P6) 78

79 Ejemplo: Dada la tabla SP SP: S# P# CANT S1 P1 300 S1 P2 200 S1 P3 400 S1 P4 200 S1 P5 100 S1 P6 100 S2 P1 300 S2 P2 400 S3 P3 200 S4 P2 200 S4 P4 300 S4 P5 400 Buscar los proveedores que producen piezas P2 y P4 simultáneamente SP[S#,P#] ( ( P WHERE P#= P2 ) ( P WHERE P#= P4 ) ) [P#] 79

80 EJEMPLOS DEL ÁLGEBRA RELACIONAL Ejemplos de formulación de consultas según el Ejemplo de BD proveedores-piezas (S,SP,P ). S: S# SNOM ZONA CIUDAD S1 Salazar 20 Londres S2 Jaime 10 Paris S3 Bernal 10 Paris S4 Corona 20 Londres S5 Aldana 30 Atenas P: P# PNOM COLOR PES CIUDAD P1 Femella Roja 12 Londres P2 Pern Verd 17 Paris P3 Cojinete Azul 17 Roma P4 Cojinete Roja 14 Londres P5 Rodet Azul 12 Paris P6 Engranatge Roja 19 Londres SP: S# P# CANT S1 P1 300 S1 P2 200 S1 P3 400 S1 P4 200 S1 P5 100 S1 P6 100 S2 P1 300 S2 P2 400 S3 P3 200 S4 P2 200 S4 P4 300 S4 P

81 Obtener el nombre de los proveedores que suministren la pieza P2 ( ( S SP ) WHERE P#= P2 ) [SNOM] (1) S# SNOM ZONA CIUDAD P# CANT S1 Salazar 20 Londres P1 300 S1 Salazar 20 Londres P2 200 S1 Salazar 20 Londres P3 400 S1 Salazar 20 Londres P4 200 S1 Salazar 20 Londres P5 100 S1 Salazar 20 Londres P6 100 S2 Jaime 10 Paris P1 300 S2 Jaime 10 Paris P2 400 S3 Bernal 10 Paris P3 200 S4 Corona 20 Londres P2 200 S4 Corona 20 Londres P4 300 S4 Corona 20 Londres P5 400 (2) S# SNOM ZONA CIUDAD P# CANT S1 Salazar 20 Londres P2 200 S2 Jaime 10 Paris P2 400 S4 Corona 20 Londres P2 200 (3) SNOM Salazar Jaime Corona 81

82 Obtener el nombre de los proveedores que proveen al menos una pieza roja ( ) ( P WHERE COLOR= Roja } {{ } ) [P# ] SP [S#] } (1) {{ } } (2) {{ } (3) [SNOM] S (1) P# PNOM COLOR PES CIUDAD P1 Femella Roja 12 Londres P4 Cojinete Roja 14 Londres P6 Engranatge Roja 19 Londres (2) P# S# CANT P1 S1 300 P1 S2 300 P4 S1 200 P4 S4 300 P6 S1 100 (3) S# SNOM ZONA CIUDAD S1 Salazar 20 Londres S2 Jaume 10 Paris S4 Corona 20 Londres (4) SNOM Salazar Jaime Corona 82

83 Obtener el nombre de los proveedores que suministran todas las piezas ( ( SP[S#,P#] P[P#] } {{ } ) } (1) {{ } (2) S ) [SNOM] (1) S# S1 (2) S# SNOM ZONA CIUDAD S1 Salazar 20 Londres (3) SNOM Salazar Expresión: ( SP[S#,P#] P[P#] ) ( SP P[P#] ) [S#] 83

84 Buscar el nombre de los proveedores que suministran al menos todas las piezas suministradas por S2 ( SP[S#,P#] ( ( SP WHERE S#= S2 ) [P #] ) ) S [SNOM] (1) S# P# S1 S1 S1 S1 S1 S1 S2 S2 S3 S4 S4 S4 P1 P2 P3 P4 P5 P6 P1 P2 P3 P2 P4 P5 (2) P# P1 P2 (3) S# S1 (4) S# SNOM ZONA CIUDAD S1 Salazar 20 Londres 84

85 Buscar el nombre de los proveedores que no suministran la pieza P2 ( ( S[S#] - ( SP WHERE P#= P2 ) [S#] ) S ) [SNOM] (1) S# S1 S2 S3 S4 S5 (2) S# P# CANT S1 P2 200 S2 P2 400 S4 P2 200 (3) S# S3 S5 (4) S# SNOM ZONA CIUDAD S3 Bernal 10 Paris S5 Aldana 30 Atenas 85

86 Encontrar todas las parejas de números de proveedores tales que estén en la misma ciudad ( S RENAME S# AS PRIMER ) [PRIMER,CIUDAD] ( S RENAME S# AS SEGON ) [SEGON,CIUDAD] WHERE PRIMER < SEGON [PRIMER,SEGON] (1) PRIMER SNOM ZONA CIUDAD S1 Salazar 20 Londres S2 Jaime 10 Paris S3 Bernal 10 Paris S4 Corona 20 Londres S5 Aldana 30 Atenas (2) PRIMER CIUDAD S1 S2 S3 S4 S5 Londres Paris Paris Londres Atenas 86

87 (3) SEGON SNOM ZONA CIUDAD S1 Salazar 20 Londres S2 Jaime 10 Paris S3 Bernal 10 Paris S4 Corona 20 Londres S5 Aldana 30 Atenas (4) SEGON CIUDAD S1 S2 S3 S4 S5 Londres Paris Paris Londres Atenas (5) PRIMER CIUDAD SEGON S1 Londres S1 S1 Londres S4 S4 Londres S1 S4 Londres S4 S2 Paris S2 S2 Paris S3 S3 Paris S2 S3 Paris S3 S5 Atenas S5 (6) PRIMER SEGON S1 S2 S4 S3 87

88 REGLAS DE HERENCIA DE CLAVE PRIMARIA Componentes de una relación: Cabecera Cuerpo CLAVE PRIMARIA Como queda la clave primaria de las relaciones obtenidas como resultado de las expresiones? Depende de la operación. 88

89 Dadas R 1, R 2, dos relaciones con claves primarias C 1, C 2 respectivamente, y siendo A los atributos comunes a C 1, C 2, sea R t la relación resultante de operar R 1 (si la operación es unaria R t = R 1 ) o R 1 con R 2 (si la operación es binaria R t = R 1 R 2 ), con C t como clave primaria, en función del tipo de operación, la clave primaria C t será: UNIÓN: C t = C 1 ó C t = C 2 (pues C 1 = C 2 ) INTERSECCIÓN: C t = C 1 ó C t = C 2 (pues C 1 = C 2 ) DIFERENCIA: C t = C 1 ó C t = C 2 (pues C 1 = C 2 ) PRODUCTO CARTESIANO: C t = C 1 C 2 Producto cartesiano es producto-compatible C 1, C 2 disjuntos A = 89

90 RESTRICCIÓN: C t = C 1 PROYECCIÓN: Dos opciones: C t = C 1 si los atributos de la proyección contienen todos los atributos de la clave primaria de R 1. C t = cabecera(r t ), en cualquier otro caso. JOIN NATURAL: C t = (C 1 C 2 ) eliminando atributos duplicados. DIVISIÓN: Considerando R 1 (X, Y ) R 2 (Y ), pueden haber dos opciones: C t = C 1 si C 1 X C t = cabecera(r t ), en cualquier otro caso. RENAME: Atributos que formaban la clave primaria siguen formándola, puede con el número cambiado. 90

91 Operadores de CODD: No constituyen un conjunto mínimo. Cinco operadores primitivos: 1. Unión 2. Diferencia 3. Producto 4. Proyección 5. Restricción Tres operadores NO primitivos: 1. JOIN: A(X, Y ) B(X, Z) = ((A (B RENAME X AS W )) WHERE X = W )[X, Y, Z] 2. INTERSECCIÓN: A(X) B(X) = ((A (B RENAME X AS W )) WHERE X = W )[X] 3. DIVISIÓN: R(X, Y ) S(X) = R[Y ] ((S R[Y ]) R)[Y ] pero operadores suficientemente importantes para considerarlos como primitivos. 91

92 OPERADORES ADICIONALES AMPLIACIÓN (EXTENSIÓN) RESUMEN DIVISIÓN GENERAL JOIN EXTERN (OUTER JOIN) JOIN THETA EXTERN (OUTER JOIN THETA) 92

93 AMPLIACIÓN (EXTENSIÓN) Definición: Dada una relación A con la cabecera A : (X 1, X 2... X n ) on X i són atributos de tipo numérico, la operación de EXTENSIÓN con la sintaxis EXTEND A ADD <expresion_escalar> AS <nombre_atributo> on <expresion escalar> es una expresión en función de los atributos o una constante. <nombre atributo> es un identificador. es una relación con cabecera de la relación A añadiendo como atributo <nom atributo>. cuerpo formado por todas las tuplas de A con el valor del atributo <nom atributo> correspondiente a <expresion escalar> Operador que permite calcular expresiones aritméticas añadiéndolas como un atributo a la relación. Aparece por la necesidad de realizar cálculos entre los atributos. 93

94 Ejemplo: Obtener una relación con S#,P#,CANT,PES, PES*CANT EXTEND ( SP P ) [S#,P#,CANT,PES] ADD ( CANT PES ) AS PESO PIEZAS SP P: S# P# CANT PNOM COLOR PES CIUDAD S1 P1 300 Femella Roja 12 Londres S1 P2 200 Perno Verd 17 Paris S1 P3 400 Cojinete Azul 17 Roma S1 P4 200 Cojinete Roja 14 Londres S1 P5 100 Rodete Azul 12 Paris S1 P6 100 Engranaje Roja 19 Londres S2 P1 300 Femella Roja 12 Londres S2 P2 400 Perno Verd 17 Paris S3 P3 200 Cojinete Azul 17 Roma S4 P2 200 Perno Verd 17 Paris S4 P4 300 Cojinete Roja 14 Londres S4 P5 400 Rodet Azul 12 Paris S# P# CANT PES PESO PIEZAS S1 P S1 P S1 P S1 P S1 P S1 P S2 P S2 P S3 P S4 P S4 P S4 P

95 RESUMEN Definición: Dada una relación A con la cabecera A : (X 1, X 2... X n ) donde X i són atributos de tipo numérico, la operación de RESUMEN con la sintaxis SUMMARIZE A GROUPBY (<lista_atributos>) ADD <operador_grupo> AS <nombre_atributo> donde <nombre atributo> es un identificador <operador grupo> puede ser: * COUNT (<atributo>) Contar tuplas. * SUM (<atributo>) Sumar valores en tuplas. * AVG (<atributo>) Promedio de valores en tuplas. * MIN (<atributo>) Encontrar mínimo valor en tuplas. * MAX (<atributo>) Encontrar máximo valor en tuplas. es una relación con cabecera formada per <lista atributos> y <nombre atributo>. cuerpo formado por los valores diferentes de <lista atributos> y como valor de <nombre atributo> el resultado de la función <operador grupo> sobre <lista atributos>. 95

96 Observaciones: Operación similar a ampliación, pero lo que hace es añadir atributos obtenidos de operaciones sobre grupos de tuplas (COUNT, SUM, AVG, MIN, MAX). Inconvenientes: tupla): Si la relación es vacía (ninguna Resultado operadores SUM, COUNT debería ser ZERO (0). Resultado de los operadores AVG, MIN, MAX debería ser INDEFINIDO. 96

97 Ejemplo: Calcular el número total de piezas almacenadas y el número promedio de piezas por suministrador. SP: S# P# CANT S1 P1 300 S1 P2 200 S1 P3 400 S1 P4 200 S1 P5 100 S1 P6 100 S2 P1 300 S2 P2 400 S3 P3 200 S4 P2 200 S4 P4 300 S4 P5 400 AGRUPANDO PER NÚMERO DE PIEZA: SUMMARIZE SP GROUPBY (P#) ADD SUM(CANT) AS QTOTAL, ADD AVG(CANT) AS QPROMIG P# QTOTAL QPROMIG P P P P P P AGRUPANDO POR NÚMERO DE SUMINISTRADOR: SUMMARIZE SP GROUPBY (S#) ADD SUM(CANT) AS QTOTAL, ADD AVG(CANT) AS QPROMIG S# QTOTAL QPROMIG S S S S

98 Ejemplo: Buscar las ciudades donde hay más de 5 tipos de piezas rojas. SUMMARIZE ( P WHERE COLOR= Roja ) GROUPBY (CIUDAD) ADD COUNT AS NUM WHERE NUM > 5 [CIUDAD] (1) P# PNOM COLOR PES CIUDAD P1 Femella Roja 12 Londres P4 Cojinete Roja 14 Londres P6 Engranaje Roja 19 Londres (2) CIUDAD NUM Londres 3 (3) CIUDAD NUM 98

99 Ejemplo: Buscar las ciudades donde hay menos de 5 piezas rojas. ciudades con piezas rojas (obtener las que tienen menos de cinco piezas) UNIÓN ciudades que no tienen piezas rojas (pues el no tener es un número de piezas menor de 5) SUMMARIZE ( P WHERE COLOR= Roja ) GROUPBY (CIUDAD) ADD COUNT AS NUM WHERE NUM < 5 [CIUDAD] ( P[CIUDAD] - ( P WHERE COLOR= Roja ) [CIUDAD] ) 99

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 8. Elementos Básicos 1.- Ejemplo Introductorio. 2.- Dominios. 3.- Relaciones. 4.- Bases de Datos Relacionales. (Capítulo 11 del Date) EJEMPLO

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 9. Reglas de Integridad 1.- Introducción. 2.- Claves Primarias. 3.- Regla de Integridad de Entidades. 4.- Claves Ajenas. 5.- Regla de Integridad

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 10. Álgebra Relacional

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 10. Álgebra Relacional FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 10. Álgebra Relacional 1.- Introducción. 2.- Una Sintaxis para el Álgebra Relacional. 3.- Asignación Relacional. 4.- Operaciones Tradicionales

Más detalles

3. Modelo relacional: Estructura e integridad.

3. Modelo relacional: Estructura e integridad. Modelo relacional: Estructura e integridad 47 3. Modelo relacional: Estructura e integridad. 3.1. Introducción. El modelo de datos relacional es posterior a los modelos jerárquicos y de red. Nació como

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 11. Cálculo Relacional

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 11. Cálculo Relacional FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 11. Cálculo Relacional 1.- Introducción. 2.- Cálculo Relacional Orientado a Tuplas. 3.- Cálculo Relacional vs Álgebra Relacional: Algoritmo

Más detalles

TEMA 4. EL MODELO RELACIONAL. 2. Estructura de datos relacional 3. Reglas de integridad 4. Lenguajes relacionales 5. Vistas

TEMA 4. EL MODELO RELACIONAL. 2. Estructura de datos relacional 3. Reglas de integridad 4. Lenguajes relacionales 5. Vistas TEMA 4. EL MODELO RELACIONAL 1. El modelo relacional 2. Estructura de datos relacional 3. Reglas de integridad 4. Lenguajes relacionales 5. Vistas 1. El Modelo Relacional Se debe a E.F. Codd y data de

Más detalles

SQL (Structured Query Language)- DML

SQL (Structured Query Language)- DML SQL (Structured Query Language)- DML Data Manipulation Language: Data Definition Language: Control Commands: Authorization Commands: SELECT, UPDATE, INSERT, DELETE CREATE: TABLE, INDEX, VIEW DROP: TABLE,

Más detalles

Base de datos relacional

Base de datos relacional Base de datos relacional Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para modelar problemas reales y administrar

Más detalles

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales Normalización de esquemas relacionales Motivación Sea la BD de proveedores y partes, con

Más detalles

TEMA 4. Diseño Lógico de bases de datos relacionales.

TEMA 4. Diseño Lógico de bases de datos relacionales. TEMA 4. Diseño Lógico de bases de datos relacionales. 1. El modelo relacional La teoría formal que constituye los cimientos de los sistemas relacionales se conoce como modelo de datos relacional. Cuando

Más detalles

Temario. Índices simples Árboles B Hashing

Temario. Índices simples Árboles B Hashing Temario Introducción y fundamentos Introducción a SQL Modelo Entidad / Relación Modelo relacional Diseño relacional: formas normales Consultas Cálculo relacional Álgebra relacional Implementación de bases

Más detalles

Práctica 3. Consultas SQL

Práctica 3. Consultas SQL Práctica 3. Consultas SQL 1. Enunciado En este ejercicio se realizarán consultas SQL que respondan a las preguntas que se plantearán sin utilizar QBE. Dada una base de datos denominada Empresa y definida

Más detalles

1. Introducción: Qué es un Modelo de Datos? 2. Estática del modelo de datos relacional

1. Introducción: Qué es un Modelo de Datos? 2. Estática del modelo de datos relacional Tema 7: Modelo Relacional 1. Introducción: Qué es un Modelo de Datos? 2. Estática del modelo de datos relacional Dominios, Atributos, Relaciones Representación del esquema relacional Características de

Más detalles

LENGUAJES DE CONSULTA ORIENTADOS A OBJETOS

LENGUAJES DE CONSULTA ORIENTADOS A OBJETOS LENGUAJES DE CONSULTA ORIENTADOS A OBJETOS Los lenguajes de consulta constituyen una funcionalidad importante de los SGBDOO. El usuario puede recuperar los datos especificando simplemente las condiciones

Más detalles

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros La sentencia INSERT permite agregar nuevas filas de datos a las tablas existentes. Está sentencia

Más detalles

UNIVERSIDAD NACIONAL DE ASUNCION FACULTAD POLITÉCNICA CARRERA: LCIK MATERIA: Bases de Datos I Prof: Lic. Lilian Riveros Unidad 2: Modelo Relacional

UNIVERSIDAD NACIONAL DE ASUNCION FACULTAD POLITÉCNICA CARRERA: LCIK MATERIA: Bases de Datos I Prof: Lic. Lilian Riveros Unidad 2: Modelo Relacional El Modelo Relacional es un modelo de datos que nos permite describir la estructura de una base de datos a nivel lógico. En 1969, Edgar Frank Ted Codd (1923-2003) introduce el modelo relacional con una

Más detalles

El modelo relacional

El modelo relacional El modelo relacional El modelo relacional constituye una alternativa para la organización y representación de la información que se pretende almacenar en una base de datos. Se trata de un modelo teórico

Más detalles

- Bases de Datos - - Diseño Físico - Luis D. García

- Bases de Datos - - Diseño Físico - Luis D. García - Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo

Más detalles

Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta

Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta Operaciones en el Modelo Relacional Bases de Datos Ingeniería a Técnica T en Informática de Sistemas El interés de los usuarios de las bases de datos se suele centrar en realizar consultas (contestar a

Más detalles

Bases de Datos Modelo Relacional

Bases de Datos Modelo Relacional Bases de Datos Modelo Relacional Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos del método relacional

Más detalles

4. Modelo Relacional: Manipulación de los datos.

4. Modelo Relacional: Manipulación de los datos. Modelo Relacional: Manipulación de los datos. 54 4. Modelo Relacional: Manipulación de los datos. 4.1. Lenguaje de procedimiento: álgebra relacional Los lenguajes de procedimientos para consultar bases

Más detalles

Álgebra Relacional. Unidad 5

Álgebra Relacional. Unidad 5 Álgebra Relacional Unidad 5 Definición Álgebra es un sistema matemático que está formado por: Operandos. Valores o variables con los cuáles se pueden construir nuevos valores o variables Operadores. Símbolos

Más detalles

Bases de Datos: Structured Query Language (SQL)

Bases de Datos: Structured Query Language (SQL) Structured Query Language (SQL): Introducción Bases de Datos: Structured Query Language (SQL) Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile

Más detalles

UNIDAD 3. MODELO RELACIONAL

UNIDAD 3. MODELO RELACIONAL UNIDAD 3. MODELO RELACIONAL El modelo relacional se basa en dos ramas de las matemáticas: la teoría de conjuntos y la lógica de predicados de primer orden. El hecho de que el modelo relacional esté basado

Más detalles

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES El modelo relacional se basa en dos ramas de las matemáticas: la teoría de conjuntos y la lógica de predicados de primer orden. El hecho de que

Más detalles

Consultas con combinaciones

Consultas con combinaciones UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden

Más detalles

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007 OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007 Álgebra Relacional Álgebra Relacional El álgebra relacional es

Más detalles

Temario. Índices simples Árboles B Hashing

Temario. Índices simples Árboles B Hashing Temario Introducción y fundamentos Introducción a SQL Modelo Entidad / Relación Modelo relacional Diseño relacional: formas normales Consultas Cálculo relacional Álgebra relacional Implementación de bases

Más detalles

Restricciones de Integridad

Restricciones de Integridad Restricciones de Integridad Amparo López Gaona México, D.F. Semestre 2000-I Restricciones de Integridad Las principales restricciones de integridad que pueden indicarse son: La clave primaria. Claves candidatas.

Más detalles

A.1. Definiciones de datos en SQL

A.1. Definiciones de datos en SQL A.1. Definiciones de datos en SQL Las Sentencias del lenguaje de definición de datos (DDL) que posee SQL operan en base a tablas. Las Principales sentencias DDL son las siguientes: CREATE TABLE DROP TABLE

Más detalles

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com. Maestría en Bioinformática Bases de Datos y Sistemas de Información Diseño Lógico Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy Agenda Conceptos Herramientas Diseño lógico Modelo Relacional Las

Más detalles

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS Una subconsulta es una consulta que aparece dentro de otra consulta o subconsultas, en

Más detalles

Sistemas de Bases de Datos I. Modelo Lógico Modelo Relacional

Sistemas de Bases de Datos I. Modelo Lógico Modelo Relacional Sistemas de Bases de Datos I Modelo Lógico Modelo Relacional Modelo Lógico Modelo Relacional Esquema Relacional (E- R) Es la representación de un DER mediante tablas. Algebra Relacional Modelo Relacional

Más detalles

Repaso de Conceptos Básicos de Bases de Datos

Repaso de Conceptos Básicos de Bases de Datos escuela técnica superior de ingeniería informática Repaso de Conceptos Básicos de Bases de Datos Departamento de Lenguajes Grupo de Ingeniería del Software Septiembre 2004 Definición Una base de datos

Más detalles

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl Resumen demandas de almacenamiento y procesamiento de datos. Es el conjunto de estas dos capacidades

Más detalles

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ] SINTAXIS DE SQL-92 Introducción: Se presenta brevemente un resumen de la sintaxis de SQL según el estándar ISO 9075 (SQL- 92), dividido en tres partes: - Lenguaje de Definición de Daots (LDD), - Lenguaje

Más detalles

TEMA II. El Modelo Relacional de Datos. El Modelo Relacional de Datos. El Modelo Relacional de Datos. El Modelo Relacional de Datos. Temario (cont.

TEMA II. El Modelo Relacional de Datos. El Modelo Relacional de Datos. El Modelo Relacional de Datos. El Modelo Relacional de Datos. Temario (cont. El Modelo Relacional de Datos TEMA II El Modelo Relacional de Datos Objetivos: conocer las estructuras de datos del modelo: la tupla y la relación, así como sus operadores asociados, conocer básicamente

Más detalles

ESQUEMA DE BASE DE DATOS ATROPELLOS

ESQUEMA DE BASE DE DATOS ATROPELLOS ESQUEMA DE BASE DE DATOS ATROPELLOS PEATONES (dni: domdni, nombre: domnombre, edad: domedad) CP(dni) COCHES (matrícula: dommat, marca: domcad, modelo: domcad) CP(matrícula) ATROPELLADOS (dni: domdni, matrícula:

Más detalles

Tema 3. El modelo Relacional

Tema 3. El modelo Relacional Tema 3. El modelo Relacional Juan Ignacio Rodríguez de León Resumen Presenta el modelo entidad-relación. Visión de alto nivel de las cuestiones referentes a diseño de bases de datos y los problemas encontrados

Más detalles

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006 Bases de Datos SQL 1 SQL Jorge Pérez R. Universidad de Talca, II Semestre 2006 Bases de Datos SQL 2 Structured Query Language Lenguaje de consulta para bases de datos comerciales. Originalmente llamado

Más detalles

1. DML. Las subconsultas

1. DML. Las subconsultas 1.1 Introducción 1. DML. Las subconsultas Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la lista de selección, en la cláusula WHERE o HAVING, originalmente no se

Más detalles

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL.

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL. 2.6.1.- Concepto de vista. Una vista es una tabla derivada de otras tablas (básicas o virtuales). Una vista se caracteriza porque: Se considera que forma parte del esquema externo. Una vista es una tabla

Más detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

Más detalles

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas. Vistas. El resultado de una consulta en el caso de SQL siempre es una tabla, ésta se puede hacer permanente dentro de la base de datos. En este caso se dice que esta tabla resultado es una vista o una

Más detalles

Módulo 9 Sistema matemático y operaciones binarias

Módulo 9 Sistema matemático y operaciones binarias Módulo 9 Sistema matemático y operaciones binarias OBJETIVO: Identificar los conjuntos de números naturales, enteros, racionales e irracionales; resolver una operación binaria, representar un número racional

Más detalles

UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES. Xochitl Clemente Parra Armando Méndez Morales

UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES. Xochitl Clemente Parra Armando Méndez Morales UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Práctica preliminar Crear la siguiente base de datos de prácticas

Más detalles

select nombre from profesores where categoria='aso6';

select nombre from profesores where categoria='aso6'; 1 de 10 17/05/2013 14:00 Lecciones SQL > T11 Conjuntos Operaciones de conjuntos y MySQL Un operador sobre conjuntos combina el resultado de dos sentencias select en un único resultado. Dependiendo del

Más detalles

Codd propuso estos tres lenguajes como base teórica de cualquier lenguaje que quisiera cumplir con los requisitos formales del modelo.

Codd propuso estos tres lenguajes como base teórica de cualquier lenguaje que quisiera cumplir con los requisitos formales del modelo. 16/05/2012 1 Todo modelo de datos debe definir un lenguaje de definición de datos para crear las estructuras donde se almacenará la información y un lenguaje de manipulación de datos con el que acceder

Más detalles

BASE DE DATOS RELACIONALES

BASE DE DATOS RELACIONALES BASE DE DATOS RELACIONALES Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para implementar bases de datos ya

Más detalles

Bases de Datos 2. Teórico

Bases de Datos 2. Teórico Bases de Datos 2 Teórico Structured Query Language (SQL) Características de SQL Standard Opera sobre conjuntos de tuplas: incluso para las operaciones de inserción, borrado y actualización. No elimina

Más detalles

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Del MER al MR. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Del MER al MR. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com. Maestría en Bioinformática Bases de Datos y Sistemas de Información Del MER al MR Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy Agenda Conceptos MER a MR Introducción Agenda Conceptos MER a MR

Más detalles

Normalización. El diseño que hemos recibido está compuesto de estas dos relaciones:

Normalización. El diseño que hemos recibido está compuesto de estas dos relaciones: Normalización 1. Introducción Nuestro departamento de informática ha recibido el encargo de diseñar una base de datos para llevar el control de las piezas, proveedores y proyectos que realiza nuestra empresa.

Más detalles

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo - 2011

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo - 2011 Structured Query Language () Fundamentos de Bases de Datos InCo - Un poco de historia Lenguajes de consulta relacionales: SEQUEL (IBM-1970) QUEL (Ingres-1970) QBE (IBM-1970) es el lenguaje comercial más

Más detalles

Modelos y Bases de Datos

Modelos y Bases de Datos Modelos y Bases de Datos MODELOS Y BASES DE DATOS 1 Sesión No. 12 Nombre: Lenguaje SQL: Valores Nulos Contextualización Qué más ofrece el lenguaje SQL? Así como te has introducido en el desarrollo de la

Más detalles

Estrategias Didácticas B-Learning: ÁLGEBRA RELACIONAL

Estrategias Didácticas B-Learning: ÁLGEBRA RELACIONAL Estrategias Didácticas B-Learning: ÁLGEBRA RELACIONAL Mg. Guillermo Bernardo Durán González Guillermo.duran.g@gmail.com Modelo de diseño instruccional, basado en la modalidad semi-presencial b-learning,

Más detalles

Tablas. Estas serán las tablas que usaremos en la mayoría de ejemplos. Empleado

Tablas. Estas serán las tablas que usaremos en la mayoría de ejemplos. Empleado Álgebra Relacional Un álgebra es un sistema matemático constituido por Operandos: objetos (valores o variables) desde los cuales nuevos objetos pueden ser construidos. Operadores: símbolos que denotan

Más detalles

http://en.wikipedia.org/wiki/edgar_f._codd

http://en.wikipedia.org/wiki/edgar_f._codd 26/03/2012 1 http://en.wikipedia.org/wiki/edgar_f._codd Codd estableció los fundamentos del modelo relacional en el artículos de 1970 "A Relational Model of Data for Large Shared Data Banks". En adelante,

Más detalles

Capítulo 3: Álgebra Relacional

Capítulo 3: Álgebra Relacional Capítulo 3: Álgebra Relacional Dr. José Torres Jiménez Laboratorio de Tecnologías de Información Centro de Investigación y de Estudios Avanzados del IPN Cinvestav-Tamaulipas Dr. José Torres Jiménez (Cinvestav-LTI)

Más detalles

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS AUTORÍA JOSEFA PÉREZ DOMÍNGUEZ TEMÁTICA NUEVAS TECNOLOGIAS ETAPA CICLOS FORMATIVOS DE GRADO SUPERIOR DE INFORMÁTICA Resumen En esta publicación se

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

4 Integridad de datos relacional: llaves candidatas y temas relacionados.

4 Integridad de datos relacional: llaves candidatas y temas relacionados. 4 Integridad de datos relacional: llaves candidatas y temas relacionados. 4.1 Introducción. 4.2 Llaves candidatas. 4.3 Llaves primarias y llaves alternas. 4.4 Llaves foráneas. 4.5 Reglas de llaves foráneas.

Más detalles

Bases de datos relacionales y el modelo entidad-relación

Bases de datos relacionales y el modelo entidad-relación Bases de datos relacionales y el modelo entidad-relación Qué es una base de datos relacional? El sistema gestor de bases de datos El modelo entidad-relación entidad, atributos y elementos (tablas, columnas

Más detalles

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo. CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia

Más detalles

El modelo relacional y el álgebra relacional

El modelo relacional y el álgebra relacional El modelo relacional y el álgebra relacional Introducción Esta unidad didáctica está dedicada al estudio del modelo de datos relacional y del álgebra relacional. El concepto de modelo de datos se ha presentado

Más detalles

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA 301127- Programación de sitios web Act 11: Reconocimiento de la unidad 3

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA 301127- Programación de sitios web Act 11: Reconocimiento de la unidad 3 GESTORES DE BASES DE DATOS Existen varios tipos de Sistemas gestores de bases de datos SGBD, según el modelo de datos que utilizan. Son estos: bases jerárquica, en red, relacional, y bases de datos orientadas

Más detalles

Bases de Datos. Sistemas de Gestión de Bases de Datos

Bases de Datos. Sistemas de Gestión de Bases de Datos Bases de Datos Sistemas de Gestión de Bases de Datos Banco de datos Conjunto de datos relacionados Ejemplo: archivos de las oficinas de una empresa, con fichas, carpetas, archivadores, armarios... La gestión

Más detalles

Modelo Relacional: Conceptos

Modelo Relacional: Conceptos Relacional: Conceptos M. -Tastets Universidad de Concepción,Chile www.inf.udec.cl\ andrea andrea@udec.cl II Semestre - 2007 de la Unidad Introducir los conceptos básicos asociados con los elementos estructurales

Más detalles

M III ABSTRACCIÓN Y CLASIFICACIÓN

M III ABSTRACCIÓN Y CLASIFICACIÓN M III ABSTRACCIÓN Y CLASIFICACIÓN COMPLEJIDAD Y ABSTRACCIÓN La abstracción en el desarrollo del programario En todo el proceso de abstracción siempre hay una parte de la situación o del problema que se

Más detalles

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño El proceso de diseño para una base de datos consta básicamente de 7 pasos, los cuáles se describen en la siguiente imagen.

Más detalles

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades INTRODUCCION Uno de los objetivos del curso es modelar a través de un diagrama las estructuras lógicas requeridas para almacenar los datos y resolver las consultas del sistema información que requiera

Más detalles

MANUAL BÁSICO DEL LENGUAJE SQL

MANUAL BÁSICO DEL LENGUAJE SQL MANUAL BÁSICO DEL LENGUAJE SQL ESCUELA COLOMBIANA DE INGENIERÍA JULIO GARAVITO LABORATORIO DE INFORMÁTICA BOGOTÁ D. C. 2007-2 TABLA DE CONTENIDO INTRODUCCIÓN... 3 1. COMANDOS... 4 1.1 Comandos DLL... 4

Más detalles

BASES DE DATOS TEMA 3. MODELO RELACIONAL

BASES DE DATOS TEMA 3. MODELO RELACIONAL Contenidos generales BASES DE DATOS TEMA 3. MODELO RELACIONAL * Conceptos del modelo relacional * Notación del modelo relacional * Lenguajes de consulta - Algebra relacional - Cálculo relacional Motivación

Más detalles

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación. Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden

Más detalles

Sub consultas avanzadas

Sub consultas avanzadas Sub consultas avanzadas Objetivo Después de completar este capítulo conocerá lo siguiente: Escribir una consulta de múltiples columnas Describir y explicar el comportamiento de las sub consultas cuando

Más detalles

Álgebra Relacional. Relacional. Manipulación. Índice. Operaciones. Lenguaje

Álgebra Relacional. Relacional. Manipulación. Índice. Operaciones. Lenguaje anipulación Álgebra Relacional Otra parte muy importante de un modelo de datos es el mecanismo de manipulación, también denominado lenguaje de consulta, que permite extraer y actualizar los datos Álgebra

Más detalles

Unidad. Lenguaje SQL. (Structured Query Language)

Unidad. Lenguaje SQL. (Structured Query Language) Unidad Lenguaje SQL (Structured Query Language) 1 SQL Definición DDL Consulta y Actualización DML Create Alter Drop Select Insert Update Delete 2 SQL DDL CREATE TABLE nombre_tabla (nombre_columna tipo_dato/dominio

Más detalles

Base de Datos. Profesor: José Miguel Rubio L. P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE ING.

Base de Datos. Profesor: José Miguel Rubio L. P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE ING. P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE ING. INFORMÁTICA Base de Datos Usuario A Programa de Aplicación Bodega Usuario B Usuario N Insumo Proveedor Profesor: José Miguel

Más detalles

CURSO DE SQL SERVER 2005

CURSO DE SQL SERVER 2005 CURSO DE SQL SERVER 2005 Una vez finalizado el curso, el alumno estará preparado para: Instalar y configurar SQL Server 2005. Comprender los conceptos más importantes del diseño de bases de datos. Crear

Más detalles

ÍNDICE. Introducción... Capítulo 1. Novedades de Access 2013... 1

ÍNDICE. Introducción... Capítulo 1. Novedades de Access 2013... 1 Introducción... XIII Capítulo 1. Novedades de Access 2013... 1 Nuevas posibilidades de cifrado, compactación y reparación de archivos... 1 Trabajo en la nube... 2 Compartir la información... 3 Guardar

Más detalles

Lenguaje para descripción de datos

Lenguaje para descripción de datos Amparo López Gaona tación Fac. Ciencias, UNAM Mayo 2012 Definición de Datos El lenguaje para definición de datos permite especificar: Esquema de cada relación. El dominio de cada atributo. Restricciones

Más detalles

Procedimientos para agrupar y resumir datos

Procedimientos para agrupar y resumir datos Procedimientos para agrupar y resumir datos Contenido Introducción Presentación de los primeros n valores Uso de funciones de agregado 4 Fundamentos de GROUP BY 8 Generación de valores de agregado dentro

Más detalles

CERTAMEN 2 90 minutos 20 puntos

CERTAMEN 2 90 minutos 20 puntos CERTAMEN 2 Para la realización del presente certamen se dispondrá de 90 minutos. Debe incluir cualquier supuesto no explicito, siempre cuando no cambie el sentido de la pregunta. No se pueden utilizar

Más detalles

Generaciones de Bases de Datos

Generaciones de Bases de Datos Generaciones de Bases de Datos Sector Comercial Centros de Investigación Sector Industrial Primera generación: Bases de datos jerárquica Segunda: Bases de datos en red Tercera: Bases de datos relacionales

Más detalles

Cuando el pedido se entrega al cliente, se genera la factura correspondiente.

Cuando el pedido se entrega al cliente, se genera la factura correspondiente. (-(5&,&,26&$3Ë78/2 Una empresa compra a una serie de es diferentes piezas que posteriormente venderá a sus clientes, debiendo llevar a cabo el control de almacén (nº de piezas existentes de cada una de

Más detalles

4.Diseño de Bases de Datos (I)

4.Diseño de Bases de Datos (I) 4.Diseño de Bases de Datos (I) 4.1 Anomalías. Se denominan así en teoría de Bases de Datos a ciertos problemas que aparecen con frecuencia en el manejo de las mismas cuando el diseño no ha sido realizado

Más detalles

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases. BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades

Más detalles

Modelos y Bases de Datos

Modelos y Bases de Datos Modelos y Bases de Datos MODELOS Y BASES DE DATOS 1 Sesión No. 10 Nombre: Álgebra Relacional Contextualización En qué consiste el álgebra relacional? Se ha planteado hasta el momento cada uno de los procesos

Más detalles

Metadatos en Plataformas ECM

Metadatos en Plataformas ECM Metadatos en Plataformas ECM understanding documents Ofrece tu sistema soporte para tipos documentales en bases de datos? Por qué debería importarte? Marzo, 2013 Basado en: Manejo de metadatos en plataformas

Más detalles

BASE DE DATOS - CURSO 02/03 PRÁCTICA 2: SQL: Lenguaje de definición de datos (DDL)

BASE DE DATOS - CURSO 02/03 PRÁCTICA 2: SQL: Lenguaje de definición de datos (DDL) OBJETIVOS: Enseñar al alumno las sentencias que forman el lenguaje de definición de datos de SQL, es decir, el subconjunto de órdenes que nos permitirán crear o editar esquemas de bases de datos. MATERIAL:

Más detalles

Trabajo Práctico Modelo de Bases de Datos Relacionales

Trabajo Práctico Modelo de Bases de Datos Relacionales Base de Datos 29 Trabajo Práctico Modelo de Bases de Datos Relacionales Objetivos Valorar y comparar diferentes opciones de diseño conceptual para representar una misma situación, en función de su corrección

Más detalles

Patrones para persistencia (I) Ingeniería del Software II

Patrones para persistencia (I) Ingeniería del Software II Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura

Más detalles

CONSULTA Y MANIPULACIÓN DE LOS DATOS

CONSULTA Y MANIPULACIÓN DE LOS DATOS CONSULTA Y MANIPULACIÓN DE LOS DATOS 5.1.- Álgebra Relacional El modelo relacional es la forma de representar los datos y manipular dicha representación considerando la integridad de los datos. Estos,

Más detalles

Teórico 9 Del MER al MR

Teórico 9 Del MER al MR Teórico 9 Del MER al MR Introducción Veremos cómo traducir un modelo conceptual, en forma de Modelo Entidad-Relación, en un modelo lógico de base de datos, en forma de Modelo Relacional. Para esto, estudiaremos

Más detalles

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

Más detalles

CONSULTAS MULTITABLAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

CONSULTAS MULTITABLAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE CONSULTAS MULTITABLAS SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE CONSULTAS MULTITABLAS Hasta ahora hemos visto consultas que obtienen los datos de una sola tabla,

Más detalles

Diseño de bases de datos Diapositiva 1

Diseño de bases de datos Diapositiva 1 Diseño o de bases de datos Objetivos del Diseño Principios del Diseño de BD Proceso de Diseño Normalización Diseño de Tablas: Claves Relaciones Integridad referencial Convenciones de nomenclatura Diseño

Más detalles

T12 Vistas y tablas temporales

T12 Vistas y tablas temporales 1 de 9 17/05/2013 14:01 Lecciones SQL > T12 Vistas y tablas temporales En esta sesión vamos a mostrar dos tipos de objetos de uso habitual en cualquier SGBD: las vistas y las tablas temporales. Mientras

Más detalles

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos Grupo de Bases de Datos Avanzadas Univ. Carlos III de Madrid Índice V.1 Introducción V.1 SQL como Lenguaje de V.1.1 Definición del esquema V.1.2 Evolución del esquema V.2 SQL como Lenguaje de Manipulación

Más detalles

Capítulo 9. Archivos de sintaxis

Capítulo 9. Archivos de sintaxis Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta

Más detalles

Álgebra Relacional. Dra. Amparo López Gaona () Posgrado en Ciencia e Ingeniería de la Compu. Fac. Ciencias, UNAM / 1

Álgebra Relacional. Dra. Amparo López Gaona () Posgrado en Ciencia e Ingeniería de la Compu. Fac. Ciencias, UNAM / 1 Dra. Amparo López Gaona tación Fac. Ciencias, UNAM Álgebra relacional Conjunto de operaciones usadas para manipular relaciones. Estas operaciones toman relaciones como operandos y regresan relaciones que

Más detalles