Sie sind auf Seite 1von 67

UNIDAD 1: FASE 1 - MODELAMIENTO: MODELAR, DISEÑAR Y DESARROLLAR

BASES DE DATOS RELACIONALES

POR: GRUPO N° 5
SANDRA PAOLA MOLINA BRAVO
VLADIMIR HENRÍQUEZ ÍLIAS
RONALD JAVIER BAEZ
JHON FREDY MATIZ

PRESENTADO A
LUIS ERNESTO BONILLA TUTOR

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BÁSICAS E TECNOLOGÍA E INGENIERÍA – ECBTI
BASES DE DATOS AVANZADA - 301125
MARZO DE 2019
Tabla de contenido
INTRODUCCIÓN ............................................................................................................ 7
Resultado de la actividad .......................................................................................................... 8
1. Preguntas motivadoras ................................................................................................. 8
1.¿Cuál es la diferencia entre base de datos Transaccionales y base de datos relacionales? ...... 8
2. ¿Qué se considera una base de datos relacionales? ................................................................. 9
3. ¿Cuál es la importancia del proceso de normalización en bases de datos? ........................... 11
4. ¿Cuál es la diferencia entre el lenguaje de definición de datos y el lenguaje de manipulación
de datos? .................................................................................................................................... 11
5. ¿Qué son las formas normales y cuál es su finalidad? 12
Realiza la etapa de análisis, teniendo en cuenta los siguientes requerimientos ........ 12
a) Formatos diligenciados de acuerdo etapa de análisis .............................................. 12
b) Diseño – Modelo relacional........................................................................................ 19
1.1 Llaves primarias (UID) de cada tabla. ................................................................................ 20
1.2 Transforme las Relaciones 1:1 o 1:M en Llaves Foráneas,................................................. 20
1.3 Aplicar técnicas de normalización ...................................................................................... 20
c) Desarrollo de la base de datos relacional .................................................................. 22
1.1 Programación con el lenguaje SQL del Script DDL ........................................................... 22
Creación de la base de datos y las tablas con sus llaves primarias, con comandos en APEX .. 23
Creación en las tablas de las llaves foráneas, con comandos en APEX.................................... 35
1.2 Programación con el lenguaje SQL del script DML ........................................................... 41
Script para poblar la tabla matriculas, se ejecuta uno por uno .................................................. 42
Script para poblar la tabla asignaturas, se ejecuta uno por uno................................................. 44
Script para poblar la tabla oferta académica, se ejecuta uno por uno ....................................... 46
Script para poblar la tabla profesores, se ejecuta uno por uno .................................................. 48
Script para poblar la tabla estudiantes, se ejecuta uno por uno ................................................. 50
Script para poblar la tabla notas, se ejecuta uno por uno .......................................................... 52
1.3 Programación con el lenguaje SQL el Scripts DCL............................................................ 54
Permisos para borrar datos en la tabla asignaturas .................................................................... 55
Revocamos los permisos para borrar datos en la tabla asignaturas ........................................... 56
Concede todos los permisos al usuario para la tabla oferta_academica, ................................... 57
Revocamos el permiso de consulta de la tabla oferta_academica al usuario ............................ 58
Revocamos todos los permisos (o privilegios) públicos a la tabla oferta_academica .............. 59
1.4 Generación de Consultas simples sobre las tablas de la base de datos ............................... 60
Script para la actualización de un registro ................................................................................ 60
Consulta de todos los registros de la tabla estudiantes.............................................................. 61
Consulta de los estudiantes matriculados por curso .................................................................. 62
Consulta de los estudiantes por periodo que lleven menos de 6 semestres............................... 62
Consulta de estudiantes que estudian Ingeniería de sistemas ................................................... 63
Consulta de notas por estudiante en cada curso ........................................................................ 64
CONCLUSIONES........................................................................................................... 66
Referencias....................................................................................................................... 67
Lista de tablas

Tabla 1 Descripción de entidades ................................................................................................. 12

Tabla 2 Descripción de atributos y sus restricciones naturales..................................................... 14

Tabla 3 Matriz de relaciones ......................................................................................................... 16

Tabla 4. Relaciones determinadas en la matriz ............................................................................ 17

Tabla 5 Normalización tabla asignaturas ...................................................................................... 21

Tabla 6 Normalización tabla profesores ....................................................................................... 21

Tabla 7 Normalizacion tabla oferta_academica ............................................................................ 21

Tabla 8 Normalización tabla notas .............................................................................................. 21

Tabla 9 Normalización tabla matriculas ...................................................................................... 22

Tabla 10 Normalización tabla estudiantes ................................................................................... 22


Lista de Figuras

Figura 1. Modelo entidad relación ............................................................................................... 19

Figura 2. Creación tabla asignatura ............................................................................................. 24

Figura 3. Tabla asignatura creada ................................................................................................ 25

Figura 4. Creación tabla estudiante .............................................................................................. 26

Figura 5. Tabla estudiantes creada ............................................................................................... 27

Figura 6. Creación tabla matriculas ............................................................................................. 28

Figura 7. Tabla matriculas creada ................................................................................................ 29

Figura 8. Creación tabla notas ..................................................................................................... 30

