Está en la página 1de 26

UNIDAD 1: LENGUAJE DE CONSULTA ESTRUCTURADO SQL

FASE 2 - DISEÑO

Participantes:

XXXXX– Carlos Andrés Pérez


CC: 7179442 – Juan Daniel Reyes Suarez
CC: 80720028 - Mike Dennys Vega
CC: 1122401102 - Luis Alcides Santana Calderón
CC: 1065807575 - José Alberto Gutiérrez Cataño

GRUPO No. 301125_30

Tutor:
Mariano Esteban Romero

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-01
Colombia
2021
TABLA DE CONTENIDO
INTRODUCCIÓN.............................................................................................................3
OBJETIVOS......................................................................................................................4
Objetivo General............................................................................................................4
Objetivos Específicos....................................................................................................4
RESULTADO...................................................................................................................5
1. Selección y respuesta de la pregunta motivadora...............................................5
2. Diseño modelo Entidad Relación y modelo Relacional.....................................5
- Técnicas de normalización..................................................................................5
- Modelo Entidad Relación...................................................................................6
- Modelo Relacional..............................................................................................6
3. Desarrollo de la base de datos relacional............................................................7
4. Consultas con JOINS..........................................................................................8
5. Consultas con funciones.....................................................................................8
6. Evidencias de la participación en el foro............................................................9
CONCLUSIONES...........................................................................................................12
BIBLIOGRAFÍA.............................................................................................................13
INTRODUCCIÓN

Después de comprender en lo que consiste el diseño o modelado de una base de datos,

es importante reconocer el lenguaje con el que nos comunicaremos con la base de datos

para prestarnos los servicios que una base de datos dispone para nosotros, por ejemplo:

la creación de la base de datos, la creación de las tablas, la creación de las relaciones, de

los procedimientos, de los disparadores, agregar actualizar o eliminar los datos. Etc.

Todos estos elementos antes mencionados se conocen como objetos para la base de

datos, ya que este son los que permiten que la base de datos funcione. En este

documento vamos a especificar y reconocer esos elementos y como los podemos crear y

administrarlos en la base de datos, pasando por los distintos sub-lenguajes DML, DCL,

DDL.
OBJETIVOS

Objetivo General

Reconocer los distintos elementos u objetos que componen una base de datos,

Identificando las distintas cláusulas del lenguaje que permiten administrar estos objetos,

además de gestionar los permisos de acceso a la base de datos.

Objetivos Específicos

 Desarrollar los conceptos Entidades y Relación

 Elaborar un modelo lógico Entidad-Relación

 Encontrar soluciones por medio del análisis exhaustivo de algunos problemas de

relación.

 Aplicar los conceptos básicos para realizar el modelo Relacional.

 Aplicar reglas de normalización y realizar tablas


RESULTADO

1. Selección y respuesta de la pregunta motivadora

Recuerde: que la respuesta debe ser un párrafo de su propia autoría


que contenga mínimo 200 palabras y máximo 300 palabras;
además, debe hacer un comentario a la respuesta de un
compañero.
Nombre Estudiante 1: Carlos Andrés Pérez
Pregunta 1: ¿Qué es una base de datos relacional?
Respuesta:
Una base de datos relacional es aquella en la cual toda la información se almacena en
tablas, estas tablas están compuestas por filas y columnas; una base de datos BIG
DATA puede contener cientos de tablas con columnas y millones de filas. En la
actualidad encontramos que existe un tipo de software exclusivamente dedicado a
tratar con bases de datos relacionales, conocido como Sistema de Gestión de Bases de
Datos Relacionales (SGBDR), estos son:
 Microsoft SQL Server.
 Oracle.
 DB2.
 PostgreSQL.
 MariaDB
 MySQL.

