Download modelo relacional

Document related concepts

Base de datos relacional wikipedia , lookup

Normalización de bases de datos wikipedia , lookup

Modelo relacional wikipedia , lookup

Modelo de base de datos wikipedia , lookup

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

Transcript
UNIVERSIDAD LATINA
BASES DE DATOS
MODELO RELACIONAL
Que es el modelo relacional
•Es un modelo de datos basado en la lógica de
predicados y en la teoría de conjuntos.
•Es el modelo más utilizado en la actualidad para
modelar problemas reales y administrar datos
dinámicamente.
•Sus bases en 1970 por Edgar Frank Codd, de
los laboratorios IBM en San José (California),
no tardó en consolidarse como un nuevo
paradigma en los modelos de base de datos.
Modelo pre relacional y post relacional
•En 1970 Edgar F. Codd propuso un modelo de datos que perseguía como objetivo
general la flexibilidad y sencillez; el modelo ofrece estructuras de datos simples y
lenguajes sencillos para los usuarios, facilitando la comprensión y utilización por
estos. Sin menoscabo de este objetivo de sencillez, el autor se propone fundamentar
el modelo sobre una sólida base matemática, a partir de las siguientes generaciones
de los SGBD’s:
• Pre-relacionales. Los SGBD se basan en modelos Codasyl (en red) y Jerárquico y
ficheros planos (flat files).
•Relacionales. Los sistemas relacionales ganan madurez en el mercado y los
productos basados en este modelo van desplazando poco a poco a los sistemas
basados en punteros de la etapa pre-relacional.
• Post-relacionales. Aparecen manifiestos de otros modelos de datos, en especial los
orientados a objeto. Se distinguen manifiestos puristas OO que dan lugar a SGBDsOO puros como O2, Gemstone, etc. y, en paralelo, corrientes evolutivas del modelo
relacional que relajan hipótesis básicas del modelo original de Codd (relajación de la
primera forma normal) para ofrecer estructuras de datos más complejas. Se
propone una evolución desde el modelo relacional a SGBDs-OO relacionales, p. ej.
SQL3.
•Sobre el modelo relacional se han definido los estándares ANSI e ISO del
extendido lenguaje de definición y manipulación de bases de datos relacionales SQL
(Structured Query Language).
Definición de 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 implementar bases de datos ya planificadas. Permiten establecer
interconexiones (relaciones) entre los datos (que están guardados en
tablas), y a través de dichas conexiones relacionar los datos de ambas
tablas, de ahí proviene su nombre: "Modelo Relacional". Tras ser
postuladas sus bases en 1970 por Edgar Frank Codd, de los
laboratorios IBM en San José (California), no tardó en consolidarse
como un nuevo paradigma en los modelos de base de datos.
Conceptos de las Bases de Datos Relacionales
•Tupla .- es una hilera o fila en una tabla. (Registro)
•Atributo.- es una columna en una tabla. (un campo)
•Dominio .- es el conjunto de valores de los cuales los atributos obtienen sus valores.
(conjunto de datos)
•Llave.- es un atributo con una característica de relevancia para identificar la tupla.
(campo clave)
•Llave primaria.- es una llave con valores únicos, es decir, no ocurren más de una vez en
el atributo. (clave única)
•Cardinalidad.- es el número de tuplas en una tabla. (es el número de registros en una
tabla)
•Grado.- es el número de atributos en una tabla. (número de campos en de una tabla)
•Relación .- una definición simple es que se corresponde con una tabla y en ocasiones es
preferible pensarlo de esta manera. La definición canónica es que una relación es el
producto cartesiano de dos o varios dominios. Podemos también decir que un dominio es
un conjunto de valores escalares del mismo tipo, dónde un valor escalar es la mínima
unidad semántica de información en el sentido de que son valores atómicos. (colección de
tablas interrelacionados con campos comunes)
•Tabla base.- es una relación autónoma a diferencia de las vistas y las tablas
intermedias construidas a partir de una consulta. (es una tabla física)
•Vista.- es una relación virtual, que se construye a partir de tablas base o incluso otras
vistas, formada por atributos de estas otras tablas de forma directa o como resultado
de una consulta. (resultado de una consulta)
Características de las Bases de Datos Relacionales
•Una base de datos relacional se compone de varias tablas o relaciones.
•No pueden existir dos tablas con el mismo nombre ni registro.
•Cada tabla es a su vez un conjunto de registros (filas y columnas).
•La relación entre una tabla padre y un hijo se lleva a cabo por medio
de las claves primarias y ajenas (o foráneas).
•Las claves primarias son la clave principal de un registro dentro de una
tabla y éstas deben cumplir con la integridad de datos.
•Las claves ajenas se colocan en la tabla hija, contienen el mismo valor
que la clave primaria del registro padre; por medio de éstas se hacen
las relaciones.
Elementos de las Bases de Datos Relacionales
•Relaciones base y derivadas.- En una base de datos relacional, todos los datos se almacenan y se accede a ellos por medio de relaciones. Las
relaciones que almacenan datos son llamadas "relaciones base" y su implementación es llamada "tabla". Otras relaciones no almacenan datos,
pero son calculadas al aplicar operaciones relacionales. Estas relaciones son llamadas "relaciones derivadas" y su implementación es llamada
"vista" o "consulta". Las relaciones derivadas son convenientes ya que expresan información de varias relaciones actuando como si fuera una
sola.
•Restricciones.- Una restricción es una limitación que obliga el cumplimiento de ciertas condiciones en la base de datos. Algunas no son
determinadas por los usuarios, sino que son inherentemente definidas por el simple hecho de que la base de datos sea relacional. Algunas otras
restricciones las puede definir el usuario, por ejemplo, usar un campo con valores enteros entre 1 y 10.Las restricciones proveen un método de
implementar reglas en la base de datos. Las restricciones limitan los datos que pueden ser almacenados en las tablas. Usualmente se definen
usando expresiones que dan como resultado un valor booleano, indicando si los datos satisfacen la restricción o no. Las restricciones no son
parte formal del modelo relacional, pero son incluidas porque juegan el rol de organizar mejor los datos. Las restricciones son muy discutidas
junto con los conceptos relacionales.
•Dominios.- Un dominio describe un conjunto de posibles valores para cierto atributo. Como un dominio restringe los valores del atributo, puede
ser considerado como una restricción. Matemáticamente, atribuir un dominio a un atributo significa "todos los valores de este atributo deben
de ser elementos del conjunto especificado“.Distintos tipos de dominios son: enteros, cadenas de texto, fecha,no procedurales etc.
•Clave única.- Cada tabla puede tener uno o más campos cuyos valores identifican de forma única cada registro de dicha tabla, es decir, no
pueden existir dos o más registros diferentes cuyos valores en dichos campos sean idénticos. Este conjunto de campos se llama clave única.
Pueden existir varias claves únicas en una determinada tabla, y a cada una de éstas suele llamársele candidata a clave primaria.
•Clave primaria.- Una clave primaria es una clave única elegida entre todas las candidatas que define unívocamente a todos los demás atributos
de la tabla, para especificar los datos que serán relacionados con las demás tablas. La forma de hacer esto es por medio de claves foráneas.
Sólo puede existir una clave primaria por tabla y ningún campo de dicha clave puede contener valores NULL.
•Clave foránea.- Una clave foránea es una referencia a una clave en otra tabla, determina la relación existente en dos tablas. Las claves
foráneas no necesitan ser claves únicas en la tabla donde están y sí a donde están referenciadas. Por ejemplo, el código de departamento
puede ser una clave foránea en la tabla de empleados. Se permite que haya varios empleados en un mismo departamento, pero habrá uno y sólo
un departamento por cada clave distinta de departamento en la tabla de empleados.
•Clave índice.- Las claves índice surgen con la necesidad de tener un acceso más rápido a los datos. Los índices pueden ser creados con
cualquier combinación de campos de una tabla. Las consultas que filtran registros por medio de estos campos, pueden encontrar los registros de
forma no secuencial usando la clave índice.Las bases de datos relacionales incluyen múltiples técnicas de ordenamiento, cada una de ellas es
óptima para cierta distribución de datos y tamaño de la relación. Los índices generalmente no se consideran parte de la base de datos, pues
son un detalle agregado. Sin embargo, las claves índices son desarrolladas por el mismo grupo de programadores que las otras partes de la
base de datos.
•Procedimientos almacenados.- Un procedimiento almacenado es código ejecutable que se asocia y se almacena con la base de datos. Los
procedimientos almacenados usualmente recogen y personalizan operaciones comunes, como insertar un registro dentro de una tabla, recopilar
información estadística, o encapsular cálculos complejos. Son frecuentemente usados por un API por seguridad o simplicidad. Los
procedimientos almacenados no son parte del modelo relacional, pero todas las implementaciones comerciales los incluyen.
Definición de relación
interconexiones (relaciones)
entre los datos (que están guardados en
tablas), y a través de dichas
conexiones se relacionan los datos de
ambas tablas.
•Son las
Definición de relación
•La idea fundamental del modelo relacional es el
uso de «relaciones». Estas relaciones podrían
considerarse en forma lógica como conjuntos de
datos llamados «tuplas». Pese a que ésta es la
teoría de las bases de datos relacionales creadas
por Edgar Frank Codd, la mayoría de las veces se
conceptualiza de una manera más fácil de imaginar,
esto es, pensando en cada relación como si fuese
una tabla que está compuesta por registros (cada
fila de la tabla sería un registro o tupla), y
columnas (también llamadas campos).
Ejemplo de relación
Definición formal de relación
•Una definición formal de relación es:
•Decimos que una relación del conjunto A con el conjunto B
es el subconjunto de su producto cartesiano (AXB)
Multiplicidad en las relaciones
La multiplicidad define cuántas instancias de un tipo A pueden
asociarse a una instancia del tipo B en determinado momento. Las
expresiones de multiplicidad son las siguientes:
*
cero o más, muchos
1..*
uno o más
1..40
de uno a cuarenta
5
exactamente cinco
2,4,6
Por ejemplo:
exactamente dos, cuatro o seis
Propiedades de las relaciones
De la definición de relación se infieren las siguientes propiedades:
i) No hay n-adas duplicadas (no hay elementos repetidos en los datos)
Esta propiedad se obtiene del hecho de que el cuerpo de una relación
es un conjunto (en el sentido matemático) y los conjuntos por definición
no contienen elementos repetidos. De aquí podemos desprender un
corolario importante: el conjunto total de atributos de la relación es
siempre una llave primaria.
ii) No hay orden en las n-adas (solo las llaves estan ordenadas y no
los datos) De nuevo esta propiedad se desprende al observar que el
cuerpo de la relación es un conjunto no ordenado; esto quiere decir que
a ninguna n-ada se le puede asignar el título o nombre de la primera nada, segunda, o el número que sea de la relación y por supuesto
tampoco existe el concepto de la n-ada siguiente en la relación misma
Propiedades de las relaciones
iii) No hay orden en los atributos (no hay orden en los campos creados)
Esta propiedad se sigue del hecho de que el encabezado de la relación
está definido como un conjunto. Como es de esperarse, no existen los
conceptos del primer ó n-ésimo atributo, ni del siguiente atributo. De
manera análoga se puede manejar una relación que controle tal orden.
iv) Todos los valores de los atributos son atómicos (solo hay campos
únicos pueden haber compuestos por la concatenación de productos
sencillos) Esta propiedad debería decir: todos los valores de los
atributos sencillos son atómicos. Esto es una consecuencia al hecho de
que los dominios son sencillos --i.e. contienen valores atómicos
solamente (si se tuviesen atributos compuestos, éstos siempre pueden
verse como la concatenación de atributos sencillos).
Álgebra relacional y cálculo relacional.
•El álgebra y el cálculo relacional proveen la forma teórica para manipular una
Base de Datos 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 manipular relaciones.
•El cálculo relacional es importante porque:
a) esta basado en la lógica de predicados (lógica que facilita determinar la
veracidad de una oración)
b) los lenguajes comerciales estan basados en éste.
Álgebra relacional y cálculo relacional.
•Manipula las relaciones produciendo nuevas relaciones consistente de nueve
operaciones que son tomadas de la matemática, del lenguaje relacional y otras
de lenguaje de programación comunes.
•De origen matematico.
Union
Interseccion
Diferencia
Producto cartesiano
•De lenguaje de programación
assignación
•De lenguaje Relacional
proyección (para remover tablas)
selección (cumplir condiciones para las busquedas)
divide (excluir datos)
-Join (union entre tablas)
Normalización.
Al modelar una base de datos, desearemos evitar puntos que crean confusión,
duplicación de la información y por ende, un mal funcionamiento y exploración
de la información. Entre las propiedades indeseables en un diseño de bases de
datos tenemos:
•
•
•
Redundancia en la información.
Incapacidad de representar cierta información.
Registrar información que no sea identificable.
Formas normales
(Primera, segunda y tercera formas normales)
.
Utilizando como ejemplo las relaciones de proveedores, mercancías y envíos:
Proveedores(NumPro#, Nombre, Situacion, Ciudad)
Mercancias(NumPar#, Descripcion, Color, Peso, Ciudad)
Envio(NumPro#, NumPar#, Cantidad)
Las llaves primarias están marcadas por el carácter #.
Formas normales
(Primera, segunda y tercera formas normales)
.
Primera forma normal (1FN)
Una relación está en primera forma normal (1FN) si y sólo si todos los dominios
son atómicos. Un dominio es atómico si los elementos del dominio son
indivisibles. Es decir, no tenemos grupos de repetición o un conjunto de valores
asociados repetidos asociados a una misma tupla.
Formas normales
(Primera, segunda y tercera formas normales)
.
Primera Segunda forma normal (2FN)
Una relación está en segunda forma normal (2FN) si y sólo si está en 1FN y
todos los atributos que no sean llaves dependen por completo de llave primaria
Formas normales
(Primera, segunda y tercera formas normales)
.
Tercera forma normal (3FN)
Una relación están en tercera forma normal (3FN) si y sólo si están en 2FN y
todos los atributos no llave dependen de manera no transitiva de la llave
primaria.
Se dice que existe una dependecia transitiva cuando tenemos el par de
dependencias funcionales: 78#78 y 79#79, porque de ellas se sigue que
80#80.
Proceso de descomposición sin pérdida
Es el proceso de descomponer los objetos o
tablas en sus formas normales sin que haya
pérdida de datos.
Reglas de CODD
Las 12 reglas de Codd son unas normas para bases de datos relacionales.
Regla 0: el sistema debe ser relacional, base de datos y administrador de sistema. Ese sistema debe utilizar sus facilidades relacionales
(exclusivamente) para manejar la base de datos.
Regla 1: la regla de la información, toda la información en la base de datos es representada unidireccionalmente, por valores en posiciones de
las columnas dentro de filas de tablas. Toda la información en una base de datos relacional se representa explícitamente en el nivel lógico
exactamente de una manera: con valores en tablas.
Regla 2: la regla del acceso garantizado, todos los datos deben ser accesibles sin ambigüedad. Esta regla es esencialmente una nueva
exposición del requisito fundamental para las llaves primarias. Dice que cada valor escalar individual en la base de datos debe ser lógicamente
direccionable especificando el nombre de la tabla, la columna que lo contiene y la llave primaria.
Regla 3: tratamiento sistemático de valores nulos, el sistema de gestión de base de datos debe permitir que haya campos nulos. Debe tener
una representación de la "información que falta y de la información inaplicable" que es sistemática, distinto de todos los valores regulares.
Regla 4: catálogo dinámico en línea basado en el modelo relacional, el sistema debe soportar un catálogo en línea, el catálogo relacional debe
ser accesible a los usuarios autorizados. Es decir, los usuarios deben poder tener acceso a la estructura de la base de datos (catálogo).
Regla 5: la regla comprensiva del sublenguaje de los datos, el sistema debe soportar por lo menos un lenguaje relacional que; 1.Tenga una
sintaxis lineal.
2.Puede ser utilizado de manera interactiva.
3.Soporte operaciones de definición de datos, operaciones de manipulación de datos (actualización así como la recuperación), seguridad e
integridad y operaciones de administración de transacciones.
Regla 6: regla de actualización, todas las vistas que son teóricamente actualizables deben ser actualizables por el sistema.
Regla 7: alto nivel de inserción, actualización, y cancelación, el sistema debe soportar suministrar datos en el mismo tiempo que se inserte,
actualiza o esté borrando. Esto significa que los datos se pueden recuperar de una base de datos relacional en los sistemas construidos de
datos de filas múltiples y/o de tablas múltiples.
Regla 8: independencia física de los datos, los programas de aplicación y actividades del terminal permanecen inalterados a nivel lógico
cuandoquiera que se realicen cambios en las representaciones de almacenamiento o métodos de acceso.
Regla 9: independencia lógica de los datos, los cambios al nivel lógico (tablas, columnas, filas, etc.) no deben requerir un cambio a una
solicitud basada en la estructura. La independencia de datos lógica es más difícil de lograr que la independencia física de datos.
Regla 10: independencia de la integridad, las limitaciones de la integridad se deben especificar por separado de los programas de la aplicación
y se almacenan en la base de datos. Debe ser posible cambiar esas limitaciones sin afectar innecesariamente las aplicaciones existentes.
Regla 11: independencia de la distribución, la distribución de las porciones de la base de datos a las varias localizaciones debe ser invisible a
los usuarios de la base de datos. Los usos existentes deben continuar funcionando con éxito:
1.cuando una versión distribuida del SGBD se introdujo por primera vez
2.cuando se distribuyen los datos existentes se redistribuyen en todo el sistema.
Regla 12: la regla de la no subversión, si el sistema proporciona una interfaz de bajo nivel de registro, a parte de una interfaz relacional, que
esa interfaz de bajo nivel no se pueda utilizar para subvertir el sistema, por ejemplo: sin pasar por seguridad relacional o limitación de
integridad. Esto es debido a que existen sistemas anteriormente no relacionales que añadieron una interfaz relacional, pero con la interfaz
nativa existe la posibilidad de trabajar no relacionalmente.
Estándar SQL.
Es en 1992, cuando se lanzó un nuevo estándar ampliado y
revisado del SQL llamado "SQL-92" o "SQL2".
En la actualidad el SQL es el estándar de facto de la
inmensa mayoría de los SGBD comerciales. Y, aunque la
diversidad de añadidos particulares que incluyen las
distintas implementaciones comerciales del lenguaje es
amplia, el soporte al estándar SQL-92 es general y muy
amplio.