Tema 23.docx
Document Details
Uploaded by Oganesson93
Universidad de Valladolid
Tags
Full Transcript
Tema 23. Bases de datos: conceptos. Tipos de bases de datos. Diseño de una base de datos relacional: principios del diseño y normalización del mismo. Las bases de datos son colecciones organizadas de datos que se pueden almacenar, acceder, actualizar y administrar de manera eficiente. Las bases de...
Tema 23. Bases de datos: conceptos. Tipos de bases de datos. Diseño de una base de datos relacional: principios del diseño y normalización del mismo. Las bases de datos son colecciones organizadas de datos que se pueden almacenar, acceder, actualizar y administrar de manera eficiente. Las bases de datos se utilizan para gestionar grandes cantidades de información en una variedad de contextos, como empresas, organizaciones gubernamentales, sitios web y aplicaciones móviles. Toda base de datos debe permitir añadir, modificar, eliminar y consultar los datos que almacena. Para crear y administrar una base de datos, se requiere un Sistema de Gestión de Bases de Datos (SGBD). Existen diferentes tipos de bases de datos que se utilizan en distintas aplicaciones y contextos. Algunos de los tipos de bases de datos más comunes son: 1. [Bases de datos jerárquicas]: son una base de datos en la que se almacena la información en una estructura jerárquica o con un orden de importancia. En este modelo los datos están organizados forma de árbol, donde los nodos son las entidades y los arcos las relaciones. Dicho árbol cuenta con varios niveles. Todos adecuados según el nivel de importancia que se tenga. - - - 1. [Bases de datos en red]: son una evolución de las jerárquicas; su diferencia principal es que los nodos pueden tener diversos padres. Esto en su momento representó un gran avance con respecto al modelo jerárquico ya que ofrecía una solución a los problemas de redundancia de datos. Es posible establecer relaciones de muchos a muchos mejorando las bases de datos jerárquicas. Esto tipo de bases de datos pueden llegar a ser muy complicadas. 2. [Bases de datos relacionales]: son las más utilizadas y están basadas en el modelo relacional. Los datos se organizan en tablas relacionadas entre sí por claves primarias y foráneas. Cada tabla tiene una clave primaria, que es un campo o conjunto de campos que identifican de manera única cada registro en la tabla. Además, las tablas están interconectadas mediante claves foráneas, que son campos que se relacionan con la clave primaria de otra tabla. 3. [Base de datos No SQL]: nos permiten almacenar información en aquellas situaciones en las que las bases de datos relacionales generan ciertos problemas debido principalmente a problemas de escalabilidad y rendimiento de las bases de datos relacionales donde se dan cita miles de usuarios concurrentes y con millones de consultas diarias. Las bases de datos NoSQL son sistemas de almacenamiento de información que no cumplen con el esquema entidad--relación. Tampoco utilizan una estructura de datos en forma de tabla donde se van almacenando los datos. Dependiendo de la forma en la que almacenen la información, nos podemos encontrar varios tipos distintos de bases de datos NoSQL: - [Bases de datos clave -- valor]: Son el modelo de base de datos NoSQL más popular, además de ser la más sencilla en cuanto a funcionalidad. En estas bases de datos existe una única colección de pares clave-valor, donde la clave identifica a un elemento de la base de datos unívocamente y puede representar mediante una cadena arbitraria, como un nombre de archivo, URI o hash, las limitaciones dependen del SGBD. El valor puede ser cualquier tipo de datos que se almacena como un blob. - [Bases de datos documentales]: Este tipo almacena la información como un documento, generalmente utilizando para ello una estructura simple como JSON o XML y donde se utiliza una clave única para cada registro. Este tipo de implementación permite, además de realizar búsquedas por clave--valor, realizar consultas más avanzadas sobre el contenido del documento. - [Bases de datos en grafo]: En este tipo de bases de datos, la información se representa como nodos de un grafo y sus relaciones con las aristas del mismo, de manera que se puede hacer uso de la teoría de grafos para recorrerla. Son bases de datos muy recientes que se suelen utilizar en el Bigdata para operar con grandes cantidades de datos con complejas relaciones entre ellos. Este tipo de bases de datos ofrece una navegación más eficiente entre relaciones que en un modelo relacional. - [Bases de datos orientadas a objetos:] Una característica clave de las bases de datos de objetos es que permiten el almacenamiento de objetos complejos que incluyen tanto datos como métodos y funciones para manipular esos datos. En las aplicaciones implementadas con lenguajes orientados a objetos y que necesitan acceder a este tipo de bases de datos, los datos y la lógica de la aplicación están estrechamente integradas lo que resulta altamente eficiente. **Diseño de una base de datos relacional: principios del diseño** El diseño de una base de datos consiste en definir la estructura de los datos que debe tener la base de datos de un sistema de información determinado. Descompondremos el diseño de bases de datos en tres etapas: [Etapa del diseño conceptual]: en esta etapa se obtiene una estructura de la información de la futura BD independiente de la tecnología que hay que emplear. No se tiene en cuenta todavía qué tipo de base de datos se utilizará --relacional, orientada a objetos, jerárquica, etc.--; Así pues, la etapa del diseño conceptual nos permite concentrarnos únicamente en la problemática de la estructuración de la información, sin tener que preocuparnos al mismo tiempo de resolver cuestiones tecnológicas. El resultado de la etapa del diseño conceptual se expresa mediante algún modelo de datos de alto nivel. Uno de los más empleados es el modelo entidad-interrelación (ER). El modelo ER proporciona una notación diagramática para representar gráficamente sus construcciones básicas: entidades, atributos y interrelaciones: - Las entidades: un objeto del mundo real que podemos distinguir del resto de objetos y del que nos interesan algunas propiedades. Se representan con un rectángulo. El nombre de la entidad se escribe en mayúsculas dentro del rectángulo. - Los atributos: Son las propiedades de los objetos que nos interesan y se denominan atributos. Se representan mediante su nombre en minúsculas unido con un guion al rectángulo de la entidad a la que pertenecen. - Las interrelaciones: se define como una asociación entre entidades. Se representan en los diagramas del modelo ER mediante un rombo. Junto al rombo se indica el nombre de la interrelación con letras mayúsculas. Entidades Representa una entidad del mundo real que tiene asociado una serie de características que serán relevantes para nuestro sistema de información a modelar y llamaremos atributos. Para identificar la ocurrencia de una entidad concreta frente al resto de esa misma entidad, se utilizarán uno o varios atributos que formarán una clave de la entidad. Una determinada entidad puede tener más de una clave; es decir, puede tener varias claves candidatas. Y de esas claves candidatas se elegirá una clave primaria. En el diagrama ER la clave primaria se subraya para distinguirla del resto de las claves. Todos los atributos tienen que ser univaluados. Un atributo es univaluado si tiene un único valor para cada ocurrencia de una entidad. ![](media/image2.png) El ejemplo anterior donde la entidad tiene un conjunto de atributos que forman su clave primaria y que permiten identificarlas completamente se denominan entidades fuertes. Una entidad débil es una entidad cuyos atributos no la identifican completamente, sino que sólo la identifican de forma parcial. Esta entidad debe participar en una interrelación para ayudar a identificarla. Una entidad débil se representa con un rectángulo doble, y la interrelación que ayuda a identificarla se representa con una doble línea. La generalización/especialización permite reflejar el hecho de que hay una entidad general, que denominamos entidad superclase, que se puede especializar en entidades subclase: - La entidad superclase nos permite modelizar las características comunes de la entidad vista de una forma genérica. - Las entidades subclase nos permiten modelizar las características propias de sus especializaciones. Es necesario que se cumpla que toda ocurrencia de una entidad subclase sea también una ocurrencia de su entidad superclase. ![](media/image4.png) Interrelaciones Se define interrelación como una asociación entre entidades. En ocasiones interesa reflejar algunas propiedades de las interrelaciones. Por este motivo, las interrelaciones pueden tener también atributos. Los atributos de las interrelaciones, igual que los de las entidades, tienen un cierto dominio, deben tomar valores atómicos y deben ser univaluados. Una interrelación puede asociar dos o más entidades. El número de entidades que asocia una interrelación es el grado de la interrelación. Las interrelaciones de grado dos se denominan también interrelaciones binarias, de tres, terciarias,...En general las relaciones de más de dos entidades se denominan n-arias. Podemos distinguir entre cardinalidad y tipo de conectividad: - Cardinalidad: con la que una entidad participa en una relación especifica el número mínimo y el número máximo de correspondencias en las que puede tomar parte cada ocurrencia de dicha entidad. - Tipo de conectividad: se utiliza para clasificar el tipo de relación: uno a uno (1:1), uno a muchos (1:n), muchos a muchos (m:n). Tipo de conectividad dentro de la interrelación representa el número máximo de ocurrencias con respecto al resto de entidades dentro de la relación. Por simplicidad nos centraremos en las relaciones binarias para su explicación: - Conectividad uno a uno (1:1): Una ocurrencia en una entidad se asocia con una única ocurrencia de la otra entidad. La conectividad 1:1 se denota poniendo un 1 a ambos lados de la interrelación. - Conectividad uno a muchos (1:N): La ocurrencia en una entidad se asocia con n ocurrencias de la otra entidad. Pero la ocurrencia de la entidad con N de su lado implica una única ocurrencia en la entidad donde aparece el 1. - Conectividad muchos a muchos: (M:N): Una ocurrencia del lado donde está la M implica varias ocurrencias de la entidad donde aparece la N. Y una la ocurrencia de la entidad donde aparece la M implica varias ocurrencias de la entidad donde aparece la N. [Etapa del diseño lógico]: El diseño lógico de una base de datos es dependiente del tipo de base de datos pero es independiente de un SGBD concreto. El diseño lógico de una base de datos relacional toma como punto de partida un diseño conceptual expresado con el modelo ER para transformarlo en un modelo relacional. En esta etapa se obtiene un conjunto de relaciones con sus atributos, claves primarias y claves foráneas. Transformación entre modelos: - Las entidades, cuando se traducen al modelo relacional, originan relaciones. - Las interrelaciones, en cambio, cuando se transforman, pueden dar lugar a claves foráneas de alguna relación ya obtenida o pueden dar lugar a una nueva relación. En el caso de las interrelaciones, es necesario tener en cuenta su grado y su conectividad para poder decidir cuál es la transformación adecuada. En las interrelaciones binarias: 1. 1:1: La clave primaria de una de las relaciones resultante viaja como clave foránea a la otra relación. 2. 1:N: La clave primaria de la relación 1 viaja como clave foránea a la relación N. 3. M:N: se traduce en una nueva relación donde la clave primaria está formada por la suma de la claves primaras de las relaciones implicadas. La clave primaria de esta nueva relación estará formada por claves foráneas. Todas las interrelaciones n-arias se traducen en nuevas relaciones. [Etapa del diseño físico]: en esta etapa se transforma la estructura obtenida en la etapa del diseño lógico en una descripción de la implementación de la base de datos que estará fuertemente ligada al SGBD elegido. Se expresa haciendo uso del lenguaje de definición de datos del SGBD. Incluye: - La descripción de las estructuras de almacenamiento y - Los métodos de acceso a los datos. La etapa del diseño físico se debe realizar con el objetivo de conseguir un buen rendimiento de la base de datos, para ello se debe tener en cuenta: - Las características de los procesos que consultan y actualizan la base de datos: - caminos de acceso. - frecuencias de ejecución. - Volúmenes que se espera tener de los diferentes datos que se quieren almacenar. **Normalización de bases de datos relacionales** Una vez que se han aplicado las reglas de transformación del modelo ER al modelo relacional, se hace necesario aplicar una serie de pasos para conseguir: - - - El resultado es un nuevo modelo relacional en el que ni se ha introducido nuevos atributos, solo se ha reestructurado la información. Existen varias formas normales, para alcanzar cada una de ellas hay que aplicar una serie de restricciones que el modelo debe cumplir. El proceso de normalización se divide en varias formas o niveles de normalización, que se enumeran a continuación: Primera forma normal (1NF) Una tabla está en Primera Forma Normal si: - Todos los atributos son atómicos, contienen valores indivisibles. - La tabla contiene una clave primaria única. - La clave primaria no contiene atributos nulos. - Una tabla no puede tener múltiples valores en cada columna. Segunda forma normal (2NF) Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales. (Todos los atributos que no son clave principal deben depender únicamente de la clave principal). Ejemplo: ![](media/image6.png) Por tanto, esta relación no está en 2FN, porque existen dependencias parciales. Tercera forma normal (3NF) La tabla se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional transitiva entre los atributos que no son clave. Un ejemplo de este concepto sería que, una dependencia funcional X-\>Y en un esquema de relación R es una dependencia transitiva si hay un conjunto de atributos Z que no es un subconjunto de alguna clave de R, donde se mantiene X-\>Z y Z-\>Y. Ejemplo: Existen otras formas de normalización, como la forma normal de Boyce-Codd (BCNF), la cuarta forma normal y la quinta forma normal (5NF), que se utilizan para mejorar aún más la estructura y la eficiencia de la base de datos.