Está en la página 1de 46

Bases de datos en Software Libre

Bases de datos en Software Libre


Modelando aplicaciones

Bases de datos en Software Libre
Haz
intentado
recuperar
alguna vez
una
base de
datos
Oracle?

Bases de datos en Software Libre
Trivia

Cual fu la primera base de datos de cdigo


abierto?

Bases de datos en Software Libre
Respuesta:

De hecho, INGRES existe bajo una modalidad de


modico pago por su codigo fuente desde 1980;
cambiando luego a una licencia BSD (1985) y
posteriormente (2006) a una licencia GPL v2.

Histricamente a INGRES y a System R se las


conoce como las mams de todas las bases de
datos relacionales.
INGRES

Bases de datos en Software Libre
Trivia

Qu proyectos se originaron de la
Universidad de Berkeley, Ingres y de System
R?

Bases de datos en Software Libre
Respuesta:

Eric Allman funda Sybase, de donde nace MS SQL Server

Michael Stonebraker a partir de Ingres y System R crea Illustra (que es re-formulada como
Informix); de donde posteriormente IBM obtendra DB/2 y de donde se basa el ANSI SQL
2003 y mySQL.

Robert Epstein se une a Larry Ellison (que vena de trabajar en el proyecto Oraculo de la
CIA) y fundan Oracle Corp.

Michael Stonebraker retorna a Berkeley en 1985 y funda el proyecto ms all de


Ingres (post-Gres) que se convertira en la actual PostgreSQL.

Bernstein se une a Jim Starkey (que viene de DEC-VMS) y desarrollan Interbase

Margo Seltzer en su tesis (con tutor a Stonebreaker) usa cdigo libre de System R y
desarrolla una disertacin sobre bases de datos de archivos; de donde nace Berkeley DB

Keith Bostic (socio de Margo en Sleepycat) crea BSD.LFS y Unix BSD

Jim Starkey vende los derechos de Interbase a Asthon-Tate (Dbase) que luego es vendido
a Borland
Muchos!

Bases de datos en Software Libre
Trivia

De donde se origina Firebird?



Bases de datos en Software Libre
Respuesta:
Borland Libera el cdigo de su base de datos Interbase bajo licencia
pblica Mozilla; pero posteriormente la compaia se divide y queda
Interbase 6 sin avance, con una nueva licencia (cerrada); su licencia no es
ni BSD ni GPL, no permite su uso comercial y es completamente limitada a
la exploracin del cdigo fuente.
La fundacin Firebird (creada por Jim Starkey) hace un fork del cdigo
abandonado de Interbase 6.0 y desarrolla Firebird 1.0 (2004)
Actualmente se encuentra en la versin 2.0.3
De Borland Interbase

Bases de datos en Software Libre
Trivia

Actualmente SAP corre primordialmente


sobre Oracle?

Bases de datos en Software Libre
Respuesta:
SAP se une a mySQL para crear un mySQL Max a medida (llamado
originalmente sapDB (2003)); dicha RDBMS es orientada fuertemente al las
exploraciones OLTP y ser compatible con OLAP; agregando funcionalidades que
para la poca mySQL no posea (triggers, procedimientos almacenados, control
concurrente, transacciones serializables, etc).
En 2004 sapDB es renombrado como maxDB y el control del proyecto pasa
directamente a las manos de mySQL.
En 2006 el control del proyecto vuelve a las manos de SAP.
Actualmente maxDB se encuentra en la versin 7.6 y el Database Studio de SAP
se libera bajo licencia Eclipse (abierta).
No

Bases de datos en Software Libre
Trivia

Es verdad que las bases de datos


propietarias son tcnicamente mejores que las
libres?

Bases de datos en Software Libre
Respuesta:
Una investigacin imparcial de una empresa consultora de sistemas
(contratada por el Departamento del Tesoro y la Secretara de Defensa de
EUA) encontr que entre los desarrolladores de manejadores de bases de
datos ocurren:
Software libre: 0.434 errores por cada 1,000 lneas de cdigo
Propietario: de 20 a 30 errores por cada 1,000 lneas de cdigo
Adems que ocurren ciertos vicios como arrastrar bugs durante aos
debido a los costos de re-implementacin; etc
No

Bases de datos en Software Libre
Trivia

Cada base de datos sirve para todas las


necesidades?

Bases de datos en Software Libre
Respuesta:
cada DBMS (Database model System) tiene su nicho de mercado y est
implementada y pensada para cubrir unas demandas y necesidades
especficas.
Aqu trataremos de develar algunas!
No

Bases de datos en Software Libre
Base de datos

Tcnicamente una base de datos es el conjunto


de datos que estn almacenados y organizados
bajo un mismo contexto y de manera sistemtica
para su posterior uso.

Algunos Tipos:

Relacionales

Jerrquicas

Orientadas a Objeto
Fuente: wikipedia
Primeros Conceptos

Bases de datos en Software Libre
SGBD (Sistema Gestor de BD)

El sistema intermedio de gestin entre el usuario,


