Sei sulla pagina 1di 27

UNIDAD 1: FASE 2

TRABAJO COLABORATIVO DE MODELAMIENTO ENTIDAD RELACIÓN

Presentador por:
JOSE RICARDO HERNANDEZ PARRA: 79711685

BASES DE DATOS BASICO


GRUPO: 301330_39

Tutora
DILSA ENITH TRIANA

CEAD: (BOGOTA CRA.30) JOSE ACEVEDO Y GÓMEZ


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA.
INTRODUCCIÓN

En el siguiente trabajo se presenta la primera actividad colaborativa del curso,


Bases de datos, en donde plasmaremos lo que hemos ido aprendiendo en el
transcurso del tiempo, para esto se realiza el análisis como caso de estudio
planteado el cual será descrito más adelante.

Con esto se pretende solucionar el problema planteado, desarrollar la capacidad de


análisis frente a problemas cotidianos presentados en la industria. La solución a
estos problemas se presentará utilizando los modelos planteados en la literatura
especializada en bases de datos, apoyado en herramientas de software diseñadas
para esto
OBJETIVOS
 Desarrollar e interiorizar las definiciones y conceptos pertinentes a Entidad Relación.
 Elaboración de un modelo Entidad-Relación.
 Elaboración de una matriz de relaciones
1.1. PROBLEMÁTICA

Se trata de diseñar una Base de Datos, sobre la cual se basará un Sistema de


Información para la Gestión de Préstamos de los Documentos (LIBROS, REVISTAS
y ARTICULOS) de la Biblioteca de Live’s University.

Actualmente, la biblioteca funciona con una hoja de cálculo en Excel con los datos
básicos de los diferentes Documentos con los que cuenta la Biblioteca. En la hoja
de cálculo hay una entrada o fila para cada uno de los documentos que existen en
la biblioteca (LIBROS, REVISTAS y ARTICULOS). La biblioteca tiene a disposición
de los estudiantes un computador con la hoja de cálculo abierta para que busquen
el documento (LIBROS, REVISTAS y ARTICULOS) de su interés por algún criterio,
Tema o Autor, etc., si el Documento se encuentra, el estudiante se dirige a la
recepcionista y los solicita en préstamo. La recepcionista, busca el Ejemplar del
Documento requerido por el estudiante en la Sala donde se encuentran los
Ejemplares de cada uno de los Documentos.

Posteriormente la recepcionista formaliza el Préstamo del Ejemplar al Estudiante,


en ese momento registra la fecha de préstamo y el estudiante firma y se lleva los
ejemplares que ha prestado. Un estudiante puede conservar un Ejemplar de Algún
Documento hasta tres días.

Además de esta explicación dada por la Encargada de la Biblioteca, el equipo de


analistas y diseñadores de bases de datos ha recolectado información sobre el
sistema deseado mediante una serie entrevistas con los usuarios relacionados con
el Proceso de Préstamos de Ejemplares de los Documentos de la Biblioteca, la cual
se puede resumir de la siguiente forma:
 Los Documentos tienen registrados el ISBN, el título, autor(es), el idioma en
que estos están escritos, tema(s) y el tipo de documento (LIBROS,
REVISTAS y ARTICULOS).
 Cada Documento tiene uno o varios Temas, los cuales aparecen en la hoja
de cálculo registrados en diferentes columnas. Al momento de las
entrevistas, la hoja de cálculo tenía tres columnas así, Tema1, Tema2,
Tema3, la encargada de mantener esta hoja de cálculo le ha indicado a los
analistas y diseñadores que existen documentos que tratan de más de tres
temas, pero que no la ha actualizado. Manifiesta que, así como está la hoja
de cálculo permite hacer consultas del tipo: “Libros o artículos que tenemos
acerca de Bases de Datos Relacionales o No Relacionales y Lenguaje SQL”,
“Artículos que podemos consultar sobre el lenguaje SQL.”, pero que con más
columnas se podría hacer consultas más especializadas.
 Una bibliotecóloga que ha sido contratada para organizar los Ejemplares de
