0% encontró este documento útil (0 votos)
67 vistas

Laboratorio 1 DDB v3

Este documento describe un laboratorio sobre la conversión de un modelo entidad-relación a una base de datos relacional. Explica el objetivo del laboratorio, los temas abordados y las partes que lo componen. Luego presenta un problema de mundo real sobre un banco de fotografías y el diagrama E-R correspondiente. Finalmente, detalla los esquemas y la creación de tablas en PostgreSQL para almacenar la información.

Cargado por

David Rodas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
67 vistas

Laboratorio 1 DDB v3

Este documento describe un laboratorio sobre la conversión de un modelo entidad-relación a una base de datos relacional. Explica el objetivo del laboratorio, los temas abordados y las partes que lo componen. Luego presenta un problema de mundo real sobre un banco de fotografías y el diagrama E-R correspondiente. Finalmente, detalla los esquemas y la creación de tablas en PostgreSQL para almacenar la información.

Cargado por

David Rodas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

Laboratorio 1

Conversion de modelo Entidad-Relación a Relacional de


las Entidades

Objetivo:
El alumno aprenderá a convertir una Entidad del modelo E-R al relacional, además interpretará
el efecto que tiene el diagrama en la práctica.

Temas de la materia abordados, según el plan de estudios.

Diseño de Base de Datos - Laboratorio 1


UNACH-Luis Antonio Álvarez Oval
Página 1
Partes de la que se compone este laboratorio:
● Introducción.
● Esquemas y creación de tablas.
● Referencias.

Introducción.
El ejercicio que se va a realizar consiste en la lectura de un problema, la solución que de este se
hace con un diagrama Entidad-Relación (DER), a partir del DER se deben de construir los esquemas
para finalmente crear las tablas en la base de datos denominada PostgreSQL usando el lenguaje SQL.
Para este laboratorio se espera que construya las tablas para todas las entidades del DER que se
ofrece, después se les inserta información a cada una de ellas y finalmente consultamos el contenido de
cada tabla.
A continuación se detalla el problema con el que se trabajará en este laboratorio:
Proyecto Banco de Fotografías El Universal
Diseño de Base de Datos

La Compañía Periodística Nacional (periódico El Universal), a quién en lo sucesivo


llamaremos el Cliente, pretende vender las fotografías que sus propios reporteros generan. Para ello le
ha contratado, y su trabajo consiste en la creación del sistema de información que controle las ventas de
lo que ellos llaman “Banco de Fotografías El Universal” (BFU), el cuál funcionará sobre Internet. Cada
foto solo puede ser vendida una vez, ya que no solo se vende la imagen, sino los derechos de uso de la
misma.
El cliente ha indicado que para vender una fotografía es necesario que el posible comprador
tenga la mayor cantidad de información posible de la misma, por lo que las han clasificado en tres
grandes grupos: Abstractas, Retratos y Paisajes. Para cada fotografía se almacena información como:
tipo (Color ó B/N), fecha de toma, tipo de filme, velocidad de obturador, precio por cada una, nombre
del fotógrafo y según sea el caso se almacena el nombre del modelo (nombre, sexo, fecha de
nacimiento, biografía, la agencia a la que pertenece en el momento de tomar la fotografía), ó el nombre
del lugar donde se ha tomado la foto (nombre del área, país, descripción), ó el comentario de lo que el
artista intentó mostrar con la toma. Asimismo se debe almacenar información biográfica de cada
fotógrafo que colabore con fotografías.
Además es necesario controlar la venta como tal. Aunque un posible comprador puede navegar
por todo el catalogo disponible sin registrarse, es necesario que, para efectuar una compra registre en el
sistema los siguientes datos: login, nombre, RFC, domicilio, y clave secreta.
En una sola transacción (ó carrito de compras) puede comprar una o más fotografías, el importe
total a pagar debe calcularse a partir del precio individual de cada foto, ya que el cliente tiene planeado
en un futuro que el sistema pueda tener la flexibilidad de aplicar descuentos en base a fechas (los cuales
no son necesarios en este momento). Las únicas formas de efectuar el pago son: tarjeta de crédito (TC)
ó depósito bancario (DB).
En el caso del pago con TC, es necesario almacenar el número de la cuenta y la fecha de
vencimiento de la TC. Mientras que para el DB, es necesario almacenar el número de cheque, número
de la cuenta origen y la fecha en que se ejecutó el depósito.