Figura 9. Tabla nota creada .......................................................................................................... 31

Figura 10. Creacion tabla oferta academica ................................................................................. 32

Figura 11. Tabla oferta academica creada ................................................................................... 33

Figura 12. Creacion tabla profesores ........................................................................................... 34

Figura 13. Tabla profesores creada .............................................................................................. 35

Figura 14. Llaves foráneas ........................................................................................................... 38

Figura 18. Ejecución población tabla matriculas ......................................................................... 43

Figura 21. Tabla asignaturas poblada .......................................................................................... 46

Figura 22. Ejecución población tabla oferta_academica ............................................................. 47

Figura 23. Tabla oferta_academica poblada ................................................................................ 48

Figura 24. Población tabla profesores .......................................................................................... 49

Figura 25. Tabla profesores poblada ............................................................................................ 50

Figura 26. Población tabla estudiantes......................................................................................... 51

Figura 27. Tabla estudiantes poblada........................................................................................... 52


Figura 28. Población tabla notas .................................................................................................. 53

Figura 30. Permisos para borrar datos ......................................................................................... 55

Figura 31. Revocamos los permisos para borrar datos ................................................................ 56

Figura 32. Concede todos los permisos al usuario ....................................................................... 57

Figura 33. Revocamos el permiso de consulta de la tabla oferta_academica .............................. 58

Figura 34. Revocamos todos los permisos (o privilegios) públicos ............................................ 59

Figura 35. Ejecución script actualización registro tabla estudiantes ........................................... 60

Figura 36. Consulta registros tabla estudiantes............................................................................ 61

Figura 37. Consulta registros tabla cargo .................................................................................... 61

Figura 40. Consulta de estudiantes que estudian Ingeniería de sistemas ..................................... 64

Figura 41. Consulta notas por estudiante ..................................................................................... 65


7

INTRODUCCIÓN

Por medio de este trabajo se desarrolló lo visto en la unidad 1 donde se partió del diseño de una

base de datos relacional y de esta manera fundamentarnos en las generalidades de las bases de

datos, Modelamiento conceptual, Fundamentos Diagrama Entidad Relación, modelado relacional

y normalización, para lograr entender la transición de tabla, las llaves integridad referencial

teniendo en cuenta el desarrollo los conceptos básicos y el desarrollo de las capacidades

autómatas.

Diseñando un modelo relacional de una base de datos mediante un lenguaje SQL (Structured

Query Language) para implementarlo en un sistema gestor de bases de datos para la gestión de la

información. Se presenta el caso de estudio donde pondremos en práctica los conocimientos

adquiridos en el aprendizaje de desarrollo de aplicaciones mediante el lenguaje SQL.


8

Resultado de la actividad

1. Preguntas motivadoras

1. ¿Cuál es la diferencia entre base de datos Transaccionales y base de datos relacionales?

La son bases de datos cuyo único fin es el envío y recepción de datos a grandes velocidades,

estas bases son muy poco comunes y están dirigidas por lo general al entorno de análisis de

calidad, datos de producción e industrial, es importante entender que su fin único es

recolectar y recuperar los datos a la mayor velocidad posible, por lo tanto la redundancia y

duplicación de información no es un problema como con las demás bases de datos, por lo

general para poderlas aprovechar al máximo permiten algún tipo de conectividad a bases de

datos relacionales.

Un ejemplo habitual de transacción es el traspaso de una cantidad de dinero entre cuentas

bancarias. Normalmente se realiza mediante dos operaciones distintas, una en la que se

decrementa el saldo de la cuenta origen y otra en la que incrementamos el saldo de la cuenta

destino. Para garantizar la atomicidad del sistema (es decir, para que no aparezca o

desaparezca dinero), las dos operaciones deben ser atómicas, es decir, el sistema debe

garantizar que, bajo cualquier circunstancia (incluso una caída del sistema), el resultado final

es que, o bien se han realizado las dos operaciones, o bien no se ha realizado ninguna.

Base de Datos Relacional

Es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado

en la actualidad para implementar bases de datos ya planificadas. Permiten establecer

interconexiones (relaciones) entre los datos (que están guardados en tablas), y a través de

dichas conexiones relacionar los datos de ambas tablas, de ahí proviene su nombre: “Modelo

Relacional”.
9

2. ¿Qué se considera una base de datos relacionales?

Una base de datos relacional es una recopilación de elementos de datos con relaciones

predefinidas entre ellos. Estos elementos se organizan como un conjunto de tablas con

columnas y filas. Las tablas se utilizan para guardar información sobre los objetos que se

van a representar en la base de datos, una relación representa un conjunto de entidades con

las mismas propiedades. Cada relación se compone de una serie de filas o registros (las

llamadas tuplas), cuyos valores dependen de ciertos atributos (columnas).

Los datos estructurados en tablas constituyen la BD de un sistema relacional. El SGBD

define su estructura y gestiona también los permisos de escritura y lectura y para interactuar

con él, los usuarios utilizan un lenguaje de bases de datos. Todo gestor de bases de datos

relacionales soporta al menos un lenguaje formal que permite ejecutar las siguientes

operaciones:

