Você está na página 1de 51

Por: Ing.

Edwin Calle Terrazas

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

Ing. Edwin Calle Terrazas 2


MODELO ORIENTADO A OBJETOS
El diagrama de clases de UML representa el modelo orientado a objetos como
herramienta de Modelado Conceptual de datos en la fase de diseo de una
base de datos.

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>

Un alumno posee como caractersticas: cdigo, nombres, paterno, materno


telfono y direccin.
Muestran su comportamiento a travs de los mtodos: modificarAlumno()
y BuscarAlumno()
class Diagram

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

1..* Uno mas

1..6 Uno a Seis

1..3, 7..10, 20..* 1 a 3 7 a 10 20 a muchos

n Nmero fijo

Ing. Edwin Calle Terrazas 5


Asociaciones de Uno a uno
Significa que a cada objeto de la clase Recibo, puede o no pertenecer un
objeto de la clase Factura y a cada objeto de la clase Factura le pertenece
un objeto de la clase recibo.
class Diagram

Factura
Recibo
Tiene - nro_factura
- nro_recibo
1 0..1 - fecha
- fecha
- NIT
- monto
- Monto

Significa que a cada objeto de la clase Persona, puede pertenecer un


objeto de la clase CertificadoNacimiento y a cada objeto de la clase
CertificadoNacimiento
class Diagram
le pertenece un objeto de la clase Persona.

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

Asociaciones de Muchos a muchos


cada objeto de la clase Alumno se puede relacionar con uno o muchos
objetos de la clase Matero, y cada objeto de la clase Materia puede estar
relacionado con class
unodiagram
o muchos objetos de la clase Alumno.

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

En este ejemplo el todo es PlanPago PlanPago


que se compone de la parte Cuota. - id_plan
Decimos que cada objeto de la clase -
-
fecha
montoTotal
Cuota no puede existir sin un PlanPlago. - plazo

Tambin podemos decir que esta 1

relacin es indivisible donde cada


Cuota no se puede separar de un
PlanPago.
1..*

Segn la multiplicidad, un PlanPago Cuota

tiene muchas Cuotas, pero cada Cuota


- id_cuota
- fecha

debe pertenecer a un solo PlanPago. - monto

Ing. Edwin Calle Terrazas 8


En este otro ejemplo vemos que el todo es NotaVenta que se compone
de la parte DetalleVenta. Cada objeto de la clase DetalleVenta est
obligado a pertenecer a una NotaVenta, (es decir que cada detalleVenta no
puede existir sino esta asociada a una NotaVenta)
class Diagram 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

De la misma forma el ltimo ejemplo. El todo es Gestin que se


compone de la parte Periodo. Cada objeto de la clase Periodo no puede
existir sino esta asociada a una Gestin.

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

En el ejemplo vemos que el todo es Casa que se compone de la parte


Mueble. Cada objeto de la clase Mueble puede existir sino esta asociada a
una Casa. Dicho de otra forma: El Mueble se puede separar (divisible) de
una Casa.

En el otro ejemplo vemos que los Perifricos son partes de una


Computadora, pero estos perifricos pueden existir o no para el funciona-
miento del Computador. Donde tambin decimos que hay Perifricos que
Que ni siquiera saben que son parte de una computadora.

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

Ing. Edwin Calle Terrazas 11


Camin y Auto heredan de Vehculo, es decir Camin posee las caractersticas
de Vehculo (placa, marca, modelo y color). Adems el Camin posee como
propia particularidad nroEjes y Capacidad. Auto tambin hereda las caractersticas
de la clase Vehculo y tiene como particularidad propia nroPasajeros.

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.

PARTICIPACIN COMPLETA E INCOMPLETA


Si un objeto de la superclases est obligado en cualquier subclase o en ambas,
se denomina Completa (total). En el caso que exista un objeto de la superclase
que no se encuentra en las subclases, se denomina Incompleta (parcial).

Ing. Edwin Calle Terrazas 12


Tipo de Especializacin
Un Vehculo es solo Auto solo Camin no puede ser las dos cosas al mismo
tiempo, en este caso se le denomina DISJUNTA

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