Algunos reportes que el Cliente ha solicitado del sistema son:

Diseño de Base de Datos - Laboratorio 1


UNACH-Luis Antonio Álvarez Oval
Página 2
1. Total de ventas del mes
2. Cliente que mas fotografías ha comprado en el año
3. Categoría de fotografías que más se vende.
4. Fotografía con más de 10 años que no se venden.
5. Lista de fotografías cuyos derechos ya no son propiedad del BFU.
6. Modelo con la mayor cantidad de retratos disponibles en el BFU.
7. Agencia con la mayor cantidad de modelos retratados.
8. Fotógrafo con la mayor venta en el 2008.

P. D. Cualquier otra situación no contemplada debe ser resuelta pensando en que este es un problema
de mundo real.

Diagrama E/R que resuelve el problema anterior.

Diseño de Base de Datos - Laboratorio 1


UNACH-Luis Antonio Álvarez Oval
Página 3
Esquemas y creación de Tablas.
Después de revisar el diagrama se ha encontrado, que las entidades que contiene este diagrama
son: autor, fotografia, modelo, agencia, venta, comprador, banco y al aplicar las reglas de conversión se
obtienen los siguientes esquemas:

Esquemas
Autor( CurpAutor, NomAutor, Domicilio, BioAutor)
Fotografia(IdFoto, Filme, FechaToma, Precio, Descripción, Tipo, Disponibilidad, CurpAutor)
Comprador(CurpComprador, Nombre, Domicilio, Login, Telefono)
Banco(IdBanco, NombreBco)
Agencia(IdAgencia, NomAgencia, DirAgencia, TelAgencia)
Modelo(CurpModelo, NomMod, FechaNac, Bio )
Venta(NoVenta, Fecha, CurpComprador)

Creación de tablas
El paso para crear las tablas en PostgreSQL es muy simple: hay que elegir el tipo de datos para
cada uno de los atributos, pasar todos los atributos del esquema al comando de SQL (create table) y
ejecutarlo en la aplicación PSQL de PostgreSQL. Así que ejecute PSQL, copie los comandos de SQL
de éste laboratorio y peguelos en PSQL.

1. Creación de la tabla para el esquema de la entidad Autor( CurpAutor, NomAutor, Domicilio,


BioAutor):

create table autor(


CurpAutor varchar primary key,
NomAutor varchar,
Domicilio varchar,
BioAutor text
);

Para dar sentido a la creación de la tabla, ahora le insertamos datos que correspondan con
la entidad, para ello usamos el comando de SQL: insert into.

insert into autor values('1','jonatan','1a. Sur #10', 'Experto en fotos deportivas');


insert into autor values('2','jose','17 Oriente 2345', 'Naturalista y Abstracciones');
insert into autor values('3','jesus', 'Hidalgo 1534', 'Objetos surrealistas y deportes extremos');
insert into autor values('4','pedro', 'Aurora Boreal 9893', 'Retratista');
insert into autor values('5','manuel','Morelos 1452', 'Experto en Naturaleza muerta');
insert into autor values('6','jorge', 'Juarez 5676', 'Fotos de tecnologias electronicas');
insert into autor values('7','edilberto', 'Central Poniente 3224', 'Rostros, abstracciones y comerciales');
insert into autor values('8','azael','12 Sur 5698', 'Sustancias coloreadas y Reacciones Quimicas');
insert into autor values('9','bulmaro','17 Poniente prol. 2376', 'Animales');
insert into autor values('10','adrian', '25 Poniente 7890', 'Naturaleza silvestre y Deportes');
insert into autor values('11','pedro','Cacao 200 Col. Universitaria', 'Expresiones artisticas');
insert into autor values('12','mateo', 'Oyameles 9865', 'Costumbres indigenas');
insert into autor values('13','marcos', 'Madero 7563', 'Deportes Extremos');

