Você está na página 1de 50

BASE DE DATOS AVANZADA

CÓDIGO: 301125A_611

Unidad 1: Fase 1 - Modelamiento: Modelar, Diseñar y Desarrollar Bases de


Datos Relacionales

Presentado a:
Luis Ernesto Bonilla

Entregado por:

Cesar Augusto Villegas Salazar


Código: 1116205838

Pablo Andrés Villegas


Código: 1087986068

María Fernanda Piedrahita

Eddie Enrique Leudo


1077460105

Grupo: 301125_29

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD


ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
12-03-2019
TABLA DE CONTENIDO
INTRODUCCIÓN ...................................................................................................................................... 3
Resultado de la Actividad: .................................................................................................................. 4
Aporte Cesar Augusto Villegas Salazar .......................................................................................... 4
Aporte Pablo Andres Villegas ........................................................................................................... 14
Aporte Eddie Enrique Leudo ............................................................................................................. 38
María Fernanda Piedrahita ................................................................................................................ 42
CONCLUSIONES .................................................................................................................................... 49
BIBLIOGRAFIA ....................................................................................................................................... 50
INTRODUCCIÓN

En este trabajo se expondrán el desarrollo de la actividad Fase 1 modelamiento de la


unidad 1 del curso de base de datos avanzada, el cual integra las etapas de modelo,
diseño y desarrollo de bases de datos relacionales, para ello hace uso de la necesidad de
gestión de la información aplicada a un caso específico, además de detallar conceptos
importantes en la implementación de una base de datos y todas sus características.
Resultado de la Actividad:
Aporte Cesar Augusto Villegas Salazar

Unidad 1: Fase 1 - Modelamiento: Modelar, Diseñar y Desarrollar Bases de


Datos Relacionales

2.2 ¿Qué se considera una base de datos relacionales?


Primero definamos que es una base de datos: se puede decir que
es un conjunto de datos organizadas que posee relación entre sí;
que se gestionan mediante un sistema de base de datos el cual
es un conjunto de programas que nos permite trabajar con ellas.

Una base de datos relacional es la colección de tablas la cual


almacenan información de forma estructurada la cual posee
entidades las cuales tiene atributos representados mediante
columnas con un identificador único y para que las tablas
posean relación entre ellas deben almacenar datos redundantes.

Podemos decir que las tablas se utilizan para guardar información


sobre los objetos que se van a representar en la base de datos
(Usuarios, Cursos, Libros etc.) Cada columna de una tabla guarda
un determinado tipo de datos y un campo almacena el valor real
de un atributo (Nombre, Apellido, Edad, etc.) Las filas de la tabla
representan una recopilación de valores relacionados de un
objeto o entidad. Cada fila de una tabla podría marcarse con un
identificador único denominado clave principal, mientras que
filas de varias tablas pueden relacionarse con claves
extranjeras. Se puede obtener acceso a estos datos de muchas
formas distintas mediante el lenguaje de consulta estructurado
SQL el cual se utiliza para agregar, actualizar o eliminar filas de
datos, recuperar subconjuntos de datos.
3. La oficina de Registro y Control de la UNAD requiere ejecutar el proyecto
de análisis, diseño y desarrollo de su Base de Datos, para lo cual se
deben tener en cuenta las siguientes entidades: Asignaturas, incluyendo
el número, título, programa y prerrequisitos. Oferta académica,
incluyendo número de asignaturas, año, semestre, número de sección,
profesores, horarios y aulas. Estudiantes, incluyendo número de
identificación, nombre, departamento y título. Además, la matrícula de
los estudiantes en asignaturas y las notas concedidas a estudiantes en
cada asignatura en la que están matriculados se deben modelar
adecuadamente.
Para el desarrollo del proyecto se contrata a un grupo de 5 ingeniero de
sistemas que para desarrollar el proyecto deben:

a. Realiza la etapa de análisis, teniendo en cuenta los siguientes


requerimientos:
i. Definición y descripción de tablas
Asignaturas
Numero
Titulo
Programa
Prerrequisitos

Oferta Académica
Número de asignaturas
Año
Semestre
Numero de sección
Profesor
Horarios
Aulas

Estudiantes
Numero identificación
Nombre
Departamento
Titulo
ID Oferta Académica
Asignatura-estudiante
Id Estudiante
Id Asignatura
Nota
ii. Descripción de las columnas

Nombre: asignatura
Descripción: Contendrá información de cada una de las
asignaturas.
Campo Tipo Tamaño Descripción
id Numérico 12 Clave de la
asignatura
(Auto
incrementable)
numero Numérico 12 Número de la
asignatura
titulo Carácter 150 Título de la
asignatura
programa Carácter 200 Programa de la
asignatura
prerrequisitos Carácter 200 Prerrequisitos
de la
asignatura

Nombre: oferta_academica
Descripción: Contendrá información de las ofertas
académicas.
Campo Tipo Tamaño Descripción
id Numérico 12 Clave primaria
de la oferta
académica
(Auto
incrementable)
num_asignaturas Numérico 12 Número de
asignaturas de
la oferta
académica
year Numérico 4 Año de la
oferta
académica
semestre Carácter 50 Semestre de la
oferta
académica
num_seccion Numérico 4 Numero de
sección de la
oferta
académica
profesor Carácter 200 Profesor de la
oferta
académica
horarios Carácter 200 Horarios de la
oferta
académica
aulas Carácter 200 Aulas de la
oferta
académica

