Este documento contiene información sobre diferentes tipos de bases de datos, incluyendo SQL, NoSQL, MySQL, Oracle, MongoDB y Cassandra. Explica las características clave de cada uno y proporciona ejemplos de sus ventajas y usos.
1. Actividad de Aprendizaje 4
FACILITADOR: Jorge Raymundo Tzuc Pech
ALUMNO: M.E SERGIO IVAN PEREZ SILLER
Bases de Datos
2. M.E SERGIO IVAN PEREZ SILLERBases de Datos Actividad de aprendizaje 4
¿Qué es una base de datos?
Una base de datos es una herramienta para recopilar y organizar información. Las bases de datos pueden
almacenar información sobre personas, productos, pedidos. Muchas bases de datos comienzan como una lista en
una hoja de cálculo o programa de texto. A medida que la lista aumenta su tamaño, empiezan a aparecer
redundancias e inconsistencias en los datos. Cada vez es más difícil comprender los datos en forma de lista y los
métodos de búsqueda o extracción de subconjuntos de datos para revisión son limitados. Una vez que estos
problemas comienzan a aparecer, una buena idea es transferir los datos a una base de datos creada con un sistema
de administración de bases de datos.
3. M.E SERGIO IVAN PEREZ SILLERBases de Datos Actividad de aprendizaje 4
¿Qué es una base de datos de tipo SQL?
SQL por sus siglas en inglés Structured Query Language; en español lenguaje de consulta estructurada es un lenguaje
específico del dominio que da acceso a un sistema de gestión de bases de datos relacionales que permite especificar diversos
tipos de operaciones en ellos. Una de sus características es el manejo del álgebra y el cálculo relacional que permiten
efectuar consultas con el fin de recuperar, de forma sencilla, información de bases de datos, así como hacer cambios en ellas.
Es un lenguaje declarativo de "alto nivel" o "de no procedimiento"
que, gracias a su fuerte base teórica y su orientación al manejo de
conjuntos de registros —y no a registros individuales— permite una
alta productividad en codificación y la orientación a objetos. De esta
forma, una sola sentencia puede equivaler a uno o más programas
que se utilizarían en un lenguaje de bajo nivel orientado a registros.
SQL también tiene las siguientes características:
Lenguaje de definición de datos
Lenguaje interactivo de manipulación de datos:
Integridad
Definición de vistas:
Control de transacciones:
SQL incorporado y dinámico:
Autorización:
Numeros exactos
Numeros aproximados
Fecha y hora
Cadena de caracteres
Cadena de caracteres Unicode
Cadenas binarias
Otro tipo de datos
4. M.E SERGIO IVAN PEREZ SILLERBases de Datos Actividad de aprendizaje 4
¿Qué es una base de datos No- SQL?
Una amplia clase de sistemas de gestión de datos mecanismos para el
almacenamiento y recuperación de datos que difieren, en aspectos
importantes, del modelo clásico de relaciones entre entidades o tablas
existente en los sistemas de gestión bases de datos relacionales, siendo
el más destacado el que no usan SQL como lenguaje principal de
consulta.
Aunque son conocidas desde la década de los 60
del pasado siglo, su auge actual viene
determinado por el uso que, de estos sistemas
han hecho las principales compañías de internet
como Amazon, Google, Twitter y Facebook.
Las características comunes entre todas las implementaciones
de bases de datos NoSQL suelen ser las siguientes:
Consistencia Eventual: A diferencia de
las bases de datos relacionales
tradicionales, en la mayoría de sistemas
NoSQL, no se implementan
mecanismos rígidos de consistencia que
garanticen que cualquier cambio
llevado a cabo en el sistema distribuido
sea visto, al mismo tiempo, por todos
los nodos y asegurando, también, la no
violación de posibles restricciones de
integridad de los datos u otras reglas
definidas.
Flexibilidad en el esquema: En la mayoría de base de
datos NoSQL, los esquemas de datos son dinámicos; es
decir, a diferencia de las bases de datos relacionales en
las que, la escritura de los datos debe adaptarse a unas
estructuras(o tablas, compuestas a su vez por filas y
columnas) y tipos de datos pre-definidos, en los
sistemas NoSQL, cada registro (o documento, como se
les suele llamar en estos casos) puede contener una
información con diferente forma cada vez, pudiendo así
almacenar sólo los atributos que interesen en cada uno
de ellos, facilitando el polimorfismo de datos bajo una
misma colección de información.
Estructura distribuida: Generalmente los datos se
distribuyen, entre los diferentes nodos que componen el
sistema. Hay dos estilos de distribución de datos:
Particionado (ó Sharding): El particionado distribuye los
datos entre múltiples servidores de forma que, cada
servidor, actúe como única fuente de un subconjunto de
datos.
Réplica: La réplica copia los datos entre
múltiples servidores, de forma que cada bit de datos pueda
ser encontrado en múltiples lugares. Esta réplica puede
realizarse de dos maneras: Réplica maestro-esclavo en la
que un servidor gestiona la escritura de la copia autorizada
mientras que los esclavos se sincronizan con este servidor
maestro y sólo gestionan las lecturas.
Réplica peer-to-peer en la que se permiten escrituras a
cualquier nodo y ellos se coordinan entre sí para sincronizar
sus copias de los datos
5. M.E SERGIO IVAN PEREZ SILLERBases de Datos Actividad de aprendizaje 4
¿Qué es una base de datos No- SQL?
Las características comunes entre todas las implementaciones
de bases de datos NoSQL suelen ser las siguientes:
Tolerancia a fallos y Redundancia: Así a todo, podemos agrupar los diferentes modelos de datos usados en sistemas NoSQL en cuatro
grandes categorías:
1. Base de datos de Documentos: Este tipo de base de datos almacena la información como un documento, usando para
habitualmente para ello una estructura simple como JSON, BSON o XML y donde se utiliza una clave única para cada registro.
2. Almacenamiento Clave-Valor: cada elemento está identificado por una clave única, lo que permite la recuperación de la
información de forma muy rápida, información que suele almacenarse como un objeto binario
3. Bases de datos de gráfico: Usadas para aquellos datos cuyas relaciones se pueden representar adecuadamente mediante un
gráfico.
4. Base de datos Columna: en las bases de datos de columna tenemos familias de columnas que, son los contenedores de las filas. A
diferencia de los RDBMS, no necesita conocer de antemano todas las columnas, cada fila no tiene por qué tener el mismo número
de columnas.
Escalabilidad horizontal: Por escalabilidad horizontal se entiende la posibilidad de incrementar el rendimiento del sistema añadiendo, simplemente,
más nodos (servidores) e indicando al sistema cuáles son los nodos disponibles.
6. M.E SERGIO IVAN PEREZ SILLERBases de Datos Actividad de aprendizaje 4
MySQL es un software de sistema gestión de base de datos relacional que se puede ejecutar en los sistemas operativos
GNU/Linux, Windows y Mac, se ejecuta de forma multi-thread y multiusuario y es distribuido por Oracle bajo la licencia GPL y
comercial. Este sistema gestor de base de datos es el mas popular del mundo, su uso en las aplicaciones web, tales como en
WordPres, Joomla y entre otros , Por ser distribuido bajo la licencia GPL existen diferentes apis o interfaces de programación
de aplicaciones para diversos lenguajes de programación para acceder a la base de datos de MySQL.
Ventajas
Administración multi-servidor y con una sola consola.
Ejecución y alerta de trabajos basadas en eventos.
Seguridad integrada.
Se ajusta muy bien a las necesidades cada vez mayores.
Para las bases de datos muy grandes.
.
A destacar
Ahondando en sus puntos clave, sus desarrolladores han simplificado la
parte referida a la integración de analíticas avanzadas, haciendo que el
mantenimiento de la propia base de datos resulte más sencilla para una
organización.
Garantizar la máxima seguridad y reducir las vulnerabilidades es un
objetivo de vital importancia para cualquier negocio. Con SQL Server
2016 es posible proteger tanto los datos que se encuentran ‘en reposo’
como ‘en movimiento’ gracias a la tecnología Always Encrypted. Gracias
a ella, los negocios protegen y cifran su información más preciada
7. M.E SERGIO IVAN PEREZ SILLERBases de Datos Actividad de aprendizaje 4
Oracle es un sistema de gestión de base de datos desarrollado por la compañía Oracle, este
sistema es de tipo modelo objeto relacional, por el cual es uno de los gestores de bases de
datos mas completo como: soporte de transacciones, estabilidad, escalabilidad y puede correr
en los sistemas operativos GNU/LINUX, Windows, Mac y entre otros.
Las entidades complejas del mundo real y la lógica se
pueden modelar fácilmente, lo que permite reutilizar
objetos para el desarrollo de base de datos de una
forma más rápida y con mayor eficiencia.
Los programadores de aplicaciones pueden acceder directamente a
tipos de objetos Oracle, sin necesidad de ninguna capa adicional entre
la base de datos y la capa cliente. Las aplicaciones que utilizan objetos
de Oracle son fáciles de entender y mantener porque soportan las
características del paradigma orientado a objetos.
Ventajas
Tiene buen rendimiento y hace buen uso de los recursos. Posee un rico diccionario de datos. Brinda soporte a la mayoría de
los lenguajes de programación. Es un sistema multiplataforma, disponible en Windows, Linux y Unix. Permite tener copias de
la base de datos productiva en lugares lejanos a la ubicación principal. Las copias de la Base de Datos productiva pueden
estar en modo de lectura solamente.
Desventajas
Es un producto de elevado precio por lo que por lo general se utiliza en
empresas muy grandes y multinacionales. Los costos de soporte técnico y
mantenimiento son elevados. Vulnerabilidades en la seguridad de la
plataforma, se hace necesario aplicar parches de seguridad.
8. M.E SERGIO IVAN PEREZ SILLERBases de Datos Actividad de aprendizaje 4
Ventajas
MongoDB es un sistema de base de datos NoSQL multiplataforma, orientado a documentos desarrollado bajo la
filosofía de software libre, los datos son guardados en la base datos en estructuras de datos similar a JSON de
JavaScript e incluso tiene la capacidad de realizar consultas utilizando JavaScript por el cual también existen apis
para distintos lenguajes de programación para realizar consultas e informes.
Es una base de datos no relacional, es decir, no utiliza SQL. El nombre viene del término
inglés “humongous” (colosal) y puede ser definida como una base de datos documental
sin esquema, escalable y de alto rendimiento. Algunos especialistas la han catalogado
como la “MySQL de las bases de datos NoSQL”, al ver que es una base de datos
rapidísima, sencilla en la funcionalidad ofrecida y que, como hizo MySQL hace años, se
está ganando la atención de mucha gente.
1. Almacenamiento orientado a documentos estilo JSON con esquemas dinámicos ofrecen
simplicidad y poder.
2. Soporte Full index Indices sobre cualquier atributo
3. Replicación y alta disponibilidad : Espejos entre LANs y WANs
4. Auto-Sharding : Escalabilidad horizontal sin comprometer la funcionalidad
5. Consultas:Ricas y basadas en documentos, rápidas para consultas de lectura y escritura básica.
6. Rápidas actualizaciones en el contexto
7. Mapeo y reducción: Agregación flexible y procesamiento de datos
8. GridFS: Almacena archivos de cualquier tamaño sin complicar tu “stack”.
9. Soporte comercial:Soporte comercial, capacitación y consultoría disponibles.
10. Soporta consultas dinámicas :Se pueden formular sobre cualquier valor de los documentos y no
solamente en los indexados.
Forma en que opera
Para almacenar los documentos, utiliza una serialización binaria de JSON, llamada
BSON, que es una lista ordenada de elementos simples. El núcleo de la base de
datos es capaz de interpretar su contenido, de modo que lo que a simple vista
parece un contenido binario, realmente es un documento que contiene varios
elementos. Estos datos están limitados a un tamaño máximo de 4 MB; para
tamaños superiores se requiere del uso de GridFS.
9. M.E SERGIO IVAN PEREZ SILLERBases de Datos Actividad de aprendizaje 4
Ventajas
Oracle NoSQL base de datos es una escalable , distribuida de bases de datos NoSQL, diseñado para proporcionar altamente fiable , flexible, gestión de datos y
disponible a través de una configurable conjunto de nodos de datos. Los datos pueden ser modelado como tablas de estilo de base de datos relacional,
documentos JSON o pares de clave y valor. Oracle NoSQL base de datos es un sistema fragmentados (compartido-nada), que distribuye los datos de manera
uniforme a través de los múltiples fragmentos en el clúster, basado en el valor hash de la clave primaria. Dentro de cada fragmento, nodos de datos se replican
en garantizar una alta disponibilidad, la rápida conmutación por error en el caso de un fallo de nodo y balanceo de carga óptima de las consultas.
NoSQL base de datos proporciona Java, C, Python y conductores Node.js y una API REST para simplificar el desarrollo de
aplicaciones. Base de datos NoSQL se integra con una amplia variedad de aplicaciones de código abierto Oracle relacionada y con
el fin de simplificar y agilizar el desarrollo y despliegue de aplicaciones modernas de datos grandes. NoSQL base de datos es de
doble licencia y disponible como una edición de la comunidad de código abierto, así como una licencia comercial Enterprise
Edition.
Lo que realmente diferencia NoSQL de las bases de datos relacionales es
que no es necesario que las tablas sean revisadas y actualizadas cada vez
que se necesite añadir un nuevo tipo de datos, ya que su arquitectura así lo
permite.
Alta disponibilidad, fiabilidad y escalabilidad son las características
que pretende impulsar Oracle con su “NoSQL database”. Es un terreno
donde el resto de grandes fabricantes de software han demostrado
gran interés, incluso adoptando soluciones basadas en código abierto
como la plataforma Hadoop. De hecho, Oracle espera incluirla también
en el futuro appliance que lanzará al mercado en los próximos meses.
10. M.E SERGIO IVAN PEREZ SILLERBases de Datos Actividad de aprendizaje 4
Ventajas
El desarrollo inicial de Cassandra tiene su origen en Facebook, que lo diseñó para potenciar la funcionalidad de búsqueda
en el inbox. En 2008 fue liberado como proyecto open source y en febrero de 2010 se convirtió en un proyecto top-level
de la fundación Apache. Está inspirado e influenciado por los papers de Amazon Dynamo de 2007 y de Google BigTable
de 2006. Hoy en día está mantenido y desarrollado por la compañía Datastax.
Es distribuida, lo quiere decir que la información
está repartida a lo largo de los nodos del cluster.
Además ofrece alta disponibilidad, de manera
que si alguno de los nodos se cae el servicio no se
degradará.
Escala linealmente, lo que quiere decir que el
rendimiento de forma lineal respecto al número de
nodos que añadamos. Por ejemplo, si con 2 nodos
soportamos 100.000 operaciones por segundo, con
4 nodos soportaremos 200.000. Esto da mucha
predictibilidad a nuestros sistemas.
Escala de forma horizontal, lo que quiere decir
que podemos escalar nuestro sistema añadiendo
nuevos nodos basados en hardware commodity
de bajo coste.
Lenguaje CQL
Cassandra Query Language (CQL) es el lenguaje de acceso a datos en
Cassandra, es un derivado reducido de SQL. En Cassandra los datos
están des normalizados de manera que el concepto de joins o
subqueries no existe. Podemos interactuar con Cassandra mediante
CQL a través de la shell. de CQL, cqlshell. También podemos usar
herramientas gráficas como DevCenter o a través de los drivers
soportados para múltiples lenguajes de programación.
Modelado de datos
También combina propiedades de una base de datos clave-valor y una
orientada a columnas. Como podemos ver en el siguiente diagrama la
información se organiza de manera que toda fila tiene una clave única
y una serie de pares de clave, valor de columna. Es importante tener
en mente estas características a la hora de diseñar nuestro modelo de
datos.
11. M.E SERGIO IVAN PEREZ SILLERBases de Datos Actividad de aprendizaje 4
REFERENCIAS
https://support.office.com/es-es/article/Conceptos-b%C3%A1sicos-sobre-bases-de-datos-a849ac16-07c7-4a31-9948-3c8c94a7c204
https://es.wikipedia.org/wiki/SQL
SQL. (2017, 25 de septiembre). Wikipedia, La enciclopedia libre. Fecha de consulta:
14:29, octubre 1, 2017
desde https://es.wikipedia.org/w/index.php?title=SQL&oldid=102131056.
https://aws.amazon.com/es/nosql/
http://www.revistabyte.es/analisis-byte-ti/analisis-microsoft-sql-server-2016/
https://www.ecured.cu/Oracle
http://www.silicon.es/oracle-lanza-su-base-de-datos-nosql-y-apunta-a-un-appliance-para-%E2%80%98big-data%E2%80%99-
15823?inf_by=59d121a2671db8d57e8b48c5