Sei sulla pagina 1di 12

PRACTICA DE LABORATORIO

BASE DE DATOS BASICO








CURSO:
301330_62







WILMER PIMENTEL ABAUNZA
CC: 1.117.487.134






TUTOR:
ERNESTO ORLANDO PARRA CAON
INGENIERO DE SISTEMAS








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 guardad en las tablas, no servira de nada si no se pudieran
consulta, 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 de la presente prctica de laboratorio.

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.


DESARROLLO DE ACTIVIDADES
CASO DE ESTUDIO
Una empresa de construcciones civiles est interesada en que se le disee una bases
de datos relacional para el departamento de proyectos. Este departamento cuenta con
una serie de dependencias, las cuales se encuentran codificadas y tienen un cdigo y
un nombre. Cuando se realizan un contrato, se genera un proyecto, el cual es
codificado tambin y pertenecen a una sola dependencia. De los proyectos se tiene un
cdigo nico, el nombre y el presupuesto. A cada proyecto se le asigna un grupo de
empleados y un gerente de proyecto, que a la vez es empleado. De los empleados se
quiere tener el nmero de identificacin, tipo de identificacin, nombres, apellidos,
direccin residencia, nmero telfono residencia y celular. Al finalizar el proyecto, se
realiza las evaluaciones del desempeo de cada uno de los empleados que trabaj en
este y de esto se tiene la fecha inicial y final real en que particip en el proyecto,
adems de la calificacin obtenida entre 1 y 5, y una observacin dada por el gerente
del proyecto.
Adems se sabe que:
Una dependencia puede tener varios proyectos.
Un empleado puede haber trabajado en varios proyectos, pero en un momento dado,
solo trabaja en un solo proyecto.
Una dependencia, solo pertenece a un departamento.
Un proyecto solo tiene un gerente de proyecto y un empleado puede haber gerenciado
varios proyectos.


Con base en el modelo relacional de la empresa de construcciones civiles, cree una base
de datos

MODELO ENTIDAD-RELACION OBRACIVIL.


Las instrucciones para llevar este modelo a una base de datos son:

***************************************************
CREATE SCHEMA IF NOT EXISTS `OBRACIVIL`;

CREATE TABLE IF NOT EXISTS `OBRACIVIL`.`DEPENDENCIAS` (
`codigodepen` INT NOT NULL ,
`nombredepen` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`codigodepen`) )
ENGINE = InnoDB;


