Está en la página 1de 31

UNIDAD 1: LENGUAJE DE CONSULTA ESTRUCTURADO SQL

FASE 2 - DISEÑO

PARTICIPANTES:

CC: 79407261 –WILLIAM GERARDO GONZALEZ VIVAS


CC: 1010240792 - JONATHAN ANDRES NIEVES
CC: 1024490089 RONALD FERNANDO GONZALEZ MARTINEZ

GRUPO No. 301125-13

Tutor:
Gustavo Castro

Universidad Nacional Abierta y a Distancia – UNAD


Escuela Ciencias básicas, tecnología e ingeniería
Programa Ingeniería de Sistemas
Base de datos avanzada 301125
Periodo 16-04
Colombia
2021
Tabla de Contenido

Tabla de Contenido 2
1. INTRODUCCIÓN 3
2. OBJETIVOS 4
1. Objetivo General 4
2. Objetivos Específicos 4
1. RESULTADO 5
1. Selección y respuesta de la pregunta motivadora 5
Diseño modelo Entidad Relación y modelo Relacional 9
- Modelo de Datos Entidad Relación – Según Peter Chen 9
- Técnicas de normalización 10
- Modelo de Datos Relacional – Según Edgar Frank Codd 18
1. Desarrollo de la base de datos relacional 20
Consultas con JOINS 22
2. Consultas con funciones 24
3. Evidencias de la participación en el foro 26
CONCLUSIONES 28
BIBLIOGRAFÍA 29
1. INTRODUCCIÓN

Una de las etapas clave y de mayor esfuerzo en el desarrollo de una


aplicación software como solución a una problemática es la fase de
análisis y diseño. Dentro de esta etapa, es imperioso planificar como se
va a definir la base de datos que almacenará la información de la
aplicación. Independiente de la metodología practicada, es necesario
llevar a buen término esta etapa del proyecto para dar una continuidad
a la etapa de codificación de manera que se logre optimizar el código,
impulsando la aplicación de buenas prácticas con código limpio,
reutilización de código, etc.; obteniendo un producto software de calidad
y de fácil mantenimiento.

Para lograr este objetivo, es indispensable definir la estructura de la


base de datos mediante técnicas que permitan identificar las entidades,
sus atributos y las relaciones que existan entre ellas. De esta forma se
obtendrá una estructura sólida, sin duplicidad de la información y la
optimización de las consultas realizadas en la aplicación.

Dentro de este documento, previo análisis del requerimiento del cliente,


se desarrolla la fase de diseño de la base de datos mediante la
herramienta Oracle Apex y las respectivas sentencias SQL o PLSQL.
2. OBJETIVOS

1. Objetivo General

Diseñar la base de datos relacional para un sistema integrado de gestión


de B-Learning de la UNAD

2. Objetivos Específicos

● Aplicar las técnicas de normalización a las entidades identificadas


en la fase 1 – Planeación

● Diseñar el modelo entidad - relación y el modelo relacional de la


base de datos a partir del proceso de normalización

● Crear la base de datos relacional que responda a las necesidades


del proyecto propuesto, utilizando las herramientas Oracle Apex y
lenguaje SQL/PLSQL

● Insertar registros en la BD haciendo uso del lenguaje de


modificación de datos SQL

● Realizar ejercicios de consultas SQL a las entidades de la base de


datos
1. RESULTADO

1. Selección y respuesta de la pregunta motivadora

Nombre Estudiante 1: Ronald Fernando González

Pregunta 1: ¿Qué es una base de datos relacional?

Respuesta: Una base de datos relacional es aquella que está


estructurada bajo un modelo relacional, es decir que las tablas que
conforman la base de datos tienen una relación entre sí.
Entonces una base de datos relacional es un conjunto de tablas que
almacena datos y permite tener accesos a la información por medio
de relaciones definidas entre cada entidad, estas tablas o entidades
posean atributos de los datos que es donde se almacena la
información. Cada entidad posee una clave principal o primaria que
es la que ayuda a identificar de forma única un registro.
El funcionamiento de un modelo relacional estructura los datos y
permite administrar los permisos de escritura y lectura a los
usuarios para interactuar con los datos. Normalmente se utiliza el
lenguaje SQL para realizar operaciones como:
Definir la estructura de datos, definir vistas, crear procesos
almacenados adicional a las operaciones que se realizan
constantemente en las bases de datos como consultar, crear,
actualizar o borrar datos, estas se realizan por medio de las
sentencias SQL
En una base de datos relacional, cada fila de la tabla es un registro
con un ID único llamado clave. Las columnas de la tabla contienen
atributos de los datos, y cada registro generalmente tiene un valor
para cada atributo, lo que facilita el establecimiento de las
relaciones entre los puntos de datos. (Oracle, 2021)

