Anda di halaman 1dari 38

Trabajo

Colaborati
SEPTIEMRBE
vo 1

UNAD

UNIVERSIDAD ABIERTA Y A DISTANCIA


BASE DE DATOS AVANZADA 301125_17
CEAD BARRANQUILLA

1
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

TRABAJO COLABORATIVO 1
GRUPO: 301125_17

PRESENTADO POR:

DANILO JOSE GUERRERO VENCE


COD 1.143.115.304
WILLIAN ENRIQUE GARCERANT ARIZA
COD: 72051758
ARTURO ENRIQUE CASTRO
COD:

TUTOR:
MARCO ANTONIO LOPEZ OSPINA

ESCUELA DE CIENCIAS BASICAS, TECNOLOGIAS E INGENIERIA ECBTI


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

INGENIERIA DE SISTEMAS
ZONA CRARIBE CEAD BARANQUILLA
SEPTIEMBRE DE 2016
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

INTRODUCION

En el presente trabajo se realiza una actividad que permite conocer un poco ms sobre las
bases de datos y sus usos en la solucin de problemas, se identificaron los conceptos
bsicos a tener en cuenta en el trabajo con bases de datos, mediante la solucin de
cuestionarios preguntas claves para desarrollar el tema. Tambin se realiz un ejercicio
prctico que permiti conocer la versatilidad de las herramientas seleccionadas para
trabajar en este curso la parte prctica, como son Workbench y MySQL, se realiz la
instalacin y configuracin de ambas plataformas y se dise un tutorial para documentar
el paso a paso para la instalacin de estas, luego diseamos un modelo lgico para dar
solucin al problema planteado.
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

OBJETIVOS

General

Configurar y dejar a punto un entorno de trabajo para desarrollar el curso de Bases


de datos avanzadas.

Especficos.

Dar respuestas a las 6 preguntas planteadas en el foro


Instalar correctamente las herramientas de uso en el curso
Realizar un modelo de datos para dar solucin al problema planteado
Entregar un instructivo completo, que explica como instalar y configurar las
herramientas

DESARROLLO DE LA ACTIVIDAD
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

1. Solucin a preguntas del foro

1. Enuncie 3 ventajas de un gestor de bases de datos, comparado con un gestor de


archivos.

Un gestor SGBD es relacional y esto evita redundancia e inconsistencia de datos en


comparacin con un gestor de archivo
Contienen diccionario de datos donde se encuentran las caractersticas de todos los
datos que se van a utilizar en la base creada como son: alias, tipo, contenido,
nombre etc. Esto le da una mayor integridad a los datos con respecto a los sistemas
tradicionales de archivo.
Seguridad al manipular los datos debido a que las polticas de acceso son slidas y
robustas, mientras que en los sistemas de archivo para cada base de datos debe
haber una aplicacin que realice la gestin y esto dificulta manejar la parte de
seguridad.
Acceso compartido a la base de datos cuando se usan SGBD se puede acceder a los
datos de forma concurrente sin alterar la integridad de estos, en los sistemas de
archivos no se recomienda pues se puede ocasionar informacin inconsistente lo
cual es grave en un sistema de gestin de informacin.

2. Qu problemas puede traer el tener datos redundantes en una organizacin?

Algunos de los problemas que se pueden presentar en una organizacin debido a la


redundancia de datos son:

Mayores costo de almacenamiento pues al tener datos guardados en diferentes sitios


y con la misma informacin genera una mayor inversin en almacenamiento y en
recursos hardware, mayor capacidad de disco duro, utilizacin de unidades
extrables o portables, backup o copias de seguridad etc.
No se tendra integridad en los datos pues al tener demasiadas copias y almacenadas
en diferentes sitios y con diferente personal procesndola se puede caer en la no
coincidencia de estos.
Duplicidad en los datos por ejemplo si es una institucin educativa donde se da esto
se podra presentar que los datos de los estudiantes aparezcan repetidos en los
diferentes archivos que se manejen, eso genera lentitud en los sistemas y en la
presentacin de informes.
En el momento de sacar un reporte sobre algn tema especfico. Los datos que se
entregan no son confiables y no se podr tomar una decisin con esta informacin.
Estos datos repetidos pueden repercutir al momento de realizar informes con los
cuales se manejen cuentas por pagar o por cobrar ya que alteraran el flujo normal
de caja en un negocio e incluso podran incurrir en delitos como evasin de
impuestos, fraudes y otros, de all la importancia de contar con una informacin
fidedigna en todo momento.
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