las aplicaciones y sus bases de datos son los
SGBD.

Son software muy especfico dedicado


exclusivamente al almacenamiento, gestin y
recuperacin de datos en bancos de datos.
Fuente: wikipedia
Primeros Conceptos

Bases de datos en Software Libre
Almacn de datos

Almacn de datos (del ingles, Data Warehousing)


es una simple coleccin de datos muy variable
tanto en dimensiones como en el tiempo dedicada
a un mbito especfico de la empresa.

Permiten tener colecciones de datos para su


anlisis empresarial

Lo integran: Metadatos, ETL y Middleware


Primeros Conceptos

Bases de datos en Software Libre
OLAP (On-Line Analytical Processing)

Permite la consulta de grandes almacenes de


datos mediante estructuras de vectores asociados
y estructuras multi-dimensionales (cubos OLAP)

Por lo general, servidores dedicados resumen y


crean almacenes para ser atacados por un
analizador OLAP

OpenOLAP (R-OLAP y M-OLAP) existe para


mySQL y postgreSQL
Primeros Conceptos

Bases de datos en Software Libre
Data Mining (Minera de datos)

La minera de datos es simplemente ejecutar


bsquedas de informacin especializada dentro
de nuestras bases de datos usando algoritmos
estadsticos (de varianza, clustering) o
informticos (genticos, IA, neuronales).

Existen herramientas como Weka (java) o R


(python) que permiten ejecutar data mining sobre
base de datos relacionales.
Primeros Conceptos

Bases de datos en Software Libre
Ingres

Primera base de datos relacional en cumplir los


principios de Codd

Estuvo 10 aos relegada por su hijo PostgreSQL

en 2006 se reabri el proyecto bajo la GPL

Soporta ACID y ANSI:SQL92



Bases de datos en Software Libre

Motor basado en Oracle

Interpretador basado en DB/2

Usa un PL basado en Transact

Storage Engine separados para cada necesidad

Actualmente cuenta con vistas, vistas


actualizables, sub-selects, etc

ANSI::SQL 2003 (de los ms apegados)


Entendiendo mySQL
mySQL

Bases de datos en Software Libre

Storage Engines (innoDB, Maria(*), Falcon(*),


ndb(*), federated, heap, BDB, myISAM, merge,
Archive)

Independencia del analizador (SQL modes: MS


SQL, Oracle, postgresql, sybase, informix, DB2)

Soporta GIS, XML y Full Search Text de manera


nativa

Cluster Carrier Grade ahora es libre!


Caractersticas

Bases de datos en Software Libre

Veamos un ejemplo de mySQL en accin


Ejemplos

Bases de datos en Software Libre
CREATE EVENT computar_nomina
ON SCHEDULE EVERY 1 DAY
DO
IF MONTH(CURRENT_DATE) <> MONTH(CURRENT_DATE
+INTERVAL '1' DAY) THEN
CALL `nomina`.`pre_nomina`();
END IF;
Eventos en mySQL

Bases de datos en Software Libre
PARTITION BY LIST(id_entidad) (
PARTITION p0 VALUES IN (1)
INDEX DIRECTORY = '/home/mysql/cne/
caracas'
DATA DIRECTORY =
'/home/mysql/cne/caracas',
PARTITION p1 VALUES IN (24, 15, 22)
INDEX DIRECTORY = '/home/mysql/cne/
miranda-zulia'
DATA DIRECTORY =
'/home/mysql/cne/miranda-zulia',
Particionamiento Lgico
PARTITION p2 VALUES IN (14, 20, 21)
INDEX DIRECTORY = '/home/mysql/cne/
andes'
DATA DIRECTORY =
'/home/mysql/cne/andes',
...
PARTITION p6 VALUES IN (2, 4, 9, 10, 23)
INDEX DIRECTORY = '/var/lib/mysql/cne/
resto'
DATA DIRECTORY =
'/var/lib/mysql/cne/resto'
);

Bases de datos en Software Libre

Base de datos Objeto-Relacional

Basada en Ingres

Posee muchas caractersticas de alto nivel como


dominios, campos seriales, PL en ms de 16
lenguajes distintos, tipos compuestos y arreglos

Usa una versin modificada de PL/SQL

Guarda en tablespaces y permite MVCC


Entendiendo PostgreSQL
postgreSQL

Bases de datos en Software Libre

Tipos compuestos y arreglos

Constraints

Herencia a nivel de tabla

Soporta separacin en esquemas

ANSI SQL 92, 99 y parte de 2003 (> 8.2)

El mximo tamao de registro es de 1.6TB y 32TB


para una tabla
Caractersticas

Bases de datos en Software Libre

Veamos un ejemplo de postgreSQL


Ejemplos

Bases de datos en Software Libre

nombre:
~* '^[a-z]+$')

string:
~* '^[A-Za-z0-9]+$'

domain_name:
~* '\w{1,60}[.]?'

