You are on page 1of 17

APORTE TRABAJO COLABORATIVO N.

3






CURSO:
BASE DE TADOS BASICO







WILMER PIMENTEL ABAUNZA
CC: 1.117.487.134






TUTOR:
CARLOS SILVA









UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
PROGRAMA BASE DE DATOS BASICO
FLORENCIA CAQUET
2013





INTRODUCCION

En el proceso de aprendizaje sobre la gestin de bases de datos, se encuentran
las reglas para pasar de un modelo lgico de datos a un modelo relacional o
diseo fsico. Esto consiste en tomar el modelo lgico y extraer la informacin
sobre las tablas, sus campos, llaves primarias y llaves forneas, para de esta
manera poder crear las tablas en cualquier gestor de bases de datos.
Pero el tener la informacin guardada en las tablas, no servira de nada si no se
pudiera consultar, es ah donde surge el lgebra relacional, que sienta las bases
lgicas y conceptuales sobre la forma de extraer datos de las tablas y formar
informacin til para la toma de decisiones.
Para evitar tener datos repetidos, que consumen espacio en disco y hacen lenta la
bsqueda de informacin, los datos almacenados en las tablas deben ser
depurados esto se logra con las formas normales, que son herramientas
conceptuales para tener bases de datos limpias de datos redundantes.
Una vez se tiene la base de datos a este nivel se recurre a Mysql para materializar
todo este modelo en tablas, campos, datos reales almacenados en archivos,
donde es posible realizar la gestin de la base de datos como insercin,
modificacin, eliminacin, etc. Este es el objetivo del presente trabajo colaborativo.

OBJETIVOS

Crear una base de datos con sus respectivas tablas utilizando toda la
sintaxis del Lenguaje de Definicin de datos usando la herramienta
Workbench y MySQL.
Realizar adiciones, modificaciones y eliminaciones de registros usando el
Lenguaje de Manipulacin de datos.
Realizar consultas simples y compuestas que arrojen diferentes tipos de
informacin.


















DESARROLLO DE LAS ACTIVIDADES

MODELO RELACIONAL
En la figura No. 1 se puede apreciar el diseo del Modelo relacional de la base de
datos FINCASINAGUA planteado para la actividad. (Hecho en Mysql-Workbench)
















En la figura No. 2 se detalla parte del cdigo empleado para la construccin de las
tablas, en donde se emple el engine InnoDB para garantizar la integridad de la
informacin.

Adicionalmente se puede detallar las referencias diseadas a las tablas de
acuerdo a los requerimientos de la actividad No. 1.

Por otro lado en la figura uno, en la tabla Trabajador se establece un campo Enum
(E, A,M) donde se tipifica al Empleado, al mayormodo y al administrador
dentro de una misma tabla.


1


En la figura No. 3, se detalla la creacin de la tabla trabajador mediante la consola
de Mysql.


















2
3
SCRIPT DE LA BASE DE DATOS




CREATE DATABASE `FINCASINAGUA`;

USE `FINCASINAGUA` ;