3. Los problemas de integridad y redundancia son similares o en que se


diferencian?, ejemplifique

Los conceptos integridad y redundancia son totalmente diferentes debido a que el primero
hace referencia a el valor de verdad de los datos almacenados en una base, que sean datos
basados en lo real que sean consecuentes con la informacin fsica que se tenga, que sean
objetivos y sobre todo que sea administrado por personal idneo y capacitado para el
manejo de dicha informacin; por ejemplo: podemos decir que al realizar un inventario en
el almacn (bodega) de la empresa COCACOLA se encontr que en las estanteras haban
almacenadas 200 cajas de gaseosas de 350 ml y al comparar dicha informacin con los
datos almacenados en la base de datos de inventarios de dicha empresa se encontr
registrada la misma cantidad de cajas, por lo tanto los empleados de almacn fueron
elogiados por sus superiores y compaeros. El segundo concepto se refiere a la cualidad
que tiene un dato o un conjunto de datos (informacin) de estar presentes en diferentes
archivos o bases a la vez. Como podra ser el caso de una empresa donde los departamentos
de recursos humanos y nomina utilicen las mismas bases de datos, pero las tengan
almacenadas en diferentes servidores y en diferentes archivos, incluso pueden ser
gestionados a travs de motores de gestin de bases de datos diferentes, como puede ser,
que en una oficina trabajen con ORACLE y en la otra prefieran SQL, por decir un
arbitrario.

4. Qu tipo o perfil de usuario, puede manipular datos a nivel fsico?

Como se comprendi en las lecturas de la primera unidad el nivel fsico o interno es el de


mayor relevancia, pues en este se encuentran almacenados los datos de la base, este tiene
que ver con los discos duros internos, como estn almacenados los datos fsicamente, como
estn organizados los archivos, mtodos de acceso a los registros, los tipos de registros, la
longitud, los campos que lo componen etc. Por lo tanto el perfil de la persona encargada de
esta tarea debe ser una persona muy responsable y honrada para tener el control de la
informacin teniendo en cuenta que uno de los pilares de toda organizacin es la
informacin, el BDA (Administrador de Bases de Datos) debe ser una persona de confianza
en la corporacin o entidad, debe tener el perfil profesional enfocado al diseo,
administracin y ejecucin de SGBD. En cuanto al campo de su actividad laboral y su rol
de gestin el nivel apropiado es root, en modo privilegiado o administrador (admin). El
usuario root o administrador es el usuario que puede realizar todo tipo de modificacin
consultas y eliminacin a nivel de tablas de la base de datos ya que cuenta con los
privilegios ms altos del sistema

5. Qu es la Cardinalidad y cul es su utilidad?


UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

La Cordialidad es una cualidad que indica el nmero de entidades con las que puede estar
relacionada una entidad dada. Existen 4 tipos los cuales son:

Uno a uno: (1:1) Es aquella donde la entidad dada A solo puede relacionarse con
otra entidad B.
Uno a varios: (1: N) Es aquella donde la entidad dada A puede tener relacin con
cero o varios registros de una entidad B.
Varios a uno: (M: 1) Una entidad A puede relacionarse con solo una entidad B,
mientras que esa entidad B puede relacionarse con 0 o muchas entidades en A.
Varios a varios: (M: N) Una entidad en A se puede relacionar con cero o muchas
entidades en B y viceversa.

