sentencias sql creacion tablas y claves primarias y foraneas

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

Upload: gioherca

Post on 07-Feb-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 1/14

 Empresa

TELECOMUNICACIONES

CALLTEL

Tiene

SedesDispositivo

VendedorClientes

codigocliente

 DocumentoCliente Nombre

 Direccion

Telefono

Coordina

CodigosedeCodigo

 Dispositivo

Supervisor

Empleados

Compra

Alquila

Puntos de VentaTraslados

 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

Page 2: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 2/14

Sede

1

Repara

 FechaAlquiler

 FechaDevolución

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

 FechaDevolución

Empresa

 Por

vinculo

 Por

Ubicacion

Punto de Venta

 Idsede

1 1

1N Traslada

 FechaTraslado

 Pais

Ciudad

 FechaCompra

1

N

 FechaVenta FechaReparacion

 PerteneceN1

Modelo

Conceptual

Page 3: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 3/14

Modelo Relacional

Normalizado hasta 3FN

CLIENTES

IdCLIENTE

DNICLIENTENOMBRES

APELLIDOS

TELEFONO

EMAIL

DIRECCION

DISPOSITIVOS

IdDISPOSITIVONUMREFDISPOSITIVO

IdESTADO

NOMBRE

PRECIODISPFECHAINICIOENSEDE

FECHAFINALENSEDE

TRANSACCIONES

IdTRANSAC

IdCLIENTE

IdDISPOSITIVO

IdSERVICIO

IdTRABAJADOR

IdSEDE

IdDOCUMENTO

IdTIPOTRANSAC

TOTALTRANSACFECHAINICIO

FECHAFIN

SEDE

IdSEDEIdDISPOSITIVO

PAIS

CIUDAD

PUNTODEVENTA

IdPUNTOVENTA

IdSEDE

DOCUMENTO

IdDOCUMENTO 

IdTRANSAC

NOMBREDOC

FECHADOC

TRABAJADORES

IdTRABAJADOR

IdCARGONOMBRESTRABAJADOR

APELLIDOSTRAB

GENERO

FECHAINGRESOFECHARETIRO

REFDISPOSITIVO

NUMREFDISPOSITIVO

NOMBREREFERENCIA

IdCARGO

NOMBRECARGO

CARGOS

TIPOTRANSACCION

IdTIPOTRANSACIMPUESTO

SERVICIO

IdSERVICIONOMBRESERVICIO

PRECIO

ODISPOSITIVO

IdESTADO

ESTADO

Page 4: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 4/14

Diccionario de datos

E li ió d l li ió

Page 5: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 5/14

Explicación de la normalización

N li ió 1N P i F N l

Page 6: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 6/14

Normalización: 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

Page 7: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 7/14

PRIMERA FORMAL NORMAL (1FN) 

Al examinar estos registros, podemos darnos cuenta que contienen un grupo repetido para

NUMREFDISPOSITIVO, NOMBREDISP, CANT y PRECIODISP.La 1FN prohíbe 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

MANTENIMIENTO

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 DISPOSITIVOSTRANSACCIONES

Page 8: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 8/14

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 cuáles 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

sólo 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 continuación es eliminar estas columnasde 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 DECODVR

FULLHD

5 150000

DISPOSITIVOS

IdESTADODISP

OSITIVO

ESTADODISPOS

ITIVO

1 ALQUILADO

2 ENMANTENIMIEN

TO

3 DISPONIBLE

PARA VENTA

ESTADO

DISPOSITIVO

IdREFDISPOSITI

VO

NUMREFDISPO

SITIVO

1 ALQUILADO

2 ENMANTENIMIEN

TO

3 DISPONIBLE

PARA VENTA

NUMREFDISPOSITIVO

TERCERA FORMAL NORMAL (3FN)

Page 9: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 9/14

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 TRANSACCIONESse muestran a continuación.

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

Page 10: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 10/14

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);

Page 11: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 11/14

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

Page 12: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 12/14

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);

Page 13: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 13/14

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);

Page 14: Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

7/21/2019 Sentencias SQL Creacion Tablas y Claves Primarias y Foraneas

http://slidepdf.com/reader/full/sentencias-sql-creacion-tablas-y-claves-primarias-y-foraneas 14/14

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);