Beruflich Dokumente
Kultur Dokumente
FASE 2 - DISEÑO
PARTICIPANTES:
Tutor:
Mariano Esteban Romero
Objetivo General
Diseñar la base de datos relacional propuesta en la fase 1.
Objetivos Específicos
Fortalecer los conocimientos y contextos del lenguaje estructurado
SQL.
Identificar y normalizar las entidades.
Crear las tablas y su estructura de atributos en interfaz gráfica y
código.
Insertar, consultar y ejecutar sentencias sobre la base de datos
diseñada.
RESULTADO
Comentario: …….
Autor del comentario:
2. Diseño modelo Entidad Relación y modelo Relacional Cod_curso
1:M Semestre
Hora_inicio M:1 M:M
Cod_periodo
Id_estado
0000
Doc_rol
Preg_
Cod_sesion 2
Preg_3 M:M
Preg_1 Cod_curso
Preg_4
Doc_rol Res_4
Id_progra
Cod_curso Res_1
Cod_sesion
Cod_periodo Res_3
0000 Prim_nom
Nom_sesion
Cod_sesion Cod_sesion
Seg_nom
Doc_rol
M:M
Prim_nomb
Perfil
Prim_apel Id_progra Num_asist
Id_zona
Doc_rol
Seg_nomb Cod_esc
Seg_apel M:1
1:M
Cod_ciudad M:1
Observacion
Prim_apel Id_cent
Genero M:1
Cod_escuela M:1
Seg_apel Rol
M:1
1:M 1:M Nom_zona
Nom_cent
Id_zona
Id_progra
Nom_esc Id_cent
Nom_progra
Cod_esc
Abr_esc
- Técnicas de normalización
Debido a que se repiten los nombres del curso, pues un mismo curso
puede estar asignado a diferentes zonas y centros, se aplica el segundo
nivel de normalización creando unas nuevas tablas con una clave
externa que las relacione con la tabla Curso:
CURSO
COD_CURSO NOM_CURSO CREDITOS SEMESTRE COD_ESCUELA
300110 BASE DE DATOS AVANZADA 3 9 5
300112 BASES DE DATOS 3 7 5
ASISTENCIA
ID_ASISTEN COD_SESION COD_ESCUELA DOC_ROL PRIM_NOMB SEG_NOMB PRIM_APEL SEGU_APEL COD_CIUDAD
001 01123 5 1015416917 JULIANA MARIA ACERO CARRILLO 01
002 01124 5 1015416917 JULIANA MARIA ACERO CARRILLO 01
/
ALTER TRIGGER "BI_ESTADO" ENABLE
/
***********************************
Script DDL
CREATE TABLE "CURSO"
( "COD_CURSO" NUMBER(6,0) NOT NULL ENABLE,
"NOM_CURSO" VARCHAR2(35) NOT NULL ENABLE,
"CREDITOS" NUMBER(1,0) NOT NULL ENABLE,
"SEMESTRE" NUMBER(2,0) NOT NULL ENABLE,
"COD_ESCUELA" NUMBER(20,0) NOT NULL ENABLE,
CONSTRAINT "CURSO_PK" PRIMARY KEY ("COD_CURSO")
USING INDEX ENABLE
)
/
ALTER TABLE "CURSO" ADD CONSTRAINT "CURSO_FK" FOREIGN KEY
("COD_CURSO")
REFERENCES "ESCUELA" ("COD_ESCUELA") ENABLE
/
/
ALTER TRIGGER "BI_CURSO" ENABLE
/
************************************
Script DDL
CREATE TABLE "PERIODO"
( "COD_PERIODO" VARCHAR2(5) NOT NULL ENABLE,
"FECHA_INICIO" DATE NOT NULL ENABLE,
"FECHA_FINAL" DATE NOT NULL ENABLE,
CONSTRAINT "PERIODO_PK" PRIMARY KEY ("COD_PERIODO")
USING INDEX ENABLE
)
/
/
ALTER TRIGGER "BI_PERIODO" ENABLE
/
************************************
CREATE TABLE "SESION"
( "COD_SESION" NUMBER(5,0) NOT NULL ENABLE,
"NOM_SESION" VARCHAR2(50) NOT NULL ENABLE,
CONSTRAINT "SESION_PK" PRIMARY KEY ("COD_SESION")
USING INDEX ENABLE
)
/
ALTER TABLE "SESION" ADD CONSTRAINT "SESION_FK" FOREIGN KEY
("COD_SESION")
REFERENCES "CURSO" ("COD_CURSO") ENABLE
/
/
ALTER TRIGGER "BI_SESION" ENABLE
/
Script DML
INSERT INTO ESTADO (ID_ESTADO,NOM_ESTADO)
VALUES ('1','MATRICULADO');
****************************************
INSERT INTO ESCUELA
VALUES ('1','JAyG','JOSE ACEVEDO Y GOMEZ');
****************************************
INSERT INTO CURSO
VALUES ('301125','BASE DE DATOS AVANZADA','3','9','1');
****************************************
INSERT INTO PERIODO
VALUES ('16-06','11/24/2020','04/06/2021');
****************************************
INSERT INTO SESION
VALUES ('00001','LENGUAJE DE CONSULTA ESTRUCTURADO
SQL','301125');
Nombre Estudiante 2: HAROLD ALBERTO BAUTISTA AGUDELO
Script DDL
CREATE TABLE informe (
cod_sesion SMALLINT NOT NULL,
num_asistencia SMALLINT NOT NULL,
observacion VARCHAR2(80),
rol_doc_rol INTEGER NOT NULL
);
/
ALTER TRIGGER "BI_ASISTENCIA" ENABLE
/************************************
CREATE TABLE evaluacion (
cod_sesion SMALLINT NOT NULL,
doc_rol INTEGER NOT NULL,
pregunta_1 VARCHAR2(50) NOT NULL,
pregunta_2 VARCHAR2(50) NOT NULL,
pregunta_3 VARCHAR2(50) NOT NULL,
pregunta_4 VARCHAR2(50) NOT NULL,
respuesta_1 VARCHAR2(50) NOT NULL,
respuesta_2 VARCHAR2(50) NOT NULL,
respuesta_3 VARCHAR2(50) NOT NULL,
respuesta_4 VARCHAR2(50) NOT NULL,
sesion_cod_sesion SMALLINT NOT NULL,
rol_doc_rol INTEGER NOT NULL
);
***********************************
CREATE table “ESCUELA” (
“COD_ESCUELA” NUMBER(20) NOT NULL,
“ABREV_ESCUELA” VARCHAR2(8),
“NOM_ESCUELA” VARCHAR2(30),
constraint “ESCUELA_PK” primary key (“COD_ESCUELA”)
)
/
CREATE sequence “ESCUELA_SEQ”
/
CREATE trigger “BI_ESCUELA”
before insert on “PROGRAMA”
for each row
begin
if :NEW. “COD_ESCUELA” is null then
select “ESCUELA.SEQ ”.nextval into :NEW. “COD_ESCUELA” from sys.dual;
end if;
end;
/
************************************
CREATE table “ZONA” (
“ID_ZONA” NUMBER(20) NOT NULL,
“NOM_ZONA” VARCHAR2(15),
constraint “ZONA_PK” primary key (“ID_ZONA”)
)
/
CREATE sequence “ZONA_SEQ”
/
CREATE trigger “BI_ZONA”
before insert on “ZONA”
for each row
begin
if :NEW. “COD_ZONA” is null then
select “ZONA.SEQ ”.nextval into :NEW. “COD_ZONA” from sys.dual;
end if;
end;
/
************************************
CREATE table “CENTRO” (
“ID_CENTRO” NUMBER(20) NOT NULL,
“NOM_CENTRO” VARCHAR2(20),
“ID_ZONA” NUMBER,
constraint “CENTRO_PK” primary key (“ID_CENTRO”)
)
/
CREATE sequence “CENTRO_SEQ”
/
CREATE trigger “BI_CENTRO”
before insert on “CENTRO”
for each row
begin
if :NEW. “COD_CENTRO” is null then
select “CENTRO.SEQ ”.nextval into :NEW. “COD_CENTRO” from sys.dual;
end if;
end;
/
ALTER TABLE “CENTRO” ADD CONSTRAINT “CENTRO_FK”
FOREING KEY (“ID_ZONA”)
REFERENCES “ZONA” (“ID_ZONA”)
/
Script DML
INSERT INTO PROGRAMA (NOM_PROGRAMA)
VALUES ('Ingeniería de Sistemas');
************************************
INSERT INTO ESCUELA (ABREV_ESCUELA,NOM_ESCUELA)
VALUES ('ECBTI','Escuela Ciencias básicas');
************************************
INSERT INTO ZONA (NOM_ZONA)
VALUES ('CENTRO');
************************************
INSERT INTO CENTRO (NOM_CENTRO, ID_ZONA)
VALUES (' UDR Chipaque','1');
************************************
INSERT INTO INFORME (NUM_ASISTENCIA, OBSERVACION)
VALUES ('35','Informe de asistencia de estudiantes a la sesión');
SELECT d.NOM_CURSO,
d.CREDITOS
FROM CURSO d
LEFT OUTER JOIN ESCUELA e ON d.COD_ESCUELA =
e.COD_ESCUELA
WHERE d.COD_ESCUELA = 1
ORDER BY d.NOM_CURSO, d.CREDITOS;
Resultado de la consulta:
NOM_CURSO CREDITOS
BASE DE DATOS AVANZADA 3
VISUAL BASIC 3
Resultado de la consulta:
PRIM_NOM DOC_ROL
Miguel 1
SELECT SEMESTRE,
SUM (CREDITOS)
FROM CURSO
GROUP BY SEMESTRE;
Resultado de la consulta:
SEMESTRE SUM(CREDITOS)
8 5
9 6
Resultado de la consulta:
Resultado de la consulta:
El lenguaje SQL es de fácil comprensión, casi todas las sentencias tienen una
forma básica, empiezan por un verbo que corresponde a una palabra
reservada que describe lo que va a realizar la tarea (ejemplo SELECT),
luego continua una o más cláusulas que explican más detalles acerca
de la sentencia y que también empiezan con una palabra clave, (por
ejemplo, FROM o WHERE). Para finalizar se enuncian los nombres de
las tablas, de las columnas y expresiones o valores que se desean
consultar, por lo que el anterior trabajo permitirá poner en práctica y
sumar experiencia en SQL.
BIBLIOGRAFÍA