cada uno de los Documentos comentó que los temas de los documentos se
pueden dividir en sub temas y así sucesivamente, por ejemplo, en el tema de
DISEÑO podemos distinguir una serie de sub temas, como son DISEÑO
FISICO, DISEÑO LOGICO y DISEÑO CONCEPTUAL, el sub tema DISEÑO
FISICO puede contener a su vez INDICES, PARTICIONAMIENTO o
METODOS DE ACCESO, y así sucesivamente. Adicionalmente, la
Bibliotecóloga sugierió registrar el Estado (Bueno, Regular o Dañado) de
cada Ejemplar de los Documentos, el número del ejemplar (ejemplar 1,
ejemplar 2, etc.), la editorial de cada uno de los ejemplares y, un número
topográfico que ayuda con la ubicación de los ejemplares en las estanterías
de las salas de la Biblioteca. Posteriormente indicó que de cada Documento
se tiene establecido que se requiere de al menos un ejemplar.
 Cada documento puede tener varios Autores de ellos se requiere registrar en
la base de datos el nombre y su nacionalidad.
 De los estudiantes es importante que se pueda conocer su nombre,
identificación, el programa que estudia, sexo, email, teléfono y dirección de
domicilio y si es un estudiante activo o no.
 Los Estudiantes solicitan en préstamos Ejemplares de los Documentos de la
Biblioteca. La institución permite que un estudiante lleve hasta máximo 3
Ejemplares de un Documento, siempre y cuando el estudiante se encuentre
activo como estudiante regular. Además, se desea que la base de datos
controle que la fecha de devolución de los ejemplares sea posterior a la fecha
de préstamo de los ejemplares. Los estudiantes que entreguen los
ejemplares después de tres días calendarios (no importan que sean festivos
o fin de semana) sean penalizados con una multa de $5.000.00 por día.

Con la información anterior, suministrada por los funcionarios de la Biblioteca, se


pretende que se diseñe una base de datos que permita mejorar el servicio a los
usuarios. Se mejore el control sobre los Documentos y sobre los Ejemplares de
Cada uno de esos Documentos. También, que a futuro se programe una aplicación
que automatice el proceso de préstamos de los ejemplares de los Documentos y
llevar un registro de multas y ubicación de los Ejemplares de los Documentos
(cuales está prestados y cuales están en sala).
1.2. Entidades requeridas
Justificación
Entidad principal de la Atributos de la clase Intención o el por qué se debe usar.
elección
Cantidad de  Id Inventariar y tener unidades disponibles
libros  Num_ejemplar para el préstamo sin perder la obra
Ejemplares

existentes por Fecha_adqui original-
libro  idDocumento
Datos numDocumento Datos básicos que debe contener una
primarios de tipoDocumento persona que es actor principal del sistema.
cualquier nombre
Persona
actor apellidos
nacionalidad
fechaNacimiento
Temáticas  Id En el enunciado se pide clasificar los
dentro de la  Nombre documentos por temas para facilitar la
biblioteca,  Descripción búsqueda de los ejemplares.
Tema
ciencias
naturales,
química etc.
Producto id Porque existen libros, revistas, actas, etc.
fundamental idioma
del problema titulo
ISBN
Documento
fkIdAutor
fkIdTipo
fkIdTema

Clasificación Id Clasificación que será usada para la


TipoDocumento de los  Nombre clasificación de los libros.
documentos Descripción
Acción fechaPrestamo Registrar transacciones de tipo préstamo
Préstamo realizada por fechaDevolucion de los libros y para saber qué libro se
fkIdEjemplar prestó y a que estudiante.
los fkIdEstudiante
estudiantes
Justificación
Entidad principal de la Atributos de la clase Intención o el por qué se debe usar.
elección
Actor que fkPersona Saber quién realiza el préstamo
Estudiantes presta libros. estado
codigo
Entidad a la id Saber a qué programa pertenece el
que nombre estudiante
Programa pertenecen facultad
los
estudiantes
Los que fkIdPersona Clasificación y búsqueda de los autores,
Autores producen los nombreCitacion esto facilita encontrar los libros.
libros clasificación
Libros con id Saber que libros tienen varios autores
varios fkIdAutor
Conjuntodeautoresia
autores fkIdDocumento
fechaPublicacion
Lista de numeroLibros Tipos de escritos de cada autor, ya que
géneros que fkIdGenero cada autor escribe textos de diversos
Conjuntodegeneros
escribe un fkIdAutor géneros literarios.
autor
Tema de id Tema de escritura predilecta por cada uno
Genero escritura de nombre de los autores.
autor descripcion
Lugar donde Id Encontrar el libro fácilmente
Ubicación están los  numeroEstante
ejemplares Descripción
Tema  Id Búsqueda de registros
segundo por Nombre
Subtema
el cual se Descripción
puede buscar
un
documento
Poner  id numDiasVencidos Sancionar los retrasos en entregas
Multa sanciones  valorDia costoTotalMulta
 descripción

