260 likes | 557 Views
Introducción. Informática Aplicada. Contenido. Propósitos de las bases de datos Punto de vista de los datos Lenguajes de base de datos Bases de datos relacionales Diseño de bases de datos Bases de datos orientadas a objetos y semisetructuradas Consultas y almacenamiento de datos
E N D
Introducción Informática Aplicada
Contenido • Propósitos de las bases de datos • Punto de vista de los datos • Lenguajes de base de datos • Bases de datos relacionales • Diseño de bases de datos • Bases de datos orientadas a objetos y semisetructuradas • Consultas y almacenamiento de datos • Control de Transacciones • Arquiectura de bases de datos • Usuarios y administradores de bases de datos • Estructura general • Historia de sistemas de bases de datos
Sistemas de administración de bases de datos • Un sistema de base de datos contiene información de una empresa • Colección de datos interrelacionados • Conjunto de programas para manejar los datos • Un ambiente que sea conveniente y eficiente de usar • Aplicaciones • Bancarias: todas las transacciones • Aerolíneas: reservaciones, intinerarios • Universidades: inscripciones, calificaciones • Ventas: clientes, productos, facturas • Manufactura: producción, inventario, ordenes, cadena de suministros • Recursos Humanos: registros de empleados, salarios, impuestos • Las bases de datos se aplican en todos los aspectos de la vida
Propósito de los sistemas de base datos • Al principio, las aplicaciones se construían directamente sobre el sistema de archivos. • Desventajas • Redundancia en los datos e inconsistencia • Múltiples formatos de archivo, duplicado de la información en diferentes archivos • Dificultad en el acceso a los datos • Necesidad de escribir nuevos programas para cada nueva aplicación • Aislamiento de los datos - múltiples archivos y formatos • Problemas de integridad • Restricciones de integridad (p.ej. balance>0) se inserta en el código del programa en lugar de hacerlo explícitamente • Difícil agregar nuevas restricciones o cambiar las actuales
Propósito de los sistemas de base datos (cont.) • Desventajas (cont) • Atomicidad de las actualizaciones • Las fallas pueden dejar la base de datos en un estado inconsistente con actualizaciones parciales • Ejemplo: transferencia de fondos de una cuenta a otra debe completarse o no ocurrir • Acceso concurrente por múltiples usuarios • Acceso concurrente necesario por eficiencia • Acceso concurrente sin control puede crea inconsistencias • Ejemplo: dos usuarios leyendo un saldo y actualizándolo al mismo tiempo • Problemas de seguridad • Difícil proveer a usuarios acceso a todos, pero no todos los datos • Los sistemas de bases de datos proveen soluciones para todos estos problemas
Niveles de abstracción • Nivel físico: describe como se almacenan los registros • Nivel Lógico: describe los datos guardados en la base de datos y la relación entre los datos • type custumer = record • customer_id:string; • customer_name:string; • customer_street:string; • customer_city:string; • end; • Nivel de vista: los programas de aplicación ocultan detalles de los tipos de datos. Las vistas también ocultan información (tal como el salario de un empleado) con propósitos de seguridad.
Punto de vista de los datos Arquitectura de un sistema de bases de datos Nivel de vista Vista 1 Vista 2 Vista N Nivel lógico Nivel físico
Instancias y esquemas • Análogo a tipos y variables en lenguajes de programación • Esquema - La estructura lógica de la base de datos • ejemplo: La base de datos consiste de información acerca de un conjunto de clientes y cuentas y la relación entre ellos. • Análogo a los tipos de información de una variable en un programa • Esquema físico: diseño de la base de datos en el nivel físico • Esquema lógico: diseño de la base de datos en el nivel lógico • Instancia - el contenido actual de la base de datos en un punto particular del tiempo. • Análogo al valor de una variable • Independencia física de los datos - habilidad para modificar el esquema físico sin cambiar el esquema lógico • Las aplicaciones dependen del esquema lógico • En general, la interfase entre varios niveles y componentes deberá estar bien definida para que los cambios en alguna parte no influye seriamente en otras.
Modelo de los datos • Un conjunto de Herramientas para describir • Datos • Relaciones entre datos • Semántica de los datos • Restricciones de los datos • Modelo relacional • Modelo Entidad-Relación (principalmente para diseño) • Modelos basados en objetos (Orientados a objetos y Objeto-relacionales) • Modelo Semi-estructurados (XML) • Otros modelos antiguos: • Modelo de red • Modelo jerárquico
El modelo relacional • Ejemplo de una tabla de datos en el modelo relacional Atributos
Lenguaje de definición de datos (DDL) • Notación de especificación pra definir esquemas de base de datos • Ejemplo create table account ( • account-number char(10), • balance integer); • El compilador DDL genera un conjunto de tablas almacenadas en un diccionario de datos • El diccionario de datos contiene metadatos (i.e., datos acerca de los datos) • Esquema de base de datos • Almacenamiento de datos y lenguaje de definición • Especifica la estructura del almacenamiento y los métodos de acceso usados • Restricciones de integridad • Restricciones de dominio • Integridad referencial (restricciones de referencia en SQL) • Asertos • Autorización
Lenguaje de manipulación de datos (DML) • Lenguaje para acceder y manipular los datos organizados por un modelo apropiado de datos • El DML es conocido como lenguaje de consulta • Dos clases de lenguajes • Procedural - el usuario especifica que datos son requeridos y como obtener esos datos. • Declarativo (no procedural) - el usuario especifica que datos son requeridos sin especificar como obtener esos datos. • SQL es el lenguaje más utilizado como lenguaje de consulta.
SQL • SQL: lenguaje no procedural más utilizado • Ejemplo: Encontrar el nombre del cliente con clave 192-83-7465select customer.customer_namefrom customerwherecustomer.customer_id = ‘192-83-7465’ • Example: Encontrar los saldos de todas las cuentas de un cliente con clave 192-83-7465selectaccount.balancefromdepositor, accountwheredepositor.customer_id = ‘192-83-7465’ anddepositor.account_number = account.account_number • Los programas de aplicación generalmente acceden a las bases de datos a través de extensiones del lenguaje para permitir SQL embebido • Las interfases de los programas de aplicación (p.e., ODBC/JDBC) las cuales permiten que consultas SQL sen enviadas la base de datos
Diseño de bases de datos • El proceso de diseño de la estructura general de bases de datos: • Diseño Lógico – Desición del esquema de la base de datos. El diseño de la base de datos requiere encontrar una colección “buena” de esquemas de relación. • Decisión de negocios – Cuáles atributos guardaremos en la base de datos? • Decisión de Ciencias de la computación – Que esquemas de relación tendremos y como se distribuirán a lo largo de los esquemas de relación? • Diseño físico – Decidiendo sobre plano físico de la base de datos
Modelo entidad-relación • Modela una empresa como una colección de entidades y relaciones • Entidad: una “cosa” u “objeto” en una empresa que es distinguible de otros objetos. • Descrito por un conjunto de atributos. • Relación: una relación entre varias entidades. • Representado gráficamente mediante un diagrama entidad-relación
Modelo de datos objeto-relacional • Extiende el modelo de datos relacional incluyendo orientación a objetos y constructores para trabajar con tipos de datos agregados. • Permite atributos de tuplas que tengan tipos complejos, incluyendo valores no atómicos tal como relaciones anidadas. • Retiene los fundamentos relacionales, en particular el acceso declarativo de datos, mientras extiende la potencia del modelado. • Provee compatibilidad hacia arriba con los lenguajes relacionales existentes.
XML: Extensible Markup Language • Lenguaje de Marcado Extensible • Definido por el consorcio WWW (W3C) • Originalmente definido como un lenguaje de marcado de documentos no como un lenguaje de base de datos. • Habilidad para especificar nuevos objetivos (tags), y crear estructuras objetivos anidados hacen de XML una forma conveniente • para intercambiar datos, no solo documentos. • XML ha llegado a ser la base para una nueva generación de formatos de intercambio de datos. • Una variedad amplia de herramientas están disponibles para reconocimiento, espulgado y consulta de documentos/datos.
Manejador de almacenamiento • El manejador del almacenamiento es un módulo de programa que provee la interfase entre el almacenamiento de datos de bajo nivel en la base de datos y los programas de aplicación y las consultas enviadas al sistema. • El manejador del almacenamiento es responsable de las siguientes tareas: • Interacción con el manejador de archivos • El eficiente almacenamiento y recuperación y actualización de datos • Provee: • Acceso al almacenamiento • Organización de archivos • Indexado y hashing
Procesamiento de consultas 1. Análisis y traducción 2. Optimización 3. Evaluación Expresión de Álgebra relacional Analizador y traductor Consulta Optimizador Máquina de evaluación Salida de la consulta Plan de ejecusión Estadísticas de los datos Datos
Procesamiento de consultas (cont.) • Formas alternativas de evaluar una consulta dadas • Expresiones equivalentes • Diferentes algoritmos para cada operación • Las diferencias en costo entre una forma buena y mala de evaluar una consulta puede ser enorme • Necesidad de estimar el costo de las operaciones • Depende críticamente de información estadística acerca de las relaciones la cual la base de datos debe mantener • Necesidad de estimar estadísticas para resultados intermedios para computar el costo de expresiones complejas
Manejador de transacciones • Una transacción es una colección de operaciones que lleva a cabo una función lógica única en una aplicación de base de datos • La componente de manejador de transacciones asegura que la base de datos permanezca en un estado consistente (correcto) sin importar las fallas (p.ej. Fallas de potencia, caídas del sistema operativo) y fallas en las transacciones. • Manejador de control de concurrencia controla la interacción entre las transacciones concurrentes, para asegurar la consistencia de la base de datos.
Arquitecturas de bases de datos La arquitectura de las bases de datos esté muy influenciada por el sistema de cómputo en los que la base de datos se ejecuta: • Centralizado • Cliente-servidor • Paralelo (multi-procesador) • Distribuida
Usuarios de bases de datos Los Usuarios son diferenciados por la manera en que se espera que interactúen con el sistema • Programadores de aplicación – interactúan con el sistema a través de llamadas DML • Usuarios Sofisticados – formulas preguntas en la base de datos en un lenguaje de consultas de base de datos • Usuarios especializados – escriben aplicaciones de bases de datos que no se ajustan a la organización del procesamiento de datos tradicional • Usuarios novatos – ejecutan uno de los programas permanentes de aplicación que han sido escritos previamente • Ejemplos, gente que acceda la base de datos por la web, cajeros automáticos, personal de oficina
Administrador de base de datos • Coordina todas las actividades en el sistema de base de datos; el administrador tiene un buen conocimiento de los recursos de la empresa y sus necesidades. • Los deberes del administrador se incluye: • Definición del esquema • Estructura del almacenamiento y definición del método de acceso • Modificación del esquema y organización física • Otorga autoridad a los usuarios de la base de datos • Especifica restricciones de integridad • Actúa como coordinador de usuarios • Monitorea comportamiento y responde a cambios en los requerimientos
Estructura completa del sistema Administrador de Base de datos Usuarios novatos (cajeros, agentes, Usuarios web) Usuarios sofisticados Programadores de aplicaciones Usa Escribe Usa Usa Interfase De aplicación Herramientas De consulta Herramientas de administración Programas De aplicación Consultas DML Interprete DDL Compilador y ligador Código objeto De programas De aplicación Compilador DML Y organizador Máquina evaluadora De consultas Procesador de consultas Manejador de Autorización e integridad Manejador de transacciones Manejador de archivo Manejador de buffer Manejador de almacenamiento Diccionario de datos Índices Disco Datos Datos estadísticos