Está en la página 1de 6

Universidad Andrés Bello

2011

CORRECCION SOLEMNE N°3 BASE DE DATOS

Instrucciones:

Responda individualmente la primera pregunta de la solemne2011 CORRECCION SOLEMNE N°3 BASE DE DATOS Instrucciones: La pregunta dos y tres puede ser respondida

La pregunta dos y tres puede ser respondida en grupo de dos o tres alumnos .Responda individualmente la primera pregunta de la solemne I. Responda las siguientes preguntas 20 ptos 1.

I. Responda las siguientes preguntas

20 ptos

1. De un ejemplo de partición Horizontal y partición vertical de tablas Particiaòn Horizontal clientes(id_cliente, nombre, apellido, fono, mail) clientesNorte(id_cliente, nombre, apellido, fono, mail) ClientesCentro(id_cliente, nombre, apellido, fono, mail) ClientesSur(id_cliente, nombre, apellido, fono, mail)

Partición vertical:

pacientes(id_paciente, nombre, apellido, fono, mail, grupo_sanguineo, fecha_nacimiento, peso_alnacer, estatura_al_nacer)

tablas particionadas:

Paciente (id_paciente, nombre, apellido, fono, mail,, fecha_nacimiento)

DatosClinicos(id_paciente, grupo_sanguineo, peso_alnacer, estatura_al_nacer)

2. Señale que significa cada uno de los siguientes términos en la revisión del diseño:

2.1. Completitud: Permite preguntarse si el modelo resultante está completo y responde a todos los requerimientos del cliente, presentes y fututos

2.2. Uso de homónimos: En el caso de que el modelo resultante se vea favorecido con uso de atributos que significan distinto pero suenan igual es convenientes usarlo pero acompañado de una muy buena documentación: Eje : Nota como evaluación y Nota como una observación

2.3. Exactitud: Confirmar que el modelo de datos resultante esté modelado según las reglas existentes en la realidad modelada, en este aspecto es muy importante que el modelo se explique por sí mismo y sea entendido por las personas que viven en la realidad modelada

Universidad Andrés Bello

2011

II. Transforme el siguiente diagrama E-R, en un modelo Relacional

20 ptos

el siguiente diagrama E-R, en un modelo Relacional 20 ptos 1 a Muchos Productos facturas Factura_producto

1

a

Muchos

Productos facturas Factura_producto Id_producto <pk> precio folio <pk> folio <pk> glosa
Productos
facturas
Factura_producto
Id_producto
<pk>
precio
folio
<pk>
folio
<pk>
glosa
fecha
id_producto <pk>
total
cantidad
id_cliente <fk>
id_encar <fk>
Producto_proveedor
clientes
Id_producto
<pk>
Id_provee <pk>
id_cli
<pk>
nombre
apellido
id_profesio <fk>
Proveedores
Id_provee <pk>
nombre
profesiones
direccion
Id_profesio
<pk>
nombre

Universidad Andrés Bello

2011

III. SQL 60 ptos 1) Dadas las tablas presentadas a continuación conteste las siguientes preguntas
III. SQL
60 ptos
1)
Dadas
las
tablas presentadas
a continuación
conteste las
siguientes preguntas
con
lenguaje SQL:
NACIONALES
Cod_nacional pk>
RUT <fk>
CLIENTES
CLIENTE_PRODUCTO
RUT
<pk>
Cod_nacional
<pk, fk>
Nombre
Cod_producto <pk, fk>
Apell_Pater
Apell_Mater
Ciudad
Direccion
Fono
PRODUCTOS
Fecha_Nacimiento
Sexo
Cod_producto <pk>
Nombre
Costo_mantencion
duracion
Cod_banco <fk>
EXTRANJEROS
Cod_extranjero
<pk>
RUT <fk>
Pais_origen
BANCOS
Cod_banco <pk>
Nombre

Universidad Andrés Bello

2011

a. Preguntas de Revisión. Para cada pregunta responda cómo podría obtener la información

solicitada:

20 ptos

i. ¿Podría saber el costo de mantención total por todos los productos del banco de un cliente dado? Desde la tabla nacionales, se deben sumar el atributo, costo mantención, para cada producto vinculado en la tabla cliente-producto

ii. ¿Podría saber el nombre y apellido de todos los clientes de la región metropolitana? No, falta un atributo región en clientes

iii. ¿Podría saber cuántos productos del banco de chile vencen este año? No, no tenemos fecha de entrega de los productos. Este atributo debería estar en la tabla cliente-producto