Entre otros; así mismo hay software especializado en el manejo de bases de datos
relacionales como Acces, Visual FoxPro, MySQL Database, SQL Server y Oracle.
SQL (Structured Query Languaje) es un lenguaje de programación diseñado
específicamente para el acceso a sistemas de gestión de bases de datos relacionales
(SGBDR); Como la mayor parte de los sistemas actuales son de este tipo y como el
lenguaje SQL es el mas ampliamente usado en estos, se puede ratificar sin ninguna
duda que este lenguaje es empleado mayoritariamente en los sistemas existentes hoy
en día y no tiene rival alguno.

Comentario:
En mi concepto, la explicación que nos entregas sobre las bases de datos relacionales,
exponen conceptos propios de este tipo de bases de datos.
Adicionando a tu comentario, las bases de datos relacionales actualmente tienen una
gran acogida por su:
Sencillez
Escasa redundancia de datos
Alta consistencia de datos
Agilidad de procesamiento de datos
Lenguaje de consultas homogéneo como el estándar SQL.
Lo que las diferencia mucho, en relación a otros modelos de bases de datos que
existen, pero con una baja utilización en sistemas de Información modernos.
Mike Dennys Vega

Nombre Estudiante 2: Juan Daniel Reyes Suarez


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

En mi concepto se conoce que la sigla SQL corresponde a la expresión


inglesa Structured Query Language que es entendida como Lenguaje de Consulta
Estructurado el cual identifica a un tipo de lenguaje vinculado con la gestión de bases
de datos de carácter relacional que permite la especificación de distintas clases de
operaciones entre éstas.

Este lenguaje también maneja algebra y calculo relacional y que permite hacer
consultas con el fin de recuperar información de base de datos y también hacer
cambios.

En este lenguaje SQL está compuesto por comandos, cláusulas, operadores y


funciones de agregado. Estos elementos se combinan en las instrucciones para crear,
actualizar y manipular las bases de datos.
Comentario: …….
Autor del comentario:
Nombre Estudiante 3: Mike Dennys Vega
Pregunta 3: ¿Cuál es la importancia del proceso de normalización en bases de datos?

Respuesta:
Es muy importante desde un principio y antes de la construcción de una base de
datos, ejecutar procesos detallados y específicos en la normalización de la base de
datos, ya que estos procesos, conllevarán a minimizar redundancia de datos lo que a
la larga tendrán un comportamiento favorable en relación a rendimiento en consultas,
procesos internos, y crecimiento de la información dentro de la base de datos.
Además, cuando el proceso de normalización se realizado de manera detallada, un
factor importante es la actualización interna de los datos proceso que será ágil y
acertado, evitando probables datos incoherentes en la base, e integridad de los
mismos.
El proceso de normalización sobre el papel, va generando una visión acertada de cuál
sería la mejor arquitectura de creación de una base de datos según la necesidad
prevista. Aunque surge la pregunta de por qué en muchas ocasiones en nuestro mundo
real, existen actualizaciones que se deben aplicar a base de datos en productos ya
funcionales, su respuesta se basa en mejoramientos de producto, corrección de
problemas (los cuales no se evidenciaron en la normalización inicial) y cambios
funcionales de plataformas, que la misma necesidad de un mundo cambiante lo
amerita. Lo menciono ya que no es lo mismo las bases de datos que fueron
construidas hace algunos años, a las bases de datos construidas en la actualidad y los
aprendizajes que se obtienen con el paso del tiempo.
Comentario:
Luego de leer su aporte en cuanto a la importancia de la normalización en las bases de
datos, veo que es muy importante la información utilizada para la explicación de este
inciso, ya que la normalización es un proceso muy importante que se debe tener en
cuanta al momento de planificar una base de datos ya que por medio de esta logramos
evitar la creación de datos duplicados en nuestras bases de datos lo cual genera
inconsistencias, de igual manera estaríamos optimizando el espacio de
almacenamiento, reduciríamos los tiempos de desarrollo de nuestra base de datos,
además que le facilitaría el acceso e interpretación de los datos almacenados en esta a
la persona encarga de su administración.
José Alberto Gutiérrez Cataño

Nombre Estudiante 4: Luis Alcides Santana Calderón


