Full Transcript

Historia: En los años sesenta y setenta, las aplicaciones informáticas operaban en lotes con archivos maestros y de movimientos en cintas magnéticas, pero con la llegada de terminales y discos, se desarrollaron sistemas para acceso online y actualizaciones en tiempo real. La integración de aplicacio...

Historia: En los años sesenta y setenta, las aplicaciones informáticas operaban en lotes con archivos maestros y de movimientos en cintas magnéticas, pero con la llegada de terminales y discos, se desarrollaron sistemas para acceso online y actualizaciones en tiempo real. La integración de aplicaciones llevó a la creación de Data Banks y posteriormente, en los años setenta, de las Bases de Datos (BD). Con la necesidad de eliminar la redundancia de datos y crear estructuras más eficientes, surgieron los Sistemas de Gestión de Bases de Datos (SGBD) en respuesta a la insuficiencia del software de gestión de archivos. En los años ochenta, los SGBD relacionales revolucionaron el panorama al simplificar el desarrollo de aplicaciones y hacer que los programas fueran independientes de los aspectos físicos de la base de datos, con la estandarización del lenguaje SQL impulsando su adopción. En los años noventa, la proliferación de computadoras departamentales y personales llevó al desarrollo de SGBD distribuidos para manejar múltiples bases de datos de diferentes proveedores. Estos sistemas permiten trabajar con diferentes bases de datos como si fueran una sola, facilitando la interconexión entre aplicaciones. Las tendencias actuales en los SGBD incluyen adaptaciones para integrar tecnologías de multimedia, orientación a objetos e Internet, ampliando los tipos de datos admitidos y la incorporación de tipos abstractos de datos (TAD). La orientación a objetos se ha vuelto relevante con la rápida integración de la web en los sistemas de información, requiriendo que los SGBD se conviertan en servidores web. Entidades tipos Interrelaciones: Redundancia Usuarios Archivos tienen registros de una sola entidad tipo. el sistema no interrelaciona archivos. se crean archivos a la medida de cada aplicación, con todos los datos necesarios, aunque algunos sean redundantes respecto de otros archivos. sirven para un solo usuario o una sola aplicación. Dan una sola visión del mundo real. Bases de datos Tienen datos de varias entidades tipo. el sistema tiene previstas herramientas para interrelacionar entidades todas las aplicaciones trabajan con la misma Base de Datos y la integración de los datos es básica, de modo es compartida por muchos usuarios de distintos tipos. Ofrece varias visiones del mundo real. Definición BASE DE DATOS Una base de datos de un Sistema de Información es la representación integrada de los conjuntos de entidades instancia correspondientes a las diferentes entidades tipo del Sistema de Información y de sus interrelaciones. En otras palabras, una base de datos es un conjunto estructurado de datos que representa entidades y sus interrelaciones, y debe poder usarse de forma compartida por usuarios de distintos tipos. Colección de datos interrelacionados archivados juntos sin redundancias perjudiciales o innecesarias. Su finalidad es la de servir a una o más aplicaciones de la mejor manera posible. Los datos están almacenados de modo que resulten independiente de los programas que los usan. Se emplean métodos bien determinados para incluir nuevos datos y para modificar o extraer los datos almacenados. Conjunto de datos operativos almacenados a los que acceden los sistemas de aplicación de una empresa. Los objetivos principales de los SGBD incluyen permitir consultas complejas y no predefinidas, que afecten a múltiples entidades, y deben ser capaces de responder inmediatamente a estas consultas sin necesidad de programación específica para cada una. El lenguaje estándar para lograr este objetivo es SQL. Los sistemas de gestión de bases de datos (SGBD) buscan proporcionar flexibilidad e independencia a los usuarios y procesos, permitiendo cambios tecnológicos y variaciones en la descripción de la base de datos sin afectar a los programas existentes ni a la forma de hacer consultas directas. La independencia física de los datos implica que los usuarios no necesiten conocer detalles sobre la estructura física de la base de datos, mientras que la independencia lógica permite diferentes visiones de la base de datos y la capacidad de realizar cambios sin afectar a otros usuarios o programas. La redundancia de datos, aunque ya no es un problema de espacio, puede provocar inconsistencias en la base de datos debido a actualizaciones incorrectas. Los SGBD deben proporcionar herramientas para evitar la redundancia y mantener la integridad de los datos, mediante reglas de integridad definidas por el usuario y reglas inherentes al modelo de datos. Además, deben ofrecer mecanismos de recuperación para restaurar la base de datos en caso de fallo. La concurrencia de usuarios es otro desafío, ya que múltiples usuarios pueden acceder simultáneamente a la base de datos, lo que puede provocar problemas de interferencia y pérdida de integridad. Los SGBD utilizan transacciones para garantizar que las operaciones se ejecuten como unidades indivisibles y técnicas como el bloqueo para evitar interferencias entre transacciones concurrentes. En términos de seguridad, los SGBD permiten definir autorizaciones de acceso a diferentes niveles y ofrecen mecanismos de identificación y encriptación para proteger la confidencialidad de los datos. Además, proporcionan herramientas para la vigilancia y administración de la seguridad. Finalmente, los SGBD están evolucionando para adaptarse a nuevas necesidades y tecnologías con nuevos objetivos como: 1) Servir eficientemente los Data Warehouse. 2) Adaptarse al desarrollo orientado a objetos. 3) Incorporar el tiempo como un elemento de caracterización de la información. 4) Adaptarse al mundo de Internet Cliente servidor La tecnología que se utiliza habitualmente para distribuir datos es la que se conoce como entorno (o arquitectura) cliente/servidor (C/S). Todos los SGBD relacionales del mercado han sido adaptados a este entorno. La idea del C/S es sencilla. Dos procesos diferentes, que se ejecutan en un mismo sistema o en sistemas separados, actúan de forma que uno tiene el papel de cliente o peticionario de un servicio, y el otro el de servidor o proveedor del servicio. Tendencias actuales Hoy día, los SGBD relacionales están en plena transformación para adaptarse a tres tecnologías de éxito reciente, fuertemente relacionadas: la multimedia, la de orientación a objetos (OO) e Internet y la web. Manejos de grandes volúmenes de información sin estructura (Big Data) Objetivos y servicios de los SGBD Consultas no predefinidas y complejas (Ad hoc) Flexibilidad e Independencia (abstraerse de la implementación física) Problemas de redundancia o Inconsistencia El SGBD debe permitir que el diseñador defina datos redundantes, pero entonces tendría que ser el mismo SGBD el que hiciese automáticamente la actualización de los datos en todos los lugares donde estuviesen repetidos. Integridad de los datos o Integridad de entidad / Integridad referencial / Reglas Concurrencia de usuarios o Un objetivo fundamental de los SGBD es permitir que varios usuarios puedan acceder concurrentemente a la misma Base de Datos o Transacciones ▪ Denominamos transacción de Base de Datos o, simplemente, transacción un conjunto de operaciones simples que se ejecutan como una unidad. ▪ Los SGBD deben conseguir que el conjunto de operaciones de una transacción nunca se ejecute parcialmente. ▪ O se ejecutan todas, o no se ejecuta ninguna. Seguridad o Propiedades ACID: se utilizan para garantizar la fiabilidad y la integridad de las transacciones para que sean seguras, consistentes y fiables. Atomicidad: Una transacción es como una operación "todo o nada". Si algo sale mal en el medio, todo se deshace y la base de datos vuelve a su estado original. Consistencia: Las transacciones deben dejar la base de datos en un estado válido. Por ejemplo, si tienes una regla que dice que no puedes tener un libro sin un autor asociado, una transacción no puede violar esa regla. Aislamiento: Las transacciones se ejecutan independientemente unas de otras. No importa cuántas transacciones se estén ejecutando simultáneamente, cada una debe comportarse como si fuera la única. Durabilidad: Una vez que una transacción se completa correctamente, los cambios que hizo deben permanecer incluso si hay un fallo en el sistema. Los cambios son permanentes. Esquemas y niveles en los SGBD: Los SGBD necesitan que les demos una descripción o definición de la BD. Esta descripción recibe el nombre de esquema de la BD, y los SGBD la tendrán continuamente a su alcance. Esquema de la Base de Datos: Descripción de la estructura de la base de datos, incluyendo entidades, atributos y relaciones. Nivel Lógico: oculta los detalles de cómo se almacenan los datos, cómo se mantienen y cómo se accede físicamente a ellos. En este nivel sólo se habla de entidades, atributos y reglas de integridad Nivel Físico: índices, en que discos se almacenan los datos, tamaño de página, etc. Niveles de Esquemas: ANSI/SPARC o Nivel Externo: Visiones específicas de los datos para diferentes procesos de usuarios (esquemas externos). Al definir un esquema externo, se citarán sólo aquellos atributos y aquellas entidades que interesen; los podremos redenominar, podremos definir datos derivados o redefinir una entidad para que las aplicaciones que utilizan este esquema externo crean que son dos, definir combinaciones de entidades para que parezcan una sola, etc o Nivel Conceptual: Descripción lógica única y global de la base de datos (esquema conceptual). Se describirán las entidades tipo, sus atributos, las interrelaciones y las restricciones o reglas de integridad. o Nivel Interno: Descripción física de la base de datos. El esquema interno o físico contendrá la descripción de la organización física de la Base de Datos: caminos de acceso (índices, hashing, punteros, etc.), codificación de los datos, gestión del espacio, tamaño de la página, etc. Para crear una Base de Datos hace falta definir previamente su esquema conceptual, definir como mínimo un esquema externo y, de forma eventual, definir su esquema interno. Si este último esquema no se define, el mismo SGBD tendrá que decidir los detalles de la organización física. El SGBD se encargará de hacer las correspondencias (mappings) entre los tres niveles de esquemas Se utiliza una terminología ligeramente diferente. No se separan de forma clara tres niveles de descripción. Se habla de un solo esquema –schema–, pero en su interior se incluyen descripciones de los tres niveles. En el schema se describen los elementos de aquello que en la arquitectura ANSI/SPARC se denomina esquema conceptual (entidades tipo, atributos y restricciones) y las vistas –view–, que corresponden aproximadamente a los esquemas externos. El estándar ANSI-ISO de SQL no habla en absoluto del mundo físico o interno; lo deja en manos de los SGBD relacionales del mercado. Sin embargo, estos SGBD proporcionan la posibilidad de incluir dentro del schema descripciones de estructuras y características físicas (índice, tablespace, cluster, espacios para excesos, etc.) Independencia de los datos: Independencia Física: Los cambios en la organización física no afectan al mundo exterior. Cambios en el esquema interno no afectan al esquema conceptual ni a los externos. Independencia Lógica: Los cambios en el nivel lógico no afectan a los usuarios. Cambios en el esquema conceptual pueden no afectar a todos los esquemas externos. Flujo de datos y control: Consulta al SGBD: o El programa de aplicación envía una consulta al SGBD. o El SGBD verifica la consulta y determina cómo responderla. Proceso de Respuesta: o El SGBD accede a los datos según el esquema interno. o Realiza transformaciones según el esquema externo. o Retorna los resultados al programa de aplicación. SGDB Relacionales: Utilizan un solo esquema que incluye descripciones de los tres niveles (conceptual, externo e interno). Permiten descripciones de estructuras físicas dentro del esquema. Este esquema comprende cómo se organizan y gestionan los datos en los sistemas de gestión de bases de datos, los niveles de abstracción y su importancia para la independencia de los datos y el rendimiento del sistema. Modelos de Bases de Datos: Modelo Jerárquico: Estructura de registros interrelacionados en forma de árboles. Ejemplo: IMS/DL1 de IBM. Modelo en Red: Similar al jerárquico pero con registros interrelacionados sin restricciones. Propuesto por el comité CODASYL-DBTG. Modelo Relacional: Basado en el concepto de relación/tabla, propuesto por E.F. Codd. Utiliza SQL como lenguaje nativo. Es independiente de la representación física de los datos. Todo modelo brinda o Estructuras (tablas, árboles, etc.) o Restricciones (reglas): dominios, claves, etc. o Operaciones Lenguajes y Usuarios: Los usuarios utilizan diferentes lenguajes según su nivel de experiencia y las tareas que realizan. El lenguaje SQL se usa en bases de datos relacionales para consultas y mantenimiento de datos. Los lenguajes 4GL (4th Generation Languages) y las herramientas visuales facilitan la interacción con bases de datos mediante interfaces amigables. Para escribir programas de aplicación que interactúen con bases de datos, se pueden utilizar llamadas a funciones o lenguajes hospedados. Administración de Bases de Datos: Los administradores de bases de datos (ABD) son responsables del correcto funcionamiento, disponibilidad y seguridad de la base de datos. Tareas típicas incluyen mantenimiento de esquemas, asegurar la disponibilidad de los datos, resolución de emergencias, control del rendimiento y la seguridad, entre otros. En resumen, los modelos de bases de datos han evolucionado desde los jerárquicos y en red hacia el modelo relacional y sus extensiones. Los usuarios interactúan con las bases de datos mediante diversos lenguajes y herramientas, mientras que los administradores de bases de datos se encargan de garantizar su correcto funcionamiento y seguridad. Archivos, estructuras y Operaciones básicas Un archivo es una colección de registros semejantes, guardados en dispositivos de almacenamiento secundario de la computadora (Wiederhold, 1983). Un archivo es una estructura de datos que recopila, en un dispositivo de almacenamiento secundario de una computadora, una colección de elementos del mismo tipo (De Giusti, 2001). Un archivo es una colección de registros que abarcan entidades con un aspecto común y originadas para algún propósito particular. Administración de archivos Los archivos residen en memoria secundaria (por ejemplo, disco rígido) y son manejados por algoritmos. Archivo físico: reside en la memoria secundaria y es administrado (ubicación, tipos de operaciones disponibles) por el sistema operativo. Archivo lógico: es el archivo utilizado desde el algoritmo. Cuando un algoritmo necesita operar con un archivo, genera una conexión con el sistema operativo. Tipos de archivos – Acceso a información Secuencial (sin orden preestablecido. Para acceder un registro determinado, se deben visitar todos los registros previous en el orden que están almacenados y la búsqueda se detiene en el registro que tiene el dato, o en el final del archive si el resultado no es exitoso.) Secuencial indexado Directo Proceso de búsqueda Considerar la cantidad de accesos a disco, y el proceso de verificación (comparación) o Cantidad de accesos (operación sobre memoria secundaria) o Cantidad de comparaciones (operación sobre memoria principal) Archivo físicamente ordenado El argumento de búsqueda coincide con el criterio de ordenación El proceso de búsqueda se detiene cuando el dato es “mayor” al buscado (no necesito ir hasta el final del archivo). La búsqueda sigue siendo secuencial y de orden N Archivo físicamente ordenado con registros de longitud fija La primera comparación es contra el registro del medio del archivo (NRR=N/2) Si el registro no contiene el dato buscado, se descarta la mitad mayor o menor según corresponda, y se busca el registro del medio de la mitad que queda. Este proceso se repite hasta encontrar el valor buscado. Búsqueda Binaria En general, en un archivo de N registros se realiza a lo sumo log2(N)+1 comparaciones y en promedio (log2(N)+1)/2 Por lo tanto, el orden es de log2(N), una mejora sustancial con respecto al secuencial Como contra, hay que mantener el archivo ordenado, y el tamaño fijo puede implicar desperdicio de espacio. Índice Un índice agiliza el acceso a la información almacenada en un archivo al almacenar claves de registros con referencias de acceso. Permite imponer orden sin reorganizar el archivo original, siendo mucho más pequeño. Árboles Binarios: Estructuras dinámicas no lineales con hasta dos hijos por nodo. Búsqueda desde el nodo raíz hacia los nodos hoja. Inserción de elementos puede desequilibrar el árbol y afectar la búsqueda. Ventaja en la inserción de nuevos elementos, pero desequilibrios afectan la búsqueda. Árboles AVL: Árboles binarios balanceados en altura. Diferencia limitada entre caminos hacia nodos terminales. Mantienen balanceo con costos computacionales en inserción y eliminación. Árboles B: Árboles multicamino con reglas de balance. Propiedades como máximos descendientes por nodo y mínimos en nodos terminales. Variantes como B* y B+ mejoran rendimiento en ciertos escenarios. Dispersión (Hashing): Es una técnica para mapear claves a direcciones de almacenamiento en memoria secundaria. Permite una recuperación rápida de registros utilizando una función de hash. Puede ser estática o dinámica, dependiendo de si el espacio de almacenamiento está fijo o varía según las necesidades. Función de Hash: Transforma una clave primaria en un valor dentro de un rango, utilizado como dirección física de acceso en un archivo de datos. Modelos semánticos y funcionales Se utilizan en etapa de análisis y diseño (el más utilizado es el ER). Permiten describir estructuras de información del mundo real, la semántica y las interrelaciones. Se utilizan herramientas CASE (Computer Aided Software Engineering) Lenguajes y Usuarios: Usuarios Informáticos Expertos: Manejan procesos complejos y están familiarizados con lenguajes complejos de bases de datos. Usuarios No Informáticos Ocasionales: Realizan consultas simples y prefieren un lenguaje sencillo para interactuar con las bases de datos. Usuarios No Informáticos Dedicados: Requieren lenguajes eficientes y compactos para operar con las bases de datos de manera óptima. SQL: es el lenguaje más utilizado en bases de datos relacionales. Es principalmente declarativo pero también tiene características procedimentales. Permite tanto la definición (DDL) como la manipulación (DML) de datos. DDL (Data Definition Languaje - lenguaje de definición de datos): las sentencias DDL son aquellas utilizadas para la creación de una base de datos y todos sus componentes: tablas, índices, relaciones. Se utilizan para darle estructura a las tablas de la base de datos. (create, alter, drop) DML (Data Manipulation Languaje - lenguaje de manipulación de datos): las sentencias DML son aquellas utiliza das para insertar, borrar, modificar y consultar los datos de una base de datos. (insert, update, delete, select) CRUD (create, consult, read, update y delet) Herramientas Visuales: Facilitan el uso de bases de datos mediante interfaces gráficas con ventanas, iconos y ratón. Son útiles para usuarios no informáticos y simplifican el trabajo de los usuarios informáticos. Acceso a Bases de Datos con Lenguajes: Puede realizarse mediante llamadas a funciones especializadas en bases de datos o utilizando un lenguaje hospedado. Administración de Bases de Datos (DBA): Realiza tareas de gestión y control de la base de datos para garantizar su correcto funcionamiento. Mantenimiento, administración, control de los esquemas y usuarios. Asegurar la máxima disponibilidad de los datos; por ejemplo, haciendo copias (back-ups), administrando diarios (journals o logs), reconstruyendo la Base de Datos, etc. Resolución de emergencias, vigilancia de la integridad y de la calidad de los datos. Diseño físico, estrategia de caminos de acceso y reestructuraciones. Control del rendimiento y decisiones relativas a las modificaciones en los esquemas y/o en los parámetros del SGBD y del SO, para mejorarlo. Normativa y asesoramiento a los programadores y a los usuarios finales Control y administración de la seguridad: autorizaciones, restricciones, etc Tipos de Bases de Datos: Las bases de datos relacionales utilizan un modelo de datos relacional y organizan los datos en tablas con filas y columnas. Las bases de datos no relacionales (NoSQL) utilizan modelos de datos no relacionales y son más flexibles en términos de estructura y escalabilidad. Diferencias entre Bases de Datos Relacionales y No Relacionales: Las bases de datos relacionales tienen una estructura tabular con relaciones definidas entre tablas, mientras que las bases de datos no relacionales pueden tener estructuras más flexibles, como documentos, grafos o clave-valor. Las bases de datos no relacionales suelen ser más escalables horizontalmente y permiten cambios en el esquema de datos sin necesidad de modificar todas las instancias de los datos. Modelo relaciónal (relational, aplicado al concepto de relación matemática en la teoría de conjuntos) Entidad relación (relationship, el relacionamiento entre dos objetos) Unidad 2: Modelo Entidad Relación. El modelo entidad-relación (E-R) es un modelo de datos de alto nivel que distingue entre entidades y relaciones entre ellas. Utilizado como paso inicial en el diseño de esquemas de bases de datos, facilita la identificación de entidades y sus relaciones. El modelo de datos entidad-relación (E-R) está basado en una percepción del mundo real consistente en objetos básicos llamados entidades y de relaciones entre estos objetos. Facilitar el diseño de bases de datos. Representa la estructura lógica completa de una base de datos. Es un modelo de datos semánticos; el aspecto semántico del modelo yace en la representación del significado de los datos. Es útil para hacer corresponder los significados e interacciones de las empresas del mundo real con un esquema conceptual. Diseño de Bases de Datos utilizando el Modelo E-R: Implica considerar varios conceptos importantes, como la correspondencia de cardinalidades, restricciones de participación, claves primarias y eliminación de atributos redundantes. Los diagramas E-R proporcionan una representación visual de la estructura lógica de la base de datos. Entidad: Una entidad es un objeto que existe y puede distinguirse de otros objetos. La entidad puede ser concreta, por ejemplo: una persona o un libro; o abstracta, por ejemplo, un día festivo o un concepto. Un conjunto de entidades es un grupo de entidades del mismo tipo. Conjuntos de Entidades: Representan objetos del mundo real distinguibles entre sí. Se agrupan en conjuntos según su tipo, compartiendo propiedades o atributos. Cada entidad tiene un conjunto de atributos que describen sus características únicas. Atributos: Son propiedades descriptivas que poseen las entidades. Permiten identificar de forma única a cada entidad dentro de un conjunto. Cada entidad tiene un valor para cada atributo, lo que proporciona información específica sobre ella. Los atributos definen las características de un grupo de entidades. Asignar un atributo implica que la base de datos guarda información similar sobre cada entidad, aunque cada una puede tener su propio valor. Cada atributo tiene un Dominio con valores permitidos. Por ejemplo, el dominio de "Razon_Social" podría ser cadenas de texto de cierta longitud. Incorrecto incluir texto en un atributo de fecha o direcciones en Razón social. → Atributos Simples: aquellos que no están divididos en subpartes como por ejemplo “DNICliente” → Atributos Compuestos: se pueden dividir en subpartes (en otros atributos). → Atributos Monovalorado: tienen un valor sólo para una entidad concreta. El atributo “Nro_Factura” para una entidad Ventas específico, referencia a un único número de factura. → Atributos Multivalorados: tienen un conjunto de valores para una entidad específica. Empleado con el atributo “número-teléfono”. Cualquier empleado particular puede tener cero, uno o más números de teléfono. → Atributos Derivados: el valor para este tipo de atributo se puede derivar de los valores de otros atributos o entidades relacionado. El conjunto de entidades empleado tiene un atributo “edad”, que indica la edad del cliente. Si el conjunto de entidades cliente tiene también un atributo “fechade -nacimiento”, se puede calcular edad a partir de “fecha -de - nacimiento” y de la fecha actual. Relación: Una relación es una asociación entre diferentes entidades. Un conjunto de relaciones es un conjunto de relaciones del mismo tipo. La asociación entre conjuntos de entidades se conoce como participación; es decir, los conjuntos de entidades E1, E2,. En participan en el conjunto de relaciones R. La función que desempeña una entidad en una relación se llama papel de la entidad. Como los conjuntos de entidades que participan en un conjunto de relaciones son distintos, los papeles están implícitos y no se especifican normalmente. Sin embargo, son útiles cuando el significado de una relación necesita aclaración. EJ: Un Vendedor -> Factura -> Productos Conjuntos de Relaciones: Una relación representa una asociación entre entidades. Cada conjunto de relaciones implica la participación de conjuntos de entidades en esas relaciones. Puede haber varios conjuntos de relaciones que involucren los mismos conjuntos de entidades. Restricciones: Las restricciones son reglas que se aplican a los datos almacenados en la base de datos para garantizar su integridad y consistencia. o Participación: Parcial o total (si tiene que estar o no la relación para todas las instancias de una entidad ej clientes que tienen prestamos, no todos van a tener entonces es participación parcial, pero en la tabla de préstamos, la participación es completa o total ya que no puede haber un préstamo sin cliente asociado) La correspondencia de cardinalidades, o razón de cardinalidad, expresa el número de entidades a las que otra entidad puede estar asociada vía un conjunto de relaciones. La correspondencia de cardinalidades es la más útil describiendo conjuntos de relaciones binarias, aunque ocasionalmente contribuye a la descripción de conjuntos de relaciones que implican más de dos conjuntos de entidades. o Uno a uno. Una entidad en A se asocia con a lo sumo una entidad en B, y una entidad en B se asocia con a lo sumo una entidad en A (la Figura a). o Uno a varios. Una entidad en A se asocia con cualquier número de entidades en B (ninguna o varias). Una entidad en B, sin embargo, se puede asociar con a lo sumo una entidad en A (Figura b). Restricciones Correspondencia de cardinalidad o Varios a uno. Una entidad en A se asocia con a lo sumo una entidad en B. Una entidad en B, sin embargo, se puede asociar con cualquier número de entidades (ninguna o varias) en A (Figura a). o Varios a varios. Una entidad en A se asocia con cualquier número de entidades (ninguna o varias) en B, y una entidad en B se asocia con cualquier número de entidades (ninguna o varias) en A (Figura b). Restricciones de Participación o La participación de un conjunto de entidades E en un conjunto de relaciones R se dice que es total si cada entidad en E participa al menos en una relación en R. S o Si sólo algunas entidades en E participan en relaciones en R, la participación del conjunto de entidades E en la relación R se llama parcial. Claves En un modelo relacional, una relación se refiere a la conexión entre entidades. Las claves son atributos o conjuntos de atributos que garantizan la unicidad de las filas en una tabla (identifican de forma única a cada entidad dentro de un conjunto.) Pueden ser superclaves (identifican de forma única a una entidad), claves candidatas (superclaves mínimas) o claves primarias (seleccionadas como identificadores principales). Superclave: Un conjunto de atributos que identifica de forma única a una entidad en una base de datos. Superclave mínima: La más pequeña de las superclaves que aún identifica a cada entidad de manera única. Clave candidata: Una superclave mínima, la más pequeña posible que identifica de forma única a las entidades. Clave primaria: La clave candidata seleccionada para identificar de forma única a cada entidad en la base de datos. Es el principal medio de identificación en una tabla. Superclave: conjunto de uno o mas atributos que permiten identificar de forma única a una entidad (esta es una relación de esquema R(A1,A2,...An)), es un subconjunto de atributos del esquema tal que no puede haber dos tuplas con la misma combinación. Toda relaci[on tiene por lo menos una superclave. Hay muchas superclaves posibles, es decir muchas combinaciones (dni + nombre, cuit, dni + apellido etc) Una clave candidata de una relación es una superclave C de la relación que cumple que ningún subconjunto propio de C es superclave. Es decir, C cumple que la eliminación de cualquiera de sus atributos da un conjunto de atributos que no es superclave de la relación. (ej cuit: tipodni + dni. Estas no tiene subconjuntos que son superclaves) La clave primaria o principal identifica de forma unica a cada fila de una tabla. La clave alternativa es una clave candidata no elegida para ser primaria Una clave foránea o clave ajena (o Foreign Key FK) es una limitación referencial entre dos tablas. La clave foránea identifica una columna o grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo de columnas en otra tabla (tabla maestra o referenciada). Las columnas en la tabla referendo deben ser la clave primaria u otra clave candidata en la tabla referenciada. Es un atributo o combinación de atributos en una Relación r(R) que es clave primaria de una relación s(S). Las claves foráneas permiten establecer conexiones entre las tuplas de las relaciones. Para hacer la conexión, una clave foránea tiene el conjunto de atributos de una relación que referencian la clave primaria de otra relación (o incluso de la misma relación). Diagrama E-R Es una herramienta visual que se utiliza en el diseño de bases de datos para mostrar cómo están conectadas las diferentes entidades y sus relaciones. La estructura lógica general de una base de datos se puede expresar gráficamente mediante un diagrama E-R. Los diagramas son simples y claros, cualidades que pueden ser responsables del amplio uso del modelo E-R. Componentes principales Rectángulos, que representan conjuntos de entidades. Rombos, que representan relaciones. Líneas, que unen conjuntos de entidades a conjuntos de relaciones. Líneas dobles, que indican participación total de una entidad en un conjunto de relaciones. Rectángulos dobles, que representan conjuntos de entidades débiles Entidades Fuertes y Débiles → Un conjunto de entidades puede no tener suficientes atributos para formar una clave primaria. Tal conjunto de entidades se denomina conjunto de entidades débiles. → Un conjunto de entidades que tiene una clave primaria se denomina conjunto de entidades fuertes. Para que un conjunto de entidades débiles tenga sentido, debe estar asociado con otro conjunto de entidades identificadoras. Cada entidad débil debe estar asociada con una entidad identificadora; es decir, se dice que el conjunto de entidades débiles depende existencialmente del conjunto de entidades identificadoras. Entidad débil: Es un tipo de entidad que depende de otra entidad para poder existir. Se asocia con otra entidad llamada entidad identificadora. Entidad identificadora: Es la entidad de la que depende una entidad débil. Se dice que la entidad débil es propiedad de la entidad identificadora. Relación identificadora: Es la relación que une una entidad débil con su entidad identificadora. Discriminante: Es un conjunto de atributos que permite distinguir entre las entidades débiles que dependen de la misma entidad identificadora. Clave parcial: Es el discriminante de una entidad débil, que forma parte de su clave primaria. Clave primaria de entidad débil: Se forma combinando la clave primaria de la entidad identificadora y su discriminante. Especialización de entidades: La especialización de entidades es un proceso en el diseño de bases de datos donde una entidad genérica se divide en subgrupos más específicos, cada uno representando un conjunto más homogéneo de entidades. Este proceso se utiliza para modelar entidades que comparten algunas características pero también tienen atributos únicos. Los subgrupos resultantes se llaman subentidades o subtipos, mientras que la entidad original se llama supertipo. Generalización de Entidades La generalización de entidades implica agrupar conjuntos de entidades similares bajo una categoría más amplia. Por ejemplo, si tenemos conjuntos de entidades como "cliente" y "empleado" que comparten atributos similares como "nombre", "calle" y "ciudad", podemos agruparlos bajo una categoría más amplia llamada "persona". Esto simplifica el diseño de la base de datos al identificar características comunes entre diferentes conjuntos de entidades. En resumen, la especialización se utiliza para dividir una entidad principal en subentidades más específicas, mientras que la generalización se utiliza para combinar varias entidades en una entidad más general. Ambas técnicas ayudan a organizar y simplificar la estructura de la base de datos. ES CONVENIENTE LA GENERALIZACIÓN CUANDO DOS ENTIDADES TIENEN MUCHOS ATRIBUTOS EN COMÚN. (Por ejemplo, conviene tener una única tabla empleados o 3 tablas con la diferenciación de oficiales, jefes y administrativos?) Límites de Cardinalidad Los diagramas E-R también proporcionan una forma de indicar restricciones más complejas sobre el número de veces en que cada entidad participa en las relaciones de un conjunto de relaciones. Un segmento entre un conjunto de entidades y un conjunto de relaciones binarias puede tener una cardinalidad mínima y máxima. Si la cardinalidad mínima es cero, se muestra con una c (1c o Nc). Si la cardinalidad mínima es 1 de deja de manera implícita. TIPO DE OBJETO ASOCIATIVO: es representado mediante un rectángulo unido a un rombo. Surge cuando una relación contiene además información (Agregación / Asociación). Este tipo de objeto es una relación que además posee atributos propios. Este objeto existe mientras existan los objetos que relaciona. La construcción de un Diagrama Entidad-Relación (DER) sigue un proceso estructurado que involucra varias etapas: 1. Identificar Objetos: Reconocer los objetos principales del sistema, como entidades y relaciones. 2. Individualizar identificadores únicos de objetos: Asignar identificadores únicos a cada objeto para asegurar su distinción. 3. Identificar relaciones entre objetos: Determinar cómo se relacionan los diferentes objetos entre sí. 4. Clasificar relaciones: Clasificar las relaciones según su grado (unario, binario, ternario, etc.), conectividad (uno a uno, uno a muchos, muchos a muchos) y condicionalidad (opcional u obligatoria). 5. Identificar atributos: Identificar los atributos asociados a cada objeto. 6. Asignar atributos a objetos y relaciones: Asignar los atributos identificados a los objetos y relaciones correspondientes. 7. Identificar objetos asociativos: Identificar objetos adicionales necesarios para representar relaciones complejas entre otras entidades. 8. Identificar super y subtipos: Identificar y representar jerarquías de objetos relacionados. 9. Dibujar el DER: Representar visualmente todas las entidades, relaciones y atributos en un diagrama claro y comprensible. 10. Eliminar elementos redundantes o fuera del alcance del sistema: Refinar el diagrama eliminando cualquier objeto o relación que no sea relevante para el sistema. 11. Generar una entrada en el Diccionario de Datos: Crear una entrada en el diccionario de datos para cada elemento del DER, describiendo su significado y características. 12. Validar aplicando técnicas: Validar el diseño del DER mediante técnicas como la normalización y la técnica de preguntas y respuestas. 13. Revisar el esquema con el resto del modelo: Revisar y ajustar el esquema del DER en conjunto con otros modelos de datos y requisitos del sistema. Además, durante la construcción del DER, se deben seguir ciertas reglas para garantizar la coherencia y la claridad semántica del modelo: Reglas de Conexión: Establecen cómo se conectan los objetos y las relaciones en el diagrama. Reglas de Consistencia Interna: Aseguran que el DER sea lógicamente coherente y libre de redundancias. Reglas de Claridad Semántica: Garantizan que el modelo represente con precisión la realidad del sistema y que sea comprensible para los usuarios finales y los desarrolladores.  Grado: El grado de una relación en un diagrama entidad-relación (DER) indica cuántas entidades están involucradas en esa relación. Por ejemplo, una relación unaria implica una sola entidad, una relación binaria implica dos entidades y una relación ternaria implica tres entidades. o Relación binaria: Es una relación entre dos entidades en un DER. o Relación ternaria: Es una relación entre tres entidades en un DER. o Relación doble: Es una relación entre dos conjuntos de entidades diferentes, donde cada conjunto se relaciona con el otro. o Relación reflexiva: Es una relación donde una entidad se relaciona consigo misma. o Relación unitaria: Es una relación uno a uno entre una entidad y ella misma.  Conectividad: La conectividad describe la cantidad de entidades que pueden estar relacionadas entre sí a través de una relación específica. o Uno a uno (cada entidad en un conjunto está relacionada con exactamente una entidad en otro conjunto), o Uno a muchos (una entidad en un conjunto puede estar relacionada con una o más entidades en otro conjunto), o Muchos a uno o Muchos a muchos (muchas entidades en un conjunto pueden estar relacionadas con muchas entidades en otro conjunto).  Condicionalidad: La condicionalidad indica si la participación en una relación es opcional u obligatoria para las entidades involucradas. Por ejemplo, en una relación opcional, una entidad puede existir sin estar relacionada con otra entidad. En una relación obligatoria, la participación de una entidad en la relación es necesaria.  Subtipos y supertipos: En un DER, los subtipos y supertipos representan una relación jerárquica entre entidades. Los subtipos son entidades más específicas que heredan atributos y relaciones de entidades más generales llamadas supertipos.  Generalización vs Especialización: La generalización es el proceso de identificar entidades más generales a partir de entidades específicas, mientras que la especialización es el proceso opuesto, donde se identifican entidades más específicas a partir de entidades más generales.  Objeto asociativo: Es una entidad adicional creada para representar una relación compleja entre otras entidades. Ayuda a modelar relaciones muchos a muchos entre dos o más entidades. ❑ La relación puede tener atributos propios, se denomina objeto asociativo (ahí va el rectángulo con fecha) y el rombo se deja vacío ❑ Doble cuadro es cuando necesitan de otro objeto para identificarse (débil) **identificarse, no exitir; se refiere a la identificación de una clave por ej, caso de la habitación, se componía por la clave del hotel. ❑ Llaves en el diccionario, demuestran varias ocurrencias ej {fecha + hora + lugar} Modo relacional Surge en principios de los 69-70 (Edgar Frank Ted Codd) Modelo de base de datos. - Estructura: representar la información que nos interesa. - Operaciones de manipulación: da apoyo mediante actualización y consulta. - Gestión de la Integridad: establecimiento de reglas y condiciones debe cumplir. Relación – relationship – Tablas, archivo o fichero propio Relación DER – relation – Rombo Instancia, registro, fila de valores (cada columna tiene un atributo) Dominio: conjunto de posibles valores de un atributo (es una forma de aplicar una restricción) - Dominios predefinidos: tipo de dato - Dominios definidos por usuario: son más específicos como por ejemplo rangos de valores Esquema de la relacion R{A1,A2,...,An} - No se necesita un orden específico {dni, nombre, apellido,...} EMPLEADOS(dni, nombre, appellido....) El modelo relacional Es un modelo de datos y, como tal, tiene en cuenta los tres aspectos siguientes de los datos: La estructura, que debe permitir representar la información que nos interesa del mundo real. La manipulación, a la que da apoyo mediante las operaciones de actualización y consulta de los datos. o Las operaciones del modelo relacional deben permitir manipular datos almacenados en una base de datos relacional y, por lo tanto, estructurados en forma de relaciones. La manipulación de datos incluye básicamente dos aspectos: la actualización y la consulta. o La actualización de los datos consiste en hacer que los cambios que se producen en la realidad queden reflejados en las relaciones de la base de datos. (hay 3 tipos) ▪ Inserción, que sirve para añadir una o más tuplas a una relación. ▪ Borrado, que sirve para eliminar una o más tuplas de una relación. ▪ Modificación, que sirve para alterar los valores que tienen una o más tuplas de una relación para uno o más de sus atributos La integridad, facilitada mediante el establecimiento de reglas de integridad; condiciones que los datos deben cumplir. o o o o o Integridad de los datos: garantiza que los datos sean representaciones válidas y coherentes del mundo real. (Deben cumplir varias condiciones para que sean íntegros) Restricciones de integridad de usuario: condiciones específicas de una base de datos concreta (ejemplo que un sueldo no sea negativo). Reglas de integridad de modelo: condiciones más generales, incluyen la integridad de entidad, unicidad, referencial y de dominio. ▪ Integridad de entidad: establece que los valores de la clave primaria no pueden ser nulos. En una tabla de empleados, la clave primaria es el número de empleado. La integridad de entidad asegura que no puede haber empleados con el número de empleado nulo. ▪ Integridad de unicidad (o de clave primaria): asegura que no puede haber valores repetidos en la clave primaria. En una tabla de productos, el código de producto es la clave primaria. La integridad de unicidad garantiza que no puede haber dos productos con el mismo código ▪ Integridad referencial: relacionada con las claves foráneas, determina que los valores de una clave foránea deben existir en la clave primaria que referencia. En una base de datos de ventas, la tabla de ventas tiene una clave foránea que hace referencia a la tabla de productos. La integridad referencial asegura que los productos vendidos deben existir en la tabla de productos. ▪ Integridad de dominio: los valores no nulos de un atributo deben pertenecer al dominio del atributo. En una tabla de clientes, el campo de teléfono debe contener números de teléfono válidos. La integridad de dominio garantiza que los valores en este campo cumplan con el formato de un número de teléfono. Reglas de integridad y operaciones sobre la base de datos: los SGBD deben hacer cumplir estas reglas al realizar operaciones como inserciones, modificaciones o borrados en la base de datos. Para mantener la integridad referencial en una base de datos, se pueden utilizar diferentes políticas: ▪ Restricción: No se permite la actualización si viola la integridad referencial. ▪ Actualización en Cascada: Se actualizan en cascada las tuplas que la referencian. ▪ Anulación: Se ponen valores nulos a los atributos de la clave foránea de las tuplas que la referencian. ▪ Default: Se asigna un valor por defecto a los atributos de la clave foránea de las tuplas que la referencian. Consultas: La consulta de los datos consiste en la obtención de datos deducibles a partir de las relaciones que contiene la base de datos La obtención de los datos que responden a una consulta puede requerir el análisis y la extracción de datos de una o más de las relaciones que mantiene la base de datos. Principios Fueron establecidos por E.F. Codd en los años 1969 y 1970 (científico informático inglés) Hasta la década de los ochenta no se empezaron a comercializar los primeros SGBD relacionales con rendimientos aceptables. El objetivo es facilitar que la base de datos la perciba o vea el usuario como una estructura lógica con un conjunto de relaciones y no como una estructura física de implementación. Esta estructura lógica con la que se percibe la base de datos debe ser simple y uniforme. Toda la información se representa de una única manera: mediante valores explícitos que contienen las relaciones. Todos los valores de datos se consideran atómicos; es decir, no es posible descomponerlos. Estructura de los datos El modelo relacional proporciona una estructura de los datos que consiste en un conjunto de relaciones con objeto de representar la información que nos interesa del mundo real. La estructura de los datos del modelo relacional se basa, pues, en el concepto de relación. Visión informal de una relación Se puede obtener una buena idea intuitiva de lo que es una relación si la visualizamos como una tabla o un fichero. En la figura se muestra la visualización tabular de una relación que contiene datos de empleados. Cada fila de la tabla contiene una colección de valores de datos relacionados entre sí; en nuestro ejemplo, son los datos correspondientes a un mismo empleado. La tabla tiene un nombre (EMPLEADOS) y también tiene un nombre cada una de sus columnas (DNI, nombre, apellido y sueldo). El nombre de la tabla (relación) y los de las columnas ayudan a entender el significado de los valores que contiene la tabla. Cada columna contiene valores de un cierto dominio; por ejemplo, la columna DNI contiene valores del dominio númerosDNI. 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 cualquier valor de este atributo debe ser elemento del conjunto especificado". Visión formal de una relación → Dominios predefinidos, que corresponde a los tipos de datos que suelen proporcionar los lenguajes de bases de datos, como enteros, cadenas de caracteres, reales, etc. → Dominios definidos por el usuario, que pueden ser más específicos. Toda definición de un dominio debe constar, como mínimo, del nombre del dominio y de la descripción de los valores que forman parte de éste. Esquema: una relación se compone del esquema (o intensión de la relación) y de la extensión. El esquema de la relación consiste en un nombre de relación R y un conjunto de atributos {A1, A2,..., An}. Denotación del esquema de la relación empleados: El esquema de la relación de la figura se podría denotar, por ejemplo, como EMPLEADOS(DNI, nombre, apellido, sueldo), o también, EMPLEADOS(nombre, apellido, DNI, sueldo), porque cualquier ordenamiento de sus atributos se considera válida para denotar el esquema de una relación. Un atributo Ai es el nombre del papel que ejerce un dominio D en un esquema de relación. D es el dominio de Ai y se denota como dominio (Ai). Según la figura, el atributo DNI corresponde al papel que ejerce el dominio númerosDNI en el esquema de la relación EMPLEADOS y, entonces, dominio(DNI) = númerosDNI. Conviene observar que cada atributo es único en un esquema de relación, porque no tiene sentido que un mismo dominio ejerza dos veces el mismo papel en un mismo esquema. Por consiguiente, no puede ocurrir que en un esquema de relación haya dos atributos con el mismo nombre. En cambio, sí que se puede repetir un nombre de atributo en relaciones diferentes. Los dominios de los atributos no deben ser todos diferentes en una relación. Ejemplo valor nulo: Podríamos tener un atributo telcasa en la relación EMPLEADOS y se podría dar el caso de que un empleado no tuviese teléfono en su casa, o bien que lo tuviese, pero no se conociese su número. En las dos situaciones, el valor del atributo telcasa para la tupla correspondiente al empleado sería el valor nulo Grado de relación: El grado de una relación es el número de atributos que pertenecen a su esquema. En EMPLEADOS(DNI, nombre, apellido, sueldo), es 4. Cardinalidad: La cardinalidad de una relación es el número de tuplas que pertenecen a su extensión. Observando la figura se deduce que la cardinalidad de la relación EMPLEADOS es 3. Algebra relacioanal --Procedural: paso a paso Delarativo: que es lo que necesito Consultas (Tipos de Lenguajes) El lenguaje SQL, en las sentencias de consulta, combina construcciones del álgebra relacional y del cálculo relacional con un predominio de las construcciones del cálculo. Este predominio determina que SQL sea un lenguaje declarativo. El estudio del álgebra relacional es de interés especial, pues ayuda a entender qué servicios debe proporcionar un lenguaje relacional, facilita la comprensión de algunas construcciones del lenguaje SQL y sirve de base para tratar las consultas de los SGBD internamente.

Use Quizgecko on...
Browser
Browser