-- -----------------------------------------------------
-- Table `Club`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Club` (
`idClub` INT NOT NULL ,
`Nombre` VARCHAR(45) NOT NULL ,
`Direccion` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`idClub`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1
COLLATE = latin1_spanish_ci;


-- -----------------------------------------------------
-- Table `Trabajador`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Trabajador` (
`Cedula` INT NOT NULL ,
`Nombres` VARCHAR(45) NOT NULL ,
`Apellidos` VARCHAR(45) NOT NULL ,
`Telefono` VARCHAR(45) NOT NULL ,
`Direccion` VARCHAR(45) NOT NULL ,
`No_Cuenta` VARCHAR(45) NOT NULL ,
`Tipo` ENUM('E','A','M') NOT NULL ,
PRIMARY KEY (`Cedula`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1
COLLATE = latin1_spanish_ci;


-- -----------------------------------------------------
-- Table `Lote`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Lote` (
`idLote` INT NOT NULL ,
`Trabajador_Cedula` INT NOT NULL ,
`Area` VARCHAR(45) NOT NULL ,
`Club_idClub` INT NOT NULL ,
PRIMARY KEY (`idLote`, `Trabajador_Cedula`) ,
INDEX `fk_Lote_Club1` (`Club_idClub` ASC) ,
INDEX `fk_Lote_Trabajador1` (`Trabajador_Cedula` ASC) ,
CONSTRAINT `fk_Lote_Club1`
FOREIGN KEY (`Club_idClub` )
REFERENCES `Club` (`idClub` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Lote_Trabajador1`
FOREIGN KEY (`Trabajador_Cedula` )
REFERENCES `Trabajador` (`Cedula` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1
COLLATE = latin1_spanish_ci;


-- -----------------------------------------------------
-- Table `Cultivo`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Cultivo` (
`Codigo` INT NOT NULL ,
`Nombre` VARCHAR(45) NOT NULL ,
`Tiempo_Prom_Cultivo` VARCHAR(45) NOT NULL ,
`Fecha_Siembra` DATE NOT NULL ,
`Lote_idLote` INT NOT NULL ,
PRIMARY KEY (`Codigo`) ,
INDEX `fk_Cultivo_Lote1` (`Lote_idLote` ASC) ,
CONSTRAINT `fk_Cultivo_Lote1`
FOREIGN KEY (`Lote_idLote` )
REFERENCES `Lote` (`idLote` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1
COLLATE = latin1_spanish_ci;


-- -----------------------------------------------------
-- Table `Actividad`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Actividad` (
`idActividad` INT NOT NULL ,
`Detalle` VARCHAR(45) NOT NULL ,
`Fecha` DATE NOT NULL ,
`Costo` VARCHAR(45) NOT NULL ,
`No_Horas_Emp` INT NOT NULL ,
PRIMARY KEY (`idActividad`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1
COLLATE = latin1_spanish_ci;


-- -----------------------------------------------------
-- Table `Ventas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Ventas` (
`idVentas` INT NOT NULL ,
`Kilos_Vendidos` DOUBLE NOT NULL ,
`Precio_Kilo` DOUBLE NOT NULL ,
`Actividad_idActividad` INT NOT NULL ,
PRIMARY KEY (`idVentas`) ,
INDEX `fk_Ventas_Actividad` (`Actividad_idActividad` ASC) ,
CONSTRAINT `fk_Ventas_Actividad`
FOREIGN KEY (`Actividad_idActividad` )
REFERENCES `Actividad` (`idActividad` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1
COLLATE = latin1_spanish_ci;


-- -----------------------------------------------------
-- Table `Control_Actividad`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Control_Actividad` (
`Consecutivo` INT NOT NULL ,
`Actividad_idActividad` INT NOT NULL ,
`Trabajador_Cedula` INT NOT NULL ,
PRIMARY KEY (`Consecutivo`) ,
INDEX `fk_Actividad_has_Trabajador_Trabajador1` (`Trabajador_Cedula` ASC) ,
CONSTRAINT `fk_Actividad_has_Trabajador_Actividad1`
FOREIGN KEY (`Actividad_idActividad` )
REFERENCES `Actividad` (`idActividad` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Actividad_has_Trabajador_Trabajador1`
FOREIGN KEY (`Trabajador_Cedula` )
REFERENCES `Trabajador` (`Cedula` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1
COLLATE = latin1_spanish_ci;


-- -----------------------------------------------------
-- Table `Estado_Cultivo`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Estado_Cultivo` (
`Cultivo_Codigo` INT NOT NULL ,
`Actividad_idActividad` INT NOT NULL ,
`Detalle` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`Cultivo_Codigo`, `Actividad_idActividad`) ,
INDEX `fk_Cultivo_has_Actividad_Actividad1` (`Actividad_idActividad` ASC) ,
CONSTRAINT `fk_Cultivo_has_Actividad_Cultivo1`
FOREIGN KEY (`Cultivo_Codigo` )
REFERENCES `Cultivo` (`Codigo` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Cultivo_has_Actividad_Actividad1`
FOREIGN KEY (`Actividad_idActividad` )
REFERENCES `Actividad` (`idActividad` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1
COLLATE = latin1_spanish_ci;


Observaciones:

El anterior cdigo puede ser guardado en un archivo con extensin sql y puede
ser importado a Mysql mediante la sentencia source.








OPERACIONES PLANTEADAS


Las siguientes operaciones se ejecutarn desde Mysql-Workbench


a) Modificar la estructura de una tabla.


En la imagen 4 se detalla la operacin con el tem a, donde el programa informa
que se ha afectado la columna detalle de la tabla actividad y a su vez afecto 8
registros de datos previamente insertados.


b) Adicionar para cada tabla, mnimo cinco filas.

En este punto se anexa el script que contiene todas las inserciones de datos a las
tablas del modelo diseado.

insert into club values (1,"Caquet Amazonico","Calle 18 No 23-12 Centro");
insert into club values (2,"La Floresta","Avenida Circunvalacion Transversal 18 Porvenir");
insert into club values (3,"Los Colonos","Calle 3 No 1-22");
insert into club values (4,"Las Brisas","Troncal 14 Paso Ancho");
insert into club values (5,"La FLorida","Carrera 21 No 21-20");

insert into trabajador values (40755987,"Maria Cecilia", "Cuellar Prada","4314141-3124563243", "Calle 5 No 6-
1", "01928828992 Bco Bogot","A");
insert into trabajador values (1119234345,"Ricardo", "Pearanda","8234567", "Carrera 24 No 32-2",
"11211123290 Bco Popular","M");
insert into trabajador values (1118324322,"Diego Andres", "Claros","3118976534", "La floresta",
"11231232157 Bco Caja Social","M");
insert into trabajador values (1116323451,"Ricardo Jose", "Meza Hincapie","3103451298", "Calle 21 No 21 -
34", "39636453543 Bco AV Villas","M");
4
insert into trabajador values (1110978849,"Ronald Ramon", "Buitrago","3279286", "Transversal 10 Calle 9",
"43755365333 Bco Banca Mia","M");

insert into lote values (1100,1119234345,"60 Hectareas", 1);
insert into lote values (1101,1118324322,"90 Hectareas", 1);
insert into lote values (1102,1116323451,"120 Hectareas", 1);
insert into lote values (1103,1110978849,"150 Hectareas", 1);

insert into cultivo values (18900,"Papa Criolla", "2 Meses", "2013-10-01",1100);
insert into cultivo values (18901,"Lechuga", "1 Mese", "2013-10-22",1101);
insert into cultivo values (18902,"Zanahoria", "3 Meses", "2013-10-04",1102);
insert into cultivo values (18903,"Cafe", "5 Meses", "2013-10-03",1102);
insert into cultivo values (18904,"Maiz", "6 Meses", "2013-10-04",1102);

insert into Actividad values (150,"Siembra","2013-09-25","10",15);
insert into Actividad values (151,"Vivero","2013-09-25","10",8);
insert into Actividad values (152,"Control de Plagas","2013-09-25","10",22);
insert into Actividad values (153,"Control Enfermedades","2013-09-25","10",18);
insert into Actividad values (154,"Ventas","2013-09-28","10",15);
insert into Actividad values (155,"Ventas","2013-09-29","10",15);
insert into Actividad values (156,"Ventas","2013-09-29","10",15);
insert into Actividad values (157,"Ventas","2013-09-30","10",15);

insert into Ventas values(91355,100,9,154);
insert into Ventas values(91356,100,9,155);
insert into Ventas values(91357,100,9,156);
insert into Ventas values(91358,100,9,157);

insert into control_actividad values(5000,150,1119234345);
insert into control_actividad values(5001,151,1110978849);
insert into control_actividad values(5002,152,1119234345);
insert into control_actividad values(5003,153,1110978849);
insert into control_actividad values(5004,154,1119234345);

insert into estado_cultivo values (18900,150,"Siembra");
insert into estado_cultivo values (18901,153,"Mantenimiento");
insert into estado_cultivo values (18902,154,"Produccin");
insert into estado_cultivo values (18903,155,"Produccin");
insert into estado_cultivo values (18904,156,"Produccin");



Observaciones:

De igual forma se anexa una captura de pantalla cuando se inserta un registro en
la tabla club y el sistema recibe e ingresa los parmetros de entrada. Esta
evidencia se puede apreciar en la imagen No. 5 presente en la siguiente pgina.































c) Eliminar una fila en alguna tabla





















En la imagen anterior, es decir, en la imagen No. 6 se aprecia en detalle que se ha
eliminado el registro de un club cuya identificacin o llave primaria es igual a 3.

5
6
d) Actualizar una fila






















En la imagen No. 7 se ha actualizado el nombre de Wilmer a un trabajador cuya
cedula es igual al dato ingresado en pantalla. El sistema notifica que se ha
afectado una fila, es decir que si se encontraba registrado y por lo tanto dicho
campo ha sido actualizado.



Observaciones:

Hasta el momento se han desarrollado las actividades solicitadas en el punto
Nmero 1 del documento PDF: GUA DE ACTIVIDADES TRABAJO
COLABORATIVO 3.

A continuacin se detallaran las consultas requeridas en el punto No. 2.










7
CONSULTAS DE LA ACTIVIDAD




a. Se requiere el nombre de los cultivos que le realizaron la actividad cuyo
nombre es la Siembra.




En la imagen No. 8 se realiza la bsqueda de los nombres de cada cultivo cuya
actividad (C.Detalle) sea Siembra. Se unen tres tablas segn el modelo desarrollado
en donde se tiene en cuenta la tabla cultivo, Estado_Cultivo y la tabla actividad.


b. Se requiere el nombre de los cultivos con el nombre de las actividades en el
ao 2013.




8
9
En la imagen No. 9 se ha realizado una bsqueda similar a la anterior, aunque se ha
decidido establecer un rango de tiempo (presente ao) para conocer sobre las
actividades del club.


c. Se requiere saber el nombre de los estados de cultivos con los respectivos
nombres de trabajadores que han realizado actividades, organizados por
nombre de cultivo.



En la imagen No. 10 como la consulta lo solicita se requiere conocer cual trabajador
ha realizado cierta actividad. En este caso se han unido 4 tablas, dado que segn el
modelo planteado es la manera de conectar la informacin y mostrar en pantalla lo
solicitado.

d. Se desea saber el nombre de los cultivos con su respectiva cantidad total de
actividades realizadas. Solo aquellos cultivos que tuvieron ms de 3 actividades
realizadas desde el 2012 hasta la fecha.
10
11
En la imagen No. 11 se ha planteado una consulta que permite contar la cantidad de
veces que un cultivo cambia de estado, es decir, que cada vez que un cultivo presente
una actividad aparecer cada movimiento.












































CONCLUSIONES

En el desarrollo del presente trabajo colaborativo, resultan las siguientes
conclusiones:

Al llevar toda la teora aprendida en el curso de bases de datos bsicos a la
prctica usando un SGBD como Mysql, es cuando cobra sentido todo el
concepto de relacional, ya que de manera directa se puede ver el efecto
de una buena o mala relacin entre las tablas.

Aplicar la sintaxis del Lenguaje de Definicin de datos permite ver crearse
el archivo en el disco duro del diseo que tenamos en el papel, lo cual es
muy satisfactorio.

Aplicar el Lenguaje de Manipulacin de datos, usando la herramienta
Mysql, permite jugar con los datos, podemos insertarlos, modificarlos,
borrarlos, lo cual da sentido al concepto de gestin de bases de datos.

Con la generacin de consultas simples y compuestas es cuando vemos
todo el poder para la gestin de datos que nos brindan los Gestores de
Bases de Datos.



























REFERENCIAS BIBLIOGRAFICAS


Bases de Datos Bsicos. Universidad Nacional Abierta y a Distancia. Medelln,
2011. http://66.165.175.211/campus13_20132/mod/resource/view.php?id=48792


GUA PRACTICA DE LABORATORIO. Bases De Datos Bsico- Universidad
Nacional Abierta y a Distancia. 2013.

Modelo Entidad Relacin. http://dis.unal.edu.co/profesores/eleon/cursos/BD/
presentaciones/ teo3_modelo er.pdf Consultado el 19 de noviembre de
2013.

Modelo Relacional. http://www.tejedoresdelweb.com/wiki/images/a/a5/ Bases
datos_teo5_modelo_relacional.pdf Consultado el 19 noviembre de 2013.

http://66.165.175.211/campus13_20132/mod/resource/view.php?id=48792

You might also like