Вы находитесь на странице: 1из 4

UNIVERSIDAD

DE SANTIAGO DE CHILE
DEPARTAMENTO DE MATEMÁTICAS Y CIENCIA DE LA COMPUTACIÓN
LICENCIATURA EN CIENCIA DE LA COMPUTACIÓN

BASES DE DATOS - MODELAMIENTO DE BASE DE DATOS


PAUTA TERCER CONTROL DE TEORÍA
Segundo Semestre 2017

Jueves 30 de noviembre de 2017
I. NORMALIZACIÓN:

El siguiente modelo “relacional” almacena el inventario de una empresa que presta servicio de Bodegas.
Entre la información que almacena se encuentra tanto la información de los arriendos (qué clientes han
arrendado qué bodegas) y el inventario o registro de los objetos que se almacenan o que han sido
almacenados en ellas.

Realice la normalización del modelo hasta conseguir que el modelo resultante se encuentre en FNBC.
Recuerde que debe validar que el modelo cumpla cada una de las formas normales.

BODEGA = {IdBodega, NomBodega, Ubicación, metros_cuadrados, NroLote, Lote, RutSupervisor,


NombreSupervisor}

CLIENTE = {IdCliente, IdBodega, NombreCliente, Direccion, Telefono, IdContrato,


Fecha_Inicio_Contrato, Fecha_Termino_Contrato}

INVENTARIO = {IdContrato, Id_Objeto, Nom_Objeto, Cantidad_Objeto, Fecha_Ingreso_Bodega,


Fecha_Salida_Bodega}

Respuesta:

a) 1FN: Los datos deben ser atómicos y monovalentes.

Dos de las tablas (relaciones) poseen datos que no son atómicos: BODEGA y CLIENTE.

En el caso de la tabla BODEGA, es necesario atomizar el atributo NombreSupervisor, por lo que se


redefine de la siguiente manera:

BODEGA = {IdBodega, NomBodega, Ubicación, metros_cuadrados, NroLote, Lote, RutSupervisor,


ApPaternoSupervisor, ApMaternoSupervisor, NombresSupervisor}

En lo que respecta a la tabla CLIENTE, es necesario atomizar el atributo NombreCliente. El atributo


Direccion se considera atómico. La tabla resultante es la siguiente:

CLIENTE = {IdCliente, IdBodega, ApPaternoCliente, ApMaternoCliente, NombresCliente, Direccion,


Telefono, IdContrato, Fecha_Inicio_Contrato, Fecha_Termino_Contrato}

b) 2FN: Debe estar en 1FN y todos sus atributos no claves dependen de su clave primaria.

Teniendo en cuenta la definición, se realizará la siguiente redefinición de las tablas:

Segundo Semestre de 2017 BD 1



UNIVERSIDAD DE SANTIAGO DE CHILE
DEPARTAMENTO DE MATEMÁTICAS Y CIENCIA DE LA COMPUTACIÓN
LICENCIATURA EN CIENCIA DE LA COMPUTACIÓN

• BODEGA: Se divide en tres tablas: BODEGA, LOTE y SUPERVISOR

BODEGA = {IdBodega, NomBodega, Ubicación, metros_cuadrados, NroLote, RutSupervisor}

LOTE = {NroLote, Lote}

SUPERVISOR = {RutSupervisor, ApPaternoSupervisor, ApMaternoSupervisor, NombresSupervisor}


• CLIENTE: Se divide en dos tablas CLIENTE y CONTRATO

CLIENTE = {IdCliente, ApPaternoCliente, ApMaternoCliente, NombresCliente, Direccion, Telefono}

CONTRATO = {IdContrato, IdCliente, IdBodega, Fecha_Inicio_Contrato, Fecha_Termino_Contrato}


• INVENTARIO: Se divide en dos tablas: INVENTARIO y OBJETO

INVENTARIO = {IdContrato, Id_Objeto, CantidadObjeto, Fecha_Ingreso_Bodega, Fecha_Salida_Bodega}

OBJETO = {Id_Objeto, Nom_Objeto}