1.3. Descripción de atributos y sus restricciones naturales y restricciones adicionales, Dominios


Entidad Atributo id Tipo Tamaño obligatoriedad Cardinalidad
 Id X int 10 SI M
 Num_ejemplar int 15 SI 1
Ejemplares  Fecha_adqui Date 25 SI 1
time
idDocumento X int 10 SI 1
numDocumento X int 10 SI 1
tipoDocumento Varchar 10 SI M
nombre Varchar 10 SI 1
apellidos Varchar 15 SI 1
nacionalidad Varchar 20 SI 1
Persona fechaNacimiento Date 24 SI 1
edad Int 10 SI M
email Varchar 20 SI 1
dirección Varchar 120 SI 1
teléfono Int 40 SI 1
sexo Varchar 5 SI 1
Tema  Id X Int 10 SI 1
Genero  Nombre Varchar 50 SI M
Subtema Descripción Varchar 300 SI 1
TipoDocumennto
id X int 10 SI 1
Documento idioma Varchar 12 SI 1
titulo Varchar 14 SI 1
ISBN Varchar 18 SI M
fkIdAutor int 16 SI 1
fkIdTipo Int 24 SI 1
FkIdTema Int 23 SI 1
Entidad Atributo id Tipo Tamaño obligatoriedad Cardinalidad
fechaPrestamo Int 24 SI 1
fechaDevolucion Int 25 SI M
Préstamo
fkIdEjemplar Int 26 SI M
fkIdEstudiante X int 10 SI M
fkPersona X int 10 SI 1
Estudiante estado Varchar 14 SI M
codigo int 15 SI M
fkIdPersona X int 10 SI M
Autor nombreCitacion Varchar 15 SI 1
clasificación Varchar 15 SI M
id X int 10 SI M
fkIdAutor Int 20 SI M
Conjuntodeautoresia
fkIdDocumento Int 20 SI M
fechaPublicacion int 20 SI M
Conjuntodegeneros numeroLibros int 10 SI
fkIdGenero X int 10 SI M
fkIdAutor X int 10 SI M
 Id X int 10 SI 1
Ubicación  numeroEstante int 15 SI
Descripción Varchar 10 SI
id X int 10 SI 1
valorDia int 15 SI
Multa descripción Varchar 15 SI
numDiasVencidos int 15 SI
costoTotalMulta int 20 SI
1.4. Descripción ampliada de las relaciones determinadas en la Matriz de Relaciones

