Escolar Documentos
Profissional Documentos
Cultura Documentos
Versin 1.1
El diseo de una base de datos se descompone en diseo conceptual, diseo
lgico y diseo fsico.
Anlisis de los
requisitos
ANALISIS
Diseo Conceptual
Mapeo
Diseo Lgico
Normalizacin
Diseo Fsico
DISEO
DIAGRAMA DE CLASES
Un diagrama de clases presenta un conjunto de clases, interfaces, colabo-
raciones y las asociaciones entre ellas. Los diagrama de clases son los mas
utilizados en el modelado de sistemas orientados a objetos.
Los diagramas de clases se utilizan para describir la vista de diseo
esttica de un sistema.
Un diagrama de clases est compuesto por los siguientes elementos:
Clase: atributos y mtodos.
Relaciones: Asociacin, Herencia, Composicin y Agregacin
OBJETO
Es cualquier cosa del mundo real que tiene existencia fsica o conceptual
posee caractersticas y comportamiento.
CLASE
Conjunto de objetos que comparten los mismos atributos, mtodos
relaciones y comportamiento. Todo objeto es una instancia de una clase
que tiene las mismas caractersticas.
3
<Nombre Clase>
<Atributos>
<Mtodos>
Alumno
- codigo
- nombres
- paterno
- materno
- telefono
- direccion
+ modificarAlumno(int)
+ buscarAlumno(int)
4
ASOCIACIONES ENTRE CLASES
Adorno Semntica
0..1 Cero 1
1 Exactamente 1
0..* Cero ms
* Cero ms
n Nmero fijo
Factura
Recibo
Tiene - nro_factura
- nro_recibo
1 0..1 - fecha
- fecha
- NIT
- monto
- Monto
Persona CertificadoNacimiento
- ci - id_certificado
Tiene
- nombres - fechaRegistro
- paterno 1 1 - nombrePadre
- materno - nombreMadre
- telefono - fechaNacimiento
- direccion - lugarNacimiento
6
Asociaciones de Uno a muchos
Cada objeto de la clase Cliente se puede relacionar con uno o muchos
objetos de la clase NotaVenta, y cada objeto de la clase NotaVenta puede
estar relacionado con un objeto de la clase Cliente.
El otro ejemplo vemos que a cada objeto de la clase UnidadMedida le
corresponde uno o ms objetos de la clase Producto, pero a cada objeto de
la clase Producto le corresponde un objeto de la clase UnidadMedida.
class Diagram
class Diagram
Cliente
NotaVenta UnidadMedida Producto
- id_cliente pide pertenece
- id - id_unidad - codigo
- nombre 1 1 1..*
1..* - fecha - nombre - descripcion
- telefono
- monto - abreviatura - precio
- direccion
Alumno
Materia
- codigo pasa
- nombre - sigla
1..* 1..* - nombre
- paterno
- materno
7
RELACIN DE COMPOSICIN
Es un tipo de relacin todo-parte, en la que el todo se puede componer
de muchas partes.
Se llama relacin esttica, donde el tiempo de vida del objeto Incluido
parte es dependiente del que lo Incluye todo. Las partes son miembros
de un nico compuesto . Dicho de otra forma: cada parte tiene dependencia
de existencia del todo.
class Diagram
NotaVenta Gestion
- id_gestion
- id_venta
- nombre
- fecha
- fecha_inicio
- monto - fecha_fin
1
1
1..*
1..*
Periodo
DetalleVenta
- id_periodo
- id_detalle - nombre
- precioVenta - fecha_inicio
- cantidad - fecha_fin
9
RELACIN DE AGREGACIN
Es un tipo de relacin dinmica, en donde el tiempo de vida del objeto
Incluido (parte) es independiente del que lo Incluye (todo). Es decir que
cada parte no tiene existencia de dependencia del todo (las partes pueden
separarse del todo). Es una relacin normal entre objetos, donde se usa
para indicar las partes que corresponden a un todo.
class Diagram
class Diagram
Computadora Perifericos
Casa
Mueble - id_pc - codigo
- nro - procesador
- id - nombre
- zona 0..1 1..* - memoria 0..1 0..*
- nombre
- uv - discoDuro
- ubicacion - tipo
- tarjetaMadre
10
RELACIN DE GENERALIZACIN / ESPECIALIZACIN
Es la actividad de identificar elementos comunes (del mismo tipo) entre los
conceptos y definir las relaciones de superclase (concepto general) y subclase
(concepto especializado).
Indica que una subclase hereda los mtodos y atributos especificados por
una superclase. Las subclases adems de poseer sus propios atributos
y mtodos, poseer tambin las caractersticas y atributos visibles de la
superclase.
Las subclases se ajustan a las reglas ES UN tipo de la superclase.
class Diagram
Vehiculo
- placa
- marca (superclase)
Camin ES UN tipo de Vehculo -
-
modelo
color
y de la misma forma Auto.
Camion
Auto (subclases)
- nroEjes - nroPasajeros
- capacidad
TIPOS DE ESPECIALIZACIN
DISJUNTA.- Los objetos de las superclases pertenecen a una subclase.
SOLAPAMIENTO.- Los objetos de las superclases pertenecen a una o ambas
Subclases.
class Diagram
Vehiculo
- placa
- marca
- modelo
- color
Camion
Auto
- nroEjes - nroPasajeros
- capacidad
Participacin
En el caso que cada objeto de Vehculo este obligado a ser Camin o Auto se
denomina Completa (total), pero si existe algn objeto de Vehculo que no sea
ni Camin ni Auto se denomina Incompleta (parcial).
13
En este ejemplo vemos que Secretaria hereda las caractersticas de Empleado y
adems tiene un atributo como particularidad propia velocidad_tipeo, de la misma
manera Tcnico con su atributo propio nivel.
class Diagram
Empleado
- ci
- nombres
- paterno
- materno
- telefono
Secretaria Tecnico
- velocidad_tipeo - nivel
Tipo de Especializacin
El Empleado puede ser Secretaria o Tcnico, solamente uno de ellos no ambos,
dando lugar al concepto de Disjunta.
Participacin
Si cada objeto de Empleado est obligado a ser Secretaria o Tcnico, se denomina
Completa (total), pero si existe algn objeto de Empleado que no sea ni Secretaria
ni Tcnico se denomina Incompleta (parcial).
En este ejemplo vemos que
class Docente y Administrativo heredan las caractersticas
Diagram
de Empleado.
Empleado
- id_emp
- nombre
- paterno
- materno
Docente Administrativ o
Tipo de Especializacin
Una Empleado puede ser solo Docente, solo Administrativo ambos al mismo
tiempo, dando lugar al concepto de Solapamiento.
Participacin
Si cada objeto de Empleado est obligado a ser Docente, Administrativo o ambos,
se denomina Completa (total), pero si existe algn objeto de Empleado que no sea
ni Docente ni Administrativo se denomina Incompleta (parcial).
15
Tipo de Especializacin
Una persona puede ser solo Cliente, solo Vendedor ambos al mismo tiempo,
dando lugar al concepto de Solapamiento.
class Diagram
Persona
- ci
- nombre
- apellidos
- direccion
- telefono
Cliente Vendedor
- limite_credito - porcentaje
16
RELACIONES RECURSIVAS
Existen casos donde las asociaciones se realizan sobre la misma clase. En este
caso es necesario utilizar roles para diferenciar los objetos que pertenecen a la
misma clase.
class Diagram
Empleado 1
jefe
class Diagram
0..* tiene
Materia
Una materia tiene ninguna o muchas materias como
- sigla prerrequisito Prerrequisitos y una Materia es Prerrequisito de
- nombre ninguna o muchas materias.
0..* es
class Diagram
0..* parte_mayor
Parte
Una parte mayor puede estar compuesta por
- cod_parte compone
ninguna o muchas partes menores y una parte
- nombre menor puede pertenecer a ninguna o muchas
0..* parte_menor partes mayores.
18
CLASE ASOCIACIN
Una clase asociacin puede crearse cuando existe una relacin muchos a muchos
entre dos clases, esta clase no solamente conecta dos clases, sino que define un
conjunto de caractersticas que pertenecen a la propia asociacin, es
decir que una clase asociacin puede tener atributos propios, mtodos y otras
class Diagram
relaciones.
class Diagram
Producto Almacen
Persona
Empresa
- codigo - nro_almacen
- ci 1..* 1..*
- id_empresa - descripcion - nombre
- nombres 1..* 0..* -
- paterno nombre - precio
- direccion
- materno
ProductoAlmacen
Trabaj a
- cantidad
- sueldo
En el primer ejemplo vemos que una persona puede trabajar en muchas o ninguna
empresas y en una empresa pueden trabajar una o muchas personas. Si queremos
queremos registrar el sueldo que gana una persona en una empresa, este atributo
no podemos ponerlo en la persona ni en la empresa, porque es el sueldo que gana
una persona en una determinada empresa, por lo tanto este atributo es propio de la
asociacin.
En el segundo ejemplo vemos tambin que la clase asociacin ProductoAlmacen
tiene un atributo propio que es cantidad, la cual indica la cantidad de productos que
existen en un determinado almacn .
19
PRACTICA 1
Una tienda que vende productos necesita registrar las ventas de sus productos.
Un producto tiene caractersticas propias como (cdigo, descripcin, precio) y
estos pueden pertenecer a una categora (id_categora, nombre). Las ventas se
realizan a travs de notas de ventas de las cuales debemos registrar nro_venta,
fecha y monto_total. En una nota de venta se pueden vender varios productos, al
mismo tiempo la nota de venta es para un solo cliente, del que es necesario
registrar su datos personales (id_cliente, nombre, telfono, direccin).
class diagram
Cliente
Categoria
- id_cliente
- nombre - id_categoria
- telefono - nombre
- direccion
1
1
1..* 1..*
NotaVenta Producto
- nro_venta - codigo
- fecha 0..* 1..* - descripcion
- monto - precio
DetalleVenta
- cantidad
- preciov
PRACTICA 3
Se quiere disear una base de datos para almacenar informacin sobre los asuntos
que lleva un gabinete de abogados. Cada asunto tiene un nmero de expediente
que los identifica y corresponde a un solo cliente, del asunto se debe almacenar
sobre el periodo: la fecha de inicio y fecha de archivo (finalizacin), su estado (en
trmite, archivado, ) . Los datos personales de los clientes son: ci, nombre, pa-
terno, materno, telfono. Los asuntos pueden ser llevados por uno o varios abo-
gados de los que tambin nos interesa sus datos personales.
21
PRACTICA 4
En una empresa existen 3 tipos de empleados, Tcnicos, Secretaria e Ingeniero,
los tcnicos reparan muchos equipos, las secretarias manejan programas y los
Ingenieros trabajan en muchos proyectos.
Un empleado subordinado es supervisado por un empleado jefe y
el empleado jefe tiene a cargo a muchos empleados subordinados. Los empleados
pertenecen solamente a un departamento.
PRACTICA 5
Se desea crear una base de datos que permita registrar el rbol genealgico de una
persona (quien fue su padre y madre), as tambin registrar los hijos que puede
tener. Por ejemplo: Adn y Eva engendraron a Can y Abel, Can y su pareja
engen-
draron a , etc.
La base de datos deber ser capaz de registrar a los hijos reconocidos y no recono-
cidos por su padre, por su madre, ambos o ninguno de ellos.
22
PRACTICA 6
Crear una base de datos para registrar los prestamos que solicitan los estudiantes
en una biblioteca. Existen tres tipos de documentos (libro, informe, cd), los cuales
tienen muchas copias. Los documentos son publicados por muchos autores. En un
prstamo pueden haber muchas copias.
Cada copia esta ubicada en una posicin de una respectiva fila de un estante.
PRACTICA 7
En una empresa ferroviaria se desea controlar las salidas que tienen los trenes.
Las rutas que deben recorrer los trenes pueden ser Santa Cruz-Yacuiba. Luego
se asignan las salidas de los trenes a las distintas rutas programadas. Las rutas
tienen varios tramos por ejemplo Abap-Camiri es un tramo que pertenece a la
ruta Santa Cruz-Yacuiba, a su vez los tramos estn compuestos de otros tramos.
Se asignan una cantidad mxima de pasajeros, para cada tramo de la ruta en una
salida de tren particular y se registra la cantidad de pasajes vendidos tambin para
cada tramo de la salida. Hacer el Diagrama de Clases
23
TRANSFORMACIN DEL
DISEO CONCEPTUAL AL
DISEO LGICO
A B
1 1
A B
1 0..1
26
Asociacin entre dos clases: Uno a Uno
Participacin Incompleta (parcial) en ambos lados
A B
0..1 0..1
27
Asociacin entre dos clases: Uno a muchos
Participacin Completa (Total) del lado muchos hacia el uno
A B
1 0..*
28
Asociacin entre dos clases: Uno a muchos
Participacin Completa (Total) en el lado uno e Incompleta en el
lado muchos
A B
0..1 1..*
29
Asociacin entre dos clases: Uno a muchos
Participacin Completa (Total) en ambos lados
A B
1 1..*
30
Asociacin entre dos clases: Uno a muchos
Participacin Incompleta (parcial) en ambos lados
A B
0..1 0..*
31
Asociacin entre dos clases: Muchos a muchos
A B
1..* 1..*
A B
0..* 0..*
32
c) Participacin incompleta (parcial) en un lado y completa (total) en
el otro.
A B
1..* 0..*
A B
0..* 1..*
33
MAPEO PRACTICA
class diagram 1: Venta de productos
Cliente
Categoria
- id_cliente
- nombre - id_categoria
- telefono - nombre
- direccion
1
1
1..* 1..*
NotaVenta Producto
- nro_venta - codigo
- fecha 0..* 1..* - descripcion
- monto - precio
DetalleVenta
- cantidad
- preciov
Cliente (id_cliente,.)
PK
Categoria (id_categoria,.)
PK
35
MAPEO PARA LA COMPOSICIN
PlanPago (id_plan,.)
PK
Cuota
Id_plan Id_cuota Fecha Monto
1..*
1 1 12/04/2013 1500
1 2 20/05/2013 1500
Cuota
- id_cuota
1 3 27/05/2013 1000
- fecha
- monto
1 4 27/06/2013 1000
2 1 24/04/2013 1500
2 2 27/05/2013 500
Computadora (id_pc,.)
PK
Computadora Perifericos
- id_pc - codigo
- procesador
- nombre
- memoria 0..1 0..*
- discoDuro
- tarjetaMadre
Empleado 1
jefe
0..* cuenta_hijo
Cuenta
Codigo Nombre CuentaPadre
1.00.00 Activo ------
1.01.00 Activo Corriente 1.00.00
1.01.01 Caja M/N 1.01.00
1.01.02 Caja M/E 1.01.00
1.02.00 Activo no Corriente 1.00.00
39
class Diagram
Realizar el registro de las materias con sus respectivos prerrequisitos.
0..* tiene
Materia
Materia (sigla, )
PK
- sigla prerrequisito
- nombre Prerrequisito (sigla , siglaPrerrequisito,...)
--- PK ----
0..* es FK FK
Materia Prerrequisito
Sigla Nombre Sigla Sigla_Prerrequisito
INF110 Introduccin a la Informtica INF120 INF110
MAT101 Clculo I MAT102 MAT101
FIS100 Fsica I FIS102 FIS100
INF119 Estructuras Discretas MAT103 INF119
LIN100 Ingls Tcnico I LIN101 LIN100
INF120 Programacin I INF210 INF120
MAT102 Clculo II INF210 MAT103
FIS102 Fsica II MAT207 MAT102
MAT103 Algebra Lineal FIS200 FIS102
LIN101 Ingls Tcnico II INF211 INF120
INF210 Programacin II INF211 FIS102
MAT207 Ecuaciones Diferenciales
FIS200 Fsica III
ADM100 Administracin
INF211 Arquitectura de Computadoras
MAPEO EN LA HERENCIA
a) Disjunto caso general
Empleado(ci,,tipo)
PK
Empleado
ci Nombres Paterno Materno Telefono Tipo
Secretaria(ci,.)
PK 3868977 Ricardo Surez Surez 73147828 T
FK
2244123 Mara Snchez Paz 70812312 S
Tecnico(ci,..)
PK 4123123 Jorge Soliz Das 70078799 T
FK
class Diagram
Secretaria
Empleado ci Velocidad_tipeo
-
-
ci
nombres
2244123 60
- paterno
- materno
- telefono
Tcnico
ci Nivel
3868977 Superior
Secretaria Tecnico
- velocidad_tipeo
4123123 Medio
- nivel
Empleado
ci Nombres Paterno Materno Telefono Velocidad_tipeo Nivel Tipo
3868977 Ricardo Surez Surez 73147828 Superior T
2244123 Mara Snchez Paz 70812312 60 S
4123123 Jorge Soliz Das 70078799 Medio T
class Diagram
Persona
- ci
- nombre
- apellidos
- direccion
- telefono
Cliente Vendedor
- limite_credito - porcentaje
); 1
1
class Diagram
create table Cuenta(
codigo varchar(20) primary key, Cuenta es
0..1
nombre varchar(40) not null,
- codigo
cuenta_padre varchar(20), cuenta padre
- nombre
foreign key(cuenta_padre) references Cuenta(codigo)
); 0..* tiene
materno varchar(30), - ci
- nombres
telefono int, - paterno
- materno
tipo char(10) not null, - telefono
);
create table secretaria(
ci int primary key, Secretaria Tecnico
- velocidad_tipeo
velocidad_tipeo int not null, - nivel
49
Especializacin: Disjunta (Una sola tabla)
50
Creacin de tablas para la herencia class Diagram
Especializacin: Solapamiento (en una sola tabla)
Persona
create table persona( - ci
ci int primary key, - nombre
- apellidos
nombre varchar(30) not null, - direccion
- telefono
apellidos varchar(30) not null,
direccion varchar(50),
telefono int not null,
limite_credito int,
Cliente Vendedor
porcentaje float, - limite_credito - porcentaje
tc tinyint,
tv tinyint
);
51