Diseño de Base de Datos - Laboratorio 1


UNACH-Luis Antonio Álvarez Oval
Página 4
insert into autor values('14','juan','Ceibas 3242', 'Naturaleza muerta');
insert into autor values('15','daniel','Patria Nueva 324', 'Retratista');

2. Creación de la tabla para el esquema de la entidad Fotografia(IdFoto, Filme, FechaToma,


Precio, Descripción, Tipo, Disponibilidad, CurpAutor):

create table Fotografia(


IdFoto integer primary key,
tipo varchar,
FechaToma date,
Precio numeric(10,2),
Descripcion varchar,
Disponibilidad integer,
CurpAutor varchar references autor
);

Para dar sentido a la creación de la tabla, ahora le insertamos datos que correspondan con
la entidad, para ello usamos el comando de SQL: insert into.

insert into fotografia values(1,'color','2008-01-06',100,'Foto de un dia soleado', 1, 15);


insert into fotografia values(2,'b/n','2008-02-07',50,'Arco Iris', 1,15 );
insert into fotografia values(3,'color','2008-03-08',100,'Flores Exoticas',1, 14);
insert into fotografia values(4,'b/n','2008-04-09',50, 'Atardecer en la Playa',1, 13);
insert into fotografia values(5,'color','2008-05-10',100, 'Amanecer en el Tacana',0,12);
insert into fotografia values(6,'b/n','2008-06-11',50, 'Estela de las ruinas de Izapa',0,11);
insert into fotografia values(7,'color','2008-07-12',100, 'Tejido de vestuario tipico',0,10);
insert into fotografia values(8,'color','2008-09-14',100, 'Cruzando la frontera',0,10);
insert into fotografia values(9,'b/n','2008-10-15',50, 'La piel del Jaguar',0,11);
insert into fotografia values(10,'color','2008-11-16',100, 'Plumaje de un Loro',0,12);
insert into fotografia values(11,'b/n','2008-12-17',50, 'Mariposas Monarca',1,15);
insert into fotografia values(12,'color','2008-01-18',100, 'Pies Danzantes',1,14);
insert into fotografia values(13,'b/n','2008-02-19',50, 'Reflejos del agua',1,13);
insert into fotografia values(14,'color','2008-03-20',100, 'Bruma del amanecer',1,12);
insert into fotografia values(15,'b/n','2008-04-21',50, 'Anturios',1,13);
insert into fotografia values(16,'color','2008-05-22',100, 'Caribe Honduras',1, 9);
insert into fotografia values(17,'b/n','2008-06-23',50, 'Tropical forest',1,8);
insert into fotografia values(18,'color','2008-07-24',100, 'La cosecha del Banano',1,7);
insert into fotografia values(19,'b/n','2008-08-25',50, 'Entre rios: Parana',1,6);
insert into fotografia values(20,'color','2008-09-26',100, 'Finca Cafetalera',0,5);
insert into fotografia values(21,'b/n','2008-10-27',50, 'Selva del Peten',1,6);
insert into fotografia values(22,'color','2008-11-28',100,'Lago Patzcuaro en Semana Santa',0,3 );
insert into fotografia values(23,'b/n','2008-12-29',50, 'Flores del Titicaca',1,2);
insert into fotografia values(24,'color','2008-07-01',100,'Renacimiento de Bosque Tropical',0,1);
insert into fotografia values(25,'b/n','2008-08-02',50, 'Rio Manzanare',1,9);
insert into fotografia values(26,'color','2008-09-03',100, 'La selva panameña y el canal',0,8);

Diseño de Base de Datos - Laboratorio 1