iv. ¿Podría saber qué productos tienen asignados los clientes extranjero? No, no hay relación entre las tablas

v. ¿Podría saber la cantidad de clientes que tienen VISA por tres años de vigencia? Si, están todos los datos disponibles en las 4 tablas del modelo que están relacionadas

b. Responda las siguientes preguntas en SQL:

a) Crear la tabla productos y cliente_producto

40 ptos

CREATE TABLE PROD UCTOS( Cod_producto VARCHAR2(10) PRIMARY KEY, Nombre VARCHAR2(30) NOT NULL, Costo_mantencion INTEGER NOT NULL, Duracion INTEGER, Cod_banco VARCHAR2(10) NOT NULL, FOREIGN KEY cod_banco REFERENCES BANCOS(Cod_banco) );

CREATE TABLE CLIENTE_PRODUCTO(

Cod_nacional

Cod_producto INTEGER NOT NULL, PRIMARY KEY (Cod_nacional, Cod_producto),

FOREIGN KEY Cod_nacional

INTEGER NOT NULL,

REFERENCES nacionales(Cod_nacional),

FOREIGN KEY Cod_producto REFERENCES PRODUCTOS(Cod_producto) );

b) Indicar el comando SQL para insertar una fila en la tabla clientes y en la tabla nacionales

INSERT INTO CLIENTES VALUES (86798459, PEDRO, DIAZ, VALPARAISO, PEDRO

MONTT 457, 2458796, 25/05/1980, M);

INSERT INTO NACIONALES VALUES (100, 86798459);

Universidad Andrés Bello

2011

c) Responder las siguientes consultas SQL

1. Mostrar el nombre de la ciudad y la cantidad de clientes por ciudad

SELECT ciudad, count(*) as cantidad FROM clientes GROUP BY ciudad;

2. Nombre del producto cuya mantención mensual esté entre los 1800 y 2500 pesos.

SELECT nombre FROM productos WHERE costo_mantencion > =1800 and costo_mantencion <=2500 ; Otra forma SELECT nombre FROM productos WHERE costo_mantencion BETWEEN 1800 AND 2500

3. Mostrar el RUT, Nombre y Apellido de los clientes nacionales que tiene el producto

Visa Premium por dos años.

SELECT RUT, nombre, apell_pater, apell_mater FROM clientes WHERE rut IN (SELECT rut FROM nacionales WHERE cod_nacionales IN (SELECT cod_nacionales FROM cliente_producto WHERE cod_producto IN (SELECT cod_producto FROM productos WHERE nombre = Visa Premiumand duracion = 2)));

4. Mostrar la cantidad de clientes nacionales que tiene cuenta corriente del banco BCI .

SELECT count(*) as cantidad FROM nacionales WHERE rut IN (SELECT rut FROM nacionales WHERE cod_nacionales IN (SELECT cod_nacionales FROM cliente_producto WHERE cod_producto IN (SELECT cod_producto FROM productos WHERE cod_banco IN (SELECT cod_banco FROM bancos WHERE nombre = BCI))));

5. Mostrar el Código de los clientes nacionales que tiene VISA y Cuenta Corriente a la vez.

SELECT cod_nacionales FROM nacionales WHERE rut IN (SELECT rut FROM nacionales WHERE cod_nacionales IN (SELECT cod_nacionales FROM cliente_producto WHERE cod_producto IN (SELECT cod_producto FROM productos WHERE WHERE nombre IN (Visa, Cuenta Corriente) )) GROUP BY cod_nacionales HAVING count(*) =2;

Universidad Andrés Bello

2011

6. Nombre de los bancos que tengan al menos tres productos SELECT nombre FROM bancos WHERE cod_banco in (SELECT cod_banco from productos WHERE cod_producto IN ( Select cod_banco From productos Group by cod_banco Having count(*)>=3));

7. Nombre de los productos que tienen más de tres años de duración del banco Estado SELECT nombre FROM productos

WHERE cod_banco IN (SELECT cod_banco FROM bancos WHERE nombre = Estado)); And duracion>=3

8. Mostrar el Nombre de los productos que posee Julia González Alfaro.

SELECT nombre FROM productos WHERE cod_producto IN (SELECT cod_producto FROM cliente_producto WHERE Cod_nacional IN (SELECT cod_nacional FROM nacionales WHERE rut in (SELECT RUT FROM clientes WHERE nombre = JULIAAND apell_pater = GONZALEZAND apell_mater = ALFARO)));