objetivos de los sistemas de bases de datos vistas de...
TRANSCRIPT
Bases de datos 1
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 2
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 3
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 4
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 5
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 6
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 7
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 8
nivel de vista
Una arquitectura para un sistema de bases de datos "
vista 1 vista 2 vista n
nivel lógico
nivel físico
Bases de datos 9
Bancos, líneas aéreas, …"
Modelos de información,"conjuntos de entidades,"
atributos, ref. cruzadas, …"
Árboles equilibrados,"ficheros secuenciales, indexados,"cadenas, hash, listas invertidas, …"
Bits, bytes, registros,"códigos ASCII, EBCDIC, …"
El mundo real!
Las bases de datos!
Las estructuras de datos!
El almacenamiento físico!
Bases de datos 10
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 11
Una colección de herramientas para describir" datos " relaciones entre datos" semántica de los datos" restricciones de los datos"
Modelo relacional" Otros modelos: "
Modelo orientado a objetos" Modelos de datos semiestructurados" Modelos antiguos: modelo de red y modelo jerárquico"
Modelo Entidad-Asociación o Entidad-Relación (para diseño)"
Bases de datos 12
Ejemplo de datos tabulares en el modelo relacional"
nombre-cliente!Id-Cliente" calle-cliente! ciudad-cliente! numero-cuenta!
Pérez"
Gómez"
López"
Gómez"
González"
192-83-7465"
019-28-3746"
192-83-7465"
321-12-3123"
019-28-3746"
Principe"
Real"
Real"
Sol"
Norte"
Vigo"
Santiago"
Vigo"
Madrid"
Lugo"
A-101"
A-215"
A-201"
A-217"
A-201"
Atributos"
Bases de datos 13
Id-cliente! nombre-cliente! calle-cliente! ciudad-cliente!
192-83-7465"019-28-3746"677-89-9011"182-73-6091"321-12-3123"336-66-9999"019-28-3746"
Sánchez" Rodríguez" Gómez" Fernández" Veiga" López" Rodríguez"
Alma" Norte" Príncipe" Alcalá" Príncipe" Diagonal" Norte"
Santiago" Vigo" Madrid" Madrid" Madrid" Barcelona" Vigo"
(a) Tabla clientes"
numero-cuenta! saldo!
A-101"A-215"A-102"A-305"A-201"A-217"A-222"
500"700"400"350"900"750"700"
(b) Tabla cuentas"
Id-cliente! numero-cuenta!
192-83-7465"192-83-7465"019-28-3746"677-89-9011"182-73-6091"321-12-3123"336-66-9999"019-28-3746"
A-101"A-201"A-215"A-102"A-305"A-217"A-222"A-201"
(c) Tabla depositante"
Bases de datos 14
Proceso para diseñar la estructura general de la base de datos" Diseño Lógico: Decisión del esquema lógico de la base de
datos. Es decir, encontrar una conjunto “adecuado” de esquemas de relación" Decisiones de negocio: ¿qué atributos debería
almacenar en la base de datos?" Decisiones informáticas: ¿qué esquemas de relación
utilizar y cómo distribuir entre ellos los atributos?" Diseño físico: Escribir el programa."
Análisis de requisitos" Diseño conceptual" Diseño lógico" Normalización" Diseño físico"
Bases de datos 15
Bases de datos 16
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 17
Ejemplo de esquema en el modelo entidad-asociación"
clientes cuentas depositante
nombre-cliente calle-cliente
id-cliente ciudad-cliente
numero-cuenta saldo
Bases de datos 18
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 19
Especificación de notación para definir el esquema de las bases de datos" P.e.
"create table cuenta ( numero-cuenta char(10), balance 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 20
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 21
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 22
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 23
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 24
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 25
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 26
procesador de consultas
gestión de almacenamiento
gestión de bufferes gestión de ficheros gestión de autorización e integridad
gestión de transacciones
datos
compilador y organizador de DML
evaluador de consultas
consultas DML interprete DDL compilador y enlazador
código objeto de programa de aplicación
índices diccionario de datos
datos estadísticos
gestión de disco
interfaces de aplicación
programas de aplicación
herramientas de consulta
herramientas de administración
usuarios no técnicos (vende- dores, agentes, usuarios web)
usuarios sofisticados (analistas)
programadores de aplicaciones
administradores de bases de datos
usan usan escriben usan
La arquitectura de un sistema de bases de datos está muy influenciado por el sistema computacional que lo soporta:" Centralizado" Cliente-servidor" Paralelo " Distribuido"
Bases de datos 27
Bases de datos 28
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”"
aplicación
sistema de bd
usuario
red red
a. arquitectura en dos niveles b. arquitectura en tres niveles
sistema de bd
programa servidor
aplicación cliente
usuario
cliente
servidor
1950s y principios de los 1960s:" Procesamiento de datos con almacenamiento en cinta magnética"
Las cintas sólo permiten acceso secuencial" Entrada mediante tarjetas perforadas"
Finales de los 1960s y 1970s:" Discos durso con acceso directo a datos" Utilización generalizada de los modelos jerárquico y de red" Ted Codd define el modelo de datso relacional:"
IBM comienza a desarrollar el prototipo del sistema R" La Universidad de Berkeley comienza el prototipo de Ingres"
Procesamiento de transacciones de altas prestaciones (para la época)"
Bases de datos 29
1980s:" Los prototipos relacioanles se transforman en sistemas comerciales"
SQL se convierte en el estándar de la industria" Sistemas de bases de datos paralelos y distribuidos" Sistemas de bases de datos orientados a objetos"
1990s:" Aplicaciones complejas para el soporte a la toma de decisiones y
minería de datos" Grandes Data warehouses de varios terabytes" Apariciópn del comercio Web"
Principios de 2000s:" Estándares XML y Xquery" Administración automatizada de bases de datos"
Finales de 2000s:" Sistemas de almacenamiento gigantescos"
Google BigTable, Yahoo PNuts, Amazon, .."Bases de datos 30