Bases de datos en Software Libre · PDF fileBases de datos en Software Libre Respuesta:...
Transcript of Bases de datos en Software Libre · PDF fileBases de datos en Software Libre Respuesta:...
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.●Históricamente a INGRES y a System R se las conoce como las “mamás” 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 reformulada como Informix); de donde posteriormente IBM obtendría DB/2 y de donde se basa el ANSI SQL 2003 y mySQL.
●Robert Epstein se une a Larry Ellison (que venía de trabajar en el proyecto “Oraculo” de la CIA) y fundan Oracle Corp.
●Michael Stonebraker retorna a Berkeley en 1985 y funda el proyecto “más allá de Ingres” (postGres) que se convertiría en la actual PostgreSQL.
●Bernstein se une a Jim Starkey (que viene de DECVMS) y desarrollan Interbase
●Margo Seltzer en su tesis (con tutor a Stonebreaker) usa código libre de System R y desarrolla una disertación 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 AsthonTate (Dbase) que luego es vendido a Borland
Muchos!
Bases de datos en Software Libre
Respuesta:Borland Libera el código de su base de datos Interbase bajo licencia pública Mozilla; pero posteriormente la compañia “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 exploración del código fuente.
La fundación Firebird (creada por Jim Starkey) hace un “fork” del código “abandonado” de Interbase 6.0 y desarrolla Firebird 1.0 (2004)
Actualmente se encuentra en la versión 2.0.3
De Borland Interbase
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 poseía (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 versión 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 técnicamente mejores que las libres?
Bases de datos en Software Libre
Respuesta:Una investigación imparcial de una empresa consultora de sistemas (contratada por el Departamento del Tesoro y la Secretaría 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 líneas de código
Propietario: de 20 a 30 errores por cada 1,000 líneas de código
Además que ocurren ciertos vicios como arrastrar bugs durante años debido a los costos de reimplementación; etc
No
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 específicas.
Aquí trataremos de develar algunas!
No
Bases de datos en Software Libre
Base de datos● Técnicamente una base de datos es el conjunto
de datos que están almacenados y organizados bajo un mismo contexto y de manera sistemática para su posterior uso.
● Algunos Tipos:– Relacionales– Jerárquicas– Orientadas a Objeto
Fuente: wikipedia
Primeros Conceptos
Bases de datos en Software Libre
SGBD (Sistema Gestor de BD)● El sistema intermedio de gestión entre el usuario,
las aplicaciones y sus bases de datos son los SGBD.
● Son software muy específico dedicado exclusivamente al almacenamiento, gestión y recuperación de datos en bancos de datos.
Fuente: wikipedia
Primeros Conceptos
Bases de datos en Software Libre
Almacén de datos● Almacén de datos (del ingles, Data Warehousing)
es una simple colección de datos muy variable tanto en dimensiones como en el tiempo dedicada a un ámbito específico de la empresa.
● Permiten tener colecciones de datos para su análisis empresarial
● Lo integran: Metadatos, ETL y Middleware
Primeros Conceptos
Bases de datos en Software Libre
OLAP (OnLine Analytical Processing)● Permite la consulta de grandes almacenes de
datos mediante estructuras de vectores asociados y estructuras multidimensionales (cubos OLAP)
● Por lo general, servidores dedicados resumen y crean almacenes para ser “atacados” por un analizador OLAP
● OpenOLAP (ROLAP y MOLAP) existe para mySQL y postgreSQL
Primeros Conceptos
Bases de datos en Software Libre
Data Mining (Minería de datos)● La minería de datos es simplemente ejecutar
búsquedas de información especializada dentro de nuestras bases de datos usando algoritmos estadísticos (de varianza, clustering) o informáticos (genéticos, 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 años 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, subselects, etc● ANSI::SQL 2003 (de los más 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!
Características
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/mirandazulia'
DATA DIRECTORY = '/home/mysql/cne/mirandazulia',
Particionamiento Lógico
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 ObjetoRelacional● Basada en Ingres● Posee muchas características de alto nivel como
dominios, campos seriales, PL en más de 16 lenguajes distintos, tipos compuestos y arreglos
● Usa una versión 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 separación en esquemas● ANSI SQL 92, 99 y parte de 2003 (> 8.2)● El máximo tamaño de registro es de 1.6TB y 32TB
para una tabla
Características
Bases de datos en Software Libre
● nombre: ~* '^[az]+$')
● string: ~* '^[AZaz09]+$'
● domain_name: ~* '\w{1,60}[.]?'
● ip: ~ '^([19]|[19]\d|1\d{2}|2[04]\d|25[05])[.]?([09]|[19]\d|1\d{2}|2[04]\d|25[05])[.]?([09]|[19]\d|1\d{2}|2[04]\d|25[05])[.]?([09]|[19]\d|1\d{2}|2[04]\d|25[05])$'
● email: ~* '^([azAZ09_'+*$%\^&!\.\])+\@(([azAZ09\])+\.)+([azAZ09:]{2,4})+$'
Constraints Check
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
● SinglePort PCI Ultra320 SCSI HBA
● Costo: 59.260 US$
Puntuación Total: 720.56 Unidades
Costo de Unidad (Costo/Puntuación): 82 US$ por Unidad JOPS
Cuanto cuesta MySQL?
Bases de datos en Software Libre
Oracle● Server HP Integrity rx2660 1.6Ghz 18GB 4core (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$!!
Puntuación: 874 Unidades
Costo de Unidad (Costo/Puntuación): 206.75 US$ por unidad
Cuanto cuesta Oracle?
Bases de datos en Software Libre
PostgreSQL● Server HP Integrity rx2660 1.6Ghz 18GB 4core (2)
● 12GB DDR2 memory pair
● SAN Array 1000
● Costo: 70.701 US$
● PostgreSQL 8.2 (0 US$)
Puntuación: 778.14 Unidades
Costo de Unidad (Costo/Puntuación): 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 adopción de ANSI::SQL 2003
Bases de datos en Software Libre
Berkeley DB● Base de datos Objeto de alta velocidad● Su fín 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 versión especial para XML
Bases de datos en Software Libre
SapDB● Desarrollado en conjunto con mySQL AB● Implementa características necesarias para la
plataforma SOA de SAP● Como mySQL, SapDB es GPL y además 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 características de ANSI:SQL 92● Viene imbuida en la gran mayoría 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 aplicación Java
● Centrada en datos, permite gestión relacional (ANSI:SQL92) y jerárquica/objeto (XMLXQuery)
● Al ser imbuida, solo viene con JDBC
Bases de datos en Software Libre
Tabla “General” de MigraciónDesde: 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 múltiples conexiones a DB● Soporta postgreSQL, mySQL, Almacenes ISAM● Asistentes, formularios
Bases de datos en Software Libre
Conclusiones● Cada base de datos posee una utilidad nativa● Cada una se adapta a necesidades específicas● Los “benchmarks” representan estados de cada
implementación 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 atención
Jesús Ignacio Lara celular:celular: 0424 7332593
correo:correo: [email protected]
blog:blog:
http://www.jesuslara.com.ve/blog/