Depto. de Informática y Computación BASES DE DATOS Unidad N° 1 Introducción a los Sistemas de Gestión de Bases de Datos Docente: Orlando Cavieres P. [email protected] [email protected] Sem. Primavera 2024 En Ingeniería: ENTRADA PROCESO SALIDA PROCESO INFORMACIÓN En Informática: DATOS ¿Qué es Información? ………… Y… ¿Qué es Dato? ….Dato ABSTRACTO Sistemas de Información ➔ Software, Conjunto de Programas. Programa ➔ Conjunto de Instrucciones en algún lenguaje computacional. Programas “editables” desde almacenamiento y “ejecutables” desde el procesador del computador. Lenguaje Computacional: Interfaz Hombre/Máquina Necesitan ejecutarse ➔ Entregan Información dirigida para la Toma de Decisiones. O Sistemas de Información ➔ Entregan Información dirigida para la Toma de Decisiones por niveles: Estratégico Táctico Operacional Largo Plazo [años] Mediano Plazo [meses] Corto Plazo [días] Para poder entregar información, se requieren 3 componentes: Hardware, Software y Comunicaciones Computadora – Instrucciones – medios de transmisión CPU ALU RAM ROM BIOS Dispositivos de Input/Output Almacenamiento (Memorias ) Sistemas de Información S.I. de S.I. de Finanzas Personal --- S.I. de Ventas ARCHIVOS Personal Clientes Caja Personal Turnos Asistencia Otros Clientes Personal Vendedores Productos Otros Otros Problemas: Redundancia e inconsistencia, Accesibilidad, Aislamiento, Integridad, Acceso Concurrente, Seguridad…… Por ejemplo, suponga que usted tiene datos de empleados: cédula, nombre, dirección, teléfono y de proyectos: nombre, valor, fecha de inicio. Además, un empleado puede estar asignado a varios proyectos y en un proyecto pueden trabajar varios empleados. ¿Cómo guardaría usted estos datos? ¿En varios archivos? ¿En uno solo? En clase se discuten algunos aspectos sobre este ejemplo. Note que un diseño físico (distribución de los datos en uno o varios archivos) será posiblemente beneficioso para ciertas aplicaciones (por ejemplo, para ciertas consultas) y será posiblemente desventajoso para otras… Sistemas de BD: – Surgieron para solucionar los problemas de los sistemas de archivos – Capacidades: • Manejo de persistencia • Soporte por lo menos de un modelo de datos • Soporte de un lenguaje de alto nivel que permita manipular y definir la estructura de los datos en forma eficiente → SQL Definir usuarios, roles, permisos… • Control de acceso → Seguridad • Evitar inconsistencias al compartir los datos Un Sistema de Bases de Datos es un conjunto de datos, interrelacionados, y un conjunto de programas que permiten a los usuarios tener acceso a esos datos y modificarlos. Este sistema permite a los usuarios tener una visión mucho más sencilla de la complejidad que significa almacenar y mantener los datos. Para ello los sistemas de bases de datos ocultan la complejidad a los usuarios mediante niveles de abstracción para simplificar la interacción de los usuarios con el sistema. Definiciones O Base de Datos (BD): Conjunto de datos (con su respectivo esquema) almacenados en algún medio (por ej. un disco) y usados con diversos propósitos por múltiples usuarios O Esquema de la BD: Describe la estructura de los datos requeridos por la organización. Esta estructura suele permanecer estática durante un gran período O Instancia de la BD: Son los datos que en un determinado instante posee la BD. Estos datos suelen cambiar (ingresos, borrados, actualizaciones) constantemente Definiciones O Usuario final: El que interactúa con la BD, usualmente a través de aplicaciones e interfaces O Usuario especialista: El que diseña y programa aplicaciones para los usuarios finales O DBA (DataBase Administrator): El que administra la BD → ¿Funciones? En una base de datos se definen tres niveles de abstracción: Nivel Físico, Nivel Lógico y Nivel de Vistas al usuario O Nivel Físico: Nivel más bajo de abstracción, describe cómo se almacenan realmente los datos, describe en detalles las estructuras de datos complejas de bajo nivel. O Nivel Lógico: Describe qué datos se almacenan en la BdD y qué relaciones existen entre ellos. Describe toda la BdD en términos de un número pequeño de estructuras relativamente simples. Este nivel está dirigido a los Administradores de BdD. O Nivel de Vistas: Describe sólo una parte de la BdD, orientado a los usuarios de BdD que no necesariamente tengan conocimientos de informática. Los usuarios, en general, no necesitan toda la información que puede entregar la BdD, sólo necesitan tener acceso a una parte de la BdD. El Sistema puede proporcionar muchas vistas para la misma BdD. Sistema de Gestión de Bases de Datos *DBMS: Data Base Management System Sistema computarizado que permite la gestión de las BD O Es un conjunto de programas O Sirve de interfaz entre los usuarios, los datos y programas de la BD O Interactúa con el sistema operativo O Ejemplos: Oracle, SQL Server, DB2, PostgreSQL. SGBD O Soporta DDL (Data Definition Language): Lenguaje para la creación del esquema. Ej.: Create Clientes O Soporta DML (Data Manipulation Language): Lenguaje para la inserción, actualización, borrado y consulta de datos Ej.: Select * from Clientes O Soporta DCL (Data Control Language): Lenguaje para la gestión de usuarios, roles, permisos, entre otros. SGBD O Gestión de transacciones: una transacción es una unidad de trabajo que suele incluir varias operaciones sobre la BD (consultas, actualizaciones, borrados, …) O Recuperación ante fallas y para deshacer (rollback) transacciones: Bitácora (log de transacciones) O Manejo de respaldos (backups) O Independencia de los datos (se explica posteriormente) O Otros servicios SGBD Un SGBD debe garantizar las propiedades ACID para las transacciones: – Atomicity (Atomicidad) – Consistency (Consistencia) – Isolation (Aislamiento) – Durability (Durabilidad) SGBD Propiedades ACID • Atomicidad: Todos los cambios en los datos se realizan como si fueran una sola operación. Es decir, se realizan todos los cambios, o ninguno. • Consistencia: Los datos permanecen en un estado consistente de un estado a otro, lo que refuerza la integridad de los datos. • Aislamiento: El estado intermedio de una transacción no es visible para otras transacciones y, como resultado, las transacciones que se ejecutan simultáneamente parecen estar serializadas. • Durabilidad: Después de completar con éxito una transacción, los cambios en los datos persisten y no se deshacen, incluso en caso de falla del sistema. SGBD La BD en estado consistente Inicio de una transacción La BD podría estar en un estado inconsistente durante la ejecución de la transacción Ejecución de la transacción La BD en estado consistente Fin de la transacción: Commit o Rollback SGBD O Bloqueos: compartido (s) y exclusivo (x). Matriz de bloqueos Transacción 1 tiene: Transacción 2 solicita: x s x No No s No Sí Cuando una transacción termina (ya sea con commit o rollback) se liberan sus bloqueos 20 Permisos sobre el esquema Compilador DCL Consultas y/o programas de usuario Esquema de la BD Compilador DML y optimizador Compilador DDL Arquitectura de un SGBD Tablas de autorización (DD) Tablas de acceso concurrente (DD) Manejador de transacciones Tablas de descripción de la B.D (DD) Manejador de almacenamiento DD = Diccionario de Datos Base de Datos física y DD 21 O Diccionario de Datos (DD): Contiene datos sobre el esquema de la BD, los usuarios, los permisos de acceso, etc. Almacena los datos que permiten la traducción entre los tres niveles* de la arquitectura ANSI-SPARC (American National Standards Institute, Standards Planning And Requirements Committee). Es un catálogo autodescriptivo, datos sobre los objetos existentes en el sistema → Datos sobre los datos (Metadatos). O Optimizador de consultas: Define el plan de ejecución de las operaciones solicitadas por los usuarios, de tal manera que se ejecuten de manera eficiente. O Manejador de transacciones: concurrencia de operaciones. Controla el acceso y la Ventajas de un SGBD O Reuso de datos y programas O Control de redundancia O Estandarización ¿en qué sentido? O Concurrencia O Es posible equilibrar las cargas de los requisitos (establecer prioridades) Ventajas de un SGBD O Integridad (Se cumplen las reglas establecidas → ¿Qué tipo de reglas?¿Establecidas por quién?) O Seguridad O Rapidez de desarrollo O Mantenimiento y reingeniería: cambios en en el esquema sin cambiar los programas que los usan (hasta cierto punto) Desventajas de un SGBD O Tamaño O Susceptibilidad a fallas (Discutible) O Complejidad en la recuperación a fallas (Discutible) O Lentitud debido a la cantidad de verificaciones que debe hacer BD especializadas BD para la toma de decisiones (Data Warehouse). BD distribuidas, paralelas, blockchain. BD deductivas, temporales, multimediales (imágenes, audio, videos) → consultas sobre estos tipos de datos. BD orientadas a dispositivos móviles. BD geográficas: Sistemas de Información Geográficos (SIG), trayectorias. BD nativas para XML, JSON. Big Data: BD NoSQL (Not only SQL) → No necesariamente garantizan ACID. Tipos de Bases de Datos Bases de Datos Estáticas, Bases de Datos Dinámicas Diferencia entre base de datos estáticas y dinámicas. La principal diferencia entre ambas es que, mientras las bases de datos estáticas son de solo lectura y no permite modificar o añadir datos, las bases de datos dinámicas son mucho más flexibles y sí permiten editar, actualizar o borrar datos. Bases de Datos Relacionales Una base de datos relacional es un conjunto de una o más tablas estructuradas en registros (líneas) y campos (columnas), que se vinculan entre sí por un campo en común, en ambos casos posee las mismas características como por ejemplo el nombre de campo, tipo y longitud; a este campo generalmente se le denomina ID, identificador o clave. A esta manera de construir bases de datos se le denomina modelo relacional. Las bases de datos relacionales pasan por un proceso al que se le conoce como normalización de una base de datos, el cual es entendido como el proceso necesario para que una base de datos sea utilizada de manera óptima. Existen básicamente tres niveles de normalización: Primera Forma Normal (1NF), Segunda Forma Normal (2NF) y Tercera Forma Normal (3NF). Cada una de estas formas tiene sus propias reglas. Cuando una base de datos se conforma a un nivel, se considera normalizada a esa forma de normalización. Los analistas utilizan consultas SQL para combinar diferentes puntos de datos y resumir el rendimiento empresarial, lo que permite a las organizaciones obtener insights (perspectivas), optimizar los flujos de trabajo e identificar nuevas oportunidades. Por ejemplo, imagine que su empresa mantiene una tabla de base de datos con información de clientes, que contiene datos de la empresa a nivel de cuenta. También puede haber una tabla diferente, que describe todas las transacciones individuales que se alinean con esa cuenta. Juntas, estas tablas pueden proporcionar información acerca de las diferentes industrias que compran un producto de software específico. Las columnas (o campos) de la tabla de clientes pueden ser ID de cliente, Nombre de la empresa, Dirección de la empresa, Industria, etc. Las columnas de una tabla de transacciones pueden ser Fecha de transacción, ID de cliente, Cantidad de la transacción, Método de pago, etc. Las tablas se pueden unir con el campo ID de cliente común. Por lo tanto, puede consultar la tabla para producir informes valiosos, como informes de ventas por industria o empresa, que pueden informar mensajes a clientes potenciales. Otras Base de Datos. (Orientadas a Objetos…Documentales…) Con la proliferación de la nube y el análisis de Big Data, la base de datos orientada a objetos está ahora bien posicionada para dirigirse a estas necesidades. La industria del software se caracteriza por sufrir constantemente rápidos cambios, donde nuevas tecnologías se introducen cada poco tiempo. También se caracteriza por las tecnologías que cambian y se presentan como una nueva forma de hacer las cosas. Este es el caso de una base de datos orientada a objetos. Bibliografía - Silberschatz/Korth/Sudarshan. “Fundamentos de Bases de Datos”. 5ta. Edición. 2006 - Introducción a los Sistemas de Bases de Datos. Francisco Moreno. Universidad Nacional. Medellín. https://www.medellin.unal.edu.co/~fjmoreno/bd1/Pres02BDI.ppt - https://www.ibm.com/mx-es/topics/relational-databases