Resumen Tema 01 - Introducción

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 32

Bases de datos

Capítulo 1: Introducción
Tema 1 – Introducción
CONTENIDO (índice del libro)

1. Aplicaciones de los sistemas de bases de datos


2. Propósito de los sistemas de bases de datos
3. Visión de los datos
4. Lenguajes de bases de datos
5. Bases de datos relacionales
6. Diseño de bases de datos
7. Almacenamiento de datos y consultas
8. Gestión de transacciones
9. Arquitectura de las bases de datos
10. Minería y análisis de datos
11. Bases de datos específicas
12. Usuarios y administradores de bases de datos
13. Historia de los sistemas de bases de datos

71902083 Bases de datos 2


Sistema de gestión de bases de datos (SGBD)

• SGBD contiene información sobre una empresa en particular


– Colección de datos relacionados
– Conjunto de programas de acceso a los datos
– Entorno que resulta conveniente y eficiente en su uso
• Aplicaciones de los sistemas de bases de datos:
– Banca: cualquier tipo de transacción
– Líneas aéreas: reservas, información de planificación, etc.
– Universidades: registros, cursos
– Ventas: información de clientes, productos y compras
– Minoristas en línea: seguimiento de órdenes, recomendaciones personalizadas
– Producción: producción, inventarios, pedidos, cadena de producción
– Recursos humanos: información sobre los empleados, salarios, impuestos y
beneficios
• Las bases de datos tocan todos los aspectos de nuestras vidas

71902083 Bases de datos 3


Objetivo principal de los sistemas de bases de datos (1/2)

• Inicialmente, las aplicaciones de los sistemas de bases de datos se construyeron


encima de los sistemas de archivos
• Inconvenientes de utilizar sistemas de archivos para almacenar datos:
– Redundancia e inconsistencia de datos
• Diversos formatos de archivos, duplicación de la información en archivos diferentes
– Dificultad en el acceso a los datos
• Necesidad de escribir un programa nuevo por cada tarea nueva
– Aislamiento de datos — diversos archivos con diferentes formatos
– Problemas de integridad
• Restricciones de consistencia (p. e. el saldo de una cuenta bancaria > 0) pasan a formar
parte del código del programa
• Dificultad para añadir restricciones nuevas o modificar las existentes

71902083 Bases de datos 4


Objetivo principal de los sistemas de bases de datos (2/2)

• Inconvenientes de utilizar sistemas de archivos (cont.)


– Problemas de atomicidad
• Los fallos pueden dejar a las bases de datos en un estado de inconsistencia si se han
llevado a cabo actualizaciones parciales
• Por ejemplo, la transferencia de fondos de una cuenta bancaria a otra debe ser
completa o no llevarse a cabo
– Anomalías en el acceso concurrente
• Se necesita el acceso concurrente para obtener un buen rendimiento
• El acceso concurrente sin control puede conducir a tener datos inconsistentes
– P. e. dos personas leyendo y actualizando un saldo al mismo tiempo
– Problemas de seguridad
• Dificultad de proporcionar acceso a parte de los datos pero no a todos
• Los sistemas de bases de datos ofrecen soluciones para todos los problemas
anteriores

71902083 Bases de datos 5


Niveles de abstracción (1/2)

• Dado que muchos de los usuarios de sistemas de bases de datos no tienen formación en
informática, los desarrolladores ocultan esa complejidad a los usuarios mediante varios
niveles de abstracción para simplificar la interacción de los usuarios con el sistema:
• Nivel físico: describe cómo se almacenan realmente los datos
• Nivel lógico: describe qué datos se almacenan en la base de datos y las relaciones
existentes entre ellos.
type cliente = record
id_cliente : string;
nombre_cliente : string;
calle_cliente : string;
ciudad_cliente : integer;
end;
• Nivel de vistas: los programas de aplicación ocultan detalles de los tipos de datos. Las
vistas también pueden ocultar información (p. e., salarios) por razones de seguridad.

71902083 Bases de datos 6


Niveles de abstracción (2/2)

• Visión de los datos


– Una arquitectura para un sistema de bases de datos

71902083 Bases de datos 7


Instancias y esquemas
• Similar a los tipos y variables en los lenguajes de programación
• Esquema– la estructura lógica de la base de datos
– Ejemplo: La base de datos se compone de información acerca de un grupo de clientes y cuentas, y de las
relaciones entre ellos
– Análogo a la información del tipo de una variable en un lenguaje de programación
– Esquema físico: diseño de la base de datos a nivel físico
– Esquema lógico: diseño de la base de datos a nivel lógico
• Instancia – el contenido real de la base de datos en un instante de tiempo determinado
– Análogo al valor de una variable
• Independencia física de los datos – la capacidad de modificar el esquema físico sin cambiar el esquema
lógico
– Las aplicaciones dependen del esquema lógico
– En general, las interfaces entre los diferentes niveles y componentes deben definirse adecuadamente de
modo que los cambios en algunas partes no influencien otras seriamente.

