Fundamentos de Bases de Datos
Una Base de Datos (BD) es un conjunto de datos estructurados de un mismo contexto y almacenados sistemáticamente. Un Sistema de Gestión de Bases de Datos (SGBD) es la interfaz entre el usuario, la base de datos y las aplicaciones, facilitando el manejo de los datos. La estructura básica de una BD se compone de Usuario-SGBD-BD.
Características de las Bases de Datos
- Datos estructurados
- Redundancia controlada
- Independencia entre datos y programas
- Metadatos (definición y descripción única de los datos en la BD)
Elementos de una Base de Datos
- Contenido (datos)
- Equipo físico (hardware)
- Equipo lógico (software)
- Administrador de la BD
- Usuarios
Inconvenientes de las Bases de Datos
- Posible desperdicio de espacio
- Aumento del tiempo de proceso
- Inconsistencia en la actualización de datos
- Dependencia: dificultad para cambiar datos entre programas
Tipos de Usuarios
- Ingenuos
- Sofisticados
- Programadores
- Especializados
Funciones de un SGBD
- Descripción y definición de los datos (atributos, entidades)
- Manipulación de datos
- Utilización y configuración (capacidad de la BD, copias de seguridad)
Objetivos de un SGBD
- Abstracción de la información
- Independencia entre esquema físico, lógico y aplicaciones
- Consistencia (actualizar datos de forma simultánea)
- Seguridad
- Tiempo de respuesta eficiente
- Manejo de transacciones
Funcionamiento de un SGBD
- Un programa se conecta al SGBD.
- El programa indica la vista externa requerida.
- El SGBD solicita información sobre la vista al esquema conceptual.
- El SGBD avisa al Sistema Operativo (SO).
- El programa accede a la BD a través del SO.
- Se devuelven los datos al SGBD.
- El SO avisa al programa que los datos están disponibles.
- El programa lee y utiliza los datos.
- Se libera el espacio utilizado.
Componentes de los SGBD
- Administrador de almacenamiento
- Procesador de consultas
- Gestor de transacciones
- Principios de una transacción: Atomicidad, Consistencia, Aislamiento, Persistencia
Tipos de SGBD
Según el Modelo Lógico
- Jerárquico
- Red
- Relacional
- Orientado a objetos
Según el Número de Usuarios
Según el Número de Sitios
- Centralizado
- Distribuido
Según el Ámbito de Aplicación
- General
- Específico
Lenguajes de Bases de Datos
- DDL (Data Definition Language): Permite definir los esquemas de la BD.
- DML (Data Manipulation Language): Permite manipular datos (borrar, crear, actualizar).
- DCL (Data Control Language): Permite controlar el acceso a los datos.
Niveles de Abstracción
- Nivel de Usuario o Externo: Cada usuario accede solo a los datos que necesita a través de vistas personalizadas.
- Nivel Lógico Global o Conceptual: Visión unificada de los datos y sus relaciones.
- Nivel Físico o Interno: Representación física de los datos en el almacenamiento.
Existen correspondencias entre el nivel externo y conceptual, y entre el conceptual y el interno.
Tipos de Licencia de SGBD
- Con licencia y no libres
- Libres
- No libres y gratuitos
MySQL es un ejemplo de SGBD. Workbench es una aplicación para el diseño y documentación de bases de datos.
Metadatos y Diccionario de Datos
Metadatos
Son datos sobre datos. El Diccionario de Datos (DD) contiene metadatos con las características de los datos que se utilizan en el sistema, permitiendo que el SGBD funcione correctamente.
El DD contiene:
- Características lógicas de los sitios donde se almacenan los datos.
- Descripción de la BD.
- Información sobre elementos importantes como flujos de datos, almacenes de datos y procesos donde se emplean los datos.
El DD es un componente del SGBD y del esquema externo.
Información del Diccionario de Datos en una BD Relacional
- Estructura lógica y física de la BD.
- Definiciones de los objetos de la BD.
- Espacio asignado y utilizado.
- Valores por defecto de las columnas.
- Información de restricciones de integridad.
- Privilegios y roles de usuarios.
- Auditoría de información.
Características de un Diccionario de Datos
- Descripciones de los modelos conceptual, lógico, interno y externo.
- Integrado en el SGBD.
- Transferencia de información al SGBD.
Tipos de Diccionario de Datos
- Pasivo: No tiene relación directa con el SGBD.
- Activo: Está integrado y sirve tanto a usuarios como al SGBD.
Usos del Diccionario de Datos
- Manejar detalles en sistemas muy grandes.
- Asignar un significado a cada elemento de dato.
- Documentar las características del sistema.
- Facilitar los análisis y determinar cambios en el sistema.
- Localizar errores.
Contenido del Diccionario de Datos
- Elementos de datos (bloque básico para todos los datos del sistema).
- Estructuras de datos (grupo de datos relacionados con otros).
Seguridad e Integridad de Datos
La seguridad e integridad de datos garantizan la corrección y exactitud de la información.
Tipos de Restricciones de Seguridad
: integridad de dominio (tipo de atributo), datos requeridos (not null o null), validez, integridad de entidad(la PK debe tener un valor unico para cada fila de la tabla), integridad referencial (integridad entre llaves forneas y primarias); Vistas como sistema de seguridad: las vistas tienen la misma estructura que las tablas pero solo se almacena de ellas la definición (no datos), se pueden crear reglas a nivel de campo y registro para validar datos; Defincion de datos: elementales: datos que no tienen una descomposición significativa (nombre=nombre o nombre+apellidos), opcionales: puede estar o no presente de un dato compuesto (dir=calle+nº(ciudad)(pais)); selección: elegir entre hombre y mujer; iteración: opciones repetidas de un elemento; tipos de log Mysql: registro de erroes, registro general de consultas, registro binario, registro de consultas lentas, mantenimiento de ficheros de registro; se guardan por defecto los registros: c:\archivos de programa\mysql\mysql server5.5\data\mysql; TEMA3Tablas: tupla(fila), atributo (columna), grado (nº atributos), cardinalidad, dominio; tipos: persistenes (base, vistas,instantaneas), temporales; vista: resultado de una consultan sobre 1 o varias tablas, ej: create view vistaalumnos AS (select nombre,apellidos from alumnos)