Está en la página 1de 11

ANGIE ALEJANDRA FUQUEN MONTAÑEZ

Tarea 1 Bases de Datos

- Indique las características de tres bases de datos relacionales, año de creación,


autores, motor, etc.

MySQL

1. Introducción a MySQL
¿Qué es MySQL?

MySQL es un sistema de administración de bases de datos (Database Management System, DBMS)


para bases de datos relacionales. Un modelo relacional es un modelo de datos basado en la lógica
de predicados y en la teoría de conjuntos.

Lenguaje

El lenguaje de programación que utiliza MySQL es Structured Query Language (SQL) que fue
desarrollado por IBM en 1981 y desde entonces es utilizado de forma generalizada en las bases de
datos relacionales.

Además de utilizar SQL estándar, MySQL incluye extensiones proprietarias al lenguaje:

 Tipos de datos adicionales como datos espaciales, JSON, campos BLOB/TEXT.


 Sintaxis de consultas extendidas como consultas anidadas, funciones de ventana, cláusulas
REGEX.
 Procedimientos almacenados y disparadores utilizando su lenguaje procedimental.
 Particionamiento de tablas y réplicas de datos para escalabilidad.
 Vistas, restricciones y motores de almacenamiento personalizados.

Historia

MySQL fue desarrollado originalmente por la empresa sueca MySQL AB fundada por David
Axmark, Allan Larsson y Michael "Monty" Widenius en 1995. La primera versión (3.11.1) fue
liberada en 1996.

En 2008, Sun Microsystems adquirió MySQL AB. Dos años después, en 2010, Oracle Corporation
compró Sun convirtiéndose en el nuevo propietario de MySQL.

Desde entonces, Oracle continúa desarrollando la rama principal MySQL Enterprise, mientras que
los desarrolladores originales mantienen una bifurcación de código abierto llamada MariaDB.

2. Características y Capacidades
MySQL cuenta con una gran variedad de características avanzadas que lo hacen adecuado para
entornos de alta demanda:
ANGIE ALEJANDRA FUQUEN MONTAÑEZ

 Replicación: Permite configurar múltiples instancias de MySQL con una arquitectura


maestro-esclavo para alta disponibilidad y escalabilidad de lectura.
 Clusterización: La funcionalidad de clúster de MySQL proporciona procesamiento paralelo
de consultas en múltiples servidores para distribuir la carga.
 Particionamiento: Permite dividir datos en particiones separadas para un mejor
rendimiento y facilitar el mantenimiento de grandes conjuntos de datos.
 Vistas: Permiten vistas precompiladas de consultas complejas para simplificar y acelerar el
acceso a datos.
 Triggers: Ejecutan código automáticamente cuando ocurren eventos específicos en la base
de datos.
 Procedimientos Almacenados: Permiten escribir lógica de aplicación dentro de la base de
datos para mejorar el rendimiento.

Además de aplicaciones web, MySQL se utiliza ampliamente en otros casos de uso como:

 Sistemas de comercio electrónico y plataformas de pago


 Aplicaciones de software como servicio (SaaS)
 Sistemas de gestión de contenidos (CMS)
 Aplicaciones de Internet de las Cosas (IoT)
 Aplicaciones de análisis de datos y business intelligence
 Infraestructura de telecomunicaciones
 Sistemas de juegos en línea

3. Ventajas

 Código Abierto y Licencia GPL: MySQL es de código abierto, lo que permite a cualquiera
usar y modificar el software. Se distribuye bajo la licencia pública general GNU (GNU
General Public License, GPL), una licencia de código abierto muy popular que promueve la
libertad de los usuarios para ejecutar, estudiar, compartir y modificar el software. La
licencia GPL permite la libre distribución y modificación del código fuente de MySQL,
siempre y cuando cualquier trabajo derivado mantenga esas mismas libertades y se
distribuya también bajo los términos de la GPL. Esto asegura que el código fuente
modificado permanezca abierto y accesible.
 Rapidez
 Fiabilidad
 Facilidad de uso
 Debido a su trabajo conjunto con la comunidad open source a nivel mundial, MySQL