Nombre: estudiantes
Descripción: Contendrá información de cada una de los
estudiantes
Campo Tipo Tamañ Descripción
o
id Numéric 12 Clave de
o estudiante
(Auto
incrementable
)
num_identificacion Numéric 12 Número de
o identificación
del estudiante
nombre Carácter 200 Nombre del
estudiante
departamento Carácter 200 Departamento
del estudiante
titulo Carácter 200 Título del
estudiante
id_oferta_academic Numeric 12 Clave foránea
a o del estuante
con la oferta
académica
Nombre: asignatura_estudiante
Descripción: Contendrá información de las asignaturas
correspondientes a cada estudiante y su nota
Campo Tipo Tamaño Descripción
id_estudiante Numérico 12 Identificador
único del
estudiante(Campo
Clave)
id_asignatura Numérico 12 Identificador de la
asignatura(Campo
Clave)
nota Carácter 50 Nota del
estudiante en esa
asignatura

iii. Definición de las relaciones requeridas y pertinentes en la


matriz de relaciones.
b. La siguiente etapa consiste en realizar el diseño de la base de
datos relacional, acorde a las características del caso de estudio,
para ello, se debe efectuar la entrega del Modelo Relacional, el
cual se logra adelantando las siguientes tareas:

i. Llaves primarias (UID) de cada tabla.

ii. Transforme las Relaciones 1:1 o 1:M en Llaves Foráneas,


implementando el concepto de la Integridad Referencial
FK – Llaves Foráneas
c. En la etapa final se efectúa el desarrollo de la base de datos
relacional atendiendo el caso de estudio propuesto, por tanto, se
debe entregar:

i. Programación con el lenguaje SQL del Script DDL

Crear base de datos


CREATE DATABASE `rca_unad`;

Crear table asignatura


CREATE TABLE `rca_unad`.`asignatura` ( `id` INT NOT NULL AUTO_INCREMENT , `numero`
INT(12) NOT NULL , `titulo` VARCHAR(150) NOT NULL , `programa` VARCHAR(200) NOT
NULL , `prerequisitos` VARCHAR(200) NOT NULL , PRIMARY KEY (`id`)) ENGINE =
InnoDB;

Crear table oferta_academica


CREATE TABLE `rca_unad`.`oferta_academica` ( `id` INT NOT NULL AUTO_INCREMENT , `num_
asignaturas` INT(12) NOT NULL , `year` INT(4) NOT NULL , `semestre` VARCHAR(50) NOT N
ULL , `num_seccion` INT(4) NOT NULL , `profesor` VARCHAR(200) NOT NULL , `horarios` V
ARCHAR(200) NOT NULL , `aulas` VARCHAR(200) NOT NULL , PRIMARY KEY (`id`)) ENGINE = I
nnoDB;

Crear table estudiantes


CREATE TABLE `rca_unad`.`estudiantes` ( `id` INT NOT NULL AUTO_INCREMENT , `num_ident
ificacion` INT(12) NOT NULL , `nombre` VARCHAR(200) NOT NULL , `departamento` VARCHAR
(200) NOT NULL , `titulo` VARCHAR(200) NOT NULL , `id_oferta_academica` INT NOT NULL
, PRIMARY KEY (`id`, `id_oferta_academica`)) ENGINE = InnoDB;

Creamos la clave foránea en la tabla estudiantes con la tabla


oferta académica
ALTER TABLE `estudiantes` ADD CONSTRAINT `fk_oferta_academica` FOREIGN KEY (`id_oferta_academica`
) REFERENCES `rca_unad`.`oferta_academica`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;

Crear table asginatura_estudiante


CREATE TABLE `rca_unad`.`asignatura_estudiante` ( `id_estudiante` INT NOT NULL , `id_
asignatura` INT NOT NULL , `nota` VARCHAR(50) NOT NULL , PRIMARY KEY (`id_estudiante`
, `id_asignatura`)) ENGINE = InnoDB;

Creamos las claves foráneas en la tabla


asignatura_estudiante con las tablas estudainte y
asignatura

ALTER TABLE `asignatura_estudiante` ADD CONSTRAINT `fk_estudiante` FOREIGN KEY (`id_estudiante`)


REFERENCES `rca_unad`.`estudiantes`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE `asig
natura_estudiante` ADD CONSTRAINT `fk_asignatura` FOREIGN KEY(`id_asignatura`) REFERENCES `rca_un
ad`.`asignatura`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;

ii. 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)

Agregar datos a la tabla de asignatura