En forma general vemos que la Participacin se da: si los objetos de la superclase


estn obligados en cualquier subclase o en ambas es Completa (total), en el caso
que no exista un objeto de la superclase que no se encuentre en las subclases, se
denomina Incompleta (parcial).

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

- id_emp Un empleado (subordinado) tiene exactamente un


- nombre
- paterno
Tiene Jefe y un Empleado (jefe) tiene a uno o muchos
- materno empleados subordinados.
1..* subordinado

class Diagram

Cuenta 0..1 cuenta_padre Una cuenta (padre) tiene ninguna o muchas


- codigo cuentas hijas y una cuenta (hija) tiene o
Tiene
- nombre pertenece a una o ninguna cuenta padre.
0..* cuenta_hijo

Ing. Edwin Calle Terrazas 17


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

Ing. Edwin Calle Terrazas 20


PRACTICA 2
Un video club necesita almacenar su informacin en una base de datos. Esta es
la informacin. Una pelcula se caracteriza por su ttulo, nacionalidad, productora
y fecha (ej. RAMBO, Estados Unidos, MGM, 1990). En una pelcula pueden
participar varios actores (nombre, apellidos nacionalidad, sexo, etc.) Una pelcula
est dirigida por un director (nombre, apellidos, nacionalidad). De cada pelcula
se dispone de uno o varios ejemplares diferenciados por un nmero de ejemplar
y caracterizados por su estado de conservacin. Un cliente (ci, nombres, paterno
materno, direccin, telfono) puede pedir que le alquilen varios ejemplares. Se
desea almacenar la nota de alquiler con los siguientes datos: nro, fecha_inicio del
alquiler y fecha_devolucin del alquiler. Hacer el Diagrama de Clases.

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

Ing. Edwin Calle Terrazas 24


REGLAS DE MAPEO
Asociacin entre dos clases: Uno a Uno
Ambas participacin Completa (total)

A B
1 1

