Download Tema 31. Bases de datos relacionales. Evolución actual

Document related concepts

Modelo de base de datos wikipedia , lookup

Base de datos relacional wikipedia , lookup

Normalización de bases de datos wikipedia , lookup

Modelo relacional wikipedia , lookup

Sistema de gestión de bases de datos relacionales wikipedia , lookup

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,BC y B,CA. 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