UNACH-Luis Antonio Álvarez Oval
Página 5
insert into fotografia values(27,'b/n','2008-10-04',50, 'Yacimientos del Orinoco',0,7);
insert into fotografia values(28,'color','2008-11-05',100, 'Sierra Nevada',0,6);
insert into fotografia values(29,'b/n','2008-12-04',50, 'Lagunas de Montebello en Chiapas',0,5);
insert into fotografia values(30,'color','2008-03-15',100, 'Bosque de Panajachel',0,4);
insert into fotografia values(31,'b/n','2008-04-16','50', 'Jovenes',1,3);
insert into fotografia values(32,'color','2008-05-17','100', 'Piel Canela',1,2);
insert into fotografia values(33,'b/n','2008-06-18','50', 'Caras de Chiapas',1,1);
insert into fotografia values(34,'color','2008-07-19','100', 'Las Fresas',1,15);
insert into fotografia values(35,'b/n','2008-08-20','50', 'Los Rojos',0,14);
insert into fotografia values(36,'color','2008-09-21','100', 'Monica',0,13);
insert into fotografia values(37,'b/n','2008-10-22','50', 'Sergio y Monica',1,12);
insert into fotografia values(38,'color','2008-11-23','100', 'Los Muñecos',0,11);
insert into fotografia values(39,'b/n','2008-12-24','50', 'Subete a mi moto',1,10);
insert into fotografia values(40,'color','2008-05-25','100', 'Nico',0,5);
insert into fotografia values(41,'b/n','2008-05-26','50', 'La Malandraca',1,2);
insert into fotografia values(42,'b/n','2008-05-27','50', 'Chicos Malos',1,6);
insert into fotografia values(43,'color','2008-05-28','100', 'Retrato Nocturno',1,8);
insert into fotografia values(44,'color','2008-05-29','100', 'A media Luz',1,2);
insert into fotografia values(45,'color','2008-05-30','100', 'Lagrimas del ayer',1,7);
insert into fotografia values(46,'b/n','2008-02-07','50', 'Llanto del Sol',1,12);
insert into fotografia values(47,'color','2008-02-08','100', 'Antes de Mañana',1,11);
insert into fotografia values(48,'color','2008-02-09','100', 'El que sigue',1,10);
insert into fotografia values(49,'b/n','2008-02-10','50', 'De que mueren los quemados',0,9);
insert into fotografia values(50,'b/n','2008-02-11','50', '14 de Febrero',0,8);

3. Creación de la tabla para el esquema de la entidad Comprador(CurpComprador, Nombre,


Domicilio, Login, Telefono):

create table Comprador(


CurpComprador varchar primary key,
Nombre varchar,
Domicilio varchar,
Login varchar,
Telefono varchar
);

Para dar sentido a la creación de la tabla, ahora le insertamos datos que correspondan con
la entidad, para ello usamos el comando de SQL: insert into.

insert into comprador values ('car123','Carlos Perez','xochimilco', 'cperez', '2342554');


insert into comprador values ('mau456','Mauricio Lopez','porvenir', 'mlopez', '834622');
insert into comprador values ('nic789','Nicolas Bravo','indeco', 'nbravo', '239841');
insert into comprador values ('ber100','Bersain Orellana','11 de septiembre', 'bore', '987452');
insert into comprador values ('die200','Diego Guzman','monroy', 'dguzman', '9238741');
insert into comprador values ('iva300','Ivan Mendez','loma linda','imendez', '342546');

Diseño de Base de Datos - Laboratorio 1


UNACH-Luis Antonio Álvarez Oval
Página 6
insert into comprador values ('hum400','Humberto Henning','el vergel', 'hhen', '342343');
insert into comprador values ('ada500','Adael Vichique','las palmeras', 'avichi', '3446366');
insert into comprador values ('mon600','Monica Garcia','18 de octubre', 'mgarcia', '747654');
insert into comprador values ('ser700','Sergio Mendez','framboyanes', 'smendez', '323547');

4. Creación de la tabla para el esquema de la entidad Banco(IdBanco, NombreBco):

create table Banco(


IdBanco integer primary key,
NombreBco varchar
);

