Universidad Dominicana O&M
Saber – Pensar - TrabajarPresentación
Título
“
Principales características de motores de bases de datos Oracle /
SQL-Server / DB2 / MySQl / PostgreSQL
”
Nombre
Matricula
Iván Cruz
15-EISP-1-010
Profesor: Lenin Herrera
Sábado 15 de mayo del 2015
Introducción 1.0 Oracle
1.1 Estructura física y lógica 1.2 Almacenamiento
1.3 Arquitectura de los Procesos 1.4 Automatización 1.5 Precio 1.6 Fuentes 2.0 Microsoft SQL Server 2.1 Arquitectura 2.2 Almacenamiento de Datos 2.3 Gestión de Buffer 2.4 Concurrencia y Bloqueo 2.5 Precio 2.6 Fuentes 3.0 IBM DB2 3.1 Funcionalidades 3.2 Herramientas
3.3 Arquitectura del Servidor 3.4 Seguridad 3.5 Precio 3.6 Fuentes 4.0 MySQL 4.1 Interfaz 4.2 Compatibilidad 4.3 Funcionalidades 4.4 Limitaciones 4.5 Alta Disponibilidad 4.6 Precio 4.7 Fuentes 5.0 PostgreSQL
5.1 Control de Concurrencia con Multiversión 5.2 Almacenamiento y Réplica
5.3 Índices
5.6 Lenguaje de Procedimientos 5.7 Seguridad 5.8 Precio 5.9 Fuentes Conclusión Introducción
En la actualidad Oracle, MySQL, SQL Server, PostgreSQL y DB2 son los cinco (5) motores de base de datos apegados a los estándares ANSI SQL más populares. Sin embargo, cada uno de esos motores posee características diferenciales que los hacen ser ideales para ciertas aplicaciones y para otras no.
Este ensayo pretende examinar las características fundamentales de cada uno de estos populares motores de base de datos, expuestas en sus respectivas páginas de Wikipedia, además se realiza una breve introducción histórica a cada uno de ellos y se resaltan datos curiosos como el precio por licenciamiento o lenguaje en el que se desarrollan.
Es importante mencionar que no se realizó una copia fiel del contenido de Wikipedia, sino que más bien se tradujo y se hizo un resumen de los aspectos más relevantes.
Fuente: http://db-engines.com/en/ranking
1.0 Oracle
Es un manejador de base de datos objeto-relacional, escrito en lenguaje ensamblador, C y C++. Su licenciamiento es propietario y su versión estable más actualizada es la 12c R1. Oracle nace de una empresa de consultoría llamada Software Development Laboratories (SDL), fundada por Larry Ellison, Bob Miner y Ed Oates en 1977. En 1978 aparece Oracle v1, escrito en lenguaje ensamblador y diseñado para correr en una PDP-11 bajo RSX.
Principales características 1.1 Estructura física y lógica
Un sistema de base de datos Oracle siempre se identifica con un código alfanumérico llamada SID, y está compuesto al menos por una instancia de la aplicación, así como también por espacio de almacenamiento, procesos y la estructura de memoria que interactúa con el almacenamiento. La estructura de memoria en el servidor en comúnmente llamada SGA o Área Global del Sistema. El SGA usualmente mantiene una caché de informaciones tales como un regulador de datos, comandos SQL e información del usuario. El motor de base de datos Oracle mantiene un registro transaccional histórico comúnmente llamado redo logs que provee las bases del modelo de recuperación de datos y además sirven para la replicación de datos utilizando Oracle Data Guard.
1.2 Almacenamiento
índices. Los segmentos en turno comprenden uno o más extents, mientras que los extents forman grupos de bloque de datos contiguos. Los bloques de datos son la unidad básica de almacenamiento.
A nivel físico, los archivos de datos pueden comprender uno o más bloques de datos, en donde el tamaño del bloque de datos puede variar de acuerdo al tamaño de los archivos.
Los archivos más comunes guardados por Oracle son: Archivos de datos e índices, registros Redo, archivos deshacer, respaldos de los registros Redo, archivos Temporales, archivos de control (necesarios en el arranque de la base de datos).
1.3 Arquitectura de los Procesos
Oracle depende de un grupo de procesos que corren en segundo plano e interactúan para monitorear y expedir operaciones de la base de datos. Entre los principales procesos se hallan: Proceso de control (CKPT), Proceso de escritura a la base de datos (DBWn), Proceso de escritura de registros transaccionales (LGWR), Proceso de monitoreo de procesos (PMON) y Proceso de monitoreo del sistema (SMON).
1.4 Automatización
Oracle posee un administrador de tareas que permite agendar tareas en la base de datos basado en criterios como fecha, día, hora o recurrencia.
1.5 Precio
El precio de lista de Oracle 12c Standard es US$17,500 por núcleo.
1.6 Fuentes: http://en.wikipedia.org/wiki/Oracle_Database
http://www.oracle.com/us/corporate/pricing/technology-price-list-070617.pdf
2.0 Microsoft SQL Server
Es un sistema de base de datos relacional desarrollado por Microsoft. Su versión más actual es la 2014 y su desarrollo se lleva a cabo en C y C++. El tipo de licenciamiento es propietario. Sus lenguajes de consulta primarios son T-SQL y ANSI SQL. Hasta 1998 y la versión 7, Sybase era el desarrollador de SQL Server, sin embargo para mediados de 1998 Microsoft llegó a un arreglo con Sybase para la compra de los códigos fuentes y la contratación del personal, con este paso Microsoft logró entrar al mercado de las bases de datos.
Los verdaderos orígenes de SQL Server se remontan a 1989 cuando Sybase y Ashton-Tate para crear la primera versión de SQL Server, que mantuvo parte legado de su código original hasta que en el 2004 Microsoft reescribe completamente SQL Server para lanzar la versión 2005.
2.1 Arquitectura
y el servidor. TDS soporte comunicación de datos sobre TCP/IP, tubería nombrada y memoria compartida. En las versiones más recientes el acceso puede ser a través de servicios web mediante SQL Server API.
2.2 Almacenamiento de Datos
El almacén de datos es una base de datos con columnas con tipos. SQL Server soporta diferentes tipos de datos como integer, float, decimal, char, varchar, binary, text, entre otros. Por otro lado, SQL Server permite al usuario crear tipos de datos compuestos, también pone a la disposición estadística en tablas virtuales y vistas, llamadas Vistas de Gestión Dinámica. Además de tablas, una base de datos puede contener vistas, funciones, procedimientos almacenados, índices, restricciones y registros de transacciones.
Una base de datos SQL puede contener 2'31 objetos y el tamaño de cada archivo puede ser hasta 1 Exabyte. Los archivos de bases de datos primarios tienen extensión .mdf, mientras quer los secundarios .ndf. Los archivos de registros poseen extensión .ldf.
El espacio dispuesto para una base de datos es dividido en páginas, cada una de 8 KB. Una página es la unidad básica para operaciones de e/s en SQL Server. Cada página es marcada con 96 bytes de meta datos que la describen.
2.3 Gestión de Buffer
SQL Server crea un buffer de memoria para minimizar las operaciones de E/S. Al conjunto de páginas cargadas en memoria se le llama caché de buffer. La cantidad de memoria RAM disponible en el servidor determina cuantas páginas van a componer esa caché. La caché de buffer es gestionada por el gestor de Buffer. En consecuencia, todas las operaciones de lectura y escritura se realizan en memoria, y un único proceso posterior llevado a cabo por el gestor de Buffer escribe el disco.
2.4 Concurrencia y Bloqueo
Para evitar que la data se corrompa cuando ocurren accesos concurrentes SQL Server provee dos modos de control de concurrencia, Concurrencia Pesimista y Concurrencia Optimista. Cuando la Concurrencia Pesimista es utilizada, SQL Server controla el acceso utilizando bloqueos. Estos bloqueos pueden ser compartidos o exclusivos. En el caso del bloqueo exclusivo solo un usuario puede acceder la data, los demás deben esperar que este la libere para poder accederla. El bloqueo compartido es utilizado cuando cierta data va a ser leída, en este caso múltiples usuarios pueden leer la data pero no puede obtener acceso exclusivo, para obtenerlo deben esperar que todos los bloqueos compartidos sean liberados. El modo de Concurrencia Optimista permite que versiones nuevas de una sola fila sean creadas en cualquier momento y mantiene las versiones anteriores de la misma fila en una base de datos del sistema.
2.5 Precio
El precio de lista de SQL Server 2014 estándar es US$3,717 por cada núcleo de procesador.
2.6 Fuentes: http://en.wikipedia.org/wiki/Microsoft_SQL_Server
3.0 IBM DB2
Es una familia de servidores de base de datos desarrollado por IBM. Todos estos productos soportan el modelo relaciona. En años recientes, algunas de las herramientas han sido actualizadas para soportar el modelo objeto-relacional y no relacional, un caso particular es XML.
La primera versión de DB2 se liberó en 1983, mientras que la versión más actual es la 10.5 liberada en el 2013. Su desarrollo se lleva a cabo en lenguaje C, C++ y ensamblador.
3.1 Funcionalidades
DB2 provee múltiples funcionalidades tales como triggers, stored procedures, indexación dinámica, entre otros. Estas funcionalidades soportan aplicaciones tradicionales para el modelo cliente/servidor, así como también para inteligencia de negocios y aplicaciones web.
3.2 Herramientas
Las dos principales herramientas de DB2 son DB2 Query Manager y SQL Development Kit, estas agregan una manera interactiva de realizar consultas y diseñar informes. De acuerdo al estándar SQL de la industria, la implementación de SQL de DB2 permite definir, manipular, consultar y controlar el acceso a los datos. Todo esto funciona igualmente bien tanto con archivos i de IBM como con tablas SQL.
DB2 también posee Developer Workbench. Es un ambiente de trabajo basado en la franja de trabajo Eclipse y provee todas las funcionalidades necesarias para crear consultas XML, libretos SQL, procedimientos almacenados, documentos de esquemas XML y consultas definidas por el usuarios.
3.3 Arquitectura del Servidor
DB2 posee dos diferentes motores de procesamiento, uno relacional y otro para XML. IBM ha llamado esta última tecnología "PureXML" y almacena XML directamente en la base de datos, permitiendo a los desarrolladores utilizar SQL o XQuery para acceder los datos. Esto promete tener un impacto real en las Aplicaciones que consumen datos XML, ya que no necesitan convertir los datos a este último formato. IBM DB2 soporta particionamiento de base de datos con soporte de rango y partición de tabla, hashing y clustering multidimensional. Este particionado permite crear bases de datos distribuidas en múltiples servidores a través de la red, manejando respaldos y actualizaciones por separado para cada servidor. DB2 incluye un sistema de autoajuste que determina la mejora configuración del servidor basado en patrones de consumo de datos. Este sistema elimina la necesidad de los arreglos manuales y de liberación de memoria que deben llevar a cabo los DBA con otros motores de base de datos.
DB2 posee funciones para enfrentar fallas tales como operaciones de reinicio y recuperación, restauración y reconstrucción de base de datos desde imágenes de respaldo.
DB2 incluye el control de acceso basado en etiquetas, que les permite a los administradores crear etiquetas en las filas de datos que pueden ser utilizadas para controlar el acceso seguro.
3.5 Precio
Cada suscripción por 12 meses de DB2 cuesta US$493 por núcleo.
3.6 Fuentes: http://www.techrepublic.com/article/ibm-db2-90-review/
https://www-112.ibm.com/software/howtobuy/buyingtools/paexpress/Express
4.0 MySQL
Es el segundo manejador de base de datos relacional más utilizado en el mundo, y es el primero de código abierto. Fue nombrado con el mismo nombre de la hija del co-fundador Michael Widenius, My. La primera versión de MySQL fue liberada en 1995. Su desarrollo se lleva a cabo en lenguaje C y C++. Su licenciamiento es GPL o propietario.
Características 4.1 Interfaz
MySQL usualmente es empaquetada sin interfaz gráfica para la administración de bases de datos. En estos casos el usuario debe administrar la base de datos utilizando la línea de comandos. Sin embargo, Oracle desarrollo como un software independiente MySQL Workbench, que es una interfaz gráfica para la administración de la base de datos y es distribuida de forma gratuita.
4.2 Compatibilidad
MySQL funciona en los siguientes sistemas operativos: AIX, BSDi, FreeBSD, HP-UX, eComStation, i5/OS, IRIX, Linux, OS X, Microsoft Windows, NetBSD, Novell, OpenBSD, OpenSolaris, OS/2, QNX, Solaris, Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos and Tru64.
4.3 Funcionalidades
MySQL viene en dos ediciones Community Edition (GPL) y Enterprise Edition (Propietario). Las siguientes características están incluidas en la edición Enterprise, sin embargo, solo algunas están incluidas en la edición Community: MySQL está apegado a la normativa ANSI SQL 99; soporte multiplataforma; stored Procedures utilizando SQL/PSM; Triggers; Cursors; View actualizables; Lenguaje de definición de datos en línea cuando se utiliza InnoDB como motor de almacenaje; Schemas de Información y Clustering.
4.4 Limitaciones
MySQL no cumple con todo el estándar ANSI SQL 99, y además no se puede definir más de un trigger que escriba una misma tabla al mismo tiempo.
MySQL cuenta con MySQL Fabric, un sistema integrado utilizado para manejar colecciones de servidores, y además es una franja de trabajo encima de la cual se monta la estructura de alta disponibilidad. Es código abierto y está diseñada para ser extensible, fácil de usar, y prevé la ejecución de procedimientos incluso en la presencia de fallas, entregando un modo de ejecución comúnmente llamado modo resiliente.
4.6 Precio
El precio de entrada de MySQL Enterprise es US$5,000 por año para servidores cuya cantidad de zócalos no excedan los cuatro (4).
4.7 Fuentes: http://en.wikipedia.org/wiki/MySQL
http://www.oracle.com/us/corporate/pricing/price-lists/mysql-pricelist-183985.pdf
5.0 PostgreSQL
Es un sistema de gestión de bases de datos objeto-relacional con énfasis en la extensibilidad y conformidad con los estándares. Su primera versión fue liberada en 1996, y su desarrollo se lleva a cabo en lenguaje C. Su tipo de licenciamiento es PostgreSQL, mientras que su funcionamiento se apega al estándar SQL:2011.
PostgreSQL es multiplataforma, entre los sistemas operativos en que funciona cabe mencionar: Linux, FreeBSD, Solaris, Windows y Mac OS. Originalmente Postgres se llamaba Ingres y fue desarrollado originalmente por Michael Stonebraker en la universidad de Berkeley.
Principales características
5.1 Control de Concurrencia con Multiversión
Postgre maneja las concurrencias a través de un sistema llamado multiversion concurrency control (MVCC), que toma una fotografía a la base de datos en cada transacción, permitiendo que los cambios se realicen sin ser visibles para otras transacciones hasta que los cambios son perpetrados. Esto elimina ampliamente la necesidad de utilizar bloqueos de lectura y escritura.
Postgre ofrece tres niveles de aislamiento: Lectura perpertrada, Lectura repetida y Serialización.
5.2 Almacenamiento y Réplica
Postgres incluye replicación binaria, basada en la remisión de cambios a los sistemas esclavos de modo asíncrono, además Postgres incluye la habilidad de ejecutar consultas de lectura contra sistemas esclavos, sin promoverlos a maestros. Por otro lado, Postgres incluye la tradicional replicación sincrónica para cada transacción de escritura. A diferencia de otras bases de datos, la duración de cada transacción (sincrónica o asincrónica) puede ser definida para cada base de datos, para cada usuario, para cada sesión o transacción.
5.3 Índices
recuperación de los mismos después de una falla de energía. Además, los índices definidos por los usuarios pueden ser creados.
5.4 Tipos de Datos
Los tipos de datos soportados por Postgres son: Boolean, Arbitrary precision numerics, Character (text, varchar, char), Binary, Date/time (timestamp/time with/without timezone, date, interval), Money, Enum, Bit strings, Text search type, Composite, HStore, Arrays, Geometric primitives, IPv4 and IPv6 addresses CIDR blocks and MAC addresses, XML supporting XPath queries, UUID y JSON.
Es importante mencionar que Postgres soporte objetos definidos por el usuario.
5.5 Herencia
Postgres posee herencia de tablas, existen tablas padres y tablas hijos. Al realizar una consulta a la tabla padre, automáticamente se consultan los datos de la tabla hijo a menos que se especifique lo contrario.
5.6 Lenguaje de Procedimientos
Postgres soporta tres lenguajes de procedimientos: Plain SQL, PL/pgSQL y lenguaje C para escribir librerías que posteriormente serán incluidas como herramientas agregadas.
5.7 Seguridad
La seguridad en la base de datos se maneja basada en roles. Un role es generalmente asociado a un usuario o grupo. Los permisos pueden ser otorgados o revocados a cualquier objeto y también se puede prevenir la creación de nuevos objetos a nivel de base de datos, esquemas o tablas.
5.8 Precio
El precio de entrada de Postgres Enterprise es US$6,900 por año.
5.9 Fuentes: http://en.wikipedia.org/wiki/PostgreSQL
http://www.enterprisedb.com/products-services-training/subscriptions
Conclusión
Debido a la naturaleza diferente de los motores de base de datos decidimos dividir la conclusión en dos grupos partes, una que observa los motores de base de datos cuyo licenciamiento es propietario y otra que observa aquellos cuyo licenciamiento es público.
Entre los de licenciamiento privado hallamos Oracle, SQL Server y DB2. Primero Oracle, a pesar de ser el más costoso, su estabilidad está condicionada al sistema operativo y servidor en el que corre; problema del que no adolece DB2 que corre sobre su propio servidor IBM y sus sistema operativo System i y asegura completa compatibilidad e interacción entre la recuperación contra fallas y el sistema operativo. Sin embargo, DB2 parece rezagado ante las últimas tendencias de base de datos y no posee soporte nativo para tipos geométricos, geográficos, JSON, entre otros.
para reportería, análisis e integración, pero, SQL Server es débil manejando la seguridad de procesos y es ineficiente manejando la concurrencia comparado con Oracle.
En fin, un análisis para determinar que motor de base de datos con licenciamiento propietario debería involucrar al menos las siguientes variables: Precio, estabilidad, facilidad de desarrollo y soporte. El resultado concreto resultaría del caso particular que se aborde.
Entre los motores de base de datos de licenciamiento público hallamos MySQL y PostgreSQL. MySQL es el más popular, con una comunidad de desarrollo y soporte muy amplia, está altamente probado en los sitios webs más concurridos de todo internet y cuenta con el soporte Oracle. Sin embargo, se ha quedado rezagado en cuanto a últimas tecnología permitiendo que PostgreSQL le aventaje en tipos de datos, procesamientos de información geográfica, concurrencia, replicación e infraestructura de alta disponibilidad, haciendo con esto que PostgreSQL sea preferida para aplicaciones específicas como análisis geográfico.