maestría en bioinformáticabases de datos y sistemas de ... · particionamiento en la red se...

32
Maestría en Bioinformática Bases de Datos y Sistemas de Información Bases de Datos Ing. Alfonso Vicente, PMP [email protected]

Upload: others

Post on 13-May-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Maestría en Bioinformática

Bases de Datos y Sistemas de Información

Bases de Datos

Ing. Alfonso Vicente, PMP [email protected]

Page 2: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Agenda

• Base de datos

• DBMS

• Tipos de DBMSs

• RDBMSs

Conceptos

Historia

Motivación

Page 3: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Agenda

• Breve historia de la disciplina Conceptos

Historia

Motivación

Page 4: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Agenda

• Problemas

• Beneficios de usar un RDBMS

• Cuándo no usar un RDBMS

Conceptos

Historia

Motivación

Page 5: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Agenda

• Base de datos

• DBMS

• Tipos de DBMSs

• RDBMSs

Conceptos

Historia

Motivación

Page 6: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

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

Page 7: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Conceptos

Base de datos

Guía telefónica

Fichas de biblioteca

Page 8: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

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

Page 9: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Conceptos

Tipos de DBMSs

• Orientado a archivos

Page 10: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Conceptos

Tipos de DBMSs

• Jerárquico

Page 11: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Conceptos

Tipos de DBMSs

• Jerárquico

Page 12: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Conceptos

Tipos de DBMSs

• De Red

Page 13: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Conceptos

Tipos de DBMSs

• Relacional

Page 14: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

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)

Page 15: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Conceptos

Tipos de DBMSs

• Orientado a objetos

Page 16: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

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

Page 18: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Conceptos

ACID vs BASE

• La escalabilidad de nuevas tendencias mejora 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

Page 19: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Conceptos

Teorema CAP (Consistency - Availability - Partition tolerance)

Page 20: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Conceptos

Teorema CAP en la práctica

• CA (Consistency & Availability, no Partition tolerance)

• CP (Consistency & Partition tolerance, no Availability)

Son el mismo caso, cuando en un sistema CA hay un

particionamiento en la red se pierde la A, y un sistema CP

sólo pierde la A cuando hay un particionamiento en la red.

Es el caso más común, se prioriza la consistencia

• AP (Availability & Partition tolerance, no Consistency)

Se prioriza la disponibilidad, y se tolera la "consistencia

eventual": Facebook, Twitter, DNS

Page 21: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Conceptos

RDBMSs

• Siguen vigentes debido a:

o Su madurez y su amplia adopción en la industria

o Su posibilidad de respetar las reglas ACID (cuando

debemos priorizar la consistencia, queremos un sistema

ACID y no BASE)

o La madurez de las soluciones ORM (y a que los

OODBMSs y ORDBMSs no prendieron en la industria)

o 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

Page 22: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Agenda

• Breve historia de la disciplina Conceptos

Historia

Motivación

Page 23: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Historia

Teoría, tecnología, lenguaje y disciplina han evolucionado

juntas:

• Teoría: Modelos, reglas, isolation levels

• Tecnología: Implementaciones reales, mercado,

mecanismos de locking

• Lenguaje: SQL, APIs (ODBC/JDBC/SQLJ/DBI), XQuery

• Disciplina: MER, normalización, patrones

Page 25: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Historia

Michael Stonebraker (1943)

40 años demostrando cómo implementar

DBMSs:

• 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)

Page 26: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Historia

Donald Chamberlin (1944) y Raymond Boyce (1947–1974)

Lenguaje declarativo basado en álgebra / cálculo relacional

• 1974: SEQUEL: A Structured English Query Language

• 80’s: SQL es un estándar de facto

• 1986: Estándar ANSI

• 1987: Ratificado por ISO

• Compliance: ANSI/ISO SQL:92, SQL:1999, SQL:2003,

SQL:2006, SQL:2008

• Dialectos, extensiones procedurales, XQuery

Page 28: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Agenda

• Problemas

• Beneficios de usar un RDBMS

• Cuándo no usar un RDBMS

Conceptos

Historia

Motivación

Page 29: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Motivación

Problemas

Imaginemos un SI de un banco que necesita:

• Restricciones de integridad (movimientos de una cuenta)

• Consistencia de transacciones (transferencia)

• Fácil acceso a los datos (reporte de saldos)

• Seguridad en el acceso a los datos (permisos, auditoría)

• Alta disponibilidad

• Recuperabilidad

Page 30: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Motivación

Beneficios de usar un RDBMS

• Tipado de datos, NOT NULL, Primary Keys, Foreign Keys,

Checks

• Soporte de transacciones ACID (commit, rollback), control de

concurrencia (mecanismos de locking)

• Lenguaje SQL, APIS como ODBC y JDBC

• Mecanismo estándar de autorización

• Log transaccional: Crash Recovery, Point-In-Time Recovery

• Soluciones de alta disponibilidad (clusters, hot-standby)

Page 31: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

Motivación

Cuándo no usar un RDBMS, respuestas clásicas:

• Inversión en hardware y software

- Hay RDBMSs gratuitos con un footprint muy bajo

• Inversión en capacitación técnica

- La alternativa no la necesita ?

• Costo de administración del DBMS

- Depende de la complejidad del desarrollo, podría

funcionar totalmente desatend

• Overhead (permisos, control de concurrencia)

- En un SI simple y monousuario puede utilizar una planilla

Page 32: Maestría en BioinformáticaBases de Datos y Sistemas de ... · particionamiento en la red se pierde la A, y un sistema CP sólo pierde la A cuando hay un particionamiento en la red

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