Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Presentador por:
JOSE RICARDO HERNANDEZ PARRA: 79711685
Tutora
DILSA ENITH TRIANA
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.
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
-- -----------------------------------------------------
-- 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.
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.