1. Gestores de bases de datos 0. Bases de Datos 1
Last updated Feb 10, 2025
by
sr_labs Admin
# INTRODUCCIÓN
Un gestor de base de datos o sistema de gestión de base de datos (SGBD o DBMS) es un software que permite introducir, organizar y recuperar la infor- mación de las bases de datos; en definitiva, administrarlas. Existen distintos tipos de gestores de bases de datos: relacional, jerárquico, red, ... El modelo relacional es el utilizado por casi todos los gestores de bases de datos para PC ?s. El modelo relacional (SGBDR) es un software que almacena los datos en forma de tablas.

## El problema: Sistemas de ficheros
Tradicionalmente, los datos se han organizado en ficheros. Un fichero mantiene información homogénea, dispuesta en registros. Ej.: Empleados, Clientes, Nóminas, etc. Diferentes programas pueden mantener diferentes ficheros referidos a la misma entidad.

### Estos sistemas presentan algunos problemas:
**Redundancia:** Normalmente es perjudicial ya que da lugar a inconsistencia, cuando un dato no se actualiza en todos los lugares donde aparece. Es el caso de datos repetidos, que aparecen en varios ficheros, o de datos calculados, que podr??an obtenerse a partir de otros datos.
**Rigidez de búsqueda:** A cada fichero, según la manera en que más frecuentemente se accede a él, se le da una organización. Si después se necesita otro tipo de acceso, puede resultar lento trabajar con el fichero.
**Dependencia de los programas:** La información de dónde comienza un campo, dónde acaba, su tipo, etc. está controlada por el programa; cualquier cambio en la estructura del fichero implicar??a una modificación de los programas.
**Problemas de confidencialidad y seguridad:** La confidencialidad consiste en evitar la consulta de ciertos datos a determinados usuarios mientras que el control de seguridad de los datos almacenados impedirá que puedan ser modificados por personas no autorizadas.
### La solución: Bases de datos
Es la alternativa que aborda la solución a estos problemas. Se trata de dar una solución integral al almacenamiento y gestión de los datos, en lugar de soluciones parciales.