Pregunta 4: ¿Cuál es la diferencia entre el lenguaje de definición de datos y el
lenguaje de manipulación de datos?
Respuesta:
Una de las principales diferencias entre estos dos es que el lenguaje de definición de
datos (DDL), es la que se encarga de definir las estructuras que almacenaran los
datos de dichas bases de datos incluyendo tres sentencias básicas como lo son:
 CREATE: se usa para crear una base de datos, tabla, vistas, etc.
 ALTER: se utiliza para modificar la estructura, por ejemplo, añadir o borrar
columnas de una tabla.
 DROP: Con esta sentencia, podemos eliminar los objetos de la estructura, por
ejemplo, un índice o una secuencia.

Por el contrario, el lenguaje de manipulación (DML), es el que permite llevar a


cabo las tareas de consulta o modificación de los datos contenidos que hay en las
bases de datos. Entre los elementos que se utilizan para manipular los datos son:
 SELECT: esta sentencia se utiliza para realizar consultas sobre los datos.
 INSERT: con esta instrucción podemos insertar los valores en una base de datos.
 UPDATE: sirve para modificar los valores de uno o varios registros.
 DELETE: se utiliza para eliminar las finas de una tabla

Comentario: …….
Autor del comentario:
Nombre Estudiante 5: José Alberto Gutiérrez Cataño
Pregunta 5: ¿Qué son las formas normales y cuál es su finalidad?
Respuesta:
Las formas normales NF en base de datos relacionales son la herramienta que nos
permite conocer y determinar el grado de vulnerabilidad inconsistencias y anomalías
lógicas de una tabla, permitiendo de esa manera mejorar la estructura utilizada en las
bases de datos.
El uso de las normas formales nos permite proteger los datos de nuestras bases de
datos de esta manera se vuelve más flexible al momento de eliminar información
redundante y la dependencia incoherente de los datos guardados.
Las formas normales se clasifican de la siguiente manera:
Primera forma normal 1FN: En esta forma encontramos que todos los atributos son
atómicos, la tabla contiene una clave primaria única, la clave primaria no contiene
atributos nulos, no debe existir variación en el número de columnas, los campos no
clave deben identificarse por la clave, debe existir una independencia en el orden
tanto como de las como en las columnas.
Segunda forma normal 2FN: Una tabla está en 2FN además de estar en 1FN si y
solo si, cuando una clave primaria y cualquier atributo no sea constituyente de la
clave primaria, el atributo no clave depende de toda la clave primaria.
Tercera forma normal 3FN: Una tabla está en 3FN si además de estar en 2FN no
existe ninguna dependencia transitiva entre los atributos que no son clave.
Forma normal de Boyce-Codd BCNF: Esta forma requiere que no existan
dependencias funcionales no triviales de los atributos que no sean un conjunto de la
clave candidata.
Cuarta forma normal 4FN: Se asegura de que las dependencias multivaluadas
independientes estén correctas y eficientemente representadas en un diseño de base de
datos.
Quinta forma normal 5FN: Una tabla se dice que está en 5NF si y sólo si está en
4NF y cada dependencia de unión (join) en ella es implicada por las claves
candidatas.
Forma normal DKNF: Es una restricción del dominio que especifica los valores
permitidos para un atributo dado, mientras que una restricción clave especifica los
atributos que identifican únicamente una fila en una tabla dada.
Desnormalización: Es el proceso que tiene como principal objetivo optimizar el
funcionamiento de las bases de datos mediante la agregación de datos redundantes.
La finalidad de las formas normales es intentar definir de una manera formal los
lineamientos del buen diseño de una base de datos, si una relación no cumple con las
restricciones, esta relación se descompone para cumplir con la forma normal que se
desea alcanzar.
Comentario:
Con respecto a su respuesta sobre las formas normales, además de toda esa excelente
explicación que hizo al respecto, podríamos decir que estas también son un conjunto
de criterios que podemos utilizar para perfeccionar y organizar la estructura de una
base de datos previamente definida. Esto incluye creación de tablas, relaciones entre
esas tablas de acuerdo a las reglas que están diseñadas.
Luis Alcides Santana Calderón