Este concepto de Cardinalidad es muy til en el diseo de bases de datos pues nos permite
identificar las relaciones de cada uno de los registros de una entidad con otra, adems
permite determinar cules son las llaves primarias a crear, en la base de datos, sirve para
predecir cuantas filas va a devolver una consulta casi que con toda seguridad, cuanto ms
precisa es la estimacin de Cardinalidad, mejor suele ser el plan de consulta. Tambin es
til para disminuir la redundancia de datos, nos da la facilidad de hacer consultas utilizando
mltiples tablas.

6. Todos los modelos de base de datos, utilizan diccionario de datos?, explique


cuales si y para qu sirve

El diccionario de datos como su nombre lo indica es un archivo donde se encuentra


almacenada la informacin de todos los datos que forman la BD, es una gua en donde se
describe la BD y todos los objetos que la forman.
En este se almacenan informacin de todos los sitios en donde se almacena informacin en
el sistema, incluyendo nombre, alias, descripcin, contenido y organizacin, identifica los
procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la
informacin.
Los modelos que utilizan diccionario de datos son: Modelo-Entidad-Relacin, Modelo
Datos, Modelo Relacional, Modelo Esquema Estrella. Para tener un control de los
contenidos creados. Tambin nos permite que los analistas puedan conocer por ejemplo
cuantos caracteres posee un campo, que otros alias son usados para una columna dentro el
mismo sistema. Le ayuda mucho a los analistas a conocer la estructura y requerimientos del
sistema.

2. Descripcin del proceso de instalacin y configuracin de las herramientas


UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

Las herramientas que se van a utilizar en el desarrollo de este curso a nivel de base de datos
son:

MySQL Server 5.6


MySQL Workbench 6.3

MySQL Workbench
Es una herramienta visual de diseo de bases de datos (IDE) que integra desarrollo de
software, Administracin de bases de datos, diseo de bases de datos, creacin y
mantenimiento para el sistema de base de datos MySQL.
MySQL
Es la base de datos de cdigo abierto de mayor aceptacin mundial, soporta de bases de
datos relacional y es considerada como la base datos open source ms popular del mundo.
Instructivo rpido sobre la instalacin
Se debe descargar previamente el instalador de la pagina
http://dev.mysql.com/downloads/mysql/

Posteriormente seguir los siguientes pasos


UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

1. Aceptar los trminos de licencia y dar next

2. Seleccionamos el tipo de instalacin en este caso usamos developer y luego next


UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

3. Esperamos que se instalen los componentes y luego next

4. luego procedemos a configurar la red elegimos mquina de desarrollo chuleamos el


chekbox de Open firewall y luego next
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

5. Elegimos la clave para nuestro usuario root que usaremos ms adelante es importante no
olvidar esta clave ya que ser la del usuario dueo de la base de datos y luego next

6. Configuramos el servicio de Mysql sobre Windows y next


UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

7. Se aplican las configuraciones presionando Execute

8. verificamos la conexin a la base de datos presionado Check y luego next


UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

9 Aplicamos las configuraciones hechas

10. terminamos la instalacin y dejamos marcado para abrir el ide de trabajo que viene
incorporado en el instalador del Mysql
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

11. Estamos listos para trabajar en nuestro SGBD e IDE


UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

3. Modelo lgico de la base de datos

Explicacin del modelo ER


Contamos con una tabla central llamada PERSONAS la cual est destinada a almacenar
cualquier persona vinculada a la institucin inicialmente serian estudiantes, profesores y
acudientes diferenciados por un tipo de persona configurado en la tabla TIPOS_PERSONA
esto con el fin de poder adicionar cualquier persona vinculada a la institucin a futuro
podran ingresarse desde el rector hasta los empleados de oficios varios ya que solo se
tendra que crear nuevos tipos de personas para as relacionarlos a su funcin dentro de la
institucin.
Esta tabla personas integra muchas tablas de configuracin que nacen con el fin de que el
sistema sea lo ms dinmico y configurable posible estas tablas serian:
TIPOS_DOCUMENTO, DEPARTAMENTOS, LOCALIDADES, TIPOS_SEXOS
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

