Sunteți pe pagina 1din 7

El Ministerio de Defensa desea diseñar una Base de Datos para llevar un cierto control de

los soldados que realizan el servicio militar. Los datos significativos a tener en cuenta son:
• Un soldado se define por su código de soldado (único), su nombre y apellidos, y su
graduación.
• Existen varios cuarteles, cada uno se define por su código de cuartel, nombre y
ubicación.
• Hay que tener en cuenta que existen diferentes Cuerpos del Ejército (Infantería,
Artillería, Armada, ....), y cada uno se define por un código de Cuerpo y denominación.
• Los soldados están agrupados en compañías, siendo significativa para cada una de
éstas, el número de compañía y la actividad principal que realiza.
• Se desea controlar los servicios que realizan los soldados (guardias, imaginarias,
cuarteleros, ...), y se definen por el código de servicio y descripción.

Consideraciones de diseño:
• Un soldado pertenece a un único cuerpo y a una única compañía, durante todo el
servicio militar. A una compañía pueden pertenecer soldados de diferentes cuerpos, no
habiendo relación directa entre compañías y cuerpos.
• Los soldados de una misma compañía pueden estar destinados en diferentes cuarteles,
es decir, una compañía puede estar ubicada en varios cuarteles, y en un cuartel puede
haber varias compañías. Eso si, un soldado sólo esta en un cuartel.
• Un soldado realiza varios servicios a lo largo de la mili. Un mismo servicio puede ser
realizado por más de un soldado (con independencia de la compañía), siendo significativa
la fecha de realización.
CREATE TABLE soldados.compañia (
idCompañia int(11) NOT NULL,
Nombre_compañia varchar(45) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO soldados.compañia (idCompañia, Nombre_compañia) VALUES


(1, 'Unidad orgánica.'),
(2, 'Unidad administrativa.'),
(3, 'Unidad táctica.'),
(4, 'Unidad de ataque'),
(6, 'Unidad de sanidad');

CREATE TABLE soldados.cuartel (


idCuartel int(11) NOT NULL,
Nombre_cuartel varchar(45) NOT NULL,
Nombre_ubicasion varchar(45) NOT NULL,
Compañia_idCompañia int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO soldados.cuartel (idCuartel, Nombre_cuartel, Nombre_ubicasion,
Compañia_idCompañia) VALUES
(1, 'Brigada de institutos militares', 'Medellin', 2),
(2, 'Cuartel general ', 'Madrid', 3),
(3, 'Los Marines', 'Rosario', 3),
(4, 'Estrategia Militar', 'Cadiz', 4),
(5, 'Guarda costera', 'mar del plata', 2);

CREATE TABLE soldados.soldados (


idSoldados int(11) NOT NULL,
Nombres varchar(45) NOT NULL,
Apellidos varchar(45) NOT NULL,
Codigo_soldado varchar(45) NOT NULL,
Numero_compañia varchar(45) NOT NULL,
Fecha_de_graduacion varchar(45) NOT NULL,
Actividad_principal varchar(45) NOT NULL,
Tipo_cuerpo_idTipo_cuerpo int(11) NOT NULL,
Tipo_servicio_idTipo_servicio int(11) NOT NULL,
Compañia_idCompañia int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO soldados.soldados (idSoldados, Nombres, Apellidos, Codigo_soldado,


Numero_compañia, Fecha_de_graduacion, Actividad_principal,
Tipo_cuerpo_idTipo_cuerpo, Tipo_servicio_idTipo_servicio, Compañia_idCompañia)
VALUES
(1, 'Hernesto', 'Lopez', '30011', '234', '14/05/2019', 'Guardia de turno', 1, 1, 1),
(2, 'Marisol ', 'Juarez', '30087', '789', '10/02/2021', 'General de la fuerza aerea', 2, 3, 1),
(3, 'Octavio', 'Toledo', '30089', '456', '14/08/2019', 'Piloto de un Lockheed Martin F-22
Raptor', 2, 3, 1),
(4, 'Oscar ', 'Ramirez', '30084', '456', '10/02/2020', 'Administra cadetes ', 3, 1, 2),
(5, 'German', 'Perez', '30052', '789', '10/05/2019', 'copilto de un AH-64 Apache', 2, 3, 3);

CREATE TABLE soldados.tipo_cuerpo(


idTipo_cuerpo int(11) NOT NULL,
Nombre_cuerpo varchar(45) NOT NULL,
Codigo_cuerpo int(11) NOT NULL,
Denominacion varchar(45) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO soldados.tipo_cuerpo (idTipo_cuerpo, Nombre_cuerpo, Codigo_cuerpo,


Denominacion) VALUES
(1, 'Ejercito de tierra', 1001, 'Capitan general'),
(2, 'Fuerza de tierra', 1001, 'General'),
(3, 'Armada nacional', 1003, 'Cadetes'),
(4, 'Suboficiales', 1004, 'Soldados');

CREATE TABLE soldados.tipo_servicio (


idTipo_servicio int(11) NOT NULL,
Nombre_tipo_servicio varchar(45) NOT NULL,
Codigo_servicio int(11) NOT NULL,
Fecha_realizacion date NOT NULL,
Descripcion text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO soldados.tipo_servicio (idTipo_servicio, Nombre_tipo_servicio,
Codigo_servicio, Fecha_realizacion, Descripcion) VALUES
(1, 'Servicio activo', 2001, '2017-05-24', 'Como es el servicio que demanda mayor
compromiso de tiempo, el servicio activo es similar a tener un trabajo civil de tiempo
completo. Los miembros en servicio activo son miembros de tiempo completo de las
Fuerzas Armadas, viven en las bases o en viviendas militares y están inmersos en la
cultura militar. Después de asistir al campo de entrenamiento, son destacados en una
base, ya sea en el país o en el extranjero. El período del servicio activo por lo general
dura entre dos y seis años. La duración de la movilización varía según la misión
específica de la unidad.'),
(2, 'Reserva tiempo parcial', 2002, '2017-05-31', 'La Reserva es el tipo de servicio con
menos antigüedad, ya que se creó en el siglo veinte con el propósito de establecer y
mantener unidades entrenadas en el país mientras los miembros en servicio activo
estaban movilizados. Cada rama del servicio activo de las Fuerzas Armadas tiene un
componente de la Reserva a su mando, el cual está disponible para la movilización en
servicio activo en tiempos de guerra o emergencia nacional.'),
(3, 'Guardia nacional', 2003, '2017-05-07', 'La Guardia Nacional está compuesta por la
Guardia Nacional del Ejército y la Guardia Aérea Nacional. Los objetivos principales de la
Guardia son la seguridad nacional y la ayuda humanitaria. Además de los ejercicios de
entrenamiento un fin de semana al mes y dos semanas completas al año, las unidades de
la Guardia Nacional brindan ayuda a las comunidades de sus estados durante
emergencias como tormentas, inundaciones, incendios y otros desastres naturales.'),
(4, 'Reclutadores', 2007, '2015-05-24', 'los reclutadores son soldados que salen a las
calles a reclutar jovenes que esten entre los 18 y 26 años co el fin de definir su cituacion
militar.'),
(5, ' Guardia Costera', 2009, '2001-05-10', 'La guardia costera es una reserva de soldados
entrenados que protegen las costa de los diferentes casos como el narcotrafico , trata de
personas etc.');

ALTER TABLE soldados.compañia


ADD PRIMARY KEY (idCompañia);

ALTER TABLE soldados.cuartel


ADD PRIMARY KEY (idCuartel),
ADD KEY fk_Cuartel_Compañia1_idx (Compañia_idCompañia);
ALTER TABLE soldados.soldados
ADD PRIMARY KEY (idSoldados),
ADD KEY fk_Soldados_Tipo_cuerpo_idx (Tipo_cuerpo_idTipo_cuerpo),
ADD KEY fk_Soldados_Tipo_servicio1_idx (Tipo_servicio_idTipo_servicio),
ADD KEY fk_Soldados_Compañia1_idx (Compañia_idCompañia);

ALTER TABLE soldados.tipo_cuerpo


ADD PRIMARY KEY (idTipo_cuerpo);

ALTER TABLE soldados.tipo_servicio


ADD PRIMARY KEY (idTipo_servicio);

ALTER TABLE soldados.tipo_servicio


MODIFY idTipo_servicio int(11) NOT NULL AUTO_INCREMENT,
AUTO_INCREMENT=6;

ALTER TABLE soldados.cuartel


ADD CONSTRAINT fk_Cuartel_Compañia1 FOREIGN KEY (Compañia_idCompañia)
REFERENCES compañia (idCompañia) ON DELETE NO ACTION ON UPDATE NO
ACTION;

ALTER TABLE soldados.soldados


ADD CONSTRAINT fk_Soldados_Compañia1 FOREIGN KEY (Compañia_idCompañia)
REFERENCES compañia (idCompañia) ON DELETE NO ACTION ON UPDATE NO
ACTION,
ADD CONSTRAINT fk_Soldados_Tipo_cuerpo FOREIGN KEY
(Tipo_cuerpo_idTipo_cuerpo) REFERENCES tipo_cuerpo (idTipo_cuerpo) ON DELETE
NO ACTION ON UPDATE NO ACTION,
ADD CONSTRAINT fk_Soldados_Tipo_servicio1 FOREIGN KEY
(Tipo_servicio_idTipo_servicio) REFERENCES tipo_servicio (idTipo_servicio) ON
DELETE NO ACTION ON UPDATE NO ACTION;
Selección básica.
select * from soldados.Compañia
select * from soldados.Tipo_servicio

SELECT * FROM soldados.Soldados WHERE (Numero_compañia) = 789


SELECT * FROM soldados.Soldados WHERE (Tipo_cuerpo)= 1001

S-ar putea să vă placă și