Resumen UD 1.
BBDD
Las necesidades de almacenamiento y gestión de información podían satisfacerse utilizando un
número relativamente reducido de archivos en papel agrupados y ordenados, los típicos ficheros
clásicos.
La informática adaptó sus herramientas para que los elementos que el usuario maneja en el
ordenador se parezcan a los que utilizaba manualmente. Así en informática se sigue hablado de
ficheros, formularios, carpetas, directorios,...
El elemento que permitió llevar a cabo el almacenamiento de datos de forma permanente en
dispositivos de memoria masiva fue el fichero o archivo.
>>> Fichero o archivo: conjunto de información relacionada, tratada como un todo y organizada
de forma estructurada. Es una secuencia de dígitos binarios que organiza información relacionada
con un mismo aspecto.
Los ficheros están formados por registros lógicos que contienen datos relativos a un mismo
elemento u objeto. A su vez, los registros están divididos en campos que contienen cada una de las
informaciones elementales que forman un registro.
La cantidad de información que es transferida entre el soporte, y la memoria principal, en una sola
operación de lectura/grabación, recibe el nombre de registro físico o bloque. Al número de
registros que entran en un bloque se le conoce con el nombre de factor de blocaje, y agrupar varios
registros en un bloque se le llama bloqueo de registros.
1. Tipos de ficheros
A) Ficheros permanentes: Contienen los datos necesarios para el funcionamiento una aplicación.
Tienen un periodo de permanencia en el sistema amplio. Estos se subdividen en:
• Ficheros maestros: Contienen el estado actual de los datos. Pueden modificarse y son el
núcleo de la aplicación. Ejemplo: datos de usuario.
• Ficheros constantes: Contienen datos fijos. No suelen modificarse y se usan para consultas.
Ejemplo: Códigos postales.
• Ficheros históricos: Contienen datos que fueron considerados actuales anteriormente. Se
usan para reconstruir situaciones. Ejemplo: usuarios que se han dado de baja.
B) Ficheros temporales: Almacenan información útil para una parte de la aplicación. Periodo corto
de existencia. Se subdividen en:
• Ficheros intermedios: almacenan resultados de una aplicación que serán utilizados por otra.
• Ficheros de maniobras: almacenan datos que no pueden ser mantenidos en memoria
principal por falta de espacio.
• Ficheros de resultados: almacenan datos que van a ser transferidos a un dispositivo de
salida.
2. Tipos de Soportes de información
Los ficheros se almacenan en soportes manejados por periféricos que permiten leer y grabar datos.
Los soportes más utilizados para almacenar los ficheros son las cintas magnéticas y los discos.
Tipos de soporte:
• Soportes de Acceso Directo a los datos (Por ejemplo: discos). Son los más empleados y el
acceso a los datos puede hacerse de forma directa, pudiendo colocarnos en la posición que
nos interesa y leer a partir de ella.
• Soportes de Acceso Secuencial (Por ejemplo: cintas magnéticas). Se suelen usar en copias
de seguridad y si deseamos leer un dato que está en la mitad de la cinta, tendremos que leer
todo lo que hay hasta llegar a esa posición.
Métodos de acceso a datos
• Proporcionar un acceso rápido a los registros.
• Conseguir economizar el almacenamiento.
• Facilitar la actualización de los registros.
• Permitir que la estructura refleje la organización real de la información.
a) Ficheros secuenciales
Se caracterizan por almacenar sus registros de forma contigua. La única forma de acceder a ellos es
leyendo un registro tras otro, de principio a fin. Suelen contener una marca de fin de fichero EOF
(End of File). Para detectar el final del fichero sólo es necesario encontrar la marca EOF.
Pueden usar soportes no direccionables o de acceso secuencial, como cintas magnéticas. También se
usa en CD de audio y DVD de vídeo. Se identifican por uno de sus campos llamado clave o llave.
Características:
• La lectura siempre se realiza hacia delante.
• Son ficheros monousuario, no permiten el acceso simultáneo de varios usuarios.
• Tienen una estructura rígida de campos. Todos los registros deben aparecer en orden.
• El modo de apertura del fichero, condiciona la lectura o escritura.
• Aprovechan al máximo el soporte de almacenamiento, al no dejar huecos vacíos.
• Se pueden grabar en cualquier tipo de soporte, tanto en secuenciales como direccionables.
• Todos los lenguajes de programación disponen de instrucciones para este tipo de ficheros.
• No se pueden insertar registros entre los que ya están grabados.
b) Ficheros de acceso directo.
Permiten acceder indicando la posición del registro, generalmente a través de una clave. Se pueden
almacenar en memorias masivas como discos magnéticos.
>>>Campo clave: campo que permite identificar y localizar un registro de manera ágil y
organizada.
Cada registro se guarda en una posición física que depende del espacio disponible. Para acceder a la
posición se usa una dirección o índice, no es necesario recorrer todo el fichero.
Características:
• Posicionamiento inmediato.
• Registros de longitud fija.
• Apertura del fichero en modo mixto, para lectura y escritura.
• Permiten múltiples usuarios.
• Los registros se borran colocando un cero en la posición que ocupan.
• Permiten la utilización de algoritmos de compactación de huecos.
• Los archivos se crean con un tamaño definido.
• Esta organización sólo es posible en soportes direccionables.
• Se usan cuando el acceso a los datos se hace siempre con la misma clave y la velocidad de
acceso a un registro es lo que más importa.
• Permiten la actualización de los registros en el mismo fichero, sin necesidad de copiar el
fichero.
• Permiten realizar procesos de actualización en tiempo real.
c) Ficheros indexados.
Usan índices, que permiten acceder a un registro de forma directa.
Existe una zona de registros en la que se encuentran los datos del archivo y una zona de índices,
que tiene la tabla con las claves y posiciones. La tabla de índices estará ordenada por el campo
clave.
Características:
• Los registros deben tener un campo (o varios) que permita identificarlos de forma única. Se
le llama campo clave y va a servir de índice. Pueden tener varios campos clave, al menos
uno de ellos NO admitirá valores duplicados (Clave Primaria). Los demás se llaman claves
alternativas.
• Permiten utilizar el modo de acceso secuencial y el modo de acceso directo para leer la
información guardada en sus registros.
• Para acceder usando el modo de acceso directo se debe conocer el campo clave. Así el SO
consulta el índice averigua la posición.
• Para acceder usando el modo de acceso secuencial los registros son leídos por el campo
clave, independientemente del orden en que se fueron grabando.
• Solamente se puede grabar en un soporte direccionable. Por ejemplo, un disco magnético.
d) Otros tipos de ficheros
Ficheros Secuenciales Indexados:Al igual que en los ficheros indexados existe una zona de
índices y otra zona de registros de datos, pero esta última se encuentra dividida en segmentos
(bloques de registros) ordenados.
Características:
• Permite el acceso secuencial.
• Los registros se leen ordenados por el campo clave.
• Permite el acceso directo a los registros. Aunque realmente es emulado.
• Se pueden actualizar los registros en el mismo fichero.
• Ocupa mas espacio en el disco que los ficheros secuenciales, debido al uso del área de
índices.
• Solo se puede utilizar soportes direccionables.
• Obliga a una inversión económica mayor, por la necesidad de programas y, a veces,
hardware mas sofisticados.
2. Ficheros de Acceso Calculado o Hash: La técnica del acceso calculado o hash, permite accesos
más rápidos, ya que en lugar de consultar una tabla, se utiliza una función matemática (función de
hashing) que a partir de la clave genera la dirección de cada registro. Puede darse el problema de
que se obtenga la misma dirección al aplicar la función matemática y se le denomina colisión, y las
claves que generan la misma dirección se conocen por sinónimos. Para llevar a cabo la
transformación existen multitud de métodos, siendo algunos:
• Módulo: La dirección será igual al resto de la división entera entre la clave y el número de
registros.
• Extracción: La dirección será igual a una parte de las cifras que se extraen de la clave.
Parámetros de utilización
Mediante la utilización de parámetros de referencia, podremos determinar el uso de un fichero.
Estos parámetros son:
1. Capacidad o volumen: es el espacio, en caracteres, que ocupa el fichero.
2. Actividad: permite conocer la cantidad de consultas y modificaciones que se realizan en el
fichero. Para poder especificar la actividad se debe tener en cuenta:
• Tasa de consulta o modificación: que es el porcentaje de registros consultados o
modificados.
• Frecuencia de consulta o modificación: número de veces que se accede al fichero
para hacer una consulta.
3. Volatilidad: mide la cantidad de inserciones y borrados que se efectúan en un fichero. Para
determinar la volatilidad es necesario conocer:
• Tasa de renovación: es el tanto por ciento de registros renovados en cada tratamiento del
fichero.
• Frecuencia de renovación: es el número de veces que se accede al fichero para renovarlo.
• Crecimiento: es la variación de la capacidad del fichero y se mide con la tasa de
crecimiento.
3. Bases de Datos
Permite reunir toda la información relacionada en un único sistema y ser usada de forma
independiente.
>>>Base de datos: Colección de datos relacionados lógicamente con definición y descripción
comunes y estructurados. Conjunto estructurado de datos que representa entidades y sus
interrelaciones, con la mínima redundancia y pudiendo acceder a ellos varias aplicaciones y
usuarios.
La base de datos también almacena una descripción de los datos. Esta descripción se denomina
metadatos, se almacena en el diccionario de datos o catálogo y es lo que permite que exista
independencia de datos lógica-física.
Una base de datos constará de:
• Entidades: Objetos de los que se almacena información. Ejemplo: Alumno, Profesor,
Animal.
• Atributos: son los datos que se almacenan de la entidad. Cualquier propiedad o
característica puede ser atributo. Ejemplo: Nombre, DNI, Teléfono.
• Registros: donde se almacena la información de cada entidad. Ejemplo: Fechas, IDs
• Campos: donde se almacenan los atributos de cada registro. Ejemplo: (Nombre) Paco
•
Ventajas de las bases de datos:
• Acceso múltiple – Diversos usuarios o aplicaciones podrán acceder a la base de datos.
• Utilización múltiple – Cada uno de los usuarios o aplicaciones sólo accederá a la parte que
le corresponde.
• Flexibilidad – La forma de acceder a la información puede ser establecida de diferentes
maneras, ofreciendo tiempos de respuesta muy reducidos.
• Confidencialidad y seguridad – El control de acceso a los datos podrá ser establecidos
para que se acceda a unos datos y a otros no, impidiendo que usuarios no autorizados puedan
usar la base de datos.
• Protección contra fallos – En caso de errores en la información, existen mecanismos bien
definidos que permiten recuperar los datos de forma fiable.
• Independencia física – Un cambio en el soporte físico no afectará a la base de datos o a las
aplicaciones que acceden a ellos.
• Independencia lógica – Los cambios realizados a la base de datos no afectan a las
aplicaciones que la usan.
• Redundancia – Los datos se almacenan por lo general una única vez.
• Interfaz de alto nivel – Mediante el uso de lenguajes de alto nivel la base de datos puede
usarse de forma sencilla y cómoda.
• Consulta directa – Existe una herramienta para poder acceder a los datos interactivamente.
Usos de las Bases de datos
¿Quién utiliza las bases de datos?
El administrador – Es la persona encargada de la creación de la base de datos. Quien escoge los
tipos de ficheros, los índices, la ubicación de éstos, etc. En general quien toma las decisiones
relacionadas con el funcionamiento físico del almacenamiento de la información. También
establecerá la política de seguridad y acceso.
Los diseñadores – Son las personas encargadas de diseñar cómo será la base de datos. Llevarán a
cabo la identificación de los datos, las relaciones entre ellos, sus restricciones, etc.
Los programadores – Una vez diseñada y construida la base de datos, los programadores se
encargarán de implementar los programas de aplicación que servirán a los usuarios finales.
Los usuarios finales – Son los clientes finales de la base de datos. Al diseñar, implementar y
mantener la base de datos se busca cumplir los requisitos del cliente para la gestión de su
información.
¿Para qué se utilizan las bases de datos?
• Banca: información de clientes, cuentas, transacciones, préstamos, etc.
• Líneas aéreas: información de clientes, horarios, vuelos, destinos, etc.
• Universidades: información de estudiantes, carreras, horarios, materias, etc.
• Telecomunicaciones: para guardar registros de llamadas realizadas, generar facturas
mensuales, mantener el saldo de las tarjetas telefónicas de prepago, etc
• Medicina: información hospitalaria, biomedicina, genética, etc.
• Justicia y Seguridad: delincuentes, casos, sentencias, investigaciones, etc.
• Legislación: normativa, registros, etc.
• Organismos públicos: datos ciudadanos, certificados, etc.
• Sistemas de posicionamiento geográfico.
• Hostelería y turismo: reservas de hotel, vuelos, excursiones, etc.
• Ocio digital: juegos online, apuestas, etc.
• Cultura: gestión de bibliotecas, museos virtuales, etc.
• Etc.
Ubicación de la información
• Discos SATA:Es una interfaz de transferencia de datos entre la placa base y algunos
dispositivos de almacenamiento. SATA proporciona mayores velocidades, mejor
aprovechamiento cuando hay varias unidades, mayor longitud del cable de transmisión de
datos y capacidad para insertar el dispositivo sin tener que apagar el ordenador.
• Discos SCSI: Son interfaces preparadas para discos duros de gran capacidad de
almacenamiento y velocidad de rotación.
• RAID: acrónimo de Redundant Array of Independent Disks o matriz de discos
independientes, es un contenedor de almacenamiento redundante. Se basa en el montaje en
conjunto de dos o más discos duros, formando un bloque de trabajo, para obtener desde
una ampliación de capacidad a mejoras en velocidad y seguridad de almacenamiento.
Distintos sistemas de RAID:
• Sistemas NAS: Es el acrónimo de Network Attached Storage ó sistema de
almacenamiento masivo en red. Permiten compartir la capacidad de almacenamiento
con ordenadores personales o servidores clientes a través de una red.
• Sistemas SAN: Acrónimo de Storage Area Network o red de área de
almacenamiento. Se trata de una red concebida para conectar servidores, matrices
(arrays) de discos y librerías de soporte.
4. Modelos de bases de datos
En la actualidad el modelo de bases de datos más extendido es el relacional.
• Modelo Jerárquico
La información se organiza con un jerarquía que siempre es del tipo padre/hijo. Existen nodos que
contienen atributos o campos y que se relacionarán con sus nodos hijos, pudiendo tener cada nodo
más de un hijo, pero un sólo padre.
Los datos de este modelo se almacenan en estructuras lógicas llamadas segmentos. Los segmentos
se relacionan entre sí utilizando arcos. La forma visual de este modelo es de árbol invertido.
• Modelo en red
El modelo en red organiza la información en registros (también llamados nodos) y enlaces. En los
registros se almacenan los datos, y los enlaces permiten relacionar estos datos. Las bases de datos
en red son parecidas a las jerárquicas sólo que en ellas puede haber más de un padre.
Su manejo es muy complicado. Al no tener que duplicar la información se ahorra espacio de
almacenamiento.
• Modelo relacional
La base de datos es percibida por el usuario como un conjunto de tablas.
El modelo relacional utiliza tablas bidimensionales (relaciones).Cada relación (tabla) posee un
nombre que es único y contiene un conjunto de columnas. Se llamará registro, entidad o tupla a
cada fila de la tabla y campo o atributo a cada columna de la tabla.
A los conjuntos de valores que puede tomar un atributo, se le denomina dominio.
Una clave será un atributo o conjunto de atributos que identifique de forma única a una tupla.
Las tablas deben cumplir una serie de requisitos:
• Todos los registros son del mismo tipo.
• La tabla sólo puede tener un tipo de registro.
• No existen campos o atributos repetidos.
• No existen registros duplicados.
• No existe orden en el almacenamiento de los registros.
• Cada registro o tupla es identificada por una clave que puede estar formada por uno o varios
campos o atributos.
Modelo orientado a objetos
Define una base de datos en términos de objetos, sus propiedades y sus operaciones. Los objetos
con la misma estructura y comportamiento pertenecen a una clase, y las clases se organizan en
jerarquías. Las operaciones de cada clase se especifican en métodos.
Los conceptos más importantes son:
• Encapsulación - Permite ocultar la información al resto de los objetos, impidiendo así
accesos incorrectos o conflictos.
• Herencia - Los objetos heredan comportamiento dentro de una jerarquía de clases.
• Polimorfismo - Una operación (método) mediante la cual puede ser aplicada a distintos
tipos de objetos.
Modelo 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 si no que hacen uso de otros formatos
como clave-valor, mapeo de columnas o grafos, etc.
Ventajas:
• Se pueden ejecutar en máquinas con pocos recursos: No requieren de apenas computación.
• Escalabilidad horizontal. Para mejorar el rendimiento de estos sistemas se añaden 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 utilizan 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, muchas peticiones pueden ralentizar el
sistema.
Diferencias entre SQL y NoSQL:
• No utilizan SQL como lenguaje de consultas o lo utilizan como lenguaje de apoyo.
• No utilizan estructuras fijas como tablas para el almacenamiento de datos.
• No suelen permitir operaciones JOIN. Al disponer de un volumen de datos tan
extremadamente grande cuando la operación no es la búsqueda de una clave, la sobrecarga
puede llegar a ser muy costosa.
• Arquitectura distribuida. Las bases de datos relacionales suelen estar centralizadas en una
única máquina, en las NoSQL la información puede estar compartida en varias máquinas
mediante mecanismos de tablas Hash distribuidas.
Tipos de NoSQL:
a. Bases de datos clave-valor. NoSQL más popular y la más sencilla en cuanto a funcionalidad.
Cada elemento está identificado por una llave única, lo que permite la recuperación de la
información de forma muy rá[Link] caracteriza por ser muy eficientes tanto para las lecturas como
para las escrituras. Algunos ejemplos de este tipo son Cassandra, BigTable o HBase.
b. Bases de datos documentales. Almacena la información como un documento, generalmente
como JSON o XML y se utiliza una clave única para cada registro. Son las bases de datos NoSQL
más versátiles. Algunos ejemplos de este tipo son MongoBD o CouchDB.
c. Bases de datos en grafo. La información se representa como nodos de un grafo y sus relaciones
con las aristas del mismo, y se puede hacer uso de la teoría de grafos para recorrerla. Ofrece una
navegación más eficiente entre relaciones que en un modelo relacional. Algunos ejemplos de este
tipo son Neo4j, InfoGrid o Virtuoso.
Otros modelos
• Modelo Objeto-Relacional: Son un híbrido entre el modelo relacional y el orientado a
objetos. El mayor inconveniente de las bases de datos orientadas a objetos radica en los
costes de conversión de relacionales a orientadas a objetos.
En una base de datos objeto-relacional (BDOR) combina lo mejor del modelo relacional con
las novedades de la orientación a objetos. Se siguen almacenando tuplas, aunque no
restringidas sino que las relaciones pueden ser definidas en función de otras, lo que
denominamos herencia directa. También incorporan funciones que tengan código en algún
lenguaje como SQL, Java, C, etc.
La gran mayoría de las bases de datos relacionales clásicas de gran tamaño, como Oracle,
SQL Server, etc., son objeto-relacionales.
• Modelo de bases de datos deductivas: Almacenan la información y permiten realizar
deducciones a través de inferencias. Derivan nuevas informaciones a partir de las que se han
introducido por el usuario. Son también llamadas bases de datos lógicas, al basarse en lógica
matemática.
5. Sistemas Gestores de Bases de Datos
Para tratar la información contenida en BBDD se utilizan los sistemas gestores de bases de datos o
SGBD o DBMS (DataBase Management System), siendo un conjunto de programas que permiten
acceder y gestionar dichos datos.
El objetivo de los SGBD es proporcionar eficiencia y seguridad a la hora de recuperar o insertar
información en las bases de datos.
>>>Sistema Gestor de Base de Datos: Conjunto coordinado de programas, procedimientos,
lenguajes, etc., que suministra, tanto a los usuarios no informáticos, como a los analistas
programadores, o al administrador, los medios necesarios para describir y manipular los datos
contenidos en la base de datos, manteniendo su integridad, confidencialidad y seguridad.
Las ventajas del uso de SGBD son:
• Proporcionan una visión abstracta de los datos, ocultando la complejidad de cómo se
almacenan y mantienen los datos.
• Ofrecen Independencia física, la visión que tiene de la información el usuario es
independiente de cómo estén almacenados físicamente.
• Disminuyen la redundancia y la inconsistencia de datos.
• Aseguran la integridad de los datos.
• Facilitan el acceso a los datos, aportando rapidez y evitando la pérdida de datos.
• Aumentan la seguridad y privacidad de los datos.
• Mejoran la eficiencia.
• Permiten compartir datos y accesos concurrentes.
• Facilitan el intercambio de datos entre distintos sistemas.
• Incorporan mecanismos de copias de seguridad y recuperación para restablecer la
información en caso de fallos en el sistema.
Funciones
Un SGBD desarrolla tres funciones fundamentales:
1. Función de descripción o definición: Permite al diseñador de la base de datos crear las
estructuras para integrar los datos. Se realiza mediante el lenguaje de descripción de datos
o DDL. Mediante ese lenguaje se definen las estructuras de datos, las relaciones entre los
datos y se definen las reglas que han de cumplir los datos.
Tiene tres niveles:
• A nivel interno se ha de indicar el espacio de disco reservado para la base de datos,
la longitud de los campos y su modo de representación.
• A nivel conceptual se proporcionan herramientas para definir las entidades y su
identificación, atributos, interrelaciones, restricciones de integridad, etc.
• A nivel externo se deben definir las vistas de los distintos usuarios a través del
lenguaje para la definición de estructuras externas.
2. Función de manipulación: permite a los usuarios buscar, añadir, suprimir o modificar los
datos, siempre de acuerdo con las especificaciones y las normas de seguridad dictadas por el
administrador. Se lleva a cabo por medio de un lenguaje de manipulación de datos (DML)
También se encarga de definir la vista externa de todos los usuarios de la base de datos. La
recuperación de información almacenada en la base de datos se conoce como consultas.
3. Función de control: permite al administrador de la base de datos establecer mecanismos de
protección de los datos asociados a cada usuario, además de sistemas para la creación de
copias de seguridad, carga de ficheros, auditoría, protección de ataques, configuración del
sistema, etc. El lenguaje que implementa esta función es el lenguaje de control de datos o
DCL.
Las funciones se realizan con el Lenguaje Estructurado de Consultas (SQL: Structured Query
Language).
Componentes
• Lenguajes de la base de datos. Cualquier SGBD permite utilizar lenguajes e interfaces
adecuadas para sus diferentes tipos de usuarios. A través de los lenguajes se pueden
especificar los datos que componen la BD, su estructura, relaciones, reglas de integridad,
control de acceso, características físicas y vistas externas de los usuarios.
• El diccionario de datos. Descripción de los datos almacenados. El lugar donde se deposita
la información sobre la totalidad de los datos que forman la base de datos. Contiene las
características lógicas de las estructuras que almacenan los datos, su nombre, descripción,
contenido y organización.
En una base de datos relacional, el diccionario de datos aportará información sobre:
✔ Estructura lógica y física de la BD.
✔ Definición de tablas, vistas, indices, disparadores, procedimientos, funciones, etc.
✔ Cantidad de espacio asignado y utilizado por los elementos de la BD.
✔ Descripción de las restricciones de integridad.
✔ Información sobre los permisos asociados a cada perfil de usuario.
✔ Auditoría de acceso a los datos, utilización, etc.
• El gestor de la base de datos. Parte de software encargada de garantizar el correcto, seguro,
íntegro y eficiente acceso y almacenamiento de los datos. El encargado de proporcionar una
interfaz entre los datos almacenados y los programas de aplicación que los manejan. Es un
intermediario entre el usuario y los datos.
• Perfiles de Usuarios. Existen diferentes perfiles de usuario, cada uno de ellos con una serie
de permisos sobre los objetos de la BD.
➔ El administrador de la base de datos o Database Administrator (DBA), se encarga
de la función de administración de la base de datos. Tiene el control centralizado de
la BD y es el responsable de su buen funcionamiento. Es el encargado de autorizar el
acceso a la base de datos y de coordinar y vigilar su utilización.
➔ Los usuarios de la base de datos, con diferentes necesidades sobre los datos, así
como diferentes accesos y privilegios. Podemos establecer la siguiente clasificación:
• Diseñadores.
• Operadores y personal de mantenimiento.
• Analistas y programadores de aplicaciones.
• Usuarios finales: ocasionales, simples, avanzados y autónomos.
• Herramientas de la base de datos. Conjunto de aplicaciones que permiten a los
administradores la gestión de la base de datos, de los usuarios y permisos, generadores de
formularios, informes, interfaces gráficas, generadores de aplicaciones, etc.
Arquitectura
La arquitectura proporciona tres niveles de abstracción:
• Nivel interno o físico: Describe la estructura física de la base de datos a través de un
esquema interno. Detalla el sistema de almacenamiento y los métodos de acceso. Es el más
cercano al almacenamiento físico.
• Nivel lógico o conceptual: Describe la estructura completa de la base de datos a través de
un esquema que detalla las entidades, atributos, relaciones, operaciones de los usuarios y
restricciones. Los detalles relacionados con las estructuras de almacenamiento se ocultan,
permitiendo realizar una abstracción a más alto nivel.
• Nivel externo o de visión del usuario: Describe las diferentes vistas que los usuarios
percibirán de la base de datos. Cada tipo de usuario o grupo de ellos verá sólo la parte de la
base de datos que le interesa, ocultando el resto.
Suele existir un único esquema interno, un único esquema conceptual, y varios esquemas externos
para los usuarios. Gracias a esta arquitectura se consigue la independencia de datos a dos niveles:
• Independencia lógica: Podemos modificar el esquema conceptual sin alterar los esquemas
externos ni los programas de aplicación.
• Independencia física: Podemos modificar el esquema interno sin necesidad de modificar el
conceptual o el externo, como cambiar el sistema de almacenamiento, reorganizar los
ficheros, añadir nuevos, etc., sin que esto afecte al resto de esquemas.
Tipos de Bases de Datos
1. El primer criterio es por el modelo lógico en que se basan:
• Modelo Jerárquico.
• Modelo de Red.
• Modelo Relacional.
• Modelo Orientado a Objetos.
2. El segundo criterio se centra en el número de usuarios a los que da servicio el sistema:
• Monousuario: sólo atienden a un usuario a la vez, y su principal uso se da en los
ordenadores personales.
• Multiusuario: entre los que se encuentran la mayor parte de los SGBD, atienden a
varios usuarios al mismo tiempo.
3. El tercer criterio se basa en el número de sitios en los que está distribuida la base de
datos:
• Centralizados: sus datos se almacenan en un solo computador. Los SGBD
centralizados pueden atender a varios usuarios, pero el SGBD y la base de datos en sí
residen por completo en una sola máquina.
• Distribuidos: la base de datos real y el propio software del SGBD pueden estar
distribuidos en varios sitios conectados por una red. Los sistemas homogéneos
utilizan el mismo SGBD en múltiples sitios.
4. El cuarto criterio toma como referencia el coste. La mayor parte de los paquetes cuestan
entre 10.000 y 100.000 euros.
5. El quinto criterio se basa en el propósito:
• Propósito General: pueden ser utilizados para el tratamiento de cualquier tipo de
base de datos y aplicación.
• Propósito Específico: Cuando el rendimiento es fundamental, se puede diseñar y
construir un software de propósito especial para una aplicación específica. Por
ejemplo los sistemas de reservas de las líneas aéreas conocidos como sistemas de
procesamiento de transacciones en línea.
7. SGBD Comerciales
1. ORACLE: Reconocido como uno de los mejores a nivel mundial. Multiplataforma,
confiable y seguro. Es cliente/servidor. Basado en el modelo relacional.
2. MySQL: Es relacional, multihilo, multiusuario y multiplataforma. Su gran velocidad lo
hace ideal para consulta de bases de datos y plataformas web.
3. DB2: Multiplataforma, integra XML de manera nativa.
4. Microsoft SQL Server: Relacional, sólo funciona bajo Windows, usa una arquitectura
cliente/servidor.
5. SYBASE: Un DBMS relacional, altamente escalable, de alto rendimiento y de bajo costo.
8. SGBD Libres
1. MySQL
2. PostgreSQL: Relacional orientado a objetos y de código abierto.
3. Firebird: SGBD relacional, multiplataforma, con bajo consumo de recursos.
4. Apache Derby: Escrito en Java, de reducido tamaño, multilenguaje y multiplataforma.
5. SQLite: Basado en una biblioteca escrita en C, más rápido que MySQL o PostGreSQL.
Multiplataforma y multilenguaje.
9. Bases de Datos Centralizadas
>>>Sistema de base de datos centralizado: Es aquella estructura en la que el SGBD está
implantado en una sola plataforma u ordenador desde donde se gestiona directamente, de modo
centralizado, la totalidad de los recursos. Es la arquitectura de los centros de proceso de datos
tradicionales. Se basa en tecnologías sencillas, muy experimentadas y de gran robustez.
Características:
• Todos los componentes del sistema residen en un solo computador o sitio.
• No posee múltiples elementos de procesamiento ni mecanismos de intercomunicación como
las bases de datos distribuidas.
• Los componentes son: los datos, el software de gestión de bases de datos y los dispositivos
de almacenamiento secundario asociados.
• Son sistemas en los que su seguridad puede verse comprometida más fácilmente.
Ventajas:
-Se envita la redundancia y la inconsistencia de los datos.
-La seguridad se centraliza y se conserva la integridad de los datos.
-El procesamiento de los datos ofrece un mejor rendimiento.
-Mantenimiento más barato. Mejor uso de recursos.
Inconvenientes:
-Un mainframe no tiene mayor poder de cómputo.
-Cuando falla pierde toda disponibilidad de procesamiento y en caso de desastre la recuperación es
difícil de sincronizar.
-Las cargas de trabajo no se pueden dividir entre varias computadoras.
-Los departamentos de sistemas tienen el control de toda la organización y se requiere de un
mantenimiento central.
10. Bases de datos distribuidas
>>>Base de datos distribuida (BDD): es un conjunto de múltiples bases de datos lógicamente
relacionadas las cuales se encuentran distribuidas entre diferentes nodos interconectados por
una red de comunicaciones.
>>>Sistema de bases de datos distribuida (SBDD): sistema en el cual múltiples sitios de bases de
datos están ligados por un sistema de comunicaciones. Se puede acceder los datos en cualquier parte
de la red exactamente como si los datos estuvieran almacenados en su sitio propio.
>>>Sistema gestor de bases de datos distribuida (SGBDD): Se encarga del manejo de la BD y
proporciona un acceso que hace la distribución transparente a los usuarios.
Ventajas:
-El acceso y procesamiento es más rápido porque varios nodos comparten carga de trabajo.
-Desde una ubicación se puede acceder a información alojada en diferentes lugares.
-Los costes son inferiores a los de bases centralizadas.
-Existe cierta tolerancia a los fallos.
-El enfoque distribuido se adapta más naturalmente a la estructura de las organizaciones.
-Aunque los nodos están interconectados tienen independencia local.
Inconvenientes:
-La probabilidad de violaciones de seguridad es creciente sin precauciones adecuadas.
-La complejidad añadida necesaria para garantizar la coordinación apropiada entre nodos.
-La inversión inicial es menor, pero el mantenimiento puede ser costoso.
-Dado que los datos pueden estar replicados, el control de concurrencia es más complejo.
-El intercambio de mensajes y el cómputo adicional necesario constituye una forma de sobrecarga.
-Dada la complejidad de procesamiento entre nodos es difícil asegurar la correción de los
algoritmos.
Fragmentación
La fragmentación se refiere a repartir la información para distribuirla por la red. El grado de
fragmentación determinará la ejecución de las consultas. Si no existe fragmentación, se tomarán
las relaciones como la unidad de fragmentación. Pero también puede fragmentarse a nivel de tupla o
a nivel de atributo de una tabla. No será adecuado un grado de fragmentación nulo, ni tampoco un
grado de fragmentación demasiado alto.
Cuando se lleva a cabo una fragmentación, existen tres reglas:
• Completitud. En cada fragmento deberá poder encontrarse cada elemento de datos.
• Reconstrucción. La reconstrucción de la relación a partir de sus fragmentos asegura que se
preservan las restricciones definidas sobre los datos.
• Disyunción. Los atributos primarios clave normalmente se repiten en todos sus fragmentos.
Existen tres tipos de fragmentación:
• Fragmentación horizontal: Se realiza sobre las tuplas de la relación, dividiendo la relación
en subrelaciones que contienen un subconjunto de las tuplas que alberga la primera. Existen
dos variantes: la primaria y la derivada.
• Fragmentación vertical: Se basa en los atributos de la relación. El objetivo es particionar
en relaciones más pequeñas para minimizar el tiempo de ejecución de las consultas del
usuario.
• Fragmentación Híbrida o mixta: Combinación de las anteriores. Si tras una fragmentación
vertical se lleva a cabo otra horizontal, se habla de la fragmentación mixta (HV). Para el
caso contrario, estaremos ante una fragmentación mixta (VH). Para representar los dos tipos
de fragmentación, se utilizan los árboles.