Está en la página 1de 8

UPC

DISEÑO DE BASES DE DATOS

Carrera : Ingeniería de Sistemas – Estudios Profesionales para Ejecutivos


Curso : Diseño de Bases de Datos

NORMALIZACIÓN – 1FN a 4FN – Ejercicios adicionales

1. Control de horas de Intervenciones Quirúrgicas en una Clínica

Este es un caso de control de horas trabajadas en el Centro Quirúrgico de una Clínica.


El control de horas es necesario para realizar el pago de remuneraciones a las enfermeras
Considere los siguientes atributos:

NuSALA Número de sala de operaciones


CoENFERMERA Código de Enfermera
NoENFERMERA Nombre de Enfermera
FeFeCIRUGIA Fecha de cirugía
FeHoCIRUGIA Hora de cirugía
CoESPECIALIDAD Código de especialidad
NoESPECIALIDAD Nombre de la especialidad
NuHISTORIACLINICA Número de historia clínica del paciente
NoPACIENTE Nombre del paciente
CoHABITACION Código de habitación del paciente
TxCONTRAINDICACIONES Detalle de contraindicaciones del paciente
QtHORAS_CIRUGIA Cantidad de horas de duración de cirugía
SsTARIFA_ESPECIALIDAD Precio por hora por especialidad

Suposiciones:

• Las cirugías se realizan en una sala, en una fecha y hora determinada.


• Para cada cirugía puede asignarse una o más enfermeras.
• Cada sala de operaciones está equipada para una especialidad.
• Cada especialidad tiene una tarifa por hora de enfermería.
• Una misma enfermera puede apoyar en intervenciones quirúrgicas de cualquier especialidad.
• Cada intervención tiene registrado al paciente intervenido.
• Cada paciente está internado en una habitación, y en una misma habitación puede haber
más de un paciente.

1
UPC
DISEÑO DE BASES DE DATOS

SOLUCIÓN:

NuSALA
CoENFERMERA
NoENFERMERA
FeFeCIRUGIA
FeHoCIRUGIA
CoESPECIALIDAD
NoESPECIALIDAD
NuHISTORIACLINICA
NoPACIENTE
CoHABITACION
TxCONTRAINDICACIONES
QtHORAS_CIRUGIA
SsTARIFA_ESPECIALIDAD

PASO 1: Identificación de la PK a partir de los determinantes, asegurando que esté soportada la


DMV
Determinantes: (NuSALA, FeFeCIRUGÍA, FeHoCIRUGÍA, CoENFERMERA,
CoESPECIALIDAD, NuHISTORIACLINICA)

Eliminamos de este conjunto los atributos determinantes que dependan funcionalmente de


otros (CoESPECIALIDAD y NuHISTORIACLINICA)

PK(R)= (NuSALA, FeFeCIRUGÍA, FeHoCIRUGÍA, CoENFERMERA)

PASO 2: Tratamiento de las dependencias multivaloradas (DMV)


Enfermeras x Cirugía: (NuSALA, FeFeCIRUGÍA, FeHoCIRUGÍA, CoENFERMERA )

PASO 3: Tratamiento de las dependencias funcionales completas (DFC)


Cirugía: (NuSALA, FeFeCIRUGÍA, FeHoCIRUGÍA, NuHISTORIACLINICA, QtHORAS_CIRUGÍA
)
Sala: (NuSALA, CoESPECIALIDAD, NoESPECIALIDAD, SsTARIFA_ESPECIALIDAD )
Paciente: (NuHISTORIACLINICA, NoPACIENTE, CoHABITACIÓN,
TxCONTRAINDICACIONES)
Enfermera: ( CoENFERMERA, NoENFERMERA )

PASO 4: Tratamiento de las dependencias transitivas (DT)


Sala’ : (NuSALA, CoESPECIALIDAD )
Especialidad: ( CoESPECIALIDAD, NoESPECIALIDAD, SsTARIFA_ESPECIALIDAD )

2
UPC
DISEÑO DE BASES DE DATOS

Conjunto resultante:
{ Enfermeras x Cirugía, Cirugía, Sala’, Paciente, Enfermera,
Especialidad}

2. Sistema Escolar

Suposiciones:
• Un curso puede tener cero, uno, dos o hasta tres pre-requisitos.
• Un curso se puede dividir en varias secciones, dependiendo de la cantidad de alumnos
inscritos en él en cada semestre. Cada curso puede tener varias secciones.
• En cada semestre, un curso puede ser impartido por más de un profesor. Una sección de
un curso cualquiera se puede asignar a solamente un profesor, pero un mismo profesor
puede enseñar a más de una sección.
• Un estudiante puede tomar un curso en solamente una sección. Sin embargo, un
estudiante no pertenece a una sección fija. Por ejemplo, puede tomar un curso en la
sección A y otro curso en la sección D.
• El número del curso, el número del estudiante y el número del profesor y de Departamento
son únicos en todo el sistema escolar.
• Cada Curso pertenece a un PROGRAMA específico, y cada profesor a un Departamento.

La relación de atributos que comprende el sistema es la siguiente:

Nu_ESTUDIANTE No_CURSO Qt_CALIFICACION


No_ESTUDIANTE Co_SECCION Nu_PROFESOR
Tx_ESTU_DIRECCION Qt_CREDITAJE No_PROFESOR
No_PROGRAMA Nu_SEMESTRE Tx_PROFE_DIRECCIÓN
Nu_CURSO Nu_PREREQUISITO Nu_DEPARTAMENTO
No_DEPARTAMENTO

3
UPC
DISEÑO DE BASES DE DATOS

SOLUCIÓN:

Nu_ESTUDIANTE
No_ESTUDIANTE
Tx_ESTU_DIRECCIÓN
No_PROGRAMA
Nu_CURSO
No_CURSO
Qt_CREDITAJE
Nu_PREREQUISITO
Co_SECCION
Nu_SEMESTRE
Qt_CALIFICACIÓN
Nu_PROFESOR
No_PROFESOR
Tx_PROFE_DIRECCIÓN
Nu_DEPARTAMENTO
No_DEPARTAMENTO

Nu_ESTUDIANTE, Nu_CURSO, Co_SECCION, Nu_SEMESTRE, No_PROFESOR,


Nu_DEPARTAMENTO, Nu_PREREQUISITO

• Despejamos dependencias multivaloradas:


Nu_CURSO Nu_PRERREQUISITO

Relación Prerrequisito: (Nu_CURSO, Nu_PRERREQUISITO)

Nu_CURSO, Nu_SEMESTRE Co_SECCION

Relación Sección: (Nu_CURSO, Nu_SEMESTRE, Co_SECCION)

• Dependencias funcionales completas (DFC)

Relación Matrícula: (Nu_SEMESTRE, Nu_CURSO, Nu_ESTUDIANTE, Co_SECCION,


Qt_CALIFICACIÓN)

Relación Curso: (Nu_CURSO, No_CURSO, Qt_CREDITAJE, No_PROGRAMA)

4
UPC
DISEÑO DE BASES DE DATOS

Relación Estudiante: (Nu_ESTUDIANTE, No_ESTUDIANTE, Tx_ESTU_DIRECCIÓN)

Relación Carga Académica: (Nu_SEMESTRE, Nu_CURSO, Co_SECCION, Nu_PROFESOR,


No_PROFESOR, Tx_PROFE_DIRECCIÓN, Nu_DEPARTAMENTO,
No_DEPARTAMENTO)

• Dependencias transitivas

Relación Profesor: (Nu_PROFESOR, No_PROFESOR, Tx_PROFE_DIRECCIÓN,


Nu_DEPARTAMENTO)

Relación Departamento: (Nu_DEPARTAMENTO, No_DEPARTAMENTO)

Relación Carga Académica’: (Nu_SEMESTRE, Nu_CURSO, Co_SECCION, Nu_PROFESOR)

Quedarían las relaciones Prerrequisito, Sección, Matrícula, Carga Académica’, Curso, Profesor,
Estudiante, Departamento.

Sin embargo notamos que la relación Sección tiene el mismo determinante que Carga
Académica’; más aún, es un subconjunto (una proyección) de esta relación, por lo que se
puede obviar sin pérdida alguna.

Conjunto resultante:

Prerrequisito, Matrícula, Carga Académica’, Curso, Profesor, Estudiante, Departamento.

5
UPC
DISEÑO DE BASES DE DATOS

3. Repuestos Automotrices

Una tienda dedicada a la comercialización de repuestos automotrices le ha encargado que le


diseñe una base de datos para registrar y controlar la información relativa a los artículos que
vende, los que adquiere de diferentes proveedores locales y del extranjero.
Considere los siguientes supuestos:
• La tienda cuenta con una serie de repuestos (filtros de aceite, de gasolina, bujías,
distribuidores, etc.). Cada uno de estos repuestos tiene un código de identificación único,
tiene una descripción, es de una cierta marca y de un tipo de repuesto (sistema de frenos,
sistema eléctrico, de suspensión, etc.).
• Las marcas de los repuestos pueden ser las mismas u otras diferentes a las marcas de
los vehículos para los que se emplean. Así por ejemplo existen filtros de aire o gasolina
marca Honda, Toyota, Lys, etc. De cada marca se debe registrar un código único y su
nombre
• Cada repuesto puede servir para uno o más tipos de vehículos. Un tipo de vehículo tiene
un código único y se consigna su marca, modelo y año de fabricación. Por ejemplo un
repuesto de código XXX (un cierto filtro de gasolina de marca Lys) puede servir para
vehículos Toyota Corona de los años 2011, 2012 y 2013. Es necesario guardar adecuado
registro de los tipos de vehículo y de los repuestos que les son apropiados.
• Los repuestos se adquieren de proveedores locales y del exterior (la tienda en ocasiones
realiza importaciones directas). De los proveedores se debe guardar un código de
identificación, su nombre, y un indicador de si es local o del extranjero.
• Cada proveedor puede suministrar uno o más repuestos, y la tienda puede adquirir el
mismo repuesto de más de un proveedor. Diferentes proveedores pueden ofrecer el
mismo repuesto a precios diferentes.
• La tienda desea también guardar registro de las ventas efectuadas a sus clientes. Cada
transacción de venta tiene un identificador único, se realiza en una fecha a un
determinado cliente. En una venta un cliente adquiere una cantidad variable de uno o
más repuestos.
• Los clientes también están adecuadamente codificados, y se guarda de ellos el nombre
completo y la dirección.