c) 3FN: Está en 2FN y ningún subconjunto de atributos no claves tienen dependencia funcional entre
si.

Todas las tablas se encuentran en tercera forma normal.

d) FNBC: Está en 3FN y las únicas dependencias funcionales triviales se encuentran dadas entre la
clave primaria y uno o varios atributos.

Todas las Tablas están en FNBC.

MODELO RESULTANTE:

BODEGA = {IdBodega, NomBodega, Ubicación, metros_cuadrados, NroLote, RutSupervisor}

LOTE = {NroLote, Lote}

SUPERVISOR = {RutSupervisor, ApPaternoSupervisor, ApMaternoSupervisor, NombresSupervisor}

CLIENTE = {IdCliente, ApPaternoCliente, ApMaternoCliente, NombresCliente, Direccion, Telefono}

CONTRATO = {IdContrato, IdCliente, IdBodega, Fecha_Inicio_Contrato, Fecha_Termino_Contrato}

INVENTARIO = {IdContrato, Id_Objeto, CantidadObjeto, Fecha_Ingreso_Bodega, Fecha_Salida_Bodega}

OBJETO = {Id_Objeto, Nom_Objeto}

Segundo Semestre de 2017 BD 2



UNIVERSIDAD DE SANTIAGO DE CHILE
DEPARTAMENTO DE MATEMÁTICAS Y CIENCIA DE LA COMPUTACIÓN
LICENCIATURA EN CIENCIA DE LA COMPUTACIÓN

II. ÁLGEBRA RELACIONAL Y SQL

Construya el álgebra relacional y el script SQL que permita obtener los siguientes reportes basándose
en el modelo normalizado obtenido en el ejercicio anterior:

a) Listado de Bodegas (Id, nombre, ubicación y lote) que no han sido arrendadas en noviembre de
2017.

PRIMERA OPCIÓN:

Definamos A de la siguiente manera:

p ( s (BODEGA X CONTRATO) )

B.IdBodega, B.IdBodega = C.IdBodega AND
B. NomBodega, (Fecha_Inicio_Contrato >= ‘01/11/2017’ OR
B. Ubicación, Fecha_Termino_Contrato <= ‘30/11/2017’)
B.NroLote

El álgebra resultante será

p (BODEGA) - A
B.IdBodega,
B. NomBodega,
B. Ubicación,
B.NroLote

SEGUNDA OPCIÓN:

p ( s (BODEGA X CONTRATO) )

B.IdBodega, B.IdBodega = C.IdBodega AND
B. NomBodega, Fecha_Inicio_Contrato > ‘30/11/2017’ AND
B. Ubicación, Fecha_Termino_Contrato < ‘01/11/2017’
B.NroLote


Segundo Semestre de 2017 BD 3



UNIVERSIDAD DE SANTIAGO DE CHILE
DEPARTAMENTO DE MATEMÁTICAS Y CIENCIA DE LA COMPUTACIÓN
LICENCIATURA EN CIENCIA DE LA COMPUTACIÓN

b) Listado de Bodegas que nunca han sido arrendadas.

p (BODEGA) - p

(CONTRATO)

B.IdBodega C.IdBodega

c) Listado de Clientes cuyo contrato de arriendo vence el 31 de diciembre de 2017. Incluya todos
los datos personales del cliente en el listado.

p ( s (CLIENTE X CONTRATO) )
Cli.IdCliente, Cli.IdCliente = C.IdCliente AND
Cli.ApPaternoCliente, C. Fecha_Termino_Contrato <= ‘31/12/2017’
Cli.ApMaternoCliente,
Cli.NombresCliente,
Cli.Direccion,
Cli.Telefono


d) Incluya, en un solo listado, los datos de los clientes (IdCliente y nombre completo) y de los
supervisores (Rut y nombre completo).

p (CLIENTE) È p

(SUPERVISOR) )
IdCliente, RutSupervisor,
ApPaternoCliente, ApPaternoSupervisor,
ApMaternoCliente, ApMaternoSupervisor,
NombresCliente NombresSupervisor

Segundo Semestre de 2017 BD 4