Download Introducción - fc

Document related concepts

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

Modelo de base de datos wikipedia , lookup

Base de datos relacional wikipedia , lookup

SQL wikipedia , lookup

Lenguaje de definición de datos wikipedia , lookup

Transcript
Introducción
Informática Aplicada
Contenido
•
•
•
•
•
•
•
•
•
•
•
•
Propósitos de las bases de datos
Punto de vista de los datos
Lenguajes de base de datos
Bases de datos relacionales
Diseño de bases de datos
Bases de datos orientadas a objetos y
semisetructuradas
Consultas y almacenamiento de datos
Control de Transacciones
Arquiectura de bases de datos
Usuarios y administradores de bases de datos
Estructura general
Historia de sistemas de bases de datos
Sistemas de administración de bases
de datos
•Un sistema de base de datos contiene información de una empresa
•Colección de datos interrelacionados
•Conjunto de programas para manejar los datos
•Un ambiente que sea conveniente y eficiente de usar
•Aplicaciones
•Bancarias: todas las transacciones
•Aerolíneas: reservaciones, intinerarios
•Universidades: inscripciones, calificaciones
•Ventas: clientes, productos, facturas
•Manufactura: producción, inventario, ordenes, cadena de
suministros
•Recursos Humanos: registros de empleados, salarios, impuestos
Las bases de datos se aplican en todos los aspectos de la vida
Propósito de los sistemas de base
datos
Al principio, las aplicaciones se construían directamente
sobre el sistema de archivos.
•Desventajas
•Redundancia en los datos e inconsistencia
•Múltiples formatos de archivo, duplicado de la información en
diferentes archivos
•Dificultad en el acceso a los datos
•Necesidad de escribir nuevos programas para cada nueva aplicación
•Aislamiento de los datos - múltiples archivos y formatos
•Problemas de integridad
•Restricciones de integridad (p.ej. balance>0) se inserta en el código
del programa en lugar de hacerlo explícitamente
•Difícil agregar nuevas restricciones o cambiar las actuales
Propósito de los sistemas de base
datos (cont.)
•Desventajas (cont)
•Atomicidad de las actualizaciones
•Las fallas pueden dejar la base de datos en un estado inconsistente con
actualizaciones parciales
•Ejemplo: transferencia de fondos de una cuenta a otra debe
completarse o no ocurrir
•Acceso concurrente por múltiples usuarios
•Acceso concurrente necesario por eficiencia
•Acceso concurrente sin control puede crea inconsistencias
•Ejemplo: dos usuarios leyendo un saldo y actualizándolo al mismo
tiempo
•Problemas de seguridad
•Difícil proveer a usuarios acceso a todos, pero no todos los datos
•Los sistemas de bases de datos proveen soluciones para
todos estos problemas
Niveles de abstracción
•Nivel físico: describe como se almacenan los registros
•Nivel Lógico: describe los datos guardados en la base de datos y la
relación entre los datos
type custumer = record
customer_id:string;
customer_name:string;
customer_street:string;
customer_city:string;
end;
•Nivel de vista: los programas de aplicación ocultan detalles de los
tipos de datos. Las vistas también ocultan información (tal como el
salario de un empleado) con propósitos de seguridad.
Punto de vista de los datos
Arquitectura de un sistema de bases de datos
Nivel de vista
Vista 1
Vista 2
Nivel lógico
Nivel físico
Vista N
Instancias y esquemas
Análogo a tipos y variables en lenguajes de programación
Esquema - La estructura lógica de la base de datos
•ejemplo: La base de datos consiste de información acerca de un conjunto
de clientes y cuentas y la relación entre ellos.
•Análogo a los tipos de información de una variable en un programa
•Esquema físico: diseño de la base de datos en el nivel físico
•Esquema lógico: diseño de la base de datos en el nivel lógico
Instancia - el contenido actual de la base de datos en un punto particular del
tiempo.
•Análogo al valor de una variable
Independencia física de los datos - habilidad para modificar el esquema
físico sin cambiar el esquema lógico
•Las aplicaciones dependen del esquema lógico
•En general, la interfase entre varios niveles y componentes deberá estar
bien definida para que los cambios en alguna parte no influye seriamente
en otras.
Modelo de los datos
•Un conjunto de Herramientas para describir
•Datos
•Relaciones entre datos
•Semántica de los datos
•Restricciones de los datos
•Modelo relacional
•Modelo Entidad-Relación (principalmente para diseño)
•Modelos basados en objetos (Orientados a objetos y Objetorelacionales)
•Modelo Semi-estructurados (XML)
•Otros modelos antiguos:
•Modelo de red
•Modelo jerárquico
El modelo relacional
•
Ejemplo de una tabla de datos en el modelo relacional
Atributos
Ejemplo de una base de datos
relacional
Lenguaje de definición de datos
(DDL)
•Notación de especificación pra definir esquemas de base de datos
Ejemplo
create table account (
account-number char(10),
balance integer);
•El compilador DDL genera un conjunto de tablas almacenadas en un
diccionario de datos
•El diccionario de datos contiene metadatos (i.e., datos acerca de los
datos)
•Esquema de base de datos
•Almacenamiento de datos y lenguaje de definición
•Especifica la estructura del almacenamiento y los métodos de acceso usados
•Restricciones de integridad
•Restricciones de dominio
•Integridad referencial (restricciones de referencia en SQL)
•Asertos
•Autorización
Lenguaje de manipulación de datos
(DML)
Lenguaje para acceder y manipular los datos organizados por un
modelo apropiado de datos
•El DML es conocido como lenguaje de consulta
Dos clases de lenguajes
•Procedural - el usuario especifica que datos son requeridos y
como obtener esos datos.
•Declarativo (no procedural) - el usuario especifica que datos
son requeridos sin especificar como obtener esos datos.
SQL es el lenguaje más utilizado como lenguaje de consulta.
SQL
SQL: lenguaje no procedural más utilizado
Ejemplo: Encontrar el nombre del cliente con clave 192-83-7465
select customer.customer_name
from
customer
where customer.customer_id = ‘192-83-7465’
Example: Encontrar los saldos de todas las cuentas de un cliente con clave
192-83-7465
select account.balance
from
depositor, account
where depositor.customer_id = ‘192-83-7465’ and
depositor.account_number = account.account_number
Los programas de aplicación generalmente acceden a las bases de datos a través
de extensiones del lenguaje para permitir SQL embebido
Las interfases de los programas de aplicación (p.e., ODBC/JDBC) las cuales
permiten que consultas SQL sen enviadas la base de datos
Diseño de bases de datos
El proceso de diseño de la estructura general de bases de datos:
•Diseño Lógico – Desición del esquema de la base de datos. El diseño
de la base de datos requiere encontrar una colección “buena” de
esquemas de relación.
•Decisión de negocios – Cuáles atributos guardaremos en la base
de datos?
•Decisión de Ciencias de la computación – Que esquemas de
relación tendremos y como se distribuirán a lo largo de los
esquemas de relación?
•Diseño físico – Decidiendo sobre plano físico de la base de datos
Modelo entidad-relación
•Modela una empresa como una colección de entidades y relaciones
•Entidad: una “cosa” u “objeto” en una empresa que es distinguible de
otros objetos.
•Descrito por un conjunto de atributos.
•Relación: una relación entre varias entidades.
•Representado gráficamente mediante un diagrama entidad-relación
Modelo de datos objeto-relacional
•Extiende el modelo de datos relacional incluyendo
orientación a objetos y constructores para trabajar con
tipos de datos agregados.
•Permite atributos de tuplas que tengan tipos
complejos, incluyendo valores no atómicos tal como
relaciones anidadas.
•Retiene los fundamentos relacionales, en particular el
acceso declarativo de datos, mientras extiende la
potencia del modelado.
•Provee compatibilidad hacia arriba con los lenguajes
relacionales existentes.
XML: Extensible Markup
Language
Lenguaje de Marcado Extensible
•Definido por el consorcio WWW (W3C)
•Originalmente definido como un lenguaje de marcado de
documentos no como un lenguaje de base de datos.
•Habilidad para especificar nuevos objetivos (tags), y crear
estructuras objetivos anidados hacen de XML una forma conveniente
•para intercambiar datos, no solo documentos.
•XML ha llegado a ser la base para una nueva generación de
formatos de intercambio de datos.
•Una variedad amplia de herramientas están disponibles para
reconocimiento, espulgado y consulta de documentos/datos.
Manejador de almacenamiento
•El manejador del almacenamiento es un módulo de programa que
provee la interfase entre el almacenamiento de datos de bajo nivel en la
base de datos y los programas de aplicación y las consultas enviadas al
sistema.
•El manejador del almacenamiento es responsable de las siguientes
tareas:
Interacción con el manejador de archivos
 El eficiente almacenamiento y recuperación y actualización de
