Introducción a las bases de datos (PDF)
Document Details
Uploaded by ConscientiousYtterbium
Tags
Summary
This document provides an introduction to database concepts. It covers topics like data storage, file organization and different database access methods. The document also discusses various database models, advantages, and disadvantages.
Full Transcript
TEMA 1 INTRODUCCIÓN Los datos se almacenan en dispositivos, y el avance tecnológico han mejorado su tratamiento. Para que la información siga existiendo después de apagar un dispositivo o cerrar una aplicación, se utiliza la persistencia, que se logra almacenando datos en bases de datos o ar...
TEMA 1 INTRODUCCIÓN Los datos se almacenan en dispositivos, y el avance tecnológico han mejorado su tratamiento. Para que la información siga existiendo después de apagar un dispositivo o cerrar una aplicación, se utiliza la persistencia, que se logra almacenando datos en bases de datos o archivos. Un registro agrupa datos de distintos tipos, como la información de alumnos (nombre, curso, etc.). En programación orientada a objetos (POO), en lugar de registros y campos, se almacenan objetos con sus atributos, manteniendo así la persistencia de los datos. FICHEROS Un fichero es un conjunto de bits organizados en un dispositivo de almacenamiento, con un nombre y una extensión que indican su formato. Su función principal es mantener la información disponible de manera persistente, incluso al apagar el ordenador. Los ficheros se componen de líneas o registros, donde cada registro contiene campos de datos relacionados. Según el modo de acceso ➔ Acceso Secuencial: La información se almacena en secuencia (bytes o caracteres) y para acceder a un byte específico, se deben recorrer los anteriores. El procesamiento es registro a registro, en orden. ➔ Acceso Aleatorio (Directo): El fichero se divide en bloques o registros. Existe un método para acceder a un bloque específico sin recorrer los anteriores (como con arrays). Según el tipo de contenido ➔ Ficheros de caracteres (texto): Contienen solo caracteres. Se pueden visualizar con cualquier editor de texto del sistema operativo (ej. Notepad, vi). ➔ Ficheros binarios (bytes): Contienen bytes que representan información (imágenes, música). Solo pueden ser abiertos por aplicaciones específicas que comprendan la estructura de los bytes en el fichero. BASES DE DATOS BD: Conjunto de datos interrelacionados, almacenados sin redundancia innecesaria, que sirven a una o más aplicaciones y mantienen independencia entre datos y programas. ➔ Ventajas de las BD: - Independencia lógica y física de los datos. - Consistencia en los resultados. - Mejora la disponibilidad al centralizar la información. - Mayor eficiencia en la recolección y validación de datos. - Reducción del espacio de almacenamiento. ➔ Inconvenientes de las BD: - Costosa de instalar. - Requiere personal especializado. - Implantación larga y compleja. - Poca rentabilidad a corto plazo. - Falta de normas claras. Modelos de bases de datos Modelo Relacional: uno de los más usados y formado por entidades (tablas) y relaciones entre ellas. las filas son los registros, y las columnas son los atributos o campos. Modelo Jerárquico: las entidades (nodos) se organizan en una jerarquía y las relaciones tienen forma de árbol. Modelo de Red: Los nodos pueden tener relaciones entre sí sin seguir una jerarquía. Modelo Orientado a Objetos: organiza la BD como objetos, similar a la programación orientada a objetos. A menudo se combina con el modelo relacional (objeto-relacional). Modelo Documental: no estructura la información en registros y campos. También, suele manejar documentos con gran volumen de información, pertenece a las BD NoSQL. SISTEMAS GESTORES DE BASES DE DATOS ( S G B D / D B M S ) Sistema de Gestión de Bases de Datos (SGBD): conjunto de herramientas que facilitan la consulta, uso y actualización de una base de datos. Sus funciones principales son: gestión de usuarios y seguridad, interfaz gráfico, mantenimiento de la integridad y concurrencia de los accesos, uso de transacciones, mecanismos de copia de seguridad, conectividad con el exterior. Componentes de un SGBD: - Gestor de la BD: El software que administra la base de datos. - Diccionario de Datos: Información sobre los datos almacenados. - Usuarios: Roles y permisos. - Lenguajes de programación: Para crear y mantener la base de datos. Bases de Datos Centralizadas: - Toda la base de datos está almacenada en un único servidor o sistema. - Ofrece integridad, control de acceso y seguridad. - Desventajas: menos tolerante a fallos, menor rendimiento y escalabilidad limitada. Bases de Datos Distribuidas: - La base de datos se almacena y se accede desde varias ubicaciones (servidores, dispositivos). - Existen varias copias de los datos, que pueden sincronizarse o replicarse en la red. - Control distribuido sobre acceso, seguridad y administración. - Ventajas: mayor robustez, alta escalabilidad, menores costos operativos y mejor rendimiento. LA LOPD La Ley Orgánica de Protección de Datos Personales y garantía de los derechos digitales (LOPDGDD), reformada en 2018, regula el acceso y tratamiento de datos personales en España. La Agencia Española de Protección de Datos (AEPD) se encarga de asegurar el cumplimiento de esta ley, y su sitio web proporciona guías y normativas actualizadas. La ley es estricta, con sanciones significativas según el tipo de datos y las infracciones en su tratamiento. El consentimiento del usuario es siempre necesario. En 2020, se introdujo la Ley de Cookies europea, que regula cómo las empresas gestionan la información digital de los usuarios. Puntos importantes para los responsables de BD: 1. El diseñador/administrador de BD no es responsable directo del tratamiento de los datos. 2. Si se almacenan datos sensibles, deben asesorar al cliente y recomendar consultoría especializada. 3. Es recomendable colaborar en la creación de políticas de seguridad de la BD. BIG DATA Conjuntos de datos muy grandes y complejos, que provienen de diversas fuentes y no se pueden gestionar con las herramientas tradicionales. Se requiere software especializado para procesar estos datos de manera eficiente, lo que permite aprovecharlos en áreas empresariales y otros sectores para alcanzar objetivos que antes parecían imposibles. Las 3 V del Big Data: 1. Volumen: Procesa terabytes o petabytes de datos, que a menudo son no estructurados. 2. Velocidad: Los datos llegan a gran velocidad y muchos se procesan en tiempo real sin ser almacenados en disco. 3. Variedad: Los datos son diversos y no estructurados, lo que puede requerir preprocesamiento y metadatos para su interpretación. Otras "V" del Big Data: - Valor: Un dato no tiene valor hasta que se le descubre un uso. - Veracidad: La confianza en la precisión de los datos. - Variabilidad: Los datos pueden cambiar rápidamente. Aplicaciones del Big Data: - Desarrollo de productos: Ejemplo: Netflix, que utiliza datos para crear modelos predictivos y adaptarse a la demanda del cliente. - Mantenimiento predictivo: Ayuda a predecir fallos en sistemas mecánicos. - Experiencia del cliente: Mejora la relación con clientes mediante el análisis de redes sociales y visitas a webs. - Prevención del fraude: Identifica patrones que pueden indicar fraude. - Machine Learning (ML): Permite que las máquinas aprendan a partir de los datos. - Eficiencia operativa e innovación: Analiza datos para mejorar procesos y fomentar la innovación. Análisis de Datos (Data Analytics): Derivado de la Ciencia de Datos, su objetivo es transformar grandes volúmenes de datos en información útil para mejorar la toma de decisiones. Utiliza software que recoge, procesa y analiza datos, empleando herramientas estadísticas para que las empresas tomen decisiones más competitivas. TEMA 2 Modelo: Según la RAE, es un esquema teórico de un sistema o realidad compleja, elaborado para facilitar su comprensión o explicación. Tipos de Datos: Se refiere a la naturaleza del dato y cómo se representa: Datos numéricos: Enteros, reales, etc. Datos alfanuméricos: Cadenas, caracteres, fechas, etc. Entidad (registro): Representa un elemento del mundo real (ejemplo: un alumno). Atributos (campos): Propiedades que definen una entidad, es decir, los datos que se quieren almacenar sobre cada entidad (ejemplo: CIAL, nombre). Clave: Campo que permite identificar de manera única un registro. Tabla: Conjunto de registros relacionados con el mismo concepto (ejemplo: Alumnos del instituto). Relación: Parte clave del Modelo Entidad/Relación (E/R), permite establecer vínculos entre entidades para completar la información mediante datos de otras entidades. Lenguaje SQL: Lenguaje estándar para interactuar con SGBD, permite hacer consultas y gestionar bases de datos. Siguiendo el estándar ISO, es un lenguaje sencillo para realizar preguntas y gestionar datos en una base de datos. MODELADO DE DATOS Conceptual: Modelo que nos permite comunicarnos con un usuario que no sea experto en informática. Y tiene modelo Entidad/Relación (ER) Lógico: conceptos más técnicos, que permite traducir los conceptos a un modelo físico que entiende la BD. y tiene modelo relacional Físico: resultado de aplicar el modelo lógico a una BD concreta, por ej, mediante el lenguaje SQL DISEÑO LÓGICO El modelo Entidad/Relación (E/R), creado por Peter Chen en 1976, es una herramienta para representar conjuntos de datos del mundo real y sus relaciones mediante un esquema. En este modelo, las entidades se representan con rectángulos o cuadrados, y sus atributos pueden incluirse dentro o representarse como elipses. Las claves que identifican cada registro pueden variar en su representación, pudiendo llevar símbolos como @, # o estar subrayadas. Las claves son: - Clave primaria (PK): identifica unívocamente cada registro. - Clave foránea (FK): es un atributo en una entidad que actúa como PK en otra. - Clave candidata: es un campo que podría ser una PK. Las relaciones son fundamentales en el modelo E/R y pueden ser binarias, ternarias o de grado superior. El número de entidades conectadas por una relación determina su grado. Cada relación recibe un nombre en el Diagrama Entidad/Relación (DER). La cardinalidad de las entidades se refiere al número de entidades con las que se puede relacionar una entidad dada, y depende de las restricciones de la relación. Por ejemplo, en un escenario donde un libro es escrito por un único autor, un autor puede escribir uno o más libros, mientras que un libro solo puede ser escrito por un autor, resultando en posibles cardinalidades como (0,1), (1,1), (0,n), (1,n) o (n,m). Existen diferentes tipos de relaciones que describen cómo se conectan las entidades: 1:1 (uno a uno): Cada elemento de una entidad se relaciona con un único elemento de la otra entidad. Por ejemplo, un profesor dirige un departamento. 1:N (uno a muchos): Un elemento de una entidad puede relacionarse con múltiples elementos de otra entidad, pero no al revés. Por ejemplo, un profesor pertenece a un departamento, mientras que un departamento puede tener varios profesores. N:M (muchos a muchos): Un elemento de una entidad se relaciona con muchos elementos de otra entidad y viceversa. Por ejemplo, un profesor puede tener muchos alumnos, y cada alumno puede tener muchos profesores. La cardinalidad mínima define el número mínimo de elementos con los que puede relacionarse un elemento de una entidad, indicando si la relación es obligatoria (0 o 1). MODELO / EXTENDIDO ( E E R ) El modelo E/R extendido introduce tipos especiales de relaciones, que son de dos tipos: - Dependencia: Una entidad depende de otra para existir. - Herencia: Una entidad es un tipo especial de otra. Las entidades pueden clasificarse en fuertes y débiles. Las entidades débiles dependen de una entidad fuerte para su existencia y no tienen una clave primaria propia, lo que se representa con una línea doble. Estas entidades están sujetas a dos tipos de restricciones: - De Existencia: La entidad débil necesita la entidad fuerte para existir. - De Identidad: La entidad débil depende de la fuerte para identificar a sus miembros. El concepto de subentidad también se introduce en el EER, en línea con la programación orientada a objetos (POO) y el concepto de herencia. Esta relación se define como “ES UN” (IS-A) y permite agrupar entidades en una entidad principal (generalización) o dividir una general en subentidades más específicas (especialización). - Especialización: Se produce cuando la entidad principal se divide en subtipos basados en atributos diferenciadores, con cardinalidad (1,1) en el supertipo y (0,1) o (1,1) en los subtipos. Los subtipos heredan atributos del supertipo. - Generalización: Agrupa entidades como Docentes y No Docentes bajo una entidad común llamada Empleados, que contiene los atributos comunes como DNI, nombre y correo electrónico, logrando así una jerarquía de entidades. La generalización es un proceso que crea una entidad superior a partir de varias entidades con atributos comunes, utilizando una metodología de abajo hacia arriba (down-up). Esta entidad agrupa los atributos comunes, mientras que las subentidades contienen solo los atributos específicos. Se clasifica en: 1. Solapadas o inclusivas: Un ejemplar de la superentidad puede pertenecer a más de una subentidad (sin arco de exclusividad). 2. Exclusivas: Un ejemplar de la superentidad solo puede relacionarse con una subentidad (con arco de exclusividad). Además, puede ser total (todos los ejemplares se relacionan con una subentidad) o parcial (algunos ejemplares no se relacionan con ninguna subentidad). La agregación, por su parte, permite que dos entidades se relacionen entre sí para establecer una conexión con una tercera entidad de forma conjunta, creando así una entidad virtual que puede tener sus propios atributos y relacionarse con otras entidades. MODELO RELACIONAL El modelo relacional, propuesto por Codd, se utiliza para representar datos en forma de relaciones y tablas. Para transformar un modelo E/R en un modelo relacional, se siguen estos pasos: - Transformación de entidades: Cada entidad del modelo E/R se convierte en una relación (tabla). Para una entidad fuerte A con atributos a1, a2, etc., se crea una tabla A (con nombre en plural) con columnas correspondientes a los atributos, y la clave primaria está formada por los atributos clave de la entidad.Ejemplo: LIBROS (isbn, título, autor, páginas); AUTORES (código, nombre, mail) - Transformación de entidades débiles: Para cada entidad débil con atributos, se crea una tabla D con columnas que incluyen tanto los atributos de D como los atributos clave de la entidad fuerte F de la que depende. Si la entidad débil D solo tiene dependencia de existencia, su clave primaria será la unión de los atributos clave de D. Si además tiene una dependencia de identificación, la clave primaria será la unión de los atributos clave de D y F. Ejemplo: FACTURAS** (num_fac, fecha, cliente), LINEAS** (num_linea, num_fac, producto, cantidad) - Transformación de relaciones: Para relaciones 1:1, se selecciona una de las entidades y se le añade la clave primaria de la otra entidad como clave foránea. Ejemplo: PROFESORES (NRP, nombre, código); DEPARTAMENTOS (código, nombre) Restricciones de la transformación: No puede haber tuplas (filas) duplicadas (clave primaria), los atributos que forman parte de la clave primaria no pueden ser nulos (regla de integridad referencial). El orden de las tuplas o atributos no es significativo. Por último, cada atributo solo puede tomar un valor del dominio sobre el que está definido (un conjunto de valores homogéneos). Transformación de Relaciones N:M Para las relaciones de tipo N:M, se crea una tabla intermedia que contendrá las claves primarias de ambas entidades como columnas. La clave primaria de esta tabla intermedia estará compuesta por las claves primarias de ambas tablas originales. Ejemplo: ALUMNOS (CIAL, nombre); PROFESORES (NRP, nombre); ALUM_PROFE (CIAL, NRP) Transformación de Generalizaciones y Especializaciones En la transformación de generalizaciones y especializaciones, se pueden seguir diferentes enfoques, eligiendo el que mejor se adapte a cada situación: - Crear una tabla para la superclase y tablas para cada subclase, incluyendo la clave de la superclase en todas. Ejemplo: EMPLEADOS (DNI, nombre, mail); DOCENTES (DNI, NRP); NO_DOCENTES (DNI, puesto) - No crear una tabla para la superclase y crear una tabla para cada subclase con todos los atributos de la superclase. - subclase, añadiendo un atributo que identifique la subclase. Ejemplo: DOCENTES** (DNI, NRP, nombre, mail); NO_DOCENTES** (DNI, puesto, nombre, mail); EMPLEADOS** (DNI, nombre, mail, NRP, puesto, tipo) - Similar al anterior, pero con varios campos que identifican la tupla. Ejemplo: EMPLEADOS (DNI, nombre, mail, NRP, puesto, esDocente, esNoDocente) Transformación de Agregaciones La transformación de agregaciones es directa. Se crean tablas para las entidades involucradas en la agregación y se establece la relación con la nueva tabla que representa la agregación. Ejemplo: ALUMNOS (#CIAL, nombre); CENTROS (#codigoCe, nombre); CICLOS (#codigoCi, nombre); MATRICULAS (#CIAL, #codigoCe, #codigoCi, cursoescolar) NORMALIZACIÓN La normalización de bases de datos tiene como objetivo organizar los datos para evitar redundancias, lo que mejora la calidad de la manipulación de la base de datos. Este proceso simplifica y divide tablas grandes en varias más pequeñas, vinculándolas mediante relaciones. Originalmente, Codd propuso tres formas normales (1FN, 2FN y 3FN), y luego Boyce desarrolló la teoría de la normalización de Boyce-Codd (FNBC), junto con otras formas que no se tratarán aquí. Conceptos Clave - Dependencia funcional completa: Un atributo Y tiene dependencia funcional completa de un conjunto de atributos X (denotado como X => Y) si Y depende de X, pero no de ningún subconjunto de X. Ejemplo: En la tabla de COMPRAS (#CodProducto, #CodProveedor, Cantidad, FechaCompra), se puede expresar que `CodProducto, CodProveedor => FechaCompra`. - Dependencia funcional transitiva: En una tabla T con atributos (X, Y, Z), si X -> Y y Y -> Z, se dice que X depende transitivamente de Z (X -> Z). Ejemplo: En la tabla de PRODUCTOS** (#CodProducto, Nombre, Fabricante, País), se tiene que `CodProducto -> Fabricante` y `Fabricante -> País`, lo que implica que `CodProducto -> País`. Formas Normales Primera Forma Normal (1FN): La tabla no tiene atributos que puedan tomar más de un valor (no hay atributos multivaluados). Cada registro es único. Segunda Forma Normal (2FN): Está en 1FN. Cada atributo que no forma parte de la clave tiene dependencia completa de la clave principal. Esto significa que las tablas con claves simples siempre estarán en 2FN. Tercera Forma Normal (3FN): Está en 2FN. No hay ningún atributo no clave que dependa de forma transitiva de la clave. Forma Normal de Boyce-Codd (FNBC): Está en 1FN. Todos los determinantes son claves candidatas de la relación. Cada forma normal incluye las características de las anteriores, y generalmente se busca que las tablas estén al menos en 3FN para considerarlas bien formadas. Existe una excepción relativa a las dependencias funcionales, que se transfieren entre las formas. Un atributo puede depender funcionalmente de parte de la clave primaria, si este atributo es parte de una clave alternativa.