Vous êtes sur la page 1sur 5

Universidad Privada Antenor Orrego Tiempo: 100 minutos

Facultad de Ingeniería
Ingeniería Industrial aulas: G302-G303
SEMESTRE 2014-I

SOLUCIONARIO DE EXAMEN FINAL DE INGENIERIA DE LA INFORMACION

(A) Proceso de Normalización (6 ptos.)


Dado el siguiente escenario de datos de una FACTURACION, dibuje el diagrama de dependencias
funcionales 1NF, 2NF y 3NF, Asegúrese en identificar y nombrar (si fuera aplicable) la llave PK,
las dependencias parciales (dp), dependencias transitivas (dt).

Factura Factura Cliente Artículo Cliente Artículo Artículo Cantidad


Numero Fecha Numero Numero Nombre Nombre Precio
1001 2014-04-14 212 91 Saravia tornillo $2.25 5
1001 2014-04-14 212 73 Saravia perno $3.15 5
1001 2014-04-14 212 65 Saravia arandela $1.99 9
1002 2014-04-17 225 91 Camino tornillo $2.25 2
1002 2014-04-17 225 92 Camino tuerca $3.69 3
1003 2014-04-17 239 91 García tornillo $2.25 7
1003 2014-04-17 239 92 García tuerca $3.69 1
1004 2014-04-18 211 84 López martillo $9.99 5

1NF:

PK1 PK2
Factura Factura Cliente Artículo Cliente Artículo Artículo Cantidad
Numero Fecha Numero Numero Nombre Nombre Precio

DT

DP1 DP2

PK1

2NF:

Factura Factura Cliente Cliente


Numero Fecha Numero Nombre
FACTURA
DT

PK2

Artículo Artículo Artículo


Numero Nombre Precio ARTICULO
Factura Artículo Cantidad LO_VENDIDO
Numero Numero

3NF:

Factura Factura Cliente


Numero Fecha Numero
FACTURA

Cliente Cliente
CLIENTE
Numero Nombre

PK2

Artículo Artículo Artículo ARTICULO


Numero Nombre Precio

Factura Artículo Cantidad LO_VENDIDO


Numero Numero

(B) Modelo de Diseño de Base de Datos (4 ptos.)

Use el resultado del proceso de Normalización, el que llegó a 3NF, para dibujar el diagrama
Entidad-Relación.
FACTURA
CLIENTE
factNum (pk)
clieNum (pk)
factFecha
clieNum (fk) clieNbre

LO_VENDIDO ARTICULO

artNum (pk)
factNum (pk1, fk1)
artNum (pk2,fk2) artNbre
cantidad artPrecio

(C) Modelo Interno de Base de Datos (6 ptos.)

Use el resultado del Modelo de Diseño de Base de Datos de la pregunta (B) para que en conjunto
con el lenguaje SQL escriba las instrucciones que generen todas las tablas de la base de datos que se
denominará MyBase.

mysql> use mybase;


Database changed

mysql> create table CLIENTE(


-> clieNum int(5) primary key,
-> clieNbre varchar(30));
Query OK, 0 rows affected (0.10 sec)

mysql> create table ARTICULO(


-> artNum int(5) primary key,
-> artNbre varchar(30),
-> artPrecio decimal(5,2));
Query OK, 0 rows affected (0.14 sec)

mysql> create table FACTURA(


-> factNum int(5) primary key,
-> factFecha date,
-> clieNum int(5),
-> FOREIGN KEY (clieNum) REFERENCES CLIENTE(clieNum));
Query OK, 0 rows affected (0.10 sec)

mysql> create table LO_VENDIDO(


-> factNum int(5),
-> artNum int(5),
-> cantidad int(5) not null,
-> PRIMARY KEY(factNum,artNum),
-> FOREIGN KEY (factNum) REFERENCES FACTURA(factNum),
-> FOREIGN KEY (artNum) REFERENCES ARTICULO(artNum));
Query OK, 0 rows affected (0.14 sec)

mysql> insert into CLIENTE values


-> (212, 'Saravia'),
-> (225, 'Camino'),
-> (239, 'Garcia'),
-> (211, 'Lopez');
Query OK, 4 rows affected (0.02 sec)
Records: 4 Duplicates: 0 Warnings: 0

mysql> insert into ARTICULO values


-> (91, 'tornillo', 2.25),
-> (73, 'perno', 3.15),
-> (65, 'arandela', 1.99),
-> (92, 'tuerca', 3.69),
-> (84, 'martillo', 9.99);
Query OK, 5 rows affected (0.05 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> insert into FACTURA values


-> (1001, "2014-04-14", 212),
-> (1002, "2014-04-17", 225),
-> (1003, "2014-04-17", 239),
-> (1004, "2014-04-18", 211);
Query OK, 4 rows affected (0.04 sec)
Records: 4 Duplicates: 0 Warnings: 0

mysql> insert into LO_VENDIDO values


-> (1001, 91, 5),
-> (1001, 73, 5),
-> (1001, 65, 9),
-> (1002, 91, 2),
-> (1002, 92, 3),
-> (1003, 91, 7),
-> (1003, 92, 1),
-> (1004, 84, 5);
Query OK, 8 rows affected (0.06 sec)
Records: 8 Duplicates: 0 Warnings: 0

(D) Consultas SQL (4 ptos.)

Use el resultado del Modelo Interno de Base de Datos de la pregunta (C) para que en conjunto con
el lenguaje SQL escriba las consultas o queries SQL. NOTA: Sus respuestas NO SON VALIDAS si
no muestra la información requerida en las consultas, las cuales provienen de los datos dados en el
escenario Facturación.

Query 1: Liste los nombres de los artículos y su precio que compró el cliente Saravia.

mysql> SELECT a.artNbre, a. artPrecio


-> FROM articulo a, lo_vendido v, factura f, cliente c
-> WHERE a.artNum=v.artNum AND
-> v.factNum=f.factNum AND
-> c.clieNum=f.clieNum AND
-> c.clieNbre='Saravia';
+----------+-----------+
| artNbre | artPrecio |
+----------+-----------+
| arandela | 1.99 |
| perno | 3.15 |
| tornillo | 2.25 |
+----------+-----------+
3 rows in set (0.05 sec)

Query 2: Liste el número de cliente y su nombre a quien se le emitió la factura 1003.

mysql> SELECT c.clieNum, c.clieNbre


-> FROM cliente c, factura f
-> WHERE c.clieNum = f.clieNum
-> AND f.factNum = 1003;
+---------+----------+
| clieNum | clieNbre |
+---------+----------+
| 239 | Garcia |
+---------+----------+
1 row in set (0.00 sec)

Elmer Hugo González Herrera Trujillo, Julio 2, 2014


Doctor en Ingeniería Industrial, PERU
Master of Science in Computer Science, USA

Vous aimerez peut-être aussi