a) Tablas : A(a# ,.......) B (b# ,.....a#) Valores de a# not null en la tabla B


PK PK FK
tambin

Tablas : A (a# ,..........b#) B (b#,...........) Valores de b# not null en la tabla A


PK FK PK

b) Tabla : A (a# ,...............,b#,..............) Una sola tabla


PK
Escogemos una de las clases colocando su llave con su atributos, y traemos todos
los atributos de la otra clase.

Ing. Edwin Calle Terrazas 25


Asociacin entre dos clases: Uno a Uno
Participacin Completa (total) en un solo lado

A B
1 0..1

a)Tablas : A (a# ,............) B (b#,............ a#) Valores de a# not null en la tabla B


PK PK FK

b) Una sola tabla y cuando existan pocos valores nulos de b# en la tabla A

Tablas : A (a# ,................b#,...................)


PK
Valores nulos permitidos en la tabla A

26
Asociacin entre dos clases: Uno a Uno
Participacin Incompleta (parcial) en ambos lados

A B
0..1 0..1

a) Tablas : A (a#,.............) B (b#,............a#) Valores nulos de a# permitidos en la tabla B


PK PK FK
tambin

Tablas : A (a#,.............b#) B (b#,............) Valores nulos de b# permitidos en la tabla A


PK FK PK

27
Asociacin entre dos clases: Uno a muchos
Participacin Completa (Total) del lado muchos hacia el uno

A B
1 0..*

a) Tablas: A(a#,..........) B(b#,.......... a#)


PK PK FK

Valores de a# not null en la tabla B

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..*

A) Tablas : A (a# ,...........) B (b# ,..........a#)


PK PK FK
Valores nulos de a# permitidos en la tabla B

29
Asociacin entre dos clases: Uno a muchos
Participacin Completa (Total) en ambos lados

A B
1 1..*

a) Tablas: A(a#,....... ) B(b#,............a#)


PK PK FK

Valores de a# not null en la tabla B

30
Asociacin entre dos clases: Uno a muchos
Participacin Incompleta (parcial) en ambos lados

A B
0..1 0..*

a) Tablas : A (a#,............) B (b #,..............a#)


PK PK FK
Valores nulos de a# permitidos en la tabla B

b) Caso poco comn: En tres tablas cuando existan pocos objetos


obligados entre ambas clases. Porque existiran muchos valores nulos
al crear las dos tablas, por tanto.
Tablas : A (a # ,.......) B(b# ,......) R(a#,b#,.......)
PK PK PK
Valores a#, b# not null en la tabla R

31
Asociacin entre dos clases: Muchos a muchos

a) Participacin completa (total) en ambos

A B
1..* 1..*

b) Participacin incompleta (parcial) en ambos

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..*

PARA TODOS LOS CASOS

Tablas : A(a#,........) B(b#,........) R(a#, b#, ......)


PK PK PK

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

Producto (codigo,.., id_categoria)


PK FK

Ing. Edwin Calle Terrazas 34


NotaVenta (nro_venta,.., id_cliente)
PK FK

DetalleVenta (nro_venta, codigo,)


--- PK ---
FK FK

35
MAPEO PARA LA COMPOSICIN
PlanPago (id_plan,.)
PK

Cuota (id_plan, id_cuota,..)


PK
FK
class Diagram
PlanPago
PlanPago Id_plan Fecha MontoTotal Plazo
- id_plan
- fecha
1 02/04/2013 5000 90 das
- montoTotal
2 18/04/2013 2000 30 das
- plazo

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

Ing. Edwin Calle Terrazas 36


MAPEO PARA LA AGREGACIN
Por ser una relacin pasiva, el mapeo de la agregacin es como si fuera
una relacin normal.

Computadora (id_pc,.)
PK

Perifericos (codigo,., id_pc)


PK FK
class Diagram

Computadora Perifericos
- id_pc - codigo
- procesador
- nombre
- memoria 0..1 0..*
- discoDuro
- tarjetaMadre

Ing. Edwin Calle Terrazas 37


MAPEO EN ASOCIACIONES RECURSIVAS
En una empresa se desea registrar a los empleados jefes tienen a cargo a muchos
empleados subordinados, y los empleados subordinados pertenecientes a un jefe.
Nota:
class En este caso los empleados que son jefes se supervisan as mismos.
Diagram

Empleado 1
jefe

- id_emp Empleado(id_emp,, id_jefe)


- nombre Tiene PK FK
- paterno
- materno
1..* subordinado

Id_emp nombre paterno materno Id_jefe


1 Jorge Surez Suarez 1
2 Juan Carlos Castro Carvajal 2
3 Mara Torrico Chvez 1
4 Mariela Romero Ramrez 1
5 Enrique Lpez Choque 2
6 Marioly Caldern Ramos 1
7 Ernesto Nez Cabrera 2

Ing. Edwin Calle Terrazas 38


Se desea registrar el plan de cuentas que tendr una empresa la cual administra
Su contabilidad a travs de un Sistemas Contable.
Nota: Las cuentas de grupos mayores: Activo, Pasivo, Patrimonio, Ingreso y Egreso
no tienen una cuenta padre y las cuentas de movimiento no tienen cuentas hijas.
class Diagram

Cuenta 0..1 cuenta_padre


Cuenta (codigo,., cuentaPadre)
- codigo PK FK
- nombre Tiene

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

2.00.00 Pasivo -------

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

Ing. Edwin Calle Terrazas 41


b) Disjunto de otra manera, en una sola tabla

Empleado (ci,.., velocidad_tipeo, nivel, tipo)


PK

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

Ing. Edwin Calle Terrazas 42


c) Solapamiento en una sola tabla

Persona(ci,..,limite_credito, porcentaje, tc, tv)


PK

Ci Nombre Apellidos Direccin Telfono Limite_credito Porcentaje TC TV


3838383 Eduardo Vargas Surez 73147828 2000 1 0
2244123 Ricardo Snchez Paz 70812312 10 0 1
4123123 Jorge Soliz Das 70078799 5000 15 1 1
3847689 Miguel Garca Nez 73120200 3000 1 0

class Diagram

Persona