datos
•Provee:
 Acceso al almacenamiento
 Organización de archivos
 Indexado y hashing
Procesamiento de consultas
1. Análisis y traducción
2. Optimización
3. Evaluación
Consulta
Analizador y
traductor
Expresión de
Álgebra
relacional
Optimizador
Salida de la
consulta
Máquina de
evaluación
Plan de
ejecusión
Estadísticas
de los datos
Datos
Procesamiento de consultas (cont.)
• Formas alternativas de evaluar una consulta dadas
– Expresiones equivalentes
– Diferentes algoritmos para cada operación
• Las diferencias en costo entre una forma buena y
mala de evaluar una consulta puede ser enorme
• Necesidad de estimar el costo de las operaciones
– Depende críticamente de información estadística acerca de
las relaciones la cual la base de datos debe mantener
– Necesidad de estimar estadísticas para resultados
intermedios para computar el costo de expresiones complejas
Manejador de transacciones
• Una transacción es una colección de operaciones que lleva a
cabo una función lógica única en una aplicación de base de
datos
• La componente de manejador de transacciones asegura
que la base de datos permanezca en un estado consistente
(correcto) sin importar las fallas (p.ej. Fallas de potencia,
caídas del sistema operativo) y fallas en las transacciones.
• Manejador de control de concurrencia controla la
interacción entre las transacciones concurrentes, para
asegurar la consistencia de la base de datos.
Arquitecturas de bases de datos
La arquitectura de las bases de datos esté muy influenciada por
el sistema de cómputo en los que la base de datos se ejecuta:
•
•
•
•
Centralizado
Cliente-servidor
Paralelo (multi-procesador)
Distribuida
Usuarios de bases de datos
Los Usuarios son diferenciados por la manera en que se espera
que interactúen con el sistema
• Programadores de aplicación – interactúan con el sistema a
través de llamadas DML
• Usuarios Sofisticados – formulas preguntas en la base de
datos en un lenguaje de consultas de base de datos
• Usuarios especializados – escriben aplicaciones de bases
de datos que no se ajustan a la organización del
procesamiento de datos tradicional
• Usuarios novatos – ejecutan uno de los programas
permanentes de aplicación que han sido escritos previamente
– Ejemplos, gente que acceda la base de datos por la web, cajeros
automáticos, personal de oficina
Administrador de base de datos
• Coordina todas las actividades en el sistema de base
de datos; el administrador tiene un buen conocimiento
de los recursos de la empresa y sus necesidades.
• Los deberes del administrador se incluye:
– Definición del esquema
– Estructura del almacenamiento y definición del método de
acceso
– Modificación del esquema y organización física
– Otorga autoridad a los usuarios de la base de datos
– Especifica restricciones de integridad
– Actúa como coordinador de usuarios
– Monitorea comportamiento y responde a cambios en los
requerimientos
Estructura completa del sistema
Usuarios novatos
(cajeros, agentes,
Usuarios web)
Usa
Programadores de
aplicaciones
Escribe
Interfase
De aplicación
Usa
Usa
Programas
De aplicación
Herramientas
De consulta
Herramientas
de administración
Compilador y
ligador
Consultas DML
Interprete DDL
Código objeto
De programas
De aplicación
Compilador DML
Y organizador
Máquina evaluadora
De consultas
Manejador de buffer
Administrador de
Base de datos
Usuarios
sofisticados
Manejador de archivo
Procesador de consultas
Manejador de
Autorización
e integridad
Manejador de
transacciones
Manejador de almacenamiento
Índices
Datos
Diccionario de datos
Datos estadísticos
Disco