Server se desarrolló originalmente para manejar grandes bases de datos, siendo usado con
éxito en entornos de producción de alto rendimiento durante varios años.
 Proporciona el MySQL Server como biblioteca incrustada y entornos cliente/servidores
incrustados.
 Trabaja con programas y bibliotecas cliente que tienen herramientas administrativas de la
interfaz de programación para aplicaciones (APIs).
ANGIE ALEJANDRA FUQUEN MONTAÑEZ

 MySQL dispone de una gran cantidad de software de contribuciones, por lo que se pueden
usar herramientas disponibles en modo consola.
 Posee un buen control de acceso de usuarios y seguridad en los datos.
 Integración perfecta con el lenguaje PHP (preprocesador de hipertexto).

4. Desventajas

Un gran porcentaje de las utilidades de MySQL no están documentadas. No es intuitivo, como


otros programas (ACCESS).

5. Motores de Almacenamiento

Motor

El motor de almacenamiento (storage-engine) se encarga de almacenar, manejar y recuperar


información de una tabla. Los motores más conocidos son MyISAM e InnoDB.

InnoDB

 InnoDB dota a MySQL de un motor de almacenamiento transaccional (conforme a ACID)


con capacidades de commit (confirmación), rollback (cancelación) y recuperación de fallos.
 InnoDB realiza bloqueos a nivel de fila y también proporciona funciones de lectura
consistente sin bloqueo al estilo Oracle en sentencias SELECT (estas características
incrementan el rendimiento y la capacidad de gestionar múltiples usuarios simultáneos).
 InnoDB también soporta restricciones FOREIGN KEY en consultas SQL, aun dentro de la
misma consulta, pueden incluirse libremente tablas del tipo InnoDB con tablas de otros
tipos.

MyISAM

 Mayor velocidad en general a la hora de recuperar datos.


 Recomendable para aplicaciones que dominan las sentencias SELECT ante los
INSERT/UPDATE.
 Ausencia de características de atomicidad ya que no tiene que hacer comprobaciones de la
integridad referencial. Ni bloquear las tablas para realizar las operaciones, esto lleva a una
mayor velocidad.
 Si la tabla va a recibir INSERT, UPDATE y DELETE mucho más tiempo del que será
consultada, es recomendable usar InnoDB.
 Si se necesitan hacer búsquedas full-text, se recomienda usar MyISAM.
 Si se prefiere o se requiere diseño relacional de base de datos, se recomienda InnoDB.
 Si es un problema específico en disco o memoria RAM, es mejor pensar por MyISAM.
ANGIE ALEJANDRA FUQUEN MONTAÑEZ

PostgreSQL

1. Introducción a PostgreSQL

¿Qué es PostgreSQL?

PostgreSQL es un sistema de gestión de bases de datos relacionales objeto-relacional (ORDBMS)


de código abierto. Utiliza y extiende el lenguaje SQL combinado con muchas características
modernas que lo hacen una poderosa herramienta.

Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por
una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan
de forma desinteresada, altruista, libre y/o apoyada por organizaciones comerciales. Dicha
comunidad es denominada el PGDG (PostgreSQL Grupo de evolución global).

Lenguaje

Al igual que MySQL, PostgreSQL utiliza el lenguaje Structured Query Language (SQL) para
interactuar con la base de datos.

PostgreSQL es altamente compatible con el estándar SQL y también incluye muchas extensiones
modernas al lenguaje, como:

 Consultas complejas utilizando JOINs, SUBQUERIES, CTE, etc.


 Soporte completo para FOREIGN KEYS, disparadores, vistas, funciones e índices
 Tipos de datos adicionales como arreglos, JSON, XML, direcciones IP, etc.
 Soporte para lenguajes procedurales como PL/pgSQL y PL/Python
 Manejo avanzado de concurrencia con bloqueo de nivel de fila

Historia

