You are on page 1of 13

Unidad I: Temas Avanzados

de BD Relacionales
Prctica de Laboratorio

Profesor: Jorge Escalona


Email:escaljorge@gmail.com
1
Caso de Estudio BDOO. Jorge Escalona. 2016

Planteamiento del Problema


La empresa Media Store desea iniciar operaciones con la comercializacin de
productos digitales. Inicialmente, la empresa slo planea vender dos tipos de
productos: libros y pelculas; aunque esto puede variar en el futuro.
Para su lanzamiento la empresa necesita un sistema de bd con los siguientes
requerimientos:
1)

Cada producto puede estar disponible en formato fsico o en formato digital.

2) En el caso de pedidos en formatos fsicos se debe llevar el inventario actual de la


existencia del producto para garantizar su disponibilidad.
3) Para la comercializacin de sus productos, la empresa contar con un registro de
clientes (usuarios), los cuales debern estar registrados en el sistema. Para cada usuario
se debe almacenar sus datos personales (nombre, sexo, fecha de nacimiento, direccin
habitacin, telfono de habitacin, telfono mvil, email); los datos de facturacin (tipo
tarjeta, nmero tarjeta, fecha de vencimiento, nombre de tarjeta, nmero ccv; direccin
de facturacin); datos de entrega (calle, ciudad, estado, pas, cdigo postal, nombre
contacto, telfono contacto); y los datos de identificacin (email, password, pregunta
secreta, respuesta).
4) Para realizar sus pedidos, el usuario dispondr de un carrito que le permita ir agregando
los productos a su pedido. El usuario puede guardar en todo momento su carrito y
terminar o anular su pedido en cualquier otro momento.
2
Caso de Estudio BDOO. Jorge Escalona. 2016

Planteamiento del Problema


5) Una vez confirmado sus compras, se debe generar una orden de pedido, con la fecha,
productos, informacin de facturacin e informacin de entrega. En el caso de un pedido
de productos fsicos, se genera un envo el cual puede ser rastreado por el usuario. En el
caso de un pedido de productos digitales, se le enviar a un correo electrnico de su
preferencia el link de descarga.
6) De cada producto se debe guardar, adicional a un identificador, el ttulo, el ao y fecha
de publicacin, una sinopsis, la clasificacin (Todo Pblico; Mayores 12 aos; Mayores 14
aos; Mayores 18 aos), el precio actual, la cantidad disponible en inventario fsico, y si
se dispone en formato digital. Igualmente la empresa desea guardar una imagen del
producto en diferentes tamaos de visualizacin.
7) Cada producto puede pertenecer a uno o ms gneros, los cuales varan entre libros y
pelculas.
8) Cada producto puede estar disponible en uno o ms idiomas y un mismo idioma puede
estar versionado para diferentes pases. Ejemplo: Espaol (Latino; Espaa; Mxico, etc)
9) La empresa desea contar con un sistema de ranking (1.0 al 5.0) de sus productos, el cual
se computar segn la votacin recibida de los usuarios que hallan comprado el producto.
10) Adicionalmente, en el caso de los libros se necesita guardar su autor (se restringe a un
solo autor por libro) y la editorial. Inicialmente no se requiere informacin adicional de
los autores ni de la editorial.

3
Caso de Estudio BDOO. Jorge Escalona. 2016

Planteamiento del Problema


11) Para el caso de las pelculas, se debe guardar el presupuesto (en $), la duracin en minutos
y una lista de los crditos de la pelcula donde se guarde el rol del participante
(directores, productores, escritores, actores principales, actores secundarios, etc) y el
nombre del participante.
12) Para la administracin del sistema, se dispondrn de tres tipos de usuarios: usuarios
supervisores, usuarios operadores y usuarios de almacn.
13) Los usuarios operadores sern los encargados de registrar la informacin de los
productos, tanto libros como pelculas, a excepcin de los precios y del inventario.
14) Los usuarios supervisores son los nicos que pueden actualizar los precios de los
productos. Adicionalmente estos tienen privilegios para consultar los diferentes reportes
del sistema.
15) La empresa dispone de tres depsitos de almacenamiento de productos fsicos. Para cada
depsito slo el usuario de almacn asignado a ese depsito puede ingresar productos al
inventario.
16) Por seguridad, tanto los usuarios operadores como los usuarios supervisores slo se
podrn conectar al sistema desde la red interna de la empresa. Los usuarios de almacn
slo se pueden conectar desde la subred donde se encuentra el depsito. Por su parte los
usuarios clientes pueden conectarse desde cualquier lugar.
17) El password y la respuesta de la pregunta secreta de los usuarios deben encriptarse para
su resguardo en la bd.
4
Caso de Estudio BDOO. Jorge Escalona. 2016

Planteamiento del Problema


18) Igualmente la empresa desea llevar un registro de auditora de todos los ingresos y
egresos de productos de cada depsito, indicando la fecha, el tipo (Entrada, Salida), id del
producto, cantidad y usuario.
19) As mismo tambin se debe llevar un registro de auditora de todos los cambios de precios
de productos, indicando la fecha, el id del producto, el precio anterior, el nuevo precio y el
usuario.
20) El acceso de escritura de los precios de productos
realizarse a travs de funciones almacenadas en la bd.

