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

Empresa

TELECOMUNICACIONES
CALLTEL
Tiene
Sedes
Dispositivo
Vendedor
Clientes
codigocliente
DocumentoCliente
Nombre
Direccion
Telefono
Coordina
Codigosede
Codigo
Dispositivo
Supervisor
Empleados
Compra
Alquila
Puntos de Venta
Traslados
Pais
Ciudad
Codigo
sede
Sistema
Gestor de BD
MYSQL
Modelo
Conceptual
Modelo
Relacional
Normalizado
PLANTEAMIENTO DE
LA EMPRESA CALLTEL
PARA ORGANIZAR SU
INFORMACION
BASE DE DATOS
CALLTEL
Sede
1
Repara

FechaAlquiler
FechaDevolucin

Vende

Alquila

Dispositivo
Vendedor
Cliente
Idcliente
NIT
CC
pasaporte

Nombre
Direccion
Telefono
Coordina
IdCargo
Idsede
N
IdDispositivo
Supervisor
IdCargo
Empleado
Por cargo
Compra
Alquila
FechaAlquiler

FechaDevolucin

Empresa
Por
vinculo
Por
Ubicacion
Punto de Venta
Idsede
1
1
1
N Traslada

FechaTraslado
Pais
Ciudad
FechaCompra
1
N
FechaVenta
FechaReparacion
Pertenece
N 1
Modelo
Conceptual
Modelo Relacional
Normalizado hasta 3FN
CLIENTES
IdCLIENTE
DNICLIENTE
NOMBRES
APELLIDOS
TELEFONO
EMAIL
DIRECCION
DISPOSITIVOS
IdDISPOSITIVO
NUMREFDISPOSITIVO
IdESTADO
NOMBRE
PRECIODISP
FECHAINICIOENSEDE
FECHAFINALENSEDE


TRANSACCIONES
IdTRANSAC
IdCLIENTE
IdDISPOSITIVO
IdSERVICIO
IdTRABAJADOR
IdSEDE
IdDOCUMENTO
IdTIPOTRANSAC
TOTALTRANSAC
FECHAINICIO
FECHAFIN
SEDE
IdSEDE
IdDISPOSITIVO
PAIS
CIUDAD
PUNTODEVENTA
IdPUNTOVENTA
IdSEDE
DOCUMENTO
IdDOCUMENTO
IdTRANSAC
NOMBREDOC
FECHADOC
TRABAJADORES
IdTRABAJADOR
IdCARGO
NOMBRESTRABAJADOR
APELLIDOSTRAB
GENERO
FECHAINGRESO
FECHARETIRO
REFDISPOSITIVO
NUMREFDISPOSITIVO
NOMBREREFERENCIA
IdCARGO
NOMBRECARGO
CARGOS
TIPOTRANSACCION
IdTIPOTRANSAC
IMPUESTO
SERVICIO
IdSERVICIO
NOMBRESERVICIO
PRECIO
ESTADODISPOSITIVO
IdESTADO
ESTADO
Diccionario de datos
Explicacin de la normalizacin
Normalizacin: 1N Primera Forma Normal
MIS ATRIBUTOS YA TIENEN VALORES ATOMICOS Y CADA TABLA TIENE POR
LO MENOS UNA LLAVE PRIMARIA POR LO TANTO ESTAN EN 1FN
NO DEBE EXISTIR DEPENDENCIAS PARCIALES. TODOS LOS ATRIBUTOS NO
CLAVE DEBEN DEPENDER POR COMPLETO DE LA CLAVE PRIMARIA.
NINGUN VALOR PUEDE DEPENDER DE OTRO
PRIMERA FORMAL NORMAL (1FN)
Al examinar estos registros, podemos darnos cuenta que contienen un grupo repetido para
NUMREFDISPOSITIVO, NOMBREDISP, CANT y PRECIODISP.
La 1FN prohbe los grupos repetidos, por lo tanto tenemos que convertir a la primera forma
normal. Los pasos a seguir son:
Tenemos que eliminar los grupos repetidos.
Tenemos que crear una nueva tabla con la PK de la tabla base y el grupo repetido.
Los registros quedan ahora conformados en dos tablas que llamaremos
TRANSACCIONES y DISPOSITIVOS
IdTRANS
ACCION
FECHA IdCLIEN
TE
NOMBRESCLI
ENTE
ESTADODISP NUMREFDI
SPOSITIVO
NOMBREDISPOS
ITIVO
CANT PRECIODISP TOTALTRA
NSACCION
1 20/01/13 1 SANDRA ALQUILADO 3110 DECO DVR HD 1 100000 100000
2 10/02/13

2 CARLOS
ALBERTO
EN
MANTENIMIE
NTO
3120 DECO DVR MINI 2 50000 100000
3 15/03/13