* Evitar la redundancia ”gratuita”
* Flexibilidad de búsqueda
* Independencia de los programas
* Seguridad y confidencialidad integral
# LOS USUARIOS
Hay tres clases de usuarios:
**Usuario final**: Accede a la base de datos desde su PC empleando un lenguaje de consulta (DML) o a través de un programa.
Son usuarios que no necesitan formación técnica
Podrán manejar la información de forma sencilla y eficiente a través de la interfaz que se les proporcione.
**Administrador de la base de datos:** Se encarga del control general del sistema de base de datos. Usualmente actúa como intermediario entre programador y usuario final.
Son los responsables de su seguridad e integridad
Requieren un amplio conocimiento de la herramienta SGBD a nivel de administración: tablas, índices, consultas, formularios, informes, macros, etc.
**Programador de aplicaciones:** Encargado de escribir programas de aplicación que utilicen bases de datos (lenguaje de alto nivel, como Cobol, Clipper, VisualBasic, 4GL).
Pueden utilizar lenguajes de alto nivel para acceder y actualizar los datos.
Son capaces de implementar soluciones a medida.
Su conocimiento de la herramienta SGBD debe ser aún más profundo: módulos, API (application programa interface), etc.
# CONCEPTOS DE BASES DE DATOS
## Entidades
Una entidad es una clase o **categoría de objetos** que poseen características diferenciadoras que los distinguen del resto. Ejemplo: Dentro de una empresa que vende complementos para el automóvil encontraremos las siguientes entidades: Art??culos, Clientes, Proveedores, Pedidos, etc.
Otros ejemplos:
* En una biblioteca: Libro, Socio, Autor, etc. En una academia: Alumno, Profesor, Cursos, Asignaturas, etc.
* En concesionario de automóviles: Vendedor, Cliente, Automóvil, Pedido, etc.
Las entidades consideradas en una base de datos deberán determinarse en consonancia con las necesidades. Por ejemplo, en una empresa de transportes aparecen diferentes entidades: veh??culos, mercanc??as, transportistas, clientes, etc. No obstante, si nuestro objetivo fuere diseñar una base de datos para el control de las inspecciones técnicas de los veh??culos, entonces el resto de entidades (mercanc??as, transportistas, clientes, etc.) no serán tenidas en cuenta.
Cada objeto perteneciente a una entidad debe poseer información suficiente para que pueda ser identificado de forma única. En una base de datos relacional, las entidades se representan en forma de tablas.
## Atributos
Toda entidad contiene un conjunto de datos, a los que llamaremos atributos o campos, que permiten describir de una manera completa y única a cada elemento de la entidad. Ejemplos:
* Entidad ”Clientes”. Atributos: Código, DNI, Nombre y apellidos, Dirección, Teléfono, Cuenta bancaria, etc.
* Entidad ”Productos”. Atributos: Código, Descripción, Fabricante, Color, Peso, Precio, etc.
Cada atributo se corresponde, en una base de datos relacional, con las columnas o campos de una tabla.
## Registros
Para una entidad dada, cada entrada o aparición (cada cliente en la entidad Clientes, cada veh??culo en la entidad Veh??culos, etc.) se denomina registro u ocurrencia de registro. Un registro es, por tanto, una representación de un objeto perteneciente a una entidad dada.
En una base de datos relacional, los registros se corresponden con las filas de las tablas. Ejemplos:
* La entidad Automovil con los campos N matricula, Marca, Modelo, Color, Km, Gasolina, y un registro (o ocurrencia de registro): J-5757-M, Ford, Orion, Rojo, 45401, Super.
* En una base de datos comercial, tenemos las entidades Cliente, Vendedor, Producto, etc. Para el registro Vendedor, habrá tantas ocurrencias de dicho registro como vendedores hay en la empresa.
## Claves
Para una entidad dada, es necesario que cada ocurrencia esté descrita de manera única y diferenciada del resto de ocurrencias de esa misma entidad. Esto se consigue mediante la clave de entidad: un atributo o un conjunto de atributos de la propia entidad que identifica de manera única a cada ocurrencia de la entidad. Ejemplo:
* La entidad Cliente contiene dos atributos que perfectamente pueden identificar de manera única a cada ocurrencia: D.N.I. y Código de Cliente. Ambas son claves de entidad, puesto que no existe más de un cliente con un mismo D.N.I. o Código. Sin embargo pueden coexistir, varios con un mismo Nombre, igual Apellido, etc.
Si una clave no tiene ningún subconjunto de campos que sea a su vez clave, se dice que es una clave candidata. El diseñador escogerá entre las claves candidatas la más adecuada para tratarla como clave principal o primaria.
Al resto de las claves candidatas se les llamará claves alternativas. Ejemplo: Entidad ”Alumno”. Atributos: N matricula, Nombre, Apellidos, DNI, Direccion, Telefono, F nacimiento.
CLAVES \
N matricula \
DNI Nombre + Apellidos \
Nombre + Apellidos + DNI \
N_matricula + DNI \
N_matricula + Nombre + Apellidos + DNI
CLAVES CANDIDATAS \
N_matricula \
DNI
CLAVE PRIMARIA (O PRINCIPAL) \
N matricula
CLAVES ALTERNATIVAS \
DNI
## Entidades débiles
Cuando no hay ningún atributo (o conjunto de atributos) que identifique de manera única cada una de las ocurrencias de la entidad. Es decir, son entidades en las que no se puede determinar ninguna clave.
Ejemplo: Los ejemplares de un mismo libro en una biblioteca. Si tenemos como atributos, Titulo, Autor, Editorial y Año de publicación, no podemos encontrar ningún atributo (o conjunto de atributos) que permita identificar de forma única cada ejemplar (consideremos que de un mismo libro habrá varios ejemplares), es decir, no podemos definir ninguna clave para esta entidad.
En tales casos, deberemos realizar alguna modificación para conseguir una entidad con clave. Por ejemplo, al añadir un código para cada ejemplar de libro, conseguimos una clave que permite identificar de forma única cada ejemplar, y por tanto dicha entidad deja de ser débil.
## Claves foráneas
A veces, en nuestra base de datos necesitamos incluir en una entidad atributos que son claves de otras entidades. Las denominamos claves foráneas. Un campo es clave foránea en una tabla cuando es clave principal en otra tabla.

