Download Usuarios de bases de datos

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
„ 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
„ Usuarios de bases de datos
„ Estructura general del sistema
Bases de datos
1
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
Idea básica al implementar una BD:
Aprovechar los mismos datos para tantas
aplicaciones como sea posible.
Bases de datos
2
Sistema gestor de bases de datos (SGBD)
„ Conjunto de datos relacionados
„ Conjunto de programas para acceder a los datos
„ Un SGBD contiene información sobre una realidad concreta
„ Un SGBD proporciona un entorno que es conveniente y eficiente en
su uso
„ Aplicaciones de bases de 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
Bases de datos
3
Objetivos de un sistema de bases de datos
Las primeras aplicaciones de bases de datos se construían sobre
los sistemas de ficheros
„ Problemas de usar sistemas de ficheros para almacenar datos:
+ Redundancia de datos e inconsistencias
Varios formatos de fichero, información duplicada en
diferentes ficheros
+ Dificultad en acceder a los datos
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
4
Objetivos de un sistema de bases de datos (Cont.)
„ Problemas de usar sistemas de ficheros (cont.)
+ Atomicidad de actualizaciones
Los fallos pueden dejar la base de datos en un estado inconsistente
debido a actualizaciones parciales
P.e. transferir fondos de una cuenta a otra debería o bien realizarse
completamente o bien no realizarse
+ Acceso concurrente por varios usuarios
Los accesos concurrentes son necesarios para aumentar las
prestaciones
Los accesos concurrentes incontrolados pueden llevar a
inconsistencias
– P.e. dos personas leyendo un balance y modificándolo a la vez
+ Problemas de seguridad
„ Los sistemas de bases de datos dan soluciones a todos estos problemas
Bases de datos
5
Objetivos de un sistema de bases de datos (Cont.)
„ Es decir, un SGBD tiene por objetivos:
+ Acceso concurrente
+ Independencia física y lógica
+ Redundancia controlada de los datos
+ Alta relacionabilidad de los datos
+ Integridad de los datos
+ Consistencia de los datos
+ Seguridad de los datos
+ Actualización fácil y coherente
+ Alto rendimiento
+ Reducción de la dificultad de programación
Bases de datos
6
Niveles de abstracción
„ 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
y las relaciones entre los datos.
type cliente = record
nombre : string;
calle : string;
ciudad : integer;
end;
„ EL nivel de vista: los programas de aplicación ocultan detalles de
los tipos de datos. Las vistas también pueden ocultar información
(p.e. salario) por motivos de seguridad.
Bases de datos
7
Vistas de datos
Una arquitectura para un sistema de bases de datos
nivel de vista
vista 1
vista 2
vista n
nivel
lógico
nivel
físico
Bases de datos
8
Visión global
El mundo real
Las bases de datos
Bancos, líneas aéreas, …
Modelos de información,
conjuntos de entidades,
atributos, ref. cruzadas, …
Árboles equilibrados,
Las estructuras de datos
ficheros secuenciales, indexados,
cadenas, hash, listas invertidas, …
El almacenamiento físico
Bases de datos
Bits, bytes, registros,
códigos ASCII, EBCDIC, …
9
Instancias, esquemas e independencia
„ Similar a tipos de datos y variables en lenguajes de programación
„ Esquema – la estructura lógica de la base de datos
+ P.e., la base de datos consiste en información sobre un conjunto de
clientes y cuentas y la relación entre ellos)
+ Análogo al tipo de datos de una variable en un programa
+ Esquema físico: el diseño de la base de datos a nivel físico
+ Esquema lógico: el diseño de la base de datos a nivel lógico
„ Instancia – el contenido actual de la base de datos en un instante
concreto
+ Análogo al valor de una variable
„ Independencia física de los datos – la habilidad para modificar el
esquema físico sin cambiar el esquema lógico
+ Las aplicaciones dependen del esquema lógico
+ 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.
Bases de datos
10
Modelos de datos
„ Una colección de herramientas para describir
+ datos
+ relaciones entre datos
+ semántica de los datos
+ restricciones de los datos
„ Modelo Entidad-Asociación o Entidad-Relación
„ Modelo relacional
„ Otros modelos:
+ Modelo orientado a objetos
+ Modelos de datos semiestructurados
+ Modelos antiguos: modelo de red y modelo jerárquico
Bases de datos
11
Modelo Entidad-Asociación
Ejemplo de esquema en el modelo entidad-asociación
nombre-cliente
calle-cliente
id-cliente
saldo
ciudad-cliente
clientes
Bases de datos
numero-cuenta
depositante
cuentas
12
Modelo Entidad-Asociación (Cont.)
„ Modelo E-A del mundo real
+ Entidades (objetos)
P.e. clientes, cuentas, sucursales bancarias
+ Asociaciones entre entidades
P.e. La cuenta A-101 pertenece al cliente Pérez
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
Modelo Relacional
„ Ejemplo de datos tabulares en el modelo relacional
Atributos
Id-Cliente
nombre-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
Bases de datos
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
14
Un ejemplo de base de datos relacional
Id-cliente
nombre-cliente
calle-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
(a) Tabla clientes
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
Bases de datos
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
(c) Tabla depositante
15
Sistemas Gestores de Bases de Datos
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
„ Proporciona un LMD (Lenguaje de Manipulación de Datos)
+ Proporciona facilidades para acceder y manipular los datos
organizados en el modelo de datos apropiado
Bases de datos
16
Lenguajes de definición de datos (DDL)
„ Especificación de notación para definir el esquema de las bases de
datos
+ P.e.
create table cuenta (
numero-cuenta
balance
char(10),
integer)
„ 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
+ 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
17
Lenguaje de manipulación de datos (DML)
„ Lenguaje para acceder y manipular a los datos
organizados por el modelo de datos apropiado
+ El DML también se conoce como lenguaje de consulta
„ Dos clases de lenguajes
+ 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
Bases de datos
18
SQL
„ SQL: lenguaje no procedimental ampliamente utilizado
+ P.e. encontrar el nombre del cliente con id-cliente 192-83-7465
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
+ 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 transacciones
„ Una transacción es un conjunto de operaciones que
realizan una única función lógica en una aplicación de
bases de datos
„ 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.
Bases de datos
20
Gestión de almacenamiento
„ 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:
+ Interactuar con el gestor de ficheros
+ Conseguir un almacenamiento, recuperación y
actualización eficientes de los datos
Bases de datos
21
Administrador de bases de datos
„ Coordina todas las actividades del sistema de bases de datos; el
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
+ Especificar restricciones de integridad
+ Actuar como enlace con los usuarios
+ Monitorizar las prestaciones y responder a cambios en los requisitos
Bases de datos
22
Usuarios de bases de datos
„ Los usuarios se diferencian por la forma en que esperan interactuar
con el sistema
„ Programadores de aplicaciones – interactuan con el sistema a
través de llamadas DML
„ Usuarios sofisticados – hacen peticiones en un lenguaje de consulta
de bases de datos
„ Usuarios especializados – escriben aplicaciones de bases de datos
sofisticadas que no encajan en el marco del procesamiento
tradicional de datos
„ Usuarios no técnicos – llaman uno de los programas de aplicación
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
Bases de datos
23
Estructura general del sistema
usuarios no
técnicos (vendedores, agentes,
usuarios web)
usuarios
sofisticados
(analistas)
programadores
de aplicaciones
usan
escriben
interfaces de
aplicación
usan
usan
herramientas de
administración
programas de
aplicación
herramientas
de consulta
compilador y
enlazador
consultas DML
código objeto
de programa
de aplicación
interprete DDL
compilador y
organizador de DML
evaluador de
consultas
gestión de bufferes
administradores
de bases de datos
gestión de ficheros
procesador de consultas
gestión de
autorización
e integridad
gestión de
transacciones
gestión de almacenamiento
índices
datos
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