3 DIANA
MARCELA
DISPONIBLE
PARA VENTA
3130 DECO DVR
FULLHD
5 150000 750000
IdTRA
NSAC
FECHA IdCLIENTE NOMBRESCLI
ENTE
1 20/01/13 1 SANDRA
2 10/02/13

2 CARLOS
ALBERTO
3 15/03/13

3 DIANA
MARCELA
IdTRANS
ACCION
ESTADOD
ISP
NUMREF
DISPOSIT
IVO
NOMBRE
DISPOSIT
IVO
CAN
T
PRECIODISP TOTALTRA
NSACCION
1 ALQUILA
DO
3110 DECO
DVR HD
1 100000 100000
2 EN
MANTENI
MIENTO
3120 DECO
DVR MINI
2 50000 100000
3 DISPONIB
LE PARA
VENTA
3130 DECO
DVR
FULLHD
5 150000 750000
TRANSACCIONES DISPOSITIVOS
TRANSACCIONES
SEGUNDA FORMAL NORMAL (2FN)
Ahora procederemos a aplicar la segunda formal normal, es decir, tenemos que eliminar
cualquier columna no llave que no dependa de la llave primaria de la tabla. Los pasos a seguir
son:
Determinar cules columnas que no son llave no dependen de la llave primaria de la tabla.
Eliminar esas columnas de la tabla base.
Crear una segunda tabla con esas columnas y la(s) columna(s) de la PK de la cual dependen.

La tabla TRANSACCIONES est en 2FN. Cualquier valor nico de ID_TRANSACCION determina un
slo valor para cada columna. Por lo tanto, todas las columnas son dependientes de la llave
primaria ID_TRANSACCION.

Por su parte, la tabla TRANSACCIONES DISPOSTIVOS no se encuentra en 2FN ya que las
columnas PRECIODISP y NOMBREDISP son dependientes de NUMREFDISPOSITIVO, pero no son
dependientes de ID_TRANSACCION. Lo que haremos a continuacin es eliminar estas columnas
de la tabla TRANSACCIONES DISPOSTIVOS y crear dos tablas con dichas columnas y las llaves
primarias de la que dependen.

Las tablas quedan ahora de la siguiente manera.
IdTRANS
ACCION
IdESTAD
ODISPOSI
TIVO
NUMREF
DISPOSIT
IVO
NOMBRE
DISPOSIT
IVO
CAN
T
TOTALTRA
NSACCION
1 1 3110 DECO
DVR HD
1 100000
2 2 3120 DECO
DVR MINI
2 100000
3 3 3130 DECO
DVR
FULLHD
5 750000
TRANSACCIONES DISPOSITIVOS
NUMREF
DISPOSIT
IVO
NOMBRE
DISPOSIT
IVO
CAN
T
PRECIODISP
3110 DECO
DVR HD
1 100000
3120 DECO
DVR MINI
2 50000
3130 DECO
DVR
FULLHD
5 150000
DISPOSITIVOS
IdESTADODISP
OSITIVO
ESTADODISPOS
ITIVO

1 ALQUILADO
2 EN
MANTENIMIEN
TO
3 DISPONIBLE
PARA VENTA
ESTADO
DISPOSITIVO
IdREFDISPOSITI
VO
NUMREFDISPO
SITIVO

1 ALQUILADO
2 EN
MANTENIMIEN
TO
3 DISPONIBLE
PARA VENTA
NUMREFDISPOSITIVO
TERCERA FORMAL NORMAL (3FN)
La tercera forma normal nos dice que tenemos que eliminar cualquier columna no llave que sea
dependiente de otra columna no llave. Los pasos a seguir son:
Determinar las columnas que son dependientes de otra columna no llave.
Eliminar esas columnas de la tabla base.
Crear una segunda tabla con esas columnas y con la columna no llave de la cual son
dependientes.

Al observar las tablas que hemos creado, nos damos cuenta que tanto la tabla DISPOSITIVOS,
como la tabla TRANSACCIONES se encuentran en 3FN. Sin embargo la tabla TRANSACCIONES no
lo est, ya que NOMBRESLIENTE y ESTADO son dependientes de ID_CLIENTE, y esta columna no
es la llave primaria.

Para normalizar esta tabla, moveremos las columnas no llave y la columna llave de la cual
dependen dentro de una nueva tabla CLIENTES. Las nuevas tablas CLIENTES y TRANSACCIONES
se muestran a continuacin.
IdTRA
NSAC
FECHA IdCLIENTE
1 20/01/13 1
2 10/02/13

2
3 15/03/13