## Relaciones
Las entidades, habitualmente, no existen de forma aislada o independiente, sino que están relacionadas unas con otras. Por ejemplo:
* Una Editorial edita muchos Libros
* Un Autor escribe muchos Libros
* Un Pedido está formado por una relación Productos
* Un Profesor imparte clases a muchos Alumnos
* Un Automóvil tiene un Propietario
Para establecer una relación entre dos entidades, hacemos uso del concepto de clave foránea, visto anteriormente. Así, la tabla A se relaciona con la tabla B si la clave de la tabla A aparece como clave foránea en la tabla B (o al contrario).
Grado de una relación: El grado de una relación indica la manera en que cada entidad participa en la relación. Hay tres tipos:
**Relaciones simples**\
(1 : 1) Uno a uno \
(1 : n) Uno a muchos
**Relaciones complejas**\
(n : m) Muchos a mucho
**Relaciones de uno a uno (1:1)** A cada ocurrencia de una entidad le corresponde una y solo una ocurrencia de la otra, y viceversa. Son relaciones simples.
Ejemplos: \
Empleado-Cónyuge \
Alumno-Expediente
**Relaciones de uno a muchos (1:n)** A cada ocurrencia de la primera entidad le pueden corresponder varias ocurrencias de la segunda, y a cada ocur- rencia de la segunda le corresponde no más de una ocurrencia de la primera. Son relaciones simples.
Ejemplos: \
Padre-Hijo \
Departamento-Empleado
**Relaciones de muchos a muchos (n:m)** A cada ocurrencia de la primera entidad le pueden corresponder varias ocurrencias de la segunda, y viceversa. Un profesor da clase a muchos alumnos y un alumno tiene varios profesores, por tanto la relación Profesor-Alumno pertenece a este tipo de relación. Son relaciones complejas.
Ejemplos: \
Paises-Idiomas \
Cliente-Productos
## Representación gráfica
Para representar gráficamente las entidades y atributos usaremos los siguientes elementos:

* **Entidades**: se representan mediante rectángulos
* **Atributos**: se representan mediante elipses
* **Clave principal**: El atributo (o atributos) considerados clave principal se encierrar en doble elipse.
* **Relaciones**: se representan mediante un rombo unido a ambas entidades relacionadas.
* **Grado de una relación**: en cada extremo de una relación se indica el grado en que cada entidad participa en dicha relación. Usaremos el asterisco ’\*’ para indicar ’muchos’.
# OBJETOS DE BASES DE DATOS
La mayor parte de las bases de datos que diseñemos harán uso de seis categor??as de objetos: tablas, consultas, formularios, informes, macros y módulos. A continuación describimos dichas categor??as:
### TABLAS
Definimos tabla como un sistema o dispositivo de almacenamiento de los datos
referentes a una entidad. Ejemplo: Tabla Representante para la entidad Rep-
resentante, tabla Pieza ...
**Las columnas** se conocen con el nombre de campos o atributos y representan las distintas elementos de información disponibles en la tabla (entidad). Código, Nombre, Apellidos, Dirección, Teléfono... conformar??an las columnas o campos de la tabla Representantes
**Las filas** (ocurrencias de registro o simplemente registros) se definen como el conjunto de atributos o campos correspondientes a un elemento de información.
Ejemplo. En la tabla Representante, cuyos campos son Código, Nombre, Apellidos, Dirección, Ciudad, Teléfono... , el siguiente conjunto de información podr??a constituir una fila o registro de la tabla: 2527, MANOLO, PÉREZ PEREZ, AVENIDA DEL OLIVO N o 8, JAÉN, 953222222..., constituir??an una fila o registro dentro de nuestra tabla.
### CONSULTAS
Cuando el usuario quiere obtener información de la base de datos, las tablas no son la mejor manera de hacerlo.
Ejemplo 1: una tabla de alumnos.
* A un profesor, le puede interesar una selección de alumnos de un determinado grupo dentro de un curso y de una titulación concreta.
* Al secretario del centro le puede interesar ver los alumnos que pertenecen a familia numerosa.
Ejemplo 2: Una librer??a, con una tabla de libros y otra de autores.
* Al usuario le puede interesar obtener una relación con las últimas ediciones, por ejemplo, los libros editados en 2006, indicando titulo del libro y nombre del autor.
* Si queremos hacer un pedido a una editorial, necesitamos una relación de los libros que dicha editorial publica, de los cuales no nos quedan existencias.
Es una de la partes más importantes dentro de una base de datos, ya que, además de servir de soporte a los datos, el cometido de un SGBD es proporcionar métodos de acceso a la información que resulten eficaces y apropiados.
Las consultas permiten personalizar o restringir el acceso a la información almacenada de acuerdo con una serie de criterios establecidos por el usuario. Estos criterios de selección son de dos tipos:
* **Selección de campos:** se trata de indicar qué campos han de incluirse en los resultados de la consulta, campos que pueden pertenecer a distintas tablas.
* **Selección de registros:** consiste en establecer ciertas condiciones de restricción que se aplicarán sobre ciertos campos (filtros) y que permitirán obtener, no todos los registros de la tabla sino una selección de ellos.
Ejemplo. Supongamos que, sobre la tabla de la figura 7.6, realizamos la siguiente consulta: Obtener T??tulo, Nacionalidad y Género de las pel??culas cuya duración inferior a los 100 minutos. Analicemos la frase:
T??tulo, Nacionalidad y Género ... constituye la selección de campos. \
Duración inferior a 100 minutos ... consituye la selección de registros.