CREATE TABLE IF NOT EXISTS `OBRACIVIL`.`GERENTES` (
`nroidengeren` INT NOT NULL ,
`tipodengeren` VARCHAR(3) NULL ,
`nombresgeren` VARCHAR(45) NULL ,
`apellidosgeren` VARCHAR(45) NULL ,
`dirresigeren` VARCHAR(45) NULL ,
`numtelresgeren` VARCHAR(10) NULL ,
`celulargeren` VARCHAR(10) NULL ,
PRIMARY KEY (`nroidengeren`) )
ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `OBRACIVIL`.`PROYECTOS` (
`codigopro` INT NOT NULL ,
`nombrepro` VARCHAR(45) NOT NULL ,
`preupuestopro` FLOAT NULL ,
`DEPENDENCIAS_codigodepen` INT NOT NULL ,
`GERENTES_nroidengeren` INT NOT NULL ,
PRIMARY KEY (`codigopro`, `DEPENDENCIAS_codigodepen`,
`GERENTES_nroidengeren`) ,
CONSTRAINT `fk_PROYECTOS_DEPENDENCIAS`
FOREIGN KEY (`DEPENDENCIAS_codigodepen` )
REFERENCES `OBRACIVIL`.`DEPENDENCIAS` (`codigodepen` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_PROYECTOS_GERENTES1`
FOREIGN KEY (`GERENTES_nroidengeren` )
REFERENCES `OBRACIVIL`.`GERENTES` (`nroidengeren` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `OBRACIVIL`.`EMPLEADOS` (
`nroidenemple` INT NOT NULL ,
`tipodenemple` VARCHAR(3) NULL ,
`nombresemple` VARCHAR(45) NULL ,
`apellidosemple` VARCHAR(45) NULL ,
`dirresiemple` VARCHAR(45) NULL ,
`numtelresemple` VARCHAR(10) NULL ,
`celularemple` VARCHAR(10) NULL ,
`PROYECTOS_codigopro` INT NOT NULL ,
`PROYECTOS_DEPENDENCIAS_codigodepen` INT NOT NULL ,
PRIMARY KEY (`nroidenemple`, `PROYECTOS_codigopro`,
`PROYECTOS_DEPENDENCIAS_codigodepen`) ,
CONSTRAINT `fk_EMPLEADOS_PROYECTOS1`
FOREIGN KEY (`PROYECTOS_codigopro` ,
`PROYECTOS_DEPENDENCIAS_codigodepen` )
REFERENCES `OBRACIVIL`.`PROYECTOS` (`codigopro` ,
`DEPENDENCIAS_codigodepen` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;


CREATE TABLE IF NOT EXISTS `OBRACIVIL`.`EVALUACIONES` (
`ideval` INT NOT NULL AUTO_INCREMENT ,
`fechainicial` DATE NULL ,
`fechafinal` DATE NULL ,
`calificacion` INT NULL ,
`observacion` TEXT NULL ,
`EMPLEADOS_nroidenemple` INT NOT NULL ,
`EMPLEADOS_PROYECTOS_codigopro` INT NOT NULL ,
`EMPLEADOS_PROYECTOS_DEPENDENCIAS_codigodepen` INT NOT NULL ,
`GERENTES_nroidengeren` INT NOT NULL ,
PRIMARY KEY (`ideval`, `EMPLEADOS_nroidenemple`,
`EMPLEADOS_PROYECTOS_codigopro`,
`EMPLEADOS_PROYECTOS_DEPENDENCIAS_codigodepen`,
`GERENTES_nroidengeren`) ,
CONSTRAINT `fk_EVALUACIONES_EMPLEADOS1`
FOREIGN KEY (`EMPLEADOS_nroidenemple` ,
`EMPLEADOS_PROYECTOS_codigopro` ,
`EMPLEADOS_PROYECTOS_DEPENDENCIAS_codigodepen` )
REFERENCES `OBRACIVIL`.`EMPLEADOS` (`nroidenemple` ,
`PROYECTOS_codigopro` , `PROYECTOS_DEPENDENCIAS_codigodepen` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_EVALUACIONES_GERENTES1`
FOREIGN KEY (`GERENTES_nroidengeren` )
REFERENCES `OBRACIVIL`.`GERENTES` (`nroidengeren` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `OBRACIVIL`.`HISTORIAPROYECTOS` (
`hisproyectos` INT NOT NULL AUTO_INCREMENT ,
`PROYECTOS_codigopro` INT NOT NULL ,
`PROYECTOS_DEPENDENCIAS_codigodepen` INT NOT NULL ,
`PROYECTOS_GERENTES_nroidengeren` INT NOT NULL ,
`EMPLEADOS_nroidenemple` INT NOT NULL ,
`EMPLEADOS_PROYECTOS_codigopro` INT NOT NULL ,
`EMPLEADOS_PROYECTOS_DEPENDENCIAS_codigodepen` INT NOT NULL ,
PRIMARY KEY (`hisproyectos`, `PROYECTOS_codigopro`,
`PROYECTOS_DEPENDENCIAS_codigodepen`,
`PROYECTOS_GERENTES_nroidengeren`, `EMPLEADOS_nroidenemple`,
`EMPLEADOS_PROYECTOS_codigopro`,
`EMPLEADOS_PROYECTOS_DEPENDENCIAS_codigodepen`) ,
CONSTRAINT `fk_HISTORIAPROYECTOS_PROYECTOS1`
FOREIGN KEY (`PROYECTOS_codigopro` ,
`PROYECTOS_DEPENDENCIAS_codigodepen` ,
`PROYECTOS_GERENTES_nroidengeren` )
REFERENCES `OBRACIVIL`.`PROYECTOS` (`codigopro` ,
`DEPENDENCIAS_codigodepen` , `GERENTES_nroidengeren` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_HISTORIAPROYECTOS_EMPLEADOS1`
FOREIGN KEY (`EMPLEADOS_nroidenemple` ,
`EMPLEADOS_PROYECTOS_codigopro` ,
`EMPLEADOS_PROYECTOS_DEPENDENCIAS_codigodepen` )
REFERENCES `OBRACIVIL`.`EMPLEADOS` (`nroidenemple` ,
`PROYECTOS_codigopro` , `PROYECTOS_DEPENDENCIAS_codigodepen` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;


***************************************************
Se genera la siguiente base de datos:


Se realizan las siguientes operaciones:

a) Modificar la estructura de una tabla.

ALTER TABLE empleados DROP celularemple;

Se elimina un campo a la tabla empleados
Tabla original Tabla despus de la modificacin




b) Adicionar valores a las tablas.

Se procede a adicionar los registros.
INSERT INTO dependencias (codigodepen,nombredepen) VALUES('454545','Gerencia');
INSERT INTO dependencias (codigodepen,nombredepen) VALUES('666666','Sistemas');
INSERT INTO dependencias (codigodepen,nombredepen) VALUES('774433','Compras');

INSERT INTO proyectos
(codigopro,nombrepro,preupuestopro,Dependencias_codigodepen,gerentes_nroidengeren)
VALUES('222222','rurales','450000','454545','92513890');
INSERT INTO proyectos
(codigopro,nombrepro,preupuestopro,Dependencias_codigodepen,gerentes_nroidengeren)
VALUES('333333','calles','450000','454545','92513890');



c) Eliminar una fila en alguna tabla

DELETE FROM dependencias WHERE codigodepen='666666';



Tabla original Tabla despus de la eliminacin




d) Actualizar una fila
UPDATE dependencias SET nombredepen='Desarrollo' WHERE codigodepen='774433';


El resultado es el siguiente:

Tabla original Tabla despus de la modificacin





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

SNCHEZ, M.D.A. . Bases de Datos Bsicos. Universidad Nacional Abierta y a
Distancia. Medelln, 2011.


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 23 nov de 2013.

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

Potrebbero piacerti anche