Definir la estructura de datos: en la definición de los datos se guarda una descripción con

metadatos de la estructura de datos en el diccionario del sistema. Cuando un usuario crea

una tabla nueva, en el diccionario de datos se almacena su correspondiente esquema. El

vocabulario de un lenguaje de bases de datos que se utiliza para definir los datos se

denomina Data Definition Language (DDL), lenguaje de definición de datos.

Definir derechos: todos los lenguajes de bases de datos proporcionan una sintaxis que

permite otorgar o retirar permisos. En este contexto se habla de Data Control Language

(DCL) o lenguaje de control de datos, un vocabulario integrado en el lenguaje de bases de

datos.
10

Definir condiciones de integridad: por condiciones de integridad se entienden los requisitos

de estado que se exigen a un banco de datos. Si se definen condiciones para su integridad, la

BD garantiza que se cumplan en todo momento. Se habla entonces de un estado consistente.

Una condición básica de integridad en una base de datos relacional es, por ejemplo, que cada

registro (tupla) pueda identificarse de forma inequívoca.

Definir transacciones: cuando se lleva a una BD de un estado consistente a otro diferente se

habla de transacción. Estas transacciones contienen una serie de instrucciones que deben

ejecutarse siempre de forma íntegra. Si una se interrumpe, la BD vuelve a su estado original

(Rollback). Cada transacción comienza con una orden para crear una conexión con la BD a

la que siguen otras que inician las operaciones de datos en sí, así como un paso de

comprobación (Commit) que asegura la integridad de la BD. Las operaciones que pongan en

peligro la integridad de la tabla no se consignan (comité), es decir, no se escriben en la base

de datos de forma permanente. Por último, se cierra la conexión con la BD. Al vocabulario

del lenguaje de bases de datos con el que se manipulan los datos se le conoce como Data

Manipulación Language (DML).

Definir vistas: las llamadas views son vistas virtuales de un subconjunto de los datos de una

tabla. Para crear una vista, el SGBD genera una tabla virtual (relación lógica) sobre la base

de las tablas físicas. En estas vistas pueden emplearse las mismas operaciones que se

utilizarían en tablas físicas. Según la función de la vista de datos pueden distinguirse

distintos tipos de vista. Las más habituales son aquellas que filtran determinadas filas

(consulta de selección) o columnas (vista de columnas) de una tabla, así como las que

conectan diversas tablas entre sí (vista de conjunto).


11

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

Se aplica durante el proceso de diseño de una base de datos. Esta técnica es un proceso

matemático formal, que tiene sus fundamentos en la teoría de los conjuntos, también se le

define como; un conjunto de reglas que sirven para ayudar a los diseñadores a desarrollar un

esquema que minimice los problemas de lógica. Básicamente, las reglas que la integran

están encaminadas a eliminar redundancias e inconsistencias de dependencia en el diseño de

las tablas.

Cada regla está basada en la que le antecede. Esta técnica se adoptó porque el viejo estilo de

poner todos los datos en un solo lugar, como un archivo o una tabla de la base de datos, era

ineficiente y conducía a errores de lógica cuando se trataba de manipular los datos.

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

datos?

El lenguaje de definición de datos son las diferentes sintaxis de programación que

empleamos para dar forma a una base de datos, iniciando desde la creación de la base de

datos, tablas, llaves primarias, foráneas, relaciones, y o eliminación de tablas o bases de

datos. Entre las algunos de los comandos de este lenguaje encontramos:

Create, alter, truncate.

La mayoría de las veces estos comandos no son visibles ala hora de crear un esquema de

base de datos, pero por ejemplo cuando se crea un respaldo y se va a exportar en MYSQL

nos podremos dar cuenta abriendo el script con un bloc de notas que el script esta construido

con este lenguaje DDL

El lenguaje de manipulación de datos son aquellas sentencias entre las que se encuentra el

popular CRUD, es decir mediante este lenguaje podemos insertar, leer, actualizar o borrar
12

información de una base de datos. Algunos de los comandos que podemos dar como ejemplo

son los siguientes:

Select from, insert, update,delete from, where

Estos comandos son de uso mas recurrente y se pueden aplicar de manera directa en la base

de datos o manejar desde los diferentes controladores de las aplicaciones o servicios que

hagan uso de ellos.

5. ¿Qué son las formas normales y cuál es su finalidad?

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

a) Formatos diligenciados de acuerdo etapa de análisis

Tabla 1
Descripción de entidades

Justificación,
explicación de su Ejemplo de
Entidad o Tipo
existencia en el Ejemplares Extensión INTENCION
de Entidad
Mundo del (Instancias)
Problema

 Base de datos
Avanzada
Es importante  Visual Studio
porque nos indicara básico Hacer un trabajo en
cuales son las  Diseño de el proceso de la
Asignaturas 100
asignaturas que páginas Web gestión de ofertas
cursar dentro de la  Evaluación de educativas
oferta proyectos
 Calculo
diferencial

2019 -16-1
Es importante ya 2019-16-2
nos define la oferta 2019-8-1 Dar a conocer las
Oferta académica 40
que se encuentra ofertas
vigente 2019-8-2
13

 Ronald Baez
 Sandra Paola
