Download Bases de datos relacionales
Document related concepts
Transcript
Universidad de Antioquia Escuela Interamericana de Bibliotecología CURSO AUTOMATIZACION DE UNIDADES DE INFORMACIÓN TEMA: TEORIA DE BASES DE DATOS Profesora: Laura Maria Posada Arboleda Modelos de datos Introducción Un DBMS es una colección de archivos interrelacionados y un conjunto de programas que le permiten al usuario el acceso y la modificación de esos archivos. El sistema de banco de datos le debe proporcionar al usuario una visión abstracta de los datos, esto es, el sistema le esconde al usuario ciertos detalles de cómo se almacenan y se mantienen los datos. Los datos se deben poder extraer eficientemente. Por eso se han usado estructuras de datos complejas en la representación de datos en el banco de datos. Para facilitarle la labor al usuario se le esconde la complejidad a través de diversos niveles de abstracción que simplifiquen su interacción con el sistema. Niveles de abstracción Por lo anterior podemos ver la abstracción de los datos en tres niveles, los cuales son: Nivel físico, nivel conceptual y nivel de visión o vistas (views). Nivel físico Es el nivel más bajo. * describe cómo se almacenan realmente los datos. * se describen en detalle las estructuras de datos complejas de nivel más bajo. Nivel conceptual * El nivel conceptual es el segundo nivel de abstracción que describe qué datos son realmente almacenados en el banco de datos y las relaciones que existen entre los datos. 2 * aquí se describe el banco de datos completo en términos de un número pequeño de estructuras relativamente sencillas. * la implantación de las estructuras sencillas en este nivel pueden implicar estructuras complejas del nivel físico, aunque el usuario no lo percibe. * por lo general el que usa este nivel es el administrador del banco de datos, que es el que decide qué información se va a guardar en el banco de datos. Nivel de visión * es el nivel más alto de abstracción, que describe sólo parte del banco de datos. * En este nivel la complejidad se debe al tamaño del banco de datos, no al uso de estructuras. * este nivel se define para facilitarle el manejo de banco de datos al usuario, para facilitarle la interacción con el sistema. * el sistema puede proporcionar muchas vistas en el mismo banco de datos. Niveles de abstracción de datos Modelos de datos es una colección de herramientas conceptuales para describir datos, relaciones entre ellos, semántica asociada a los datos y restricciones de consistencia (H.F. Korth & A. Silberschatz, 1993). 3 Tipos de modelos de datos Los modelo de datos se clasifican en tres grupos: (1) modelos lógicos basados en objetos (2) modelos lógicos basados en registros (3) modelos físicos de datos Modelos lógicos basados en objetos se usan para describir datos en los niveles conceptuales. Se caracterizan por que proporcionan capacidad de estructuración flexible y permiten especificar restricciones en los datos explícitamente. algunos de los modelos lógicos basados en objetos son: * modelo entidad-relación * modelo orientado a objetos * modelo binario - propuesto por Abrial, Deheneffe, Hainaut y Lecharlier, entre otros, en 1974. * modelo semántico de datos -basado en modelos de redes semánticas con sus raíces en la inteligencia artificial. * modelo infológico - presentado por primera vez por Langefors en 1963. * modelo funcional de datos - propuesto por Silbey y Kerschberg en 1977. Modelos lógicos basados en registros se utilizan para describir datos en los modelos conceptuales y físico. se usan para especificar la estructura lógica global del banco de datos. proporcionan una descripción a un nivel más alto en la implantación. Estos modelos se llaman así por que el banco de datos está estructurado en récords (registros) de formato fijo de varios tipos. Cada récord tiene un número fijo de campos, que su vez son de largo fijo. El uso de records de largo fijo facilita la implantación del nivel físico del banco de datos. 4 los modelos lógicos basados en registros más conocidos son: * modelo relacional * modelo de red * modelo jerárquico Modelos físicos de datos se usan para describir datos en el nivel más bajo, son poco usados los más conocidos son: * modelo unificador (introducido por Batory y Gotlied en 1982). * modelo de elementos 5 Conceptos para el manejo de Bancos de datos Definiciones: Instancia - colección de información almacenada en el banco de datos en un momento determinado. Es parecido al concepto valor de una variable en lenguajes de programación. Esquema - diseño global de un banco de datos. En el modelo relacional es la estructura de las tablas que conforman el banco de datos. Estos cambian muy pocas veces. Este concepto se parece a la definición de tipo de un lenguaje de programación como Pascal. Los sistemas de bancos de datos tienen varios esquemas, divididos de acuerdo con los niveles de abstracción que vimos anteriormente.. El nivel más bajo es el esquema físico, en el nivel intermedio es el esquema conceptual y el nivel más alto es el subesquema. Independencia de datos Independencia de datos - la capacidad de modificar la definición de un esquema en un nivel sin afectar la definición del esquema en el nivel superior. Tipos de independencias: * independencia física * independencia lógica Independencia física Independencia física - es la capacidad de modificar el esquema físico sin provocar que se vuelvan a escribir los programas de aplicación. Estas modificaciones a veces son necesarias para mejorar el funcionamiento del banco de datos. Independencia lógica Independencia lógica - es la capacidad de modificar el esquema conceptual sin provocar que se vuelvan a escribir los programas de aplicación. Estas modificaciones son necesarias cuando se altera la estructura lógica del banco de datos. 6 La independencia lógica es más difícil de lograr que la física, por que los programas de aplicación dependen fuertemente de la estructura lógica de los datos. El concepto independencia de datos es parecido al concepto de tipos abstractos de datos en los lenguajes de programación por que le ocultan detalles de implantación a los usuarios permitiéndole a éstos preocuparse por la estructura general, en vez de los detalles de implantación de bajo nivel. DDL-Data Definition Languaje Lenguaje de definición de datos (DDL) - permite especificar un esquema del banco de datos por medio de un conjunto de definiciones. El resultado de la compilación de instrucciones en DDL es un conjunto de tablas que se almacenan en un archivo especial, llamado “metadata” o “data dictionary”. Ese “metadata” es consultado cuando se entran, se lee o se modifican los datos del banco de datos. *** El DDL contiene definiciones de tipo especial respecto a la estructura de almacenamiento y los métodos de acceso usados por los sistemas de bancos de datos. El resultado de la compilación de estas definiciones es un conjunto de instrucciones que especifican los detalles de implantación de los esquemas que se le esconden al usuario. DML-Data Manipulation Languaje Lenguaje de manipulación de datos - (DML) es un lenguaje que capacita a los usuarios a acceder o manipular los datos según estén organizados por el modelo de datos. Por manipulación se entiende: *recuperar datos (query) *insertar datos (insert) *suprimir datos (delete) *modificar datos (update) 7 Tipos de DML Hay dos tipos de DML: *procedural - el usuario especifica los datos que necesita y cómo obtenerlos. * nonprocedural - el usuario especifica los datos que necesita sin especificar cómo obtenerlos. Query (consulta) - es una instrucción que solicita la recuperación de datos o información. Query Languaje - parte del DML que implica recuperación de datos o información. DBM-Data Base Manager Manejador de base de datos (DBM) - es un módulo de programa que proporciona la interfaz entre los datos de bajo nivel almacenados en el banco de datos y los programas de aplicación y las consultas hechas al sistema. Responsabilidades del DBM El DBM es responsable de: 1- Interactuar con el manejador de archivo 2- Implantar la integridad 3- Implantar la seguridad 4- Copiar como medida de seguridad y resguardo 5- Controlar de concurrencia Interactuar con el manejador de archivos Los datos sin procesar se almacenan usando el sistema de archivos que proporciona el sistema operativo. El DBM traduce las instrucciones de DDL a mandatos del sistema de archivos de bajo nivel. El DBM es responsable del verdadero almacenamiento, la recuperación y actualización de los datos en el banco de datos. Implantación de la integridad 8 Los valores de los datos que se almacenan en el banco de datos deben satisfacer ciertos tipos de restricciones de consistencia. El DBM del banco de datos puede determinar si las actualizaciones dan como resultado una violación de restricción, de ser así, debe tomar la acción apropiada. Implantación de seguridad Como no todos los usuarios tienen acceso al contenido del banco de datos, el DBM debe hacer que se cumplan esos requisitos de seguridad. Copia de seguridad y recuperación EL DBM debe detectar fallos y restaurar el banco de datos al estado que existía antes de ocurrir el fallo. Control de concurrencia Cuando varios usuarios realizan actualizaciones, pueden ocurrir inconsistencias en el banco de datos, el DBM debe controlar esto. 9 Bases de datos relacionales El concepto modelo relacional se basa en el concepto matemático de relación. Una relación es un subconjunto de un Producto Cartesiano. El dominio es el conjunto de valores. Los denominamos con la letra D. Este concepto de bases de datos referenciales es introducido por E.F. Codd en 1979. Se representan los datos como una colección de relaciones. Cada relación se trata como una tabla de valores. Componentes de una base de datos relacional: Consiste de tres componentes: * Data structure - esquema de relación. * Data integrity - reglas semánticas que controlan el comportamiento de la base de datos. * Data manipulation - operaciones en las relaciones. Relation table Consiste de un conjunto de columnas nominadas (que tienen un nombre) y una cantidad arbitrarias de filas (tuplos). Cada columna está asociada con un dominio, que está especificado con un tipo a la columna nominada. Cada “relation table” corresponde a un archivo almacenado en el nivel físico. Podemos decir que una base de datos relacional consiste de un conjunto de tablasrelaciones relevantes. Relation schema El “relation schema” se usa para describir una relación o “relation instance”. Ejemplos: Cliente(Nombre,Calle,Ciudad, Número de cuenta) Cuenta(Número de cuenta, saldo) 10 Es el concepto relación matemática R sobre unos conjuntos de valores (dominio) D1, D2, D3...Dn . Las columnas, en el ejemplo Nombre, Calle, Ciudad, Número de cuenta, se les llama atributos. Cada atributo es el nombre que se le da sobre el dominio D en el esquema de relación. Atributos claves (key) Es el conjunto mínimo de atributos cuyos valores le dan una identificación única al tuplo en la relación. El “key”(K) debe cumplir con: (1) para cualesquiera dos tuplos t1, t2 de cualquier instancia de la relación R t1(k)<>t2(k). (2) No existe un subconjunto propio de K que cumpla con la propiedad anterior. Super Key - conjunto de atributos que contienen un key. También se define como atributo o combinación de atributos que le dan identificación única a cada entidad en una tabla. Candidate Key - cuando un esquema tiene más de un key, cada key es un candidate key. También se dice que es el superkey mínimo, es un superkey que no contiene un subconjunto de atributos que sea superkey en sí mismo. Primary Key- es usado para identificar tuplos en una relación. Es el candidate key que es seleccionado para dar identificación única a todos los otros atributos en una fila dada. No puede contener entradas nulas. Secondary Key- un atributo (o combinación de atributos) que se usan estrictamente para propósitos de recuperación. También se le llama Alternative Key. Foreign Key- atributo (o combinación de atributos) en una tabla cuyos valores tiene que parear con el primary key en otra tabla o ser valor nulo. Su función principal es la de establecer la relación con otra entidad y no la de describir el objeto o entidad que lo contiene. 11 Reglas de integridad Entity integrity No habrá entradas nulas en el primary key y todas las entradas serán únicas. Referential integrity El valor del foreign key puede ser nulo o tiene que parear con el valor de un primary key de la tabla con la cual se establece la relación. Con las reglas de integridad se garantiza que cada entidad tiene un identificador único y que no es posible establecer relaciones que no pareen. Con las reglas de integridad se minimizan los errores de entrada de datos, esto es, que haya consistencia. Operaciones en bases de datos relacionales Insertar- consiste en añadir un tuplo en la relación. Eliminar (delete)- consiste en quitar un tuplo de la relación. Modificar- consiste en cambiar un tuplo en la relación. Consultar (Query) -consiste en recuperar datos. Algebra y Cálculo relacional El álgebra relacional fue desarrollada en 1970 y el cálculo relacional en 1971 por Codd. El álgebra relacional es un lenguaje “procedural” para la manipulación de relaciones. En esta se especifica paso por paso la respuesta a una consulta de los datos contenidos en una relación. El cálculo relacional es un “non procedural language”. En el cálculo relacional una consulta se resuelve en un solo paso. El álgebra y el cálculo relacional proveen una forma teórica de manipular una base de datos relacional. Codd demostró que el álgebra relacional y el cálculo relacional son lógicamente equivalentes. El álgebra relacional es importante por que contribuyó a establecer un vocabulario común que encontramos en los lenguajes de bases de datos comerciales, tales como SELECT, PROJECT, etc. El cálculo relacional es importante por que: 12 (1) está basado en lógica de predicados (con ello es más fácil determinar la veracidad de una oración). (2) varios lenguajes relacionales comerciales están basados en éste. Algebra relacional Manipula relaciones produciendo nuevas relaciones. Consiste de nueve operaciones que alguna de ellas son tomadas de la matemática, otras del lenguaje relacional y otras de lenguajes de programación comunes. Operaciones en Algebra relacional Las de origen matemático son: (1) Unión (2) Intersección (3) Diferencia de conjuntos (4) Producto Cartesiano La del lenguaje de programación es: (5) Asignación Las de lenguaje relacional son: (6) Proyección (7) Selección (8) “Divide” o “Quotient” (9) “Join” Unión La unión de las relaciones R y S es el conjunto de tuplos que están en R o en S o en ambos. 13 Sólo se aplica a relaciones que tienen el mismo “arity” y los componentes de los tuplos tienen igual dominio. Intersección La interseccón de las relaciones R y S es el conjunto de tuplos que están en R y en S. Sólo se aplica a relaciones que tienen el mismo “arity” y los componentes de los tuplos tienen igual dominio. Diferencia La diferencia de las relaciones R y S es el conjunto de tuplos que están en R, pero que no están en S. Sólo se aplica a relaciones que tienen el mismo “arity” y los componentes de los tuplos tienen igual dominio. Se denota por R - S. Producto Cartesiano Sean R y S relaciones R y S de “arity” k1 y k2, entonces el Producto Cartesiano, que se denota por R X S, es el conjunto de tuplos con “arity” (k1 + k2) donde los primeros k1 componentes pertenecen a R y los próximos k2 componentes pertenecen a S. Proyección Una proyección sobre una relación R toma todos los tuplos distintos que resultan del conjunto de tuplos al remover ciertos componentes. Se denota por ??a1,a2,..,. (R) donde a1, a2, a3 son los componentes o atributos que se quieren exponer de la relación R. Selección Una selección sobre una relación R toma todos los tuplos cumplen con una condición establecida por medio de una oración lógica en ciertos componentes del tuplo. Esta condición se establece usando operadores relacionales (>, <, =) y operadores lógicos (AND, OR, NOT) Se denota por ?c (R) donde c es una oración lógica. Asignación Con esta operación se le da un nombre a una relación que es resultado de otras operaciones. Se denota con el símbolo :=. Por ejemplo Q := R X S. 14 “Divide” Sean R y S relaciones con “arity” r y s, donde r > s y S no es el conjunto vacio, entonces R ”divide” S es el conjunto de tuplos con “arity” (r-s) que están en R y parean con tuplos en S. “Join” Esta operación recibe diferentes nombres específicos dependiendo del resultado a obtener. Entre estos están “Natural Join”, “??Join” y “Outer Join”. Muchos dicen que esta operación es el corazón del álgebra relacional. “ ??Join” ? asume los valores de operadores relacionales = , > y <, esto es, hay un “= join” que se le llama “equi-join” En este caso los componentes con los que se establece la operación de =, > ó < se repite. “Natural Join” El “natural join” de R y S, que se denota por R |X| S, da como resultado los tuplos que se forman al añadirle a R los componentes que parean en R y en S. El pareo se realiza con aquellos componentes que tienen valor igual. No duplica el componente. “Outer Join” El “Outer join” se divide en tres casos: “Full Outer Join” “Right Outer Join” “Left Outer Join” En general el “Outer join” de R y S, da como resultado los tuplos que se forman al añadirle a R los componentes que parean en R y en S y tuplos que no parean en una o las dos relaciones. “Full Outer Join” El “Full Outer join” se denota por S]X[R El “Full Outer join” de R y S, da como resultado los tuplos que se forman al añadirle a R los componentes que parean en R y en S y tuplos que no parean en las dos relaciones. El pareo se realiza con aquellos componentes que tienen valor igual. No duplica el componente. “Right Outer Join” El “Right Outer join” se denota por S|X[R El “Right Outer join” de R y S, da como resultado los tuplos que se forman al añadirle a R los componentes que parean en R y en S y tuplos que no parean de la relación derecha (R). “Left Outer Join” 15 El “Left Outer join” se denota por S]X|R El “Left Outer join” de R y S, da como resultado los tuplos que se forman al añadirle a R los componentes que parean en R y en S y tuplos que no parean de la relación izquierda (S). 16 Bases de Datos Relacionales EL MODELO RELACIONAL Codd propone un modelo de datos basados en la teoría de las relaciones, en donde los datos se estructuran lógicamente en forma de relaciones TABLAS -, siendo un objetivo fundamental del modelo: mantener la independencia de esta estructura lógica respecto al modo de almacenamiento y a otras características de tipo físico El modelo relacional fue presentado por Codd de la empresa IBM a fines de los años 60. Objetivos del Modelo Relacional Independencia Física Independencia lógica Flexibilidad Uniformidad Sencillez Objetivos: Independencia Física: es decir, que el modo en que se almacenan los datos no influya en su manipulación lógica y, por tanto, los usuarios que acceden a esos datos no tengan que modificar sus programas por cambios en el almacenamiento físico. Independencia Lógica: esto es, que el añadir, eliminar o modificar objetos de la base de datos no repercuta en los programas y/o usuarios que están accediendo a subconjuntos parciales de los mismos. Flexibilidad: en el sentido de poder presentar a cada usuario los datos de la forma en que éste prefiera. Uniformidad: 17 las estructuras lógicas de los datos presentan un aspecto uniforme, lo que facilita la concepción y manipulación de la base de datos por parte de los usuarios. Sencillez: las características anteriores, así como unos lenguajes de usuario muy sencillos, producen como resultado que el modelo de datos relacional sea fácil de comprender y de utilizar por parte del usuario final. Para cumplir los objetivos citados se introduce el concepto de RELACION (TABLA) como estructura básica del modelo. Todos los datos de una base de datos se representan en forma de relaciones cuyo contenido varía en el tiempo. Formalmente una relación es un conjunto de filas en terminología relacional. Para la manipulación de estas tablas (dinámica), se propone un conjunto de operadores. Alguno de ellos clásicos de la teoría de conjuntos y otros introducidos por el modelo relacional. Estos operadores forman el ALGEBRA RELACIONAL. Definiciones relacionales: Existe una serie de términos utilizados en el modelo relacional que se requiere definir : o Relación : Conjunto de filas. Pude asociarse a lo que se conoce como tabla, con ciertas propiedades. o Tupla : Corresponde a una fila de esa tabla. Al número de tuplas se denomina cardinalidad. o Atributo : Se refiere a una columna de esa tabla. La cantidad de atributos determina el grado de la relación. Definiciones relacionales Clave Primaria : Identificador único para la tabla. Se compone de una columna o de una combinación de ellas. Nunca existen dos filas de la misma tabla con el mismo valor de clave primaria. Dominio : Es una colección de valores, de los cuales uno o más atributos obtienen sus valores reales. 18 Dominios Se define dominio como “un conjunto de valores escalares de donde extraen sus valores los atributos de una relación”. Los valores escalares representan la menor unidad semántica de información. ¿ Cuál es la importancia de los dominios ? Los dominios tienen una importancia semántica, puesto que restringen las comparaciones. Los dominios no sólo definen los valores permitidos, sino además las comparaciones “permitidas”. Ejemplo : cantidad = peso Relación La cabecera está compuesta por un conjunto fijo de atributos, o en términos más precisos de pares atributos-dominio : { (A1:D1), (A2:D2), ..,(An:Dn)} tales que cada atributo Aj corresponde a uno y solo uno de los dominios subyacentes Dj. Una relación R, sobre un conjunto de dominios D1,D2,..,Dn (no necesariamente todos distintos), se compone de dos partes, una cabecera y un cuerpo. El cuerpo está formado por un conjunto de tuplas, el cual varía con el tiempo. Cada tupla está compuesta por un conjunto de pares atributo-valor : { (A1:v1), (A2:v2), ..,(An:vn)} para cada una de estas tuplas hay uno de estos pares atributo valor. 19 Propiedades de las relaciones Las propiedades de las relaciones son una consecuencia de su definición: No existen tuplas repetidas . Por tratarse, el cuerpo de una relación, de un conjunto matemático estos no admiten elementos repetidos. Como elemento principal aparece la clave primaria. Las tuplas no están ordenadas (de arriba hacia abajo). Los atributos no están ordenados (de izquierda a derecha) Todos los valores de los atributos son atómicos. Es equivalente a decir las relaciones no contienen grupos repetitivos y en este caso estarían normalizadas. Tablas Base Son tablas creadas vía un comando del lenguaje de definición de datos, los datos asociados a estas tablas son almacenados permanentemente en memoria secundaria. Tablas Derivadas Constituyen derivaciones de las tablas básicas, obtenidas mediante la utilización de comandos de un lenguaje de manipulación de datos. Los datos de este tipo de tabla tienen una vida temporal y normalmente constituyen datos redundantes. Tipos de Relaciones o tablas: Vistas o Views Las vistas también se denominan tablas virtuales. Las tuplas que compondrán las vistas serán generadas cada vez que la vista requiera ser utilizada. Los datos que componen una vista provienen de la ejecución de algunos comandos del lenguaje de manipulación de datos. Para crear una vista se utiliza un algoritmo especialmente definido para este fin, el cual es ejecutado cada vez que se utiliza la vista y es almacenado en memoria secundaria, este procedimiento es absolutamente transparente para el usuario. 20 Existen dos razones principales para utilizar Vistas: - Calcular valores en función de datos almacenados en las tablas de la base. - Restringir acceso tanto a filas como columnas de una tablas para determinados usuarios. Reglas de Integridad El modelo relacional define dos reglas generales para mantener la integridad de los datos : Integridad de la entidad : Una clave primaria no puede aceptar valores nulos. Integridad de las referencias : Todo valor definido como clave foránea debe tener su correspondencia con un valor de clave primaria en la relación referenciada. Reglas de Integridad Base de datos relacional (Definición) Conociendo los conceptos antes presentados, podemos definir una base de datos relacional como “un conjunto de relaciones normalizadas* de distinto grado”. *Normalizada en primera forma normal. Bases de Datos Relacionales El modelo relacional es uno de los modelos de bases de datos más utilizados y que presenta una fuerte base teórica. 21 Existe una gran variedad de Sistemas Administradores de Bases de Datos en el mercado, basados en este modelo: Oracle, SyBase, Informix, Ingres, DB2, entre otros. El modelo relacional suele dividirse en tres partes : o o o Estructura de datos (Relación) Integridad Manipulación Componentes de un SABDR Un Sistema Administrador de Base de Datos (SABD) posee diversos componentes entre los que se cuentan: o Catálogo del sistema o Un lenguaje de datos (definición y manipulación) Lenguaje de datos relacional El modelo relacional considera un lenguaje de datos que permite la definición y manipulación de datos. La porción de lenguaje de manipulación de datos (DML) permite la obtención de información (consultas), mediante operadores de consulta que se basan en el álgebra relacional. A su vez, el lenguaje de definición de datos (DDL) permite la definición de esquemas relacionales (Creación de tablas, vistas, privilegios, etc.) ÁLGEBRA RELACIONAL El algebra relacional consiste en un conjunto de operadores de alto nivel que operan sobre relaciones. Cada uno de estos operadores toma una o dos relaciones como entrada y produce una nueva relación de salida. COOD DEFINE UN CONJUNTO DE OCHO OPERADORES CLASIFICADOS EN DOS GRUPOS: a)Las operaciones tradicionales de conjuntos unión, intersección, diferencia y producto cartesiano. b)Los operadores especiales de restricción, proyección, reunión y división 22 A) LAS OPERACIONES TRADICIONALES DE CONJUNTOS UNION, INTERSECCION, DIFERENCIA Y PRODUCTO CARTESIANO. Unión: Construye una relación formada por todas las tuplas que aparecen en cualquiera de las dos relaciones especificadas Intersección :Construye una relación formada por aquellas tuplas que aparezcan en las dos relaciones especificadas Diferencia: Construye una relación formada por todas aquellas tuplas de la primera relación que no aparezcan en la segunda de las dos relaciones especificadas Producto cartesiano: A partir de dos relaciones especificadas, construye una relación que contiene todas las combinaciones posibles de tuplas, una de cada una de las relaciones. B) LOS OPERADORES ESPECIALES DE RESTRICCIÓN, PROYECCIÓN, REUNIÓN Y DIVISIÓN Restricción: Extrae las tuplas especificadas de una relación dada (restringe la relación solo a las tuplas que satisfagan una condición especificada) Proyección: Extrae los atributos especificados de una relación dada Reunión: A partir de dos relaciones especificadas, construye una relación que contiene todas las posibles combinaciones de tuplas, una de cada una de las dos relaciones, tales que las dos tuplas participantes en una combinación dada satisfagan alguna condición especificada División: Toma dos relaciones, una binaria y una unaria y construye una relación formada por todos los valores de una atributo de la relación binaria que concuerdan (en el otro atributo) con todos los valores de la relación unaria. Lenguaje de Consulta Estructurado (SQL) SQL (Structured Query Language) es un lenguaje que permite la definición y la manipulación de una base de datos relacional. Se ha establecido como el lenguaje estándar de bases de datos relacionales, utilizándose en la mayoría de los SABDR como Oracle, Informix, Sybase, DB2, SQLServer, etc. Aunque las versiones de SQL utilizadas en productos difiere en aspectos del lenguaje, podría hablarse de la existencia de un estándar. 23 SQL (Características) SQL se puede usar en forma interactiva o inmerso en lenguajes de programación de propósito general como Cobol, C , Power Builder, Visual Basic, etc. SQL se compone de : o o DDL (lenguaje de definición de datos) : Define y modifica esquemas relacionales, crear tablas, crear vistas, definir accesos, etc. DML (lenguaje de manipulación de datos ) : Basado en el álgebra relacional permite la recuperación de información. Definición de datos (Ejemplo) La siguiente es la definición de la tabla ALUMNOS: Create Table Alumnos ( Rut char(10) Not Null, Nombre char(30), Fecha_Nacim Date, Carrera char(12), Primary Key (Rut), Foreign Key (Carrera) References Carrera ); Manipulación de datos La estructura de una consulta simple en SQL es : SELECT : Lista los atributos deseados. FROM : Lista las tablas que se van a utilizar en la consulta. WHERE : Consta de un predicado que implica atributos de las relaciones que aparecen en la cláusula FROM. Consultas (Ejemplo) 24 Consultas (Forma General) La forma general de una consulta en SQL es : Select columna1, columna2, …. From tabla1.tabla2, … Where condición de restricción Group By Columna(s) de agrupación Having condición_restricción_sobre_grupo Order By especificación de orden Otras cláusulas de SQL INSERT : Inserta una nueva fila (tupla) en la tabla. Insert Into nombre_tabla ( atributo1, atributo2,... ) Values ( valor1, valor2, …); UPDATE : Actualiza valores de atributo de una tabla. Update nombre_tabla Set atributo = valor Where condición; DELETE : Elimina tuplas de la tabla que cumplan con la condición. Delete From nombre_tabla Where condición; GRANT : Concede privilegios de acceso a los datos a los usuarios. Grant privilegio On Table nombre_tabla To identificación_usuario; 25 Diseño de base de datos Una de las formas de diseñar una base de datos relacional es comenzar con un modelo E/R. El modelo entidad relación es un modelo semántico de datos, por lo que debe ser “refinado” para que corresponda a los formalismos de un SABDR. Del modelo E/R modelo Relacional El paso de un esquema en el modelo ER al modelo relacional está basado en los tres principios siguientes: o Toda Entidad se convierte en una relación. o Toda interrelación N:M se transforma en una relación. o Toda interrelación 1:N se traduce en el fenómeno de propagación de claves o se crea una nueva relación. (“Concepción y Diseño de Base de Datos “, Adoración de Miguel, Mario Piattini) Modelo Entidad/Relación (Ejemplo). Del modelo E/R al Relacional En este caso se trata de una relación de 1:N por lo que la relación “Pertenece” desaparece y se produce una propagación de clave. El esquema relacional queda de la siguiente manera: Alumno (Rut, Nombre, Fecha_nac,Carrera) Carrera (Cod_carrera, Nombre, departamento) 26 Del modelo E/R al Relacional En este caso se trata de una relación de N:N, por lo que la interrelación “Inscribe” pasa a ser una relación del esquema relacional. El esquema relacional queda de la siguiente manera: Alumno (Rut, Nombre, Fecha_nac,Carrera) Inscribe (Rut, Cod_asignatura) Asignatura (Cod_asignatura, Nombre, Créditos) Esquema relacional Carrera (Cod_carrera, nombre, departamento) Alumno (Rut, nombre, fecha_nac, carrera) Inscribe (Rut, Asignatura) Asignatura (Cod_asignatura, nombre, créditos) Normalización La teoría de normalización apoya el diseño de bases de datos relacionales buscando una forma más deseables para las relaciones del modelo (en términos de mantener la integridad). Se dice que una relación está en una determinada forma normal si satisface un cierto número de restricciones. El modelo relacional considera como obligatoria sólo la Primera Forma Normal, las formas normales superiores persiguen un fin de optimización. Otros Modelos de Bases de Datos Los sistemas de bases de datos pueden clasificarse de acuerdo a las estructuras de datos y a los operadores presentados al usuario. Entre los sistemas más antiguos se encuentran los modelos de Red y Jerárquicos (prerelacionales). Uno de los modelos más importantes es el Modelo Relacional aparecido en los 70. Posteriormente aparecen los llamados sistemas postrelacionales entre los se cuentan: Sistemas Relacional Extendido Sistemas Orientados a Objeto Sistemas Deductivos 27 Conclusiones El modelo relacional se presenta como uno de los modelos más utilizados para la construcción de bases de datos. Su poderío se centra en que utiliza una sola estructura de datos, la relación, lo que le otorga gran flexibilidad, uniformidad y sencillez. SQL es el lenguaje estándar de las SABDR y permite definir y manipular tablas , siendo utilizado tanto en forma interactiva como inmerso en aplicaciones. Referencias Korth, H.F. & Silbelrschatz, A. (1993). Fundamentos de base de datos, segunda edición. McGraw-Hill. Ullman, J.D. (1980). Principles of Database Systems. Computer Science Press. 28