UNIVERSIDAD LATINA BASES DE DATOS MODELO RELACIONAL Que
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 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 SGBDs. OO puros como O 2, 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. SQL 3. • 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". • Fueron postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California) y 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. (datos de los atributos) • 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 entidad o 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. (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 o entidad física) • Vista. - es una relación virtual o consulta, 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 • 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.
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).
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.
Elementos de las Bases de Datos Relacionales • Restricciones. - Son 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.
Dominio y tipos de datos en BD Relacionales • Cada atributo de una relación debe tener un nombre y un dominio. El dominio indica los valores que pueden ser aceptados o asumidos por una columna de la relación. • Dominios. - Describe un conjunto de posibles valores para cierto atributo. Cualquier valor de este atributo debe ser elemento del conjunto especificado • Los tipos de datos en un dominio pueden ser enteros, cadenas de texto, fecha, no procedirales, etc Condiciones: • Cada atributo tiene un dominio • El dominio indica el tipo de datos que será almacenado • El dominio indica las restricciones en los valores que el atributo puede tomar • El dominio indica si utiliza caracteres, números, solo dos letras, solo mayores que cero, solo números enteros, etc. • Los dominios deben ser atómicos, es decir que los valores contenidos en los atributos no se puedan separar en valores de dominios mas simples. • Como un dominio restringe los valores del atributo, puede ser considerado como una restricción. • Por ejemplo el atributo de sexo se puede definir un dominio de valores válidos ‘M’ y ‘F’ o en Fecha_nacimiento considerar fechas después del primero de enereo de 1960.
Elementos de las Bases de Datos Relacionales • 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.
Elementos de las Bases de Datos Relacionales • 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
Ejemplo de relación
Á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. La Normalización es un proceso que consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Las bases de datos relacionales se normalizan para: Evitar la redundancia de los datos. Se aplica un conjunto de técnicas para producir un nuevo esquema que representa la misma información pero contiene menos redundancias y evita posibles anomalías en las inserciones, actualizaciones y borrados.
Formas normales (Primera, segunda y tercera formas normales) . Una tabla está en Primera Forma Normal si: Esta forma normal elimina los valores repetidos dentro de una Base de Datos. • Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son simples e indivisibles. • La tabla contiene una clave primaria única. • La clave primaria no contiene atributos nulos. • No debe existir variación en el número de columnas. • Los Campos no clave deben identificarse por la clave (Dependencia Funcional) • Debe Existir una independencia del orden tanto de las filas como de las columnas, es decir, si los datos cambian de orden no deben cambiar sus significados
Formas normales (Primera, segunda y tercera formas normales) La tabla EMPLEADOS repite información: Podemos reducir EMPLEADOS y crear una nueva tabla EMAIL: .
Formas normales (Primera, segunda y tercera formas normales) . Segunda forma normal (2 FN) Una relación está en segunda forma normal (2 FN) si y sólo si está en 1 FN y todos los atributos que no sean llaves dependen por completo de llave primaria, Es decir que no existen dependencias parciales. (Todos los atributos que no son clave principal deben depender únicamente de la clave principal). En otras palabras podríamos decir que la segunda forma normal está basada en el concepto de dependencia completamente funcional.
Formas normales (Primera, segunda y tercera formas normales) Se aplica para el mismo ejemplo de EMPLEADOS e EMAIL .
Formas normales (Primera, segunda y tercera formas normales) . Tercera forma normal (3 FN). Evitar la redundancia de datos Una relación están en tercera forma normal (3 FN) si y sólo si están en 2 FN y todos los atributos no llave dependen de manera no transitiva de la llave primaria. En la práctica significa que se debe eliminar cualquier relación que permita llegar a un mismo dato de dos o más formas diferentes y evitar la redundancia
Formas normales (Primera, segunda y tercera formas normales) . En este caso creamos una nueva tabla de PUESTOS, donde la clave seria el puesto y queda como clave foránea o ajena) referenciado la tabla EMPLEADOS
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 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.
Reglas de CODD 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.
Reglas de CODD 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.
Reglas de CODD 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 "SQL 2". 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.
- Slides: 30