Relació Entidades Rol Entidad Pregunta Pregunta Rta. Relación Grad Ayuda a Observación/restricciones/atrib
n 1 2 para para Cardinalida es o identificar utos
determinar determinar d. transferibl entidades
opcionalid cardinalida e participant
ad d es
R1 Estudiante Presta Préstam Un Cuantos 1 Si 1:1 Ambas Un estudiante solo puede prestar
o estudiante prestamos plenamente varios libros de temática diferente
está presta? o uno si es de reserva.
obligado a
prestar
libros ?
Préstamo Presta Estudian Un Cuantos 1 No Ambas
te préstamo libros se plenamente
está pueden
obligado a prestar?
prestar
libros?
R2 Estudiante Perten Program Los A cuantos 1 No 1:1 Ambas Un estudiante solo puede
ece a estudiantes programa plenamente pertenecer a un programa de
están pertenece? programa.
obligados a
pertenecer
a un
programa?
Programa posee Estudian Un Cuantos M Si Ambas
te programa estudiantes plenamente
está tiene?
obligado a
tener
estudiantes
?
R3 Autor Posee Doct Un autor Cuantos M Si M:M Ambas Un autor puede tener muchos
está documentos plenamente documentos y un documento ser
obligado a escribe? escrito por varios autores.
poseer
libros?
Doct Posee Autor Un libro ¿Cuantos M Si Ambas
debe tener autores plenamente
autor? tiene?
Relació Entidades Rol Entidad Pregunta Pregunta Rta. Relación Grad Ayuda a Observación/restricciones/atrib
n 1 2 para para Cardinalida es o identificar utos
determinar determinar d. transferibl entidades
opcionalid cardinalida e participant
ad d es
R4 Ejemplar Posee Doct Un De cuantos M No M:1 Ambas Un documento puede tener
documento documentos plenamente muchos ejemplares pero un
debe tener puede ser ejemplar solo puede ser de un
ejemplares? ejemplar? libro
Doct Posee Ejemplar Un ejemplar Cuantos 1 No Ambas
debe ser de ejemplares plenamente
un libro? tiene?
R5 Tema Posee Doct Un Cuantos M Si M:M Ambas
documento documentos plenamente
debe tener hablan de
tema? él?
Doct Posee Tema Un tema Cuantos M Si Ambas
debe tener temas plenamente
libros? puede
hablar?
R6 Préstamo Contie Doct Un Cuantos M No M:1 Ambas
ne préstamo doc. Puede plenamente
debe tener prestar?
documentos
?
Doct Ser Préstam Un En cuantos 1 No Ambas
o documento prestamos plenamente
debe ser puede
prestado? estar?
R7 Ejemplar Esta Ubicació Un ejemplar Cuantas 1 Si 1:M Ambas Un ubicación puede tener
n debe estar ubicaciones plenamente muchos ejemplares pero un
ubicado en puede ejemplar solo puede estar en un
una tener? lugar.
ubicación?
Ubicación Esta Ejemplar Una Cuantos M Si Ambas
ubicación ejemplares plenamente
debe tener alberga?
ejemplares?
R8 Multa Posee Préstam Una multa A cuantos 1 Si 1:M Ambas
o está prestamos plenamente
obligada a hace
ser para referencia?
libros?
Relació Entidades Rol Entidad Pregunta Pregunta Rta. Relación Grad Ayuda a Observación/restricciones/atrib
n 1 2 para para Cardinalida es o identificar utos
determinar determinar d. transferibl entidades
opcionalid cardinalida e participant
ad d es

Préstamo Posee Multa Un Cuantas M No Ambas


préstamo multas plenamente
está puede
obligado a tener?
estar
multado?

R9 TipoDocu Ser Doct M No M:1 Ambas


me plenamente
Doct Ser tipoDoc 1 Si
1. Etapa de Diseño (Modelamiento Relacional)

Figura 2. modelo entidad relación.


1.1. Modelo relacional normalizado

Figura 1. Modelo relacional.


2. Etapa de Desarrollo (Generación de Scripts DDL con el Lenguaje SQL)
2.1. 1. Programación con el lenguaje SQL del Script DDL

-- MySQL Script generated by MySQL Workbench


-- 03/21/18 21:42:03
-- Model: New Model Version: 1.0
-- 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 biblioteca
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema biblioteca
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `biblioteca` DEFAULT CHARACTER SET utf8 COLLATE
utf8_general_ci ;
USE `biblioteca` ;

