Tema 1
Tema 1
Tema 1
datos
[1.1] ¿Cómo estudiar este tema?
TEMA 1 – Esquema
Principales arquitecturas de bases de datos
Repositorios de Arquitecturas
alm acenamiento de datos
Ideas clave
Para estudiar este tema lee las Ideas clave, además de los fragmentos indicados de los
siguientes libros disponibles en la Biblioteca Virtual UNIR:
Sarasa, A. (2016). Introducción a las bases de datos NoSQL usando Mongo DB.
Editorial UOC (páginas 17-34).
Las aplicaciones en casi todos los casos necesitarán almacenar datos en más o menos
cantidades. Para proporcionar este servicio normalmente se añade otra capa a la
arquitectura de la aplicación web que soporta el servicio de almacén de datos como
puede ser un sistema gestor de bases de datos (SGBD) como Oracle, Sql Server o DB2.
También se pueden utilizar repositorios de datos en formato XML en un fichero
de datos que puede ser accedido por la aplicación o un Directorio LDAP (Lightweight
directory access protocol).
Figura 1. Top 10 de los gestores de bases de datos más populares por DB Engines. Fuente: DB-Engines,
2021.
El SGBD es una aplicación que permite a los usuarios definir, crear y mantener la BD y
proporciona un acceso controlado a la misma. Debe prestar los siguientes servicios:
Esta arquitectura describe los datos en tres niveles de abstracción. En realidad, los
únicos datos que existen están a nivel físico almacenados en discos u otros dispositivos.
Los SGBD basados en esta arquitectura permiten que cada grupo de usuarios haga
referencia a su propio esquema externo. El SGBD debe transformar cualquier petición
de usuario (esquema externo) a una petición expresada en términos de esquema
conceptual para, finalmente, ser una petición expresada en el esquema interno que se
procesará sobre la BD almacenada. El proceso de transformar peticiones y resultados
de un nivel a otro se denomina correspondencia o transformación; el SGBD es capaz de
interpretar una solicitud de datos y realiza los siguientes pasos:
Para una BD específica solo hay un esquema interno y uno conceptual, pero puede
haber varios esquemas externos definidos para uno o para varios usuarios. Con la
arquitectura a tres niveles se introduce el concepto de independencia de datos.
Sin embargo, los dos niveles de correspondencia implican un gasto de recursos durante
la ejecución de una consulta o de un programa, lo que reduce la eficiencia del SGBD.
Por esta razón pocos SGBD han implementado la arquitectura completa.
Los SGBD son paquetes de software muy complejos que deben proporcionar una serie
de servicios que van a permitir almacenar y explotar los datos de forma eficiente. Los
componentes principales son los siguientes:
Todos los SGBD ofrecen lenguajes e interfaces apropiadas para cada tipo de usuario:
administradores, diseñadores, programadores de aplicaciones y usuarios finales. Los
lenguajes van a permitir al administrador de la BD especificar los datos que componen
la BD, su estructura, las relaciones que existen entre ellos, las reglas de integridad, los
controles de acceso, las características de tipo físico y las vistas externas de los usuarios.
Diccionario de datos
» Debe soportar las descripciones de los modelos conceptual, lógico, interno y externo
de la BD.
El DBA tiene una gran responsabilidad, ya que posee el máximo nivel de privilegios.
Será el encargado de crear los usuarios que se conectarán a la BD. En la administración
de una BD siempre hay que procurar que haya el menor número de administradores, si
es posible, una sola persona. El objetivo principal de un DBA es garantizar que la BD
cumple los fines previstos por la organización, lo que incluye una serie de tareas como:
» Estudiar las auditorías del sistema para detectar anomalías, intentos de violación de
la seguridad, etc.
» Ajustar y optimizar la BD mediante el ajuste de sus parámetros y con ayuda de las
herramientas de monitorización y de las estadísticas del sistema.
Existen diferentes tipos de modelos de bases de datos, como vamos a ver en los
próximos puntos. Qué modelo elegir para nuestra base de datos dependerá del sistema
de gestión de bases de datos que estemos usando, puesto que este debe ser compatible
con el modelo de datos (lo habitual es que los SGBD estén desarrollados para emplear
un modelo de base de datos en concreto, aunque hay algunos compatibles con múltiples
modelos).
El modelo de base de datos relacional es uno de los más comunes. Este modelo es
el que emplean las bases de datos relacionales y ordena los datos en tablas (relaciones)
compuestas por columnas y filas.
En cada fila (tupla) se incluyen datos sobre una instancia específica de la entidad (por
ejemplo, un cliente específico).
Además, el modelo también representa el tipo de relaciones entre las tablas, que
pueden ser uno a uno, uno a muchos o muchos a muchos.
Modelo jerárquico
Si vamos a emplear una base datos jerárquica, el modelo de datos que emplearemos
será el jerárquico, que se caracteriza por presentar los datos en una estructura de árbol
invertido, donde cada registro tiene un único nodo raíz del que surgen otros nodos
(registros). Los nodos en un mismo nivel son nodos padre; cada nodo padre tiene el
mismo nodo raíz y puede tener nodos hijos, pero los nodos hijos solo pueden tener un
nodo padre. Este modelo se emplea poco actualmente.
Modelo de red
El modelo en red de base de datos parte del modelo jerárquico, pero aquí se permiten
las relaciones de uno a muchos o de muchos a muchos entre registros vinculados,
teniendo registros principales múltiples. El modelo se crea a través de conjuntos de
registros relacionados; cada uno de estos conjuntos consiste en un registro propietario
o principal y uno o más registros miembros o secundarios. Además, un registro puede
ser miembro o secundario en diferentes conjuntos. Es decir, que en este modelo se
permite que los nodos hijos tengan más de uno nodo padre, de manera que se pueden
representar relaciones más complejas.
El modelo de la base de datos orientada a objetos define la base de datos como una
colección de objetos utilizados en la programación orientada a objetos (es decir,
emplear lenguajes como C++ o Java, por ejemplo). Este modelo de base de datos utiliza
tablas también, pero no solo se limita a ellas y permite almacenar información muy
detallada sobre cada objeto.
Modelo entidad-relación
Modelo plano
En el modelo de bases de datos plano, los datos se estructuran en dos dimensiones (de
ahí lo de estructura plana). Todos los objetos en una columna concreta tienen valores
del mismo tipo y todos los objetos de la misma fila están relacionados entre ellos.
Por ejemplo, en una base de datos que recoja solo el nombre de usuario y la contraseña,
cada fila recogerá el nombre y la contraseña correspondiente para cada usuario.
Este modelo tabular de base de datos es el precursor del modelo relacional.
Modelo multidimensional
Este modelo combina el modelo relacional con el jerárquico y permite extraer datos de
forma selectiva y eficaz. Sin embargo, tiene un inconveniente: no se puede modificar su
estructura, lo que obliga a diseñarlos desde cero cuando hay que introducir cambios.
Modelo semiestructurado
Cuando los datos no encajan en el formato de tablas, filas y columnas, sino que se
organizan mediante etiquetas con las que se puede agruparlos y crear jerarquías (como
ocurre con los datos de una página web), estamos hablando de datos
semiestructurados.
Para ordenar estos datos en una base de datos, podemos recurrir al modelo
semiestructurado. En este modelo no hay separación entre los datos y el esquema y
resulta útil para describir sistemas o describir interacciones entre bases de datos que no
se acogen al mismo esquema.
Modelo contexto
Modelo asociativo
» Enlaces, donde cada uno tiene un identificador único e identificadores únicos de una
fuente, verbo u objeto. La información almacenada está relacionada con la fuente y
cada uno de los tres identificadores pueden hacer referencia a un enlace o a un
elemento.
Este apartado se estudia con las páginas 17-34 del libro Introducción a las bases de
datos NoSQL usando MongoDB propuesto en la sección ¿Cómo estudiar este tema?
Ya hemos visto un modelo de bases de datos NoSQL, también llamadas bases de datos
no relacionales, el modelo de base de datos orientado a objetos, pero existen otros:
» Modelo de base de datos gráfico, similar al de red, pero más flexible, puesto
que permite que cualquier nodo se pueda conectar a cualquier otro.
» Modelo multivalor, que nace del modelo relacional, pero en el que los atributos
pueden contener una lista de datos en vez de un solo punto de datos.
» Modelo de documentos, empleado para almacenar y administrar documentos o
datos semiestructurados, en vez de datos atómicos (como hacen las bases
relacionales).
Proceso de
SGA Buffer de la Fondo común Buffer de la
usuario base de datos SQL compartido Redo_Log
Proceso de
servidor
CKPT
Sin embargo, en lugar de ver cada modelo, vamos a agrupar las ventajas y las
desventajas en torno a modelos de bases de datos SQL (como las relacionales) y
modelos de bases de datos NoSQL (como pueden ser las orientadas a objetos).
» Tienen dificultades para crecer cuando aumenta el volumen de los datos que
almacenar.
» Si es necesario introducir cambios en la base de datos, también es necesario
modificar toda la estructura.
» Complejidad en la instalación, ya que estos modelos se ven condicionados por el
sistema operativo en el que deben funcionar.
» Interfaz compleja.
» Se pueden implementar características de forma patentada, que pueden bloquear al
proveedor.
Historia de XML
Los primeros lenguajes de marcas se idearon a finales de los años sesenta para la
preparación de documentos de texto (William W. Tunnicliffe, 1967). En los años
setenta se crearon varias normas de lenguajes de marcas (GenCode, GML) para su uso
en la industria editorial. En 1986, bajo la dirección de Charles Goldfarb, investigador de
IBM, se creó el SGML (Standard Generalized Markup Language), una norma
extraordinariamente compleja y publicada como norma ISO 8879 en 1986.
En 1989, Tim Berners-Lee se basó en la sintaxis del SGML para crear el HTML, el
lenguaje de marcas de la web. Inicialmente pensada para su uso en el laboratorio
europeo CERN, la web se extendió por todo el planeta de una forma fulminante. Para
tutelar el crecimiento y organización de la web, en 1994 se creó el W3C, un organismo
internacional formado por empresas, instituciones e investigadores. El primer trabajo
del W3C fue normalizar el HTML, incorporando las novedades que aparecían
continuamente en los navegadores. Pese a ello, el crecimiento de la web seguía
aumentado las presiones para ampliar el HTML para todo tipo de usos.
El W3C decidió que la solución no podía ser seguir ampliando el HTML, sino crear
unas reglas generales para que cualquiera pudiera crear lenguajes de marcas adecuados
a sus necesidades, pero manteniendo unas estructuras y sintaxis comunes que
permitieran compatibilizarlos y tratarlos con las mismas herramientas. Ese conjunto de
reglas es el XML, cuya primera versión se publicó en 1998. Así, el XML no es un
lenguaje de marcas, pero sí la base común elegida por el W3C para sus desarrollos
posteriores.
En los primeros años del siglo XXI, el W3C planteó una triple línea de trabajo:
Veinte años después, este ambicioso plan ha fracasado. Aunque el W3C cumplió su
parte elaborando y aprobando decenas de recomendaciones en esas tres líneas de
trabajo, el mercado no las ha adoptado, especialmente en la web.
Por otro lado, aunque por unos años el XML se convirtió en la herramienta básica para
el intercambio y almacenamiento de información en muchos sectores de la informática,
poco a poco el mercado ha ido evolucionando en otras direcciones, empleando
tecnologías más sencillas no basadas en el XML.
Aunque la web haya abandonado el XML, este se sigue utilizando en muchos ámbitos
especializados para el almacenamiento y transmisión de la información, por lo que
cuesta creer que su desarrollo en esos ámbitos no sea retomado, dentro o fuera del
W3C, en los próximos años.
Figura 10. Línea del tiempo de la evolución de los lenguajes por marcas.
Tecnologías XML
Las tecnologías XML básicas desarrolladas por el W3C son las siguientes:
» XML Signature: define la sintaxis y las reglas de procesamiento para crear firmas
digitales en documentos XML.
Ventajas de XML
Un documento XML está formado por el prólogo y por el cuerpo del documento, así
como texto de etiquetas que contiene una gran variedad de efectos positivos o negativos
en la referencia opcional a la que se refiere el documento; hay que tener mucho cuidado
de esa parte de la gramática léxica para que se componga de manera uniforme. Aunque
no es obligatorio, los documentos XML pueden empezar con unas líneas que describen
la versión XML, el tipo de documento y otras cosas.
<Edit_Mensaje>
(...)
</Edit_Mensaje>
Los elementos pueden tener atributos, que son una manera de incorporar
características o propiedades a los elementos de un documento. Deben ir entre
comillas.
Las entidades predefinidas son aquellas que representan caracteres especiales para
que, de esta forma, no sean interpretados como marcado en el procesador XML.
Ejemplo:
Secciones CDATA
Es una construcción en XML para especificar datos utilizando cualquier carácter sin
que se interprete como marcado XML. No confundir con 2(#PCDATA) que es para los
elementos. Permite que caracteres especiales no rompan la estructura. Ejemplo:
Algunos de los problemas de seguridad específicos que los documentos XML pueden
sufrir son:
Este apartado se estudia con las páginas 116-125 del libro Almacenamiento de la
información e introducción a SGBD: administración de bases de datos (UF1468)
propuesto en la sección ¿Cómo estudiar este tema?
LDAP está basado en el protocolo X.500 para compartir directorios y contiene esta
información de forma jerarquizada y mediante categorías para proporcionar una
estructura intuitiva desde el punto de vista de la gestión por parte de los
administradores. Es, por así decirlo, una guía telefónica, pero con más atributos y
credenciales. En este caso utilizamos el término directorio para referirnos a la
organización de estos objetos.
[<id>]
dn: <distinguished name>
<attrtype>: <attrvalue>
<attrtype>: <attrvalue>
<attrtype>: <attrvalue>
com
profesionalreview
reviews tutoriales
Jose
Migue
Donde:
ldap://servidor:puerto/DN?atributos?ambito?filtros?extensiones
ldap://ldap.profesionalreview.com/cn=Jose%20Castillo,dc=profesionalreview,cd=com
Donde estamos buscando todos los usuarios que haya en la entrada de Jose Castillo en
profesionalreview.com
también es compatible con otros sistemas que implementen este protocolo en sus
directorios.
» Red Hat Directory Server: es un servidor que también se basa en LDAP similar a
Active Directory, pero mediante una herramienta de código abierto. Dentro de este
directorio podremos almacenar objetos como usuarios claves, grupos, políticas de
permisos, etc.
» Open DS: terminamos esta lista con el directorio basado en java de SUN
Microsystems, que posteriormente se liberaría para todos los usuarios. Por
supuesto, está desarrollado en JAVA el necesitaremos el paquete Java Runtime
Environmet para que este funcione.
» Extermal: si se utiliza TLS se deja que sea este quién se ocupa de la autenticación.
» Digest-MDE5.
» Contraseña en texto claro.
» Anónimo.
Para validar cadenas de datos de consulta a directorios LDAP, basta con permitir
únicamente los caracteres [a-z][A-Z] [0-9] y escapar o denegar todos los demás.
Material complementario
No dejes de leer…
Hasta ahora el escenario de las bases de datos (BD) ha estado dominado por lo que se
conoce como entornos SQL (lenguaje de consulta estructurado). Estas BD que se suelen
denominar relacionales siguen las reglas llamadas ACID (acrónimo inglés de atomicity,
consistency, isolation, durability). Con estas propiedades las BD garantizan que un
dato sea almacenado de manera inequívoca y con una relación definida sobre una
estructura basada generalmente en tablas que contienen filas y columnas.
No dejes de ver…
A fondo
Bases de datos
Introducción a LDAP
Enlaces relacionados
Oracle database
MongoDb
Bibliografía
Test
2. La capacidad de modificar el esquema conceptual sin tener que alterar los esquemas
externos ni los programas de aplicación:
A. Independencia física.
B. Independencia conceptual.
C. Independencia lógica.
D. Ninguna de las anteriores.
3. Se utiliza para especificar el esquema de la BD, las vistas de los usuarios y las
estructuras de almacenamiento. Es el que define el esquema conceptual y el esquema
interno:
A. Lenguajes no proceduales como SQL.
B. Lenguaje de definición de datos (LMD o DML).
C. Lenguaje de definición de datos (LDD o DDL).
D. Lenguajes de cuarta generación (4GL).