Molina
 John Fredy
Nos indica los Matiz
Conocer la cantidad
Estudiantes
estudiantes que  Vladimir 100 de estudiantes que
estarán Enrique se matricularan
matriculados Henríquez
 Francisco Javier
herrera

 Clara luz
Fernández
 Julián camilo
Es importante ya
Penagos Nos muestra
que se tendrá
 Daniel Alberto cuantas materia
Profesores conocimiento de 60
Prada Martínez dictara cada
quien dictara cada
materia  Carlos Darío profesor
torres Piñeros
 Carmen Julieta
Piñeros Vargas
 101
Nos da a conocer Conocer cuántos
 102
los registros de las estudiantes hay
Matricula  103 4
matriculas que se matriculados por
realizaran  104 asignatura
 105
Es importante  4,5 Saber la nota y así
conocer las notas definir si aprobó o
 3,5
de los estudiantes reprobó para que se
Nota estudiantes  4,7 4
para saber su pueda inscribir en
rendimiento  2,4 la materia
académico  4,8 siguiente.
14

Tabla 2
Descripción de atributos y sus restricciones naturales

Nombre Atributos Identificad Nombre Tipo de Tamañ Obligatoried Cardinalid Restricciones adicionales
Entidad or Único dominio Dato o ad (Si/No) ad Lista Rango Restricci
(UID) (Texto, (1 o de de ón de
Númer Muchos) Valore Valore Control
o, s s
Fecha)
Asignatur Asignatura_ X Asignatura_i N 4 Si 1 -- NOT Es la
as id ds NULL clave
principal

Titulo P_Titulos T 30 SI 1 T, NOT ---


P,E, NULL
M
Programa S_programas T 30 Si 1 -- NOT ---
NULL
Prerrequisit P_prerequisit T 30 Si 1 NOT ---
os os NULL
Oferta Oferta_id X Ofertas_ids N 4 Si M NOT Es la
académic NULL clave
a principal
Asignatura_ Número de N 4 Si M NOT ---
id asignaturas NULL
Año P_año D 6 Si 1 DATE
NOT
NULL
15

Semestre P_semestre N 10 Si 1 NOT


NULL
N_seccion Numero de N 10 Si 1 NOT
sección NULL
Profesor_id Profesores T 30 Si M NOT
NULL
Horario P_horarios N 30 Si M DATE
NOT
NULL
Aula Aulas T 30 Si M NOT
NULL
Estudiant Estudiante_ X Estudiante_i N 4 Si 1 -- NOT Es la
es id ds NULL clave
principal
Nombres Nombre T 30 Si 1 NOT
estudiante NULL
Apellidos Apellido T 30 Si 1 NOT
estudiate NULL
Departamen Departament T 30 Si 1 NOT
to o NULL
Titulo Titulo T 30 Si 1 NOT
NULL
Profesore Profesor_id x Profesor_ids N 4 Si 1 NOT Es la
s NULL clave
principal
Asignatura_ Asignatura_i N 4 Si 1 NOT
id ds NULL
nombre Nombres T 30 Si 1 NOT
profesor NULL
16

Matricula matricula_i X Matricula_id N 4 Si M NOT Es la


s d s NULL clave
principal
Oferta_id Oferta_ids N 4 Si M NOT
NULL

Estudiante_ Estudiante_i N 4 Si 1 NOT


id ds NULL
Notas Nota_id X Notas_ids N 4 Si M NOT Es la
NULL clave
principal
Asignatura_ Asignatura_i N 4 Si 1 NOT
id ds NULL
Estudiante_ Estudiante_i N 4 Si 1 NOT
id ds NULL
nota Nota N 4 Si 1 NOT
NULL

Tabla 3
Matriz de relaciones

Asignaturas Oferta Estudiantes Profesores Matriculas Notas


Académica
Asignaturas R1 R2 R3
Oferta R1 R4
académica
Estudiantes R5 R6
Profesores R2
Matriculas R4 R5
Notas R3 R6
17

Tabla 4.
Relaciones determinadas en la matriz

Relación Entidad 1 Rol Entidad 2 Pregunta Rta. Pregunta Rta. Relación es Grado Ayuda a Observación/Restricciones/Atributos
para Opc. para Card. Transferible Identificar
determinar determinar (Si/No) entidades
Opcionalidad Cardinalidad Participantes
(Preguntar si (Pregunta
está CUANTO )
obligado)
R1 Asignaturas Tiene.. Oferta Asignatura No Una M Si 1:M La dos Esta relación modela un hecho
académica debe tener asignatura entidades importante que sucede en el proceso
varias ofertas cuantas participantes que estamos analizando y es que
académicas ofertas se identifican asignaturas tienen o
académicas plenamente Varias ofertas académicas.
tiene 1:M
Oferta Tiene.. asignaturas Oferta Si. Una oferta 1 Si
académica académica académica
debe tener cuantas
varias asignaturas
asignaturas tiene
R2 Asignaturas Tiene... profesores Una Si Una M Si La dos Esta relación modela un hecho
asignatura asignatura 1:M entidades importante que sucede en el proceso
está obligada cuantos participantes que estamos analizando y es que los
a tener varios profesores se identifican profesores dictan una asignatura y esta
profesores tiene plenamente tiene varios profesores
Profesores Dicta… asignaturas Un profesor No. Un profesor 1 Si
está obligado cuantas 1:M
a dictar varias asignaturas
asignaturas dicta
R3 Asignaturas Tiene... notas Una Si Una M Si La dos Esta relación modela un hecho
asignatura asignatura 1:M entidades importante que sucede en el proceso
está obligada cuantas notas participantes que estamos analizando y es que las
a tener varias tiene se identifican asignaturas tienen varias notas y una
notas plenamente nota tiene una asignatura
Notas Tiene.. asignaturas Una nota está No. Una nota 1 Si
obligado a cuantas 1:M
tener varias asignaturas
asignaturas tiene
R4 Oferta Tiene... matricula Una oferta Si Una oferta M Si La dos Esta relación modela un hecho
académica académica académica 1:M entidades importante que sucede en el proceso
está obligada cuantas participantes que estamos analizando y es que las
a tener varias matriculas se identifican ofertas académicas tienen varias
matriculas tiene plenamente
18

