Your SlideShare is downloading. ×
1
PROYECTO                “MER, MERE, MYSQL”            MARÍA ISABEL VARGAS NAVAS“INSTITUTO TOLIMENSE DE FORMACIÓN TÉCNICA P...
PROYECTO                “MER, MERE, MYSQL”            MARÍA ISABEL VARGAS NAVAS                       Docente           IN...
TABLA DE CONTENIDOIntroducciónObjetivosJustificaciónMetodologíaMarco teórico (MER, MERE)   Enunciado del problema.   Aná...
INRODUCCIÓNEl presente informe tiene como objetivo central, describir en formasucinta el proceso que se debiera seguir par...
OBJETIVOSAplicar los conceptos vistos en bases de datos diseñando       elMER, MERE, DICCIONARIOS DE DATOS Y mysql .Dar a ...
JUSTIFICACIÓNHoy en día las SGBD rigen nuestra vida y nos plantean una solución acualquier tipo problema que se nos presen...
METODOLOGÍAPrimero que todo antes de empezar este desarrollo recopileinformación suministrada por el docente, documentos, ...
ENUNCIADO DEL PROBLEMAEJERCICIOS 1 “MER ”Imagina que una agencia de seguros de tu municipio te ha solicitadouna base de da...
ANALISIS DEL PROBLEMAPRIMARY KEY = SE IDENTIFICARA DEL COLOR (KP)FOREIGN KEY = SE IDENTIFICARA DEL COLOR (KF)PERSONAS (dni...
DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACION                        11
MODELO RELACIONAL       12
SCRIPT DE MYSQLMysql>CRÉATE DATABASE ACCIDENTES;Mysql>USE ACCIDENTES;Mysql>CREATE TABLE VEHÍCULOS (MATRICULA VARCHAR (10)N...
KEY(TARJETA_DE_PROPIEDAD,                       CIUDAD_DE_EXPEDICION,MATRICULA, DNI )ENGINE= INNODB;Mysql>ALTER TABLE ACCI...
ENUNCIADO DEL PROBLEMAEJERCICIO 2.Se trata de realizar el diseño de la base de datos en el modelo E/Rpara una cadena de ho...
ANÁLISIS DEL PROBLEMAHOTELES ( nit, nombre , dirección ,año de construcción)CATEGORÍAS (nivel, IVA, descripción)HABITACION...
DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACION                        17
MODELO RELACIONAL                    18
SCRIPT MYSQLMysql>CREATE DATABASE HOTELERA;Mysql>USE HOTELERAMysql>CREATE TABLE CATEGORIA (NIVELVARCHAR (15) NOT NULL, IVA...
Mysql> ALTER TABLE HOTELERA ADD FOREIGN KEY(NIT)REFERENCES HOTELERA.HOTELES (NIT) ON DELETE NOT ACTION ON UPDATE CASCADE;M...
ENUNCIADO DEL PROBLEMAEJERCICO 3 "Se desea diseñar una base de datos para almacenar y gestionar lainformación empleada por...
ANÁLISIS DEL PROBLEMACOCHE (matricula, modelo, color, pvc ,MARCA (código, descripción)CLIENTE (nit, nombre, dirección, ciu...
DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACION                        23
MODELO RELACIONAL                    24
SCRIPT MYSQLMysql>CREATE DATABASE AUTOMOBILE;Mysql>USE AUTOMOBILE;Mysql>CREATE TABLE CLIENTES ( NIT_C INT (15) NOT NULL , ...
ENUNCIADO DEL PROBLEMAEJERCICIO 4Se desea informatizar la gestión de una tienda informática llamada ELOSITO FELIZ. La tien...
ANÁLISIS DEL PROBLEMAPRODUCTO ( código_producto, descripción, precio, n°existencia)CLIENTES ( código_c, nombre, apellidos,...
DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACION                        28
MODELO RELACIONAL       29
SCRIPT MYSQLmysql>CREATE DATABASE TIENDA;mysql>USE TIENDA;mysql> CREATE TABLE CLIENTE(CODIGO_C INT(10) NOT NULL,NOMBRE VAR...
mysql>   ALTER   TABLE   TIENDA    ADD    FOREIGNKEY(CODIGO_M)REFERENCES     TIENDA     .PRODUCTO(CODIGO_PRODUCTO) ON DELE...
ENUNCIADO DEL PROBLEMAEJERCICIO 5A partir del siguiente enunciado, diseñar el modelo entidad-relación."En la biblioteca de...
ANÁLISIS DEL PROBLEMALIBRO ( código_ libro, titulo, editorial, n° pagina)AUTOR (código_autor , nombre)EJEMPLARES ( código_...
DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACIÓN                     34
MODELO RELACIONAL                    35
SCRIPT MYSQLmysql>CREATE DATABASE BIBLIOTECA ;mysql>USE BIBLIOTECA;mysql>  CREATE TABLE LIBRO(CODIGO_LIBRO INT(10)NOT NULL...
mysql>ALTERTABLEBIBLIOTECAADDFOREIGNKEY(CODIGO_EJEMPLARES)REFERENCESBIBLIOTECA .LIBRO ( CODIGO_ERJEMPLARES) ON DELETE NOT ...
ENUNCIADO PROBLEMAEJERCICIO 6A partir del siguiente enunciado se desea realiza el modelo entidad-relación y pasarlo al mod...
ANALISIS DEL PROBLEMAVIAJEROS ( dni, nombre, dirección, teléfono)VIAJES ( código_de_viaje, numero_ plazas, fvr )ORIGEN (có...
DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACIÓN                     40
MODELO RELACIONAL                    41
SCRIPT MYSQLmysql>CREATE DATABASE AGENCIA;MYSQL>USE AGENCIA;MYSQL>CREATE TABLE VIAJEROS( DNI INT(10) NOT NULL, NOMBRE VARC...
MYSQL> ALTER TABLE AGENCIA ADD INDEX(DNI);mysql>ALTERTABLEAGENCIAADDFOREIGNKEY(DNI)REFERENCES.VIAJEROS    (DNI) ONDELETE N...
ENUNCIADO DEL PROBLEMAEJERCICIO 7.A partir del siguiente enunciado se desea realiza el modelo entidad-relación y pasarlo a...
ANÁLISIS DEL PROBLEMACOCHE (MATRICULA, MODELO, MARCA, COLOR)CLIENTE (DNI CLIENTE, NOMBRE, APELLIDOS, CIUDAD, DIRECCIÓN , T...
DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACION                     46
MODELO RELACIONAL       47
SCRIPT MYSQLmysql>CREATE DATABASE CONCESIOANRIO;MYSQL>USE CONCESIONARIO;MYSQL> CREATE TABLE FICHA_CLIENTE(DNI_F_C INT(10)N...
mysql>CREATE TABLE VIEJOSMATRICULA INT(10)NOT NULL, (, N_KILOMETROSINT(30)NOT NULL,   PRIMARY KEY( MATRICULA))ENGINE=INNOD...
ENUNCIADO DEL PROBLEMAEJERCICIO 8.A partir del siguiente enunciado se desea realiza el modelo entidad-relación y pasarlo a...
ANÁLISIS DEL PROBLEMAAPARATO ELÉCTRICO (CÓDIGO, DECRIPCION)TIPO ELECTRODOMÉSTICO (CÓDIGO_T_ ELECTRODOMEESTICO, NOMBRE,CARA...
DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACIÓN                     52
MODELO RELACIONAL       53
SCRIPT MYSQLmysql>CREATE DATABASE ELECTRODOMESTICOS;MYSQL>USE ELECTROMESTICO;MYSQL> CREATE TABLE APARATO_ELECTRODOMESTICO ...
ENUNCIADO PROBLEMAEJERCICIO 9.A partir del siguiente enunciado se desea realiza el modelo entidad-relación y pasarlo al mo...
ANÁLISIS DEL PROBLEMASOCIOS (CEDULA, NOMBRE , APELLIDOS , TELÉFONO, DIRECCIÓN, NUMERO CELULAR,CORREO ELECTRÓNICO, SALARIO ...
DISEÑO DELPROBLEMADIAGRAMA ENTIDAD RELACION                        57
MODELO RELACIONAL       58
SCRIPT MYSQLmysql>CREATE DATABASE DINERO;MYSQL>USE DINERO;MYSQL>CREATETABLE     PRESTAMO(NUMERO_PRESTAMO     INT(10)  NOT ...
mysql>VALTERTABLE DINERO ADDFOREIGNKEY(DNI) REFERENCES. CODEUDOR(      DNI)ON DELETE NOT ACTION ON UPDATE CASCADE; MYSQL> ...
ENUNCIADO DEL PROBLEMAEJERCICIO 10.A partir del siguiente enunciado se desea realiza el modelo entidad-relación y pasarlo ...
ANÁLISIS DEL PROBLEMAPOLICIA ( CEDULA, NOMBRE, CATEGORIA, NOMBE JEFEARMAS (CODIGO ARMAS, NOMBRE)DELICUENTE ( DNI, NOMBRE, ...
DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACIÓN                        63
MODELO RELACIONAL       64
SCRIPT MYSQLmysql>CREATE DATABASE COMISARIPOL;MYSQL>USE COMISARIAPOL;MYSQL>CREATE     TABLE    ARMA(CODIGO_ARMA     INT(8)...
MYSQL> ALTER TABLE COMISARIPOL ADD INDEX( CODIGO_CASO);mysql>VALTERTABLE COMISARIAPOLADDFOREIGNKEY(     CODIGO_CASO)REFERE...
ENUNCIADO PROBLEMAEJERCICIO 11.Obtén el modelo ERE, relacional: Queremos hacer una aplicación paragestionar un pequeño aer...
ANALISIS DEL PROBLEMAAVIONES ( NUMERO_AVION, COMBUSTIBLE)CLASIFICACION AVIONES (MODELO, PESO, CAPACIDAD)HANGARES (NÚMERO, ...
DISEÑO PROBLEMADIAGRAMA ENTIDAD RELACION                        69
MODELO RELACIONAL       70
SCRIPT MYSQLmysql>CREATE DATABASE AEROPUERTO;MYSQL>USE AEROPUERTOL;mysql> CREATE TABLE PERSONAS(NSS VARCHAR(12)NOT NULL,  ...
MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(MODELO);mysql>ALTERTABLE     AEROPUERTO     ADDFOREIGNKEY(MODELO)     REFERENCES.C...
MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(NSS);mysql>ALTERTABLE AEROPUERTO ADDFOREIGNKEY(NSS) REFERENCES. EMPLEADOS(NSS) ON ...
ENUNCIADO DEL PROBLEMAEJERCICIO 12.Dado el siguiente enunciado obtén el modelo ERE, relacional.Una empresa de servicios qu...
Respecto a los servicios que se prestan a otras empresas, la políticade esta empresa en considerar a parte del personal de...
DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACIÓN                        76
MODELO RELACIONAL       77
ENUNCIADO DEL PROBLEMAEJERCICIO 13.Dado el siguiente enunciado, obtén el modelo entidad-relaciónextendido, relacional.Una ...
ANALISIS DEL PROBLEMAALBAÑIL ( NSS, NOMBRE,APELLIDOS, FECHADE NACIMIENTO,NUMEROFIJO.NUMERO MOVIL)ALBAÑIL PEON( DNI, SUELDO...
DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACION                        80
MODELO RELACIONAL       81
SCRIPT MYSQLmysql>CREATE DATABASE NEGOCIO ;MYSQL>USE NEGOCIO ;mysql>CREATE TABLE CUADRILLAS(CODIGO_INTERNO INT(20)NOT NULL...
ENUNCIADO DEL PROBLEMAEJERCICIO 14.Dado el siguiente enunciado, obtén el modelo entidad-relaciónextendido, relacional.Una ...
ANÁLISIS DEL PROBLEMAPRODUCTO (CÓDIGO PRODUCTO, PV, MARCA )GAFAS (MODELO, MATERIAL FABRICACIÓN) ♥ GAFAS DE GRADUACIÓN (GRA...
DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACIÓN                     85
MODELO RELACIONAL       86
SCRIPT MYSQLmysql>CREATE DATABASE OPTICO;MYSQL>USE OPTICO ;mysql>CREATE TABLE PRODUCTOS(CODIGO_PRODUCTO INT(5)NOT NULL,PV ...
mysql>   CREATE TABLE GAFA_DE_GRADUACION(CODIGO_PRODUCTO INT(5)NOTNULL,   GRADUACION INT(10)NOT NULL, TIPO_PROBLEMA TEXT N...
89
90
Upcoming SlideShare
Loading in...5
×

Recopilacion...

297

Published on

TRABAJO MYSQL Y DICCIONARIO DE DATOS

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
297
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Recopilacion..."

  1. 1. 1
  2. 2. PROYECTO “MER, MERE, MYSQL” MARÍA ISABEL VARGAS NAVAS“INSTITUTO TOLIMENSE DE FORMACIÓN TÉCNICA PROFESIONAL” FACULTAD INGENIERÍA Y CIENCIAS AGROINDUSTRIALES BASE DE DATOS SISTEMA Y COMPUTACIÓN SEMESTRE Ill NOCTURNO ESPINAL- TOLIMA 2012 2
  3. 3. PROYECTO “MER, MERE, MYSQL” MARÍA ISABEL VARGAS NAVAS Docente ING. NAYIBE SORAYA SANCHEZ LEON“INSTITUTO TOLIMENSE DE FORMACIÓN TÉCNICA PROFESIONAL” FACULTAD INGENIERÍA Y CIENCIAS AGROINDUSTRIALES BASE DE DATOS SISTEMA Y COMPUTACIÓN SEMESTRE Ill NOCTURNO ESPINAL- TOLIMA 2012 3
  4. 4. TABLA DE CONTENIDOIntroducciónObjetivosJustificaciónMetodologíaMarco teórico (MER, MERE)  Enunciado del problema.  Análisis del problema.  Diseño del problema.  Diagrama Entidad Relación.  Modelo Relacional .  Script MYSQLContinuación  Diccionario de datos 4
  5. 5. INRODUCCIÓNEl presente informe tiene como objetivo central, describir en formasucinta el proceso que se debiera seguir para desarrollar unarecopilación de informe “BASE DE DATOS “, mostrando cada uno delos pasos que intervienen en dicho proceso.Aquí se encontrará un desglose de cada etapa de una recopilación,Bases de datos nació bajo la necesidad de organizar y crear sistemasde información a cualquier tipo de organización, para poder encualquier momento solucionar los problemas que se le presenten conayuda de la información que esta nos puede suministrar.El presente trabajo está enfocado en la aplicación de los conceptosvistos en la asignatura de base de datos durante el presentesemestre.Para el desarrollo de este trabajo he recopilado todos los talleres dedicho tema en el cual se suministrara más información explicada por laDocente. 5
  6. 6. OBJETIVOSAplicar los conceptos vistos en bases de datos diseñando elMER, MERE, DICCIONARIOS DE DATOS Y mysql .Dar a conocer lo importante que es crear o diseñar una base dedatos. es una herramienta fundamental que tiene gran utilidad ennuestro mundo actual.Distinguir como son las relaciones, y por medio de ella nosayuda a terminar el proceso que deseemos.Ver que la persona pueda comprender, interpretar y distinguir lasventajas de dicho tema. 6
  7. 7. JUSTIFICACIÓNHoy en día las SGBD rigen nuestra vida y nos plantean una solución acualquier tipo problema que se nos presenta en la vida.Pero la ciencia debe tener tanto coherencia como cohesión almomento de divulgar la información que nos suministra, esto es unabuena administración de la información.Base de datos nos permite crear una información organizada lo cualnos permite la coherencia y cohesión buscada, no solo en las cienciassino también en los procesos administrativos como es el caso de estetrabajo. 7
  8. 8. METODOLOGÍAPrimero que todo antes de empezar este desarrollo recopileinformación suministrada por el docente, documentos, artículos deinternet para adquirir más conocimiento acerca de los conceptos debase datos. Por último organicé mis ideas y las plasmé en estetrabajo. 8
  9. 9. ENUNCIADO DEL PROBLEMAEJERCICIOS 1 “MER ”Imagina que una agencia de seguros de tu municipio te ha solicitadouna base de datos mediante la cual llevar un control de los accidentesy las multas. Tras una serie de entrevistas, has tomado las siguientesnotas:"Se desean registrar todas las personas que tienen un vehículo. Esnecesario guardar los datos personales de cada persona (nombre,apellidos, dirección, población, teléfono y DNI).De cada vehículo se desea almacenar la matrícula, la marca y elmodelo. Una persona puede tener varios vehículos, y puede darse elcaso de un vehículo pertenezca a varias personas a la vez.También se desea incorporar la información destinada a gestionar losaccidentes del municipio. Cada accidente posee un número dereferencia correlativo según orden de entrada a la base de datos. Sedesea conocer la fecha, lugar y hora en que ha tenido lugar cadaaccidente. Se debe tener en cuenta que un accidente puede involucrara varias personas y varios vehículos.Se desea llevar también un registro de las multas que se aplican.Cada multa tendrá asignado un número de referencia correlativo.Además, deberá registrarse la fecha, hora, lugar de infracción eimporte de la misma. Una multa solo se aplicará a un conductor einvolucra a un solo vehículo."Realiza el modelo E-R, pásalo al modelo relacional, diccionario dedatos y script mysql. 9
  10. 10. ANALISIS DEL PROBLEMAPRIMARY KEY = SE IDENTIFICARA DEL COLOR (KP)FOREIGN KEY = SE IDENTIFICARA DEL COLOR (KF)PERSONAS (dni, nombre, apellidos, dirección, teléfono, ciudad, tipode persona)VEHICULOS (matricula, marca. Modelo)MULTAS (consecutivo multa, fecha, hora, lugar infracción, dni) 10
  11. 11. DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACION 11
  12. 12. MODELO RELACIONAL 12
  13. 13. SCRIPT DE MYSQLMysql>CRÉATE DATABASE ACCIDENTES;Mysql>USE ACCIDENTES;Mysql>CREATE TABLE VEHÍCULOS (MATRICULA VARCHAR (10)NOT NULL, MARCA VARCHAR(30)NOT NULL, MODELO VARCHAR(40), PRIMARY KEY(MATRICULA ) )ENGINE=INNODB;Mysql>CREATE TABLE PERSONAS( DNI INT(15)NOT NULL,NOMBRE VARCHAR (15)NOT NULL,DIRECCIÓN VARCHAR(10)NOT NULL, CIUDAD VARCHAR (15) NOT NULL,TIPODEPERSONAS TEXT, APELLIDOS VARCHAR (15) NOT NULL,TELÉFONO INT (12)NOT NULL, PRIMARY KEY(DNI))EGINE=INNODB;Mysql>CREATE TABLE MULTAS (CONCECUTIVODEMULTAS INT(5) NOT NULL,DNI INT(15) NOT NULL , FECHAYHORA DATETIME,LUGARINFRACION VARCHAR(250)NOTNULL,PRIMARYKEY(CONCECUTIVODEMULTAS)ENGINE=INNODB;MYSQL>ALTER TABLE ACCIDENTES ADD INDEX (DNI);Mysql> ALTER TABLE ACCIDENTS ADD FOREIGN KEY(DNI)REFERENCES ACCIDENTES.PERSONAS (DNI) ON DELETENOT ACTION ON UPDATE CASCADE;Mysql>CREATE TABLE POSSER( TARJETA_DE_PROPIEDADVARCHAR(14) NOT NULL,CIUDAD_DE_EXPEDICION VARCHAR (15) NOT NULL, MATRICULAVARCHAR (10) NOT NULL, DNI INT (15) NOT NULL, PRIMARY 13
  14. 14. KEY(TARJETA_DE_PROPIEDAD, CIUDAD_DE_EXPEDICION,MATRICULA, DNI )ENGINE= INNODB;Mysql>ALTER TABLE ACCIDENTES ADD INDEX (DNI);Mysql> ALTER TABLE ACCIDENTES ADD FOREIGN KEY (DNI)REFERENCES ACCIDENTES.PERSONAS (DNI) ON DELETE NOTACTION ON UPDATE CASCADE;Mysql>ALTER TABLE ACCIDENTES ADD INDEX (MATRICULA);Mysql> ALTER TABLE ACCIDENTES ADD FOREIGNKEY(MATRICULA )REFERENCES ACCIDENTS.VEHICULOS(MATRICULA) ON DELETE NOT ACTION ON UPDATE CASCADE;Mysql> CREATE TABLE INVOLUCRAR (HORA DATETIME,MATRICULA VARCHAR (10) NOT NULL, DNI INT (15) NOT NULL,PRIMARY KEY (HORA, MATRICULA, DNI),Mysql>ALTER TABLE ACCIDENTES ADD INDEX (MATRICULA);Mysql> ALTER TABLE ACCIDENTES ADD FOREIGN KEY(MATRICULA )REFERENCESACCIDENTES.VEHICULOS (MATRICULA) ON DELETE NOT ACTION ON UPDATE CASCADE;Mysql>ALTER TABLE ACCIDENTES ADD INDEX (DNI);Mysql> ALTER TABLE ACCIDENTES ADD FOREIGN KEY (DNI)REFERENCESACCIDENTES.PERSONAS (DNI) ON DELETE NOT ACTION ON UPDATE CASCADE; 14
  15. 15. ENUNCIADO DEL PROBLEMAEJERCICIO 2.Se trata de realizar el diseño de la base de datos en el modelo E/Rpara una cadena de hoteles."Cada hotel (del que interesa almacenar su nombre, dirección,teléfono, año de construcción, etc.) se encuentra clasificadoobligatoriamente en una categoría (por ejemplo, tres estrellas)pudiendo bajar o aumentar de categoría.Cada categoría tiene asociada diversas informaciones, como, porejemplo, el tipo de IVA que le corresponde y la descripción.Los hoteles tiene diferentes clases de habitaciones (suites, dobles,individuales, etc.), que se numeran de forma que se pueda identificarfácilmente la planta en la que se encuentran. Así pues, de cadahabitación se desea guardar el código y el tipo de habitación.Los particulares pueden realizar reservas de las habitaciones de loshoteles. En la reserva de los particulares figurarán el nombre, ladirección y el teléfono.Las agencias de viaje también pueden realizar reservas de lashabitaciones. En caso de que la reserva la realiza una agencia deviajes, se necesitarán los mismos datos que para los particulares,además del nombre de la persona para quien la agencia de viajes estárealizando la reserva.En los dos casos anteriores también se debe almacenar el precio de lareserva, la fecha de inicio y la fecha de fin de la reserva". 15
  16. 16. ANÁLISIS DEL PROBLEMAHOTELES ( nit, nombre , dirección ,año de construcción)CATEGORÍAS (nivel, IVA, descripción)HABITACIONES (código, tipos de habitaciones)PERSONAS (cedula, nombre, dirección, teléfono)AGENCIA DE VIAJES ( nit a_v, nombre, dirección, teléfono ,ciudad)RESERVAS (n° reserva, f. ingreso, f. salida , hora ingreso) 16
  17. 17. DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACION 17
  18. 18. MODELO RELACIONAL 18
  19. 19. SCRIPT MYSQLMysql>CREATE DATABASE HOTELERA;Mysql>USE HOTELERAMysql>CREATE TABLE CATEGORIA (NIVELVARCHAR (15) NOT NULL, IVA MONEY,DESCRIPCION TEXT, PRIMARY KEY (NIVEL )) ENGINE=INNODB;Mysql> CREATE TABLE PERSONAS(CEDULAINT(15)NOT NULL,NOMBRE VARCHAR(15) NOTNULL, APELLIDOS VARCHAR(15) NOT NULL, DIRECCION VARCHAR(10) NOT NULL,TELEFONO INT (10) NOT NULL, PRIMARY KEY ( CEDULA ) ) ENGINE= INNODB ;Mysql> CREATE TABLE AGENCIAS_DE_VIAJES(NIT_A_V INT (20) NOT NULL ,NOMBREVARCHAR(15) NOT NULL, DIRECCION VARCHAR(10)NOTNULL, TELEFONO INT (10) NOTNULL, CIUDAD VARCHAR(15) NOT NULL, PRIMARY KEY(NIT_A_V))ENGINE= INNODB;Mysql> CREATE TABLE HOTELES (NIT INT (20) NOT NULL, NIVEL VARCHAR (15) NOT NULL,NOMBRE VARCHAR(15) NOT NULL, DIRECCION VARCHAR(14) NOT NULL,AÑO_DE_CONSTRUCCION INT (4) NOT NULL, PRIMARY KEY( NIT)) ENGINE= INNODB;Mysql>ALTER TABLE HOTELERA ADD INDEX (NIVEL);Mysql> ALTER TABLE HOTELERA ADD FOREIGN KEY(NIVEL )REFERENCESHOTELERA.CATEGORIA (NIVEL) ON DELETE NOT ACTION ON UPDATE CASCADE;Mysql> CREATE TABLE HABITACION (CODIGO_HABITACION INT (4) NOT NULL,NIT INT (20)NOT NULL, TIPOS_DE_HABITACIONES VARCHAR(16) NOT NULL, PRIMARY KEY(CODIGO_HABITACION )) ENGINE= INNODB;Mysql>ALTER TABLE HOTELERA ADD INDEX (NIT);Mysql> ALTER TABLE HOTELERA ADD FOREIGN KEY(NIT )REFERENCES HOTELERA.HOTELES (NIT) ON DELETE NOT ACTION ON UPDATE CASCADE;Mysql> CREATE TABLE RESERVAS (NUMERO_RESERVAS INT(15)NOT NULL, NIT INT(15) NOT NULL, CEDULA INT (15) NOT NULL, NIT_A_V INT (20) NOT NULL, FECHA_INGRESODATETIME NOT NULL, FECHA_SALIDA DATETIME NOT NULL, HORA_INGRESO DATETIMENOT NULL, PRIMARY KEY( NUMERO_RESERVAS)) ENGINE= INNODB;Mysql>ALTER TABLE HOTELERA ADD INDEX (NIT); 19
  20. 20. Mysql> ALTER TABLE HOTELERA ADD FOREIGN KEY(NIT)REFERENCES HOTELERA.HOTELES (NIT) ON DELETE NOT ACTION ON UPDATE CASCADE;Mysql>ALTER TABLE HOTELERA ADD INDEX (CEDULA);Mysql> ALTER TABLE HOTELERA ADD FOREIGN KEY(CEDULA)REFERENCES HOTELERA.PERSONAS (CEDULA) ON DELETE NOT ACTION ON UPDATE CASCADE;Mysql>ALTER TABLE HOTELERA ADD INDEX (NIT_A_V);Mysql>ALTER TABLE HOTELERA ADD FOREIGNKEY(NIT_A_V)REFERENCESHOTELERA.AGENCIAS_DE_VIAJES (NIT_A_V) ON DELETE NOTACTION ON UPDATE CASCADE; 20
  21. 21. ENUNCIADO DEL PROBLEMAEJERCICO 3 "Se desea diseñar una base de datos para almacenar y gestionar lainformación empleada por una empresa dedicada a la venta deautomóviles, teniendo en cuenta los siguientes aspectos:La empresa dispone de una serie de coches para su venta. Senecesita conocer la matrícula, marca y modelo, el color y el precio deventa de cada coche. La marca es una entidad independiente, de lacual se le tiene asignado un código y la descripción.Los datos que interesa conocer de cada cliente son el NIT, nombre,dirección, ciudad y número de teléfono: además, los clientes sediferencian por un código interno de la empresa que se incrementaautomáticamente cuando un cliente se da de alta en ella. Un clientepuede comprar tantos coches como desee a la empresa. Un cochedeterminado solo puede ser comprado por un único cliente. 21
  22. 22. ANÁLISIS DEL PROBLEMACOCHE (matricula, modelo, color, pvc ,MARCA (código, descripción)CLIENTE (nit, nombre, dirección, ciudad , código cliente) 22
  23. 23. DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACION 23
  24. 24. MODELO RELACIONAL 24
  25. 25. SCRIPT MYSQLMysql>CREATE DATABASE AUTOMOBILE;Mysql>USE AUTOMOBILE;Mysql>CREATE TABLE CLIENTES ( NIT_C INT (15) NOT NULL , NOMBRE VARCHAR(15)NOT NULL, APELLIDOS VARCHAR(15) NOT NULL, DIRECCION VARCHAR(16) NOT NULL,CIUDAD VARCHAR(15) NOT NULL, CODIGO_CLIENTE INT(15), PRIMARY KEY( NIT_C))ENGINE=INNODB;Mysql>CREATE TABLE MARCA (CODIGO_M INT (10) NOT NULL, DESCRIPCION TEXT NOTNULL, PRIMARY KEY (CODIGO_M)) ENGINE= INNODB;Mysql> CREATE TABLE COCHE (MATRICULA VARCHAR(10)NOT NULL, MODELO TEXTNOT NULL, COLOR TEXT NOT NULL , PVC MONEY NOT NULL, PRIMARY KEY (MATRICULA))ENGINE=INNODB;Mysql>ALTER TABLE AUTOMOBILE ADD INDEX (NIT_C);Mysql> ALTER TABLE AUTOMOBILE ADD FOREIGN KEY(NIT_C)REFERENCESAUTOMOBILE .CLIENTES (NIT_C) ON DELETE NOT ACTION ON UPDATE CASCADE;Mysql>ALTER TABLE AUTOMOBILE ADD INDEX (CODIGO_M);Mysql> ALTER TABLE AUTOMOBILE ADD FOREIGN KEY(CODIGO_M)REFERENCESAUTOMOBILE .MARCA (CODIGO_M) ON DELETE NOT ACTION ON UPDATE CASCADE ; 25
  26. 26. ENUNCIADO DEL PROBLEMAEJERCICIO 4Se desea informatizar la gestión de una tienda informática llamada ELOSITO FELIZ. La tienda dispone de una serie de productos que sepueden vender a los clientes.De cada producto informático se desea guardar el código, descripción,precio y número de existencias. De cada cliente se desea guardar elcódigo, nombre, apellidos, dirección y número de teléfono.Un cliente puede comprar varios productos en la tienda y un mismoproducto puede ser comprado por varios clientes. Cada vez que secompre un artículo quedará registrada la compra en la base de datosjunto con la fecha en la que se ha comprado el artículo.La tienda tiene contactos con varios proveedores que son los quesuministran los productos. Un mismo producto puede ser suministradopor varios proveedores. De cada proveedor se desea guardar elcódigo, nombre, apellidos, dirección, provincia y número de teléfono". 26
  27. 27. ANÁLISIS DEL PROBLEMAPRODUCTO ( código_producto, descripción, precio, n°existencia)CLIENTES ( código_c, nombre, apellidos, dirección, teléfono)PROVEEDORES (cód._ proveedores, nombre, apellidos,dirección, provincia, n_ teléfono) 27
  28. 28. DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACION 28
  29. 29. MODELO RELACIONAL 29
  30. 30. SCRIPT MYSQLmysql>CREATE DATABASE TIENDA;mysql>USE TIENDA;mysql> CREATE TABLE CLIENTE(CODIGO_C INT(10) NOT NULL,NOMBRE VARCHAR(15) NOT NULL, APELLIDOS VARCHAR(15)NOT NULL , DIRECCION VARCHAR(15) NOT NULL, TELEFONOINT(10) NOT NULL, PRIMARY KEY( CODIGO_C) )ENGINE=INNODB;mysql> CREATE TABLE PRODUCTO(CODIGO_PRODUCTO INT(10)NOT NULL, DESCRIPCION VARCHAR(20)NOT NULL, PRECIOMONEY NOT NULL, NUMERO_EXITENCIAINT(10),PRIMARYKEY(CODIGO_PRODUCTO))ENGINE=INNODB; mysql> CREATE TABLE PROVEDORES(CODIGO_PROVEDORESINT(10)NOT NULL, NOMBRE VARCHAR(15) NOT NULL, APELLIDOSVARCHAR(15) NOT NULL, DIRECCION VARCHAR(10)NOT NULL,PROVINVIA VARCHAR(30)NOT NULL, NUMERO_TELEFONOINT(10)NOTNULL,PRIMARYKEY(CODIGO_PROVEDORES))ENGINE=INNODB;mysql> CREATE TABLE COMPRAR(FECHA_COMPRA DATETIMENOT NULL, CODIGO_C INT(10) NOT NULL, CODIGO_PRODUCTOINT(10) NOT NULL, PRIMARY KEY( FECHA_COMPRA,CODIGO_C, CODIGO_PRODUCTO)ENGINE=INNODB;mysql>ALTER TABLE TIENDA ADD INDEX (CODIGO_C);mysql>ALTERTABLETIENDAADDFOREIGNKEY(CODIGO_C)REFERENCES TIENDA .CLIENTE (CODIGO_C) ON DELETE NOT ACTIONON UPDATE CASCADE;mysql>ALTER TABLE TIENDA ADD INDEX (CODIGO_PRODUCTO); 30
  31. 31. mysql> ALTER TABLE TIENDA ADD FOREIGNKEY(CODIGO_M)REFERENCES TIENDA .PRODUCTO(CODIGO_PRODUCTO) ON DELETE NOT ACTION ON UPDATECASCADE;mysql> CREATE TABLE DISTRIBUIR(CANTIDAD_PRODUCTOINT(10) NOT NULL, CODIGO_PROVEDORES INT(10)NOT NULL,PRIMARY KEY(CANTIDAD_PRODUCTO,CODIGO_PRODUCTO,CODIGO_PROVEDORES))ENGINE=INNODB;mysql>ALTER TABLE TIENDA ADD INDEX (CODIGO_PRODUCTO);mysql> ALTER TABLE TIENDA ADD FOREIGNKEY(CODIGO_M)REFERENCES TIENDA .PRODUCTO(CODIGO_PRODUCTO) ON DELETE NOT ACTION ON UPDATECASCADE;mysql>ALTER TABLE TIENDA ADD INDEX(CODIGO_PROVEDORES);mysql> ALTER TABLE TIENDA ADD FOREIGN KEY(PROVEDORES)REFERENCES TIENDA .PROVEDORES ( CODIGO_PROVEDORES) ON DELETE NOT ACTION ON UPDATE CASCADE; 31
  32. 32. ENUNCIADO DEL PROBLEMAEJERCICIO 5A partir del siguiente enunciado, diseñar el modelo entidad-relación."En la biblioteca del centro se manejan fichas de autores y libros. En laficha de cada autor se tiene el código de autor y el nombre. De cadalibro se guarda el código, título, ISBN, editorial y número de página. Unautor puede escribir varios libros, y un libro puede ser escrito porvarios autores. Un libro está formado por ejemplares. Cada ejemplartiene un código y una localización. Un libro tiene muchos ejemplares yun ejemplar pertenece sólo a un libro.Los usuarios de la biblioteca del centro también disponen de ficha enla biblioteca y sacan ejemplares de ella. De cada usuario se guarda elcódigo, nombre, dirección y teléfono. Los ejemplares son prestados alos usuarios. Un usuario puede tomar prestados varios ejemplares, yun ejemplar puede ser prestado a varios usuarios. De cada préstamosinteresa guardar la fecha de préstamo y la fecha de devolución".Pasar el modelo entidad-relación resultante al modelo relacional.Diseñar las tablas en Access, realizar las relaciones oportunas entretablas e insertar cinco registros en cada una de las tablas. 32
  33. 33. ANÁLISIS DEL PROBLEMALIBRO ( código_ libro, titulo, editorial, n° pagina)AUTOR (código_autor , nombre)EJEMPLARES ( código_ejemplares , localización)USUARIO (código_ usuario , nombre, dirección , teléfono) 33
  34. 34. DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACIÓN 34
  35. 35. MODELO RELACIONAL 35
  36. 36. SCRIPT MYSQLmysql>CREATE DATABASE BIBLIOTECA ;mysql>USE BIBLIOTECA;mysql> CREATE TABLE LIBRO(CODIGO_LIBRO INT(10)NOT NULL, TITULO TEXT NOTNULL, NUMERO_PAGINA INT(15)NOT NULL, EDICTORIAL VARCHAR(16) NOT NULL, ISBNVARCHAR(12)NOT NULL , PRIMARY KEY(CODIGO_LIBRO)) ENGINE=INNODB;mysql> CREATE TABLE USUARIO(CODIGO_USUSARIO INT( 15)NOT NULL, NOMBREVARCHAR(15)NOT NULL , APELLIDOS VARCHAR(30)NOT NULL, DIRECCIONVARCHAR(30)NOT NULL, TELEFONO INT (10) NOT NULL, PRIMARYKEY(CODIGO_USUARIO))ENGINE=INNODB,mysql> CREATE TABLE AUTOR( CODIGO_AUTOR INT(10)NOT NULL, NOMBREVARCHAR(15)NOT NULL, PRIMARY KEY(CODIGO_AUTOR)) ENGINE= INNODB; mysql> CREATE TABLE EJEMPLARES( CODIGO_EJEMPLARES INT(15)NOT NULL,CODIGO_LIBRO INT(10)NOT NULL, LOCALIZACION VARCHAR(20 )NOT NULL, PRIMARYKEY (CODIGO_EJEMPLARES))ENGINE=INNODB;mysql>ALTER TABLE BIBLIOTECA ADD INDEX (CODIGO_LIBRO);mysql> ALTER TABLEBIBLIOTECA ADD FOREIGN KEY(CODIGO_LIEBRO)REFERENCESBIBLIOTECA .LIBRO ( CODIGO_LIBRO) ON DELETE NOT ACTION ON UPDATE CASCADE; mysql> (CREATE TABLE PRESTAR(CODIGO_USUARIO INT(15) NOT NULL ,FECHA_DEVOLUCION DATETIME NOT NULL, FECHA_PRESTAMO DATETIME NOTNULL, PRIMARY KEY(CODIGO_USUARIO, CODIGO_EJEMPLARES) )ENGINE=INNODB; mysql>ALTER TABLE BIBLIOTECA ADD INDEX (CODIGO_USUARIO);mysql> ALTER TA BLEBIBLIOTECA ADD FOREIGN KEY(CODIGO_USUARIO)REFERENCESBIBLIOTECA .LIBRO ( CODIGO_LIBRO) ON DELETE NOT ACTION ON UPDATE CASCADE;mysql>ALTER TABLE BIBLIOTECA ADD INDEX (CODIGO_EJEMPLARES ); 36
  37. 37. mysql>ALTERTABLEBIBLIOTECAADDFOREIGNKEY(CODIGO_EJEMPLARES)REFERENCESBIBLIOTECA .LIBRO ( CODIGO_ERJEMPLARES) ON DELETE NOT ACTION ON UPDATECASCADE;mysql> CREATE TABLE ESCRIBIR( DIA_MES_AÑO DATETIME NOT NULL,CODIGO_LIBRO INT(10) NOT NULL, PRIMARY HEY ( DIA_MES_AÑO, CODIGO_AUTOR,CODIGO_LIBRO))ENGINE= INNODB;mysql>ALTER TABLE BIBLIOTECA ADD INDEX (CODIGO_AUTOR);mysql> ALTER TA BLEBIBLIOTECA ADD FOREIGN KEY(CODIGO_AUTOR )REFERENCESBIBLIOTECA .AUTOR ( CODIGO_AUTOR) ON DELETE NOT ACTION ON UPDATE CASCADE;mysql>ALTER TABLE BIBLIOTECA ADD INDEX (CODIGO_USUARIO);mysql> ALTER TA BLEBIBLIOTECA ADD FOREIGN KEY(CODIGO_USUARIO)REFERENCESBIBLIOTECA .LIBRO ( CODIGO_LIBRO) ON DELETE NOT ACTION ON UPDATE CASCADE; 37
  38. 38. ENUNCIADO PROBLEMAEJERCICIO 6A partir del siguiente enunciado se desea realiza el modelo entidad-relación y pasarlo al modelo de datos relacional.Una agencia de viajes desea informatizar toda la gestión de losviajeros que acuden a la agencia y los viajes que estos realizan. Trasponernos en contacto con la agencia, ésta nos proporciona lasiguiente información."La agencia desea guardar la siguiente información de los viajeros:dni, nombre, dirección y teléfono.De cada uno de los viajes que maneja la agencia interesa guardar elcódigo de viaje, número de plazas, fecha en la que se realiza el viaje yotros datos. Un viajero puede realizar tantos viajes como desee con laagencia. Un viaje determinado sólo puede ser cubierto por un viajero.Cada viaje realizado tiene un destino y un lugar de origen. De cadauno de ellos se quiere almacenar el código, nombre y otros datos quepuedan ser de interés. Un viaje tiene un único lugar de destino y unúnico lugar de origen".“Todo viajero debe tener referencia familiares a la agenda de viajes.” 38
  39. 39. ANALISIS DEL PROBLEMAVIAJEROS ( dni, nombre, dirección, teléfono)VIAJES ( código_de_viaje, numero_ plazas, fvr )ORIGEN (código_origen)DESTINO ( código_destino)REFERNCIA FAMILIARES ( dni_familiar, nombre, apellido, dirección,teléfono) 39
  40. 40. DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACIÓN 40
  41. 41. MODELO RELACIONAL 41
  42. 42. SCRIPT MYSQLmysql>CREATE DATABASE AGENCIA;MYSQL>USE AGENCIA;MYSQL>CREATE TABLE VIAJEROS( DNI INT(10) NOT NULL, NOMBRE VARCHAR(15)NOTNULL, DIRECCION VARCHAR(15)NOT NULL, TELEFONO INT(15) NOT NULL, PRIMARYKEY( DNI))ENGINE=INNODB;MYSQL>CREATE TABLE VIAJES(CODIGO_DE_VIAJE INT(5) NOT NULL, DNI INT(10)NOTNULL, NUMERO_PLAZAS INT(10)NOT NULL, FRV DATETIME NOT NULL, PRIMARYKEY( CODIGO_DE_VIAJE))ENGINE=INNODB;MYSQL> ALTER TABLE AGENCIA ADD INDEX (DNI);mysql> ALTER TA BLE AGENCIA ADD FOREIGN KEY(DNI)REFERENCES.VIAJEROS (DNI)ON DELETE NOT ACTION ON UPDATE CASCADE;MYSQL> CREATE TABLE ORIGEN(CODIGO_DE_VIAJE INT(5)NOT NULL, CODIGO_ORIGENINT(5)NOT NULL, PRIMARY KEY(CODIGO_DE_VIAJE))ENGINE=INNODB;MYSQL> ALTER TABLE AGENCIA ADD INDEX(CODIGO_DE_VIAJE);mysql>ALTERTABLEAGENCIAADDFOREIGNKEY(CODIGO_DE_VIAJE)REFERENCES.VIAJEROS (CODIGO_DE_VIAJE) ON DELETE NOT ACTION ON UPDATE CASCADE;mysql> CREATE TABLE DESTINO( CODIGO_DE_VIAJE INT(5) NOT NULL,CODIGO_DESTINO INT((5)NOT NULL, PRIMARY KEY(CODIGO_DE_VIAJE))ENGINE=INNODB;MYSQL> ALTER TABLE AGENCIA ADD INDEX(CODIGO_DE_VIAJE);mysql>ALTERTABLEAGENCIAADDFOREIGNKEY(CODIGO_DE_VIAJE)REFERENCES.VIAJEROS (CODIGO_DE_VIAJE) ON DELETE NOT ACTION ON UPDATE CASCADE;mysql> CREATE TABLE REFERENCIAS_FAMILIARES( DNI_FAMILIAR INT(15) NOT NULL,NOMBRE VARCHAR(15)NOT NULL, APELLIDOS VARCHAR(16)NOT NULL, DIRECCIONINT(10) NOT NULL, TELEFONO INT(10) NOT NULL, PRIMARY KEY ( DNI_FAMILIAR, DNI,CODIGO_DE_VIAJE))ENGINE=INNODB; 42
  43. 43. MYSQL> ALTER TABLE AGENCIA ADD INDEX(DNI);mysql>ALTERTABLEAGENCIAADDFOREIGNKEY(DNI)REFERENCES.VIAJEROS (DNI) ONDELETE NOT ACTION ON UPDATE CASCADE;MYSQL> ALTER TABLE AGENCIA ADD INDEX(CODIGO_DE_VIAJE);mysql>ALTERTABLEAGENCIAADDFOREIGNKEY(CODIGO_DE_VIAJE)REFERENCES.VIAJEROS (CODIGO_DE_VIAJE) ON DELETE NOT ACTION ON UPDATE CASCADE; 43
  44. 44. ENUNCIADO DEL PROBLEMAEJERCICIO 7.A partir del siguiente enunciado se desea realiza el modelo entidad-relación y pasarlo al modelo de datos relacional."A un concesionario de coches llegan clientes para comprarautomóviles. De cada coche interesa saber la matrícula, modelo,marca y color. Un cliente puede comprar varios coches en elconcesionario. Cuando un cliente compra un coche, se le hace unaficha en el concesionario con la siguiente información: dni, nombre,apellidos, dirección y teléfono.Los coches que el concesionario vende pueden ser nuevos o usados(de segunda mano). De los coches nuevos interesa saber el númerode unidades que hay en el concesionario. De los coches viejosinteresa el número de kilómetros que lleva recorridos.El concesionario también dispone de un taller en el que los mecánicosreparan los coches que llevan los clientes. Un mecánico repara varioscoches a lo largo del día, y un coche puede ser reparado por variosmecánicos. Los mecánicos tienen un dni, nombre, apellidos, fecha decontratación y salario. Se desea guardar también la fecha en la que serepara cada vehículo y el número de horas que se tardado en arreglarcada automóvil". 44
  45. 45. ANÁLISIS DEL PROBLEMACOCHE (MATRICULA, MODELO, MARCA, COLOR)CLIENTE (DNI CLIENTE, NOMBRE, APELLIDOS, CIUDAD, DIRECCIÓN , TELÉFONO)FICHA CLIENTE ( DNI, NOMBRE, APELLIDOS, DIRECCIÓN, TELÉFONO)NUEVO( N° UNIDADES )USADOS(N° KILÓMETROS)MECANICO( DNI_M, NOMBRE , APELLIDOS, FECHA CONTRATACIÓN, SALARIO) 45
  46. 46. DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACION 46
  47. 47. MODELO RELACIONAL 47
  48. 48. SCRIPT MYSQLmysql>CREATE DATABASE CONCESIOANRIO;MYSQL>USE CONCESIONARIO;MYSQL> CREATE TABLE FICHA_CLIENTE(DNI_F_C INT(10)NOT NULL, NOMBREVARCHAR(15)NOT NULL, APELLIDOS VARCHAR(15)NOT NULL, DIRECCIONVARCHAR(10)NOT NULL, TELEFONO INT (10) NOT NULL, PRIMARYKEY(DNI_F_C)ENGINE=INNODB;MYSQL> CREATE TABLE MECANICOS(DNI_M INT(10)NOT NULL, NOMBREVARCHAR(15)NOT NULL, APELLIDOS VARCHAR(15)NOT NULL,FECHA_DE_CONTRATACION DATETIME NOT NULL, SALARIO MONAY NOT NULL,PRIMARY KEY( DNI_M))ENGINE=INNODB;MYSQL> CREATE TABLE CLIENTE(DNI_CLIENTE INT(10) NOT NULL, DNI_F_C INT(10) NOTNULL, NOMBRE VARCHAR(15)NOT NULL, APELLLIDOS VARCHAR(15)NOT NULL, CIUDADVARCHAR(15)NOT NULL, DIRECCION VARCHAR(10)NOT NULL, TELEFONO INT(10),PRIMARY KEY( DNI_CLIENTE))ENGINE=INNODB;MYSQL> ALTER TABLE CONCESIOANRIO ADD INDEX( DNI_F_C);mysql>ALTERTABLE CONCESIOANRIO ADDFOREIGNKEY( DNI_F_C)REFERENCES.FICHA_CLIENTE (DNI_F_C) ON DELETE NOT ACTION ON UPDATE CASCADE;MYSQL> CREATE TABLE COCHE(MATRICULA INT(10)NOT NULL, DNI_CLIENTE INT(10)NOTNULL, MODELO VARCHAR(15)NOT NULL, MARCA VARCHAR(15)NOT NULL, COLORVARCHAR(15)NOT NULL, PRIMARY KEY ( MATRICULA))ENGINE=INNODB;MYSQL> ALTER TABLE CONCESIOANRIO ADD INDEX( DNI_CLIENTE);mysql>ALTERTABLE CONCESIOANRIO ADDFOREIGNKEY( DNI_CLIENTE)REFERENCES.CLIENTE (DNI_CLIENTE) ON DELETE NOT ACTION ON UPDATE CASCADEmysql> CREATE TABLE NUEVO(MATRICULA INT(10)NOT NULL, N_UNIDADES INT(20)NOTNULL, PRIMARY KEY(MATRICULA))ENGINE=INNODB;MYSQL> ALTER TABLE CONCESIOANRIO ADD INDEX(MATRICULA);mysql>ALTERTABLE CONCESIOANRIO ADDFOREIGNKEY( MATRUICULA)REFERENCES.COCHE(MATRICULA) ON DELETE NOT ACTION ON UPDATE CASCADE; 48
  49. 49. mysql>CREATE TABLE VIEJOSMATRICULA INT(10)NOT NULL, (, N_KILOMETROSINT(30)NOT NULL, PRIMARY KEY( MATRICULA))ENGINE=INNODB;MYSQL> ALTER TABLE CONCESIOANRIO ADD INDEX(MATRICULA);mysql>ALTERTABLE CONCESIOANRIO ADDFOREIGNKEY( MATRUICULA)REFERENCES.COCHE(MATRICULA) ON DELETE NOT ACTION ON UPDATE CASCADE;mysql>CREATE TABLE REPARAR( N_HORAS DATETIME NOT NULL, FECHA_R_VDATETIME, NOT NULL, MATRICULA INT(10)NOT NULL, DNI_M INT(10)NOT NULL,PRIMARY KEY( N_HORAS, FECHA_R_V, MATRICULA, DNI_M)ENGINE=INNODB;MYSQL> ALTER TABLE CONCESIOANRIO ADD INDEX(MATRICULA);mysql>ALTERTABLE CONCESIOANRIO ADDFOREIGNKEY( MATRUICULA)REFERENCES.COCHE(MATRICULA) ON DELETE NOT ACTION ON UPDATE CASCADE;MYSQL> ALTER TABLE CONCESIOANRIO ADD INDEX(DNI_M);mysql>ALTERTABLE CONCESIOANRIO ADDFOREIGNKEY( DNI_M)REFERENCES.MECANICO(DNI_MA) ON DELETE NOT ACTION ON UPDATE CASCADE; 49
  50. 50. ENUNCIADO DEL PROBLEMAEJERCICIO 8.A partir del siguiente enunciado se desea realiza el modelo entidad-relación y pasarlo al modelo de datos relacional.Una empresa de aparatos electrónicos desea informatizar sus datos.Cada aparato electrónico viene determinado por un Código único yuna descripción. Además cada aparato corresponde a un tipo deelectrodomésticos (a lo sumo).Cada tipo de electrodoméstico (televisor, mp3, lavadora, etc.) tiene unnombre y unas características (un campo de texto). Se supone que nohay dos tipos con el mismo nombre y características. Algunos tipospueden formar parte de otro tipo más general (mp3 de aparato demúsica), pero en este caso solo forman parte de un único tipo.Los componentes son las piezas que forman el aparato. Vienen dadospor un nombre (por ejemplo transformador) y unas especificaciones(un campo de texto).También nos interesa conocer datos de los fabricantes decomponentes: Su CIF (único) y su domicilio social.Cada aparato puede llevar cualquier cantidad de componentes.Interesa saber para cada aparato que componentes lleva y quefabricante suministra cada componente. Un aparato puede llevarmuchas unidades de un mismo componente (interesa saber cuántas),pero en este caso todas estarán suministradas por el mismo fabricantey con un mismo precio. 50
  51. 51. ANÁLISIS DEL PROBLEMAAPARATO ELÉCTRICO (CÓDIGO, DECRIPCION)TIPO ELECTRODOMÉSTICO (CÓDIGO_T_ ELECTRODOMEESTICO, NOMBRE,CARACTERISTICAS)COMPONENTES PEIZAS ( CÓDIGO PIEZA, NOMBRE , ESPECICFICACION,CÓDIGO)FABRICANTES ( CIF, DOMICILIO SOCIAL, NOMBRE,) 51
  52. 52. DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACIÓN 52
  53. 53. MODELO RELACIONAL 53
  54. 54. SCRIPT MYSQLmysql>CREATE DATABASE ELECTRODOMESTICOS;MYSQL>USE ELECTROMESTICO;MYSQL> CREATE TABLE APARATO_ELECTRODOMESTICO (CODIGO_A_E INT(20)NOTNULL, DESCRIPCION TEXT NOT NULL, PRIMARY KEY(CODIGO_A_E))ENGINE=INNODB;MYSQL> CREATE TABLE TIPO_ELCETRODOMESTICO(CODIGO_T_E INT(20)NOTNULL,CODIGO_A_E INT (20)NOT NULL, NOMBRE VARCHAR(15)NOT NULL,CARACTERISTICASTEXT NOT NULL, PRIMARY KEY ( CODIGO_T_E)ENGINE=INNODB;MYSQL> ALTER TABLE ELECTRODOMESTICOS ADD INDEX(CODIGO_A_E);mysql>ALTERTABLEELECTRODOMESTICOSADDFOREIGNKEY(CODIGO_A_E)REFERENCES. APARATO_ELECTRODOMESTICO ( CODIGO_A_E) ON DELETE NOT ACTIONON UPDATE CASCADE;MYSQL> CREATE TABLE COMPONENTE_PIEZAS (CODIGO_PIEZAS INT(15) NOT NULL,CODIGO_A_E INT(20)NOT NULL, ESPECIFICACION TEXT NOT NULL, NOMBREVARCHAR(15)NOT NULL, PRIMARY KEY ( CODIGO_PIEZAS )ENGIEN= INNODB;MYSQL> ALTER TABLE ELECTRODOMESTICOS ADD INDEX(CODIGO_A_E);mysql>VALTERTABLEELECTRODOMESTICOSADDFOREIGNKEY(CODIGO_A_E)REFERENCES. APARATO_ELECTRODOMESTICO ( CODIGO_A_E) ON DELETE NOT ACTIONON UPDATE CASCADE;mysql> CREATE TABLE FABRICANTE(CIF INT(20)NOT NULL, CODIGO_PIEZAS INT(15),NOMBRE_FABRICANTE VARCHAR(15)NOT NULL, DOMICILO_SOCIAL TEXT NOT NUL,PRIMARY KEY( CIF)ENGINE=INNODB;MYSQL> ALTER TABLE ELECTRODOMESTICOS ADD INDEX(CODIGO_PIEZAS);mysql>VALTERTABLEELECTRODOMESTICOSADDFOREIGNKEY(CODIGO_PIEZAS)REFERENCES. COMPONENTE_PIEZAS ( CODIGO_PIEZAS) ON DELETE NOT ACTION ONUPDATE CASCADE; 54
  55. 55. ENUNCIADO PROBLEMAEJERCICIO 9.A partir del siguiente enunciado se desea realiza el modelo entidad-relación y pasarlo al modelo de datos relacional.La cooperativa „Jonh F. Kennedy‟ tiene como objetivo prestar dinero asus socios. Para ello tiene diferentes modalidades de préstamo(vivienda, vehículo, estudio, electrodomésticos...), cada modalidadtiene un plazo máximo estipulado y una tasa de interés definida. Lossocios pueden tener varios préstamos a la vez y para cada uno lacooperativa registra los siguientes datos:Número del préstamo, fecha de inicio, el valor del préstamo, la cuotamensual y el plazo en meses el cual no puede sobrepasar el plazomáximo estipulado.Cada socio para adquirir un préstamo debe estar trabajando en unaempresa, por lo tanto la cooperativa guarda no sólo los datos del sociosino también los de la empresa en la cual trabaja ya que se llevaestadísticas sobre las empresas que más socios tienen asociados a lacooperativa.De las empresas interesa conocer persona de contacto, dirección de laempresa y número de empleados total, y si actualmente se tiene o noconvenio con ellos.De los socios además de sus datos básicos (cédula, nombre, teléfono,dirección, número de celular y correo electrónico opcionales), interesaconocer el salario mensual. Cada préstamo requiere además de uncodeudor del cual se registran sus datos básicos. También esimportante conocer si el codeudor es un posible cliente o no, paraenviarle información para que se afilie a la cooperativa.En caso de que un codeudor se vuelve socio de la compañía entonceses necesario que el asociado solicitante del préstamo consiga otrocodeudor externo, no se permiten codeudores que sean socios de lacooperativa. 55
  56. 56. ANÁLISIS DEL PROBLEMASOCIOS (CEDULA, NOMBRE , APELLIDOS , TELÉFONO, DIRECCIÓN, NUMERO CELULAR,CORREO ELECTRÓNICO, SALARIO MENSUAL)PRÉSTAMO (NUMERO PRÉSTAMO, TIPO MODALIDAD)EMPRESA( DNI, P.CONTACTO, DIRECCIÓN, NUMERO EMPLEADOS TOTAL)MODALIDAD ( CÓDIGO MODALIDAD, PLAZO MÁXIMO ESTIMULADO, TASA DE INTERÉSDEFINIDA)COOPERATIVA (NUMERO PRÉSTAMO, FECHA INICIO, VALOR PRÉSTAMO, CUOTAMENSUAL, PLAZO MESES)CODEUDOR ( DNI, NOMBRE, APELLIDOS , CIUDAD, TELÉFONO, DIRECCIÓN) 56
  57. 57. DISEÑO DELPROBLEMADIAGRAMA ENTIDAD RELACION 57
  58. 58. MODELO RELACIONAL 58
  59. 59. SCRIPT MYSQLmysql>CREATE DATABASE DINERO;MYSQL>USE DINERO;MYSQL>CREATETABLE PRESTAMO(NUMERO_PRESTAMO INT(10) NOT NULL,TIPO_MODALIDAD TEXT NOTNULL, PRIMARYKEY(NUMERO_PRESTAMO))ENGINE=INNODB;MYSQL>CREATE TABLE EMPRESA(DNI_EMPRESA INT(20)NOT NULL,PERSONA_CONTACTO VARCHAR(20)NOT NULL, DIRECCION VARCHAR(15)NOT NULL,N_E_T INT(10)NOT NULL, PRIMARY KEY( DNI_EMPRESA ))ENGINE=INNODB;MYSQL>CREATE TABLE COOPERATIVA (N_PRESTAMO INT(10)NOT NULL,FECHA_INICIODATETIME NOT NULL,VALOR_PRESTAMO MONEY NOT NULL,CUOTA_MENSUAL MONEY NOT NULL, PLAZO_MESES INT(10),PRIMARY KEY(N_PRESTAMO))ENGINE=INNODB;MYSQL>CREATE TABLE CODEUDOR(DNI INT(10)NOT NULL, NOMBRE VARCHAR(15)NOTNULL APELLDOS VARCHAR(16)NOT NULL, CIUDAD VARCHAR(15)NOT NULL, TELEFONOINT(10)NOT NULL, DIRECCION VARCHAR(10)NOT NULL, PRIMARYKEY(DNI))ENGINE=INNODB;MYSQL> CREATE TABLE SOCIOS(CEDULA INT(10)NOT NUL, DNI_EMPRESA INT(20)NOTNULL,DNI INT(10)NOT NULL, N_PRESTAMO INT(10)NOT NULL, NOMBRE VARCHAR(15)NOTNULL, APELLIDOS VARCHAR(15)NOT NULL, TELEFONO INT(10)NOT NULL , DIRECCIONVARCHAR(15) NOT NUL, NUMERO_CELULAR INT(10)NOT NULL, CORREO_ELECTRONICOVARCHAR(15)NOTNULL,SALARIO_MENSUALMONEY NOT NULL,PRIMARY KEY (CEDULA))ENGINE=INNODB;MYSQL> ALTER TABLE DINERO ADD INDEX(DNI_EMPRESA);mysql> ALTERTABLE DINERO ADDFOREIGNKEY(DNI_EMPRESA) REFERENCES. EMPRESA( DNI_EMPRESA) ON DELETE NOT ACTION ON UPDATE CASCADE;MYSQL> ALTER TABLE DINERO ADD INDEX(DNI); 59
  60. 60. mysql>VALTERTABLE DINERO ADDFOREIGNKEY(DNI) REFERENCES. CODEUDOR( DNI)ON DELETE NOT ACTION ON UPDATE CASCADE; MYSQL> ALTER TABLE DINERO ADD INDEX(N_PRESTAMOI);mysql> ALTERTABLE DINEROSADDFOREIGNKEY(N_PRESTAMO) REFERENCES.COOPERATIVA ( N_ PRESTAMO)ON DELETE NOT ACTION ON UPDATE CASCADE; MYSQL> CREATE TABLE MODALIDAD( CODIGO_MODALIDAD INT (10)NOT NULL, CEDULAINT(10)NOT NULL, NUMERO_PRESTAMO INT(10)NOT NULL P_M_E TEXT NOT NULL, T_I_D MONEY NOT NULL ,PRIMARY KEY( CODIGO_MODALIDAD))ENGINE=INNODB;MYSQL> ALTER TABLE DINERO ADD INDEX(CEDULA);mysql> ALTERTABLE DINERO ADDFOREIGNKEY(CEDUAL) REFERENCES.SOCIOS(CEDULA)ON DELETE NOT ACTION ON UPDATE CASCADE;MYSQL> ALTER TABLE DINERO ADD INDEX(NUMERO_PRESTAMO);mysql> ALTERTABLE DINERO ADDFOREIGNKEY(NUMERO_PRESTAMO)REFERENCES.PRESTAMO (NUMERO_PRESTAMO)ON DELETE NOT ACTION ON UPDATECASCADE;MYSQL> CREATE TABLE DELIGENCIAR(N_PRESTAMO INT(10)NOT NULL,DNI_EMPRESA INT(20), PRIMARY KEY(N_PRESTAMO, DNI_EMPRESA))ENGINE=INNODB; MYSQL> ALTER TABLE DINERO ADD INDEX(N_PRESTAMOI);mysql> ALTERTABLE DINEROSADDFOREIGNKEY(N_PRESTAMO) REFERENCES.COOPERATIVA ( N_ PRESTAMO)ON DELETE NOT ACTION ON UPDATE CASCADE;MYSQL> ALTER TABLE DINERO ADD INDEX(DNI_EMPRESA);mysql> ALTERTABLE DINERO ADDFOREIGNKEY(DNI_EMPRESA) REFERENCES. EMPRESA( DNI_EMPRESA) ON DELETE NOT ACTION ON UPDATE CASCADE; 60
  61. 61. ENUNCIADO DEL PROBLEMAEJERCICIO 10.A partir del siguiente enunciado se desea realiza el modelo entidad-relación y pasarlo al modelo de datos relacional.Se desea diseñar una base de datos para una comisaría de policíaque recoja la información acerca de su funcionamiento. Seconsideran los siguientes supuestos:En la comisaría trabajan una serie de policías que tienen una cedula,nombre y categoría, ellos pueden desempeñar funciones distintascomo administrativas, agentes etc.Cada policía tiene un único jefe aunque un policía puede ser jefe devarios.En la comisaría existe un arsenal de armas. Cada arma estáidentificada por un código único pertenece a una clase y tiene unnombre determinado.Cada policía puede utilizar una o varias armas en u momento ndeterminado. Es importante conocer el grado de habilidad (puntuaciónde 1 a 10) de cada policía con cada una de las armas que utiliza.Un delincuente tiene una identificación, nombre y teléfono esarrestado por uno o más policías.A cada delin cuente que permanece en la comisaría se le encierra enun calabozo que tiene un código y una ubicación.En el calabozo pueden estar encerrados varios delincuentes.Los delincuentes están involucrados en casos de los que se conocenel código del caso y el juzgado que los instruye); Interesa saber cuáles principal cargo (robo, homicidio etc.) que se le atribuye a undelincuente en cada caso que esté involucrado.Uno o varios policías investigan cada uno de los casos 61
  62. 62. ANÁLISIS DEL PROBLEMAPOLICIA ( CEDULA, NOMBRE, CATEGORIA, NOMBE JEFEARMAS (CODIGO ARMAS, NOMBRE)DELICUENTE ( DNI, NOMBRE, APELLIDOS)CALABOZO ( CODIGO, UBICACIÓN)CASO ( CODIGO_ CASO,JUZGADO, CARGO)ARRESTAR(FECHA ARRESTO) 62
  63. 63. DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACIÓN 63
  64. 64. MODELO RELACIONAL 64
  65. 65. SCRIPT MYSQLmysql>CREATE DATABASE COMISARIPOL;MYSQL>USE COMISARIAPOL;MYSQL>CREATE TABLE ARMA(CODIGO_ARMA INT(8)NOT NULL, NOMBREVARCHAR(15)NOT NULL, PRIMARY KEY(CODIGO_ARMA))ENGINE=INNODB;MYSQL> CREATE TABLE CALABOZO(CODIGO_C INT(5)NOT NULL, UBICACIONVARCHAR(16)NOT NULL, PRIMARY KE (CODIGO_C))ENGINE=INNODB;MYSQL> CREATE TABLE CASO(CODIGO_CASO INT(10) NOT NULL, JUZGADO TEXT NOTNULL, PRIMARY KEY ( C ODIGO_CASO))ENGINE=INNODB; MYSQL> CREATE TABLE POLICIA(CEDULA INT(10) NOT NULL, CEDULA_1 INT(10)NOTNULL, CODIGO_ARMA INT(8)NOT NULL, NOMBRE VARCHAR(15)NOT NULL, CATEGORIAVARCHAR(15)NOT NULL, NOMBRE_JEFE VARCHAR(15)NOT NULL, PRIMARY KEY(CEDULA))ENGINE=INNODB;MYSQL> ALTER TABLE COMISARIPOL ADD INDEX(CEDULA_1);mysql>VALTERTABLE COMISARIAPOLADDFOREIGNKEY(CEDULA_1) REFERENCES.POLICIA (CEDULA_1) ON DELETE NOT ACTION ON UPDATE CASCADE;MYSQL> ALTER TABLE COMISARIPOL ADD INDEX(CODIGO_ARMA);mysql>VALTERTABLE COMISARIAPOLADDFOREIGNKEY(CODIGO_ARMA) REFERENCES.ARMA (CODIGO_ARMA) ON DELETE NOT ACTION ON UPDATE CASCADE;MYSQL> CREATE TABLE DELICUENTE(DNI INT(10)NOT NULL, CODIGO_C INT(5)NOT NULL,CODIGO_CASO INT(10)NOT NULL, NOMBRE VARCHAR(15)NOT NULL, APELLIDOSVARCHAR(15)NOT NULL, PRIMARY KEY(DNI))ENGINE=INNODB; ,MYSQL> ALTER TABLE COMISARIPOL ADD INDEX( CODIGO_C);mysql>VALTERTABLE COMISARIAPOLADDFOREIGNKEY( CODIGO_C) REFERENCES.CALABOZO( CODIGO_C) ON DELETE NOT ACTION ON UPDATE CASCADE; 65
  66. 66. MYSQL> ALTER TABLE COMISARIPOL ADD INDEX( CODIGO_CASO);mysql>VALTERTABLE COMISARIAPOLADDFOREIGNKEY( CODIGO_CASO)REFERENCES. CASO( CODIGO_CASO) ON DELETE NOT ACTION ON UPDATE CASCADE;mysql>CREATE TABLE ARRESTAR(FECHA_ARRESTO DATETIME NOT NULL, CEDULAINT(10) NOT NULL, DNI INT(10)NOT NULL, PRIMARY KEY(FECHA_ARRESTO, CEDULA,DNI))ENGINE=INNODB;MYSQL> ALTER TABLE COMISARIPOL ADD INDEX(CEDULA);mysql>VALTERTABLE COMISARIAPOLADDFOREIGNKEY(CEDULA) REFERENCES.POLICIA (CEDULA) ON DELETE NOT ACTION ON UPDATE CASCADE;MYSQL> ALTER TABLE COMISARIPOL ADD INDEX(DNI);mysql>VALTERTABLE COMISARIAPOLADDFOREIGNKEY(DNI) REFERENCES.DELICUENTE(DNI) ON DELETE NOT ACTION ON UPDATE CASCADE;mysql> CREATE TABLE INVESTIGAR( D_M_A DATETIME NOT NULL, CEDULA INT(10)NOTNULL , CODIGO_CASO INT(10)NIOT NULL, PRIMARY KEY(D_M_A, CEDULA,CODIGO_CASO))ENGINE=INNODB;MYSQL> ALTER TABLE COMISARIPOL ADD INDEX(CEDULA);mysql>VALTERTABLE COMISARIAPOLADDFOREIGNKEY(CEDULA) REFERENCES.POLICIA (CEDULA) ON DELETE NOT ACTION ON UPDATE CASCADEMYSQL> ALTER TABLE COMISARIPOL ADD INDEX( CODIGO_CASO);mysql>VALTERTABLE COMISARIAPOLADDFOREIGNKEY( CODIGO_CASO) REFERENCES.CASO ( CODIGO_CASO) ON DELETE NOT ACTION ON UPDATE CASCADE; 66
  67. 67. ENUNCIADO PROBLEMAEJERCICIO 11.Obtén el modelo ERE, relacional: Queremos hacer una aplicación paragestionar un pequeño aeropuerto. En este aeropuerto tendremosaviones identificados por un número, cada avión puede ser de un tipodiferente identificado por un modelo, su peso y su capacidad. Los aviones los guardamos en hangares que se identifican por unnúmero, una capacidad y una localización.En este aeropuerto tenemos tres tipos de personas (nss, dirección yteléfono): piloto (num licencia, restricciones), empleados (salario yturno) y propietarios. Cada piloto puede volar en distintos tipos deaviones, así mismo, los empleados trabajan para ciertos tipos deaviones. Los aviones son posesión de uno o varios propietariosinteresándonos almacenar desde qué fecha lo poseen. 67
  68. 68. ANALISIS DEL PROBLEMAAVIONES ( NUMERO_AVION, COMBUSTIBLE)CLASIFICACION AVIONES (MODELO, PESO, CAPACIDAD)HANGARES (NÚMERO, CAPACIDAD, LOCALIZACION)PERSONAS (NSS, DIRECCION, TELEFONO)PILOTO (NUMEROLICENCIA, RESTRICIONES)EMPELADO (SALARIO, TURNO)PROPIETARIO (SALARIO, TURNO) 68
  69. 69. DISEÑO PROBLEMADIAGRAMA ENTIDAD RELACION 69
  70. 70. MODELO RELACIONAL 70
  71. 71. SCRIPT MYSQLmysql>CREATE DATABASE AEROPUERTO;MYSQL>USE AEROPUERTOL;mysql> CREATE TABLE PERSONAS(NSS VARCHAR(12)NOT NULL, DIRECCIONVARCHAR(30)NOT NULL, TELEFONO VARCHAR(12)NOT NULL, NOMBRE VARCHAR(20)NOTNULL, APELLIDOS VARCHAR(20)NOT NULL, PRIMARY KEY(NSS))ENGINE=INNODB;mysql> CREATE TABLE CLASIFICACION_DE_AVIONES(MODELO VARCHAR(5)NOT NULL,PESOINT(20)NOTNULL,CAPACIDADINT(30)NOTNULL,PRIMARYKEY(MODELO))ENGINE=INNODB; mysql> CREATE TABLE HANGARES(NUMERO_HANGARES INT(20)NOT NULL,,CAPACIDAD INT(30)NOT NULL, LOCALIZACION VARCHAR(30)NOT NULL, PRIMARYKEY(NUMERO_HANGARES))ENGINE=INNODB;mysql> CREATE TABLE PILOTO NSS VARCHAR(12)NOT NULL,NUMERO_DE_LICENCIA VARCHAR(15)NOT NULL, RESTRICIONES TEXT NOT NULL,PRIMARY KEY (NSS))ENGINE=INNODB;MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(NSS);mysql>ALTERTABLE AEROPUERTO ADDFOREIGNKEY(NSS) REFERENCES.PERSONAS(NSS) ON DELETE NOT ACTION ON UPDATE CASCADE;mysql> CREATE TABLE EMPLEADOS(NSS VARCHAR(12)NOT NULL, SALARIOMONEY NOT NULL, TURNO VARCHAR(15)NOT NULL,PRIMARY KEY(NSS))ENGINE=INNODB;mysql> CREATE TABLE PROPIETARIO NSS VARCHAR(12) NOT NULL,PRIMAYKEY(NSS))ENGINE=INNODB;MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(NSS);mysql>ALTERTABLE AEROPUERTO ADDFOREIGNKEY(NSS) REFERENCES.PERSONAS(NSS) ON DELETE NOT ACTION ON UPDATE CASCADE;mysql> CREATE TABLE AVIONES (NUMERO_AVIONES VARCHAR(10)NOT NULL,MODELO VARCHAR(5)NOT NULL, COMBUSTIBLE VARCHAR(15)NOT NULL, PRIMARY KEY(NUMERO_AVIONES))EMGINE=INNODB; 71
  72. 72. MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(MODELO);mysql>ALTERTABLE AEROPUERTO ADDFOREIGNKEY(MODELO) REFERENCES.CLASIFICACION_DE_AVIONES (MODELO) ON DELETE NOT ACTION ON UPDATE CASCADE;mysql> CREATE TABLE GUARDAR(NUMERO_HANGARES INT(20)NOT NULL,NUMERO_AVIONES VARCHAR(10)NOT NULL, FECHA_RETIRO DATETIMENOT NULL,FECHA_INGRESO DATETIME NOT NULL, PRIMARY KEY(NUMERO_HANGARES,NUMERO_AVIONES))ENGINE=INNODB;MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(NUMERO_HANGARES);mysql>ALTERTABLE AEROPUERTO ADDFOREIGNKEY(NUMERO_HANGARES)REFERENCES. HANGARES (NUMERO_HANGARES )ON DELETE NOT ACTION ON UPDATECASCADE; MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(NUMERO_AVIONES);mysql>ALTERTABLE AEROPUERTO ADDFOREIGNKEY(NUMERO_AVIONES)REFERENCES. AVIONES(NUMERO_AVIONES)ON DELETE NOT ACTION ON UPDATECASCADE; MYSQL> CREATE TABLE PILOTIAR(NSS VARCHAR(12)NOT NULL,NUMERO_AVIONES VARCHAR(10)NOT NULL, PRIMARYKEY(NSS,NUMERO_AVIONES))ENGINE=INNODB;MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(NSS);mysql>ALTERTABLE AEROPUERTO ADDFOREIGNKEY(NSS) REFERENCES. PILOTO(NSS)ON DELETE NOT ACTION ON UPDATE CASCADE;MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(NUMERO_AVIONES);mysql>ALTERTABLE AEROPUERTO ADDFOREIGNKEY(NUMERO_AVIONES)REFERENCES. AVIONES(NUMERO_AVIONES)ON DELETE NOT ACTION ON UPDATECASCADE;mysql>CREATE TABLE TRABAJAR(NSS VARCHAR(12)NOT NULL,NUMERO_AVIONESVARCHAR(10)NOT NULL, PRIMARYKEY(NSS,NUMERO_AVIONES))ENGINE=INNODB; 72
  73. 73. MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(NSS);mysql>ALTERTABLE AEROPUERTO ADDFOREIGNKEY(NSS) REFERENCES. EMPLEADOS(NSS) ON DELETE NOT ACTION ON UPDATE CASCADE; MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(NUMERO_AVIONES);mysql>ALTERTABLE AEROPUERTO ADDFOREIGNKEY(NUMERO_AVIONES)REFERENCES. AVIONES(NUMERO_AVIONES)ON DELETE NOT ACTION ON UPDATECASCADE;mysql> CREATE TABLE TENER( NUMERO_AVIONES VARCHAR(10)NOT NULL,NSSVARCHAR(12)NOT NULL, FECHA_COMPRA DATETIME NOT NULL , PRIMARY KEY(NUMERO_AVIONES,NSS))ENGINE=INNODB; MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(NUMERO_AVIONES);mysql>ALTERTABLE AEROPUERTO ADDFOREIGNKEY(NUMERO_AVIONES)REFERENCES. AVIONES(NUMERO_AVIONES)ON DELETE NOT ACTION ON UPDATECASCADE; MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(NSS);mysql>ALTERTABLE AEROPUERTO ADDFOREIGNKEY(NSS) REFERENCES.AVIONES(NUMERO_AVIONES)ON DELETE NOT ACTION ON UPDATE CASCADE;MYSQL> ALTER TABLE AEROPUERTO ADD INDEX(NSS);mysql>ALTERTABLE AEROPUERTO ADDFOREIGNKEY(NSS) REFERENCES.PROPIETARIO (NSS)ON DELETE NOT ACTION ON UPDATE CASCADE; , 73
  74. 74. ENUNCIADO DEL PROBLEMAEJERCICIO 12.Dado el siguiente enunciado obtén el modelo ERE, relacional.Una empresa de servicios quiere informatizar su gestión en loreferente su personal, proyectos y los servicios que presta a otrasempresas.Respecto al personal de la empresa, se almacenará un códigoasignado por el departamento de Recursos Humanos, el nombre,dirección y teléfono así como el tipo de actividad dentro de la empresade servicios: directivo o plantilla. Únicamente aquel personal querealice funciones de directivo tendrá a su cargo personal. Interesaconocer qué directivo tiene a su cargo qué personal. Hay que tener encuenta que un directivo puede tener a su cargo a otros directivos y quecada persona de la empresa sólo tiene un directivo como jefe directo.En cuanto al personal que aparece como plantilla, se almacenaráademás la especialidad en la que ejercerá sus funciones. Losdirectivos siempre tendrán personal a su cargo y todo empleado (yasea de plantilla o directivo) tendrá siempre jefe. Por último, el personalque realiza funciones de directivo no aparecerá nunca como personalde plantilla y al contrario.En cuanto a los proyectos desarrollados por la empresa, sealmacenará un código de proyecto, un nombre y el esfuerzo estimadoen personas-mes para realizarlo. Lo proyectos son de dos tipos: dedesarrollo o estratégicos, sin embargo, en algunos casos, losproyectos de desarrollo pueden ser además, estratégicos. Si unproyecto es estratégico, se almacenará además el plazo de ejecuciónestimado y si es de desarrollo, el presupuesto.Cada proyecto es gestionado por un directivo de la empresa siempre ycuando el proyecto sea estratégico. No puede haber proyectos de estetipo sin directivo asignado. Esto no significa que todo directivo tengaun proyecto bajo su dirección. En caso que el proyecto sea dedesarrollo, se almacenará qué personal de plantilla participa en dichoproyecto y el tanto por ciento de dedicación. Una persona de plantillapuede estar asignada a ninguno o muchos proyectos. 74
  75. 75. Respecto a los servicios que se prestan a otras empresas, la políticade esta empresa en considerar a parte del personal de plantilla comoun servicio lo mismo se puede decir de los proyectos de desarrollo:algunos son servicios prestados a otras empresas. De estos serviciosse almacenará el código de servicio y el precio por mes. También sealmacenará la empresa para la que se ofrece el servicio. Hay quetener en cuenta que un servicio (ya sea personal de plantilla o unproyecto de desarrollo) siempre estará asignado a una única empresay que una empresa contrata uno o muchos servicios. De las empresascliente interesa conocer el nombre, nit, dirección, teléfono. 75
  76. 76. DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACIÓN 76
  77. 77. MODELO RELACIONAL 77
  78. 78. ENUNCIADO DEL PROBLEMAEJERCICIO 13.Dado el siguiente enunciado, obtén el modelo entidad-relaciónextendido, relacional.Una empresa dedicada a la realización de reformas y construccionesen general maneja la siguiente información para llevar parte de sunegocio.La empresa dispone de albañiles en plantilla de los que almacena,entre otras cosas, el número de la Seguridad Social, nombre,apellidos, fecha de nacimiento, números de los teléfonos que dispone(fijos y/o móviles) y categoría profesional. Las categorías profesionalesen las que clasifica a los albañiles son Maestro y Peón, pudiendohaber otras categorías. Si un albañil tiene la categoría de Maestroalmacena el dni y el sueldo. Si es Peón Albañil almacena, el dni y elsueldo en el caso de ser de nacionalidad española, y el país de origeny sueldo si es extranjero. Obviamente un albañil sólo puede pertenecera una categoría.Los albañiles en plantilla están agrupados en cuadrillas propias de laempresa (un albañil debe encontrarse en una y solo una cuadrilla) delas que se almacena un código interno, nombre (que también laidentifica) y localidad principal de actuación. 78
  79. 79. ANALISIS DEL PROBLEMAALBAÑIL ( NSS, NOMBRE,APELLIDOS, FECHADE NACIMIENTO,NUMEROFIJO.NUMERO MOVIL)ALBAÑIL PEON( DNI, SUELDO,NACIONALIDAD)ALBAÑIL MAESTRO (DNI, SUELDO)CUADRILALS ( CODIGO_INTERNO, NOMBRE, LOCALIDAD) 79
  80. 80. DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACION 80
  81. 81. MODELO RELACIONAL 81
  82. 82. SCRIPT MYSQLmysql>CREATE DATABASE NEGOCIO ;MYSQL>USE NEGOCIO ;mysql>CREATE TABLE CUADRILLAS(CODIGO_INTERNO INT(20)NOT NULL, NOMBREVARCHAR(15)NOT NULL, LOCALIDAD VARCHAR(20)NOT NULL, PRIMARY KEY(CODIGO_INTERNO))ENGINE=INNODB;mysql>CREATE TABLE ALBAÑIL(NSS INT(15)NOT NULL, CODIGO_INTERNO INT(20)NOTNULL, NOMBRE VARCHAR(15)NOT NULL, APELLIDOS VARCHAR(20)NOT NULL,FECHA_DE_NACIMIENTO DATETIME NOT NULL PRIMARY KEY(NSS))ENGINE=INNODB;MYSQL> ALTER TABLE NEGOCIO ADD INDEX( CODIGO_INTERNO);mysql>ALTERTABLE NEGOCIO ADDFOREIGNKEY(CODIGO_INTERNO) REFERENCES.CUADRILLAS (CODIGO_INTERNO) ON DELETE NOT ACTION ON UPDATE CASCADE;mysql>CREATE TABLE PEON(NSS INT(15)NOT NULL, DNI INT(10)NOT NULL, SUELDOMONEY NOT NULL, NACIONALIDAD VARCHAR (20)NOT NULL, PRIMARYKEY(NSS))ENGINE=INNODB; MYSQL> ALTER TABLE NEGOCIO ADD INDEX( NSS);mysql>ALTERTABLE NEGOCIO ADDFOREIGNKEY(NSS) REFERENCES. ALBAÑIL(NSS) ONDELETE NOT ACTION ON UPDATE CASCADE;mysql>CREATE TABLE MAESTRO(NSS INT(15)NOT NULL, DNI INT(10)NOT NULL,SUELDO MONEY NOT NULL, PRIMARY KEY (NSS))ENGINE=INNODB; 82
  83. 83. ENUNCIADO DEL PROBLEMAEJERCICIO 14.Dado el siguiente enunciado, obtén el modelo entidad-relaciónextendido, relacional.Una empresa dedicada a la venta de material óptico desea quediseñemos una base de datos para la automatización de sus procesos.La información relevante desde el punto de vista del modelo de datoses la siguiente:Los productos que vende la empresa son lentes de contacto o gafas,interesando conocer de ellos su código de producto (que es único), suprecio de venta y su marca. En cuanto a las lentes de contactointeresa, además, conocer su tipo (blandas, rígidas, etc.), su color, losproductos de limpieza que requiere y su graduación. Para las gafas, sedesea también almacenar su modelo, el material de fabricación.Se debe tener en cuenta que la empresa dispondrá de gafasgraduadas, de gafas de sol y de gafas de sol graduadas. De las gafasgraduadas, interesa conocer su graduación así como en qué tipo deproblemas oculares se pueden utilizar (miopía, astigmatismo, etc.). Delas gafas de sol, interesa conocer el nivel de filtrado de los rayosultravioleta. Hay que tener en cuenta además que queremos gestionar laspersonas que han comprado gafas en nuestro establecimiento, paraestas personas almacenaremos un código y el nombre. Además cadapersona pertenece a un tipo (habitual, ocasional...) y queremosalmacenar para cada tipo de usuarios que descuentos se aplican enlas gafas de sol. 83
  84. 84. ANÁLISIS DEL PROBLEMAPRODUCTO (CÓDIGO PRODUCTO, PV, MARCA )GAFAS (MODELO, MATERIAL FABRICACIÓN) ♥ GAFAS DE GRADUACIÓN (GRADUACIÓN, TIPO DE PROBLEMA) ♥GAFAS DE SOL ( NIVEL FILTRADO) ♥GAFAS DE SOL_ GRADUACIÓNLENTES DE CONTACTO (COLOR, PRODUCTO LIMPIEZA, GRADUACIÓN)PERSONAS (CÓDIGO, NOMBRE, APELLIDO, CIUDAD, TELÉFONO)HABITUAL_ O_ O OCASIONAL (DESCUENTO, FECHA) 84
  85. 85. DISEÑO DEL PROBLEMADIAGRAMA ENTIDAD RELACIÓN 85
  86. 86. MODELO RELACIONAL 86
  87. 87. SCRIPT MYSQLmysql>CREATE DATABASE OPTICO;MYSQL>USE OPTICO ;mysql>CREATE TABLE PRODUCTOS(CODIGO_PRODUCTO INT(5)NOT NULL,PV MONEYNOT NULL, MARCA VARCHAR(15NOT NULL, MARCA VARCHAR(15)NOT, MARCAVARCHAR(15)NOT NULL, PRIMARY KEY( CODIGO_PRODUCTO))ENGINE=INNODB;mysql> CREATE TABLE PERSONAS( CODIGO INT(15)NOT NULL, NOMBREVARCHAR(15)NOT NULL, APELLIDOS VARCHAR(15)NOT NULL, CIUDAD VARCHAR(15)NOTNULL, TELEFONO INT(10)NOT NULL, PRIMARY KEY(CODIGO))ENGINE=INNODB;mysql> CREATE TABLE LENTES_CONTACTO(CODIGO_PRODUCTO INT(5)NOT NULL,COLOR VARCHAR(15)NOT NULL, PRODUCTO_LIMPIEZA VARCHAR(15)NOT NULL,GRADUACION INT(10), PRIMARY KEY( CODIGO_PRODUCTO))ENGINE=INNODB; MYSQL> ALTER TABLE OPTICO ADD INDEX(CODIGO_PRODUCTO);mysql>ALTERTABLE OPTICO ADD FOREIGNKEY(CODIGO_PRODUCTO)REFERENCES.PRODUCTO(CODIGO_PRODUCTO) ON DELETE NOT ACTION ON UPDATE CASCADE;mysql> CREATE TABLE GAFAS( CODIGO_PRODUCTO INT(5)NOT NULL, CODIGOINT(15)NOT NULL, MODELO VARCHAR(15)NOT NULL, MATERIAL_FABRICACIONVARCHAR(15)NOT NULL, PRIMARY KEY(CODIGO_PRODUCTO))ENGINE=INNODB; MYSQL> ALTER TABLE OPTICO ADD INDEX(CODIGO_PRODUCTO);mysql>ALTERTABLE OPTICO ADD FOREIGNKEY(CODIGO_PRODUCTO)REFERENCES.PRODUCTO(CODIGO_PRODUCTO) ON DELETE NOT ACTION ON UPDATE CASCADE; MYSQL> ALTER TABLE OPTICO ADD INDEX(CODIGO);mysql>ALTERTABLE OPTICO ADD FOREIGNKEY(CODIGO)REFERENCES. PRERSONAS(CODIGO) ON DELETE NOT ACTION ON UPDATE CASCADE; 87
  88. 88. mysql> CREATE TABLE GAFA_DE_GRADUACION(CODIGO_PRODUCTO INT(5)NOTNULL, GRADUACION INT(10)NOT NULL, TIPO_PROBLEMA TEXT NOT NULL, PRIMARYKEY(CODIGO_PRODUCTO))ENGINE=INNODB; MYSQL> ALTER TABLE OPTICO ADD INDEX(CODIGO_PRODUCTO);mysql>ALTERTABLE OPTICO ADD FOREIGNKEY(CODIGO_PRODUCTO)REFERENCES.GAFAS (CODIGO_PRODUCTO) ON DELETE NOT ACTION ON UPDATE CASCADE; MYSQL> CREATE TABLE GAFAS_DE_SOL(CODIGO_PRODUCTO INT(5)NOT NULL, NIVEL_FILTRADO INT(10)NOT NULL, PRIMARYKEY(CODIGO_PRODUCTO))ENGINE=INNODB; MYSQL> ALTER TABLE OPTICO ADD INDEX(CODIGO_PRODUCTO);mysql>ALTERTABLE OPTICO ADD FOREIGNKEY(CODIGO_PRODUCTO)REFERENCES.GAFAS (CODIGO_PRODUCTO) ON DELETE NOT ACTION ON UPDATE CASCADE;MYSQL> CREATE TABLE GAFAS_SOL_GRADUCACION(CODIGO_PRODUCTO INT(5)NOTNULL,PRIMARY(CODIGO_PRODUCTO))ENGINE=INNODB; MYSQL> ALTER TABLE OPTICO ADD INDEX(CODIGO_PRODUCTO);mysql>ALTERTABLE OPTICO ADD FOREIGNKEY(CODIGO_PRODUCTO)REFERENCES.GAFAS (CODIGO_PRODUCTO) ON DELETE NOT ACTION ON UPDATE CASCADE;mysql> CREATE TABLE HABITUAL_O_OCACIONAL(DESCUENTO MONEY NOT NULL, CODIGO INT(15)NOT NULL, FECHA DATETIME NOT NULL, PRIMARYKEY(DESCUETO,CODIGO))ENGINE=INNOBD;MYSQL> ALTER TABLE OPTICO ADD INDEX(CODIGO);mysql>ALTERTABLE OPTICO ADD FOREIGNKEY(CODIGO)REFERENCES. PERSONAS(CODIGO) ON DELETE NOT ACTION ON UPDATE CASCADE; 88
  89. 89. 89
  90. 90. 90

×