INSERT INTO `asignatura` (`id`, `numero`, `titulo`, `programa`, `prerequisitos`) VALU
ES (NULL, '2545', 'Matemáticas', 'Ingeniería de Sistemas', 'Curso de inducción a
matemáticas');

Agregar datos a la tabla oferta_academica


INSERT INTO `oferta_academica` (`id`, `num_asignaturas`, `year`, `semestre`, `num_sec
cion`, `profesor`, `horarios`, `aulas`) VALUES (NULL, '8', '2019', '5', '2547', 'Juan
Lopez', '08am - 12pm', 'Aula principal de la UNAD')

Agregar datos a la tabla estudiantes


INSERT INTO `estudiantes` (`id`, `num_identificacion`, `nombre`, `departamento`, `tit
ulo`, `id_oferta_academica`) VALUES (NULL, '1116205838', 'Cesar Augusto Villegas
Salazar', 'Quindio', 'Tecnólogo en desarrollo de sistemas informáticos', '1');

Agregar datos a la tabla asignatura_estudiantes


INSERT INTO `asignatura_estudiante` (`id_estudiante`, `id_asignatura`, `nota`) VALUES
('1', '1', '4.5 ');

iii. 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.

Se creó el usuario unad al cual se le otorgaron permisos


sobre la base de datos rca_unad
CREATE USER 'unad'@'%' IDENTIFIED VIA mysql_native_password USING
'***';GRANT ALL PRIVILEGES ON *.* TO 'unad'@'%' REQUIRE NONE WITH GRANT
OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0
MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;GRANT ALL PRIVILEGES ON
`rca_unad`.* TO 'unad'@'%';

iv. Diligencie cinco registros en la base de datos y con esta


información realice cinco consultas simples sobre las tablas
de la base de datos que evidencien las características de
libros que existen en la librería y cuales han sido más
pedidos.

Tabla asingatura

Tabla oferta_academica
Tabla estudiantes

Tabla asignatura_estudiante

Diseño base de datos rca_unad


Aporte Pablo Andres Villegas

2). A partir de la lectura realizada al contenido temático de la unidad 3; seleccionar y


responder una de las cinco preguntas motivadoras en un párrafo de su propia autoría que
contenga mínimo 200 palabras y máximo 300 palabras y hacer un comentario significativo
sobre la respuesta de cada compañero.

4. ¿Cuál es la diferencia entre el lenguaje de definición de datos y el lenguaje de


manipulación de datos?

Estos 2 lenguajes son empleados por los Sistemas de Gestión de Bases de Datos (SGBD)
basándose en sintaxis SQL o de otros tipos, con el objetivo de generar una base de datos
relacional e interactuar con los datos que ésta contenga. La diferencia entre ellos radica en que el
Lenguaje de definición de datos (DDL) define la organización de la base de datos y sus
componentes como las tablas, atributos y restricciones. Mientras que el lenguaje de manipulación
de datos (DML) se encarga de gestionar la información a manera de consultas y cambios en los
registros de la base de datos.

El lenguaje de definición de datos utiliza sentencias en forma de verbo como son CREATE,
SHOW, DROP, ALTER, etc., aplicadas a objetos como DATABASE, TABLE, INDEX, etc.
El lenguaje de modificación de datos emplea sentencias tales como SELECT, INSERT,
DELETE, UPDATE, para realizar los cambios respectivos en las tablas ya definidas y utilizando
los campos como criterio de modificación en los registros.

El DML se subdivide en lenguaje procedimental y no procedimental. El primero realiza una serie


de cálculos por medio de la inserción de instrucciones por parte del usuario y el lenguaje no
procedimental solo describe los datos requeridos por medio de las consultas.

3). La oficina de Registro y Control de la UNAD requiere ejecutar el proyecto de análisis,


diseño y desarrollo de su Base de Datos, para lo cual se deben tener en cuenta las siguientes
entidades: Asignaturas, incluyendo el número, título, programa y prerrequisitos. Oferta
académica, incluyendo número de asignaturas, año, semestre, número de sección, profesores,
horarios y aulas. Estudiantes, incluyendo número de identificación, nombre, departamento
y título. Además, la matrícula de los estudiantes en asignaturas y las notas concedidas a
estudiantes en cada asignatura en la que están matriculados se deben modelar
adecuadamente.
Para el desarrollo del proyecto se contrata a un grupo de 5 ingeniero de sistemas que para
desarrollar el proyecto deben:

A. Realiza la etapa de análisis, teniendo en cuenta los siguientes requerimientos:

I. Definición y descripción de tablas ( Formato 1 – Descripción de Entidades)

Entidad o Justificación, Ejemplo de Ejemplares Extensión INTENCION


Tipo de explicación de (Instancias)
Entidad su existencia en
el Mundo del
Problema
Asignaturas Es importante  Cálculo integral 100 Impartir los
porque ya que  Electrónica fundamentos
contiene la  Física necesarios para
información de  Algebra lineal la formación
los cursos a  Programación lineal académica
matricular  Bases de datos
Oferta Es necesario  Ingeniería de 120 Ofrecer
académica para clasificar y sistemas diversas
contar con  Derecho alternativas de
disponibilidad  Contaduría titulación para
de las diferentes  Medicina el desarrollo
carreras en  Zootecnia profesional
cada una de las  Educación Preescolar
facultades
Estudiantes Son importantes  Daniel Reyes Molina 100 Personas que
pues son los  Óscar Puig Sánchez asisten los
encargados de  Alonso Castillo Vega cursos, dictados
recibir el  Izán Vila Navarro por una
conocimiento  Manuel Campos institución
impartido en las Sánchez educativa
asignaturas
Matrícula Es fundamental  Pregrado – ing. 200 Asentamiento
para iniciar el Sistemas periodo II – de convenio
proceso 2019 entre el
educativo y  Especialización estudiante y la
designar las Derecho universidad
diferentes administrativo – para recibir e
asignaturas Facultad de Derecho impartir el
periodo I_ 2018 conocimiento
respectivamente
Notas esenciales para  4.5 20 Evaluar al
la aprobación  3.8 estudiante en su
de las  5.0 proceso
asignaturas y el  2.9 educativo
título
profesional
II. Descripción de las columnas (Formato 2 - Descripción de atributos y sus restricciones naturales (Tipo de Dato) y restricciones
adicionales Dominios (Lista de Valores, Rangos de Valores y Restricciones generales) - VERSION 1)
Identifi Tipo de Dato Restricciones adicionales
Obligator Cardinalida
Nombre cador (Texto, Lista Rango
Atributos Nombre dominio Tamaño iedad d Restricción
Entidad Único Número, de de
(Si/No) (1 o Muchos) de Control
(UID) Fecha) Valores Valores
Asignaturas ID_Asignatura X ID_Asignaturas N 20 Si 1
Titulo Titulos T 30 SI 1
Programa Programas T 30 Si 1
Prerrequisito Prerrequisitos T 50 Si M
Oferta académica ID_Oferta X ID_Ofertas N 20 Si 1
Q_Asignatura X Q_Asignaturas N 20 Si 1
Año Años F 20 Si 1
Semestre Semestres N 20 Si 1 1-12
Numero_Sección Numero_Secciones N 20 No M
Profesor Profesores T 30 No M
Horario Horarios N 20 Si M
Aulas Aulas T 30 No M
Estudiantes ID_Estudiante X ID_Estudiantes N 20 Si 1
Nombre Nombres T 30 Si 1
Departamento Departamentos T 30 No 1
Titulo Titulos T 30 No M
Matrícula ID_Matricula X ID_Matriculas N 20 Si 1
ID_Asignatura ID_Asignaturas N 20 Si 1
ID_Estudiante ID_Estudiantes N 20 Si 1
Titulo Titulos T 30 Si 1
Nombre Nombres T 30 Si 1
Notas ID_Nota X ID_Notas N 20 Si 1
Puntuación Puntuaciones N 20 Si 1 de 0 a 5
ID_Asignatura ID_Asignaturas N 20 Si 1
Titulo Titulos T 30 Si 1
Nombre Nombres T 30 Si 1
ID_Estudiante ID_Estudiantes N 20 Si 1
17
III. Definición de las relaciones requeridas y pertinentes en la matriz de relaciones (Formato 3 - Matriz de Relaciones)

Asignaturas Oferta Académica Estudiantes Matricula Notas


Asignaturas R2
Oferta Académica R2 R1
Estudiantes R3 R4
Matricula R1 R3
Notas R4

18
IV. Descripción de cada una de las relaciones teniendo en cuenta las opcionalidades, cardinalidades, grado, transferibilidad y si ayuda o
no resolver debilidades en las entidades participantes y las restricciones propias de cada relación. (Formato 4)

Pregunta para
determinar Rta
Cardinalidad
Ayuda a
Pregunta para Relación es
Rta Card Transferible Identificar
Relación Entidades 1 Rol Entidad 2 determinar Grado Observación / Restricciones /Atributos
Opc entidades
Opcionalidad (Si/No)
Participantes
(Preguntar
CUANTO )

¿Una Oferta ¿Una Oferta


académica está académica en 1a
Oferta Esta relación modela un hecho importante
Hace parte Matricula obligada a Hacer Si CUANTAS M Si Muchos
académica La dos entidades que sucede en el proceso que estamos
parte de una matriculas puede 1:M
participantes se analizando y es que las Ofertas académicas
R1 Matricula ? estar ?
identifican Hace parte de varias Matrículas y que la
¿Una Matricula está ¿Una Matricula 1 a Uno
plenamente Matrículas contienen una sola oferta
Oferta obligada contener CUANTAS Ofertas 1:1
Matricula Contiene Si 1 Si académica.
académica una Oferta académica contiene
académica? ?
¿Una Oferta
¿Una Oferta
académica 1a
Oferta académica está Esta relación modela un hecho importante
Contiene Asignaturas Si CUANTAS M Si Muchos
académica obligada a contener La dos entidades que sucede en el proceso que estamos
Asignaturas 1:M
una asignatura ? participantes se analizando y es que las Ofertas académicas
R2 contiene?
identifican contienen varias asignaturas y que las
¿Una asignatura está ¿ Una Asignatura 1a
plenamente asignaturas Hacen parte de varias Ofertas
Oferta obligada Hacer parte en CUANTAS Muchos
Asignaturas Hace parte Si M Si académicas
académica una Oferta Ofertas académicas 1:M
académica? puede estar ?
¿Una Matricula
¿Una Matricula está
CUANTOS 1 a Uno
Matricula Contiene Estudiante obligada a contener a Si 1 Si Esta relación modela un hecho importante
Estudiantes 1:1 La dos entidades
un Estudiante? que sucede en el proceso que estamos
contiene? participantes se
R3 analizando y es que una Matricula contiene
¿ Un Estudiante en 1a1 identifican
¿Un Estudiante está un solo Estudiante y que un Estudiante
CUANTAS 1:1 plenamente
Estudiante Hace parte Matricula obligada Hacer parte Si 1 Si Hace parte de una sola matricula
Matricula puede
de una Matricula?
estar ?
¿Una Nota está ¿ Una Nota en 1a1
obligada a Hacer CUANTOS 1:1
Notas Hace parte Estudiante Si 1 Si Esta relación modela un hecho importante
parte de un Estudiantes puede La dos entidades
que sucede en el proceso que estamos
Estudiante ? estar ? participantes se
R4 analizando y es que una Nota Hace parte
¿Un Estudiante identifican
¿Un Estudiante 1a de un solo estudiante y que un estudiante
académica está plenamente
Estudiante Contiene Notas Si CUANTAS Notas M Si Muchos contiene una sola Nota.
obligad a contener
contiene? 1:M
Notas ?

19
B. La siguiente etapa consiste en realizar el diseño de la base de datos relacional, acorde a las características del caso de
estudio, para ello, se debe efectuar la entrega del Modelo Relacional, el cual se logra adelantando las siguientes tareas:

I. Llaves primarias (UID) de cada tabla --.


oferta académica
Identificación de oferta cantidad de asignaturas año semestre Numero de sección profesor horario aulas

estudiantes
Identificación de estudiante nombre departamento titulo

matrícula
Identificación de matricula Identificación de asignatura Identificación de estudiante titulo nombre

notas
Identificación de nota puntuación Identificación de asignatura titulo nombre Identificación de estudiante

asignaturas
titulo Número de asignaturas programa prerrequisito

20
II. Transforme las Relaciones 1:1 o 1:M en Llaves Foráneas, implementando el concepto de la Integridad Referencial --

oferta académica
Identificación de oferta cantidad de asignaturas año semestre Numero de sección profesor horario aulas

estudiantes
Identificación de estudiante nombre departamento titulo

matrícula
Identificación de matricula Identificación de asignatura Identificación de estudiante titulo nombre Identificación de oferta

notas
Identificación de nota puntuación Identificación de asignatura titulo nombre Identificación de estudiante

asignaturas
titulo Número de asignaturas programa prerrequisito Identificación de oferta

21
III. Aplicar técnicas de normalización
OFERTA_ACADÉMICA
ID_OFERTA Q_ASIGNATURAS AÑO SEMESTRE NUMERO_SECCIÓN PROFESOR HORARIO AULAS

ESTUDIANTES
ID_ESTUDIANTE NOMBRE DEPARTAMENTO TITULO

MATRÍCULA
ID_MATRICULA ID_ASIGNATURA ID_ESTUDIANTE TITULO NOMBRE ID_OFERTA

NOTAS
ID_NOTA PUNTUACIÓN ID_ASIGNATURA TITULO NOMBRE ID_ESTUDIANTE

ASIGNATURAS
ID_ASIGNATURA TITULO PROGRAMA PRERREQUISITO ID_OFERTA

22
C. En la etapa final se efectúa el desarrollo de la base de datos relacional atendiendo el
caso de estudio propuesto, por tanto, se debe entregar:

I. Programación con el lenguaje SQL del Script DDL


Creación de tabla OFERTA_ACADÉMICA: create tab le
OFERTA_ACADÉMICA(ID_OFERTA int,Q_ASIGNATURAS int,AÑO date,
SEMESTRE int,NUMERO_SECCIÓN int,PROFESOR varchar(30),HORARIO int,
AULAS varchar(30),constraint OFERTA_ACADÉMICA_pk PRIMARY
KEY(ID_OFERTA));

23
Creación de tabla ESTUDIANTES: create table ESTUDIANTES(ID_ESTUDIANTE
int,NOMBRE varchar(30),DEPARTAMENTO varchar(30), TITULO
varchar(30),constraint ESTUDIANTES_pk PRIMARY KEY(ID_ESTUDIANTE));

24
Creación de tabla ASIGNATURAS: create table
ASIGNATURAS(ID_ASIGNATURA int,TITULO varchar(30),PROGRAMA
varchar(30),PRERREQUISITO varchar(50),ID_OFERTA int,constraint
ASIGNATURAS_pk PRIMARY KEY(ID_ASIGNATURA),constraint
ASIGNATURAS_FK FOREIGN KEY(ID_OFERTA) REFERENCES
OFERTA_ACADÉMICA(ID_OFERTA));

25
Creación de tabla NOTAS: create table NOTAS(ID_NOTA int,PUNTUACIÓN
int,ID_ASIGNATURA int,TITULO varchar(30), NOMBRE
varchar(30),ID_ESTUDIANTE int,constraint NOTAS_pk PRIMARY
KEY(ID_NOTA),constraint NOTAS_FK FOREIGN KEY(ID_ASIGNATURA)
REFERENCES ASIGNATURAS(ID_ASIGNATURA),constraint NOTAS2_FK
FOREIGN KEY(ID_ESTUDIANTE) REFERENCES
ESTUDIANTES(ID_ESTUDIANTE));

26
Creación de tabla MATRÍCULA: create table MATRÍCULA(ID_MATRICULA
int,ID_ASIGNATURA int,ID_ESTUDIANTE int, TITULO varchar(30),NOMBRE
varchar(30),ID_OFERTA int,constraint MATRÍCULA_pk PRIMARY
KEY(ID_MATRICULA), constraint MATRÍCULA_FK FOREIGN
KEY(ID_ASIGNATURA) REFERENCES
ASIGNATURAS(ID_ASIGNATURA),constraint MATRÍCULA2_FK FOREIGN
KEY(ID_ESTUDIANTE)REFERENCES ESTUDIANTES(ID_ESTUDIANTE),constraint
MATRÍCULA3_FK FOREIGN KEY(ID_OFERTA)REFERENCES
OFERTA_ACADÉMICA(ID_OFERTA));

27
II. 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)