71902083 Bases de datos 8


Modelos de datos
• Colección de herramientas conceptuales para describir
– los datos
– las relaciones de datos
– la semántica de los datos
– consistencia entre los datos
• Modelo relacional: utiliza una colección de tablas para representar tanto los datos como
sus relaciones
• Modelo entidad-relación: colección de objetos básicos, denominados entidades, y de las
relaciones entre ellos.
• Modelo de datos orientado a objetos: extensión del modelo E-R con conceptos de
encapsulación, métodos (funciones) e identidad de objetos
• Modelo de datos semiestructurados (XML):permite una especificación de datos en el
que los elementos de datos individuales del mismo tipo pueden tener diferentes
conjuntos de atributos.

• Modelos anteriores:
– Modelo de red
– Modelo jerárquico

71902083 Bases de datos 9


Lenguajes de bases de datos

• Los sistemas de bases de datos proporcionan:


– Lenguaje de definición de datos (LDD) para especificar el esquema de la base de
datos
– Lenguaje de manipulación de datos (LMD) para expresar las consultas y las
modificaciones de la base de datos

• En la práctica, los lenguajes de definición y manipulación de datos no son dos


lenguajes diferentes; simplemente forman parte de un único lenguaje de bases de
datos, como puede ser el muy usado SQL

71902083 Bases de datos 10


Lenguaje de definición de datos (LDD)
• Para especificar los esquemas de las bases de datos y propiedades de los datos
• La estructura de almacenamiento y los métodos de acceso usados por el sistema de
bases de datos se especifican mediante un conjunto de instrucciones denominado
lenguaje de almacenamiento y definición de datos (LDD).
• Los valores de los datos almacenados en la base de datos deben satisfacer ciertas
restricciones de consistencia que permite especificar el LDD y que los sistemas de
bases de datos los comprueban cada vez que se accede a la base de datos
– Dominio: valores posibles de cada atributo o restricciones de los datos
– Integridad referencial: datos compartidos en diferentes partes deben ser iguales
– Asertos: condiciones que deben verificar los datos (además de dominio e integridad)
– Autorización: diferenciar usuarios en cuanto al tipo de acceso (lectura, inserción, borrado,
etc)
• La salida del LDD se coloca en un diccionario de datos que contiene metadatos (datos
sobre los datos)

71902083 Bases de datos 11


Lenguaje de manipulación de datos (LMD)
• Lenguaje para acceder o manipular los datos organizados mediante el modelo de datos
apropiado
• Los tipos de acceso a la información almacenada en la BD son:
– Inserción de información
– Recuperación de información
– Borrado de información
– Modificación de información almacenada en la base de datos.
• Existen dos clases de lenguajes
– Procedimentales – el usuario especifica qué datos se necesitan y cómo han de obtenerse dichos
datos
– Declarativos (no procedimentales) – el usuario especifica qué datos se necesitan sin especificar
cómo se han de obtener
• La parte de los LMD implicada en la recuperación de información se denomina lenguaje de
consultas.
• SQL es el lenguaje de consultas utilizado más ampliamente (temas 3 a 5)
– En tema 6 algebra relacional, cálculo relacional de tuplas y de dominios

71902083 Bases de datos 12


Bases de datos relacionales

• Las bases de datos relacionales se basan en el modelo relacional


• Usan un conjunto de tablas/relaciones para representar tanto los datos como las
relaciones entre ellos.
• También incluyen un LMD y un LDD.
• La mayor parte de los sistemas de bases de datos relacionales comerciales emplean
el lenguaje SQL

71902083 Bases de datos 13


Bases de datos relacionales

• Basado en tablas o relaciones


• Cada fila o tupla representa un objeto único de datos implícitamente estructurados en una tabla
• Cada tabla tiene varias columnas, y cada columna tiene un nombre único (las filas no)
– El modelo relacional es un modelo basado en registros o tuplas (la base de datos se estructura en
registros de formato fijo).
– Las columnas de la tabla se corresponden con los atributos de cada tupla
• El modelo relacional oculta detalles de implementación de bajo nivel a los desarrolladores de bases
de datos y a los usuarios.
• En el modelo relacional es posible crear esquemas que tengan problemas tales como información
duplicada, redundante, inconsistente …. que habrá que evitar
Atributo o columna

Tupla o fila o registro

71902083 Bases de datos 14


Ejemplo de base de datos relacional

Datos

Datos

Relación entre datos

71902083 Bases de datos 15


SQL como LDD