matriculas Tiene.. Oferta Una matrícula No. Una nota 1 Si matrículas y una matrícula tiene una
académica está obligada cuantas 1:M oferta académica
a tener varias asignaturas
ofertas tiene
académicas
R5 matriculas Tiene... estudiantes Una matrícula Si. Una matrícula M Si La dos Esta relación modela un hecho
está obligada cuantos 1:M entidades importante que sucede en el proceso
a tener varios estudiantes participantes que estamos analizando y es que las
estudiantes tiene se identifican matriculas tienen varios estudiantes y
estudiantes Toma.. matricula Un estudiante No. Un estudiante 1 Si plenamente un estudiante tiene una matricula
está obligado cuantas
a tener varias matriculas 1:M
matriculas tiene
R6 estudiantes Tiene... notas Un estudiante Si. Un estudiante M Si La dos Esta relación modela un hecho
está obligada cuantas notas 1:M entidades importante que sucede en el proceso
a tener varias tiene participantes que estamos analizando y es que los
notas se identifican estudiantes tienen varias notas y una
notas Tiene.. estudiantes Una nota está No. Una nota 1 Si plenamente nota tiene un estudiante.
obligada a cuantos
tener varios estudiantes 1:M
estudiantes tiene
19

b. Diseño – Modelo relacional

Figura 1. Modelo entidad relación


20

1.1 Llaves primarias (UID) de cada tabla.

Para las entidades se define como llave primaria por la naturaleza de los datos allí contenidos es la clave única elegida entre todas las

claves candidatas, que define unívocamente a todos los demás atributos de la tabla, especificando los datos que se relacionaran con las

otras tablas. Es el identificador de la tabla.

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

Implementando el concepto de la Integridad Referencial, para las entidades se define como llave foránea, relación existente entre 2

tablas clave que determina la relación existente entre dos tablas, es una referencia a una clave en otra tabla. No es necesario que sea

clave única en la tabla en la que esta, pero si o debe ser en la tabla donde están referenciadas.

1.3 Aplicar técnicas de normalización

Para las entidades Asignaturas, Oferta académica, Matriculas, Estudiantes, Profesores y Nota se aplica las técnicas de normalización

para evitar la redundancia de los datos, disminuir problemas de actualización de los datos en las tablas y proteger la integridad de los

datos, de acuerdo a lo expuesto por Sosa Flores (2007) la normalización se ha desarrollado para obtener estructuras de datos eficientes

que eviten las anomalías de actualización, es la expresión formal del modo de realizar un buen diseño. Provee los medios necesarios para

describir la estructura lógica de los datos en un sistema de información.


21

Tabla 5
Normalización tabla asignaturas

ASIGNATURAS
ID_ASIGNATURA TITULO PROGRAMA PREREQUISITO

Tabla 6
Normalización tabla profesores

PROFESORES
ID_PROFESOR ID_ASIGNATURA NOMBRES

Tabla 7
Normalizacion tabla oferta_academica

OFERTA_ACADEMICA
ID_OFERTA ID_ASIGNATURA AÑO SEMESTRE NUM_SECCION HORARIO

Tabla 8
Normalización tabla notas

NOTAS
ID_NOTAS ID_ASIGNATURA ID_ESTUDIANTE NOTA
22

Tabla 9
Normalización tabla matriculas

MATRICULAS
ID_MATRICULA ID_OFERTA ID_ESTUDIANTE

Tabla 10
Normalización tabla estudiantes

ESTUDIANTES
ID_ESTUDIANTE NOMBRES APELLIDOS DEPARTAMENTO TITULO

c. Desarrollo de la base de datos relacional

1.1 Programación con el lenguaje SQL del Script DDL

Con el script DDL se realizará la creación, modificación y eliminación de la estructura y objetos de la base de datos de las entidades

Asignaturas, Oferta académica, Matriculas, Estudiantes, Profesores y Nota, de acuerdo a lo expuesto por Camuña Rodríguez (2014) el

conjunto de instrucciones SQL contenidas en su Lenguaje de Definición de Datos (LDD) son las responsables de realizar las