PostgreSQL ha tenido una larga evolución, la cual se inicia en 1982 con el proyecto Ingres en la
Universidad de Berkeley. Este proyecto, liderado por Michael Stonebraker, fue uno de los
primeros intentos en implementar un motor de base de datos relacional. En 1985, Michael decidió
volver a la Universidad, para trabajar en un nuevo proyecto sobre la experiencia de Ingres, dicho
proyecto fue llamado post-ingres o simplemente POSTGRES.

El proyecto post-ingres pretendía resolver los problemas con el modelo de base de datos
relacional que habían sido aclarados a comienzos de los años 1980. En Postgres la base de datos
«comprendía» las relaciones y podía obtener información de tablas relacionadas utilizando reglas.
Postgres usó muchas ideas de Ingres pero no su código.
ANGIE ALEJANDRA FUQUEN MONTAÑEZ

2. Características y Capacidades

PostgreSQL tiene una amplia gama de características avanzadas, incluyendo:

 Integridad de Datos Confiable: Cumple con ACID (Atomicidad, Consistencia, Aislamiento,


Durabilidad) y ofrece respaldo por puntos en el tiempo.
 Concurrencia Multiversion: Proporciona acceso concurrente mejorado y alta conmutación
por error.
 Tipos de Datos Ricos: Incluye tipos de datos numéricos, monetarios, caracteres, binarios,
fechas/horas, entre otros.
 Integridad Referencial y Llaves Foráneas
 Replicación y Streaming de Datos
 Respaldo En Caliente
 Índices Avanzados: GiST, GIN, SP-GiST
 Consultas Complejas: Consultas anidadas, reescritura de consultas, optimización de
consultas paralelas
 Extensibilidad: Puede ser extendido por el usuario con funciones, procedimientos, tipos de
datos, operadores, etc.

PostgreSQL es una opción robusta y confiable para aplicaciones que requieren cumplir con
estándares, practicas recomendadas y un rico conjunto de características integradas.

3. Ventajas

 Código Abierto y Licencia Flexible: PostgreSQL se distribuye bajo la licencia PostgreSQL,


una licencia de código abierto permisiva similar al MIT que permite el uso, modificación y
distribución gratuita.
 Estándares Abiertos: Sigue los estándares abiertos de SQL estrechamente y se adhiere a la
mayoría de las funciones requeridas en el estándar SQL:2011.
 Multiplataforma: Disponible para varios sistemas operativos como Linux, Windows,
macOS, etc.
 Comunidad Activa y Desarrollo Continuo
 Alta Calidad y Confiable: Presenta un diseño sólido y robusto con excelente gestión de
datos y optimización de consultas.
 Integración con Lenguajes: Se integra perfectamente con lenguajes de programación como
Python, Java, C/C++, .NET, Ruby, etc.
 Ampliamente Utilizado: Postgres es muy popular en aplicaciones web, geoespaciales, de
ingeniería, operaciones de datos, etc.

4. Desventajas

 Consumo de Recursos: Postgres puede consumir más memoria y CPU que otras bases de
datos relacionales.
 Curva de Aprendizaje: Postgres es más complejo que otros sistemas, por lo que puede ser
más difícil de aprender y administrar.
ANGIE ALEJANDRA FUQUEN MONTAÑEZ

5. Motores de Almacenamiento

PostgreSQL utiliza un sistema de almacenamiento de datos basado en el concepto de "Multi-


Version Concurrency Control" (MVCC) para manejar la concurrencia y garantizar la integridad de
los datos. Los principales componentes de su motor de almacenamiento son:

1. Archivos de datos:

 Los datos se almacenan en archivos separados en el sistema de archivos.


 Cada tabla y índice se divide en varios archivos llamados "fork" que contienen
diferentes tipos de datos.
 Los forks principales son: fork de datos, fork de visibilidad y fork de mapa de bits.

2. Páginas:

 Dentro de los archivos de datos, los datos se organizan en páginas de tamaño fijo
(comúnmente 8KB).
 Cada página contiene elementos como filas, metadatos, encabezados, etc.

3. Búferes de Memoria (Shared Buffers):

 PostgreSQL utiliza un área de memoria compartida (caché) para almacenar


