CorreccionSolemne3IndustrialBD

download CorreccionSolemne3IndustrialBD

of 6

Transcript of CorreccionSolemne3IndustrialBD

  • 8/18/2019 CorreccionSolemne3IndustrialBD

    1/6

    Universidad Andrés Bello 2011

    1

    CORRECCION SOLEMNE N°3 BASE DE DATOS

    Instrucciones:

    Responda individualmente la primera pregunta de la solemneLa pregunta dos y tres puede ser respondida en grupo de dos o tres alumnos.

    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 Notacomo 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

  • 8/18/2019 CorreccionSolemne3IndustrialBD

    2/6

    Universidad Andrés Bello 2011

    2

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

    1 a Muchos

    facturas

    folio

    fecha

    total

    id_cliente

    id_encar

    Factura_producto

    folio

    id_producto

    cantidad

    Productos

    Id_producto

    precioglosa

    Producto_proveedor

    Id_producto

    Id_provee

    clientes

    id_cli

    nombre

    apellido

    id_profesio

    profesiones

    Id_profesio

    nombre

    Proveedores

    Id_provee

    nombre

    direccion

  • 8/18/2019 CorreccionSolemne3IndustrialBD

    3/6

    Universidad Andrés Bello 2011

    3

    III. SQL 60 ptos

    1)  Dadas las tablas presentadas a continuación conteste las siguientes preguntas con

    lenguaje SQL:

    NACIONALES

    Cod_nacional pk>

    RUT

    CLIENTES

    RUT Nombre

    Apell_Pater

    Apell_Mater

    Ciudad

    Direccion

    Fono

    Fecha_NacimientoSexo

    EXTRANJEROS

    Cod_extranjero

    RUT Pais_origen

    CLIENTE_PRODUCTO

    Cod_naci onal Cod_producto

    PRODUCTOS

    Cod_producto

    Nombre

    Costo_mantencion

    duracion

    Cod_banco

    BANCOS

    Cod_banco

    Nombre

  • 8/18/2019 CorreccionSolemne3IndustrialBD

    4/6

    Universidad Andrés Bello 2011

    4

    a.  Preguntas de Revisión. Para cada pregunta responda cómo podría obtener la informaciónsolicitada: 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: 40 ptos 

    a)  Crear la tabla productos y cliente_producto

    CREATE TABLE PRODUCTOS(

    Cod_producto VARCHAR2(10) PRIMARY KEY,Nombre VARCHAR2(30) NOT NULL,

    Costo_mantencion I NTEGER NOT NULL,

    Duracion INTEGER,

    Cod_banco VARCHAR2(10) NOT NULL,

    FOREIGN KEY cod_banco REFERENCES BANCOS(Cod_banco) );

    CREATE TABLE CLIENTE_PRODUCTO(

    Cod_naci onal INTEGER NOT NULL,

    Cod_producto INTEGER NOT NULL,

    PRIMARY KEY (Cod_nacional, Cod_producto),

    FOREIGN KEY Cod_nacional REFERENCES naci onales(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’);

  • 8/18/2019 CorreccionSolemne3IndustrialBD

    5/6

    Universidad Andrés Bello 2011

    5

    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

  • 8/18/2019 CorreccionSolemne3IndustrialBD

    6/6

    Universidad Andrés Bello 2011

    6

    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 productosGroup 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 = ‘JULIA’  AND apell_pater = ‘GONZALEZ’  AND

    apell_mater = ‘ALFARO’)));