Esta tabla cuenta con una relacin de uno a mucho a ella misma debido que los acudientes
para el caso de los estudiantes pueden tener uno o ms estudiantes a su cargo
La tabla TIPOS_NIVELES_FORMACION brinda la posibilidad de poder almacenar el
grado acadmico tanto de alumno como maestros e incluso cualquier tipo de personas ya
que contara con todos los niveles acadmicos posibles como bachiller, universitario,
especialista, maestra, doctorado, etc
La tabla ESTADO se cre con la idea de poder deshabilitar profesores o estudiantes por
algn motivo como el retiro eta tabla se complementa con la tabla
LOG_CAMBIOS_ESTADOS ya que registra todos los cambios de estados que sufrir la
tabla personas y de esta forma no se perder la trazabilidad en el caso de que un profesor o
alumno se retire de la institucin y a futuro regrese a ella
La tabla INASISTENCIA administrara la ausencia de alumno o profesores personalizando
los tipos de inasistencias que se pueden presentar en la institucin en la tabla
TIPOS_INASISTENCIA de igual forma funcionaran la tabla:
PERMISOS- TIPOS_PERMISOS
SANCIONES - TIPOS_SANCIONES
La tabla ASIGNATURA administrara todas las asignaturas que se dictan en la institucin
las cuales deben tener un rea acadmica asociada valida que ser administrada en la tabla
REAS_ACADEMICAS por ejemplo el rea de ciencias naturales pertenece la materia de
fsica, biologa, qumica etc..
La tabla PROFESORES_ASIGNATURAS nace de la necesidad de romper la relacin
muchos a muchos entre las tablas asignatura y personas y a su vez integra la tabla
CURSOS (ej: un grado quinto puede tener 3 cursos 5a, 5b, 5c) previamente relacionada con
TIPOS_GRADO que especifica todos los grados disponibles en la institucin por ejemplo
desde primero a once grado
La tabla INFORMACIN_ACADEMICA es la que almacenara las calificaciones de cada
periodo acadmico del estudiante esta cuenta con una tabla de configuracin para
personalizar los periodos acadmicos de la institucin llamada PERIODO
Por ltimo para manejar los proyecto que nacen en la institucin tenemos la tabla
PROYECTOS en la cual se registraran los proyectos existentes en la institucin y estar
relacionada con la tabla MIEMBROS_PROYECTOS donde se asociaran los participantes
de ese proyecto ya sean profesores, estudiantes e incluso acudientes especificando el rol
que cumplen dentro del proyecto ya sea lder, miembro, observador o cualquiera que este
configurado en la tabla TIPOS_ROLES.

Script
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;


SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,
FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE,
SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

-- -----------------------------------------------------
-- Schema Colegio
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema Colegio
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `Colegio` DEFAULT CHARACTER SET utf8 ;
USE `Colegio` ;

-- -----------------------------------------------------
-- Table `Colegio`.`Estados`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`Estados` (
`idEstados` INT NOT NULL AUTO_INCREMENT,
`estdescripcion` VARCHAR(45) CHARACTER SET 'utf8' NOT NULL,
PRIMARY KEY (`idEstados`))
ENGINE = InnoDB;
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