• SQL proporciona un rico LDD que permite definir tablas, restricciones de integridad,
asertos, etc.
• Ejemplo: crear la tabla departamento con tres columnas: nombre_dept, edificio y
presupuesto, cada una de ellas con su tipo de datos específico asociado.
create table departamento
(nombre_dept char(20)not null,
edificio char(15),
presupuesto numeric(12,2));

71902083 Bases de datos 16


SQL como LMD

• SQL: lenguaje no procedimental ampliamente utilizado


• Usa como entrada una o varias tablas y devuelve siempre una única tabla

• Ejemplo de una tabla: Obtener el nombre de todos los profesores del


Departamento de Historía:
select profesor.nombre
from profesor
where profesor.nombre_dept = ‘ Historia ‘

• Ejemplo de más de una tabla: Obtener ID de profesor y el nombre del


departamento de todos los profesores con un departamento cuyo presupuesto sea
superior a 95.000 €.
select profesor.ID, departamento.nombre_dept
from profesor, departamento
where profesor.nombre_dept = departamento.nombre_dept and
departamento.presupuesto > 95000;

71902083 Bases de datos 17


Acceso a las BD desde los programas de aplicación

• Pueden existir cálculos que se pueden conseguir mediante un lenguaje de


programación general pero no se pueden obtener mediante consultas SQL.
• SQL tampoco permite acciones como la entrada de datos de usuario, mostrar datos
en pantalla o la comunicación por la red.
• Estas operaciones se deben escribir en otro lenguaje anfitrión capaces de albergar
consultas SQL.
• Los programas de aplicación son programas que se usan para interactuar de esta
manera con las bases de datos.
• Los programas de aplicación generalmente acceden a la base de datos a través de
– Extensiones de lenguajes que permitan SQL empotrado
– Interfaces de programas de aplicación (p. e. ODBC/JDBC) que permiten el envío de
consultas SQL a una base de datos

71902083 Bases de datos 18


Diseño de la base de datos

Proceso de diseño de la estructura general de una base de datos:


• Diseño lógico: Decidir el esquema de la base de datos. El diseño de la base
de datos requiere encontrar una “buena” colección de esquemas de
relación.
– Decisión de negocio – ¿Qué atributos se deberían registrar en la base de datos?
– Decisión informática – ¿Qué relación de esquemas se deberían utilizar y cómo se
deberían distribuir los atributos entre los distintos esquemas de relación?

• Diseño físico: Decidir sobre las características físicas de la base de datos

71902083 Bases de datos 19


Modelo entidad-relación

• Modela una empresa como una colección de entidades y relaciones


– Entidad: una “cosa” o un “objeto” en la empresa distinguible de otros objetos
• Se describe mediante un conjunto de atributos
– Relación: una asociación entre varias entidades
• Se representa gráficamente mediante un diagrama entidad-relación:

Relación

Entidad

71902083 Bases de datos 20


Normalización

• La normalización es un método de diseño de bases de datos


• El objetivo es generar un conjunto de esquemas de relaciones que permita:
– Almacenar información sin redundancias innecesarias
– Recuperar la información con facilidad
• Proceso de normalización:
– Información adicional sobre la empresa real que se está modelando con la base de datos:
• Estudio dependencias funcionales de los datos
– Partida de un esquema de la Base de datos
– Verificar si cumple condiciones de formas normales
– Plantear esquemas alternativos

71902083 Bases de datos 21


Almacenamiento de datos y consultas

• Los sistemas de bases de datos están divididos en módulos que tratan con cada
una de las responsabilidades del sistema general:
• Los componentes funcionales de los sistemas de Bases de Datos pueden dividirse
en:
– Gestor de almacenamiento:
• Las BD necesitan una gran cantidad de espacio de almacenamiento.
• Objetivo: minimizar la necesidad de intercambio de datos entre los discos y la
memoria principal
– Procesador de consultas:
• Facilita el acceso a los datos
• Objetivo: Ofrecer buen rendimiento sin necesidad de conocer detalles del diseño
físico

71902083 Bases de datos 22


Gestor de almacenamiento

• El gestor de almacenamiento es un módulo de programa que proporciona la


interfaz entre:
– Los datos de bajo nivel en la base de datos
– Los programas de aplicación y consultas emitidas al sistema
• El gestor de almacenamiento traduce las diferentes instrucciones LMD a comandos
de bajo nivel del sistema de archivos
• El gestor de almacenamiento es responsable de las siguientes tareas:
– La interacción con el gestor de ficheros del Sistema Operativo
– El almacenamiento, recuperación y actualización eficiente de los datos
• Temas que resuelve:
– Almacenamiento
– Organización de archivos
– Indexación y asociación

71902083 Bases de datos 23


Procesador de consultas

• Entre los componentes del procesador de consultas se encuentran:


– Intérprete del LDD:
– Compilador del LMD:
• Traduce las instrucciones del LMD a instrucciones de bajo nivel
– Motor de evaluación de consultas:
• Ejecuta las instrucciones de bajo nivel
Temas que resuelve:
– Análisis y traducción
– Optimización
– Evaluación