Insertar datos en la tabla ESTUDIANTES: insert all into


ESTUDIANTES(ID_ESTUDIANTE, NOMBRE , DEPARTAMENTO , TITULO) values
(1088864256,'Mario Aguirre','Ciencias Salud','Doctor')
into ESTUDIANTES(ID_ESTUDIANTE, NOMBRE , DEPARTAMENTO , TITULO)
values (1086375912,'Alberto Pelaez','Artes','Diseñador')
into ESTUDIANTES(ID_ESTUDIANTE, NOMBRE , DEPARTAMENTO , TITULO)
values (1089632773, ' Martin Velez','Psicologia' ,'Psicologo')select* from dual;

28
Insertar datos en la tabla OFERTA_ACADÉMICA: insert all into
OFERTA_ACADÉMICA(ID_OFERTA, Q_ASIGNATURAS, AÑO, SEMESTRE,
NUMERO_SECCIÓN, PROFESOR, HORARIO, AULAS) values (1,'52','02/02/2019'',1,
10, 'Alejandro Montaño', '8 am - 1 pm', '3c - 4a')

into OFERTA_ACADÉMICA(ID_OFERTA, Q_ASIGNATURAS, AÑO, SEMESTRE,


NUMERO_SECCIÓN, PROFESOR, HORARIO, AULAS) values (2,'48','02/02/2019',1,
12, 'Javier Sanchez', '6 am - 11 am', '2c - 3a')