-- -----------------------------------------------------
-- Table `Colegio`.`tipos_personas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`tipos_personas` (
`idtipos_personas` INT NOT NULL AUTO_INCREMENT,
`Descripcion` VARCHAR(45) NULL,
PRIMARY KEY (`idtipos_personas`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`departamento`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`departamento` (
`iddepartamento` INT NOT NULL AUTO_INCREMENT,
`descripcion` VARCHAR(45) CHARACTER SET 'utf8' NOT NULL,
PRIMARY KEY (`iddepartamento`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`localidad`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`localidad` (
`idlocalidad` INT NOT NULL AUTO_INCREMENT,
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

`departamento` INT NOT NULL,


`descripcion` VARCHAR(45) CHARACTER SET 'utf8' NOT NULL,
PRIMARY KEY (`idlocalidad`),
INDEX `fk_localidad_departamento1_idx` (`departamento` ASC),
CONSTRAINT `fk_localidad_departamento1`
FOREIGN KEY (`departamento`)
REFERENCES `Colegio`.`departamento` (`iddepartamento`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`tipos_documentos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`tipos_documentos` (
`idtipos_documentos` INT NOT NULL AUTO_INCREMENT,
`descripcion` VARCHAR(45) CHARACTER SET 'utf8' NOT NULL,
PRIMARY KEY (`idtipos_documentos`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`tipos_sexos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`tipos_sexos` (
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

`idsexos` INT NOT NULL AUTO_INCREMENT,


`descripcion` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idsexos`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`tipos_niveles_formacion`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`tipos_niveles_formacion` (
`idtipos_niveles_formacion` INT NOT NULL AUTO_INCREMENT,
`descripcion` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idtipos_niveles_formacion`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`Tipos_grado`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`Tipos_grado` (
`idTipos_grado` INT NOT NULL AUTO_INCREMENT,
`descripcion` VARCHAR(45) NULL,
PRIMARY KEY (`idTipos_grado`))
ENGINE = InnoDB;
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

-- -----------------------------------------------------
-- Table `Colegio`.`Cursos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`Cursos` (
`idCursos` INT NOT NULL AUTO_INCREMENT,
`grado` INT NOT NULL,
`descripcion` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idCursos`),
INDEX `fk_Cursos_Tipos_grado1_idx` (`grado` ASC),
CONSTRAINT `fk_Cursos_Tipos_grado1`
FOREIGN KEY (`grado`)
REFERENCES `Colegio`.`Tipos_grado` (`idTipos_grado`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`Personas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`Personas` (
`PerCodigo` INT NOT NULL,
`Pertipodocumento` INT NOT NULL,
`perdepartamento` INT NOT NULL,
`perlocalidad` INT NOT NULL,
`pernombre1` VARCHAR(45) NOT NULL,
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

`pernombre2` VARCHAR(45) NOT NULL,


`perapellido1` VARCHAR(45) NOT NULL,
`perapellido2` VARCHAR(45) NOT NULL,
`pertelefono1` INT NOT NULL,
`pertelefono2` INT NULL,
`perdireccion` VARCHAR(45) NOT NULL,
`persexo` INT NOT NULL,
`peracudiente` INT NOT NULL,
`pernivelformacion` INT NOT NULL,
`percurso` INT NOT NULL,
`perfechacreacion` DATE NOT NULL,
`perestado` INT NOT NULL,
`pertipopersona` INT NOT NULL,
PRIMARY KEY (`PerCodigo`),
INDEX `fk_Personas_Estados_idx` (`perestado` ASC),
INDEX `fk_Personas_tipos_usuarios1_idx` (`pertipopersona` ASC),
INDEX `fk_Personas_localidad_idx` (`perlocalidad` ASC),
INDEX `fk_Personas_departamento_idx` (`perdepartamento` ASC),
INDEX `fk_Personas_tipos_documentos_idx` (`Pertipodocumento` ASC),
INDEX `fk_Personas_tipos_sexos_idx` (`persexo` ASC),
INDEX `fk_Personas_acudiente_idx` (`peracudiente` ASC),
INDEX `fk_Personas_niveles_formacion_idx` (`pernivelformacion` ASC),
INDEX `fk_Personas_grado_idx` (`percurso` ASC),
CONSTRAINT `fk_Personas_Estados`
FOREIGN KEY (`perestado`)
REFERENCES `Colegio`.`Estados` (`idEstados`)
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Personas_tipos_personas`
FOREIGN KEY (`pertipopersona`)
REFERENCES `Colegio`.`tipos_personas` (`idtipos_personas`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Personas_localidad`
FOREIGN KEY (`perlocalidad`)
REFERENCES `Colegio`.`localidad` (`idlocalidad`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Personas_departamento`
FOREIGN KEY (`perdepartamento`)
REFERENCES `Colegio`.`departamento` (`iddepartamento`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Personas_tipos_documentos`
FOREIGN KEY (`Pertipodocumento`)
REFERENCES `Colegio`.`tipos_documentos` (`idtipos_documentos`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Personas_tipos_sexos`
FOREIGN KEY (`persexo`)
REFERENCES `Colegio`.`tipos_sexos` (`idsexos`)
ON DELETE NO ACTION
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

ON UPDATE NO ACTION,
CONSTRAINT `fk_Personas_acudiente`
FOREIGN KEY (`peracudiente`)
REFERENCES `Colegio`.`Personas` (`PerCodigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Personas_niveles_formacion`
FOREIGN KEY (`pernivelformacion`)
REFERENCES `Colegio`.`tipos_niveles_formacion` (`idtipos_niveles_formacion`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Personas_grado`
FOREIGN KEY (`percurso`)
REFERENCES `Colegio`.`Cursos` (`idCursos`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

-- -----------------------------------------------------
-- Table `Colegio`.`Areas_academicas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`Areas_academicas` (
`idAreas_academicas` INT NOT NULL AUTO_INCREMENT,
`descripcion` VARCHAR(45) NOT NULL,
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

PRIMARY KEY (`idAreas_academicas`))


ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`asignaturas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`asignaturas` (
`idasignaturas` INT NOT NULL AUTO_INCREMENT,
`area_academica` INT NOT NULL,
`descripcion` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idasignaturas`),
INDEX `fk_asignaturas_Areas_academicas1_idx` (`area_academica` ASC),
CONSTRAINT `fk_asignaturas_Areas_academicas1`
FOREIGN KEY (`area_academica`)
REFERENCES `Colegio`.`Areas_academicas` (`idAreas_academicas`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`profesores_asignaturas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`profesores_asignaturas` (
`idprofesores_asignaturas` INT NOT NULL AUTO_INCREMENT,
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

`asignatura` INT NOT NULL,


`profesor` INT NOT NULL,
`curso` INT NOT NULL,
INDEX `fk_asignaturas_has_Personas_Personas1_idx` (`profesor` ASC),
INDEX `fk_asignaturas_has_Personas_asignaturas1_idx` (`asignatura` ASC),
PRIMARY KEY (`idprofesores_asignaturas`),
INDEX `fk_profesores_asignaturas_Cursos1_idx` (`curso` ASC),
CONSTRAINT `fk_asignaturas_has_Personas_asignaturas1`
FOREIGN KEY (`asignatura`)
REFERENCES `Colegio`.`asignaturas` (`idasignaturas`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_asignaturas_has_Personas_Personas1`
FOREIGN KEY (`profesor`)
REFERENCES `Colegio`.`Personas` (`PerCodigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_profesores_asignaturas_Cursos1`
FOREIGN KEY (`curso`)
REFERENCES `Colegio`.`Cursos` (`idCursos`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

-- Table `Colegio`.`tipos_inasistencias`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`tipos_inasistencias` (
`idtipos_inasistencias` INT NOT NULL AUTO_INCREMENT,
`descripcion` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idtipos_inasistencias`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`inasistencias`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`inasistencias` (
`idinasistencias` INT NOT NULL AUTO_INCREMENT,
`tipo_inasistencia` INT NOT NULL,
`persona` INT NOT NULL,
`fecha` DATE NOT NULL,
PRIMARY KEY (`idinasistencias`),
INDEX `fk_inasistencias_tipos_idx` (`tipo_inasistencia` ASC),
INDEX `fk_inasistencias_tipos_idx1` (`persona` ASC),
CONSTRAINT `fk_inasistencias_tipos`
FOREIGN KEY (`tipo_inasistencia`)
REFERENCES `Colegio`.`tipos_inasistencias` (`idtipos_inasistencias`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_inasistencias_personas`
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

FOREIGN KEY (`persona`)


REFERENCES `Colegio`.`Personas` (`PerCodigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`tipos_permiso`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`tipos_permiso` (
`idtipos_permiso` INT NOT NULL AUTO_INCREMENT,
`descripcion` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idtipos_permiso`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`permisos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`permisos` (
`idpermisos` INT NOT NULL AUTO_INCREMENT,
`tipo_permiiso` INT NOT NULL,
`persona` INT NOT NULL,
`fechacreacion` DATE NOT NULL,
`descripcion` VARCHAR(100) NOT NULL,
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

PRIMARY KEY (`idpermisos`),


INDEX `fk_permisos_tipos_permiso1_idx` (`tipo_permiiso` ASC),
INDEX `fk_permisos_persona_idx` (`persona` ASC),
CONSTRAINT `fk_permisos_tipos_permiso1`
FOREIGN KEY (`tipo_permiiso`)
REFERENCES `Colegio`.`tipos_permiso` (`idtipos_permiso`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_permisos_persona`
FOREIGN KEY (`persona`)
REFERENCES `Colegio`.`Personas` (`PerCodigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`tipos_sanciones`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`tipos_sanciones` (
`idtipos_sanciones` INT NOT NULL AUTO_INCREMENT,
`descripcion` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idtipos_sanciones`))
ENGINE = InnoDB;
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

-- -----------------------------------------------------
-- Table `Colegio`.`sanciones`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`sanciones` (
`idsanciones` INT NOT NULL AUTO_INCREMENT,
`persona` INT NOT NULL,
`tipo_sancion` INT NOT NULL,
`fecha` DATE NOT NULL,
`descripcion` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idsanciones`),
INDEX `fk_sanciones_tipos_idx` (`tipo_sancion` ASC),
INDEX `fk_sanciones_personas_idx` (`persona` ASC),
CONSTRAINT `fk_sanciones_tipos`
FOREIGN KEY (`tipo_sancion`)
REFERENCES `Colegio`.`tipos_sanciones` (`idtipos_sanciones`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_sanciones_personas`
FOREIGN KEY (`persona`)
REFERENCES `Colegio`.`Personas` (`PerCodigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

-- Table `Colegio`.`proyectos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`proyectos` (
`idproyectos` INT NOT NULL AUTO_INCREMENT,
`nombre` VARCHAR(45) NOT NULL,
`descripcion` VARCHAR(45) NOT NULL,
`Fechainicio` VARCHAR(45) NOT NULL,
`observacion` VARCHAR(45) NULL,
PRIMARY KEY (`idproyectos`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`tipos_roles`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`tipos_roles` (
`idtipos_roles` INT NOT NULL AUTO_INCREMENT,
`descripcion` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idtipos_roles`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`miembros_proyectos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`miembros_proyectos` (
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

`idmiembros_proyectos` INT NOT NULL AUTO_INCREMENT,


`proyecto` INT NOT NULL,
`persona` INT NOT NULL,
`rol` INT NOT NULL,
PRIMARY KEY (`idmiembros_proyectos`),
INDEX `fk_miembros_proyectos_proyectos1_idx` (`proyecto` ASC),
INDEX `fk_miembros_proyectos_tipos_roles1_idx` (`rol` ASC),
INDEX `fk_miembros_proyectos_Personas1_idx` (`persona` ASC),
CONSTRAINT `fk_miembros_proyectos_proyectos1`
FOREIGN KEY (`proyecto`)
REFERENCES `Colegio`.`proyectos` (`idproyectos`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_miembros_proyectos_Personas1`
FOREIGN KEY (`persona`)
REFERENCES `Colegio`.`Personas` (`PerCodigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_miembros_proyectos_tipos_roles1`
FOREIGN KEY (`rol`)
REFERENCES `Colegio`.`tipos_roles` (`idtipos_roles`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

-- -----------------------------------------------------
-- Table `Colegio`.`periodo`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`periodo` (
`idperiodo` INT NOT NULL AUTO_INCREMENT,
`descripcion` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idperiodo`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`informacion_academica`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`informacion_academica` (
`idinformacion_academica` INT NOT NULL AUTO_INCREMENT,
`persona` INT NOT NULL,
`profesor` INT NOT NULL,
`asignatura` INT NOT NULL,
`curso` INT NOT NULL,
`periodo` INT NOT NULL,
`calificacion` INT NOT NULL,
`ano` VARCHAR(5) NOT NULL,
`fecha_creacion` DATE NOT NULL,
PRIMARY KEY (`idinformacion_academica`),
INDEX `fk_informacion_academica_periodo1_idx` (`periodo` ASC),
INDEX `fk_informacion_acade_personas_idx` (`persona` ASC),
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

INDEX `fk_informacion_acade_personas2_idx` (`profesor` ASC),


INDEX `fk_informacion_acade_asignatura_idx` (`asignatura` ASC),
INDEX `fk_informacion_acade_curso_idx` (`curso` ASC),
CONSTRAINT `fk_informacion_academica_periodo1`
FOREIGN KEY (`periodo`)
REFERENCES `Colegio`.`periodo` (`idperiodo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_informacion_acade_personas`
FOREIGN KEY (`persona`)
REFERENCES `Colegio`.`Personas` (`PerCodigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_informacion_acade_personas2`
FOREIGN KEY (`profesor`)
REFERENCES `Colegio`.`Personas` (`PerCodigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_informacion_acade_asignatura`
FOREIGN KEY (`asignatura`)
REFERENCES `Colegio`.`asignaturas` (`idasignaturas`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_informacion_acade_curso`
FOREIGN KEY (`curso`)
REFERENCES `Colegio`.`Cursos` (`idCursos`)
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `Colegio`.`log_cambios_estados`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Colegio`.`log_cambios_estados` (
`idlog_cambios_estados` INT NOT NULL AUTO_INCREMENT,
`persona` INT NOT NULL,
`fecha_cambio_estado` DATE NOT NULL,
`estado_asignado` INT NOT NULL,
`observaciuon` VARCHAR(100) NULL,
PRIMARY KEY (`idlog_cambios_estados`),
INDEX `fk_log_cambios_estados_Personas1_idx` (`persona` ASC),
INDEX `fk_log_cambios_estados_Estados1_idx` (`estado_asignado` ASC),
CONSTRAINT `fk_log_cambios_estados_Personas1`
FOREIGN KEY (`persona`)
REFERENCES `Colegio`.`Personas` (`PerCodigo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_log_cambios_estados_Estados1`
FOREIGN KEY (`estado_asignado`)
REFERENCES `Colegio`.`Estados` (`idEstados`)
ON DELETE NO ACTION
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

CONCLUSIONES
Las bases de datos son importantes para el tratamiento de la informacin, por lo tanto se
deben tener bases conceptuales slidas para poder dar solucin idneas a los problemas que
se nos presenten en la vida real, es importante conocer herramientas capaces de ayudarnos
a trabajar de forma rpida y segura en nuestros proyectos, para ser idneos en nuestras
implementaciones, es relevante decir que los modelos lgicos son la base para poder dar
soluciones de calidad.
UNIVERSIDAD ABIERTA Y A DISTANCIA
PROYECTO DE GRADO 201014_45

REFERENCIAS BIBLIOGRFICAS

Snchez L. Modelo Entidad-Relacin, 26 de Abril de 2013. Tomado de:


https://www.youtube.com/watch?v=hLpQFX_nMFI
Ramrez D. Salamanca 1998, Estructura de datos. Tomado de:
http://html.rincondelvago.com/estructura-de-datos_3.html
Autor annimo, Probando MySQL 5.7.2: error 1053 al instalar. Tomado de:
http://www.manejandodatos.es/2013/09/probando-mysql-5-7-2-con-errores-en-la-
instalacion/
Mrquez M., diseo lgico de bases de datos relacionales. Tomado de:
http://www3.uji.es/~mmarques/f47/teoria/tema7.pdf
Garcia L. crear diagrama en workbench. Tomado de:
https://www.youtube.com/watch?v=e99VNbVuiJg
D. Pacheco Jimnez, 12 de Feb 2016. Tomado de:
https://www.youtube.com/watch?v=LpeX-JVDaPM

Anda mungkin juga menyukai