2. Diseño modelo Entidad Relación y modelo Relacional


- Modelo de Datos Entidad Relación – Según Peter Chen
-
- Técnicas de Normalización

- Modelo de Datos Relacional – Según Edgar Frank Codd

3. Desarrollo de la base de datos relacional


Cada estudiante debe desarrollar mínimo 2 tablas de la base de datos.
Nombre Estudiante 1 Carlos Andrés Pérez
Script DDL

Script DML

Nombre Estudiante 2: Juan Daniel Reyes Suarez


Script DDL
CREATE TABLE PROGRAMA (
ID_Programa NUMERIC (5) NOT NULL,
Nombre_programa VARCHAR (30) NOT NULL,
Curso_programa VARCHAR (30) NOT NULL,
Centro_programa VARCHAR (20) NOT NULL,
Periodo_programa NUMERIC (5),
Zona_ProgramaVARCHAR (10) NOT NULL,
);

Script DML
CREATE TABLE PROGRAMA (
ID_Programa NUMERIC (10) NOT NULL,
Nombre VARCHAR2 (50) NOT NULL,
Descripcion VARCHAR2 (100) NOT NULL,

CONSTRAINT PROGRAMA_pk PRIMARY KEY (ID_Programa)


);

Nombre Estudiante 3: Mike Dennys Vega


Script DDL
CREATE TABLE "CENTRO"
( "ID_CENTRO" NUMBER(10,0) NOT NULL ENABLE,
"NOMBRE" VARCHAR2(50) NOT NULL ENABLE,
"DESCRIPCION" VARCHAR2(100) NOT NULL ENABLE,
"DEPARTAMENTO" VARCHAR2(50) NOT NULL ENABLE,
"MUNICIPIO" VARCHAR2(50) NOT NULL ENABLE,
"ID_ZONA" NUMBER(10,0) NOT NULL ENABLE,
CONSTRAINT "CENTRO_PK" PRIMARY KEY ("ID_CENTRO")
USING INDEX ENABLE
)
/
ALTER TABLE "CENTRO" ADD CONSTRAINT "FK_CENTRO_ID_ZONA" FOREIGN KEY
("ID_ZONA")
REFERENCES "ZONA" ("ID_ZONA") ENABLE
/
CREATE TABLE "ZONA"
( "ID_ZONA" NUMBER(10,0) NOT NULL ENABLE,
"NOMBRE" VARCHAR2(50) NOT NULL ENABLE,
"DESCRIPCION" VARCHAR2(100) NOT NULL ENABLE,
CONSTRAINT "ZONA_PK" PRIMARY KEY ("ID_ZONA")
USING INDEX ENABLE
)
/

Script DML

select * from zona

select * from centro

Nombre Estudiante 4: Luis Alcides Santana Calderón


Script DDL

CREATE TABLE ROLES (


ID_Rol NUMERIC (10) NOT NULL,
Nombre VARCHAR2 (50) NOT NULL,
Descripcion VARCHAR2 (100) NOT NULL,

CONSTRAINT ROLES_pk PRIMARY KEY (ID_Rol)


);

CREATE TABLE PERIODO_ACADEMICO (


ID_Periodo NUMERIC (10) NOT NULL,
Nombre VARCHAR2 (50) NOT NULL,
Descripcion VARCHAR2 (100) NOT NULL,
Fecha_Inicio VARCHAR2 (50) NOT NULL ,
Fecha_Cierre VARCHAR2 (50) NOT NULL ,

CONSTRAINT PERIODO_ACADEMICO_pk PRIMARY KEY (ID_Periodo)


);

Script DML

Select * From Roles;

Insert Into Roles Values ('1','tutor','encargado de brindar asesorias');


Insert Into Roles Values ('2','administrativo','encargado de registro y control');
Insert Into Roles Values ('3','estudiante','estudiante unad');

Nombre Estudiante 5: Jose Alberto Gutiérrez Cataño


Script DDL

