Este documento describe varios tipos de bases de datos, incluyendo SQL, NoSQL, MongoDB, Cassandra y Oracle. Explica las características clave de cada uno y cómo difieren en términos de estructura de datos, lenguajes de consulta y funcionalidad.
1. CURSO NACIONAL:
INFORMÁTICA
FORMACIÓN DISCIPLINAR
DOCENTES DE EDUCACIÓN MEDIA SUPERIOR
INSTITUCIONES DE EDUCACIÓN PÚBLICA DE EDUCACIÓN MEDIA
SUPERIOR
Módulo II:
Búsqueda y manejo eficiente de información electrónica
Actividad de aprendizaje 4.
Screencast y bases de datos
Sustentante:
Miguel Gilberto Pérez León
Tutor:
Eduardo José Barreiro Noh
Grupo:
G6
2. ¿Que es una base de datos ?
Se le llama base de datos a los bancos de información que contienen
datos relativos a diversas temáticas y categorizados de distinta manera,
pero que comparten entre sí algún tipo de vínculo o relación que busca
ordenarlos y clasificarlos en conjunto.
Una base de datos o banco de datos es un conjunto de datos
pertenecientes a un mismo contexto y almacenados sistemáticamente
para su posterior uso. En este sentido; una biblioteca puede considerarse
una base de datos compuesta en su mayoría por documentos y textos
impresos en papel e indexados para su consulta. Actualmente, y debido
al desarrollo tecnológico de campos como la informática y la electrónica,
la mayoría de las bases de datos están en formato digital, siendo este un
componente electrónico, por tanto se ha desarrollado y se ofrece un
amplio rango de soluciones al problema del almacenamiento de datos.
3. ¿Qué es una base de datos de tipo SQL?
La sigla que se conoce como SQL corresponde a la expresión inglesa Structured
Query Language (entendida en español como Lenguaje de Consulta Estructurado),
la cual identifica a un tipo de lenguaje vinculado con la gestión de bases de datos de
carácter relacional que permite la especificación de distintas clases de operaciones
entre éstas. Gracias a la utilización del álgebra y de cálculos relacionales, el SQL
brinda la posibilidad de realizar consultas con el objetivo de recuperar información
de las bases de datos de manera sencilla.
El científico Edgar Frank Codd (1923–2003) fue quien propuso un modelo relacional
para las bases de datos y creó un sublenguaje para acceder a los datos a partir del
cálculo de predicados. En base al trabajo de Codd, IBM (International Business
Machines) definió el lenguaje conocido como Structured English Query Language
(SEQUEL).
El SEQUEL se considera el antecesor de SQL, un lenguaje de cuarta generación que
se estandarizó en 1986. La versión más primitiva de SQL, por lo tanto, fue la que se
bautizó como SQL-86 (también conocida como SQL1).
En esencia, el SQL es un lenguaje declarativo de alto nivel ya que, al manejar
conjuntos de registros y no registros individuales, ofrece una elevada productividad
en la codificación y en la orientación a objetos. Una sentencia de SQL puede resultar
equivalente a más de un programa que emplee un lenguaje de bajo nivel.
4. ¿Qué es una base de datos No- SQL?
Es una amplia clase de sistemas de gestión de bases de datos que difieren del modelo clásico del
sistema de gestión de bases de datos relacionales (RDBMS) en aspectos importantes, el más
destacado es que no usan SQL como el principal lenguaje de consultas. Los datos almacenados
no requieren estructuras fijas como tablas, normalmente no soportan operaciones JOIN, ni
garantizan completamente ACID(atomicidad, consistencia, aislamiento y durabilidad), y
habitualmente escalan bien horizontalmente. Los sistemas NoSQL se denominan a veces "no
sólo SQL" para subrayar el hecho de que también pueden soportar lenguajes de consulta de tipo
SQL.
Por lo general, los investigadores académicos se refieren a este tipo de bases de datos como
almacenamiento estructurado, término que abarca también las bases de datos relacionales
clásicas. A menudo, las bases de datos NoSQL se clasifican según su forma de almacenar los
datos, y comprenden categorías como clave-valor, las implementaciones de BigTable, bases de
datos documentales, y Base de Datos orientadas a grafos.
Los sistemas de bases de datos NoSQL crecieron con las principales compañías de Internet,
como Google, Amazon, Twitter y Facebook. Estas tenían que enfrentarse a desafíos con el
tratamiento de datos que las tradicionales RDBMS no solucionaban. Con el crecimiento de la
web en tiempo real existía una necesidad de proporcionar información procesada a partir de
grandes volúmenes de datos que tenían unas estructuras horizontales más o menos similares.
Estas compañías se dieron cuenta de que el rendimiento y sus propiedades de tiempo real eran
más importantes que la coherencia, en la que las bases de datos relacionales tradicionales
dedicaban una gran cantidad de tiempo de proceso.
En ese sentido, a menudo, las bases de datos NoSQL están altamente optimizadas para las
operaciones recuperar y agregar, y normalmente no ofrecen mucho más que la funcionalidad de
almacenar los registros (p.ej. almacenamiento clave-valor). La pérdida de flexibilidad en tiempo
de ejecución, comparado con los sistemas SQL clásicos, se ve compensada por ganancias
significativas en escalabilidad y rendimiento cuando se trata con ciertos modelos de datos.
5. SQL Server.
Microsoft SQL Server es un sistema de manejo de bases de datos del
modelo relacional, desarrollado por la empresa Microsoft.
El lenguaje de desarrollo utilizado (por línea de comandos o mediante la
interfaz gráfica de Management Studio) es Transact-SQL (TSQL), una
implementación del estándar ANSI del lenguaje SQL, utilizado para
manipular y recuperar datos (DML), crear tablas y definir relaciones
entre ellas (DDL).
Dentro de los competidores más destacados de SQL Server están:
Oracle, MariaDB , MySQL , PostgreSQL . SQL Server solo está
disponible para sistemas operativos Windows de Microsoft. Puede ser
configurado para utilizar varias instancias en el mismo servidor físico,
la primera instalación lleva generalmente el nombre del servidor, y las
siguientes - nombres específicos (con un guion invertido entre
el nombre del servidor y el nombre de la instalación).
6. Características:
• Soporte de transacciones.
• Soporta procedimientos almacenados.
• Incluye también un entorno gráfico de administración, que permite el
uso de comandos DDL y DML gráficamente.
• Permite trabajar en modo cliente-servidor donde la información y datos
se alojan en el servidor y los terminales o clientes de la red sólo acceden
a la información.
• Además permite administrar información de otros servidores de datos.
7. En cada instalación de SQL Server hay 4 bases de datos de sistema, y la capacidad de crear
nuevas bases de datos por el usuario, en los cuales los datos están almacenados en tablas.
Las bases de datos del sistema:
• master - Todos los procedimientos, funciones y tablas del sistema que están utilizadas
por parte de todas las bases de datos y que están instaladas automáticamente, tanto
como las que han sido creado por parte de los administradores del sistema. Además,
todas las definiciones en respecto a la seguridad a nivel del servidor, están
almacenadas en esta base de datos.
• msdb - Almacenamiento de las tareas del agente, los códigos de CLR combinados en
el sistema, los paquetes de SSIS, y otros más.
• model - El molde de las bases de datos. Cada nueva base de datos se crea como una
copia de esta base de datos, menos que algo más estaba definido explícitamente.
• tempdb - Base de datos temporal que se crea de nuevo cada vez que el servicio
reinicia. Se utiliza para almacenar tablas temporales creadas por parte de los usuarios o
el sistema (por ejemplo en ordenaciones complejos).
8. Oracle.
Oracle Database es un sistema de gestión de base de datos de tipo objeto-
relacional (ORDBMS, por el acrónimo en inglés de Object-Relational Data
Base Management System), desarrollado por Oracle Corporation.
Se considera a Oracle Database como uno de los sistemas de bases de datos
más completos, destacando: soporte de transacciones, estabilidad,
escalabilidad, y soporte multiplataforma.[cita requerida]
Su dominio en el mercado de servidores empresariales había sido casi total
hasta que recientemente tiene la competencia del Microsoft SQL Server y
de la oferta de otros RDBMS con licencia libre como PostgreSQL, MySQL o
Firebird.
9. Oracle, a partir de la versión 10g Release 2, cuenta con 7 ediciones:
Enterprise Edition (EE).
Standard Edition (SE).
Standard Edition One (SE1)
Standard Edition 2 (SE2)
Express Edition (XE).
Personal Edition (PE).
Lite Edition (LE).
La única edición gratuita es la Express Edition, que es compatible con las
demás ediciones de Oracle Database 10gR2 y Oracle Database 11g.
Oracle adquirió Sun Microsystems y con ella la empresa encargada
comercial de MySQL.
La última versión de Oracle es la versión 12c, la primera base de datos
diseñada para Cloud Computing, que fue lanzada en 2013, donde con la
presentación de la llegada de esta última versión de Oracle Database 12c,
Oracle facilita los esfuerzos de las empresas para estandarizar, consolidar y
automatizar los servicios de las bases de datos en la nube.
10. MongoDB
Es un sistema de base de datos NoSQL orientado a documentos,
desarrollado bajo el concepto de código abierto.
MongoDB forma parte de la nueva familia de sistemas de base de datos
NoSQL. En lugar de guardar los datos en tablas como se hace en las base
de datos relacionales, MongoDB guarda estructuras de datos en
documentos similares a JSON con un esquema dinámico (MongoDB
utiliza una especificación llamada BSON), haciendo que la integración de
los datos en ciertas aplicaciones sea más fácil y rápida.
El desarrollo de MongoDB empezó en octubre de 2007 por la compañía de
software 10gen. Ahora MongoDB es una base de datos lista para su uso en
producción y con muchas características (features). Esta base de datos se
utiliza mucho en la industria , contando con implantaciones en empresas
como MTV Network, Craiglisto Foursquare.
El código binario está disponible para los sistemas operativos Windows,
Linux, OS X y Solaris.
11. Mongo soporta “rich documents” a diferencia de tablas planas.
• Permite almacenar “Pre-joint /embebed data” para acelerar tiempos de
acceso.
• Mongo no soporta joints, ni constraints, ni definir un esquema rígido.
• Realiza operaciones atómicas sobre un documento.
12. Oracle NoSQL.
Oracle NoSQL Database proporciona un modelo de transacción poderoso y
flexible que simplifica enormemente el proceso de desarrollo de una
aplicación basada en NoSQL. Escala horizontalmente con mayor
disponibilidad y balance de carga transparente aún cuando agrega una
nueva capacidad dinámicamente.
13. • Modelo de datos simple por medio de pares de valor clave con
índices secundarios
• Modelo de programación simple con transacciones ACID, modelos de
datos tubulares y soporte JSON
• Seguridad de aplicaciones con autenticación y cifrado SSL de nivel de
sesión
• Integrada con Oracle Database, Oracle Wallet y Hadoop
• Datos geodistribuidos con soporte para múltiples centros de datos
• Disponibilidad alta con sincronización y fallas remotas y locales
• Rendimiento escalable y latencia segura
14. Cassandra.
Es una base de datos NoSQL distribuida y basada en un modelo de almacenamiento
de «clave-valor», de código abierto que está escrita en Java. Permite grandes
volúmenes de datos en forma distribuida. Por ejemplo, lo usa Twitter para su
plataforma. Su objetivo principal es la escalabilidad lineal y la disponibilidad. La
arquitectura distribuida de Cassandra está basada en una serie de nodos iguales que
se comunican con un protocolo P2P con lo que la redundancia es máxima.
El modelo de datos de Cassandra consiste en particionar las filas, que son
reorganizadas en tablas . Las claves primarias de cada tabla tiene un primer
componente que es la clave de partición. Dentro de una partición, las filas son
agrupadas por las columnas restantes de la clave. Las demás columnas pueden ser
indexadas por separado de la clave primaria .Las tablas se pueden crear, eliminar y
alterar en tiempo de ejecución sin bloquear actualizaciones y consultas.
15. Caracteristicas:
Descentralizado
Todos los nodos del clúster tiene el mismo rol. No hay un único punto de fallo. Los
datos se distribuyen a través del clúster (por lo que cada nodo contiene datos
diferentes). No existe un nodo maestro por lo que cada nodo puede dar servicio a
cualquier solicitud.
Soporta replicación y replicación de múltiples data center
Las estrategias de replicación son configurables 22 . Cassandra está diseñado como un
sistema distribuido, para el despliegue de un gran número de nodos a través de
múltiples centros de datos. La arquitectura distribuida de Cassandra está diseñado
para desplegarse sobre múltiples data center, tener redundancia y recuperarse ante
desastres.
Escalabilidad
El rendimiento de leer y escribir aumenta linealmente a medida que se añaden
nuevos nodos. Se pueden agregar nuevos nodos sin necesidad de interrumpir la
ejecución de la aplicación.
16. Tolerancia a fallos
Los datos se replican automáticamente a múltiples nodos para recuperarse frente
a fallos. Cassandra soporta replicación a través de múltiples datacenter. Se puede
reemplazar nodos que presenten fallos sin tiempo de inactividad o interrupción
de la aplicación.
Consistencia
Se ofrece la elección de el nivel de consistencia para las lecturas y escrituras.
Soporte MapReduce
Cassandra está integrado con Apache Hadoop para soportar MapReduce. También
existe soporte para Apache Pig y Apache Hive.
Lenguaje de consulta
Cassandra introduce CQL (Cassandra Query Language), una alternativa similar a
SQL para la interfaz RPC tradicional. Existen drivers disponibles para Java (JDBC),
Python (DBAPI2), Node.JS (Helenus), Go (gocql) y C++.
17. CURSO NACIONAL:
INFORMÁTICA
FORMACIÓN DISCIPLINAR
DOCENTES DE EDUCACIÓN MEDIA SUPERIOR
INSTITUCIONES DE EDUCACIÓN PÚBLICA DE EDUCACIÓN MEDIA
SUPERIOR
Módulo II:
Búsqueda y manejo eficiente de información electrónica
Actividad de aprendizaje 4.
Screencast y bases de datos
Sustentante:
Miguel Gilberto Pérez León
Tutor:
Eduardo José Barreiro Noh
Grupo:
G6