71902083 Bases de datos 24


Gestión de transacciones

• Una transacción es una colección de operaciones que se llevan a cabo como una única
función lógica en una aplicación de base de datos.
• A menudo, varias operaciones sobre la base de datos forman una única unidad lógica de
trabajo lo que implica requisitos como:
– Atomicidad: la transacción se hace completa o no se hace
– Consistencia: después transacción los datos deben ser consistentes
– Durabilidad: Los nuevos datos deben persistir a pesar de fallo en el sistema
• El Gestor de transacciones de un sistema de BD consta de:
– Gestor de control de concurrencia:
• Controlar la interacción entre las transacciones concurrentes para garantizar la
consistencia de la base de datos.
– Gestor de recuperación de fallos:
• Detectar los fallos del sistema y restaurar la base de datos al estado que tenía antes de
que ocurriera el fallo.

71902083 Bases de datos 25


Arquitectura de las bases de datos

• La arquitectura de los sistemas de bases de datos se ve muy influida por el sistema


informático sobre el que se ejecuta el sistema de bases de datos
• Los sistemas de bases de datos pueden estar:
– Centralizados
– Tipo cliente-servidor: una máquina servidor ejecuta el trabajo en nombre de multitud de
máquinas clientes)
– Aprovechar las arquitecturas de computadoras paralelas
– Distribuidas se extienden por varias máquinas geográficamente separadas. En una
arquitectura de dos capas,
• Clasificación por número de capas:
– Dos capas
– Tres capas

71902083 Bases de datos 26


Arquitectura de las bases de datos

• Arquitectura dos capas:


– La aplicación se divide en un componente que reside en la máquina cliente, que invoca la
funcionalidad del sistema de bases de datos en la máquina servidora mediante
instrucciones del lenguaje de consultas

71902083 Bases de datos 27


Arquitectura de las bases de datos

• Arquitectura de tres capas:


– la máquina cliente actúa simplemente como una parte visible al usuario y no alberga
llamadas directas a la base de datos.
– El extremo cliente se comunica con un servidor de aplicaciones, generalmente mediante
una interfaz de formularios
– El servidor de aplicaciones, a su vez, se comunica con el sistema de bases de datos para
tener acceso a los datos
– Las aplicaciones de tres capas resultan más adecuadas para aplicaciones de gran tamaño y
para las aplicaciones que se ejecutan en la World Wide Web.

71902083 Bases de datos 28


Minería y análisis de datos

• Proceso de análisis semiautomático de grandes bases de datos para descubrir


patrones útiles
• La minería de datos trata de la extracción de conocimiento a partir de la información
almacenada en las bases de datos
• Algunos tipos de conocimientos descubiertos en las bases de datos pueden
representarse:
– Conjunto de reglas
– Ecuaciones que relacionan diferentes variables
– Mecanismos para la predicción de los resultados cuando se conocen los valores de
algunas variables
• Para descubrir tipos de patrones diferentes se emplean diversas técnicas.

71902083 Bases de datos 29


Usuarios de bases de datos

• Hay varios tipos diferentes de usuarios de los sistemas de bases de datos,


diferenciados por la forma en que esperan interactuar con el sistema (se han
diseñado diversos tipos de interfaces de usuario para los diferentes tipos de
usuarios):
– Usuarios normales: son usuarios no sofisticados q,ue interactúan con el sistema
invocando alguno de los programas de aplicación que se han escrito previamente.
– Programadores de aplicaciones: son profesionales informáticos que escriben programas
de aplicación.
– Usuarios sofisticados: interactúan con el sistema sin escribir programas. En su lugar,
formulan sus consultas en un lenguaje de consultas de bases de datos o con
herramientas como el software de análisis de datos.
– Usuarios especializados: son usuarios sofisticados que escriben aplicaciones de bases de
datos especializadas que no encajan en el marco tradicional del procesamiento de datos.
CAD, sistemas expertos, …

71902083 Bases de datos 30


Administrador de bases de datos

• Una de las principales razones de usar un SGBD es tener un control centralizado


tanto de los datos como de los programas que tienen acceso a esos datos. La
persona que tiene ese control central sobre el sistema se denomina administrador
de bases de datos (ABD).
• Funciones del administrador de bases de datos:
– La definición del esquema, la definición de la estructura y del método de acceso
– La modificación del esquema y de la organización física
– La concesión de autorización para el acceso a los datos
– El mantenimiento rutinario:
• Copia de seguridad, espacio libre en disco, supervisión de los trabajos que se ejecuten
en la base de datos, etc.

71902083 Bases de datos 31


Historia de los sistemas de bases de datos

• Leer

71902083 Bases de datos 32

También podría gustarte