Introduccin al Diseo de Bases de Datos Ing. Jonathan Carrillo Quito, Septiembre 2014
DISEO E IMPLEMENTACIN DE BASE DE DATOS Contenido: 1. Sistemas de Informacin -Bases de Datos DBMS 2. Arquitectura de los Sistemas de Bases de Datos Conceptos Generales Arquitectura ANSI/X3/SPARC Estructura de los DBMS 3. Arquitectura de Aplicaciones Cliente-Servidor Tres Capas n Capas 4. Conclusin
Introduccin al Diseo de Bases de Datos 1. Sistemas de Informacin - Bases de Datos DBMS
Para iniciar el curso de diseo e implementacin de base de datos es indispensable contestar las siguientes preguntas: A. Qu es un sistema de Informacin? B. Qu es un sistema de base de datos? C. Qu es un sistema de gestin de base de datos? D. Qu es una base de datos? E. Por qu una base de datos?
Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 1. Sistemas de Informacin - Bases de Datos DBMS
A. Qu es un sistema de Informacin? > Es un conjunto de procesos, datos y herramientas operados por usuarios para recoger, almacenar, procesar y recuperar informacin.(Banda, 2010) Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 1. Sistemas de Informacin - Bases de Datos DBMS
B. Qu es un sistema de base de datos? > Es un sistema computarizado para guardar registros; es decir, es un sistema computarizado cuya finalidad general es almacenar datos y permitir a los usuarios recuperar y actualizar esa informacin a base de peticiones. (Date, 2008) > Sistema cuyo propsito general es registrar y mantener la informacin consolidada y coherente mediante un conjunto de procesos, datos, software, hardware y usuarios. (Banda, 2010)
Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 1. Sistemas de Informacin - Bases de Datos DBMS C. Qu es un sistema de gestin de base de datos o SGBD (DBMS en ingls)? > Consiste en una coleccin de datos interrelacionados y una coleccin de programas para acceder a esos datos (Korth, 2002) > Tipos: Relacionales, Orientados a Objetos, Objetos Relacionales
Ing. Jonathan Carrillo - Septiembre 2014 Major DBMS Vendors (Craigs Mullins) IBM: Database Page (DB2, Informix, IMS, Netezza, solidDB) Microsoft SQL Server Oracle Corporation (Berkeley DB, Database 11g, Exadata, MySQL, TimesTen) Sybase (acquired by SAP)
Introduccin al Diseo de Bases de Datos 1. Sistemas de Informacin - Bases de Datos DBMS
Ing. Jonathan Carrillo - Septiembre 2014 Open Source DBMS Actian (Ingres) Apache Derby Drizzle EnterpriseDB Firebird MySQL (acquired by Oracle) Perst (embedded database) PostgreSQL VoltDB Other DBMS Vendors Alpha Software Altibase Amazon SimpleDB ANTs Compatibility Server CA Mainframe DBMS Datacom (CA Technologies) dBASE Empress (embedded database) eXtremedb (embedded database) Filemaker HP NonStop SQL IDMS - from CA Technologies InterBase - from Embarcadero Technologies InterSystems - Cache' Introduccin al Diseo de Bases de Datos 1. Sistemas de Informacin - Bases de Datos DBMS
Ing. Jonathan Carrillo - Septiembre 2014 Other DBMS Vendors jBase Model 204 - hierarchic DBMS from Rocket Software Progress Pervasive PSQL PublicPIM Raima Software AG (Adabas, Tamino) SQL-Base (Unify) SQLite Teradata ThinkSQL U2 - extended relational database system from Rocket Software XML Database Products
Introduccin al Diseo de Bases de Datos 1. Sistemas de Informacin - Bases de Datos DBMS
D. Qu es una base de datos? > Es un conjunto de datos persistentes que es utilizado por los sistemas de Informacin o aplicacines de alguna empresa dada (Date, 2008) > Una Base de Datos representa algn aspecto del mundo real y es utilizada por uno o ms grupos de usuarios con fines especficos. (Elmasri, 2007)
Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 1. Sistemas de Informacin - Bases de Datos DBMS
Ing. Jonathan Carrillo - Septiembre 2014 Procesos Hardware Usuarios Datos Software Datos Datos Introduccin al Diseo de Bases de Datos 1. Sistemas de Informacin - Bases de Datos DBMS
E. Por qu una base de datos? > Compactacin: No hay necesidad de archivos en papel voluminosos. > Velocidad: La mquina puede recuperar y actualizar datos ms rpidamente que un humano. > Menos trabajo laborioso: Se puede eliminar gran parte del trabajo de llevar los archivos a mano. > Informacin actualizada: En el momento que la necesitemos, tendremos a nuestra disposicin informacin precisa y actualizada. Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 1. Sistemas de Informacin - Bases de Datos DBMS
E. Por qu una base de datos? > Los datos pueden compartirse > Es posible reducir la redundancia > Es posible (hasta cierto grado) evitar la inconsistencia > Es posible brindar un manejo de transacciones > Es posible hacer cumplir la seguridad > Es posible hacer cumplir los estndares (departamentales, de instalacin, corporativos, de la industria, nacionales e internacionales) Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Conceptos Generales > Abstraccin: Simplificacin de la realidad. Consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompaan. > Modelo: Representacin abstracta de la realidad. > Modelo basado en datos: Se caracteriza por la identificacin de la organizacin de los datos y sus niveles de abstraccin. > Esquema: descripcin de una base de datos que se especifica durante la fase de diseo. > Instancia: Datos de la base de datos en un momento concreto
Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Arquitectura ANSI/X3/SPARC (Standard Planning and Requirements Committee of the American National Standards Institute on Computers and Information Processing) > El objetivo de la ANSI/X3/SPARC (arquitectura de tres esquemas), es separar las aplicaciones de usuario y las bases de datos fsicas para disear las bases de datos > Explica la independencia de los datos, es decir, la capacidad de cambiar el esquema en un nivel de un sistema de bases de datos sin tener que cambiar el esquema en el siguiente nivel ms alto.
Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Arquitectura ANSI/X3/SPARC (Standard Planning and Requirements Committee of the American National Standards Institute on Computers and Information Processing) Ing. Jonathan Carrillo - Septiembre 2014 Se identifica el acceso a los datos y las relaciones existentes entre ellos desde el punto de vista de los usuarios.
Consiste en una representacin de los datos y sus relaciones desde un punto de vista de la organizacin sin considerar restricciones de almacenamiento.
Ubicacin fsica de los datos y mecanismos de acceso a los mismos. Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos >Arquitectura ANSI/X3/SPARC Ing. Jonathan Carrillo - Septiembre 2014 cmo se almacenan realmente los datos qu datos se almacenan en la base de datos y qu relaciones existen entre esos datos. Presentacin y descripcin de los datos Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS > Datos Almacenados: conformado por archivos de datos y el diccionario de datos de la BDD
Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS > Gestor de Transacciones: responsable de mantener la integridad y la seguridad del sistema, es adems el responsable del control de la concurrencia y la recuperacin ante fallos. Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS > Interfaces externos/Consultas Operacionales: Interfaz que permite la comunicacin entre 2 programas. GUI, API
Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS > Gestor de Almacenamiento (Storage Manager): Es el componente encargado de recuperacin y/o modificacin de los datos almacenados. Gestiona las peticiones de los mdulos superiores. Es el responsable del mantenimiento y la utilizacin de los ndices (cuando hay inserciones, actualizaciones o eliminacin se utiliza un Select para optimizar la bsqueda). Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS > Gestor de Almacenamiento (Storage Manager): Proporciona una interfaz de bajo nivel entre los datos almacenados y los programas de aplicacin que se hace sobre ellos, est compuesto de 2 subcomponentes: Administrador de Archivos (File Manager). Administrador de Buffer (Buffer Manager)
Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS > Gestor de Almacenamiento (Storage Manager): Administrador de Archivos (File Manager). Mantiene un registro de la ubicacin exacta de los datos en los dispositivos de almacenamiento fsicos (es la FAT [File Allocation Table] de la BDD). Es el que se encarga de recuperar los bloques* de los datos desde los archivos de datos (sabe dnde est y las trae)
Ing. Jonathan Carrillo - Septiembre 2014 *Bloque o pgina: es la unidad de E/S; es decir, es la cantidad de datos transferidos entre el disco (almacenamiento secundario) y la memoria principal en una sola operacin de E/S. Los tamaos tpicos de pgina son 1 KB, 2 KB o 4 KB (1 KB = 1024 bytes). Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS > Gestor de Almacenamiento (Storage Manager): Administrador de Buffer (Buffer Manager) Se encarga de la gestin eficiente del espacio de memoria asignada. Se encarga de los bloques de datos en las pginas de memoria. Recibe peticiones del Gestor de Transacciones sobre la permanencia de los bloques de datos en la memoria.
Ing. Jonathan Carrillo - Septiembre 2014 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS > Gestor de Almacenamiento (Storage Manager): Introduccin al Diseo de Bases de Datos Ing. Jonathan Carrillo - Septiembre 2014 Ing. Jonathan Carrillo - Septiembre 2014 Datos Almacenados M E M O R I A
Datos Procesador de Consultas Gestor de Transacciones Gestor de Almacenamiento Consultas Operacionales Peticin Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS > Procesador de Consultas (Query Manager): Se encarga de la gestin de las peticiones de consulta y/o modificacin hechas por los aplicativos que accesan a los datos. Identifica el tipo de operacin que se va a hacer sobre la BDD. Las operaciones pueden ser DRL, DML, DDL, TCL y DCL
Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS > Procesador de Consultas (Query Manager): El acceso a los datos y operaciones: DRL (Data Retrivel Language) : Select DML (Data Manipulation Language): Insert, Update, Delete, Merge DDL (Data Definition Language): Create, Alter, Drop, Rename, Truncate TCL (Transactional Control Language) : Commit, Rollback, Savepoint DCL (Data Control Language): Grant, Revoke Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS > Procesador de Consultas (Query Manager): Traduce las sentencias SQL a sentencias de bajo nivel. En caso de sentencias DML y DRL las optimiza, como resultado de esto se entrega el rbol de acceso (PATH). Una vez que se defina el PATH enva los requerimientos al gestor de almacenamiento, finalmente le entrega al usuario o aplicativo los resultados. Ing. Jonathan Carrillo - Septiembre 2014 Ing. Jonathan Carrillo - Septiembre 2014 Ing. Jonathan Carrillo - Septiembre 2014 Buffer pool (or data cache), Mullins C. S. 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS Introduccin al Diseo de Bases de Datos Ing. Jonathan Carrillo - Septiembre 2014 Ing. Jonathan Carrillo - Septiembre 2014 Datos Almacenados Gestor de almacenamiento Gestor de Transacciones Consultas Operacionales Procesador de Consultas 2. Arquitectura de los Sistemas de Bases de Datos > Estructura de un DBMS Introduccin al Diseo de Bases de Datos Introduccin al Diseo de Bases de Datos 3. Arquitectura de Aplicaciones > Cliente - Servidor Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 3. Arquitectura de Aplicaciones > Cliente - Servidor La aplicacin se divide en un componente que reside en la mquina cliente, que llama a la funcionalidad del sistema de bases de datos en la mquina servidor mediante instrucciones del lenguaje de consultas. Los estndares de interfaces de programas de aplicacin como ODBC y JDBC se usan para la interaccin entre el cliente y el servidor.
Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos 3. Arquitectura de Aplicaciones > Tres Capas Ing. Jonathan Carrillo - Septiembre 2014 Red Introduccin al Diseo de Bases de Datos Ing. Jonathan Carrillo - Septiembre 2014 3. Arquitectura de Aplicaciones > Tres Capas La mquina cliente interacta mediante un front-end y no contiene ninguna llamada directa a la base de datos. En su lugar, el cliente se comunica con un servidor de aplicaciones, usualmente mediante una interfaz de formularios. El servidor de aplicaciones, a su vez, se comunica con el sistema de bases de datos para acceder a los datos.
Introduccin al Diseo de Bases de Datos 3. Arquitectura de Aplicaciones > n Capas Ing. Jonathan Carrillo - Septiembre 2014 Introduccin al Diseo de Bases de Datos Ing. Jonathan Carrillo - Septiembre 2014 3. Arquitectura de Aplicaciones > n Capas Los diferentes procesos estn distribuidos en diferentes capas no slo lgicas, sino tambin fsicas. Los procesos se ejecutan en diferentes equipos, que pueden incluso residir en plataformas o sistemas operativos completamente distintos. Cada equipo posee una configuracin distinta y est optimizado para realizar el papel que le ha sido asignado dentro de la estructura de la aplicacin, de modo que tanto los recursos como la eficiencia global del sistema se optimicen Introduccin al Diseo de Bases de Datos Ing. Jonathan Carrillo - Septiembre 2014 4. Conclusin Creo firmemente que debemos tener las bases adecuadas y comprenderlas bien, antes de intentar cualquier tipo de construccin sobre ellos. Estoy interesado en los fundamentos, no en las novedades y modas. C.J. Date