Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Funciones de un DBA y tipos de BD
1. FUNCIONES DE UN DBA
¿Qué es un DBA?
¿Cuáles son sus funciones?
2. ¿Qué es un DBA?
Un administrador de base de datos (DBA) dirige o lleva a cabo todas las actividades relacionadas
con el mantenimiento de un entorno de base de datos exitoso. Las responsabilidades incluyen el
diseño, implementación y mantenimiento del sistema de base de datos; el establecimiento de
políticas y procedimientos relativos a la gestión, la seguridad, el mantenimiento y el uso del
sistema de gestión de base de datos; y la capacitación de los empleados en la gestión y el uso
de las bases de datos. Se espera que un DBA se mantenga al tanto de las nuevas tecnologías y
los nuevos enfoques de diseño.
3. ¿Cuáles son las funciones de un DBA?
Gestión General de Base de Datos
El DBA es la persona con más conocimientos sobre base de datos en una organización. Como tal,
debe entender las reglas básicas de la tecnología de base de datos relacional y ser capaz de comunicarlos
con precisión a los demás.
Modelado de Datos y Diseño de Base de Datos
Un DBA debe ser un profesional experto en la recopilación y análisis de las necesidades del usuario
para obtener modelos de datos conceptuales y lógicos. Esta tarea es más difícil de lo que parece. Un
modelo conceptual de datos describe los requisitos de datos a un nivel muy alto, un modelo de datos
lógico proporciona en profundidad los detalles de los tipos de datos, longitudes, relaciones y
cardinalidad. El DBA utiliza técnicas de normalización para ofrecer modelos de datos que reflejen las
necesidades de los datos de la empresa.
4. o Auditoria
Una de las tareas de un DBA es identificar qué usuarios tienen acceso a insertar, actualizar o
eliminar datos, y cuándo. Una auditoría NO sólo podría ser necesaria por un tiempo limitado, para
usuarios específicos o datos específicos. También puede ser requerida 24/7 para todos los datos que se
introduzcan en el DBMS. Regularmente, para realizar las funciones de autorías los DBAs tienen que
trabajar en combinación con los auditores internos y externos de la empresa.
o Integración con aplicaciones
La mayoría de las empresas hoy en día utilizan aplicaciones de terceros (casi nadie ya desarrolla sus
propias aplicaciones in-house), muy pocas de estas aplicaciones funcionan de manera aislada. En otras
palabras, las aplicaciones tienen que interconectarse unas con otras, generalmente utilizando base de
datos como el medio para compartir los datos. Los DBAs a menudo se involucran en los procesos de
integrar las aplicaciones existentes con las bases datos que administran. Esto puede incluir la creación
de aplicaciones a medida, scripts, etc.
5. o Resguardo y recuperación de datos
Uno de los aspectos más fundamentales del trabajo del DBA es proteger los datos de la
organización. Esto incluye hacer copias de seguridad periódicas de los datos y mantenerlos a
salvo de la destrucción accidental o intencional. Además, diseñar, implementar y probar un plan de
recuperación para que cuando se presenten los problemas, los datos se pueden restaurar rápidamente.
o Inteligencia de negocios y almacenamiento de datos
Una de las áreas de mayor crecimiento para el DBA es la Inteligencia de Negocios (BI) y
almacenamiento de datos. Esto se debe a que cada vez más organizaciones están tratando de
extraer toda la información que pueda con el fin de tomar mejores decisiones de negocios.
o Planificación de capacidad
En la mayoría de las organizaciones, el número y tamaño de las bases de datos crece rápidamente.
Es la responsabilidad del DBA gestionar el creciente volumen de datos y diseñar los planes apropiados
para administrarlos. Esto incluye también la gestión del hardware donde se almacenan los datos.
6. o Administración de cambios
La configuración del servidor SQL Server o MySQL, el esquema de base de datos, el código de
Transact-SQL, y muchas otras facetas del ecosistema de aplicaciones cambian con el tiempo. A
menudo es la responsabilidad del DBA realizar el análisis de impacto antes de realizar los cambios
dentro de una DBMS. Implementar cambios, hacer pruebas piloto y documentar todos los cambios y
procedimientos es parte del trabajo de un DBA.
o Desarrollo de aplicaciones
Muchos administradores de base datos deben de desarrollar aplicaciones y scripts con el objetivo
de automatizar tareas relacionadas con la inserción, sustracción o borrado de información dentro del
manejador de base de datos. En general, éste debe de colaborar a nivel de integración de sistema
con los desarrolladores de aplicaciones, por lo que a veces se ve en la obligación de desarrollar código
para casos específicos.
7. TIPOS DE BASE DE DATOS
¿Qué es una Base de Datos?
¿Cuáles son los tipos de Base de Datos?
Modelos de Base de Datos
Un enfoque mas profundo hacia las base de datos no relacionales
8. ¿Qué es una base de datos?
Una base 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.
9. ¿Cuáles son los tipos de base de datos?
Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que
manejando, la utilidad de las mismas o las necesidades que satisfagan.
Según la variabilidad de la base de datos
Bases de datos estáticas
Son bases de datos únicamente de lectura, utilizadas primordialmente para almacenar datos
históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto
de datos a través del tiempo, realizar proyecciones, tomar decisiones y realizar análisis de datos
para inteligencia empresarial.
Bases de datos dinámicas
Son bases de datos donde la información almacenada se modifica con el tiempo,
permitiendo operaciones como actualización, borrado y edición de datos, además de las
operaciones fundamentales de consulta. Un ejemplo, puede ser la base de datos utilizada en un
sistema de información de un supermercado.
10. Según el contenido
o Bases de datos bibliográficas
Solo contienen una subrogante (representante) de la fuente primaria, que permite localizarla. Un
registro típico de una base de datos bibliográfica contiene información sobre el autor, fecha de
publicación, editorial, título, edición, de una determinada publicación, etc. Puede contener un resumen
o extracto de la publicación original, pero nunca el texto completo, porque si no, estaríamos en
presencia de una base de datos a texto completo (o de fuentes primarias —ver más abajo). Como
nombre lo indica, el contenido son cifras o números. Por ejemplo, una colección de resultados de
análisis de laboratorio, entre otras.
o Bases de datos de texto completo
Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones
una colección de revistas científicas.
11. Modelos de Base de Datos
Además de la clasificación por la función de las bases de datos, estas también se pueden clasificar
de acuerdo a su modelo de administración de datos.
Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de
datos (algo en donde se guardan los datos), así como de los métodos para almacenar y recuperar
datos de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que
permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren
a algoritmos, y conceptos matemáticos.
Algunos modelos con frecuencia utilizados en las bases de datos:
12. Bases de datos jerárquicas
o En este modelo los datos se organizan en forma de árbol invertido (algunos dicen raíz), en donde
padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los
que no tienen hijos se los conoce como hojas.
o Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran
volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran
rendimiento.
o Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la
redundancia de datos.
Base de datos de red
o Este es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del
concepto de nodo: se permite que un mismo nodo tenga varios padres.
o Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al
de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una
de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que
por usuarios finales.
13. Bases de datos transaccionales
o Son bases de datos cuyo único fin es el envío y recepción de datos a grandes velocidades, estas bases
muy poco comunes y están dirigidas por lo general al entorno de análisis de calidad, datos de
e industrial, es importante entender que su fin único es recolectar y recuperar los datos a la mayor
velocidad posible, por lo tanto la redundancia y duplicación de información no es un problema como
las demás bases de datos, por lo general para poderlas aprovechar al máximo permiten algún tipo de
conectividad a bases de datos relacionales.
o Un ejemplo habitual de transacción es el traspaso de una cantidad de dinero entre cuentas bancarias.
Normalmente se realiza mediante dos operaciones distintas, una en la que se debita el saldo de la
origen y otra en la que acreditamos el saldo de la cuenta destino. Para garantizar la atomicidad del
(es decir, para que no aparezca o desaparezca dinero), las dos operaciones deben ser atómicas, es decir,
sistema debe garantizar que, bajo cualquier circunstancia (incluso una caída del sistema), el resultado
es que, o bien se han realizado las dos operaciones, o bien no se ha realizado ninguna.
14. Bases de datos multidimensionales
o Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos
Básicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de
datos relacional podría serlo también en una base de datos multidimensional), la diferencia está más
a nivel conceptual; en las bases de datos multidimensionales los campos o atributos de una tabla
ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan métricas que se
aprender.
Bases de datos documentales
o Permiten la indexación a texto completo, y en líneas generales realizar búsquedas más potentes, sirven
para almacenar grandes volúmenes de información de antecedentes históricos. Tesaurus es un sistema
índices optimizado para este tipo de bases de datos.
Bases de datos deductivas
o Un sistema de base de datos deductiva, es un sistema de base de datos pero con la diferencia de que
permite hacer deducciones a través de inferencias. Se basa principalmente en reglas y hechos que son
almacenados en la base de datos. Las bases de datos deductivas son también llamadas bases de datos
lógicas, a raíz de que se basa en lógica matemática. Este tipo de base de datos surge debido a las
limitaciones de la Base de Datos Relacional de responder a consultas recursivas y de deducir relaciones
indirectas de los datos almacenados en la base de datos.
15. Bases de datos relacionales
o Este es el modelo utilizado en la actualidad para representar problemas reales y administrar datos
dinámicamente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los
laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los
modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían
considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese a que esta es la teoría de
las bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza de una
más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta
por registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla).
o En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de
otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de
entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser
recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para
administrar la información.
o El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured
Query Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales
motores o sistemas de gestión de bases de datos relacionales.
16. Bases de datos orientadas a objetos
o Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de
almacenar en la base de datos los objetos completos (estado y comportamiento).
Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos
importantes del paradigma de objetos:
Encapsulación - Propiedad que permite ocultar la información al resto de los objetos, impidiendo
accesos incorrectos o conflictos.
Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una
de clases.
Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de
objetos.
o En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como
parte de la definición de la base de datos. Una operación (llamada función) se especifica en dos partes.
interfaz (o signatura) de una operación incluye el nombre de la operación y los tipos de datos de sus
argumentos (o parámetros). La implementación (o método) de la operación se especifica
puede modificarse sin afectar la interfaz.
17. Un enfoque mas profundo hacia las bases de
datos no relacionales
Conocidas como NoSQL, están diseñadas para superar desafíos específicos de administración de
datos, como por ejemplo, proporcionar acceso rápido a poderosas aplicaciones en tiempo real,
ordenar los datos en formatos no tradicionales o evitar los costes y tiempos necesarios para
desarrollar un esquema de base de datos convencional.
La irrupción de las bases de datos NoSQL presenta desafíos a los proveedores de bases de datos
ya establecidos, y nuevas opciones para los propietarios de los datos.
Además de lo comentado anteriormente, las bases de datos NoSQL son sistemas de
almacenamiento de información que no cumplen con el esquema entidad–relación. Tampoco
utilizan una estructura de datos en forma de tabla donde se van almacenando los datos sino que
para el almacenamiento hacen uso de otros formatos como clave–valor, mapeo de columnas o
grafos (ver epígrafe ‘Tipos de bases de datos NoSQL’).
18. Ventajas de los sistemas NoSQL
Esta forma de almacenar la información ofrece ciertas ventajas sobre los modelos relacionales. Entre
las ventajas más significativas podemos destacar:
Se ejecutan en máquinas con pocos recursos: Estos sistemas, a diferencia de los sistemas
basados en SQL, no requieren de apenas computación, por lo que se pueden montar en
máquinas de un coste más reducido.
Escalabilidad horizontal: Para mejorar el rendimiento de estos sistemas simplemente se consigue
añadiendo más nodos, con la única operación de indicar al sistema cuáles son los nodos que
están disponibles.
Pueden manejar gran cantidad de datos: Esto es debido a que utiliza una estructura distribuida,
en muchos casos mediante tablas Hash.
No genera cuellos de botella: El principal problema de los sistemas SQL es que necesitan
transcribir cada sentencia para poder ser ejecutada, y cada sentencia compleja requiere además
de un nivel de ejecución aún más complejo, lo que constituye un punto de entrada en común,
que ante muchas peticiones puede ralentizar el sistema.
19. Principales diferencias con las bases de datos
SQL
Algunas de las diferencias más destacables que nos podemos encontrar entre los sistemas NoSQL y los
sistemas SQL están:
No utilizan SQL como lenguaje de consultas. La mayoría de las bases de datos NoSQL evitan utilizar este
tipo de lenguaje o lo utilizan como un lenguaje de apoyo. Por poner algunos ejemplos, Cassandra utiliza
el lenguaje CQL, MongoDB utiliza JSON o BigTable hace uso de GQL.
No utilizan estructuras fijas como tablas para el almacenamiento de los datos. Permiten hacer uso de
otros tipos de modelos de almacenamiento de información como sistemas de clave–valor, objetos o
grafos.
No suelen permitir operaciones JOIN. Al disponer de un volumen de datos tan extremadamente grande
suele resultar deseable evitar los JOIN. Esto se debe a que, cuando la operación no es la búsqueda de
una clave, la sobrecarga puede llegar a ser muy costosa. Las soluciones más directas consisten en
desnormalizar los datos, o bien realizar el JOIN mediante software, en la capa de aplicación.
Arquitectura distribuida. Las bases de datos relacionales suelen estar centralizadas en una única máquina
o bien en una estructura máster–esclavo, sin embargo en los casos NoSQL la información puede estar
compartida en varias máquinas mediante mecanismos de tablas Hash distribuidas.
20. Tipos de bases de datos
NoSQL
Dependiendo de la forma en la que
almacenen la información, nos podemos
encontrar varios tipos distintos de bases de
datos NoSQL. Veamos los tipos más
utilizados:
Bases de datos clave – valor
Son el modelo de base de datos NoSQL
más popular, además de ser la más sencilla
en cuanto a funcionalidad. En este tipo de
sistema, cada elemento está identificado
por una llave única, lo que permite la
recuperación de la información de forma
muy rápida, información que
habitualmente está almacenada como un
objeto binario (BLOB). Se caracterizan por
ser muy eficientes tanto para las lecturas
como para las escrituras.
Algunos ejemplos de este tipo son
Cassandra, BigTable o HBase.
21. Bases de datos documentales
Este tipo almacena la información como un
documento, generalmente utilizando para ello una
estructura simple como JSON o XML y donde se
utiliza una clave única para cada registro. Este tipo
de implementación permite, además de realizar
búsquedas por clave–valor, realizar consultas más
avanzadas sobre el contenido del documento. Son
las bases de datos NoSQL más versátiles. Se
pueden utilizar en gran cantidad de proyectos,
incluyendo muchos que tradicionalmente
funcionarían sobre bases de datos relacionales.
Algunos ejemplos de este tipo son MongoDB o
CouchDB.
22. Bases de datos en grafo
En este tipo de bases de datos, la información se
representa como nodos de un grafo y sus
relaciones con las aristas del mismo, de manera
que se puede hacer uso de la teoría de grafos
para recorrerla. Para sacar el máximo rendimiento
a este tipo de bases de datos, su estructura debe
estar totalmente normalizada, de forma que cada
tabla tenga una sola columna y cada relación dos.
Este tipo de bases de datos ofrece una navegación
más eficiente entre relaciones que en un modelo
relacional.
Algunos ejemplos de este tipo son Neo4j, InfoGrid
o Virtuoso.
23. Bases de datos orientadas a
objetos
En este tipo, la información se representa
mediante objetos, de la misma forma que son
representados en los lenguajes de programación
orientada a objetos (POO) como ocurre en JAVA,
C# o Visual Basic .NET.
Algunos ejemplos de este tipo de bases de datos
son Zope, Gemstone o Db4o.
24. Ejemplos de bases de datos
NoSQL
Veamos a continuación algunas tipos de
bases NoSQL más utilizadas actualmente.
1.- Cassandra
Se trata de una base de datos creada por
Apache del tipo clave–valor. Dispone de
un lenguaje propio para realizar
consultas CQL (Cassandra Query
Language). Cassandra es una aplicación
Java por lo que puede correr en cualquier
plataforma que cuente con la JVM.
25. 2.- Redis
Se trata de una base de datos creada por
Salvatore Sanfilippo y Pieter Noordhuis y está
apoyado por VMWare. Se trata de una base de
datos del tipo clave–valor. Se puede imaginar
como un array gigante en memoria para
almacenar datos, datos que pueden ser cadenas,
hashes, conjuntos de datos o listas. Tiene la
ventaja de que sus operaciones son atómicas y
persistentes. Por ponerle una pega, Redis no
permite realizar consultas, sólo se puede insertar y
obtener datos, además de las operaciones
comunes sobre conjuntos (diferencia, unión e
inserción). Creado en ANSI C, por lo tanto es
compatible y funciona sin problemas en sistemas
Unix, Linux y sus derivados, Solaris, OS/X sin
embargo no existe soporte oficial para
plataformas Windows.
26. 3.- MongoDB
Se trata de una base de datos creada por 10gen
del tipo orientada a documentos, de esquema
libre, es decir, que cada entrada puede tener un
esquema de datos diferente que nada tenga que
ver con el resto de registros almacenados. Es
bastante rápido a la hora de ejecutar sus
operaciones ya que está escrito en lenguaje C++.
Para el almacenamiento de la información, utiliza
un sistema propio de documento conocido con el
nombre BSON, que es una evolución del conocido
JSON pero con la peculiaridad de que puede
almacenar datos binarios. En poco tiempo,
MongoDB se ha convertido en una de las bases
de datos NoSQL favoritas por los desarrolladores.
27. 4.- CouchDB
Se trata de un sistema creado por Apache y
escrito en lenguaje Erlang que funciona en la
mayoría de sistemas POSIX, incluyendo
GNU/LINUX y OSX, pero no así en sistemas
Windows. Como características más importantes
cabe destacar el uso de Restfull HTTP API como
interfaz y JavaScript como principal lenguaje de
interacción. Para el almacenamiento de los datos
se utiliza archivos JSON. Permite la creación de
vistas, que son el mecanismo que permite la
combinación de documentos para retornar valores
de varios documentos, es decir, CouchDB permite
la realización de las operaciones JOIN típicas de
SQL.
28. ¿SQL o NoSQL? Esa es la pregunta
Algunas de las razones que nos pueden llevar a decantarnos por el uso de las bases de datos
NoSQL en lugar de las clásicas SQL son:
o Cuando el volumen de los datos crece muy rápidamente en momentos puntuales, pudiendo
llegar a superar el Terabyte de información.
o Cuando la escalabilidad de la solución relacional no es viable tanto a nivel de costes como a
nivel técnico.
o Cuando tenemos elevados picos de uso del sistema por parte de los usuarios en múltiples
ocasiones.
o Cuando el esquema de la base de datos no es homogéneo, es decir, cuando en cada
inserción de datos la información que se almacena puede tener campos distintos.
29. Grandes compañías que utilizan este tipo de
bases de datos
Son muchas las grandes empresas que hacen uso de este tipo de bases de datos no relacionales,
como:
o Cassandra: Facebook, Twitter…
o HBase: Yahoo, Adobe…
o Redis: Flickr, Instagram, Github…
o Neo4j: Infojobs…
o MongoDB: FourSquare, SourceForge, CERN…