into OFERTA_ACADÉMICA(ID_OFERTA, Q_ASIGNATURAS, AÑO, SEMESTRE,


NUMERO_SECCIÓN, PROFESOR, HORARIO, AULAS) values (3,'55','02/07/2019',2,
12, 'Juan Arbelaez', '1 pm - 6 pm', '1c - 2a')select* from dual;

29
Insertar datos en la tabla ASIGNATURAS: insert all into
ASIGNATURAS(ID_ASIGNATURA, TITULO, PROGRAMA, PRERREQUISITO,
ID_OFERTA) values (1001,'Microbiologia','Doctor','Biologia',1)
into ASIGNATURAS(ID_ASIGNATURA, TITULO, PROGRAMA, PRERREQUISITO,
ID_OFERTA) values (1002,'Vector','Diseñador','Dibujo',2)
into ASIGNATURAS(ID_ASIGNATURA, TITULO, PROGRAMA, PRERREQUISITO,
ID_OFERTA) values (1003,'Psicopatología','Psicologo','Neurofisiología',3)select* from
dual;

30
Insertar datos en la tabla MATRÍCULA: insert all into
MATRÍCULA(ID_MATRICULA, ID_ASIGNATURA, ID_ESTUDIANTE, TITULO,
NOMBRE,ID_OFERTA) values (1,1001,1088864256,'Doctor','Mario Aguirre',1)
into MATRÍCULA(ID_MATRICULA, ID_ASIGNATURA, ID_ESTUDIANTE, TITULO,
NOMBRE,ID_OFERTA) values (2,1002,1086375912,'Diseñador','Alberto Pelaez',2)
into MATRÍCULA(ID_MATRICULA, ID_ASIGNATURA, ID_ESTUDIANTE, TITULO,
NOMBRE,ID_OFERTA) values (3,1003,1089632773,'Psicologo','Martin Velez',3) select*
from dual;

