Está en la página 1de 5

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Industrial


EII-210 Arquitectura de sistemas de software
Prof. Claudio Cubillos - Franco Guidi Problemas
Diseño de Bases de Datos Relacionales
Se pide expresar el esquema de la base de datos relacional expresado en 3ª forma normal para los problemas descritos. En el
esquema debe identificar claramente las claves primarias y las claves foráneas.

Problema 1 (incluye desarrollo explicado)

Se pide diseñar la base de datos de un sistema integrado de reserva de buses para la Asociación Nacional de Buses
Interprovinciales.
El sistema administrará centralizadamente la venta de pasajes para distintas compañías de buses. Las compañías se
distinguen por un código, y poseen un nombre y una ciudad de origen de la compañía.
Los buses realizan viajes directos entre distintos terminales. Los terminales se reconocen por un código, y poseen una ciudad
de ubicación.
El sistema mantiene la planificación de los viajes. Cada viaje se distingue por su fecha y código de ruta, los cuales determinan
a la compañía de buses que ejecuta el servicio, la hora de partida del bus, el terminal de origen, el terminal de destino. Cabe
desatacar que el código de ruta determina por si solo a la compañía de buses, el terminal de origen, el terminal de destino y el
precio del pasaje. La figura 1 muestra una pantalla correspondiente al listado de viajes programados.
Los pasajes que generará este sistema tendrán impreso un número de pasaje (identificador), el nombre y rut del pasajero, los
datos del viaje, y el precio del pasaje. Por su parte el Rut del pasajero determina el nombre del mismo. La figura 2 muestra un
ejemplo de pasaje.

VIAJES PROGRAMADOS PASAJE


Fecha: 27/10/2006 Fecha: 27/10/2006 Nº 112122
Cod. Term. Origen Term. Destino Hora Empresa
L-100 VALPARAISO LINARES 12:01 Buses López Pasajero: RUT: 1111111-k Nombre: Juan Pérez
R-105 VALPARAISO RANCAGUA 12:05 Contrabuses
A-503 VALPARAISO LA SERENA 12:20 Interbuses Viaje:
Código ruta: R-105
… Código viaje: R-105
Fecha: 27/10/2006 Fecha: 27/10/2006 Hora: 12:05
Cod. Term. Origen Term. Destino Hora Empresa
R-105 VALPARAISO RANCAGUA 12:01 Contrabuses Terminal origen: VALPARAISO
R-205 VALPARAISO ARICA 12:12 Aribuses Terminal destino: RANCAGUA
Compañía: Contrabuses

Total a pagar: $ 6.500.-

Fig 1.: Listado de viajes programados Fig 2: Pasaje

Desarrollo

Análisis de los diferentes antecedentes:

1) “Las compañías se distinguen por un código, y poseen un nombre y una ciudad de origen de la
compañía.“

En esta frase se identifica la existencia de la relación COMPAÑíA con sus atributos:

COMPAÑÍA( cód_compañía, nombre, ciudad de origen)


2) “Los buses realizan viajes directos entre distintos terminales. Los terminales se reconocen por un
código, y poseen una ciudad de ubicación.”

De aquí se desprende la existencia de una relación TERMINAL:

TERMINAL(cód_terminal, ciudad)

3) “El sistema mantiene la planificación de los viajes. Cada viaje se distingue por su fecha y código
de ruta, los cuales determinan a la compañía de buses que ejecuta el servicio, la hora de partida del
bus, el terminal de origen, el terminal de destino”.

VIAJE(fecha, cód_ruta, cód_compañía, hora_partida, cód_terminal_orig, cód_terminal_dest)

4) “Cabe desatacar que el código de ruta determina por si solo a la compañía de buses, el terminal
de origen, el terminal de destino y el precio del pasaje.”

Es decir, si volvemos sobre la relación anterior (no considerando por el momento el precio del
pasaje), observamos que hay una dependencia parcial de la clave primaria :

VIAJE(fecha, cód_ruta, cód_compañía, hora_partida, cód_terminal_orig, cód_terminal_dest)

Los atributos cód_comañía, cód_terminal_orig y cód_terminal_dest dependen parcialmente de la


clave primaria, pues la clave primaria de la relación es fecha+cod_ruta, en tanto que los atributos
descritos se encuentran determinados funcionalmente sólo por cód_ruta. Por esta razón, la relación
VIAJE no se encuentra en 2ª Forma Normal. Para resolver el problema, se debe separar la relación
en dos relaciones, de forma tal que las relaciones resultantes sólo cuenten con atributos no claves
que dependan completamente de sus respectivas claves primarias. Es decir:

VIAJE(fecha, cód_ruta, hora_partida)


RUTA(cód_ruta, cod_compañía, cód_terminal_orig, cód_terminal_dest)

A lo anterior debemos agregar el atributo precio del pasaje, el cual depende sólo del código de ruta:

VIAJE(fecha, cód_ruta, hora_partida)