Como podemos observar, el resultado de una consulta se va a mostrar al usuario con el mismo aspecto de una tabla, pero no se trata de una tabla estática que permanece en la base de datos, sino una ”tabla dinámica” que se genera en el momento en que se abre la consulta y se destruye una vez que el usuario cierra la consulta.
### FORMULARIOS
Nos permiten manipular la información contenida en una base de datos mediante una interfaz gráfica similar a la de cualquier aplicación Windows. Mediante los formularios vemos y actualizamos la información disponible en la base de datos. Los formularios constituyen el instrumento que va a usar el usuario final de la aplicación para manipular la información.
Los formularios pertenecen a la interfaz del usuario final y por tanto, en su diseño tendremos en cuenta una serie de características que afectan directamente al usuario final.
### INFORMES
Se trata de presentar la información de la base datos en un formato adecuado para su salida por impresora o cualquier dispositivo similar. Será el usuario quien elija los elementos de datos que se deben mostrar as?? como la forma en que han de quedar dispuestos en el informe.
Habitualmente, los SGBD ofrecen utilidades para definir los informes de forma gráfica y sencilla.
### MACROS
Conjunto de operaciones que nos permiten automatizar cualquier tarea repetitiva de una base de datos. Las macros se construyen encadenando una serie de acciones preconfiguradas que realizan operaciones de gestión tales como abrir o cerrar formularios e informes, ejecutar comandos de menú o examinar los registros de una tabla.
### MODULOS
Los módulos nos permiten automatizar tareas, al igual que las macros, pero con mayor flexibilidad y posibilidades. Un módulo es una colección de procedimientos creados mediante instrucciones en un lenguaje de programación (por ejemplo, para Microsoft Access, el lenguaje de programación de módulos es Visual Basic).
# INTEGRIDAD EN BASES DE DATOS
En una base de datos siempre va a ser una cuestión crítica el control de la integridad de los datos, es decir, controlar distintos aspectos como los siguientes:
* Impedir cualquier operación que provoque una inconsistencia de los datos (registros duplicados, registros ”huérfanos” en una relación, etc.).
* En entornos multiusuario, que varios usuarios puedan coordinar el acceso a unos mismos datos en el mismo momento.
* Asegurar la integridad de dicha información cuando la base de datos se ha replicado en varios equipos.
**Los triggers:** o disparadores identifican las instrucciones que se eje- cutan cuando se realiza una operación de inserción, actualización o supresión dentro de una base de datos. Con los triggers podemos, por ejemplo, dar un aviso justo antes de eliminar un registro, rellener ciertos campos con valores por defecto al insertar un registro, etc.
Los ”triggers” permiten asegurar la integridad de los datos ya que podemos controlar mejor las operaciones evitando la inconsistencia, incorporando controles de seguridad, etc.
**Clases de integridad** Podemos distinguir distintas clases de integridad dependiendo del aspecto de la base de datos que pretendamos controlar:
* Integridad de registro (Entity integrity), que consiste en evitar la duplici- dad de registros (clave principal).
* Integridad de dominio (Domain integrity) que consiste en reducir los datos erróneos (tipos de datos, reglas de validación).
* Integridad referencial (Referential integrity): mantener la consistencia en- tre tablas relacionadas unas con otras.
* Integridad de usuario (User-defined integrity): seguridad contra acceso no deseado y acceso simultáneo a datos.
* Integridad de datos distribuidos (Distributed-data integrity): mantener la consistencia cuando una base de datos está distribuida (réplicas).