Create Table Estudiante (


Id_Estudiante Numeric (10) Not Null,
Nombre Varchar2 (50) Not Null,
Apellido Varchar2 (100) Not Null,
Direccion Varchar2 (50) Not Null,
Telefono Varchar2 (50),
Correo Varchar2 (50) Not Null,
Id_Rol Numeric (10) Not Null,
Id_Zona Numeric (10) Not Null,
Id_Periodo Numeric (10) Not Null,
Id_Centro Numeric (10) Not Null,
Id_Escuela Numeric (10) Not Null,
Id_Programa Numeric (10) Not Null,

Constraint Estudiante_Pk Primary Key (Id_Estudiante),


Constraint Fk_Estudiante_Id_Rol Foreign Key (Id_Rol) References
Roles(Id_Rol),
Constraint Fk_Estudiante_Id_Zona Foreign Key (Id_Zona) References
Zona(Id_Zona),
Constraint Fk_Estudiante_Id_Periodo Foreign Key (Id_Periodo) References
Periodo_Academico(Id_Periodo),
Constraint Fk_Estudiante_Id_Centro Foreign Key (Id_Centro) References
Centro(Id_Centro),
Constraint Fk_Estudiante_Id_Escuela Foreign Key (Id_Escuela) References
Escuela(Id_Escuela),
Constraint Fk_Estudiante_Id_Programa Foreign Key (Id_Programa) References
Programa(Id_Programa)

);

Create Table Sesion (


Id_Sesion Numeric (10) Not Null,
Nombre Varchar2 (50) Not Null,
Descripcion Varchar2 (100) Not Null,
Id_Tutor Numeric (10) Not Null,
Id_Estudiante Numeric (10) Not Null,

Constraint Sesion_Pk Primary Key (Id_Sesion),


Constraint Fk_Sesion_Id_Tutor Foreign Key (Id_Tutor) References
Tutor(Id_Tutor),
Constraint Fk_Sesion_Id_Estudiante Foreign Key (Id_Estudiante) References
Estudiante(Id_Estudiante)

);

Script DML

Select * From Estudiante;

