BASES DE DATOS, MODELOS DE DATOS Y DBMS

Anuncio
BASES DE DATOS,
MODELOS DE DATOS Y
DBMS
Maestría en Bioinformática – Marzo 2010
Bases de Datos
Algunas definiciones: Bases de Datos y DBMS
Procesos y Actores Involucrados
¿Por qué usar DBMSs?
¿Cuándo no usar un DBMSs?
Algunas Definiciones
¿Qué es un Base de Datos (BD)?
Conjunto de datos relacionados
NO tiene por qué ser un programa.
Ej: agenda de teléfonos
¿Qué es un Database Management System
(DBMS)?
Software especializado en la gestión de Bases de
Datos
Por lo general pensado para grande volúmenes de
datos
Procesos y Actores Involucrados
Procesos:
Definición de una BD
Construcción de una BD
Manipulación de una BD
Actores:
Administrador de BDs.
Diseñador de BDs
Desarrolladores de Sistemas de Información
Usuarios finales
¿Por qué usar DBMSs? (I)
¿Qué aporta esta tecnología ?
Software específico para manejo de datos
relacionados.
¿Qué se haría si no se puede usar ?
Desarrollar programas usando lenguajes de
propósito general.
C, Java, C++, ...
¿y esto que problemas trae ?
Más trabajo para manipular datos.
Productividad, Costos, Calidad.
Ejemplo - Aplicación Bancaria
Un banco posee un Sistema de Información.
Está formado por los siguientes programas:
Un programa que debita y/o acredita $ en cuentas.
2.
Un programa que crea una cuenta nueva.
3.
Un programa que devuelve el saldo de una
cuenta.
4.
Un programa que genera los movimientos
mensuales de una cuenta.
5.
Un programa que lista el cliente, la dirección y el
saldo de su cuenta.
Los datos se almacenan en archivos y los
programas se escriben en lenguajes de propósito
1.
Problemas al no usar DBMSs (I)
Específicos a la implementación basada en
archivos, a resolver por el programador.
Inconsistencia de datos.
Dificultades para el acceso a información.
Programar consultas/listados específicos.
Aislamiento de datos.
Programar control de restricciones de Integridad.
Programar algoritmos de merge (apareo archivos).
Seguridad en datos.
Programar los controles de acceso para los ítems.
Problemas al no usar DBMSs (II)
Control de concurrencia.
¿Qué pasa si se ejecuta el programa DEBITO
desde dos estaciones ?
Programa DEBITO (nro_cuenta, cant_retiro)
cuenta = ObtenerCuenta(nro_cuenta);
/* lectura de la cuenta a fin de visualizar el saldo actual de la misma y
poder modificarlo */
cuenta.saldo := cuenta.saldo – cant_retiro;
/* se actualiza el saldo */
GuardarCuenta(cuenta);
/* se hace efectivo el retiro */
END
Problemas al no usar DBMSs (III)
Una ejecución podría ser de la forma:
Puesto 1 (DEBITO(#10,50)
Puesto 2 (DEBITO(#10,100)
cuenta = ObtenerCuenta(#10)
saldo = cuenta.saldo // ($ 500)
saldo = saldo - 50 // (quedan $ 450)
cuenta.saldo = saldo
GuardarCuenta(cuenta)
cuenta = ObtenerCuenta(#10)
Fin DEBITO
Fin DEBITO
El saldo es $ 450
El saldo es $ 400
saldo = cuenta.saldo // ($ 500)
saldo = saldo - 100 // (quedan $ 400)
cuenta.saldo = saldo
GuardarCuenta(cuenta)
tiempo
¿Por qué usar DBMSs? (II)
Organización de la información:
Definición central de datos.
Abstracción de Datos.
Permite múltiples vistas de los datos.
Programación del acceso a datos:
Separación entre programas y datos.
Control de Restricciones de Integridad.
Estandarización de modelos y lenguajes.
¿Por qué usar DBMSs? (III)
Explotación de la Base de Datos:
Datos compartidos.
Control de concurrencia.
Seguridad y Recuperación ante fallas.
Datos persistentes en modelos avanzados.
¿Por qué no usar DBMSs?
Para evitar ciertos costos:
Inversión en :
Hardware
Software
Capacitación técnica
Costo de administración del DBMS y la base de
datos.
Costo computacional para proveer:
Control de concurrencia
Restricción de acceso, etc.
¿Por qué no usar DBMSs? (II)
En algunos casos el uso de un DBMS no se
justifica :
Muy pocos datos (planillas)
Datos muy estables
Alta performance (sistemas de tiempo real)
Cuando no hay acceso concurrente
Modelos de Datos y DBMS
Modelos de Datos
Esquemas e Instancias
Arquitectura en tres niveles
Tipos de DBMS
¿Cómo se interactúa con un DBMS?
Estructura básica de DBMSs
Modelos de Datos: Definición
Lenguajes usados para especificar Bases de
Datos
Los Modelos de Datos permiten expresar:
Estructuras: objetos de los problemas
Restricciones: reglas que deben cumplir los datos
EJ: CUENTAS(nro_cuenta, tipo, moneda, saldo)
EJ: (∀c ∈ CUENTAS) (c.saldo > 0)
Operaciones sobre los datos: insertar, borrar y consultar
la BD
EJ: INSERT INTO CUENTAS (2584,Caja de
ahorros,pesos,5000)
Modelos de Datos: Clasificación
Según el nivel de abstracción:
Conceptuales:
Representan la realidad independientemente de
cualquier implementación de BD
Usados en etapa de Análisis
Lógicos:
Representan la implementación del conceptual en un
DBMS particular
Usado en etapas de Diseño e Implementación
Físicos:
Implementación de estructuras de datos
Modelos de Datos
Conceptuales
La realidad expresada en términos de:
Entidades: conceptos u objetos del mundo real
Atributos: propiedades de las entidades
Relaciones: asociaciones entre 2 o más
entidades
Utilizaremos un lenguaje gráfico para construir
nuestros modelos (Modelo Entidad Relación)
Modelos de Datos: Aplicación
MUNDO REAL
MODELADO CONCEPTUAL
CAJAS DE
AHORROS
POSEEN
CUENTAS
CORRIENTES
PERSONAS
EJ:
MODELO
ENTIDAD RELACION
ESQUEMA CONCEPTUAL
CUENTAS
DISEÑO DEL SISTEMA
EJ:
MODELO
RELACIONA
L
ESQUEMA LÓGICO
•TABLA CUENTAS(nro_cuenta, moneda, saldo)
•TABLA PERSONAS (cédula, nombre, …)
•TABLA POSEEN(cédula, nro_cuenta)
Esquema e Instancias
Esquema de una BD:
Estructura y significado
Muy estables.
CUENTAS(nro_cuenta, moneda, saldo)
PERSONAS (cédula, nombre, direccion,
telefono)
POSEEN(cédula, nro_cuenta)
Instancias:
Nro_cuenta
Datos almacenados 25440
23456
Muy volátiles
23457
moneda
saldo
pesos
15000
dólares
500
dólares
850
Recordemos ...
Propiedades importantes de DBMSs:
Control centralizado de la BD.
Separación entre esquema y aplicaciones.
Esquema: visión global de los datos de la realidad.
Aplicaciones: programas sobre la BD.
Soporte a diferentes visiones de los datos.
Usuarios/aplicaciones ven subconjuntos de la BD.
Independencia de datos.
Esquema lógico independiente de implementación.
Niveles de Abstracción
(arquitectura)
NIVEL EXTERNO
VISTA
EXTERNA 1
VISTA
EXTERNA 2
VISTA
EXTERNA 3
NIVEL CONCEPTUAL
ESQUEMA CONCEPTUAL
NIVEL INTERNO
ESQUEMA INTERNO
Tipos de DBMS
Según el Modelo de Datos que usan para la
representación interna:
Según distribución de la BD:
Relacional (RDBMS)
Orientado a Objetos (OODBMS)
Otros: Redes, Jerárquico, Deductivo
Centralizado
Distribuido
En el curso usaremos un RDBMS centralizado:
PostgreSQL
¿Cómo se interactúa con un
DBMS?
Existen lenguajes que me permiten:
Definir el esquema (crear, borrar, modificar)
Manipular las instancias (crear borrar, modificar)
Query Language (QL)
Crear vistas
Data Manipulation Language (DML)
Hacer consultas
Data Definition Language (DDL)
View Definition Language (VDL)
SQL (Structured Query Language) lenguaje
que permite hacer todo esto sobre los RDBMS
¿Cómo se interactúa con un
DBMS? (II)
Mediante lenguajes de programación:
Los lenguajes definen abstracciones (ej: bibliotecas)
Usándolas interactuo con el DBMS
También puedo interactuar usando programas
cliente que provee el fabricante del DBMS
Estructura de DBMS
Referencias
“Fundamentals of Database Systems 5th Ed.”,
Elmasri & Navathe, Addison Wesley, 2007.
(cap. 2 y 3)
Curso Fundamentos de Bases de Datos,
INCO,
http://www.fing.edu.uy/inco/cursos/bdatos/
Descargar