Introducción a base de datos Capitulo 1: Introducción Propósito de un sistema de base de datos Visión de los datos Lenguajes de base de datos Base de datos relacionales Diseño de base de datos Base de datos basada en objetos y semiestructuradas Almacenamiento de datos y consultas Gestión de transacciones Arquitectura de bases de datos Administradores y usuarios de base de datos Database Management System (DBMS) DBMS contiene información sobre una empresa determinada Colecciones de datos relacionados entre sí Conjunto de programas para acceder a los datos La finalidad es poseer un ambiente para almacenar y recuperar la información de forma practica y eficiente. Aplicaciones de Base de datos Bancos: todas las transacciones Compañías aéreas: reservas, horarios Universidades: inscripción, cursos Ventas: clientes, productos, las compras Comercio en línea: seguimiento de pedidos, recomendaciones personalizadas Producción: La producción, inventarios, pedidos, cadena de suministro Recursos humanos: los registros de empleados, salarios, deducciones de impuestos Las bases de datos son parte esencial de casi todas las empresas Propósito de los sistemas de base de datos Inicialmente, las aplicaciones de base de datos se construyeron sobre los sistemas de archivos del sistema operativo Inconvenientes de la utilización de sistemas de archivos para almacenar datos: Redundancia e inconsistencia de los datos Múltiples formatos de archivos, duplicidad de la información en diferentes archivos. Dificultad en el acceso a los datos Necesidad de escribir un nuevo programa para llevar a cabo una nueva tarea. Aislamiento de datos – múltiples archivos y formatos Problemas de integridad Restricciones de integridad (Ejm. Saldo > 0), el programador escribe código en la aplicación para hacer cumplir esta restricción. Cuando se añaden nuevas restricciones es difícil cambiar los programas. Propósito de los sistemas de base de datos (Cont.) Inconvenientes de la utilización de sistemas de archivos para almacenar datos:(cont.) Problemas de atomicidad Las fallas pueden dejar en un estado de inconsistencia a la base de datos. Ejemplo: Transferencia de fondos de una cuenta a otra debe ser atómica - debe ocurrir en su totalidad o no ocurrir en absoluto. Anomalías en el acceso concurrente El Acceso concurrente es necesario para un buen desempeño No controlar el acceso concurrente podría provocar inconsistencia de la base de datos – Ejemplo: Dos personas leen y actualización el saldo de una cuenta, al mismo tiempo Problemas de seguridad No todos los usuarios de un sistema de base de datos deben poder acceder a todos los datos Los Sistemas de Bases de datos ofrecen soluciones a todos los problemas anteriormente mencionados Niveles de abstracción de datos Nivel físico: describe cómo se almacenan realmente los datos. Describe la estructura de datos compleja de bajo nivel. Nivel lógico: describe qué datos se almacenan en la base de datos y que relación existe entre estos datos. Se utiliza estructuras simples para describir la base de datos completa. Los administradores de base de datos, utilizan este nivel de abstracción para decidir la información que se debe mantenerse en BD. Nivel de vistas: Solo describe parte de la base de datos, muchos usuarios de la base de datos no están interesados en todos los datos de la base de datos Visión de los datos Una arquitectura para un sistema de base de datos Ejemplares y esquemas Similar a los Tipos de datos y las variables que se definen en un leguaje de programación Esquema – es la estructura lógica de la base de datos Ejemplo: una base de datos que representa la información de un conjunto de clientes, cuentas y la relación entre ellos. Análogo al tipo de dato de una variable en un lenguaje de programación Esquema Físico: Describe el diseño de la base de datos en el nivel físico. Esquema Lógico: Describe el diseño de la base de datos en el nivel lógico Ejemplar – representa el contenido de la base de datos en un determinado punto de tiempo Análogo con el valor de una variable definida en un lenguaje de programación Independencia física respecto 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, las interfaces entre los distintos niveles y componentes deben estar bien definidos para que los cambios en algunas partes no afecten a los demás. Modelo de datos Una colección de herramientas conceptuales para describir Datos Relación entre datos Semántica de los datos Restricciones de consistencia de datos Modelo relacional El modelo entidad-relación Modelo de datos orientado a objetos Modelo de datos semiestructurados (XML) Otros modelos antiguos Modelo de red Modelo jerárquico Lenguaje de manipulación de datos (LMD) Data Manipulation Language (DML) Lenguaje para acceder o manipular datos que están organizados de acuerdo a un modelo de datos apropiado. DML también conocido como lenguaje de consulta Dos tipos de lenguajes LMDs Procedimentales – Necesitan que el usuario especifique qué datos se necesitan y cómo obtener esos datos LMDs declarativos (no procedimentales) – necesitan que el usuario especifique qué datos se necesitan sin que haga falta que especifique cómo obtener esos datos SQL es el lenguaje de consulta usado mas ampliamente Lenguaje de definición de datos (LDD) Los esquemas de las bases de datos se especifican utilizando un conjunto de expresiones definidas en el LDD Ejemplo: create table cuenta ( numero-cuenta char(10), saldo integer) Las instrucciones LDD generan un conjunto de nombres de tablas las cuales se almacenan en un diccionario de datos. El diccionario de datos contiene los metadatos (datos acerca de los datos) Esquemas de la 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 (references constraint en SQL) Asertos (condición que las BDs siempre deben cumplir) Autorización Modelo relacional Atributos Un ejemplo de tabla del modelos relacional Un ejemplo de base de datos relacional SQL SQL: Lenguaje no procedimental ampliamente utilizado Ejemplo: Encontrar el nombre del cliente con id_cliente 192-83-7465 select cliente.nombre_cliente from cliente where cliente.id_cliente = ‘192-83-7465’ Ejemplo: Encontrar el saldo de todas las cuentas para un cliente con id_cliente 192-83-7465 select cuenta.saldo from deposito, cuenta where deposito.id_cliente = ‘192-83-7465’ and deposito.numero_cuenta = cuenta.numero_cuenta Los programas de aplicación generalmente acceden a las bases de datos a través de: Extensiones del lenguaje que permiten incrustar sentencias SQL API (ejm. ODBC/JDBC) los cuales permiten enviar consultas SQL a la Base de datos Diseño de base de datos El diseño de la base de datos implica principalmente el diseño del esquema de la base de datos. La especificación de requisitos de usuario es la fase inicial del diseño de la base de datos donde se caracteriza los requisitos de los usuarios Diseño conceptual aplicar los conceptos del modelo de datos para transformar los requisitos de usuario en un esquema conceptual de la base de datos. También comprende la especificación de requisitos funcionales que describen el tipos de operación o transacciones que se llevan a cabo con los datos. Diseño lógico - Decidir un esquema relacional tomando en cuenta el esquema conceptual de la base de datos. Decisión de negocios - Qué atributos debemos almacenar en la base de datos Decisión informática – Modelo entidad relación o normalización. Diseño físico - Decidir sobre la distribución física de la base de datos El modelo Entidad Relación Modela una empresa como una colección de entidades y la relación entre dichas entidades Entidad: una “cosa” u “objeto” dentro de la empresa que se diferencia de otros objetos Descrito por un conjunto de atributos Relación: una asociación entre varias entidades Representado esquemáticamente mediante un diagrama de entidad- relación: Modelo de datos relacional orientado a objetos Extiende el modelo relacional tradicional con gran variedad de características, como los tipos estructurados y las colecciones, así como la orientación a objetos Permite que los atributos de las tuplas dispongan de tipos de datos complejos, valores no atómicos, y relaciones anidadas. Preserva los fundamentos del modelo relacional, en particular el acceso a los datos, mientras se extiende con mas capacidad el modelo. Proporciona compatibilidad extendida con los actuales lenguajes relacionales XML: Extensible Markup Language Definido por la WWW Consortium (W3C) Se diseño inicialmente como una forma de añadir información de marcas a los documentos de texto y no como una base de datos. La capacidad de especificar nuevas etiquetas, y crear estructuras anidadas de etiquetas, hizo de XML sea una extraordinaria forma de intercambiar datos. XML se esta convirtiendo en la base de la nueva generación para intercambiar formatos de datos. Una amplia variedad de herramientas están disponibles para analizar, navegar y consultar datos y documentos XML Gestor de almacenamiento Gestor de almacenamiento es un 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 remitidas al sistema. El gestor de almacenamiento es responsable de las siguientes tareas: Interacción con el gestor de archivos Eficiente almacenamiento, recuperación y actualización de los datos El gestor de almacenamiento implementa varias estructura de datos: Archivos de datos Diccionario de datos Índices Procesador de consultas 1. Interprete y compilador de instrucciones 2. Optimización de consultas 3. Motor de evaluación o ejecución de consultas Procesador de consultas (Cont.) Evaluar diferentes alternativas para ejecutar una consulta dada Expresiones equivalentes Diferentes algoritmos para cada operación La diferencia de costo entre una buena y una mala manera de ejecutar una consulta puede ser enorme. Necesidad de estimar el costo de las operaciones Depende fundamentalmente de la información estadística sobre las relaciones que debe mantener en la base de datos. Necesidad de calcular las estadísticas de resultados intermedios para calcular el costo de expresiones complejas Gestión de transacciones Una transacción es un conjunto de operaciones que lleva a cabo una única función lógica en una aplicación de base de datos. Componente de gestión de transacciones garantiza las propiedades de atomicidad y de durabilidad, debiendo recuperarse a un estado de consistencia cuando una transacción falla. Gestor de control de concurrencia controlar la interacción entre las transacciones concurrentes para garantizar la consistencia de la base de datos. Estructura del Sistema Arquitectura de la base de datos La arquitectura de un sistema de base de datos esta fuertemente influenciado por el tipo de sistema de computo, en la cual se ejecuta la base de datos: Centralizado Cliente-servidor Paralelo (multi-procesador) Distribuido Usuarios de la base de datos Usuarios son diferenciados por la forma en que esperan interactuar con el sistema Programadores de aplicaciones – interactúan con el sistema a través de llamadas LMD Usuarios sofisticados – Formulan sus consultas en el lenguaje de consultas de la base de datos, no usan un sistema aparte. Usuarios especializados – Escriben aplicaciones de base de datos especializadas que no encajan en el marco tradicional de procesamiento de datos. (Sistemas CAD, Sistemas de conocimiento y expertos) Usuarios normales – Interactúan con el sistema invocando alguno de los programas de aplicación escritos previamente. Ejemplo, personas accediendo a bases de datos vía Web, Cajero del banco Administradores de base de datos Una de las principales razones de usar un SGBD es tener un control centralizado tanto de los datos como de los programas que tienen acceso a esos datos. Las funciones del DBA incluyen: La definición del esquema La definición de la estructura de almacenamiento y del método de acceso La modificación del esquema y de la organización física La concesión de autorización para el acceso a los datos El mantenimiento rutinario Fin del capitulo 1