You are on page 1of 23

Diplomado

Diplomado Tecnologas Oracle: Introduccin a Oracle

TECNOLOGAS ORACLE
Desarrollo y Administracin de
Aplicaciones con Bases de Datos Oracle
Introduccin a ORACLE

Direccin de Extensin
Departamento de __________________
DIEX-1.8-0074-II-2007

Jaime Reinoso

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Ejercicios

1. Un programa acadmico agrupa a un conjunto de estudiantes. Los


programas tienen por obligacin un nombre y un registro del icfes, aunque
cuando el programa es nuevo nos demoramos unos ditas en conseguir el
registro del icfes. Un estudiante debe pertenecer solo a un programa
acadmico. Todos nuestros programas acadmicos tienen estudiantes,
excepto los nuevos. De los estudiantes registramos su nombre, apellido y
direccin. Casi todos los estudiantes nos suministran esos datos. Tambin
les preguntamos el email y el celular y esos siempre los tienen.
2. En una peluquera se ofrecen diferentes servicios (corte de cabello, arreglo
de uas, etc.) a muchos clientes. Los servicios los tenemos codificados para
facilitar la escritura (CDC=Corte de Cabello). Un cliente puede venir y tomar
uno o mas servicios. Un servicio puede ser tomado por muchos clientes. Es
muy importante para nosotros saber la cdula del cliente, sus nombres y
apellidos y su fecha de nacimiento, para llamarlo cuando cumple aos y
ofrecerle descuentos.
3. En la maana asignamos una ruta a cada avin. Es posible que algunos
aviones no salgan por reparaciones. Cada ruta consta de una o varias
ciudades. Una ciudad puede participar de varias rutas. De cada ciudad
tenemos su cdigo y su nombre. Las rutas tambin tienen un cdigo y un
nombre (la 1420, tambin conocida como la ruta del caribe, que es la que
DIEX-1.8-0074-II-2007
Jaime Reinoso
2
se compone de Bogot, Medelln, Bogot, Barranquilla, Cartagena y Bogot).

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Ejercicios

4. Aqu en la video tienda tenemos una registro de todos los artistas (tenemos
tanto su cdigo, como sus nombres y apellidos verdaderos, as como tambin
su nombre artstico). Para cada artista, conocemos cuales canciones tienen
y de cada cancin sabemos cual es su nombre, en que ao sali y para
algunas el autor. Una cancin solo es cantada por un cantante y creada por
un autor.
5. La biblioteca tiene informacin detallada de los ttulos (Ej: El quijote) y
quien es su autor. Algunos autores han escrito varios ttulos e incluso tengo
ttulos con varios autores. De cada ttulo tenemos informacin de los libros,
como por ejemplo la editorial, la fecha de publicacin etc. Por supuesto,
algunos ttulos tienen muchos libros y por supuesto todo libro pertenece a un
ttulo. De cada editorial almacenamos su cdigo, su nombre (Ej:Plaza y
Janes) y un telfono de contacto. De cada libro sabemos el precio de
compra, bueno de casi todos porque la anterior bibliotecloga no era muy
estricta con ese dato.
6. Aqu registramos los pagos que hacen los clientes. De cada cliente tenemos
su nombre, direccin, telfono y de algunos el email. Un cliente puede tener
varios pagos por hacer pendientes y de cada pago tenemos registro de
cuando debe pagar, cuando pag (para los que ya lo hicieron), el monto que
debe pagar y el monto que pag.
DIEX-1.8-0074-II-2007
Jaime Reinoso

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Ejercicios

7. Yo administro el sistema de gestin humana del hospital. Aqu llevamos