31
III. 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.
REVOKE: Permite eliminar permisos a un usuario sobre un objeto especificado
REVOKE ALL PRIVILEGES ON NOTAS FROM PAOLA;

GRANT: Permite dar permisos a un usuario sobre un objeto especificado


GRANT ALL PRIVILEGES ON NOTAS TO PAOLA;

32
IV Diligencie cinco registros en la base de datos y con esta información realice
cinco consultas simples sobre las tablas de la base de datos
insert all into
NOTAS(ID_NOTA,PUNTUACIÓN,ID_ASIGNATURA,TITULO,NOMBRE,
ID_ESTUDIANTE) values (1,3.0,1001,'Doctor','Mario Aguirre',1088864256)
into NOTAS(ID_NOTA,PUNTUACIÓN,ID_ASIGNATURA,TITULO,NOMBRE,
ID_ESTUDIANTE) values (2,2.0,1002,'Diseñador','Alberto Pelaez',1086375912)
into NOTAS(ID_NOTA,PUNTUACIÓN,ID_ASIGNATURA,TITULO,NOMBRE,
ID_ESTUDIANTE) values (3,5.0,1003,'Psicologo','Martin Velez',1089632773)
into NOTAS(ID_NOTA,PUNTUACIÓN,ID_ASIGNATURA,TITULO,NOMBRE,
ID_ESTUDIANTE) values (4,2.5,1003,'Psicologo','Martin Velez',1089632773)
into NOTAS(ID_NOTA,PUNTUACIÓN,ID_ASIGNATURA,TITULO,NOMBRE,
ID_ESTUDIANTE) values (5,1.0,1003,'Psicologo','Martin Velez',1089632773)select* from
dual;

33
Seleccionar datos filtrados de la tabla NOTAS: select * from NOTAS where
ID_ESTUDIANTE=1086375912;

Contar el número de registros de la tabla NOTAS: select count(1) from NOTAS;

34
Actualizar la puntuaciòn de una persona en la tabla NOTAS: update NOTAS set
PUNTUACIÓN = 0.0 where ID_ESTUDIANTE=1088864256;

35
Borrar una fila o registro de la tabla NOTAS: delete from NOTAS where ID_NOTA=5;

36
Insertar una fila o registro a la tabla NOTAS: insert into
NOTAS(ID_NOTA,PUNTUACIÓN, ID_ASIGNATURA,TITULO,NOMBRE,
ID_ESTUDIANTE) values (5,1.0,1003,'Psicologo','Martin Velez',1089632773);

37
Aporte Eddie Enrique Leudo

3. ¿Cuál es la importancia del proceso de normalización en bases de datos?

La normalización de base de datos ayuda a evitar estos efectos negativos ya


desde el diseño de nuevas bases de datos y permite también comprobar si las
existentes garantizan la integridad de datos o referencial necesaria. Lo más
recomendable es proceder a normalizar los datos antes de crear las tablas de la base
de datos, aunque siempre es preferible asegurar su integridad y, aunque ya se
cuente con las bases de datos y no sean de nueva creación, utilizar estas técnicas
para ponerlas a prueba, teniendo claros los objetivos a alcanzar en el proceso.

Las consecuencias de la falta de normalización de base de datos son:

Inexactitud de los sistemas de bases de datos.

Ralentización de los procesos.

Ineficiencia en las operaciones.

La normalización de base de datos ayuda a evitar estos efectos negativos ya


