Publicado el 9 de Mayo del 2017
4.997 visualizaciones desde el 9 de Mayo del 2017
1,1 MB
46 paginas
Creado hace 17a (11/04/2008)
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 código
abierto?
Bases de datos en Software Libre
INGRES
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.
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:
Muchos!
●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
Bases de datos en Software Libre
Trivia
● ¿De donde se origina Firebird?
Bases de datos en Software Libre
De Borland Interbase
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
Bases de datos en Software Libre
Trivia
● ¿Actualmente SAP corre primordialmente
sobre Oracle?
Bases de datos en Software Libre
Respuesta:
No
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).
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
No
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
Bases de datos en Software Libre
Trivia
● ¿Cada base de datos sirve para todas las
necesidades?
Bases de datos en Software Libre
No
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!
Bases de datos en Software Libre
Primeros Conceptos
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
Bases de datos en Software Libre
Primeros Conceptos
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
Bases de datos en Software Libre
Primeros Conceptos
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
Bases de datos en Software Libre
Primeros Conceptos
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
Bases de datos en Software Libre
Primeros Conceptos
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.
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
Entendiendo mySQL
mySQL
● 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)
Bases de datos en Software Libre
Características
● 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!
Bases de datos en Software Libre
Ejemplos
● Veamos un ejemplo de mySQL en acción
Bases de datos en Software Libre
Eventos en mySQL
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;
Bases de datos en Software Libre
Particionamiento Lógico
PARTITION BY LIST(id_entidad) (
PARTITION p0 VALUES IN (1)
INDEX DIRECTORY = '/home/mysql/cne/
caracas'
DATA DIRECTORY =
'/home/mysql/cne/caracas',
PARTITION p2 VALUES IN (14, 20, 21)
INDEX DIRECTORY = '/home/mysql/cne/
andes'
DATA DIRECTORY =
'/home/mysql/cne/andes',
...
PARTITION p1 VALUES IN (24, 15, 22)
PARTITION p6 VALUES IN (2, 4, 9, 10, 23)
INDEX DIRECTORY = '/home/mysql/cne/
mirandazulia'
INDEX DIRECTORY = '/var/lib/mysql/cne/
resto'
DATA DIRECTORY =
'/home/mysql/cne/mirandazulia',
DATA DIRECTORY =
'/var/lib/mysql/cne/resto'
);
Bases de datos en Software Libre
Entendiendo PostgreSQL
postgreSQL
● 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
Bases de datos en Software Libre
Características
● 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
Bases de datos en Software Libre
Ejemplos
● Veamos un ejemplo de postgreSQL
Bases de datos en Software Libre
Constraints Check
● 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})+$'
Bases de datos en Software Libre
Un Benchmark Errado?
Bases de datos en Software Libre
Un Benchmark de Storages
InnoDB vs. MyISAM vs. Falcon
Bases de datos en Software Libre
Y existe uno con Oracle?
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
Bases de datos en Software Libre
Cuanto cuesta MySQL?
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
Bases de datos en Software
Comentarios de: Bases de datos en Software Libre (0)
No hay comentarios