Comentario: …….
Autor del comentario:

Nombre Estudiante 2: Jonathan Andres Nieves

Pregunta 2: ¿Qué se conoce como lenguaje SQL?

Respuesta:
El lenguaje de consulta estructurado es un lenguaje de
programación utilizado en los sistemas de gestión de bases de
datos relacionales, este es una combinación de herramientas de
lenguaje y software diseñadas para crear, mantener y compartir
una base de datos por muchos usuarios. Actualmente es el lenguaje
de programación más usado en todos los sistemas de gestión que
existen actualmente. Este lenguaje permite realizar operaciones
que nos pueden llegar gran tiempo en unos pocos minutos.
Considerado el lenguaje de cuarta generación, a la hora de describir
el lenguaje SQL existen muchas variantes que aunque son idénticas
en los estándares de implementación existen numerosas diferencias
que dificultan la portabilidad. El lenguaje de SQL consta de dos
partes, un lenguaje de definición de datos que sirve para definir o
modificar los datos, por ejemplo la creación de tablas índices, etc.
Por otro lado, se encuentra el lenguaje de manipulación, el cual es
el encargado de consultar (SELECT), insertar (INSERT TO), borrar
(DELETE), modificar (UPDATE) datos en las tablas
correspondientes. Esta última parte es la parte esencial del
lenguaje de SQL con los anteriores ejemplos realizamos todas las
operaciones de consultas en nuestra base de datos. Este tipo de
lenguaje es muy sencillo, en sí, sus comandos son fácilmente
interpretados y con estos mismos se pueden trabajar grandes
cantidades de datos.

De acuerdo a su respuesta, son claras las ventajas de este lenguaje


SQL, su facilidad de uso, sencilla sintaxis y variedad de sabores
permite la creación de las tablas de una base de datos,
independiente del manejador de base de datos (Mysql, MS SQL,
Oracle, postgress, MS Access, etc.).

Hoy en día, SQL se utiliza prácticamente en todas las aplicaciones


(web, escritorio, móviles), esto significa de alguna manera que
permanecerá todavía por mucho tiempo en el mercado a pesar que
ahora está creciendo la utilización de base de datos no SQL como
mongodb.
Autor del comentario: William González

Nombre Estudiante 3: William González

Pregunta 3: ¿Cuál es la importancia del proceso de normalización


en bases de datos?

Respuesta:
El proceso de normalización en bases de datos es de vital
importancia ya que permite organizar los datos contenidos en la
misma facilitando la fases siguientes del diseño de base de datos.
En esta organización de los datos se aplica una serie de técnicas o
normas a las entidades o tablas de la base de datos evitando tener
duplicidad o redundancia de los datos, problemas en la
actualización y fortalece la integridad de los mismos. El hecho de no
normalizar una base de datos, trae problemas en el rendimiento del
sistema presentando demoras en las consultas, consultas erróneas
o inexactas,  procesos lentos, pérdidas de datos, problemas de
seguridad, etc. terminando en tener un sistema ineficiente y costos
para las empresas.
Las técnicas implementadas en el proceso de normalización de una
base de datos tienen como objetivos:
-Organizar los datos en grupos lógicos de información que
identifique a cada grupo de información como parte integral de la
base datos 
- Minimizar la cantidad de datos duplicados almacenados en una
base de datos.
-Perfeccionar la organización de los datos de tal forma que, de ser
necesario, permite realizar modificaciones en los campos de la tabla
exacta sin equivocaciones, esto es, de forma consistente.
-Construir una base de datos integral y sólida que brinde alto
rendimiento y  confiabilidad en los diferentes procesos
transaccionales donde la consulta, adición, eliminación y
actualización, etc. se realizan de forma concurrida y necesita un
tiempo de respuesta optimo.

Encuentro su respuesta completamente acertada, entendemos que


la normalización es de vital importancia en el proceso del diseño de
bases de datos, no solo por temas de costos, sino por crear
ordenadamente desde un principio la base de datos que vayamos a
diseñar en cualquier proyecto, pues de lo no realizar el proceso de
normalización nos encontraremos más adelante con un gran
problema de pérdida de datos o duplicados innecesarios.

Autor del comentario: Jonathan Andres Nieves

Nombre Estudiante 4: Elimine el texto y escriba el nombre

Pregunta 4: ¿Cuál es la diferencia entre el lenguaje de definición de


datos y el lenguaje de manipulación de datos?