Insert Into Estudiante Values ('1111111111','Alberto','Prado Caballero','Dg 1# 15-


05','3009875418','Alberto@Gmail.Com','3','1','1','1','2','2');
4. Consultas con JOINS

Nombre Estudiante 1: Carlos Andrés Pérez


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

Resultado de la consulta:

Nombre Estudiante 2: Juan Daniel Reyes Suarez


Código - LEFT [OUTER] JOIN:

SELECT * FROM PROGRAMA;
SELECT ON
C.Programa as 'Curso',
Z.Programa as 'zona',
FROM Curso C
LEFT JOIN zona Z
ON C.zonaID= Z.id
Resultado de la consulta:

Nombre Estudiante 3: Mike Dennys Vega


Código- RIGHT [OUTER] JOIN:

Select zo.id_zona, zo.nombre 
from zona zo
right join centro ce
on  ce.id_zona = zo.id_zona

Resultado de la consulta:

Nombre Estudiante 4: Luis Alcides Santana Calderon


Código - FULL [OUTER] JOIN:

SELECT * FROM ROLES R
FULL JOIN ESTUDIANTE E
ON R.ID_ROL = E.ID_ROL;

Resultado de la consulta:
Nombre Estudiante 5: Jose Alberto Gutiérrez Cataño
Código - CROSS JOIN:

SELECT RO.*, EST.*
FROM ROLES RO CROSS JOIN ESTUDIANTE EST;

Resultado de la consulta:

5. Consultas con funciones

Nombre Estudiante 1: Carlos Andrés Pérez


Código - COUNT (expresión):

Resultado de la consulta:

Nombre Estudiante 2: Juan Daniel Reyes Suarez


Código - SUM (expresión):
SELECT SUM(PROGRAMA)
FROM tables
[WHERE conditions];

Resultado de la consulta:

SELECT PROGRAMA,
SUM(PROGRAMA)
FROM tables
[WHERE conditions]
GROUP BY PROGRAMA.

Nombre Estudiante 3: Mike Dennys Vega


Código - AVG (expresión):

select avg(id_zona) as CONSULTA_FUNCION from zona

Resultado de la consulta:

Nombre Estudiante 4: Luis Alcides Santana Calderon


Código - MIN (expresión):

Resultado de la consulta:
Nombre Estudiante 5: Jose Gutiérrez Cataño
Código - MAX (expresión):

SELECT MAX(ID_TUTOR) FROM TUTOR

Resultado de la consulta:
6. 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: Carlos Andrés Pérez


Imagen 1 Imagen 2

Nombre Estudiante 2: Juan Daniel Reyes Suarez


Nombre Estudiante 3: Mike Dennys Vega
Imagen 1 Imagen 2

Nombre Estudiante 4: Luis Alcides Santana Calderon

Nombre Estudiante 5: José Alberto Gutiérrez


Imagen 1 Imagen 2
CONCLUSIONES

Estudiante 2: Juan Daniel Reyes Suarez


Después de realizado Este trabajo, podemos concluir que al diseñar la matriz de
modelos Entidad Relación tenemos en cuenta la cantidad de sustantivos que son las
Entidades y los verbos que son las relaciones. Se establece la cardinalidad para llenar la
matriz, en la cual verificamos la relación que existe entre las entidades.

Estudiante 4: Luis Alcides Santana Calderón

Al realizar una base de datos esta nos va a permitir agrupar y almacenar toda la
información que nosotros necesitemos de manera ordena y sistematizada que en
nuestros tiempos se nos hace más útil en la búsqueda de dicha información.

Estudiante 5: José Gutiérrez Cataño


Por medio del presente trabajo se logró comprender a profundidad los pasos necesarios
para obtener el desarrollo de una base de datos, haciendo uso del proceso de
normalización, desarrollo de modelos de entidad relación y modelo de datos relaciones,
los cuales nos permitieron diseñar la base de datos en la cual se realizaron consultas por
medio de los JOINS y las funciones del lenguaje SQL, el cual es un motor de base muy
robusto para el desarrollo de aplicaciones.
BIBLIOGRAFÍA

 Camuña, R. J. F. (2014). Lenguajes de definición y modificación de datos sql

(uf1472). (pág. 39-54, 70-89). Recuperado de https://elibro-

net.bibliotecavirtual.unad.edu.co/es/ereader/unad/44141?page=45

 Martínez López, F. J. y Gallegos Ruiz, A. (2017). Programación de bases de datos

relacionales. RA-MA Editorial. (pág. 172 - 190). Recuperado de https://elibro-

net.bibliotecavirtual.unad.edu.co/es/ereader/unad/106525?page=172

 Modelado de datos con Oracle SQL Developer. Recuperado de:

https://www.oracle.com/co/database/technologies/appdev/datamodeler.html

Oracle Application Express. Recuperado de: https://apex.oracle.com/pls/apex/f?

p=4550:1:10582684099986:

 Oracle Base. (s.f.). SQL para principiantes - Joins. Recuperado de:

https://oraclebase.com/articles/misc/sql-for-beginners-joins#inner-join-on

 Oracle Base. (s.f.). SQL para principiantes – La cláusula WHERE. Recuperado de:

https://oracle-base.com/articles/misc/sql-for-beginners-the-where-clause

 Oracle Base. (s.f.). SQL para principiantes – Las cláusulas GROUP BY y HAVING.

Recuperado de: https://oracle-base.com/articles/misc/sql-for-beginnersthe-group-by-

clause-and-having-clause

 Piñeiro, G. J. M. (2011). Manual gestión de bases de datos: Formación para el

empleo. (pág. 139-152, 160-173). Recuperado de https://elibro-

net.bibliotecavirtual.unad.edu.co/es/ereader/unad/50609?page=139

 Romero, M. (2020) OVA Funciones de Grupo SQL. Recuperado de

https://campus111.unad.edu.co/ecbti89/mod/hvp/view.php?id=64

También podría gustarte