registro de las personas que tienen que ver con nosotros y les llevamos
informacin bsica como por ejemplo su documento de identidad, nombres,
apellidos, direcciones, telfonos e email. De muchas personas no tenemos
direcciones ni telfonos. Algunas personas trabajan aqu como mdicos y
para ellos se registra adicionalmente su tarjeta profesional. Algunas
personas estn inscritas en el hospital como pacientes (pagan por ello) y
para tal fin ah tenemos el nmero de contrato de paciente y la fecha en que
se inscribi.
8. Yo trabajo aqu en el colegio en la parte deportiva. Aqu tenemos un proceso
muy interesante en donde los estudiantes participan al principio en unos
campamentos en donde les mostramos varios deportes. De cada estudiante
registramos su tarjeta de identidad (muy poquitos tienen cdula ya),
nombres, apellidos, nombre de la persona de contacto, telfono de la
persona de contacto. Luego de un tiempo, creo equipos con 1 o varios
estudiantes y procedo a trabajar con ellos. Para cada equipo se registra el
nombre del equipo y el deporte que practican y por supuesto los estudiantes
asignados. Tengo mucho cuidado de NO asignar a un estudiante sino solo a
un equipo y por supuesto tambin evito crear equipos sin estudiantes.
9. Una empresa dedicada a la geografa, quiere tener una base de datos en
DIEX-1.8-0074-II-2007
donde se sepa que pases hay (su nombre, poblacin total, extensin), queJaime Reinoso
4
departamentos tienen (iguales datos) y que ciudades hay en cada

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Modelamiento
Conceptual
En este captulo miraremos mltiples
detalles alrededor de la definicin de
entidades, atributos y relaciones.

DIEX-1.8-0074-II-2007

Jaime Reinoso

Modelamiento

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

No a atributos
Hemos sido contratados
para ayudar a un almacn a registrar sus
redundantes
ventas. El gerente nos informa que cuando se hace una venta, sta
se registra en una factura. Para ella se registra el total de la factura,
el iva y el total mas el iva (que es lo que debe pagar el cliente),
adems de la fecha de venta.
Factura

Factura

*
*
*
*

* Fecha
* Total factura
* Iva

Fecha
Total factura
Iva
Total con iva

REGLA: Nunca se incluyen en los atributos informacin redundante.


Esto es una decisin de diseo, al igual que los atributos de auditora
(fecha de creacin de la fila, usuario, etc).
DIEX-1.8-0074-II-2007

Modelamiento
Jaime Reinoso

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Entidad, atributo o relacin?

Nos han delegado modelar la


definicin de los productos.
Estos tienen un nombre y un
precio de venta.

Producto
* Nombre
* Precio de venta

Los productos los vendemos en varios pases, y por esto tienen un


nombre y un precio diferente dependiendo del idioma y del tipo de
moneda.
Producto
Nombre
Idioma
Producto
* Nombre
* Nombre
Precio
Producto
* Precio

Moneda
* Nombre

Definir si una informacin se modela como atributo, entidad o


relacin depende del contexto que se quiere modelar, es decir,
depende totalmente de las necesidades del negocio en particular.

DIEX-1.8-0074-II-2007

Jaime Reinoso

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Mltiples relaciones entre


Yo trabajo con el gobierno y requerimos
un sistema en donde podamos registrar quien es alcalde
entidades
de que ciudad, en que ciudad naci, en que ciudad vive e incluso, desde que ciudad ejerce (usted
sabe, por el problema de violencia un alcalde incluso ejerce desde varias ciudades y ha pasado que
desde una misma ciudad ejercen 2 o mas alcaldes)

Persona

Ciudad
Ser alcalde de

* Nombre

Tener de alcalde a
Nacer en
Haber nacido
Vivir en
Vivir
Ejercer desde

Ser el lugar para ejercer

Es vlido tener mas de una relacin entre dos entidades.


DIEX-1.8-0074-II-2007

Jaime Reinoso

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Evitar atributos voltiles

Estoy encargada de registrar los clientes. Para esto, cuando hacen su primera compra yo les
pregunto, su nombre, su apellido y su edad.

Cliente
* Nombre
* Apellido
* Edad

Cliente
* Nombre
* Apellido
* Fecha de nacimiento

Evitar introducir atributos voltiles (o no estables). Siempre


reemplazar por atributos no voltiles o estables en el modelo.
DIEX-1.8-0074-II-2007

Jaime Reinoso

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Propender por nombres de


relaciones frente a nombres de
La empresa administra varios hoteles y estamos interesados en saber que husped se ha
entidades
hospedado en cual de nuestro hoteles.
Husped

Husped de

Hotel

