Download Modelamiento de una Base de Datos

Document related concepts

Modelo de base de datos wikipedia , lookup

Base de datos jerárquica wikipedia , lookup

Modelo relacional wikipedia , lookup

Base de datos relacional wikipedia , lookup

Base de datos wikipedia , lookup

Transcript
P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO
FACULTAD DE INGENIERÍA
ESCUELA DE INFORMÁTICA
Base de Datos
Usuario A
Programa de
Aplicación
Bodega
Usuario B
•
•
•
Usuario N
•
•
•
Insumo
Proveedor
Profesores:
José Miguel Rubio L.
Índice de Contenidos
Introducción a las Bases de Datos
El Recurso Dato
Dato v/s Información
Historia de las Bases de Datos
Componentes de un ambiente de Base de Datos
Beneficios & Riesgos del uso de Base de Datos
Sistema de archivos v/s Bases de Datos
Bases de Datos y Desarrollo de Sistemas de
Información
Base de Datos
2
Índice de Contenidos
Sistemas de Gestión de Base de Datos
Conceptos
Principales funciones
Ventajas de utilizar SGBD
Consideraciones del uso de un SGB
Base de Datos
3
Índice de Contenidos
Modelamiento de una Base de Datos
Modelo Conceptual: Entidad Relación
Asociaciones entre entidades, Cardinalidad de
Asociaciones
Claves candidatas y claves primarias, Atributos
multivaluados
Reglas del Negocio
Modelo Lógico: Relacional
Modelo Lógico
Transformación de entidades y relaciones
Proceso de Normalización de Relaciones
Análisis de vistas
Base de Datos
4
Índice de Contenidos
Metodología para el desarrollo de una
BD
Identificación y Formulación de
Requerimientos
Diseño Conceptual
Diseño Lógico
Diseño Físico
Base de Datos
5
Definir Diseño de la Base de Datos
Realidad
Requisitos
de Datos
Modelo
Externo
Diseño Conceptual
Modelo
Conceptual
Diseño Lógico
Modelo
Lógico
Diseño Físico
Modelo
Físico
Esquema Conceptual
Esquema Lógico
Esquema Físico
Base de Datos
6
Diseño Lógico
El objetivo del Diseño Lógico es traducir el Diseño
Conceptual (el que representa los requerimientos) en
un Diseño Lógico que pueda ser implementado sobre
un DBMS.
Existen varias representaciones para el modelo lógico
de la BD, entre las que se encuentran:
Modelo Jerárquico
Reticular
Relacional
Modelo Orientado a Objeto
Base de Datos
7
Modelos Jerárquicos
Desarrollo de los modelos jerárquicos y del concepto
de BD (1960-70):
Un ejemplo de bases de datos jerárquica es IMS de
IBM desarrollado a finales de los 60.
Definición de independencia, seguridad, etc.
Definición de lenguajes de Bases de Datos
(1975) Creación y trabajos del comité SPARC/DB
(ANSI)
Arquitectura de SGDB en tres niveles
(hasta 1980) Desarrollo de los sistemas en red y
jerárquicos avanzados
Base de Datos
8
Modelos Jerárquicos
En los modelos jerárquicos, los elementos
tienen una relación padre/hijo donde un hijo
tiene un solo padre mientras que un padre
puede tener varios hijos
Base de Datos
9
Modelos Jerárquicos
Este modelo representa un conjunto de asociaciones
entre entidades, del tipo 1:1 y 1:M, es decir una
jerarquía de entidades (o árbol).
En una jerarquía un padre (registro propietario, UNO)
puede tener muchos hijos (registro subordinado,
MUCHOS) pero un hijo sólo puede tener un padre.
El árbol que se forma puede tener varios niveles, lo
que significa que un hijo en un cierto nivel puede a
su vez ser padre de otros hijos de nivel menor, pero
en todos los niveles debe cumplirse que mientras
cada padre puede tener varios hijos, cada hijo puede
tener sólo un padre.
Base de Datos
10
Modelos Jerárquicos
Todas las interrelaciones de los datos se basan en
jerarquías. Los archivos se conectan entre sí
mediante punteros físicos (dirección física que indica
donde puede encontrarse un registro sobre el disco)
o campos añadidos a los registros individuales.
Por ejemplo si tenemos un archivo de facturas
(FACTURA) y otro de líneas de factura (LINEA_F), el
padre (registro propietario) sería los datos de la
factura y los hijos (registros subordinados) las líneas
de la factura.
Base de Datos
11
Modelos Jerárquicos
En organizaciones jerárquicas se hace difícil
expresar las relaciones en la cuales un hijo se
relaciona con varios padres.
Como contrapartida cuando las relaciones son
jerárquicas, resulta fácil de implementar,
modificar y mantener la base de datos.
Base de Datos
12
Modelos Jerárquicos
Ejemplo Distribuidora de Productos:
CLIENTE
Nombre
Dirección
ORDEN
#Orden
Fecha
PRODUCTO
#Producto
Descripción
Cantidad
PROVEEDOR
Base de Datos
#Proveedor,
Ranking,
Precio, TpoEntrega
13
Modelos Jerárquicos
Una restricción importante de este modelo es la
existencia de un padre único para cada entidad.
En el ejemplo anterior, las entidades ORDEN y
PRODUCTO tienen una asociación 1:M, siendo que un
producto puede estar asociado con muchas órdenes,
es decir, la asociación real es M:N, pero éstas no se
pueden implementar en una jerarquía.
La restricción anterior genera una alta redundancia
dentro de este modelo, donde aparecen ocurrencias
jerárquicas de la base de datos que corresponderían
al modelo entregado en la figura anterior para la
Distribuidora de Productos.
Base de Datos
14
Modelos Jerárquicos
Ejemplo Distribuidora de Productos:
Cliente A
Orden A.1
Producto
X
Prov. Q
Base de Datos
Producto
Y
Prov. P
Prov. Q
Cliente B
Orden A.2
Orden B.1
Producto
X
Producto
Z
Prov. Q
Prov. Q
Prov. P
Prov. R
15
Modelos Jerárquicos
Este modelo presenta variados problemas al realizar
mantención a la base de datos.
Al ingresar un nuevo PRODUCTO, es necesario tener
un CLIENTE y una ORDEN asociada;
Al eliminar un PRODUCTO se eliminan todos los
PROVEEDORES asociados, pudiéndose perder
información relevante;
Al modificar algún atributo, por ejemplo cambiar el
Ranking de un PROVEEDOR es necesario hacerlo en
todas las ocurrencias donde esté el PROVEEDOR, lo
cual es lento y puede producir inconsistencias si es que
no se actualizan todas las ocurrencias.
Base de Datos
16
Modelos Jerárquicos
Las limitaciones al modelo radica en que no
todas las interrelaciones se pueden
representar en una estructura jerárquica.
Se intentan solucionar desarrollando los
sistemas de base de datos en red.
Base de Datos
17
Modelos de Red
Este modelo representa a los datos como un conjunto (set) de
tipos de registros y asociaciones entre ellos.
Se utiliza como estructura de datos un grafo, por lo que un tipo
de registro puede tener numerosas asociaciones con otros tipos
de registros, del tipo 1:1, 1:M y M:N.
Resulta más flexible que el jerárquico.
Es una extensión del modelo jerárquico, en la que un hijo puede
tener más de un padre. Este modelo es menos restrictivo que el
jerárquico y los sistemas de base de datos utilizan punteros
físicos también.
La desventaja es que en este tipo de modelo de datos su
estructura comienza a tomar apariencia de “tela de araña” con
apuntadores que salen en todas direcciones.
Base de Datos
18
Modelos de Red
A principios de los 70 se desarrollaron y se
comercializaron varios SGBD en red y este
modelo de datos se normalizó como el
modelo CODASYL.
Ejemplos de bases de datos en red son
ADABAS, TOTAL, IMAGE,...
Base de Datos
19
Modelos de Red
Ejemplo Distribuidora de Productos:
ORDEN
CLIENTE
Nombre
Dirección
#Orden
Fecha
PRODUCTO
LINEA-ORDEN
#Producto
Descripción
Cantidad
PROD-PROV
Precio
Tpo-Entrega
Base de Datos
Cantidad
PROVEEDOR
#Proveedor,
Ranking, Precio,
Tpo-Entrega
20
Modelos de Red
En este modelo es posible representar asociaciones M:N, para
ello es necesario transformarlas en dos asociaciones 1:M unidas
a través de un tipo de registro de intersección denominado
NUB. Con esto se elimina la redundancia generada en el modelo
jerárquico.
Los problemas de insertar, borrar y modificar la base de datos
planteados en el modelo jerárquico, se simplifican
enormemente.
Solo hay que tener cuidado al borrar registros que intervienen
en asociaciones M:N, pues es posible que se creen
inconsistencias si es que no se eliminan los registros NUB
involucrados.
Base de Datos
21
Modelos Orientados a Objetos
Define una base de datos en términos de
objetos, propiedades y sus operaciones.
Los objetos con una misma estructura y
comportamiento pertenecen a una misma
clase, y las clases se organizan en jerarquías.
Los modelos relacionales han extendido sus
modelos para incorporar conceptos
orientados a objetos.
Base de Datos
22
Modelo de Datos Relacional
En 1970, Edgard F. Cood publica un artículo en el
que argumenta que los datos deberían relacionarse
mediante interrelaciones naturales, lógicas e
inherentes a los datos, más que mediante punteros
físicos.
Cood propone así, un modelo simple de datos en el
que todos ellos se representarían en tablas
constituidas por filas y columnas.
A estas tablas se les dio el nombre de relaciones y
por eso se denominó al modelo relacional.
Base de Datos
23
Modelo de Datos Relacional
Cood también propuso dos lenguajes para manipular los datos
en las tablas:
El álgebra relacional
El cálculo relacional.
La manipulación lógica de los datos también hace factible la
creación de lenguajes de consulta más accesibles para un
usuario no especialista en programación.
Actualmente los sistemas relacionales son un estándar en el
mercado, especialmente en operaciones comerciales.
Ejemplos de sistemas de bases de datos relacionales son:
INFORMIX, DB2, ORACLE, SYBASE, DBASE, FOXPRO, INGRES,
MYSQL, MS SQL SERVER, ...
Base de Datos
24
Modelo de Datos Relacional:
Principales Características
Resulta más eficiente que el modelo jerárquico y de
red.
La Base de Datos es representada como una
colección de tablas (relaciones), las que se pueden
almacenar individualmente en forma de archivo.
Cualquier línea determinada de relación se le llama
tupla.
Cada columna de la relación representa un dominio
diferente.
Base de Datos
25
Modelo de Datos Relacional
El modelo relacional es totalmente diferente a los modelos jerárquico y de red, no sólo en
su arquitectura sino que también en los siguientes puntos:
Independencia en la implementación:
No es necesario conocer como se representan físicamente los datos (no se necesita trabajar
con punteros, listas enlazadas, grafos, etc.)
Terminología:
El modelo relacional tiene su propia terminología.
Claves lógicas como punteros:
Usa claves primarias y foráneas para representar las asociaciones entre dos archivos. No
obstante, debido a la independencia en la implementación la base de datos física puede usar
punteros u otros métodos, pero éstos son transparentes para el usuario.
Teoría de Normalización:
Esta teoría fue desarrollada en el contexto del modelo relacional, pero hoy en día sus
propiedades han sido extendidas a otros modelos. Consiste en un conjunto de propiedades
que deben cumplir los datos para lograr un diseño de base de datos libre de dependencias y
con el mínimo de redundancia.
Lenguaje de programación comprensivo:
Existen lenguajes simples para accesar las bases de datos relacionales, son lenguajes que
permiten manipular datos como grupos o archivos, en vez de un registro a la vez como los
lenguajes procedurales tradicionales.
Base de Datos
26
Modelo de Datos Relacional:
Resumen Histórico
Desarrollo del modelo relacional (1970-1990):
(1970-78) Desarrollo del modelo teórico
Definición del modelo (Codd 1970-72)
Álgebra y Cálculo relacional
Primeros problemas de diseño
(1975- 1980) Desarrollo de los primeros SGBD
relacionales
IBM (System R)
SQL (1975)
DB2, SQL/DS, OS/2, SQL/200 etc..
Proyecto INGRES
Base de Datos
27
Modelo de Datos Relacional:
Resumen Histórico
(1980-1990) Desarrollo de los grandes
sistemas relacionales
SQL comercial
Desarrollo de generadores de aplicaciones
Sistemas distribuidos
Estructuras cliente/servidor (lenguajes
visuales)
Modelo relacional orientado a objetos
Base de Datos
28
Modelo de Datos Relacional:
Resumen Histórico
Nuevos modelos de representación de
información (1980-1990):
Algunos problemas en el modelo relacional
La semántica de los items complejos se recoge
mal
Conexión de los datos existentes en la base de
datos con información “inteligente”
Representación unificada de reglas y datos
Bases de conocimiento
Sistemas Inteligentes de Información
Base de Datos
29
Modelo de Datos Relacional:
Resumen Histórico
Nuevos modelos de representación de información (1980-1990):
Algunos problemas en el modelo relacional
Existencia de bancos de datos con información no
estructurada:
Bases de datos documentales
Sistemas de recuperación de información
Los nuevos problemas (1990-2000): Nuevas Aplicaciones
1.- Tratamiento de grandes volúmenes de datos de
imágenes
2.- Bases de datos para sistemas de ayuda al diseño
3.- La obtención de información elaborada
4.- Bases de datos que soporten información compleja.
Base de Datos
30
Modelo de Datos Relacional:
Resumen Histórico
Nuevos Desafíos:
1.- Tecnología de bases de datos multimedia
2.- Problemas de bases de datos
heterogéneas
3.- Gestión de consultas expresadas de forma
imprecisa
4.- Inicio de nuevas formas de acceder a la
información (Minería de Datos)
Base de Datos
31
Modelo Relacional
Creado por Cood representa los datos en forma de
tablas o relaciones, está basado en fundamentos
matemáticos lo que le da solidez a las operaciones
que se realizan sobre las relaciones.
Comprende tres componente:
Estructura de los datos: Los datos son organizados en
relaciones.
La Manipulación de los datos: Lenguaje poderoso como
SQL son usados para manipular los datos almacenados
en las relaciones.
La Integridad de los datos: Cuenta con facilidades que
mantienen la integridad de los datos cuando estos son
manipulados.
Base de Datos
32
Propiedades de las Relaciones
1.
La intersección de cada fila y columna es atómico lo que
implica que no pueden existir grupos repetidos.
2.
Las columnas deben tener el mismo dominio.
3.
Cada fila es única y esto se garantiza por la existencia de la
clave primaria, la cual es única para todas las ocurrencias.
4.
Cada columna tiene un nombre distinto y el orden de las
columnas no tiene importancia.
5.
El orden de las filas es irrelevante.
6.
Las relaciones deben ser bien estructuradas lo que significa
que contiene redundancia mínima y se puede realizar
inserción, modificación y eliminación sin generar errores o
inconsistencias, también llamadas “anomalías”.
Base de Datos
33
Modelo Relacional
Se define una tupla como el conjunto de valores que componen
una fila de una relación.
Una tupla es equivalente a la ocurrencia de un registro dentro
de un archivo. Una n-tupla, es una tupla compuesta de n
dominios, siendo n el grado de la relación.
Un dominio es el conjunto de valores posibles para una
columna. La cardinalidad se define como el número de tuplas de
una relación.
Una base de datos relacional, está formada entonces por un
conjunto de relaciones o tablas, las cuales están asociadas entre
sí (relationship es el término usado en inglés para definir una
asociación o relacionamiento) a través de columnas que tienen
en común.
Base de Datos
34
Modelo Relacional
Ejemplo de Relacional: Se trata de una relación de grado tres y
cardinalidad cuatro.
Relación INSUMO
CODIGO-INS
NOMBRE-INS
MARCA
I1
Ampolleta
Phillips
I2
Lápiz
BIC
I3
Papel
Xerox
I4
Lápiz
Parker
Para representar una relación en una forma más resumida se
utiliza la siguiente notación :
INSUMOS (CODIGO-INS, NOMBRE-INS, MARCA)
Nombre de la Relación
Base de Datos
Dominios
35
Modelo Relacional
Cada tupla está compuesta de uno o más dominios.
Para entender mejor el concepto de dominio, analicemos el
dominio MARCA de la relación INSUMO, éste corresponde al
conjunto de todas las marcas válidas, incluidas aquellas que
actualmente no aparecen como valores de datos en la relación
INSUMO.
Es importante diferenciar un dominio de una columna o
atributo.
Un atributo representa el uso de un dominio dentro de una
relación.
Base de Datos
36
Modelo Relacional
Relación Producto-Ensamblado
Producto
Componente Cantidad
P1
P10
2
P1
P20
1
P5
P10
4
P8
P30
1
P8
P38
3
P8
P40
5
P9
P20
6
El producto P1 está formado por dos unidades del producto P10 y por una
unidad del producto P20, el producto P5 por cuatro unidades de P10,
etc. En este caso, hay tres atributos (PRODUCTO, COMPONENTE y
CANTIDAD) y dos dominios (CODIGO-PRODUCTO y CANT)
Base de Datos
37
Modelo Relacional
Cada tupla en una relación es única, y debe ser
posible definir una clave primaria o identificador que
permita asegurar esta unicidad.
Por ejemplo, en la relación INSUMO la clave primaria
puede ser el atributo CODIGO-INS. Es posible que la
clave primaria sea una combinación de atributos.
El proceso de manipular una base de datos relacional
es bastante más simple que en los dos modelos
anteriores. Al representarse los datos de una sola
forma se requiere un solo operador para cada
función básica (leer, insertar, borrar y modificar).
Base de Datos
38
Modelo Relacional
Suponer un Sistema de Compras que maneja la información
sobre la adquisición de insumos de una empresa a diferentes
proveedores, a través de tres tablas.
Proveedor
Insumo
Codigo-Prov
Nombre-Prov
Ciudad
P1
Alvarez
Viña
P2
Martínez
Valparaíso
P3
Zamora
Quillota
Orden de Compra
CODIGO-PROV
CODIGO-INS
CANTIDAD
P1
I1
300
P1
I2
200
P1
I3
400
P2
I1
300
P2
I2
400
P3
I2
200
Base de Datos
Codigo-Ins
Nombre-Ins
Marca
I1
Ampolleta
Phillips
I2
Lápiz
Bic
I3
Papel
Xerox
I4
Lápiz
Parker
39
Modelo Relacional
Es posible hacer un paralelo entre la terminología
usada en el modelo relacional, con la utilizada en
archivos tradicionales (pero dejando en claro que la
teoría relacional es mucho más precisa en su
definición):
Base de Datos
Modelo Relacional
Archivos Tradicionales
Relación (Tabla)
Archivo
Tupla (Fila)
Registro
Dominio (Columna)
Campo
40