desde el diseño de nuevas bases de datos y permite también comprobar si las
existentes garantizan la integridad de datos o referencial necesaria. Lo más
recomendable es proceder a normalizar los datos antes de crear las tablas de la base
de datos, aunque siempre es preferible asegurar su integridad y, aunque ya se
cuente con las bases de datos y no sean de nueva creación, utilizar estas técnicas
para ponerlas a prueba, teniendo claros los objetivos a alcanzar en el proceso.

38
La oficina de Registro y Control de la UNAD requiere ejecutar el proyecto de análisis, diseño y desarrollo de su Base de Datos,
para lo cual se deben tener en cuenta las siguientes entidades: Asignaturas, incluyendo el número, título, programa y
prerrequisitos. Oferta académica, incluyendo número de asignaturas, año, semestre, número de sección, profesores, horarios y
aulas. Estudiantes, incluyendo número de identificación, nombre, departamento y título. Además, la matrícula de los estudiantes
en asignaturas y las notas concedidas a estudiantes en cada asignatura en la que están matriculados se deben modelar
adecuadamente.
Para el desarrollo del proyecto se contrata a un grupo de 5 ingeniero de sistemas que para desarrollar el proyecto deben:
Realiza la etapa de análisis, teniendo en cuenta los siguientes requerimientos:
Formato 1 – Descripción de Entidades
Tabla 1 Descripción de entidades
Entidad o Tipo de Justificación, explicación Ejemplo de Extensión Intención
Entidad de su existencia en el Ejemplares
Mundo del Problema (Instancias)

Asignatura Áreas de desempeño del Gladis Bolaños 30 Evaluar competencia de la


estudiante Paola Pérez entidad estudiantes
Carlos Muñoz
Oferta académica Programa al que se Ingeniería de 40 Especificar el perfil
matricula estudiante sistemas profesional del estudiante
Psicología
Lic. Matemáticas
Estudiantes Personas que se Nidia Trejo 40 Conseguir la graduación
matriculan a la oferta John Marín
académica Saúl Gómez

39
Formato 2 - Descripción de atributos y sus restricciones naturales (Tipo de Dato) y restricciones adicionales, Dominios (Lista de
Valores, Rangos de Valores y Restricciones generales)
Tabla 2 Descripción de atributos y sus restricciones
Nombre Atributos Identificador Nombre Tipo de Tamaño Obligatoriedad Cardinalidad Restricciones adicionales
Entidad Único (UID) dominio Dato (Si/No) (1 o Lista de Rango Restricción
(Texto, Muchos) Valores de general
Número, Valores
Fecha)
Asignatura Número de Id x Número de Id N 20 Si 1 -- -- --
título título T 10 Si 1 -- -- --
programa programa T 40 Si 1 -- -- --
prerrequisitos prerrequisitos T 20 Si 1 -- -- --

Oferta N° X N° N 20 Si 1 -- -- --
académica Asignatura Asignatura
Año Año T 20 Si 1 -- -- --
Semestre Semestre N 10 Si 1 -- -- --

40
N° sección N° sección N 20 Si 1
Profesor Profesor T 20 Si 1 -- -- --
Horarios Horarios T 20 Si 1 -- -- --
Aulas Aulas T 10 Si 1 -- -- --
Estudiantes Numero de Id X N 20 Si 1 -- -- --
Nombre T 20 Si 1 -- -- --
Departamento T 20 Si 1 -- -- --
Título T 20 Si 1 -- -- --

41
María Fernanda Piedrahita

interrogante 5.
¿Que son las formas normales y cual es su finalidad?

Las formas normales son técnicas que se crearon para prevenir anomalías que
pueden aparecer cuando se crean relaciones entre las tablas, problemas como;
redundancia de datos, perdida de información e inconsistencia los datos, entre
otros; como resultado de estos problemas se diseñaron las formas normales, para
realizar una normalización y tener unas relaciones más estructuradas, teniendo
como objetivo tener una base de datos donde la redundancia sea nula, con tal fin
se definieron tres formas normales:

Primera Forma Normal (1FN): Eliminar los atributos repetidos o grupos de


atributos.
tiene como finalidad que daca columna tengan valores simples:

Ejemplo:
Base Datos1 Base Datos2 (1FN)
Teléfonos: 31232323233, 44567773 Teléfono 1 31232323233
Teléfono 2 44567773

Segunda Forma Normal (2FN): Eliminar atributos dependientes solo en


parte del identificador único.
Para que una tabla este en 2FN debe estar en 1FN en esta forma cada tabla
depende de la clave, esta forma es una técnica para identificar entidades y
relaciones perdidas.

Tercera Forma Normal (3Fn): Los atributos deben ser dependientes


directamente del identificador único.
Esta forma tiene como finalidad en que ningún atributo diferente a las claves
primarias este en dependencia funcional con otros atributos que no sean claves, es
decir no debe tener dependencia transitiva.

La oficina de Registro y Control de la UNAD requiere ejecutar el proyecto de análisis,


diseño y desarrollo de su Base de Datos, para lo cual se deben tener en cuenta las
siguientes entidades: Asignaturas, incluyendo el número, título, programa y
prerrequisitos. Oferta académica, incluyendo número de asignaturas, año,
semestre, número de sección, profesores, horarios y aulas. Estudiantes, incluyendo
número de identificación, nombre, departamento y título. Además, la matrícula de
los estudiantes en asignaturas y las notas concedidas a estudiantes en cada
asignatura en la que están matriculados se deben modelar adecuadamente.

Para el desarrollo del proyecto se contrata a un grupo de 5 ingeniero de sistemas