Haber hospedado a

Persona

Husped de

Hotel

Haber hospedado a

Preferir nombres genricos de las entidades, pues esto


facilita la inclusin de nuevas relaciones (ej: una segunda
relacin para indicar quien trabaja en que hotel).
DIEX-1.8-0074-II-2007

Jaime Reinoso

10

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Relaciones Redundantes

Somos del CENSO y queremos poder tener informacin sobre los ciudadanos viviendo fuera del
pas. Para esto queremos registrar los diferentes pases y sus principales ciudades. Adems,
queremos registrar la informacin del ciudadano (pasaporte, nombres y apellidos) y queremos
saber en que ciudad y pas vive la persona..

Pais

Pais
Tener

Tener

Tener

Estar en

Estar en
Evitar
relaciones
que pueden
ser derivadas
de otras

Ciudad

Tener

Vivir en
Vivir en

Tener

Ciudad

Tener
Vivir en

Ciudadano

Ciudadano

* Pasaporte
* Nombres
* Apellidos

* Pasaporte
* Nombres
* Apellidos

DIEX-1.8-0074-II-2007

Saber si
una
relacin es
redundante
no es algo
automtico
Nacer en

Jaime Reinoso

11

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Atributo o Relacin

. y as, tenemos productos que son


principalmente de dos tipos: Cuidado personal y
Lnea Bebes.

Producto
* Nombre
* Tipo

Tipo de Producto
* Nombre

Vs
Producto
* Nombre

. y de cada cliente registramos su cedula y su sexo

Sexo
* sexo

Cliente
* cedula
* sexo

Vs
Cliente
* cedula

Si el atributo tiene valores fijos (ej: sexo), parece mejor opcin dejarlo como atributo y en diseo
utilizar DOMINIOS. En caso contrario, es decir, si existe posibilidad de mas atributos para el tipo,
o que los valores (filas, instancia) del tipo cambien con el tiempo, en general es mejor opcin crear
DIEX-1.8-0074-II-2007
una entidad
Jaime Reinoso
12

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Atributo o Relacin:
Tipo de Producto
. y as, tenemos productos queComparacin
principalmente de
dos tipos: Cuidado personal y Lnea Bebes.

Producto
* Nombre
* Tipo
(a)
Caracterstica
Facilidad de lectura:
# de cols en Producto:
Joins:
Espacio:
Otras relaciones con tipo:
Lista de Valores (LOV):
DIEX-1.8-0074-II-2007

* Nombre

Vs

Producto
* Nombre
(b)
Comparacin

(a) es mas fcil de leer que (b).


Tanto (a) como (b) tendrn la misma cantidad
de columnas, porque la relacin de Tipo de
Producto crear una columna fornea.
(a) no requiere joins vs (b) mostrando el tipo.
(b) tiene mas posibilidades de ahorrar espacio.
(b) permite relacin de tipo con otras entidades.
(b) permite LOV.
Jaime Reinoso

13

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Uso de las relaciones 1:1 para


modelar ROLES

y aqu en la universidad tenemos varios docentes, a los cuales se les


guarda su nombre y apellido, su cdula y tambin la fecha desde la cual
fueron contratados. Tambin tenemos estudiantes, para los cuales
tambin almacenamos sus nombres y apellidos, sus cdulas y el programa
acadmico en el cual estn
R/
Persona
* Nombres
* Apellidos
* Cedula

Docente
* Fecha de contratacin

Estudiante

DIEX-1.8-0074-II-2007

Programa
Acadmico

Jaime Reinoso

14

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Uso de las relaciones 1:1 para


modelar ROLES

y aqu en la universidad tenemos varios docentes, a los cuales se les


guarda su nombre y apellido, su cdula y tambin la fecha desde la cual
fueron contratados. Tambin tenemos estudiantes, para los cuales
tambin almacenamos sus nombres y apellidos, sus cdulas y el programa
acadmico en el cual estn
Una solucin utilizando subtipos. Una
R/ Persona
persona debe ser o estudiante o
* Nombres
docente pero no puede ser ambos al
* Apellidos
tiempo.
* Cedula
Programa
Estudiante
Acadmico
Docente
* Fecha de contratacin