RUTA(cód_ruta, cód_compañía, cód_terminal_orig, cód_terminal_dest, precio)

5) “Los pasajes que generará este sistema tendrán impreso un número de pasaje (identificador), el
rut y nombre del pasajero, los datos del viaje, y el precio del pasaje”.

Lo anterior genera una tabla PASAJE, con número_pasaje como clave. El número_pasaje
determina el rut y nombre del pasajero. También determina los datos del viaje y el precio. Como los
datos del viaje se encuentran descritos en la relación VIAJE, incorporamos dentro de los atributos de
PASAJE sólo a los atributos que conforman la clave de la relación VIAJE (es decir, fecha y
cód_ruta). Cabe mencionar que cód_ruta es la clave de RUTA, desde donde podemos obtener el
precio del pasaje. Por lo anterior, la relación PASAJE queda, por el momento, de la siguiente forma:

PASAJE(número_pasaje, rut, nombre, fecha, cód_ruta)


6) “Por su parte el Rut del pasajero determina el nombre del mismo”.

Lo anterior nos pone en evidencia que en la relación PASAJE existe una dependencia transitiva de
un atributo no clave respecto de otro:

PASAJE(número_pasaje, rut, nombre, fecha, cod_ruta)

El atributo nombre depende transitivamente de la clave primaria, a través del atributo rut. En otras
palabras, el atributo clave número_pasaje determina a los atributos no claves rut y nombre, pero, a
su vez, rut (que no es clave de la relación PASAJE) determina también al atributo nombre. Por esta
razón la relación PASAJE no se encuentra en 3ª Forma Normal. El problema se resuelve separando
las dependencias transitivas en otra tabla, que hemos denominado PERSONA:

PASAJE(número_pasaje, rut, fecha, cod_ruta)


PERSONA(rut, nombre)

A partir de todo el desarrollo anterior, hemos obtenido finalmente la siguiente base de datos del
SISTEMA DE RESERVA DE PASAJES en 3ª Forma Normal:

COMPAÑÍA( cód_compañía, nombre, ciudad de origen)


TERMINAL(cód_terminal, ciudad)
VIAJE(fecha, cód_ruta, hora_partida)
RUTA(cód_ruta, cód_compañía, cód_terminal_orig, cód_terminal_dest)
PASAJE(número_pasaje, rut, fecha, cod_ruta)
PERSONA(rut, nombre)

En las tablas de esta base de datos, se identifican las siguientes claves foráneas:

a) En la tabla VIAJE:
- cód_ruta es clave foránea que va hacia RUTA.

b) En la tabla RUTA:
- cód_compañia es clave foránea que va hacia COMPAÑíA.
- cód_terminal_orig es clave fóranea que va hacia TERMINAL.
- cód_terminal_dest es clave fóranea que va hacia TERMINAL.

c) En tabla PASAJE:
- rut es clave foránea que va hacia PERSONA.
- fecha+cód_ruta es clave foránea que va hacia VIAJE.
- cód_ruta es clave foránea que va hacia RUTA.
Problemas propuestos

Problema 2

Se desea desarrollar un sistema informático para apoyar el


negocio de una empresa que arrienda vehículos a sus ACME, INC.
Nº 0162353
clientes. La figura muestra el contrato de arriendo que deberá CONTRATO DE ARRIENDO
ser generado por este sistema. DATOS CLIENTE:
Los contratos de arriendo se identifican por un número, y RUT: 1.111.111-3 Razón Social: COYOTE Y ASOCIADOS
contienen datos del cliente, del vehículo y del mismo Código Sector: CN Nombre Sector: Costanera Norte
arriendo. Por razones comerciales, la empresa ha
PERIODO ARRIENDO:
estandarizado los sectores geográficos de proveniencia de Fecha inicio: 25/05/2006 Fecha término: 26/05/2006
sus clientes, asignándole a cada sector un código
identificador. Asimismo, mantiene a sus vehículos DATOS DEL VEHICULO:
Código Categoría: MV Nombre Categoría : MINIVAN
clasificados por categoría. Cada categoría es identificada por Patente: YO-1234 Marca: Ferrari
un tipo y tiene un nombre.
La empresa mantiene además un historial de reparaciones, Total a pagar: $ 110.000.-
con todas las reparaciones que se han hecho a cada
vehículo. Las reparaciones se identifican por la patente del vehículo junto con un número correlativo, que se inicia en 1 para
cada vehículo. Las reparaciones tienen una fecha de reparación y un nombre de falla registrada.

Problema 3