ip:
~ '^([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])[.]?([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])[.]?
([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])[.]?([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$'

email:
~* '^([a-zA-Z0-9_'+*$%\^&!\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9:]{2,4})+$'
Constraints Check

Bases de datos en Software Libre
Un Benchmark Errado?

Bases de datos en Software Libre
InnoDB vs. MyISAM vs. Falcon
Un Benchmark de Storages

Bases de datos en Software Libre
Specs oficiales de Sun

Basado en velocidad, cantidad de Hardware


adquirido, necesidad de optimizaciones
adicionales, modificaciones y tunning al hardware,
software y database + rendimiento general de las
consultas

jAppServer 2007
Y existe uno con Oracle?

Bases de datos en Software Libre
mySQL

Sun Fire X4100 (2x285,4x2GB,2X73GB) (2)

Sun StorEdge 3320, 12x73GB, 1 RAID CONT

Single-Port PCI Ultra320 SCSI HBA

Costo: 59.260 US$


Puntuacin Total: 720.56 Unidades
Costo de Unidad (Costo/Puntuacin): 82 US$ por Unidad JOPS
Cuanto cuesta MySQL?

Bases de datos en Software Libre
Oracle

Server HP Integrity rx2660 1.6Ghz 18GB 4-core (2)

12GB DDR2 memory pair

SAN Array 1000

Costo: 70.701 US$

Oracle 10g Enterprise + Oracle App Server + Oracle Partition Option

Costo: 110.000 US$!!


Puntuacin: 874 Unidades
Costo de Unidad (Costo/Puntuacin): 206.75 US$ por unidad
Cuanto cuesta Oracle?

Bases de datos en Software Libre
PostgreSQL

Server HP Integrity rx2660 1.6Ghz 18GB 4-core (2)

12GB DDR2 memory pair

SAN Array 1000

Costo: 70.701 US$

PostgreSQL 8.2 (0 US$)


Puntuacin: 778.14 Unidades
Costo de Unidad (Costo/Puntuacin): 90.85 US$ por unidad
Cuanto cuesta postgreSQL?

Bases de datos en Software Libre
Firebird

Basada en Borland Interbase

Su PL es PL/I aunque acepta lenguajes del


dominio empresarial/financiero como ADA,
COBOL, etc

Actualmente el proyecto se esfuerza en llevar a la


completa adopcin de ANSI::SQL 2003

Bases de datos en Software Libre
Berkeley DB

Base de datos Objeto de alta velocidad

Su fn principal es estar imbuida en aplicaciones

openLDAP, ADS, Bind y mucho hardware llevan


imbuida una base de datos Berkeley DB

Su licencia es BSD

Tiene una versin especial para XML



Bases de datos en Software Libre
SapDB

Desarrollado en conjunto con mySQL AB

Implementa caractersticas necesarias para la


plataforma SOA de SAP

Como mySQL, SapDB es GPL y adems es auto-


administrado (bajo costo, no requiere un DBA
permanente, etc)

Toda la plataforma de desarrollo viene sobre


Eclipse

Bases de datos en Software Libre
SQLite

Base de datos Imbuida de alta velocidad

Soporta muchas caractersticas de ANSI:SQL 92

Viene imbuida en la gran mayora de los lenguajes


libres (perl, python, php, etc)

Es de mucha utilidad a la hora de desarrollar


aplicaciones

Symbian (smartphones) usan SQLite imbuido



Bases de datos en Software Libre
Apache Derby

Database desarrollada en Java

Sistema de datos mixto (imbuido o cliente-


servidor) que corre en la JVM junto a la aplicacin
Java

Centrada en datos, permite gestin relacional


(ANSI:SQL92) y jerrquica/objeto (XML-XQuery)

Al ser imbuida, solo viene con JDBC



Bases de datos en Software Libre
Tabla General de Migracin
Desde: Hasta:
Oracle 10g PostgreSQL 8.3
MS SQL Server MySQL 5.0/5.1
IBM DB2 / Sybase MySQL 5.0/5.1
Paradox / Interbase / Informix Firebird
Privative OEM Databases Berkeley DB / BDB XML / Derby / SQLite
? Escoge!

Bases de datos en Software Libre
y si quiero mi Access?
Entonces tienes OpenOffice Base!

Permite mltiples conexiones a DB

Soporta postgreSQL, mySQL, Almacenes ISAM

Asistentes, formularios

Bases de datos en Software Libre
Paquete Vs. Tecnologa
Vs.
Vs.

Bases de datos en Software Libre
Conclusiones

Cada base de datos posee una utilidad nativa

Cada una se adapta a necesidades especficas

Los benchmarks representan estados de cada


implementacin y no necesariamente acorde a las
necesidades actuales del cliente

Se puede hacer convivir sistemas heterogeneos

Evitemos los paquetes!



Bases de datos en Software Libre
Gracias por su atencin
Jess Ignacio Lara
celular: celular: 0424 7332593
correo: correo: jesuslara@covetel.com.ve
blog: blog:
http://www.jesuslara.com.ve/blog/

También podría gustarte