modificaciones en la estructura de la base de datos.

Las instrucciones LDD pueden:

 Crear y definir tablas

 Eliminar tablas
23

 Modificar una tabla creada previamente

 Crear vistas

 Crear índices

 Controlar el almacenamiento físico de los datos

Creación de la base de datos y las tablas con sus llaves primarias, con comandos en APEX

CREATE TABLE asignaturas (

id_asignatura NUMBER NOT NULL,

título VARCHAR2(100) NOT NULL,

programa VARCHAR2(100) NOT NULL,

prerrequisito VARCHAR2(100) NOT NULL,

CONSTRAINT asignatura_pk PRIMARY KEY ( id_asignatura ));


24

Figura 2. Creación tabla asignatura


25

Figura 3. Tabla asignatura creada

CREATE TABLE estudiantes (

id_estudiante NUMBER NOT NULL,

nombres VARCHAR2(100 CHAR) NOT NULL,

apellidos VARCHAR2(100) NOT NULL,

departamento VARCHAR2(50) NOT NULL,

título VARCHAR2(100) NOT NULL,

CONSTRAINT estudiantes_pk PRIMARY KEY ( id_estudiante );


26

Figura 4. Creación tabla estudiante


27

Figura 5. Tabla estudiantes creada

CREATE TABLE matriculas (

id_matricula NUMBER NOT NULL,

id_oferta NUMBER NOT NULL,

id_estudiante NUMBER NOT NULL,

CONSTRAINT matriculas_pk PRIMARY KEY ( id_matricula );


28

Figura 6. Creación tabla matriculas


29

Figura 7. Tabla matriculas creada

CREATE TABLE notas (

id_nota NUMBER NOT NULL,

id_asignatura NUMBER NOT NULL,

id_estudiante NUMBER NOT NULL,

nota NUMBER NOT NULL,

CONSTRAINT notas_pk PRIMARY KEY ( id_nota );


30

Figura 8. Creación tabla notas


31

Figura 9. Tabla nota creada

CREATE TABLE oferta_academica (

id_oferta NUMBER NOT NULL,

id_asignatura NUMBER NOT NULL,

año DATE NOT NULL,

semestre NUMBER NOT NULL,

num_sección NUMBER NOT NULL,

id_profesor NUMBER NOT NULL,


32

horario NUMBER NOT NULL,

CONSTRAINT oferta_academica_pk PRIMARY KEY ( id_oferta) );

Figura 10. Creación tabla oferta académica


33

Figura 11. Tabla oferta académica creada

CREATE TABLE profesores (

id_profesor NUMBER NOT NULL,

id_asignatura NUMBER NOT NULL,

nombres VARCHAR2(100) NOT NULL,

CONSTRAINT profesores_pk PRIMARY KEY ( id_profesor ));


34

Figura 12. Creación tabla profesores


35

Figura 13. Tabla profesores creada

Creación en las tablas de las llaves foráneas, con comandos en APEX

ALTER TABLE asignaturas

ADD CONSTRAINT asignatura_notas_fk FOREIGN KEY ( id_asignatura )

REFERENCES notas ( id_nota );

ALTER TABLE asignaturas

ADD CONSTRAINT asignatura_oferta_academica_fk FOREIGN KEY ( id_asignatura )

REFERENCES oferta_academica ( id_oferta );


36

ALTER TABLE estudiantes

ADD CONSTRAINT estudiantes_matriculas_fk FOREIGN KEY ( id_estudiante )

REFERENCES matriculas ( id_matricula );

ALTER TABLE notas

ADD CONSTRAINT notas_estudiantes_fk FOREIGN KEY ( id_nota )

REFERENCES estudiantes ( id_estudiante );

ALTER TABLE oferta_academica

ADD CONSTRAINT oferta_academica_matriculas_fk FOREIGN KEY ( id_oferta )

REFERENCES matriculas ( id_matricula );

ALTER TABLE profesores

ADD CONSTRAINT profesores_asignatura_fk FOREIGN KEY ( id_asignatura )

REFERENCES asignaturas ( id_asignatura );

ALTER TABLE asignaturas

ADD CONSTRAINT asignatura_notas_fk FOREIGN KEY ( id_asignatura )

REFERENCES notas ( id_nota );

ALTER TABLE asignaturas


37

ADD CONSTRAINT asignatura_oferta_academica_fk FOREIGN KEY ( id_asignatura )

REFERENCES oferta_academica ( id_oferta );

ALTER TABLE estudiantes

ADD CONSTRAINT estudiantes_matriculas_fk FOREIGN KEY ( id_estudiante )

REFERENCES matriculas ( id_matricula );

ALTER TABLE notas

ADD CONSTRAINT notas_estudiantes_fk FOREIGN KEY ( id_nota )

REFERENCES estudiantes ( id_estudiante );

ALTER TABLE oferta_academica

ADD CONSTRAINT oferta_academica_matriculas_fk FOREIGN KEY ( id_oferta )

REFERENCES matriculas ( id_matricula );

ALTER TABLE profesores

ADD CONSTRAINT profesores_asignatura_fk FOREIGN KEY ( id_asignatura )

REFERENCES asignaturas ( id_asignatura );


38

Figura 144. Llaves foráneas


39

Figura 15. Modelo 1 llaves foráneas


40

Figura 16. Modelo 2 llaves foráneas


41

Figura 17. Modelo 3 llaves foráneas 1

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

Con el script DML se insertará, modificara, obtendrá y eliminara los datos de las tablas de la base de datos de las entidades Asignaturas,

Oferta académica, Matriculas, Estudiantes, Profesores y Nota, de acuerdo a lo expuesto por Camuña Rodríguez (2014) los SGBD
42

proporcionan un lenguaje compuesto por un conjunto de sentencias denominado Lenguaje de Manipulación de Datos (DML, Data

Manipulation Languaje, en inglés) con el que se puede realizar:

 Insertar datos en la nueva base de datos

 Recuperar los datos mediante consultas

 Modificar los datos

 Borrar los datos que no sean necesarios

Script para poblar la tabla matriculas, se ejecuta uno por uno

insert into matriculas values(101,2001,53756789);

insert into matriculas values(102,2002,1009789067);

insert into matriculas values(103,2003,79756789);

insert into matriculas values(104,2004,80567879);

insert into matriculas values(105,2005,79677089);


43

Figura 158. Ejecución población tabla matriculas


44

Figura 19. Tabla matriculas poblada

Script para poblar la tabla asignaturas, se ejecuta uno por uno

insert into asignaturas values(3011,'Base de datos avanzada', 'tecnología e ingeniería', 'Base de datos básico');

insert into asignaturas values(3012,'Visual Studio básico', 'tecnología e ingeniería', 'no aplica');
insert into asignaturas values(3013,'Diseño de páginas web 2', 'tecnología e ingeniería', 'Diseño de páginas web 1');

insert into asignaturas values(3014,'Evaluacion de proyectos', 'ciencias básicas, tecnología e ingeniería', 'no aplica');
45

insert into asignaturas values(3015, 'calculo diferencial', 'ciencias básicas, tecnología e ingeniería', 'calculo integral');

Figura 20. Ejecución población tabla asignaturas


46

Figura 16. Tabla asignaturas poblada

Script para poblar la tabla oferta académica, se ejecuta uno por uno

insert into oferta_academica values(1101, 3011, '18-01-2019', 7, 3, '11:00 am');

insert into oferta_academica values(1102, 3012, '18-01-2019', 5, 2, '09:00 am');

insert into oferta_academica values(1103, 3013, '18-01-2019', 3, 1, '02:00 pm');


47

insert into oferta_academica values(1104, 3014, '18-01-2019', 8, 2, '01:00 pm');

insert into oferta_academica values(1105, 3015, '18-01-2019', 6, 1, '05:00 pm');

Figura 172. Ejecución población tabla oferta_academica


48

Figura 183. Tabla oferta_academica poblada

Script para poblar la tabla profesores, se ejecuta uno por uno

insert into profesores values(79508928, 3011, 'Daniel Alberto Prada Martínez');

insert into profesores values(80807450, 3012,'Julian camilo Penagos');


insert into profesores values(23456789, 3013,'Clara luz Fernández');
49

insert into profesores values(79518928, 3014,'Carlos Darío Torres Piñeros');

insert into profesores values(51987656, 3015,'Carmen Julieta Piñeros Vargas');

Figura 194. Población tabla profesores


50

Figura 205. Tabla profesores poblada

Script para poblar la tabla estudiantes, se ejecuta uno por uno

insert into estudiantes values(1009789067, 'Ronald’, ‘Baez', 'cundinamarca', 'Ingeniería de sistemas');


51

insert into estudiantes values(53756789, 'Sandra Paola’, ‘Molina Bravo', 'Meta', 'Ingeniería de sistemas');

insert into estudiantes values(79756789, ' John Fredy’, ‘Matiz', 'cundinamarca', 'Ingeniería de telecomunicaciones');

insert into estudiantes values(80567879, ' Vladimir Enrique’, ‘Henríquez', 'Santander', 'Ingeniería de sistemas');

insert into estudiantes values(79677089, 'Francisco Javier’, ‘Herrera', 'Meta', 'Ingeniería industrial');

Figura 216. Población tabla estudiantes


52

Figura 227. Tabla estudiantes poblada

Script para poblar la tabla notas, se ejecuta uno por uno

insert into notas values(1, 3011, 1009789067, 4.5);


53

insert into notas values(2, 3012, 53756789, 3.5);

insert into notas values(3, 3011, 79756789, 4.7);

insert into notas values(4, 3013, 80567879, 2.4);

insert into notas values(5, 3015, 79677089, 4.8);

Figura 238. Población tabla notas


54

Figura 29. Tabla notas poblada

1.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.
55

Con el script DCL se controlará el acceso a los datos contenidos en la Base de Datos, de acuerdo a lo expuesto Camuña Rodríguez (2014)

un Lenguaje para el Control y Seguridad de los Datos DCL

 Concede privilegios de acceso a usuarios

 Suprime privilegios de acceso a usuarios

 Finaliza la transacción actual.

 Aborta la transacción actual.

Permisos para borrar datos en la tabla asignaturas

grant delete on asignaturas to public;

Figura 24. Permisos para borrar datos


56

Revocamos los permisos para borrar datos en la tabla asignaturas

revoke delete on asignaturas from public;

Figura 25 Revocamos los permisos para borrar datos


57

Concede todos los permisos al usuario para la tabla oferta_academica,

grant select, insert, delete, update on oferta_academica to public;

Figura 26 Concede todos los permisos al usuario


58

Revocamos el permiso de consulta de la tabla oferta_academica al usuario

revoke select on oferta_academica from public;

Figura 27 Revocamos el permiso de consulta de la tabla oferta_academica


59

Revocamos todos los permisos (o privilegios) públicos a la tabla oferta_academica

revoke all on oferta_academica from public;

Figura 28 Revocamos todos los permisos (o privilegios) públicos


60

1.4 Generación de Consultas simples sobre las tablas de la base de datos

Con las sentencias de consulta básica se utilizarán para seleccionar los datos de las tablas creadas y pobladas de Asignaturas, Oferta

académica, Matriculas, Estudiantes, Profesores y Nota, según lo expuesto por Camuña Rodríguez (2014) la sentencia SQL con la que se

pueden recuperar los datos alojados en una base de datos se denomina SELECT.

La forma básica de la sentencia SELECT está compuesta por las clausulas SELECT, FROM y WHERE.

Se actualizará el departamento del id_estudiante 80567879.

Script para la actualización de un registro

update estudiantes set departamento='cundinamarca' where id_estudiantes= 80567879;

Figura 29. Ejecución script actualización registro tabla estudiantes


61

Consulta de todos los registros de la tabla estudiantes

select *from estudiantes;

Figura 30. Consulta registros tabla estudiantes

Consulta de todos los registros de la tabla Cargo

select *from Cargo;

Figura 31. Consulta registros tabla cargo


62

Consulta de los estudiantes matriculados por curso

select *from matriculas where id_oferta=1102;

Figura 38. Consulta matriculas curso

Consulta de los estudiantes por periodo que lleven menos de 6 semestres

select *from oferta_academica where semestre<6;


63

Figura 39. Consulta estudiantes que lleven menos de 6 semestres

Consulta de estudiantes que estudian Ingeniería de sistemas

select *from estudiantes where título='Ingeniería de sistemas';


64

Figura 32. Consulta de estudiantes que estudian Ingeniería de sistemas

Consulta de notas por estudiante en cada curso

select *from notas where id_estudiante= 53756789;


65

Figura 33. Consulta notas por estudiante


66

CONCLUSIONES

Esta actividad fue de suma importancia para la profundización de los temas del curso, ya que

nos permitió identificar los principales Momentos del Proceso de Diseño de Bases de Datos

Relacionales, identificar las principales herramientas tecnológicas y metodológicas

involucradas en el Proceso de Diseño de Bases de Datos Relacionales y aplicar nuestros

conocimientos para contextualizar un proceso de la organización que tenga problemas con

datos. Así siendo parte del proceso de diseño de bases de datos relacionales, de la

introducción al concepto de bases de datos relacionales, del primer contacto con el Lenguaje

SQL y la introducción a los Modelos, Modelos de Datos y Modelo de Datos Entidad,

Relación y Modelo de Datos Relacional.

Con este trabajo conocimos y desarrollamos la implementación del Lenguaje SQL, para

posteriormente darlas a conocer por medio de sentencias y creación de Scripts, dando

diferentes puntos de vista y relacionándolo aprendido en la unidad. Se adquirió

conocimiento en el asunto propuesto y su planteamiento. Así mismo se realizó el diseño

físico de una base de datos y entendemos la importación de tener un previo análisis de las

tablas en donde alojaremos los registros por medio de sentencias SQL.


67

Referencias

Camuña Rodríguez, J. (2014) Lenguajes de definición y modificación de datos SQL

(UF1472). Madrid, ESPAÑA: IC Editorial. pág. 5-55. Recuperado de

https://bibliotecavirtual.unad.edu.co:2538/lib/unadsp/detail.action?docID=4184070.

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

Madrid, ESPAÑA: IC Editorial. pág. 7-41.Recuperado de

http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/detail.action?docID=4184006&

query=Bases de datos relacionales y modelado de datos (UF1471).

Chicano, Tejada, Ester. Utilización de las bases de datos relacionales en el sistema de

gestión y almacenamiento de datos: UF0348, IC Editorial, 2013. ProQuest Ebook

Central, pág. 87-110. Recuperado de

https://bibliotecavirtual.unad.edu.co:2538/lib/unadsp/reader.action?ppg=111&docI

D=4499234&tm=1528910264489

Sosa Flores, M. & López Vázquez, M. (2007) Diseño de bases de datos relacionales.

Córdoba, AR: El Cid Editor. Pág. 20-85. Recuperado de

http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/detail.action?docID=3175111&

query=Dise%C3%B1o%20de%20bases%20de%20datos%20relacionales.

Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a.

ed.), McGraw-Hill España, 2007. ProQuest Ebook Central, pag-16-24recuperado

http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?ppg=43&docID=

3195347&tm=1531498461426

Das könnte Ihnen auch gefallen