En base a las especificaciones alcanzadas obtenga un esquema relacional normalizado hasta


en 4FN para el conjunto de elementos de datos indicado a continuación, indicando claramente
las dependencias funcionales trabajadas en cada paso.

Atributo Definición
Nu_AñoVehiculo Año de fabricación del vehículo
Ss_Precio Precio al que un proveedor ofrece un determinado repuesto
Código de identificación del cliente que adquiere repuestos en la tienda,
Co_Cliente
único absoluto)
Código de identificación de la marca fabricante de repuestos y / o vehículos
Co_Marca
(único absoluto).
Código de identificación del proveedor de repuestos automotrices (único
Co_Proveedor
absoluto)
Co_Repuesto Código de identificación del repuesto automotriz (único absoluto)
Co_Vehiculo Código de identificación de un tipo de vehículo (único absoluto)

6
UPC
DISEÑO DE BASES DE DATOS

Atributo Definición
Código de identificación de una transacción de venta de la tienda (único
Co_Venta
absoluto).
Fe_Venta Fecha en que se realiza la venta
Fl_Local Indica si el proveedor es nacional o del extranjero
No_Cliente Nombre y apellidos del cliente
No_Marca Nombre de la marca
No_Modelo Nombre del modelo de vehículo
No_Proveedor Nombre del proveedor de repuestos
No_Repuesto Nombre del repuesto (bujía, distribuidor, filtro de aceite, arrancador, etc.)
No_TipoRepuesto Tipo de repuesto
Unidades vendidas de un determinado repuesto en una transacción de
Qt_Unidades
venta.
Tx_DirecCliente Dirección del cliente

Nu_AñoVehiculo
Ss_Precio
Co_Cliente
Co_Marca
Co_Proveedor
Co_Repuesto
Co_Vehiculo
Co_Venta
Fe_Venta
Fl_Local
No_Cliente
No_Marca
No_Modelo
No_Proveedor
No_Repuesto
No_TipoRepuesto
Qt_Unidades
Tx_DirecCliente

Determinantes:
(Co_Cliente, Co_Marca, Co_Proveedor, Co_Repuesto, Co_Vehiculo, Co_Venta)

7
UPC
DISEÑO DE BASES DE DATOS

PK: (Co_Proveedor, Co_Repuesto, Co_Vehiculo, Co_Venta)

R: (Nu_AñoVehiculo, Ss_Precio, Co_Cliente, Co_Marca, Co_Proveedor, Co_Repuesto,


Co_Vehiculo, Co_Venta, Fe_Venta, Fl_Local, No_Cliente, No_Marca, No_Modelo,
No_Proveedor, No_Repuesto, No_TipoRepuesto, Qt_Unidades, Tx_DirecCliente)

TRATAMIENTO DE LAS DMV:


REPUESTO PARA VEHICULO: (Co_Repuesto, Co_Vehiculo)

TRATAMIENTO DE LAS DFC:


No hay ningún atributo no clave en R que dependa de la clave completa. Trabajamos las
dependencias por cada parte de la clave:
REPUESTO POR PROVEEDOR: (Co_Proveedor, Co_Repuesto, Ss_Precio)
REPUESTOS POR VENTA: (Co_Venta, Co_Repuesto, Qt_Unidades)
REPUESTO: (Co_Repuesto, No_Repuesto, No_TipoRepuesto, Co_Marca, No_Marca)
PROVEEDOR: (Co_Proveedor, No_Proveedor, Fl_Local)
VEHÍCULO: (Co_Vehiculo, Co_Marca, No_Marca, No_Modelo, Nu_AñoVehiculo)
VENTA: (Co_Venta, Fe_Venta, Co_Cliente, No_Cliente, Tx_DirecCliente)

TRATAMIENO DE LAS DT
De la relación REPUESTO:
REPUESTO (1): (Co_Repuesto, No_Repuesto, No_TipoRepuesto, Co_Marca)
MARCA: (Co_Marca, No_Marca)

De la relación VEHÍCULO:
VEHÍCULO (1): (Co_Vehiculo, Co_Marca, No_Modelo, Nu_AñoVehiculo)
MARCA: (Co_Marca, No_Marca)

De la relación VENTA:
VENTA (1): (Co_Venta, Fe_Venta, Co_Cliente)
CLIENTE: (Co_Cliente, No_Cliente, Tx_DirecCliente)

CONJUNTO SOLUCIÓN:
{ REPUESTO PARA VEHICULO, REPUESTO POR PROVEEDOR, VENTA (1), REPUESTOS
POR VENTA, PROVEEDOR, REPUESTO (1), MARCA, VEHÍCULO (1), CLIENTE }

También podría gustarte