que para desarrollar el proyecto debe

42
a. Realiza la etapa de análisis, teniendo en cuenta los siguientes requerimientos:

i. Definición y descripción de tablas

Entidad o Tipo de Justificación, Ejemplo de Ejemplares Extensión INTENCION


Entidad explicación de (Instancias)
su existencia en
el Mundo del
Problema
Asignaturas  Legislación Comercial Espacios
 Tic Académicos
 Proceso Administrativo I orientados por la
 Ingles Universidad
Oferta_Academica  Ingles Espacios
 Web 2.0 Académicos que
 Programación I serán ofertados
 TIc para que los
estudiantes puedan
registrar
Estudiante  Theo Restrepo Castaño Estudiantes
 Federico Martinez Cano vinculados a la
 Antonia Lopez Gil universidad
mediante una
matricula
Matricula  11345 Registro de
 34568 estudiantes, a
 12455 asignaturas, y notas
correspondientes.

43
Tipo de Cardinalidad Restricciones adicionales
Dato
Nombre Identificador Obligatoriedad
Atributos Nombre dominio (Texto, Tamaño
Entidad Único (UID) (Si/No)
Número, (1 o Lista de
Rango
Restricción
de
Fecha) Muchos) Valores
Valores
de Control

ID_Asignatura X ID_Asignaturas N 20 Si
Asignaturas
Cod_Asignatura codigos N 20 SI
Nombre_Asignatura Titulos T 50 SI
Programa Programas T 50 Si
Prerrequisito Prerrequisitos T 50 Si

Cod_Asignatura X Cod_Asignatura N 20 Si
Oferta
académica Año Años F 20 Si
Semestre Semestres N 20 Si
Numero_Sección Numero_Secciones N 20 SI
Profesor Profesores T 30 SI
Horario Horarios F 20 Si
Aulas Aulas T 30 SI
ID_Estudiante X ID_Estudiantes N 20 Si
Estudiantes
Nombre Nombres T 40 Si
Departamento Departamentos T 40 SI
Programa Programas T 40 SI
No_Registro x Registros N 20 Si
Matricula ID_Estudiante ID_Estudiantes N 20 Si
Cod_Asignatura Cod_Asignatura N 20 Si
Nota Notas N 5 Si

44
Matriz de Relaciones
Asignaturas Oferta Académica Estudiantes Matricula
Asignaturas R2 R3
Oferta Académica R2
Estudiantes R1
Matricula R3 R1

Formato 4 – Descripción ampliada de las relaciones determinadas en la Matriz de Relaciones (Análisis de Roles, Cardinalidad/Opcionalidad, Grado, Cualidad de identificación, Transferibilidad)

Pregunta para
determinar Rta
Cardinalidad Ayuda a
Pregunta para Relación es
Rta Identificar
Relación Entidades 1 Rol Entidad 2 determinar Transferible Grado Observación / Restricciones /Atributos
Opc Card entidades
Opcionalidad (Si/No)
Participantes
(Preguntar
CUANTO )

¿Un estudiante ¿Cuántos


debe realizar al estudiantes puede
Estudiante posee Matricula Si 1 Si 1:M
menos una tener una
matrícula? matrícula ?
Un estudiante puede realizar N
matriculas, pero 1 matricula ejemplo
R1
(122332) solo puede tener un
¿Una matrícula
¿un estudiante estudiante.
deberá tener
Matricula Contiene Estudiante Si podrá realizar N N Si
registrado un 1:1
matriculas?
estudiante?

45
¿Una asignaturas
¿Una Asignatura
cuantas veces
Asignatura Hace parte Oferta_Academica deberán ser NO M Si 1:M
podrá ser
ofertada ?
ofertada?
Una asignatura podrá ser ofertada un N
R2 1:1
veces.
¿ Cuantas
¿Una oferta
asignaturas puede
Oferta_Academica Contiene Asignatura académica depende Si 1 Si
tener una
una asignatura ?
oferta_academica?

¿Una matrícula
¿Un matricula
cuantas
Matricula tiene Asignatura deberá tener una Si 1 Si 1:1
asignaturas puede
asignatura ?
tener?
Un estudiante podrá realizar solo una
R2 1:1 matrícula de x asignatura.
¿ Una asignatura
¿Es indispensable
cuantas veces
Asignatura Hace parte Matricula matricular una si 1 Si
podrá ser
asignatura?
matriculada ?

46
B. Llaves primarias (UID) de cada tabla

Nombre
Atributos
Entidad

#ID_Asignatura
Asignaturas
(FK) Cod_Asignatura
Nombre_Asignatura
Programa
Prerrequisito

#Cod_Asignatura
Oferta
académica Año
Semestre
Numero_Sección
Profesor
Horario
Aulas
#ID_Estudiante
Estudiantes
Nombre
Departamento
Programa
#No_Registro
Matricula ID_Estudiante
Cod_Asignatura
Nota
Trasforme las relaciones 1:1 o 1:M en llaves foráneas, implementando el
concepto de la integridad referencial
CONCLUSIONES

 Con la realización de la presente actividad se comprendieron las etapas básicas para


el modelamiento de una base de datos relacional,

 Se emplearon las diferentes técnicas de normalización y de integridad referencial


para estandarizar el modelamiento de la base de datos.
BIBLIOGRAFIA

Rodríguez, González, María Elena. Gestión de datos: bases de datos y sistemas


gestores de bases de datos, Editorial UOC, 2013. ProQuest Ebook Central, pág. 13-
38. Recuperado de
http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?ppg=31&docID
=3219201&tm=1531495900319

Você também pode gostar