Para dar sentido a la creación de la tabla, ahora le insertamos datos que correspondan con
la entidad, para ello usamos el comando de SQL: insert into.
insert into banco values(1,'Santander');
insert into banco values(2,'Banamex');
insert into banco values(3,'Bancomer');
insert into banco values(4,'Bansefi');
insert into banco values(5,'Banorte');
insert into banco values(6,'HSBC');
insert into banco values(7,'Scotia Bank');
insert into banco values(8,'Inbursa');

5. Creación de la tabla para el esquema de la entidad Agencia(IdAgencia, NomAgencia,


DirAgencia, TelAgencia):

create table agencia(


IdAgencia integer primary key,
NomAgencia varchar,
DirAgencia varchar,
TelAgencia varchar
);

Para dar sentido a la creación de la tabla, ahora le insertamos datos que correspondan con la
entidad, para ello usamos el comando de SQL: insert into.

insert into agencia values(1,'pedregal','Central Norte No. 10','3649271');


insert into agencia values(2,'tulipanes','Av. Mangos 3234','4352456');
insert into agencia values(3,'hortencias','Laureles 1454','58643222');
insert into agencia values(4,'manglares','Cipres 2342','42889213');
insert into agencia values(5,'la joya','17 Poniente 2165','23971252');

Diseño de Base de Datos - Laboratorio 1


UNACH-Luis Antonio Álvarez Oval
Página 7
6. Creación de la tabla para el esquema de la entidad Modelo(CurpModelo, NomMod, FechaNac,
Bio ):

create table Modelo(


CurpModelo varchar primary key,
NomModelo varchar,
FechaNac date,
Bio text
);

Para dar sentido a la creación de la tabla, ahora le insertamos datos que correspondan con la
entidad, para ello usamos el comando de SQL: insert into.

insert into modelo values('alex0304mx','alexis', '1972-05-22', 'Bailarin Experto');


insert into modelo values('amde0506mx','amalia','1982-06-20', 'Miss Chiapas 2001, Aerobics');
insert into modelo values('mafo0708mx','manolo', '1989-01-27', 'Aventurero, deportes extremos');
insert into modelo values('alor1225mx','alonso','1990-02-28', 'Mr. Mexico 2005, Coreografo');
insert into modelo values('arcg0214','araceli','1991-09-22', 'Actor de novelas');

7. Creación de la tabla para el esquema de la entidad Venta(NoVenta, Fecha, CurpComprador):


create table venta(
NoVenta integer primary key,
Fecha date,
CurpComprador varchar references Comprador
);

Para dar sentido a la creación de la tabla, ahora le insertamos datos que correspondan con la
entidad, para ello usamos el comando de SQL: insert into.

insert into venta values (100, '2009-01-08', 'ada500');


insert into venta values (200, '2009-01-10', 'iva300');
insert into venta values (300, '2009-02-06', 'ber100');
insert into venta values (400, '2009-02-07', 'mon600');
insert into venta values (500, '2009-02-11', 'hum400');

Revisando el resultado de la creación de tablas e inserción de datos.


Para consultar los contenidos de cada una de las tablas necesita ejecutar el comando de SQL que
permite visualizar los datos almacenados en las mismas, y que se muestra a continuación:

select * from Autor;


select * from Fotografia;
select * from Comprador;
select * from Banco;
select * from Agencia;
select * from Modelo;

Diseño de Base de Datos - Laboratorio 1


UNACH-Luis Antonio Álvarez Oval
Página 8
select * from Venta;

Referencias.

• García Molina, Héctor, et al. (2001). Database Systems: Pearson New International Edition: The
Complete Book, 2ª Edición. ASIN: B00IZ0G5W4
• 2. Silberschatz, A. (2007). Fundamentos de diseño de bases de datos (5a. ed.). México: Mc.
Graw Hill.
• 3. Yelenea. Anikina. (2015) Entity Relationship Approach to Database Design. LAP Lambert
Academic Publishing. ISBN-10: 9783659747540
• 4. Schonig, Hans-Jurgen. (2018) Mastering PostgreSQL 11, Second Edition. Packt Publishing.
ISBN-10: 1789537819

Diseño de Base de Datos - Laboratorio 1


UNACH-Luis Antonio Álvarez Oval
Página 9

También podría gustarte