Respuesta:

Comentario: …….
Autor del comentario:

Nombre Estudiante 5: Elimine el texto y escriba el nombre

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

Respuesta:

Comentario: …….
Autor del comentario:
Diseño modelo Entidad Relación y modelo Relacional

- Modelo de Datos Entidad Relación – Según Peter Chen


- Técnicas de normalización
Se espera que los estudiantes relacionen las técnicas de normalización aplicadas.
- Modelo de Datos Relacional – Según Edgar Frank Codd
1. Desarrollo de la base de datos relacional
Nombre Estudiante 1: Jonathan Andres Nieves

CREATE TABLE centros (


idcentro NUMBER(4) NOT NULL,
nombrecentro VARCHAR2(25 CHAR) NOT NULL,
direccióncentro VARCHAR2(25 CHAR) NOT NULL,
zona_idzona NUMBER(4) NOT NULL,
ciudades_idciudad NUMBER(3) NOT NULL
);

CREATE TABLE ciudades (


idciudad NUMBER(3) NOT NULL,
nombreciudad VARCHAR2(15 CHAR) NOT NULL
);

CREATE TABLE cursos (


idcurso NUMBER(4) NOT NULL,
nombrecurso VARCHAR2(25 CHAR) NOT NULL,
nrounidadcurso NUMBER(1) NOT NULL,
metodología_idmetodología NUMBER(2) NOT NULL,
sesión_idsesión NUMBER(4) NOT NULL,
programas_idprograma NUMBER(4) NOT NULL
);

CREATE TABLE emailusuarios (


idemail NUMBER(2) NOT NULL,
email VARCHAR2(25 CHAR) NOT NULL
);

CREATE TABLE zona (


idzona NUMBER(4) NOT NULL,
nombrezona VARCHAR2(20 CHAR) NOT NULL,
directorzona VARCHAR2(25 CHAR) NOT NULL
);

Nombre Estudiante 2: William Gonzalez

CREATE TABLE escuelas (


idescuela NUMBER(4) NOT NULL,
nombreescuela VARCHAR2(25 CHAR) NOT NULL,
direccionescuela VARCHAR2(25 CHAR) NOT NULL,
siglaescuela VARCHAR2(25 CHAR) NOT NULL,
ciudades_idciudad NUMBER(3) NOT NULL
);

CREATE TABLE genero (


idgenero NUMBER(2) NOT NULL,
tipogenero VARCHAR2(15 CHAR) NOT NULL
);

CREATE TABLE metodología (


idmetodología NUMBER(2) NOT NULL,
nommetodología VARCHAR2(25 CHAR)
);

CREATE TABLE metodosesion (


idmetodo NUMBER(2) NOT NULL,
nombremetodo VARCHAR2(15) NOT NULL
);

CREATE TABLE programas (


idprograma NUMBER(4) NOT NULL,
nombreprograma VARCHAR2 (25) NOT NULL,
creditos NUMBER(4) NOT NULL,
escuelas_idescuela NUMBER(4) NOT NULL
);

Nombre Estudiante 3: Ronald Gonzalez

CREATE TABLE roles (


idrol NUMBER(2) NOT NULL,
nombrerol VARCHAR2(15 CHAR) NOT NULL
);

CREATE TABLE sesión (


idsesión NUMBER(4) NOT NULL,
nombresesión VARCHAR2(25 CHAR) NOT NULL,
nrosemanasesion NUMBER(1) NOT NULL,
descripciónsesion VARCHAR2(30 CHAR) NOT NULL,
metodosesion_idmetodo NUMBER(2) NOT NULL,
cursos_idcurso NUMBER(4) NOT NULL
);

CREATE TABLE telefusuarios (


telfuserid NUMBER(2) NOT NULL,
telfnumber NUMBER(13) NOT NULL,
usuarios_idusuario NUMBER(4) NOT NULL
);

CREATE TABLE usuarios (


idusuario NUMBER(4) NOT NULL,
nombreusuario VARCHAR2(25 CHAR) NOT NULL,
apellidousuario VARCHAR2(25 CHAR) NOT NULL,
direcciónusuario VARCHAR2(25 CHAR) NOT NULL,
fechanacimiento DATE NOT NULL,
estadousuario VARCHAR2(1 CHAR) NOT NULL,
roles_idrol NUMBER(2) NOT NULL,
emailusuarios_idemail NUMBER(2) NOT NULL,
genero_idgenero NUMBER(2) NOT NULL,
programas_idprograma NUMBER(4) NOT NULL,
zona_idzona NUMBER(4) NOT NULL,
cursos_idcurso NUMBER(4) NOT NULL,
centros_idcentro NUMBER(4) NOT NULL,
escuelas_idescuela NUMBER(4) NOT NULL,
telefusuarios_telfuserid NUMBER(2) NOT NULL,
ciudades_idciudad NUMBER(3) NOT NULL
);