3
TRANSACCIONES
IdCLIENTE NOMBRESCLI
ENTE
1 SANDRA
2 CARLOS
ALBERTO
3 DIANA
MARCELA
CLIENTES
SENTENCIAS SQL CREACION DE LAS TABLAS
CREACION TABLA CLIENTES
create table clientes (
idCLIENTE INT(10) NOT NULL PRIMARY KEY
dniCLIENTE INT(15) NOT NULL,
NOMBRESCLIENTE VARCHAR(30) NOT NULL,
APELLIDOSCLIENTE VARCHAR(30) NOT NULL,
TELEFONO VARCHAR(15),
EMAIL VARCHAR(30),
DIRECCION VARCHAR(30));
CREACION TABLA DISPOSITIVOS
create table dispositivos (
idREFDISPOSITIVO INT(10) NOT NULL PRIMARY KEY,
NOMBREDISPOSITIVO VARCHAR(30) NOT NULL,
PRECIOCOMPRADISP INT(10) NOT NULL,
FECHAINICIOSEDE DATE NOT NULL,
FECHAFINSEDE DATE NOT NULL);
CREACION TABLA ESTADO DISPOSITIVO
create table estadodispositivo (
idESTADODISPOSITIVO INT(10) NOT NULL PRIMARY KEY
ESTADO VARCHAR(15) NOT NULL);
CREACION TABLA REFDISPOSITIVO
create table refdispositivo (
idREFDISPOSITIVO INT(10) NOT NULL PRIMARY KEY,
NUMREFDISPOSITIVO VARCHAR(10) NOT NULL);
CREACION TABLA DOCUMENTO CONTABLE
create table doccontable (
idDOCCONTABLE INT(10) NOT NULL PRIMARY KEY,
NOMBREDOC VARCHAR(30) NOT NULL,
FECHADOC DATE NOT NULL);
CREACION TABLA SERVICIO
create table servicio (
idSERVICIO INT(10) NOT NULL PRIMARY KEY,
NOMBRESERVICIO VARCHAR(15) NOT NULL,
PRECIO SERVICIO INT(10) NOT NULL);
CREACION TABLA TRABAJADORES
create table trabajadores (
idTRABAJADOR INT(10) NOT NULL PRIMARY KEY,
NOMBRETRAB VARCHAR(30) NOT NULL,
APELLIDOSTRAB VARCHAR(30) NOT NULL,
GENERO VARCHAR(15) NOT NULL,
FECHAINGRESO DATE NOT NULL,
FECHARETIRO DATE NOT NULL);
CREACION TABLA CARGO
create table cargo (
idCARGO INT(10) NOT NULL PRIMARY KEY,
NOMBRECARGO VARCHAR(15) NOT NULL);
CREACION TABLA SEDE
create table sede (
idSEDE INT(10) NOT NULL PRIMARY KEY,
PAIS VARCHAR(15) NOT NULL,
CIUDAD VARCHAR(15) NOT NULL);
CREACION TABLA PUNTODEVENTA
create table puntodeventa (
idPUNTOVENTA INT(10) NOT NULL PRIMARY KEY,
NOMBREPUNTOVENTA VARCHAR(15) NOT NULL);
CREACION TABLA TIPOTRANSACCION
create table tipotransaccion (
idTIPOTRANSACCION INT(10) NOT NULL PRIMARY KEY,
IMPUESTO INT(15) NOT NULL);
CREACION TABLA TRANSACCIONES
create table transacciones (
idTRANSACCION INT(10) NOT NULL PRIMARY KEY,
TOTALTRANSAC INT(15) NOT NULL,
CANTDISPOSITIVO INT(10) NOT NULL,
FECHAINICIO DATE NOT NULL,
FECHAFIN DATE NOT NULL);
Alter table transacciones add foreign key (idSERVICIO) references servicio(idSERVICIO);
Alter table transacciones add foreign key (idTRABAJADOR) references
trabajadores(idTRABAJADOR);
Alter table transacciones add foreign key (idSEDE) references sede(idSEDE);
Alter table transacciones add foreign key (idDOCCONTABLE) references
doccontable(idDOCCONTABLE);
Alter table transacciones add foreign key (idTIPOTRANSACCION) references
tipotransaccion(idTIPOTRANSACCION);
CREACION CLAVES FORANEAS
Alter table dispositivos add foreign key (idREFDISPOSITIVO) references
refdispositivo(idREFDISPOSITIVO);
Alter table dispositivos add foreign key (idESTADODISPOSITIVO) references
estadodispositivo(idESTADODISP);
Alter table doccontable add foreign key (idTRANSACCION) references
doccontable(idTRANSACCION);
Alter table trabajadores add foreign key (idCARGO) references cargo(idCARGO);
Alter table sede add foreign key (idDISPOSITIVO) references dispositivo(idDISPOSITIVO);
Alter table puntodeventa add foreign key (idSEDE) references sede(idSEDE);
Alter table transacciones add foreign key (idCLIENTE) references clientes(idCLIENTE);
Alter table transacciones add foreign key (idDISPOSITIVO) references
dispositivos(idDISPOSITIVO);
Alter table transacciones add foreign key (idDISPOSITIVO) references
dispositivos(idDISPOSITIVO);

Вам также может понравиться