Download Tema 31. Bases de datos relacionales. Evolución actual
Document related concepts
Transcript
Tema 31. Bases de datos relacionales. Evolución actual Introducción 31/05/2011 Tema 31. Bases de datos relacionales. Evolución actual Tema 31. Bases de datos relacionales. Evolución actual..................................................1 Introducción...................................................................................................................1 El modelo relacional......................................................................................................3 Vínculos entre tablas.................................................................................................4 Lenguajes de acceso a los datos................................................................................4 Ligaduras (constraints)..............................................................................................5 Vistas.........................................................................................................................5 Normalización...............................................................................................................6 Evolución actual............................................................................................................8 BD Orientadas a Objetos...........................................................................................8 BD distribuidas..........................................................................................................9 Introducción Las mayoria de aplicaciones tiene la necesidad de almacenar y manipular datos. Los datos en un ordenador se almacenan en ficheros. En un principio las aplicaciones getionaban directamente los ficheros, esto conllevaba inconvenientes como suponer un gran esfuerzo de desarrollo, dificultades para compartir datos... Por ello, se desarrollaron las bases de datos, para que las aplicaciones accedieran a los datos a través de ellas. Una base de datos es un conjunto de datos relacionados con un significado y organizados según unas reglas. El uso de bases de datos en aplicaciones para almacenar información tiene las siguientes ventajas: • Almacenamiento eficiente. Reduce la redundancia de datos, por lo que también reduce la posibilidad de las inconsistencias. • Facilita la manipulación de los datos con el uso de lenguajes de alto nivel, lo que reduce el esfuerzo de desarrollo. • Evita los problemas de integridad de datos (seguridad). • Da una visión abstracta de la información, ocultando los detalles de implementación. Permite dar visiones diferentes a cada tipo de usuario. • Facilita el acceso compartido a los datos por parte de varias aplicaciones. Página 1 de 10 Tema 31. Bases de datos relacionales. Evolución actual Introducción 31/05/2011 El software, el hardware, el firmware y los procedimientos para manejar una base de datos conforman el Sistema de Gestión de Bases de Datos –SGBD-. En Aplicació Aplicació la n n Lenguaje de alto Lenguaje de programación de propósito general nivel SGBD Fichero Hardware Fichero Hardware - Acceso directo a ficheros - - Uso de una base de datos - actualidad, las bases de datos predominantes en el mercado por su eficiencia y facilidad de uso son las bases de datos relacionales. Página 2 de 10 Tema 31. Bases de datos relacionales. Evolución actual Introducción 31/05/2011 El modelo relacional Las bases de datos relacionales son las que organizan los datos siguiendo un modelo basado en los conceptos del álgebra relacional. La ventaja de este modelo sobre los modelos anteriores, como el modelo jerárquico de red, es que los datos se almacenan, al menos conceptualmente, de un modo en el que los usuarios entienden con más facilidad. Formalmente, una relación está definida sobre una colección de dominios (D1,D2,D3...). Un dominio es un conjunto de valores escalares de un mismo tipo. Ej: Los números naturales (N). Una relación se compone de dos elementos: Una cabecera o esquema. Conjunto de pares Atributo-Dominio. Establece como serán las tuplas de la relación. Un cuerpo: Colección de tuplas que forman la relación y que satisfacen el esquema de la misma. Ejemplo: Relación Clientes: Atributo 1 Nombre String (20) Tupla ← Atributo 2 DNI Número(8) → Esquema Víctor 43000001 Nieves 43000000 Cuerpo Los término relación, tupla y atributo surgen del álgebra relacional. A nivel técnico, es más frecuente utilizar los terminos tabla, fila y campo. Yo utilizaré los términos técnicos. El modelo relacional de datos impone una serie de requisitos: 1. En las tablas no puede haber filas repetidas (mismo valor en todos sus campos). 2. Ni las filas, ni los campos tienen un orden asociado. 3. Los valores de los campos son escalares (Atómicos). 4. Puede haver atributos nulos (sin valor asociado). 5. Cada fila se identifica por el contenido de sus campos. Los campos utilizados para identificarla se denominan “clave primaria”. En una tabla no pueden aparecer dos filas con la misma clave primaria. 6. Las operaciones sobre las tablas dan lugar a otras tablas. Página 3 de 10 Tema 31. Bases de datos relacionales. Evolución actual Introducción 31/05/2011 Vínculos entre tablas En el modelo relacional se permite definir vinculos binarios sin atributos entre relaciones. Los vinculos pueden ser uno a uno –1:1- o de uno a muchos –1:N-. La forma de establecer este vínculo es que la tabla hijo almacena los campos necesarios para identificar al padre por su clave primaria. Estos campos almacenados en la relación hijo, se denominan “clave externa”. En una relación 1:1 la clave externa puede estar en cualquiera de las dos tablas. Ejemplo: Tabla cliente: Nombre DNI Juan Leonor Tabla Compras: Nº Cuenta DNI 43000000 1 43000000 43000001 2 43000000 -Relación 1:N. Una compra la realiza un cliente, un cliente puede realizar muchas comprasEn el caso de tener que crear vinculos más completos, como relaciones N:N, vínculos con atributos, relaciones ternarias, etc. Se crea una tabla auxiliar. Ejemplo: Tabla cuenta Tabla auxiliar cuenta-titular N N Id cuenta Id titular Id cuenta Balance 1 Tabla titular 1 Id titular Nombre Lenguajes de acceso a los datos Las BD relacionales permiten el acceso a los datos de forma independiente a su localización u organización física. Para ello utilizan un lenguaje especializado, más fácil de utilizar que los lenguajes de programación genéricos ( C , Pascal ...). Los lenguajes de acceso a los datos se pueden clasificar en: Procedimentales, el usuario debe especificar al SGBD como obtener los resultados solicitados. No procedimentales, el usuario sólo indica que datos desea sin especificar como obtenerlos. Los lenguajes comerciales utilizados en bases de datos relacionales son combinación de ambos, con predominio de las características no procedimentales. Los lenguajes “puros” que sirven de modelo al resto de lengujes son el álgebra relacional, como lenguaje procedimental, y el cálculo relacional, como lenguaje no procedimental. En el algebra relacional se utilizan una serie de operaciones algebraicas básicas para poder obtener cualquier consulta. Las operaciones son: Selección Proyección p (R) πAtributos(R) Renombramiento ρx (R) Operaciones sobre conjuntos: unión, intersección, producto cartesiano, resta Página 4 de 10 Tema 31. Bases de datos relacionales. Evolución actual Introducción 31/05/2011 Ejemplo: Obtener el nombre de los clientes con compras de cuantía mayor a 1.000€ Πnombre cliente(δimporte compra >1000 (cliente x compra)) En el cálculo relacional se especifica que datos buscamos y de que tablas los obtenemos, pero no como los obtenemos. Ej: Mismo ejemplo anterior pero con cálculo relacional {t.nombre/ cliente(T)^compra(R)^(R.cuantia>1000)^R.idCliente=T.idCliente} Las operaciones de consulta sobre bd relacionales dan como resultado una tabla con los resultados que deseamos. La manipulación de los datos de la BD se realiza de forma similar, utilizando los mismo lenguajes con tres operaciones más: inserción, modificación y eliminación de filas. Ligaduras (constraints) Existen unos predicados, denominados ligaduras, que deben satisfacer siempre los datos almacenados en una BD relacional para asegurar la consistencia de la BD. Si durante la manipulación de los datos se viola una de los predicados, se genera una mensaje de error y se impide la modificación. Los tipos de ligaduras son: De clave: El valor de los campos que componen las claver primarias o únicas no pueden repetirse en la tabla. De dominio: El valor almacenado en un campo debe pertenecer a su dominio. Campos obligatorios: Son campos que no pueden tener valores nulos. Integridad referencial: Las claves externas tienen que tener unos valores válidos siempre. Se puede establecer que los cambios en los campos de la clave primaria en un vínculo entre tablas se refleje en las claves externas (Modificaciones/eliminaciones en cascada). Además de las ligaduras, hay bd que permiten imponer predicados que debe satisfacer toda la base de datos, son los asertos. Vistas Los datos en un BD se organizan según un modelo lógico determinado, e independiente del modelo físico de almacenamiento de los datos. Con las vistas se puede personalizar el modelo que ven los usuarios. Usuario A Visón externa A Vista A Modelo de datos Con las vistas se pueden crear tablas virtuales (sin datos reales almacenados) donde se muestran los datos del modelo lógico de otra forma. El objeto de las vistas pueden ser: Seguridad: Una vista puede restringir el acceso a datos confidenciales Facilitar la comprensión de los datos por parte de los usuarios Normalmente, sólo se permiten realizar operaciones de consulta sobre las vistas, pues las modificaciones de datos son difíciles de trasladar a las relaciones reales. Página 5 de 10 Tema 31. Bases de datos relacionales. Evolución actual Introducción 31/05/2011 Normalización No todos los esquemas de una base de datos relacional son deseables, pues puede haber esquemas que cumplan con los requisitos del modelo relacional y almacenen la información de forma ineficiente y que se produzcan anomalías en las operaciones con la base de datos que comprometan la integridad de los datos. Ejemplo, supongamos la tabla siguiente, que almacena los servicios contratados por los usuarios de un polideportivo y el precio de cada servicio: ID_usuario Actividad Cuota 100 Gimnasio 200. 100 Tenis 65. 150 Natación 50. 175 Squash 50. 175 Natación 50. 200 Natación 50. 200 Tenis 65. Si se elimina el usuario 100, se pierde, de forma accidental, la información del precio del gimnasio. Es lo que se denomina anomalía de eliminación (al eliminar unos datos se elimanan otros de forma involuntaria). Puede haber otras anomalias, como la anomalia de modificación: si se modifica la cuota de la actividad de natación del usuario 200 a 75, se propuce un problema de inconsitencia de datos pues tenemos valores de cuotas diferentas para la misma actividad. Si queremos insertar una nueva actividad en la que todavía no hay nadie inscrito no podemos por el diseño del esquema. Esto se denomina anomalia de inserción. Las anomalías se pueden solucionar mediante la normalización, que son un conjunto de reglas que hay que aplicar a los esquemas de la BBDD. Estas reglas se organizan en lo que se denominan formas normales. Las formas normales se representan cómo: 1FN, 2FN, 3FN, BCNF (Forma normal de Boyce-Codd), 4FN y 5FN. Según se avanza en el grado de normalización, menos anomalías tienen las tablas. Para nomalizar una tabla en una forma normal, primero hay que normalizarla en las anteriores. De forma suscinta la formas normales son: • Una tabla de datos está en 1FN (primera forma normal) si cumple con los requisitos del modelo relacional: Los campos tienen valores atómicos, no se repiten las filas… • Una tabla está en 2FN (segunda forma normal) si todos sus campos que no son claves dependen por completo de la clave primaria. No lo cumpliría la tabla t1(A,B,C,D), en la que A,B son la clave primaria, C depende de A y B pero D depende sólo de A. La solución sería crear dos tablas: t2(A,B,C) y t1(B,D) Página 6 de 10 Tema 31. Bases de datos relacionales. Evolución actual Introducción 31/05/2011 • Una afinidad está en 3FN (tercera forma normal) si está en segunda forma normal y no tiene dependencias transitivas. Una dependencia transitiva se da cuando un atributo determina otro a través de un tercero. Suponemos la tabla tabla1 (A, B, C) donde A es clave única. Pero hay una dependencia transitiva, puesto que A B y B C y por lo tanto A B C. En este caso, se soluciona dividiendo la tabla en dos: t2(A, B) y t3(B, C) . • Una tabla está en BCNF (Forma normal de Boyce-Codd) si está en segunda forma normal y cada determinante es una clave candidata. Consideramos la siguiente tabla t1(A, B, C), donde A,BC y B,CA. Cualquiera de las dos combinaciones puede ser clave (son claves candidatas). • Una tabla está en 4FN (cuarta forma normal) si está en BCNF, y no tiene dependencias de valores múltiples. Existe una dependencia de valores múltiples cuando una tabla tiene al menos tres atributos, dos de los cuales poseen valores múltiples y sus valores dependen sólo del tercer atributo. En otras palabras, en la tabla R(A, B, C) existe una dependencia de valores múltiples si A determina valores múltiples de B; A determina valores múltiples de C; y B y C son independientes entre sí. Para evitar estas anomalías se han de eliminar las dependencias de valores múltiples. Esto se hace construyendo dos tablas, dónde cada una almacena datos para sólo uno de los atributos de valores múltiples. • La 5 FN (quinta forma normal) hace referencia a dependencias que son raras. Tiene que ver con tablas que pueden dividirse en sub–tablas y que no pueden reconstruirse. La condición bajo la cual surge esta situación, no tiene un significado intuitivo preciso. No se sabe muy bien qué son las consecuencias de tales dependencias, incluido si tienen consecuencias prácticas. Página 7 de 10 Tema 31. Bases de datos relacionales. Evolución actual Introducción 31/05/2011 Evolución actual Las bases de datos comerciales aparecieron en el mercado a finales de los años 70, sustituyendo a las bases de datos de red y jerárquicas. Gracias a que son más fáciles de entender y manejar que las anteriores, lo que se traduce en un menor esfuerzo (=coste) en el desarrollo de las aplicaciones. Uno de los factores del éxito de las bases de datos relacionales, ha sido el lenguaje estándar SQL –Structured Query Language- que permite realizar consultas complejas y realizar la gestión de los datos de forma sencilla. El estándar actual de SQL es la versión 2006,ç. Los SGBD actuales se pueden dividir en dos categorías: Los SGBD de grandes prestaciones, orientados a ser utilizados en grandes organizaciones y empresas medianas. Estos SGBD soportan todas las funcionalidades de SQL y proporcionan prestaciones adicionales no estándares, como soporte para bd distribuidas. Ejemplo: Oracle, DB2, Informix, SQL Server... Los SGBD de prestaciones menores, orientadas a PYMES, uso doméstico o aplicaciones poco exigentes. Algunos no soportan el SQL estándar, como Access. Actualmente todas son multiusuario. Ejemplos: Access de Microsoft, Paradox, MySQL... La evolución de las bd ha hecho que están proporcionen funcionalidades que sobrepasan las carácterísticas de las BD relacionales. Se denominan BD relacionales extendidas que incorporan características como: Soporte a tipos de datos complejos: BLOB –Binary Large Objects-, Array... Almacen y ejecución de procedimientos y funciones. (BD activas) Nociones implicitas de herencia... El uso de funcionalidades no estándares facilita el desarrollo de las BD, pero provoca problemas de migración de las mismas a SGBD de otros fabricantes. Lo que supone aumentar la dependencia del fabricante. En el desarollo de aplicaciones se está imponiendo el enfoque de la orientación a objetos. Es por ello, que las bases de datos relacionales han incorporado conceptos de OO: Herencia, polimorfismo... BD Orientadas a Objetos El concepto de bases de datos orientadas a objetos surgen a finales de los años 70 y continúan fase de investigación. Existe un estándar para bases de datos orientas a objetos ODMG– Object Data Management Group- y productos comerciales como ObjectStore o Ardent DB. El problema de las bases de datos orientadas a objetos es que su rendimiento es claramente inferior a las bases de datos relacionales, por lo que su uso no es aconsejable. El día que consigan igualar el rendimiento de las BD relacionales, se harán con una gran cuota de mercado pues tendrán una más fácil integración con las aplicaciones OO. Página 8 de 10 Tema 31. Bases de datos relacionales. Evolución actual Introducción 31/05/2011 BD distribuidas Las BD distribuidas son aquellas en que los datos se encuentran almacenados en varios ordenadores alejados entre sí, conectados mediante una red de datos. La finalidad de distribuir los datos es conseguir un mayor rendimiento, disponibilidad y flexibilidad a la hora de operar con la BD. Existen diferentes tipos de sistemas de bases de datos distribuidas. Exiten varia alternativas: BD divididas: Una es dividir la base de datos en varias partes y almacenar cada una de ellas en diferentes computadoras. Esto provoca que el tiempo de acceso a cada parte de la BD puede variar en función de su localización. BD distribuidas: La otra alternativa consiste en duplicar completamente toda la base de datos o una porción de ella. Esta solución elimina o reduce los problemas anteriores, pero tiene el inconveniente de tener que controlar la consistencia de los datos duplicados. A la hora de dividir una tabla y distribuirla en varias localizaciones, la división puede ser: Una división vertical cuando la tabla se ha divide en dos o más conjuntos de columnas, Una división horizontal cuando la tabla se divide por las filas o Una división mixta cuando se realizan ambas divisiones. Base de datos distribuida Base de datos unificada Únicas no divididas ni duplicadas Divididas no duplicadas + + + No divididas duplicadas Mayor paralelismo Mayor independencia Mayor flexibilidad Mayor disponibilidad Mayor coste/complejidad Mayor dificultad de control Mayor riesgo de seguridad Página 9 de 10 Divididas y duplicadas + + + + - Tema 31. Bases de datos relacionales. Evolución actual Introducción Usuario 1 AP1 AP1 AP2 AP2 OSnet OSnet DDBMS DDBMS 2 D B OSdm OSdm Computadora 1 Usuario 31/05/2011 Red OSnet OSnet AP2 AP2 DDBMS DDBMS OSdm OSdm Computadora 2 D B OSnet OSnet DDBMS DDBMS OSdm OSdm Computadora 3 Usuario n AP2 AP2 AP3 AP3 D B OSnet OSnet DDBMS DDBMS OSdm OSdm Computadora N OSnet = Porció de comunicacions de xarxa del sistema operatiu OSdm = Porció d’administració de dades del sistema operatiu DDBMS = DBMS distribuït Página 10 de 10 D B