Consultas con JOINS

Nombre Estudiante 1: Jonathan Andres Nieves

Código - [INNER] JOIN ... ON:


SELECT * FROM USUARIOS INNER JOIN CENTROS

ON USUARIOS.CENTROS_IDCENTRO = CENTROS.IDCENTRO

Resultado de la consulta:
Código - LEFT [OUTER] JOIN:
SELECT * FROM CENTROS LEFT JOIN CIUDADES

ON CENTROS.CIUDADES_IDCIUDAD = CIUDADES.IDCIUDAD

Resultado de la consulta:

Nombre Estudiante 2: William Gonzalez

Código – RIGHT OUTER JOIN:

SELECT Z.NOMBREZONA AS ZONA, Z.DIRECTORZONA AS DIRECTOR, C.NOMBRECENTRO


AS CENTRO FROM ZONA Z RIGHT OUTER JOIN CENTROS C ON
Z.IDZONA = C.ZONA_IDZONA

Código - FULL [OUTER] JOIN:

SELECT u.NOMBREUSUARIO, c.NOMBRECURSO FROM USUARIOS u FULL OUTER JOIN


CURSOS c ON u.IDCURSO = c.IDCURSO ORDER BY u.NOMBREUSUARIO,
c.NOMBRECURSO;
Resultado de la consulta:
Nombre Estudiante 3: Ronald González

Código – CROSS JOIN:

SELECT C.NOMBRECURSO AS CURSO, M.NOMMETODOLOGÍA AS METODOLOGIA_CURSO


FROM CURSOS C CROSS JOIN METODOLOGIA M ORDER BY C.NOMBRECURSO

Resultado de la consulta:

Código - NATURAL JOIN:

SELECT U.NOMBREUSUARIO AS NOMBRE, U.APELLIDOUSUARIO AS APELLIDO, R.NOMBREROL AS


ROL FROM USUARIOS U NATURAL JOIN ROLES R

Resultado de la consulta:

Código - INNER JOIN USING:

SELECT u.NOMBREUSUARIO, p.NOMBREPROGRAMA FROM USUARIOS u INNER JOIN PROGRAMA
S P USING (IDPROGRAMA) ORDER BY u.NOMBREUSUARIO;

Resultado de la consulta:
2. Consultas con funciones

Nombre Estudiante 1: Ronald Gonzales

Código - COUNT (expresión):


SELECT COUNT(*) FROM USUARIOS
WHERE ROLES_IDROL = 2002

Resultado de la consulta:

Código - SUM (expresión):


SELECT SUM(CREDITOS) FROM PROGRAMAS WHERE IDPROGRAMA IN(200,202,203)

Resultado de la consulta:

Nombre Estudiante 3: Jonathan Nieves

Código - AVG (expresión):


SELECT AVG(CREDITOS) FROM PROGRAMAS

Resultado de la consulta:

Código - MIN (expresión):


SELECT MIN(FECHANACIMIENTO) FROM USUARIOS
Resultado de la consulta:
Nombre Estudiante 5: William Gonzales

Código - MAX (expresión):

SELECT MAX(CREDITOS) FROM PROGRAMAS

Resultado de la consulta:

3. Evidencias de la participación en el foro


Se espera que cada estudiante presente las evidencias de su
participación en el foro con relación al Desarrollo de la Unidad 1 - Fase 2
- Diseño, al igual que comentarios significativos a los aportes de los
demás compañeros del grupo.

Nombre Estudiante 1: WILLIAM GONZALEZ

Imagen 1 Imagen 2
Nombre Estudiante 2: RONALD GONZALES
Nombre Estudiante 3: Elimine el texto y escriba el nombre
CONCLUSIONES

 La aplicación de las normas de modelamiento de una base de


datos es clave para obtener una base de datos sólida, evitando la
duplicidad o redundancia de los datos, problemas en la
actualización y fortalece la integridad de los mismos

 El lenguaje de consulta estructurado SQL es un lenguaje de base


de datos estándar, sencillo y poderoso que permite la creación de
tablas, registros de datos, consultas de datos.
BIBLIOGRAFÍA

Quintana, G., Marqués, M., & Aliaga, J. L. (2010). Aprende SQL. (pág.
9-22). Recuperado de
https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/53252?
page=15

También podría gustarte