-- -----------------------------------------------------
-- Table `biblioteca`.`Tipo`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`Tipo` (
`idtipoDocumento` INT NOT NULL,
`nombreTipo` VARCHAR(45) NOT NULL,
`descripcion` VARCHAR(300) NULL,
PRIMARY KEY (`idtipoDocumento`),
UNIQUE INDEX `nombreTipo_UNIQUE` (`nombreTipo` ASC))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`Tema`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`Tema` (
`idTema` INT NOT NULL,
`nombreTema` VARCHAR(45) NOT NULL,
`descripcion` VARCHAR(45) NULL,
PRIMARY KEY (`idTema`),
UNIQUE INDEX `nombreTema_UNIQUE` (`nombreTema` ASC))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`Subtema`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`Subtema` (
`idsubtema` INT NOT NULL,
`nombreSubtema` VARCHAR(45) NOT NULL,
`descripcion` VARCHAR(300) NULL,
`Tema_idTema` INT NOT NULL,
PRIMARY KEY (`idsubtema`, `Tema_idTema`),
UNIQUE INDEX `nombreSubtema_UNIQUE` (`nombreSubtema` ASC),
INDEX `fk_Subtema_Tema1_idx` (`Tema_idTema` ASC),
CONSTRAINT `fk_Subtema_Tema1`
FOREIGN KEY (`Tema_idTema`)
REFERENCES `biblioteca`.`Tema` (`idTema`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`Documento`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`Documento` (
`idDocumento` INT NOT NULL,
`TipoDocumento_idtipoDocumento` INT NOT NULL,
`Tema_idTema` INT NOT NULL,
`idioma` VARCHAR(45) NOT NULL,
`titulo` VARCHAR(45) NULL,
`ISBN` VARCHAR(45) NULL,
PRIMARY KEY (`idDocumento`, `TipoDocumento_idtipoDocumento`, `Tema_idTema`),
INDEX `fk_Documento_TipoDocumento1_idx` (`TipoDocumento_idtipoDocumento`
ASC),
INDEX `fk_Documento_Tema1_idx` (`Tema_idTema` ASC),
CONSTRAINT `fk_Documento_TipoDocumento1`
FOREIGN KEY (`TipoDocumento_idtipoDocumento`)
REFERENCES `biblioteca`.`Tipo` (`idtipoDocumento`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Documento_Tema1`
FOREIGN KEY (`Tema_idTema`)
REFERENCES `biblioteca`.`Tema` (`idTema`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`Persona`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`Persona` (
`numeroDocumento` INT NOT NULL,
`apellidos` VARCHAR(45) NOT NULL,
`nombre` VARCHAR(45) NOT NULL,
`tipoDocumento` VARCHAR(45) NOT NULL,
`sexo` VARCHAR(45) NOT NULL,
`fechaNacimiento` DATE NOT NULL,
`edad` INT NOT NULL,
`nacionalidad` VARCHAR(45) NOT NULL,
`direccion` VARCHAR(45) NOT NULL,
`telefono` INT NOT NULL,
PRIMARY KEY (`numeroDocumento`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`Autor`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`Autor` (
`Persona_numeroDocumento` INT NOT NULL,
`Conjuntodegeneros_idConjuntodegeneros` INT NOT NULL,
`Conjuntodegeneros_Genero_idGenero` INT NOT NULL,
`nombreCitaciones` VARCHAR(40) NULL,
`clasificacion` VARCHAR(45) NULL,
INDEX `fk_Autor_Persona1_idx` (`Persona_numeroDocumento` ASC),
PRIMARY KEY (`Persona_numeroDocumento`),
CONSTRAINT `fk_Autor_Persona1`
FOREIGN KEY (`Persona_numeroDocumento`)
REFERENCES `biblioteca`.`Persona` (`numeroDocumento`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`ConjuntoDeAutores`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`ConjuntoDeAutores` (
`Documento_idDocumento` INT NOT NULL,
`Autor_Persona_numeroDocumento` INT NOT NULL,
`fechaPublicacion` DATE NOT NULL,
PRIMARY KEY (`Documento_idDocumento`, `Autor_Persona_numeroDocumento`),
INDEX `fk_Conjuntodeautoresia_Autor1_idx` (`Autor_Persona_numeroDocumento`
ASC),
CONSTRAINT `fk_Conjuntodeautoresia_Documento1`
FOREIGN KEY (`Documento_idDocumento`)
REFERENCES `biblioteca`.`Documento` (`idDocumento`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Conjuntodeautoresia_Autor1`
FOREIGN KEY (`Autor_Persona_numeroDocumento`)
REFERENCES `biblioteca`.`Autor` (`Persona_numeroDocumento`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`GeneroLiterario`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`GeneroLiterario` (
`idGenero` INT NOT NULL,
`nombre` VARCHAR(45) NOT NULL,
`descripcion` VARCHAR(45) NULL,
PRIMARY KEY (`idGenero`),
UNIQUE INDEX `nombre_UNIQUE` (`nombre` ASC))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`ConjuntoDeGeneros`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`ConjuntoDeGeneros` (
`Autor_Persona_numeroDocumento` INT NOT NULL,
`Genero_idGenero` INT NOT NULL,
`numeroLibros` INT NULL,
PRIMARY KEY (`Autor_Persona_numeroDocumento`, `Genero_idGenero`),
INDEX `fk_Conjuntodegeneros_Genero1_idx` (`Genero_idGenero` ASC),
CONSTRAINT `fk_Conjuntodegeneros_Autor1`
FOREIGN KEY (`Autor_Persona_numeroDocumento`)
REFERENCES `biblioteca`.`Autor` (`Persona_numeroDocumento`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Conjuntodegeneros_Genero1`
FOREIGN KEY (`Genero_idGenero`)
REFERENCES `biblioteca`.`GeneroLiterario` (`idGenero`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`Programa`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`Programa` (
`idPrograma` INT NOT NULL,
`nombre` VARCHAR(45) NOT NULL,
`facultad` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idPrograma`))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`Estudiante`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`Estudiante` (
`Persona_numeroDocumento` INT NOT NULL,
`Programa_idPrograma` INT NOT NULL,
`estado` INT NOT NULL,
`codigo` INT NOT NULL,
UNIQUE INDEX `codigo_UNIQUE` (`codigo` ASC),
INDEX `fk_Estudiante_Persona1_idx` (`Persona_numeroDocumento` ASC),
PRIMARY KEY (`Persona_numeroDocumento`, `Programa_idPrograma`),
INDEX `fk_Estudiante_Programa1_idx` (`Programa_idPrograma` ASC),
CONSTRAINT `fk_Estudiante_Persona1`
FOREIGN KEY (`Persona_numeroDocumento`)
REFERENCES `biblioteca`.`Persona` (`numeroDocumento`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Estudiante_Programa1`
FOREIGN KEY (`Programa_idPrograma`)
REFERENCES `biblioteca`.`Programa` (`idPrograma`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`Ubicacion`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`Ubicacion` (
`idUbicacion` INT NOT NULL,
`numeroEstante` INT NOT NULL,
`descripcion` VARCHAR(45) NULL,
PRIMARY KEY (`idUbicacion`),
UNIQUE INDEX `numeroEstante_UNIQUE` (`numeroEstante` ASC))
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`Prestamo`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`Prestamo` (
`idPrestamo` INT NOT NULL,
`Estudiante_Persona_numeroDocumento` INT NOT NULL,
`fechaPrestamo` DATETIME NOT NULL,
`fechaDevolucion` DATETIME NOT NULL,
PRIMARY KEY (`idPrestamo`, `Estudiante_Persona_numeroDocumento`),
INDEX `fk_Prestamo_Estudiante1_idx` (`Estudiante_Persona_numeroDocumento` ASC),
CONSTRAINT `fk_Prestamo_Estudiante1`
FOREIGN KEY (`Estudiante_Persona_numeroDocumento`)
REFERENCES `biblioteca`.`Estudiante` (`Persona_numeroDocumento`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`Ejemplar`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`Ejemplar` (
`idEjemplar` INT NOT NULL,
`Documento_idDocumento` INT NOT NULL,
`Ubicacion_idUbicacion` INT NOT NULL,
`Prestamo_idPrestamo` INT NULL,
`numeroTipografico` INT NOT NULL,
`editorial` VARCHAR(45) NOT NULL,
`numero` INT NOT NULL,
`estadoPrestamo` VARCHAR(45) NOT NULL,
`estadoFisico` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idEjemplar`, `Ubicacion_idUbicacion`, `Documento_idDocumento`),
UNIQUE INDEX `numeroTipografico_UNIQUE` (`numeroTipografico` ASC),
INDEX `fk_Ejemplar_Prestamo1_idx` (`Prestamo_idPrestamo` ASC),
INDEX `fk_Ejemplar_Documento1_idx` (`Documento_idDocumento` ASC),
INDEX `fk_Ejemplar_Ubicacion1_idx` (`Ubicacion_idUbicacion` ASC),
CONSTRAINT `fk_Ejemplar_Prestamo1`
FOREIGN KEY (`Prestamo_idPrestamo`)
REFERENCES `biblioteca`.`Prestamo` (`idPrestamo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Ejemplar_Documento1`
FOREIGN KEY (`Documento_idDocumento`)
REFERENCES `biblioteca`.`Documento` (`idDocumento`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Ejemplar_Ubicacion1`
FOREIGN KEY (`Ubicacion_idUbicacion`)
REFERENCES `biblioteca`.`Ubicacion` (`idUbicacion`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `biblioteca`.`Multa`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `biblioteca`.`Multa` (
`idMulta` INT NOT NULL,
`Prestamo_idPrestamo` INT NULL,
`valorDia` INT NULL,
`numeroDiasVencidos` INT NULL,
`costoTotal` INT NULL,
PRIMARY KEY (`idMulta`),
INDEX `fk_Multa_Prestamo1_idx` (`Prestamo_idPrestamo` ASC),
CONSTRAINT `fk_Multa_Prestamo1`
FOREIGN KEY (`Prestamo_idPrestamo`)
REFERENCES `biblioteca`.`Prestamo` (`idPrestamo`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Figura 2. Creación del script.

Figura 3. Creación del script.


Figura 4. Creación de la base de datos.
2.2. 2. Programación con el lenguaje SQL del script DML para poblar
las tablas de la base de datos (especialmente las tablas maestras o de
referencia o tablas de códigos)

SELECT * FROM `biblioteca`.persona;


SELECT * FROM `biblioteca`.documento;
SELECT * FROM `biblioteca`.estudiante;

INSERT INTO `biblioteca`.`persona` (`numeroDocumento`, `apellidos`, `nombre`,


`tipoDocumento`, `sexo`, `fechaNacimiento`, `edad`, `nacionalidad`, `direccion`,
`telefono`) VALUES ('1099683470', 'zabala', 'andres', 'CC', 'Masculino', '1994-10-12
00:00:00', '23', 'Colombiano', 'crr 55 #88-44', '3195148');

DELETE FROM `biblioteca`.`persona` WHERE `numeroDocumento`='1099683470';

UPDATE `biblioteca`.`persona` SET `apellidos`='MUÑOZ', `nombre`='VICTOR' WHERE


`numeroDocumento`='1099683470';

2.3. 3. Programación con el lenguaje SQL el Scripts DCL para


otorgar los permisos sobre los objetos de la base de datos a otros
usuarios/Esquemas de la base de datos

CREATE USER 'victortorres'@'localhost' IDENTIFIED BY '12345';


GRANT ALL PRIVILEGES ON `biblioteca`.persona TO 'victortorres'@'localhost';
FLUSH PRIVILEGES;

2.4. 4. Generación de Consultas simples sobre las tablas de la base


de datos

SELECT * FROM `biblioteca`.persona;


SELECT * FROM `biblioteca`.documento;
SELECT * FROM `biblioteca`.estudiante;
3. CONCLUSIONES

Luego de la realización de este trabajo se logra la adquisición de conocimientos


básicos para el análisis de un modelo Entidad-Relación, teniendo en cuenta la
mayoría de definiciones que se tiene en estos modelos. - Se logra construir la matriz
de Entidad-Relación partiendo de los análisis realizados en el modelo. - Se logra
construir el modelo de entidad-Relación propuesto, teniendo en cuenta la matriz y
la definición de las entidades y las relaciones que estos tienen.
4. BIBLIOGRAFÍA

Jiménez Capel, M. (2014). Bases de datos relacionales y modelado de datos


(UF1471). Madrid, ESPAÑA: IC Editorial. Recuperado de:
http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/detail.action?docID=418400
6&query=Bases%20de%20datos%20relacionales%20y%20modelado%20de%20d
a tos%20(UF1471).

Casas Roma, J. & Conesa i Caralt, J. (2014). Diseño conceptual de bases de datos
en UML. Barcelona, ES: Editorial UOC. Páginas, 41 - 106. Recuperado de:
http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/detail.action?docID=322291
2&query=Dise%C3%B1o%20conceptual%20de%20bases%20de%20datos%20en
% 20UML.

Potrebbero piacerti anche