y su inventario actual slo debe

5
Caso de Estudio BDOO. Jorge Escalona. 2016

Actividades
1)

Realice el diseo conceptual y el diseo lgico de la bd segn los requerimientos


establecidos.

2) Implemente el modelo fsico de la bd utilizado PostgreSQL.


3) Crees los grupos de usuario y establezca las permisologas necesarias.
4) Implemente el comportamiento activo en la bd segn sea necesario.
5) Crea una aplicacin para el mantenimiento del sistema utilizando el patrn de diseo
Modelo/Vista/Adaptador. (Aplicacin slo para el registro de las tablas principales:
productos; lenguajes; gneros; pelculas; libros)

6
Caso de Estudio BDOO. Jorge Escalona. 2016

Gua de Desarrollo
1a) Diseo Conceptual de la BD (Esquema: master)

7
Caso de Estudio BDOO. Jorge Escalona. 2016

Gua de Desarrollo
1b) Diseo Lgico de la BD (Esquema: master)

8
Caso de Estudio BDOO. Jorge Escalona. 2016

Gua de Desarrollo
2a) Diseo Fsico de la BD (Esquema: master)
CREATE TABLE master.products(
id integer PRIMARY KEY NOT NULL,
title character varying(255),
type master.product_type_domain,
year integer,
release_date date,
sinopsis text,
rated master.product_rated_domain,
current_price numeric(12,2),
inventory integer,
digital_avaliable boolean,
rating double precision,
votes integer,
image_small oid,
image_large oid)

CREATE TABLE master.books(


id integer PRIMARY KEY NOT NULL,
publisher character varying(255),
author character varying(255),
CONSTRAINT books_id_fkey FOREIGN KEY (id)
REFERENCES master.products (id) MATCH SIMPLE
UPDATE NO ACTION ON DELETE NO ACTION)

CREATE TABLE master.movies(


id integer PRIMARY KEY NOT NULL,
budget numeric(18,2),
lenght integer,
imdb_id character varying(10),
imdb_rating double precision,
imdb_poster_url character varying(500),
CONSTRAINT movies_id_fkey FOREIGN KEY (id)
REFERENCES master.products (id) MATCH SIMPLE
UPDATE NO ACTION ON DELETE NO ACTION)

ON

ON

9
Caso de Estudio BDOO. Jorge Escalona. 2016

Gua de Desarrollo
2b) Diseo Fsico de la BD (Esquema: master)
CREATE TABLE master.movie_credits(
movie_id integer PRIMARY KEY NOT NULL,
role character varying(120) PRIMARY KEY NOT NULL,
name character varying(255) PRIMARY KEY NOT NULL,
CONSTRAINT movie_credits_movie_id_fkey
FOREIGN KEY (movie_id)
REFERENCES master.movies (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE)
CREATE TABLE master.genres(
type master.product_type_domain NOT NULL,
name character varying(40) NOT NULL,
CONSTRAINT genres_pkey PRIMARY KEY (type, name))

CREATE TABLE master.languages(


locale character(2) NOT NULL,
country character(3) NOT NULL,
name character varying(40),
CONSTRAINT languages_pkey PRIMARY KEY (locale, country))
10
Caso de Estudio BDOO. Jorge Escalona. 2016

Gua de Desarrollo
5a) Aplicacin (Diseo Modelo/Vista/Adaptador)
Vistas
Modelo
Adaptador
LanguagesView

Languages

LanguagesAdapter

GenresView

Genres

GenresAdapter

ProductsView

Products

ProductsAdapter

MoviesView

Movies

MoviesAdapter

BooksView

Books

BooksAdapter
IDataAdapter
11

Caso de Estudio BDOO. Jorge Escalona. 2016

Gua de Desarrollo
5b) Aplicacin (Interfaz IDataAdapter)
IDataAdapter<T>
public T getRecord(IDbConnection db, HashMap<String,Object> options);
public List<T> getList(IDbConnection db, HashMap<String,Object> options);
public boolean insertRecord(IDbConnection db, T record, HashMap<String,Object> options);
public boolean updateRecord(IDbConnection db, T record, HashMap<String,Object> options);
public boolean deleteRecord(IDbConnection db, T record, HashMap<String,Object> options);

12
Caso de Estudio BDOO. Jorge Escalona. 2016

Gua de Desarrollo
5c) Aplicacin (Manejo de Conexiones de BD)
IDbConnection
<raise>
void open(boolean readOnly);

DbException

void close();
boolean isOpen();

<implements>

AbstractDbConnection

void beginTransaction();

String dbName;

void commitTransaction();

String userLogin;

void rollbackTransaction();

String userPassword:
String serverURL;
<extends>

PostgresDbConnection

13
Caso de Estudio BDOO. Jorge Escalona. 2016

You might also like