DIEX-1.8-0074-II-2007

Jaime Reinoso

15

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

M:M pueden esconder algo

. Y los clientes compran los productos

Cliente
* Nombre

comprar
Ser comprado por

Producto
* Nombre

. as, Juan Prez compr 2 Jeans

En donde va el atributo cantidad ?


Cliente
* Nombre

DIEX-1.8-0074-II-2007

Compra
* Cantidad Vendida

Producto
* Nombre

Jaime Reinoso

16

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

M:M pueden esconder algo

Cliente
* Nombre

Compra
* Cantidad Vendida

Producto
* Nombre

Este modelo permite entonces registrar el ejemplo dado. Pero que pasa si
Juan Prez en la misma compra decide tambin adquirir 3 Camisas y 2
pares de zapatos?, adems se quiere registrar la fecha de la venta y el
descuento dado (por toda la venta) al cliente?.

Cliente
* Nombre

Compra
* Cantidad Vendida
* Fecha
* Descuento

Producto
* Nombre

Estaramos repitiendo informacin en varias filas y adems, sera imposible


luego saber porque dimos ese descuento en esa venta, pues no podramos
determinar si fueron 3 ventas o una sola venta de 3 diferentes productos.

DIEX-1.8-0074-II-2007

Jaime Reinoso

17

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

M:M pueden esconder algo

Cliente
* Nombre

Compra
* Fecha
* Descuento

Producto
* Nombre

agrupar
Ser vendido en

* Cantidad Vendida

Nuevamente tenemos la pregunta de donde colocar la cantidad. Al


igual que la vez anterior, debemos crear una nueva entidad y
reemplazar la M:M
DIEX-1.8-0074-II-2007

Jaime Reinoso

18

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

M:M pueden esconder algo

Cliente
* Nombre

Encabezado Compra
* Fecha
* Descuento

Ntese el
cambio del
nombre de esta
entidad

Agrupar

Pertenecer a

Item Compra
* Cantidad Vendida

comprar

Producto
* Nombre

Ser comprado en

DIEX-1.8-0074-II-2007

Jaime Reinoso

19

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Algoritmo para resolver M:M

1. Dada una relacin M:M entre las entidades A y


B
2. Cree una nueva entidad (llammosla por ahora
A/B)
3. Cree una relacin 1:M desde A hasta A/B
obligatoria en A/B. La obligatoriedad desde A
corresponde a la misma obligatoriedad desde A
en la relacin M:M
4. Cree una relacin 1:M desde B hasta A/B
obligatoria en A/B. La obligatoriedad desde B
corresponde a la misma obligatoriedad desde A
en la relacin M:M

DIEX-1.8-0074-II-2007

Jaime Reinoso

20

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Ejercicios

Programador
* Nombre
* Apellido

Requerimiento
* Descripcin

atender
Ser atendido por

Se requiere ahora conocer para un requerimiento dado, en que fecha cada


programador debe empezar a trabajar en el requerimiento.

R/

Programador
* Nombre
* Apellido

DIEX-1.8-0074-II-2007

Planeacin
o Fecha a iniciar trabajo

Requerimiento
* Descripcin

Jaime Reinoso

21

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Ejercicios

Estudiante
* Nombre
* Apellido

Libro
* Ttulo

Prestar
Ser prestado por

Se quiere registrar en que fecha el estudiante presta el libro y cuando debe devolverlo.

R/
Estudiante
* Nombre
* Apellido

Prstamo
* Fecha de prstamo
* Fecha a ser devuelto

Libro
* Ttulo

Que pasara si adems quisiramos registrar CUANDO fue devuelto?

R/
Estudiante
* Nombre
* Apellido
DIEX-1.8-0074-II-2007

Prstamo
* Fecha de prstamo
* Fecha a ser devuelto
o Fecha realmente devuelto

Libro
* Ttulo

Jaime Reinoso

22

Modelamiento Conceptual
Diplomado Tecnologas Oracle: Introduccin a Oracle

Ejercicios

Matricula Financiera e ITIL

DIEX-1.8-0074-II-2007

Jaime Reinoso

23

You might also like