páginas recientemente accedidas.
 Esto reduce los costosos accesos al disco al mantener los datos utilizados
recientemente en memoria.

4. Escribir Adelante (WAL):

 PostgreSQL utiliza un registro de escritura adelantada (WAL) para garantizar la


durabilidad de las transacciones.
 Todas las modificaciones de datos se registran en archivos WAL antes de que se
confirmen a los archivos de datos.
 Esto permite la recuperación en caso de fallas y asegura la atomicidad.

5. Vacuum y Autovacuum:

 Debido al uso de MVCC, las filas antiguas permanecen en los archivos de datos
hasta ser eliminadas.
 El proceso vaccum se encarga de reutilizar el espacio ocupado por las versiones
antiguas de las filas.
 Autovacuum ejecuta vacuum automáticamente en tablas activas.

6. Control de Concurrencia MVCC:


ANGIE ALEJANDRA FUQUEN MONTAÑEZ

 PostgreSQL utiliza Multiversión para permitir lecturas consistentes mientras


ocurren escrituras concurrentes.
 Cada transacción ve una "snapshot" consistente de los datos según su momento
de inicio.
 Las filas modificadas no se sobrescriben inmediatamente, creando nuevas
"versiones".

Este diseño basado en MVCC, combinado con el registro WAL, permite que PostgreSQL maneje
eficientemente las cargas de trabajo concurrentes mientras mantiene la integridad de los datos y
facilita la recuperación en caso de fallos.
ANGIE ALEJANDRA FUQUEN MONTAÑEZ

Oracle Database

1. Introducción a Oracle Database


¿Qué es Oracle Database?
Oracle Database es un sistema de gestión de bases de datos relacionales (RDBMS) de clase
empresarial desarrollado por Oracle Corporation. Es una solución integral que soporta
todo tipo de cargas de trabajo y ofrece una gran escalabilidad.
Lenguaje
Al igual que MySQL y PostgreSQL, Oracle Database utiliza el lenguaje Structured Query
Language (SQL) con algunas extensiones propietarias.
Si bien Oracle Database utiliza SQL estándar, incorpora numerosas extensiones
propietarias al lenguaje, como:

 SQL Procedimental (PL/SQL) para escribir procedimientos, funciones y


disparadores.
 SQL Analítico con funciones de ventana, modelos, etc. para análisis de datos.
 Tipos de datos adicionales como XML, spatial, multimedia, texto.
 Secuencias, sinónimos, objetos y vistas materializadas.
 Paquetes y librerías para programación modular.
 Consultas paralelas, particionamiento y compresión de datos.
Historia
Oracle Database tiene sus orígenes en un proyecto de consultoría realizado en 1977. Los
fundadores Larry Ellison, Bob Miner y Ed Oates formaron Oracle con el objetivo de crear
un RDBMS portable y basado en SQL.
La versión 2 en 1979 fue el primer RDBMS comercial portable para mainframes y sistemas
abiertos. En 1983 salió la versión 3 con soporte de lectura consistente.
A través de los años, Oracle fue incorporando nuevas capacidades como procedimientos
almacenados, particionamiento, paralelismo, análisis SQL, Big Data, etc. Llegando a la
actual versión 19c en 2019.
2. Características y Capacidades
Oracle Database es reconocido por sus características empresariales y capacidades
avanzadas:

 Alta Disponibilidad: Oracle RAC, Data Guard, Active Data Guard


ANGIE ALEJANDRA FUQUEN MONTAÑEZ

 Procesamiento Analítico: Almacenamiento columnar, procesamiento paralelo


masivo, minería de datos, OLAP
 Seguridad Líder en la Industria: Encriptación transparente, auditoría fina,
enmascaramiento de datos
 Rendimiento y Escalabilidad: Optimización automática de SQL, compresión
avanzada, particionamiento
 Procesamiento de Transacciones en Línea (OLTP): Buen rendimiento para OLTP con