Se deberá diseñar la base de datos del sistema de concesión de autopistas urbanas de la capital. En estas autopistas el
derecho a uso por parte de los automovilistas exige que los vehículos se encuentren equipados con dispositivos electrónicos
de reconocimiento que operan por radiofrecuencia, denominados Tags. Las autopistas cuentan con diversos pórticos a lo largo
de ellas. Cada pórtico tiene diversos sensores (uno por cada pista de circulación) que son capaces de leer la información
almacenada en los tags, cuando los vehículos circulan bajo ellos.
En este sistema se reconocen diferentes empresas concesionarias de la administración de autopistas. Una concesionaria se
identifica por un código, tiene un nombre, y puede poseer varias autopistas bajo su administración. Una autopista, sin
embargo, es administrada por una única concesionaria. Cada autopista tiene un código de ruta que la identifica, un nombre y
una longitud en kilómetros.
Las autopistas poseen varios pórticos. Cada pórtico se reconoce, al interior de una autopista, mediante un código de pórtico
(sin embargo, en distintas autopistas puede haber pórticos distintos, pero con el mismo código de pórtico). Cada pórtico tiene
una fecha de puesta en marcha.
El sistema registra información de los vehículos. Cada vehículo se reconoce por su código de Tag, el cual determina la
patente, la marca y el modelo del vehículo, así como también, el RUT y nombre del propietario del vehículo. Se sabe que la
patente, por si sola, determina la marca y modelo del vehículo. El RUT, por su parte, determina el nombre del propietario del
vehículo.
Cada vez que un vehículo pasa bajo un pórtico, el pórtico lee el código de Tag, y queda registrado en el sistema la
identificación del pórtico, el número de tag, el número de pista de circulación, la fecha y la hora en que se produce el paso.
Cabe mencionar que por un determinado pórtico, en una determinada pista, en una fecha y hora específica puede pasar un
único vehículo.
Problemas más desafiantes

Problema 4

Se desea construir un sistema que apoye la gestión de los diversos proyectos que debe ejecutar una organización. Un
proyecto contiene múltiples actividades a realizar, genera diversos resultados e involucra el trabajo de diversas personas.
El sistema deberá generar una Carta Gantt de cada proyecto como se muestra en la figura de la derecha. La Carta Gantt
permite visualizar las actividades del proyecto a lo largo del tiempo (barras), y los resultados asociados a la realización de
ciertas actividades (rombos).
En este cada proyecto es identificado por un código de proyecto. Cada proyecto posee un nombre y una fecha de inicio.
Cada proyecto tiene sus propias actividades. A cada
CARTA GANTT
actividad se le asigna un número correlativo que
permite identificarla dentro de un proyecto, sin Proyecto: XMZ1 –Abrelatas
Actividades
embargo, pueden existir dos actividades distintas, en Resultado: 1. Proyecciones de demanda
proyectos distintos, a los cuales se les asigne el 1.ANALISIS MERCADO
mismo correlativo. Las actividades poseen, además,
2.ESTUDIO PRODUCTO
una descripción y una duración proyectada. Cada
3.ESTUDIO MATERIALES
actividad puede tener un número indefinido de 4.ANALISIS TECNICO Resultado: 2. Especificación técnica

actividades predecesoras, esto es, actividades del 5.ELABORACION


ESPECIFICACION
mismo proyecto que deben ser completadas antes 6.INVESTIGACION
Resultado: 3. Plan comercial
de que la sucesora pueda ejecutarse. El sistema
debe ser capaz de registrar las actividades 7.ELABORACION PLAN
predecesoras de una actividad dada. Cualquier Fechas
actividad puede ser predecesora de otra actividad del
mismo proyecto.
El sistema debe ser capaz de registrar a todo el personal de la empresa, independientemente del hecho de encontrarse
asignados a un proyecto o no. Adicionalmente, es necesario identificar al personal de la empresa que se encuentre asignado a
un proyecto, considerando que una persona puede trabajar en múltiples proyectos. Cada persona se identifica por un RUT y
posee un nombre y una profesión.
Finalmente el sistema deberá registrar los resultados. Los resultados se identifican por un número correlativo dentro del
proyecto, poseen una descripción, y se encuentran asociados a una única actividad.

Problema 5

Se debe diseñar la base de datos de un sistema de planificación de producción para una empresa procesadora de frutas.
Este sistema registra las órdenes de procesamiento requeridas por sus clientes. Cada orden se identifica por un número de
orden y posee un código de cliente, un nombre de cliente, una dirección de cliente, y una fecha de emisión de la orden.
Se sabe que el código de cliente determina el nombre y la dirección del mismo.
Una orden de procesamiento puede especificar requerimientos de varias frutas, donde las frutas se identifican mediante un
código de fruta. Particularmente, se sabe que del número de orden y del código de fruta (en conjunto) dependen
funcionalmente el nombre de la fruta, el color de la fruta, el precio por kilogramo y la cantidad de kilogramos de frutas
requeridas por el cliente. Asimismo, se sabe que del código de fruta, por si solo, dependen funcionalmente el nombre de fruta,
el color de la misma y el precio por kilogramo.
El sistema de planificación de producción será capaz de almacenar varios planes de producción alternativos. Un plan se
identifica por un número de plan y posee una fecha de creación. Cada plan contiene una secuencia de órdenes de
procesamiento para ser elaboradas, bajo la restricción de que a la vez es posible procesar una sola orden.

También podría gustarte