Download Tema 1: Introducción Definición

Document related concepts

Sistema de gestión de bases de datos relacionales wikipedia , lookup

Lenguaje de definición de datos wikipedia , lookup

SQL wikipedia , lookup

Modelo de base de datos wikipedia , lookup

Base de datos wikipedia , lookup

Transcript
Tema 1: Introducción
Definición
Es una colección de datos operativos
almacenados y utilizados por los
programadores de aplicaciones y por usuarios
finales de muy diversa índole
„ Objetivos de los sistemas de bases de datos
„ Vistas de datos
„ Modelos de datos
„ Lenguajes de definición de datos (DDL)
„ Lenguajes de manipulación de datos (DML)
„ Gestión de transacciones
„ Gestión de almacenamiento
„ Administrador de bases de datos
Idea básica al implementar una BD:
„ Usuarios de bases de datos
„ Estructura general del sistema
Bases de datos
Aprovechar los mismos datos para tantas
aplicaciones como sea posible.
1
Sistema gestor de bases de datos (SGBD)
Bases de datos
2
Objetivos de un sistema de bases de datos
„ Conjunto de datos relacionados
Las primeras aplicaciones de bases de datos se construían sobre
los sistemas de ficheros
„ Conjunto de programas para acceder a los datos
„ Problemas de usar sistemas de ficheros para almacenar datos:
„ Un SGBD contiene información sobre una realidad concreta
+ Redundancia de datos e inconsistencias
„ Un SGBD proporciona un entorno que es conveniente y eficiente en
su uso
Varios formatos de fichero, información duplicada en
diferentes ficheros
„ Aplicaciones de bases de datos:
+ Dificultad en acceder a los datos
+ Bancos: todas las transacciones
+ Líneas aéreas: reservas, planificaciones
+ Universidades: matrícula, titulaciones
+ Ventas: clientes, productos, compras
+ Fabricación: producción, inventario, suministros
+ Recursos humanos: registros de usuarios, salarios
„ Las bases de datos “tocan” todos los aspectos de nuestras vidas
Necesidad de escribir un nuevo programa para cada nueva
tarea
+ Aislamiento de datos — multiples ficheros y formatos
+ Problemas de integridad
Las restricciones de integridad (p.e. balance > 0) son parte
del código del programa
Dificultad en añadir nuevas restricciones o cambiar las
existentes
Bases de datos
3
Bases de datos
4
Objetivos de un sistema de bases de datos (Cont.)
Objetivos de un sistema de bases de datos (Cont.)
„ Es decir, un SGBD tiene por objetivos:
„ Problemas de usar sistemas de ficheros (cont.)
+ Atomicidad de actualizaciones
+ Acceso concurrente
Los fallos pueden dejar la base de datos en un estado inconsistente
debido a actualizaciones parciales
+ Independencia física y lógica
P.e. transferir fondos de una cuenta a otra debería o bien realizarse
completamente o bien no realizarse
+ Alta relacionabilidad de los datos
+ Redundancia controlada de los datos
+ Integridad de los datos
+ Acceso concurrente por varios usuarios
Los accesos concurrentes son necesarios para aumentar las
prestaciones
+ Consistencia de los datos
Los accesos concurrentes incontrolados pueden llevar a
inconsistencias
+ Actualización fácil y coherente
+ Seguridad de los datos
+ Alto rendimiento
– P.e. dos personas leyendo un balance y modificándolo a la vez
+ Reducción de la dificultad de programación
+ Problemas de seguridad
„ Los sistemas de bases de datos dan soluciones a todos estos problemas
Bases de datos
5
Bases de datos
6
Niveles de abstracción
Vistas de datos
Una arquitectura para un sistema de bases de datos
„ El nivel físico describe cómo se almacena un registro (p.e., cliente).
„ El nivel lógico: describe los datos almacenados en la base de datos
nivel de vista
y las relaciones entre los datos.
vista 1
type cliente = record
nombre : string;
calle : string;
ciudad : integer;
end;
vista 2
nivel
lógico
„ EL nivel de vista: los programas de aplicación ocultan detalles de
nivel
físico
los tipos de datos. Las vistas también pueden ocultar información
(p.e. salario) por motivos de seguridad.
Bases de datos
vista n
7
Visión global
Bases de datos
8
Instancias, esquemas e independencia
„ Similar a tipos de datos y variables en lenguajes de programación
El mundo real
„ Esquema – la estructura lógica de la base de datos
+ P.e., la base de datos consiste en información sobre un conjunto de
Bancos, líneas aéreas, …
clientes y cuentas y la relación entre ellos)
+ Análogo al tipo de datos de una variable en un programa
Las bases de datos
Modelos de información,
+ Esquema físico: el diseño de la base de datos a nivel físico
conjuntos de entidades,
+ Esquema lógico: el diseño de la base de datos a nivel lógico
atributos, ref. cruzadas, …
„ Instancia – el contenido actual de la base de datos en un instante
concreto
Árboles equilibrados,
Las estructuras de datos
+ Análogo al valor de una variable
ficheros secuenciales, indexados,
„ Independencia física de los datos – la habilidad para modificar el
cadenas, hash, listas invertidas, …
esquema físico sin cambiar el esquema lógico
+ Las aplicaciones dependen del esquema lógico
El almacenamiento físico
Bits, bytes, registros,
+ En general, los interfaces entre los diferentes niveles y componentes
debería estar bien definidos para que los cambios en algunas partes no
afecten de forma importante a otras.
códigos ASCII, EBCDIC, …
Bases de datos
9
Bases de datos
Modelos de datos
10
Modelo EntidadEntidad-Asociación
„ Una colección de herramientas para describir
+ datos
+ relaciones entre datos
+ semántica de los datos
+ restricciones de los datos
Ejemplo de esquema en el modelo entidad-asociación
„ Modelo Entidad-Asociación o Entidad-Relación
nombre-cliente
„ Modelo relacional
id-cliente
„ Otros modelos:
calle-cliente
numero-cuenta
saldo
ciudad-cliente
clientes
depositante
cuentas
+ Modelo orientado a objetos
+ Modelos de datos semiestructurados
+ Modelos antiguos: modelo de red y modelo jerárquico
Bases de datos
11
Bases de datos
12
Modelo EntidadEntidad-Asociación (Cont.)
Modelo Relacional
„ Ejemplo de datos tabulares en el modelo relacional
„ Modelo E-A del mundo real
+ Entidades (objetos)
Atributos
P.e. clientes, cuentas, sucursales bancarias
+ Asociaciones entre entidades
P.e. La cuenta A-101 pertenece al cliente Pérez
Id-Cliente
La asociación depositante asocia clientes con cuentas
„ Ampliamente utilizado para diseño de bases de datos
+ El diseño de bases de datos en el modelo E-A normalmente se
transforma en un diseño en el modelo relacional que se utiliza
para almacenamiento y procesamiento
Bases de datos
13
nombre-cliente
calle-cliente
192-83-7465
Pérez
019-28-3746
Gómez
192-83-7465
López
321-12-3123
Gómez
019-28-3746
González
calle-cliente
ciudad-cliente numero-cuenta
Principe
Vigo
A-101
Real
Santiago
A-215
Real
Vigo
A-201
Sol
Madrid
A-217
Norte
Lugo
A-201
Bases de datos
14
Sistemas Gestores de Bases de Datos
Un ejemplo de base de datos relacional
Id-cliente
nombre-cliente
ciudad-cliente
192-83-7465
Sánchez
Alma
Santiago
019-28-3746
Rodríguez
Norte
Vigo
677-89-9011
Gómez
Príncipe
Madrid
182-73-6091
Fernández
Alcalá
Madrid
321-12-3123
Veiga
Príncipe
Madrid
336-66-9999
López
Diagonal
Barcelona
019-28-3746
Rodríguez
Norte
Vigo
UN SGBD es un software que al menos:
„ Gestiona las BD y al acceso a las mismas.
„ Proporciona un LDD (Lenguaje de Definición de Datos)
+ Proporciona facilidades para definir esquemas
(a) Tabla clientes
„ Proporciona un LMD (Lenguaje de Manipulación de Datos)
numero-cuenta
saldo
A-101
500
A-215
700
A-102
400
A-305
350
A-201
900
A-217
750
A-222
700
(b) Tabla cuentas
Id-cliente
numero-cuenta
192-83-7465
A-101
192-83-7465
A-201
019-28-3746
A-215
677-89-9011
A-102
182-73-6091
A-305
321-12-3123
A-217
336-66-9999
A-222
019-28-3746
A-201
+ Proporciona facilidades para acceder y manipular los datos
organizados en el modelo de datos apropiado
(c) Tabla depositante
Bases de datos
15
„ Especificación de notación para definir el esquema de las bases de
„ Lenguaje para acceder y manipular a los datos
datos
organizados por el modelo de datos apropiado
+ P.e.
+ El DML también se conoce como lenguaje de consulta
char(10),
integer)
„ Dos clases de lenguajes
„ El compilador de DDL genera un conjunto de tablas almacenadas en
un diccionario de datos
„ Los diccionarios de datos contienen metadatos (es decir, datos sobre
los datos)
+ esquema de la base de datos
+ Procedimental – el usuario especifica que datos quiere consultar
y como obtener esos datos
+ No procedimental – el usuario especifica que datos quiere
consultar sin especificar como obtener esos datos
„ SQL es el lenguaje de consulta más ampliamente usado
+ Lenguaje de almacenamiento y definición de datos
El lenguaje en el que se especifican las estructuras de almacenamiento
y los métodos de acceso usados por la base de datos
Normalmente es una extensión del lenguaje de definición de datos
Bases de datos
16
Lenguaje de manipulación de datos (DML)
Lenguajes de definición de datos (DDL)
create table cuenta (
numero-cuenta
balance
Bases de datos
17
Bases de datos
18
SQL
Gestión de transacciones
„ SQL: lenguaje no procedimental ampliamente utilizado
„ Una transacción es un conjunto de operaciones que
+ P.e. encontrar el nombre del cliente con id-cliente 192-83-7465
realizan una única función lógica en una aplicación de
bases de datos
select cliente.nombre-cliente
from cliente
where cliente.id-cliente = ‘192-83-7465’
+ P.e. encontrar los balances de todas las cuentas pertenecientes al cliente
con id-cliente 192-83-7465
select cuenta.balance
from depositante, cuenta
where depositante.id-cliente = ‘192-83-7465’ and
depositante.numero-cuenta = cuenta.numero-cuenta
„ Los programas de aplicación normalmente acceden a bases de datos
mediante
„ El componente de gestión de transacciones asegura
que la base de datos se mantiene en un estado
consistente (correcto) aun cuando se produzcan
fallos en el sistema (p.e. fallos de alimentación o del
sistema operativo) o fallos de transacción.
„ El gestor de control de concurrencia controla la
interacción entre transacciones concurrentes, para
asegurar la consistencia de la base de datos.
+ Extensiones de lenguaje que permiten embeber SQL
+ Interfaces de programación de aplicaciones (p.e. ODBC/JDBC) que
permiten enviar consultas SQL a una base de datos
Bases de datos
19
Gestión de almacenamiento
Bases de datos
20
Administrador de bases de datos
„ Coordina todas las actividades del sistema de bases de datos; el
„ El gestor de almacenamiento es un módulo
que proporciona el interfaz entre los datos de
bajo nivel almacenados en la base de datos y
los programas de aplicación y consultas
enviadas al sistema.
„ El gestor de almacenamiento se encarga de:
administrador de bases de datos tiene un buen conocimiento de los
recursos y necesidades de información de la organización.
„ Las funciones del administrador de bases de datos incluyen:
+ Definición de esquemas
+ Definición de métodos de acceso y estructuras de almacenamiento
+ Modificación de esquemas y organización física
+ Garantizar derechos de acceso a la base de datos
+ Interactuar con el gestor de ficheros
+ Especificar restricciones de integridad
+ Conseguir un almacenamiento, recuperación y
actualización eficientes de los datos
+ Actuar como enlace con los usuarios
Bases de datos
+ Monitorizar las prestaciones y responder a cambios en los requisitos
21
Usuarios de bases de datos
Bases de datos
22
Estructura general del sistema
usuarios no
técnicos (vendedores, agentes,
usuarios web)
con el sistema
usuarios
sofisticados
(analistas)
programadores
de aplicaciones
usan
„ Los usuarios se diferencian por la forma en que esperan interactuar
escriben
interfaces de
aplicación
administradores
de bases de datos
usan
usan
programas de
aplicación
herramientas de
administración
herramientas
de consulta
„ Programadores de aplicaciones – interactuan con el sistema a
través de llamadas DML
compilador y
enlazador
„ Usuarios sofisticados – hacen peticiones en un lenguaje de consulta
código objeto
de programa
de aplicación
de bases de datos
„ Usuarios especializados – escriben aplicaciones de bases de datos
evaluador de
consultas
sofisticadas que no encajan en el marco del procesamiento
tradicional de datos
gestión de bufferes
interprete DDL
consultas DML
compilador y
organizador de DML
gestión de ficheros
„ Usuarios no técnicos – llaman uno de los programas de aplicación
procesador de consultas
gestión de
autorización
e integridad
gestión de
transacciones
gestión de almacenamiento
permanentes que se han escrito previamente
+ P.e. gente accediendo a la base de datos a través del web, cajeros
de banco, personal de oficina
índices
datos
Bases de datos
23
Bases de datos
diccionario de datos
gestión de disco
datos estadísticos
24
Arquitecturas de aplicación
usuario
usuario
cliente
aplicación
aplicación cliente
red
red
programa servidor
sistema de bd
servidor
sistema de bd
a. arquitectura en dos niveles
b. arquitectura en tres niveles
ƒArquitectura en dos niveles: P.e. los programas clientes utilizan
ODBC/JDBC para comunicarse con la base de datos
ƒArquitectura en tres niveles: P.e. las aplicaciones basadas en web, o
las aplicaciones que utilizan “middleware”
Bases de datos
25