capacidades como flash cache, Smart Scan, Hybrid Columnar Compression
 Big Data SQL: Consultas sobre datos almacenados en Hadoop y Oracle NoSQL
Database
 Opciones de Almacenamiento: Oracle Automatic Storage Management (ASM),
Oracle ACFS
 Desarrollo de Aplicaciones: SQL procedural incorporado (PL/SQL), Java en la base
de datos
Oracle Database es muy adecuado para aplicaciones empresariales críticas,
procesamiento analítico y cargas de trabajo de datos masivos que requieren escalar de
manera eficiente.
3. Ventajas

 Madurez y Solidez: Oracle Database tiene décadas de desarrollo y es ampliamente


utilizado en entornos empresariales críticos.
 Conjunto Completo de Funciones: Ofrece la más amplia gama de características y
capacidades empresariales integradas.
 Alta Escalabilidad y Rendimiento: Diseñado para escalar con grandes cantidades de
datos y usuarios concurrentes.
 Soporte y Documentación Exhaustivos: Amplia documentación y soporte técnico
de calidad de Oracle.
 Cumplimiento Normativo y Certificaciones: Cumple con numerosos estándares y
certificaciones de la industria.
4. Desventajas

 Costo de Licencias: Las licencias de Oracle Database son caras, especialmente para
implementaciones de producción empresarial.
 Complejidad de Gestión: Debido a su gran cantidad de funciones, Oracle puede ser
complejo de configurar y administrar.
 Consumo de Recursos: Oracle Database suele requerir más recursos de CPU, RAM
y almacenamiento que algunas alternativas.
ANGIE ALEJANDRA FUQUEN MONTAÑEZ

5. Motores de Almacenamiento
Oracle Database utiliza una arquitectura de motores de almacenamiento flexibles y
optimizados para diferentes casos de uso. Los principales motores de almacenamiento
son:

1. Motor de Almacenamiento de Filas (Row Store)

 Es el motor de almacenamiento tradicional y más utilizado.


 Almacena las filas de datos de forma contigua en bloques de datos.
 Optimizado para cargas de trabajo OLTP con muchas operaciones DML.
 Soporta compresión avanzada para ahorrar espacio en disco.

2. Motor de Almacenamiento en Memoria (In-Memory)

 Permite almacenar tablas completamente en la memoria de acceso aleatorio.


 Ideal para cargas de trabajo analíticas y consultas ad-hoc complejas.
 Utiliza una codificación columnar densa para un uso eficiente de memoria.
 Acceso muy rápido a datos de solo lectura con cálculos al vuelo.

3. Motor de Almacenamiento Columnar (Column Store)

 Almacena los datos por columnas en lugar de por filas.


 Optimizado para consultas de lectura masiva en data warehousing.
 Logra una compresión de datos muy alta al almacenar valores repetidos.
 Mejora el rendimiento de escaneos, agrupaciones y joins de grandes volúmenes.

4. Motor de Almacenamiento en Archivo Externo (External)

 Permite acceder a datos en sistemas de archivos distribuidos como HDFS.


 Útil para analítica de datos no estructurados o semi-estructurados.
 Evita la necesidad de cargar previamente grandes volúmenes de datos.
Además, Oracle ofrece motores de almacenamiento opcionales como el Cluster Store para
bases de datos de clase Exadata y el Internet of Things (IoT) Database para dispositivos de
extremo.
ANGIE ALEJANDRA FUQUEN MONTAÑEZ

Bibliografía
Autor: Ernesto Robles

Enlace de contenido: https://prezi.com/vmkgawx_mslh/introduccion-a-mysql/

Fecha de publicación: 20 de septiembre de 2017

Bibliografía
Autor: Gabriel Bravo

Enlace de contenido: https://prezi.com/fhw-qbnhoofb/base-de-datos-postgresql/

Fecha de publicación: 12 de abril de 2015

Bibliografía
Autor: Oscar Torres

Enlace de contenido: https://prezi.com/epovkpxjoefz/oracle-database/

Fecha de publicación: 22 de septiembre de 2015

También podría gustarte