Lenguajes de bases de datos Bases de datos relacionales Diseño de bases de datos Modelos de datos Bases de datos interna Usuarios y administradores de bases de datos Estructura general Historia de los sistemas de base de datos
Conceptos de Sistemas de Bases de Datos 1.2
Sistema de administración de base de datos Database Management System (DBMS) DBMS contiene información sobre una empresa en particular Colección de datos interrelacionados Conjunto de programas para acceder a los datos Un entorno que es conveniente y eficiente de usar Aplicaciones de Bases de Datos: Banca: todas las transacciones Líneas aéreas: reservas, horarios. Universidades: matrícula, calificaciones. Ventas: clientes, productos, compras. Tiendas online: seguimiento de pedidos, recomendaciones personalizadas. Fabricación: producción, inventario, pedidos, cadena de suministro. Recursos humanos: registros de empleados, salarios, deducciones fiscales Las bases de datos tocan todos los aspectos de nuestras vidas. Conceptos de Sistemas de Bases de Datos 1.3 Propósito de los sistemas de bases de datos En los primeros días, las aplicaciones de base de datos se crearon directamente sobre los sistemas de archivos Inconvenientes de usar sistemas de archivos para almacenar datos: Redundancia e inconsistencia de datos Múltiples formatos de archivo, duplicación de información en diferentes archivos. Dificultad para acceder a los datos Necesidad de escribir un nuevo programa para realizar cada nueva tarea Aislamiento de datos - múltiples archivos y formatos Problemas de integridad Las restricciones de integridad (por ejemplo, el saldo de una cuenta> 0) se "entierran" en el código del programa en lugar de estar explícitamente Es difícil añadir nuevas restricciones o cambiar las existentes.
Conceptos de Sistemas de Bases de Datos 1.4
Propósito de los sistemas de bases de datos (Cont.) Inconvenientes de usar sistemas de archivos (cont.) Atomicidad de las actualizaciones Las fallas pueden dejar la base de datos en un estado incoherente con actualizaciones parciales realizadas Ejemplo: la transferencia de fondos de una cuenta a otra debe completarse o no suceder en absoluto Acceso concurrente por múltiples usuarios Se necesita acceso concurrente para el rendimiento. Los accesos concurrentes no controlados pueden llevar a inconsistencias – Ejemplo: dos personas leyendo un balance y actualizándolo al mismo tiempo Problemas de seguridad Es difícil proporcionar al usuario acceso a algunos datos, pero no a todos Los sistemas de bases de datos ofrecen soluciones a todos los problemas anteriores
Conceptos de Sistemas de Bases de Datos 1.5
Niveles de Abstracción Nivel físico: describe cómo se almacena un registro (por ejemplo, un cliente). Nivel lógico: describe los datos almacenados en la base de datos y las relaciones entre los datos. type cliente = record cliente_id : string; cliente_nombre : string; cliente_direccion: string; cliente_ciudad : string; end; Nivel de vistas: los programas de aplicación ocultan detalles de los tipos de datos. Las vistas también pueden ocultar información (como el salario de un empleado) por motivos de seguridad.
Conceptos de Sistemas de Bases de Datos 1.6
Vista de Datos
Una arquitectura para un sistema de base de datos.
Conceptos de Sistemas de Bases de Datos 1.7
Instancias y esquemas Similar a tipos y variables en lenguajes de programación Esquema – la estructura lógica de la base de datos Ejemplo: la base de datos consta de información sobre un conjunto de clientes y cuentas y la relación entre ellos) Análogo a escribir información de una variable en un programa Esquema físico: diseño de base de datos a nivel físico Esquema lógico: diseño de base de datos a nivel lógico Instancia el contenido real de la base de datos en un momento determinado en el tiempo Análogamente al valor de una variable Independencia física de datos – la capacidad de modificar el esquema físico sin cambiar el esquema lógico Las aplicaciones dependen del esquema lógico En general, las interfaces entre los distintos niveles y componentes deben estar bien definidas para que los cambios en algunas partes no influyan seriamente en otras.
Conceptos de Sistemas de Bases de Datos 1.8
Modelos de Datos Una colección de herramientas para describir Datos Relaciones de datos Semántica de datos Restricciones de datos Modelo relacional Modelo de datos Entidad-Relación (principalmente para el diseño de bases de datos) Modelos de datos basados en objetos (orientados a objetos) Modelo de datos semiestructurados (XML) Otros modelos más antiguos: Modelo de red Modelo jerárquico
Conceptos de Sistemas de Bases de Datos 1.9
Lenguaje de Manipulación de Datos Data Manipulation Language (DML) Lenguaje para acceder y manipular los datos organizados por el modelo de datos apropiado DML también conocido como lenguaje de consulta Dos clases de lenguajes Procedimental: el usuario especifica qué datos se requieren y cómo obtenerlos. Declarativo (no procedimental): el usuario especifica qué datos se requieren sin especificar cómo obtener esos datos SQL es el lenguaje de consulta más utilizado.
Conceptos de Sistemas de Bases de Datos 1.10
Lenguaje de Definición de Datos Data Definition Language (DDL) Notación de especificación para definir el esquema de base de datos Ejemplo: create table account ( account_number char(10), branch_name char(10), balance integer) El compilador DDL genera un conjunto de tablas almacenadas en un diccionario de datos El diccionario de datos contiene metadatos (es decir, datos sobre datos) Esquema de base de datos Lenguaje de almacenamiento y definición de datos. Especifica la estructura de almacenamiento y los métodos de acceso utilizados Restricciones de integridad Restricciones de dominio Integridad referencial (por ejemplo, nombre_rama debe corresponder a una rama válida en la tabla de sucursales)) Autorización Conceptos de Sistemas de Bases de Datos 1.11 Modelo Relacional Atributos Ejemplo de datos tabular en el modelo relacional
Conceptos de Sistemas de Bases de Datos 1.12
Ejemplo de una Base de Datos Relacional
Conceptos de Sistemas de Bases de Datos 1.13
SQL
SQL: lenguaje no procedural ampliamente utilizado
Ejemplo: busque el nombre del cliente con id-cliente 192-83-7465 select customer.customer_name from customer where customer.customer_id = ‘192-83-7465’ Example: busque los saldos de todas las cuentas mantenidas por el cliente con el ID de cliente 192-83-7465 select account.balance from depositor, account where depositor.customer_id = ‘192-83-7465’ and depositor.account_number = account.account_number Los programas de aplicación generalmente acceden a las bases de datos a través de Extensiones de lenguaje para permitir SQL embebido Interfaz de programación de aplicaciones (por ejemplo, ODBC / JDBC) que permite enviar consultas SQL a una base de datos
Conceptos de Sistemas de Bases de Datos 1.14
Diseño de Base de Datos El proceso de diseño de la estructura general de la base de datos:
Diseño lógico - Decidir sobre el esquema de la base de datos. El diseño
de la base de datos requiere que encontremos una "buena" colección de esquemas de relaciones. Decisión empresarial: ¿qué atributos deberíamos registrar en la base de datos? Decisión de informática: ¿qué esquemas de relación debemos tener y cómo deben distribuirse los atributos entre los diversos esquemas de relación?
Diseño físico - Decidir sobre el diseño físico de la base de datos
Conceptos de Sistemas de Bases de Datos 1.15
El Modelo Entidad-Relación Modela una empresa como un conjunto de entidades y relaciones Entidad: una "cosa" u "objeto" en la empresa que se distingue de otros objetos Descrito por un conjunto de atributos Relación: una asociación entre varias entidades Representado esquemáticamente por un diagrama entidad-relación:
Conceptos de Sistemas de Bases de Datos 1.16
Otros modelos de datos Modelo de datos orientado a objetos Modelo de datos relacional - Objeto
Conceptos de Sistemas de Bases de Datos 1.17
Arquitecturas de aplicaciones de bases de datos
(web browser)
OAntigua Moderna
Conceptos de Sistemas de Bases de Datos 1.18
Sistema interno de gestión de bases de datos Administración de almacenamiento Procesamiento de consultas Procesamiento de transacciones
Conceptos de Sistemas de Bases de Datos 1.19
Administración de almacenamiento El administrador de almacenamiento es un módulo de programa que proporciona la interfaz entre los datos de bajo nivel almacenados en la base de datos y los programas de aplicación y las consultas enviadas al sistema. El administrador de almacenamiento es responsable de las siguientes tareas: Interacción con el administrador de archivos. Almacenamiento eficiente, recuperación y actualización de datos. Cuestiones: Acceso de almacenamiento Organización de archivos Indexación y hash
Conceptos de Sistemas de Bases de Datos 1.20
Procesamiento de consultas
1. Interpretación y traducción. 2. Optimización 3. Evaluación
Conceptos de Sistemas de Bases de Datos 1.21
Procesamiento de consultas (Cont.) Alternative ways of evaluating a given query Equivalent expressions Different algorithms for each operation Cost difference between a good and a bad way of evaluating a query can be enormous Need to estimate the cost of operations Depends critically on statistical information about relations which the database must maintain Need to estimate statistics for intermediate results to compute cost of complex expressions
Conceptos de Sistemas de Bases de Datos 1.22
Gestión de transacciones Una transacción es una colección de operaciones que realiza una única función lógica en una aplicación de base de datos El componente de gestión de transacciones garantiza que la base de datos permanezca en un estado coherente (correcto) a pesar de las fallas del sistema (por ejemplo, fallas de energía y fallas del sistema operativo) y fallas de transacciones. El administrador de control de concurrencia controla la interacción entre las transacciones concurrentes, para garantizar la consistencia de la base de datos.
Conceptos de Sistemas de Bases de Datos 1.23
Estructura general del sistema
Conceptos de Sistemas de Bases de Datos 1.24
Historia de los sistemas de base de datos 1950s and early 1960s: Data processing using magnetic tapes for storage Tapes provide only sequential access Punched cards for input Late 1960s and 1970s: Hard disks allow direct access to data Network and hierarchical data models in widespread use Ted Codd defines the relational data model Would win the ACM Turing Award for this work IBM Research begins System R prototype UC Berkeley begins Ingres prototype High-performance (for the era) transaction processing
Conceptos de Sistemas de Bases de Datos 1.25
Historia (cont.) 1980s: Research relational prototypes evolve into commercial systems SQL becomes industry standard Parallel and distributed database systems Object-oriented database systems 1990s: Large decision support and data-mining applications Large multi-terabyte data warehouses Emergence of Web commerce 2000s: XML and XQuery standards Automated database administration Increasing use of highly parallel database systems Web-scale distributed data storage systems 2010s Big Data Bases de datos no relacionales Conceptos de Sistemas de Bases de Datos 1.26 FIN Usuarios de Bases de Datos Users are differentiated by the way they expect to interact with the system Application programmers – interact with system through DML calls Sophisticated users – form requests in a database query language Specialized users – write specialized database applications that do not fit into the traditional data processing framework Naïve users – invoke one of the permanent application programs that have been written previously Examples, people accessing database over the web, bank tellers, clerical staff
Conceptos de Sistemas de Bases de Datos 1.28
Administrador de Base de Datos Coordinates all the activities of the database system has a good understanding of the enterprise’s information resources and needs. Database administrator's duties include: Storage structure and access method definition Schema and physical organization modification Granting users authority to access the database Backing up data Monitoring performance and responding to changes Database tuning
Conceptos de Sistemas de Bases de Datos 1.29
Arquitectura de Base de Datos
The architecture of a database systems is greatly influenced by
the underlying computer system on which the database is running: Centralized Client-server Parallel (multiple processors and disks) Distributed
Conceptos de Sistemas de Bases de Datos 1.30
Modelo de Datos Objeto-Relacional Extend the relational data model by including object orientation and constructs to deal with added data types. Allow attributes of tuples to have complex types, including non-atomic values such as nested relations. Preserve relational foundations, in particular the declarative access to data, while extending modeling power. Provide upward compatibility with existing relational languages.
Conceptos de Sistemas de Bases de Datos 1.31
XML: Extensible Markup Language Defined by the WWW Consortium (W3C) Originally intended as a document markup language not a database language The ability to specify new tags, and to create nested tag structures made XML a great way to exchange data, not just documents XML has become the basis for all new generation data interchange formats. A wide variety of tools is available for parsing, browsing and querying XML documents/data