- ci
- nombre
- apellidos
- direccion
- telefono

Cliente Vendedor

- limite_credito - porcentaje

Ing. Edwin Calle Terrazas 43


LENGUAJE ESTRUCTURADO DE
CONSULTAS (SQL)

Presentamos el lenguaje estructurado de consultas (structured query language)


que permite al usuario crear y manipular una base de datos.

Utilizaremos este lenguaje para modelar el diseo fsico de la base de datos.

Ing. Edwin Calle Terrazas 44


CREACIN DE TABLAS DE LA PRACTICA 1: Venta de productos
class diagram
create table cliente(
id_cliente int primary key, Cliente
nombre varchar(30) not null, - id_cliente
Categoria

telefono int, - nombre -


-
id_categoria
nombre
- telefono
direccion varchar(50) - direccion

); 1
1

create table categoria(


id_categoria int primary key, 1..* 1..*

nombre varchar(30), NotaVenta Producto


); - nro_venta - codigo
- fecha 0..* 1..* - descripcion
- monto - precio
create table producto(
codigo varchar(10) primary key, DetalleVenta
descripcion varchar(50) not null, - cantidad
precio float not null, - preciov

id_categoria int not null,


foreign key(id_categoria) references categoria(id_categoria)
on delete cascade
on update cascade
);
on delete cascade y on update cascade se coloca para cumplir la integridad referencial, que dice si un atributo
o conjunto de atributos se define como una llave fornea, sus valores deben existir en la tabla en que ese atributo es llave
principal. Es decir que los datos de la tabla en que el atributo es llave primaria puede ser modificado o
eliminado y causar efecto en los registros de la tabla donde el atributo es forneo.
Ing. Edwin Calle Terrazas 45
create table notaventa(
nro_venta int primary key,
fecha date not null,
monto float not null,
id_cliente int not null,
foreign key(id_cliente) references cliente(id_cliente)
);

create table detalleventa(


nro_venta int not null,
codigo varchar(10) not null,
cantidad int not null,
previov float not null,
primary key(nro_venta, codigo),
foreign key (nro_venta) references notaventa(nro_venta),
foreign key (codigo) references producto(codigo)
);

Ing. Edwin Calle Terrazas 46


Creacin de tablas para la composicin
class Diagram

create table PlanPagos(


PlanPagos
id_plan int primary key,
- id_plan
fecha date not null, - fecha
montoTotal float not null, -
-
montoTotal
plazo
plazo varchar(50) not null 1
);

create table Cuota( 1..*


id_plan int not null,
Cuota
id_cuota int not null, - id_cuota
fecha date not null, - fecha
- monto
monto float not null,
primary key(id_plan, id_cuota),
foreign key(id_plan) references PlanPagos(id_plan)
);

Ing. Edwin Calle Terrazas 47


Creacin de tablas recursivas
create table Materia(
sigla varchar(10) primary key, class Diagram
nombre varchar(30) not null
0..* tiene
);
Materia
create table Prerrequisito(
- sigla prerrequisito
sigla varchar(10), - nombre
sigla_prerrequesito varchar(10),
primary key(sigla, sigla_prerrequisito), 0..* es
foreign key(sigla) references Materia(sigla),
foreign key(sigla_prerrequisito) references Materia(sigla)
);

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

Ing. Edwin Calle Terrazas 48


Creacin de tablas para la herencia
Especializacin: Disjunta (caso general)
create table empleado(
ci int primary key,
class Diagram
nombres varchar(30) not null,
paterno varchar(30) not null, Empleado

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

foreign key(ci) references empleado(ci)


on delete cascade on update cascade
);
create table tecnico(
ci int not null,
nivel varchar(20) not null,
primary key(ci),
foreign key(ci) references empleado(ci)
on delete cascade on update cascade
);

49
Especializacin: Disjunta (Una sola tabla)

create table empleado(


ci int primary key,
nombres varchar(30) not null,
paterno varchar(30) not null,
materno varchar(30),
telefono int not null,
velocidad_tipeo int,
nivel varchar(20),
tipo char not null
);

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

Você também pode gostar