320 likes | 518 Views
Maestría en Bioinformática Bases de Datos y Sistemas de Información Bases de Datos Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy. Agenda. Base de datos DBMS Tipos de DBMSs RDBMSs. Conceptos Historia Motivación. Agenda. Breve historia de la disciplina. Conceptos Historia
E N D
Maestría en BioinformáticaBases de Datos y Sistemas de InformaciónBases de DatosIng. Alfonso Vicente, PMPalfonso.vicente@logos.com.uy
Agenda • Base de datos • DBMS • Tipos de DBMSs • RDBMSs Conceptos Historia Motivación
Agenda • Breve historia de la disciplina Conceptos Historia Motivación
Agenda • Problemas • Beneficios de usar un RDBMS • Cuándo no usar un RDBMS Conceptos Historia Motivación
Agenda • Base de datos • DBMS • Tipos de DBMSs • RDBMSs Conceptos Historia Motivación
Conceptos Base de datos Un conjunto de datos relacionados entre sí y que tienen un significado implícito. Elmasri-Navathe base. ~ de datos. 1. f. Inform. Conjunto de datos organizado de tal modo que permita obtener con rapidez diversos tipos de información. Diccionario de la Real Academia Española Una colección de datos usualmente grande organizada especialmente para una rápida búsqueda y recuperación (como por una computadora) Merriam-Webster
Conceptos Base de datos Guía telefónica Fichas de biblioteca
Conceptos DBMS Siglas de DataBase Management System Software especializado en la gestión de Bases de Datos Diseñado para manejar de forma eficiente grandes volúmenes de datos
Conceptos Tipos de DBMSs • Orientadoa archivos
Conceptos Tipos de DBMSs • Jerárquico
Conceptos Tipos de DBMSs • Jerárquico
Conceptos Tipos de DBMSs • De Red
Conceptos Tipos de DBMSs • Relacional
Conceptos Tipos de DBMSs • Relacional (Concepto de transacción y reglas ACID) • Transacción: Unidad de trabajo que encapsula varias operaciones sobre una base de datos • Atomicity: Una transacción es atómica (todo o nada) • Consistency: Toda transacción deja a la base en un estado consistente (constraints) • Isolation: Ninguna transacción intefiere con otra... aunque hay niveles aceptables (isolation levels) • Durability: Toda transacción exitosa persiste aún ante caídas (no data-loss)
Conceptos Tipos de DBMSs • Orientado a objetos
Conceptos Tipos de DBMSs • Objeto/Relacional Su existencia se justifica por el éxito de la POO y de los DBMSs relacionales Los OODBMSs y ORDBMSs no tienen demasiado éxito en la industria, es más común el modelo RDBMS + ORM
Conceptos Tipos de DBMSs • NoSQL, NoREL, NewSQL, BigData, Sistemas K-V Memcached, MapReduce, BigTable (Google), Cassandra (Facebook), Dynamo (Amazon), MongoDB, NuoDB, VoltDB (Stonebraker) ...muchosmás: http://nosql-database.org Surgenpor la motivación de escalarbienmanejandograndesvolúmenes (petabytes) de información, utilizandoparaello clusters con muchos hosts... pero no son ACID • The Google File System • MapReduce: Simplified Data Processing on Large Clusters • Bigtable: A Distributed Storage System for Structured Data
Conceptos ACID vs BASE • La escalabilidad de nuevastendenciasmejora la disponibilidad y la performance, pero no es gratis: ¿podemos a perder la C y la I de ACID? BASE es: Basically Available Soft-State Eventual Consistency Ejemplo: actualizaciones de estado en Facebook
Conceptos Teorema CAP (Consistency - Availability - Partition tolerance)
Conceptos Teorema CAP en la práctica • CA (Consistency & Availability, no Partition tolerance) • CP (Consistency & Partition tolerance, no Availability) Son el mismocaso, cuando en un sistema CA hay un particionamiento en la red se pierde la A, y un sistema CP sólopierde la A cuando hay un particionamiento en la red. Es el casomáscomún, se prioriza la consistencia • AP (Availability & Partition tolerance, no Consistency) Se prioriza la disponibilidad, y se tolera la "consistencia eventual": Facebook, Twitter, DNS
Conceptos RDBMSs • Siguen vigentes debido a: • Su madurez y su amplia adopción en la industria • Su posibilidad de respetar las reglas ACID (cuando debemos priorizar la consistencia, queremos un sistema ACID y no BASE) • La madurez de las soluciones ORM (y a que los OODBMSs y ORDBMSs no prendieron en la industria) • Su soporte a nuevas necesidades (XML, datos geográficos, alta disponibilidad) • Esto podría cambiar en los próximos 25 años: http://cs-www.cs.yale.edu/homes/dna/papers/vldb07hstore.pdf
Agenda • Breve historia de la disciplina Conceptos Historia Motivación
Historia Teoría, tecnología, lenguaje y disciplinahanevolucionado juntas: • Teoría: Modelos, reglas, isolation levels • Tecnología: Implementacionesreales, mercado, mecanismos de locking • Lenguaje: SQL, APIs (ODBC/JDBC/SQLJ/DBI), XQuery • Disciplina: MER, normalización, patrones
Historia Edgar Codd (1923 - 2003) Es el Codd de la forma normal de Boyce-Codd, y del Teorema de Codd ("el poderexpresivo del AR esigual al de lasconsultasseguras del CR") 1970: A Relational Model of Data for Large Shared Data Banks 1979: Extending the Database Relational Model to Capture More Meaning 1985: Las 12 reglas de Codd
Historia Michael Stonebraker (1943) 40 añosdemostrandocómoimplementarDBMSs: • Ingres (1973) • Postgres (1985) • Illustra (1997, Informix, IBM) • Mariposa / Cohera (2001, Peoplesoft, Oracle) • Aurora / Streambase (2003) • C-Store / Vertica (2005) • Morpheus / Goby (2006) • H-Store / VoltDB (2007) • Sci-DB (2008)
Historia Donald Chamberlin (1944) y Raymond Boyce (1947–1974) Lenguajedeclarativobasado en álgebra / cálculorelacional • 1974: SEQUEL: A Structured English Query Language • 80’s: SQL es un estándar de facto • 1986: EstándarANSI • 1987: RatificadoporISO • Compliance: ANSI/ISO SQL:92,SQL:1999, SQL:2003, SQL:2006, SQL:2008 • Dialectos, extensionesprocedurales, XQuery
Historia Peter Chen (?) Inicia el "modelado conceptual" • 1976.The Entity-Relationship Model--Toward a Unified View of Data • 2002.Entity-Relationship Modeling--Historical Events, Future Trends, and Lessons Learned
Agenda • Problemas • Beneficios de usar un RDBMS • Cuándo no usar un RDBMS Conceptos Historia Motivación
Motivación Problemas Imaginemos un SI de un bancoquenecesita: • Restricciones de integridad (movimientos de una cuenta) • Consistenciade transacciones (transferencia) • Fácilacceso a los datos (reporte de saldos) • Seguridaden el acceso a los datos (permisos, auditoría) • Alta disponibilidad • Recuperabilidad
Motivación Beneficios de usar un RDBMS • Tipadode datos, NOT NULL, Primary Keys, Foreign Keys, Checks • Soportede transacciones ACID (commit, rollback), control de concurrencia (mecanismos de locking) • LenguajeSQL, APIS como ODBC y JDBC • Mecanismoestándar de autorización • Log transaccional: Crash Recovery, Point-In-Time Recovery • Solucionesde altadisponibilidad (clusters, hot-standby)
Motivación Cuándo no usar un RDBMS, respuestasclásicas: • Inversiónen hardware y software - Hay RDBMSs gratuitos con un footprint muybajo • Inversiónen capacitacióntécnica - La alternativa no la necesita ? • Costode administración del DBMS - Depende de la complejidad del desarrollo, podríafuncionartotalmentedesatend • Overhead(permisos, control de concurrencia) - En un SI simple y monousuariopuedeutilizarunaplanilla
Motivación Cuándo no usar un RDBMS, mejores respuestas: • Sistema muy simple, monousuario, no mantiene datos • Sistema documental, de expedientes: hay alternativas especializadas • Gran volumen de datos (petabytes) y necesidad de performance extrema: hay alternativas especializadas (BigData), pero aún es una opción a evaluar