Fase 2 -Diseño grupo 301125 A 952-convertido PDF

Title Fase 2 -Diseño grupo 301125 A 952-convertido
Author David Teran
Course Diseño de Proyectos
Institution Universidad Nacional Abierta y a Distancia
Pages 27
File Size 1.8 MB
File Type PDF
Total Downloads 155
Total Views 196

Summary

UNIDAD 1: LENGUAJE DE CONSULTA ESTRUCTURADOSQL FASE 2 - DISEÑOPARTICIPANTES:CC: 27090383 – ANA MILENA ARANDA CUASPACC: 1102355487- SERGIO ANDRES JAIMESGRUPO No. 301125A_Tutor: JHONATAN CAMILO DAVILAUniversidad Nacional Abierta y a Distancia – UNAD Escuela Ciencias básicas, tecnología e ingeniería Pr...


Description

UNIDAD 1: LENGUAJE DE CONSULTA ESTRUCTURADO SQL FASE 2 - DISEÑO

PARTICIPANTES: CC: 27090383 – ANA MILENA ARANDA CUASPA CC: 1102355487- SERGIO ANDRES JAIMES GRUPO No. 301125A_952

Tutor: JHONATAN CAMILO DAVILA

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 Colombi a 2021

TABLA DE CONTENIDO GRUPO No. 301125A_952 1.

INTRODUCCIÓN

2.

OBJETIVOS

1 3 4

1.

Objetivo General

4

2.

Objetivos Específicos

4

3.

RESULTADO

5

1.

Selección y respuesta de la pregunta motivadora

5

2.

Diseño modelo Entidad Relación y modelo Relacional

1

-

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

1

-

Técnicas de normalización

1

-

Modelo de Datos Relacional – Según Edgar Frank Codd

1

3.

Desarrollo de la base de datos relacional

1

4.

Consultas con JOINS

10

5.

Consultas con funciones

11

Evidencias de la participación en el foro

14

6. 4.

CONCLUSIONES

15

5.

BIBLIOGRAFÍA

16

1. INTRODUCCIÓN

El SQL (Structured query language), lenguaje de consulta estructurado, es un lenguaje surgido de un proyecto de investigación de IBM para el acceso a bases de datos relacionales. Actualmente se ha convertido en un estándar de lenguaje de bases de datos, y la mayoría de los sistemas de bases de datos lo soportan, desde sistemas para ordenadores personales, hasta grandes ordenadores. Por supuesto, a partir del estándar cada sistema ha desarrollado su propio SQL que puede variar de un sistema a otro, pero con cambios que no suponen ninguna complicación para alguien que conozca un SQL concreto. Como su nombre indica, el SQL nos permite realizar consultas a la base de datos. Pero el nombre se queda corto ya que SQL además realiza funciones de definición, control y gestión de la base de datos.

2. OBJETIVOS

1.

Objetivo General

● Crear consultas y funciones en base de datos relacionales a través del uso del Lenguaje SQL

2.

Objetivos Específicos

● Analizar los requerimientos del proyecto de la Universidad Nacional Abierta y a Distancia UNAD. ● Crear una base de datos relacional para un sistema integrado. ● Realizar la definición y descripción de las entidades a partir del proyecto propuesto. ● Insertar registros en la Base de Datos haciendo uso del lenguaje de modificación de datos. ● Realizar una consulta por cada uno de los siguientes Join. ● Codificar las sentencias para cada una de las siguientes funciones.

3. RESULTADO 1. Selección y respuesta de la pregunta motivadora Nombre Estudiante 1: Sergio Andrés Jaimes Pregunta 1: ¿Qué es una base de datos relacional? Respuesta: Como su nombre lo indica es una base de datos en la que las tablas o entidades con nombres únicos están relacionadas entre sí por medio de claves o identificadores únicos para cada fila de cada tabla y cuya integridad depende de que se cumplan dos reglas: “La Regla de Integridad de Entidades especifica que ninguna de las columnas que componen la clave primaria de una tabla puede contener valores nulos. La Regla de Integridad Referencial especifica que las claves ajenas o bien son completamente nulos o bien contienen valores tales que coinciden con algún valor de la clave primaria a la que referencian.” (Quintana, 2010, p. 15), garantizando con esto que las relaciones entre las tablas se mantengan y con ello evitar que se presenten inconsistencias con la información almacenada, como medida de seguridad se pueden establecer restricciones en las relaciones para evitar la eliminación de una fila si su clave primaria hace parte de una clave ajena en otra tabla, por ejemplo si tenemos una tabla “tipoDocumento” con el tipo de documento cédula y su clave primaria 1, si a su vez un usuario tiene una relación con dicha tabla para determinar el tipo de documento de los usuarios y algún usuario tiene tipo de documento cédula, no debería permitirse la eliminación de dicho tipo de documento en la tabla con la clave primaria. Comentario: Buenas tardes compañero, me parece interesante la socialización de del tema escogido, quiero retroalimentarlo con mi aporte; donde encuentro unos beneficios de las bases de datos relacionales donde las organizaciones de todo tipo y tamaño utilizan el modelo relacional simple pero poderoso para una amplia variedad de necesidades de información. Las bases de datos relacionales se utilizan para hacer seguimiento de los inventarios, procesar transacciones de comercio electrónico, administrar grandes cantidades de información de clientes de misión crítica y mucho más. Se puede considerar una base de datos relacional para cualquier necesidad de información en la que los puntos de datos se relacionen entre sí y se deban administrar de una manera segura, consistente y basada en reglas. Autor del comentario: Ana Milena Aranda Cuaspa

Nombre Estudiante 2: Ana Milena Aranda Cuaspa Pregunta 2: ¿Qué se conoce como lenguaje SQL? Respuesta: El lenguaje de consulta estructurado popularmente conocido por sus siglas en inglés como SQL, es un lenguaje de programación que ayuda a solucionar problemas o relacionados con la definición, la manipulación e integridad de la información representada por los datos que se almacenan en las bases de datos. Algunos aspectos de SQL están basados en el cálculo relacional, algunos en el álgebra relacional que provienen del modelo relacional y otros a ninguno de los dos sino que son parte de SQL. El lenguaje SQL se basa en varios elementos para la comodidad de los desarrolladores, todos los comandos del lenguaje necesarios en los correspondientes sistemas de gestión de bases se ejecutan a través de una interfaz específica de línea de comandos SQL (command-line interface o cli). Donde maneja: Cláusulas, Expresiones, Predicados, Querys, Comandos, Consultas SQL, From, Where, Order by. SQL posee comandos referentes a: Un lenguaje de definición de datos o ddl en inglés, que permite: ● La creación de la estructura o esquema de base de datos. ● La modificación de dicha estructura. ● Un lenguaje de manipulación de datos o dml en inglés, que hace posible: ● La inserción de datos en tablas. ● Las consultas sobre los datos de estas tablas. ● La actualización de los datos contenidos en estas tablas. ● La eliminación de los registros de estas tablas. ● Peticiones de información más complejas que incluyen joins y Subconsultas. Comentario: El lenguaje SQL es un lenguaje de gestión de base de datos que busca como todo lenguaje estructurar los parámetros para manipular bases de datos tratando de establecer un estándar en las sentencias que se utilizan; una de sus grandes ventajas es la difusión y en consecuencia el uso del mismo en pequeños y grandes sistemas de información y a la hora de implementarlo solo debemos buscar la variante que más se acople a nuestras necesidades, en lo personal considero que PostgreSQL es un motor de base de datos robusto que conserva los estándares del SQL. Autor del comentario: Sergio Andrés Jaimes

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

Normalización Dentro de la Normalización tenemos 3 Formas formales que se describen a continuación. PRIMERA FORMA NORMAL Como podemos darnos cuenta debemos reducir esta tabla e identificar los grupos de repetición que se presentan en el mismo registro. Núm. Materia 123

Programa

Programación Web

234

Sistemas

3176159751

Programación Visual

234

Sistemas

3147937996

Base de datos

123

Sistemas

Matricula

Nombre

Dirección

Teléfono

Curso

1

Sergio

3176159751

Base de datos

1

Sergio

3176159751

1

Sergio

2

Ana

Calle séptima Manizales Calle séptima Manizales Calle séptima Manizales Kra 24 Pasto

Sistemas

Separamos y realizamos 2 tablas, con el campo de matrícula relaciono las dos tablas para que no queden separadas, ni se pueda perder información. Matricula

Nombre

Dirección

Teléfono

Programa

1

Sergio

3176159751

Sistemas

2

Ana

Calle séptima Manizales Kra 24 Pasto

3147937996

Sistemas

Matricula

Curso

1

Base de datos Programación Web Programación Visual Base de datos

1 1 2

Núm. Materia 123 234 234 123

Identificamos las dependencias funcionales, identificamos las llaves primarias que en este caso serían matricula y numero de materia. Matricula funcionaria como una clave foránea y número de matrícula como una clave primaria.

SEGUNDA FORMA FORMAL

Para estar en Segunda Forma Normal: ● La tabla debe estar en primera forma normal ● Debe identificar las dependencias funcionales y transitivas.

Matricula

Nombre

Dirección

Teléfono

Programa

1

Sergio

3176159751

Sistemas

2

Ana

Calle séptima Manizales Kra 24 Pasto

3147937996

Sistemas

Matricula 1 1 1 2 Curso Base de datos Programación Web Programación Visual Base de datos

Núm. Materia 123 234 234 123

Núm. Materia 123 234 234 123

TERCER FORMA NORMAL

Tenemos una nueva tabla que es Programa que tiene una llave primaria que es número de materia, con esto estamos evitando redundancia y estamos reduciendo el espacio de almacenamiento y podemos comprobar que no tenemos perdida de información con una tabla intermedia que s la tabla matricula, así optimizamos la base de datos, porque ya no hay repetición y los datos siguen relacionados.

Matricula

Nombre

Dirección

Teléfono

1

Sergio

3176159751

2

Ana

Calle séptima Manizales Kra 24 Pasto

Núm. Materia 1234

3147937996

1234

Matricula 1 1 1 2

Curso Base de datos Programación Web Programación Visual Base de datos

Núm. de Materia 1234 6789

Núm. Materia 123 234 234 123

Núm. Materia 123 234 234 123

Programas Sistemas Mecatrónica

-

Modelo de Datos Relacional – Según Edgar Frank Codd

3. Desarrollo de la base de datos relacional Nombre Estudiante 1: Sergio Andrés Jaimes Script DDL CREATE TABLE departamento ( iddepartamento INTEGER NOT NULL, nombre VARCHAR2(30) ); ALTER TABLE departamento ADD CONSTRAINT departamento_pk PRIMARY KEY ( iddepartamento ); CREATE TABLE municipio ( idmunicipio INTEGER NOT NULL, nombre VARCHAR2(30), departamento_iddepartamento INTEGER NOT NULL ); ALTER TABLE municipio ADD CONSTRAINT municipio_pk PRIMARY KEY ( idmunicipio ); ALTER TABLE municipio ADD CONSTRAINT municipio_departamento_fk FOREIGN KEY ( departamento_iddepartamento ) REFERENCES departamento ( iddepartamento ); CREATE TABLE zona ( idzona INTEGER NOT NULL, nombre VARCHAR2(30) ); ALTER TABLE zona ADD CONSTRAINT zona_pk PRIMARY KEY ( idzona ); CREATE TABLE centroatencion ( idcentroatencion INTEGER NOT NULL, nombre VARCHAR2(30), direccion VARCHAR2(100), municipio_idmunicipio INTEGER NOT NULL, zona_idzona INTEGER NOT NULL

); ALTER TABLE centroatencion ADD CONSTRAINT centroatencion_pk PRIMARY KEY ( idcentroatencion ); ALTER TABLE centroatencion ADD CONSTRAINT centroatencion_municipio_fk FOREIGN KEY ( municipio_idmunicipio ) REFERENCES municipio ( idmunicipio ); ALTER TABLE centroatencion ADD CONSTRAINT centroatencion_zona_fk zona_idzona ) REFERENCES zona ( idzona );

FOREIGN

KEY

(

Script DML INSERT INTO departamento (iddepartamento,nombre) VALUES (1,'santander') INSERT INTO municipio (idmunicipio,nombre,departamento_iddepartamento) VALUES (1,'piedecuesta',1) INSERT INTO municipio (idmunicipio,nombre,departamento_iddepartamento) VALUES (2,'bucaramanga',1) INSERT INTO zona(idzona,nombre) VALUES (1,'zona centro oriente') INSERT INTO centroatencion(idcentroatencion,nombre,direccion,municipio_idmun icipio,zona_idzona) VALUES (1,'CEAD Bucaramanga','Cra. 27 #4043',2,1) Nombre Estudiante 2: Ana Milena Aranda Cuaspa Script DDL CREATE TABLE tipousuario ( idtipousuario INTEGER NOT NULL, nombre VARCHAR2(20) ); ALTER TABLE tipousuario ADD PRIMARY KEY ( idtipousuario ); CREATE TABLE tipodocumento ( idtipodocumento INTEGER NOT NULL, nombre VARCHAR2(30) );

CONSTRAINT

tipousuario_pk

ALTER TABLE tipodocumento ADD CONSTRAINT tipodocumento_pk PRIMARY KEY ( idtipodocumento ); CREATE TABLE estadocivil ( idestadocivil INTEGER NOT NULL, nombre VARCHAR2(30) ); ALTER TABLE estadocivil ADD CONSTRAINT estadocivil_pk PRIMARY KEY ( idestadocivil ); Script DML INSERT INTO tipousuario(idtipousuario,nombre)VALUES(1,'administrativo') INSERT INTO tipousuario(idtipousuario,nombre)VALUES(2,'docente') INSERT INTO tipousuario(idtipousuario,nombre)VALUES(3,'estudiante') INSERT INTO tipodocumento(idtipodocumento,nombre)VALUES(1,'cédula de ciudadanía') INSERT INTO tipodocumento(idtipodocumento,nombre)VALUES(2,'tarjeta de identidad') INSERT INTO estadocivil(idestadocivil,nombre)VALUES(1,'casado(a)') Nombre Estudiante 3: Sergio Andrés Jaimes Script DDL CREATE TABLE usuario ( idusuario INTEGER NOT NULL, primernombre VARCHAR2(30), VARCHAR2(30), segundonombre primerapellido VARCHAR2(30), segundoapellido VARCHAR2(30), documento VARCHAR2(20), correo VARCHAR2(100), VARCHAR2(255), contrasenia direccion VARCHAR2(100), tipousuario_idtipousuario INTEGER NOT NULL, tipodocumento_idtipodocumento INTEGER NOT NULL, municipio_idmunicipio INTEGER NOT NULL,

ca_idcentroatencion estadocivil_idestadocivil

INTEGER NOT NULL, INTEGER NOT NULL

); ALTER TABLE usuario ADD CONSTRAINT usuario_pk PRIMARY KEY ( idusuario ); ALTER TABLE usuario ADD CONSTRAINT usuario_centroatencion_fk FOREIGN KEY ( ca_idcentroatencion ) REFERENCES centroatencion ( idcentroatencion ); ALTER TABLE usuario ADD CONSTRAINT usuario_estadocivil_fk estadocivil_idestadocivil ) REFERENCES estadocivil ( idestadocivil ); ALTER TABLE usuario ADD CONSTRAINT usuario_municipio_fk municipio_idmunicipio ) REFERENCES municipio ( idmunicipio );

FOREIGN

KEY

(

FOREIGN

KEY

(

ALTER TABLE usuario ADD CONSTRAINT usuario_tipodocumento_fk FOREIGN KEY ( tipodocumento_idtipodocumento ) REFERENCES tipodocumento ( idtipodocumento ); ALTER TABLE usuario ADD CONSTRAINT usuario_tipousuario_fk tipousuario_idtipousuario ) REFERENCES tipousuario ( idtipousuario ); Script DML INSERT INTO usuario (idusuario, primernombre, segundonombre, primerapellido, segundoapellido, documento, correo, contrasenia, direccion, tipousuario_idtipousuario, tipodocumento_idtipodocumento, municipio_idmunicipio,

FOREIGN

KEY

(

ca_idcentroatencion, estadocivil_idestadocivil) VALUES (1,'sergio','andrés','jaimes','murillo','1102355487','seanjamu@gmail .com','12345','tu hogar es donde tu estas',3,1,1,1,1) INSERT INTO usuario (idusuario, primernombre, segundonombre, primerapellido, segundoapellido, documento, correo, contrasenia, direccion, tipousuario_idtipousuario, tipodocumento_idtipodocumento, municipio_idmunicipio, ca_idcentroatencion, estadocivil_idestadocivil) VALUES (2,'pedro','andrés','perez','pinto','1102355488','[email protected] om','12345','manzana g casa 10',2,1,1,1,1) Nombre Estudiante 4: Ana Milena Aranda Cuaspa Script DDL CREATE TABLE usuariodocente ( perfil VARCHAR2(1000), usuario_idusuario INTEGER NOT NULL ); ALTER TABLE usuariodocente ADD CONSTRAINT usuariodocente_pk PRIMARY KEY ( usuario_idusuario ); ALTER TABLE usuariodocente ADD CONSTRAINT usuariodocente_usuario_fk FOREIGN KEY ( usuario_idusuario ) REFERENCES usuario ( idusuario );

CREATE TABLE escuela ( idescuela INTEGER NOT NULL, nombre VARCHAR2(100) ); ALTER TABLE escuela ADD CONSTRAINT escuela_pk PRIMARY KEY ( idescuela );

CREATE TABLE programa ( idprograma INTEGER NOT NULL, nombre VARCHAR2(100), escuela_idescuela INTEGER NOT NULL ); ALTER TABLE programa ADD CONSTRAINT programa_pk PRIMARY KEY ( idprograma ); ALTER TABLE programa ADD CONSTRAINT programa_escuela_fk escuela_idescuela ) REFERENCES escuela ( idescuela );

FOREIGN

KEY

(

CREATE TABLE estudianteprograma ( usuario_idusuario INTEGER NOT NULL, programa_idprograma INTEGER NOT NULL );

ALTER TABLE estudianteprograma ADD CONSTRAINT estudianteprograma_pk PRIMARY KEY ( usuario_idusuario, programa_idprograma ); ALTER TABLE estudianteprograma ADD CONSTRAINT estudianteprograma_programa_fk FOREIGN KEY ( programa_idprograma ) REFERENCES programa ( idprograma ); ALTER TABLE estudianteprograma ADD CONSTRAINT estudianteprograma_usuario_fk FOREIGN KEY ( usuario_idusuario ) REFERENCES usuario ( idusuario ); CREATE TABLE periodo ( idperiodo INTEGER NOT NULL, nombre VARCHAR2(20), fechainicio DATE, fechacierre DATE );

ALTER TABLE periodo ADD CONSTRAINT periodo_pk PRIMARY KEY ( idperiodo ); CREATE TABLE curso ( idcurso INTEGER NOT NULL, nombre VARCHAR2(20) ); ALTER TABLE curso ADD CONSTRAINT curso_pk PRIMARY KEY ( idcurso ); Script DML INSERT INTO usuariodocente(usuario_idusuario,perfil)VALUES(2,'profesor excelente de base de datos') INSERT INTO escuela(idescuela,nombre) VALUES(1,'Escuela de Ciencias Básicas, Tecnología e Ingeniería (ECBTI)') INSERT INTO programa(idprograma,nombre,escuela_idescuela) VALUES (1,'Ingeniería de Sistemas',1) INSERT INTO estudianteprograma(usuario_idusuario,programa_idprograma) VALUES (1,1) INSERT INTO periodo(idperiodo,nombre,fechainicio,fechacierre) VALUES (1,'2021 I PERIODO 16-02','12-04-2021','13-08-2021') INSERT INTO curso(idcurso,nombre) VALUES (1,'BASE DE DATOS AVANZADA - (301125A_952)') INSERT INTO curso(idcurso,nombre) VALUES (2,'Lenguaje de Modelado Unificado') INSERT INTO cursosmatriculados(periodo_idperiodo,usuario_idusuario,curso_idcu rso) VALUES(1,1,1) INSERT INTO cursosmatriculados(periodo_idperiodo,usuario_idusuario,curso_idcu rso) VALUES(1,1,2) Nombre Estudiante 5: Sergio Andrés Jaimes Script DDL CREATE TABLE cursosmatriculados ( periodo_idperiodo INTEGER NOT NULL, usuario_idusuario INTEGER NOT NULL, curso_idcurso INTEGER NOT NULL ); ALTER TABLE cursosmatriculados ADD CONSTRAINT cursosmatriculados_pk PRIMARY KEY (

periodo_idperiodo, usuario_idusuario, curso_idcurso ); ALTER TABLE cursosmatriculados ADD CONSTRAINT cursosmatriculados_curso_fk FOREIGN KEY ( curso_idcurso ) REFERENCES curso ( idcurso ); ALTER TABLE cursosmatriculados ADD CONSTRAINT cursosmatriculados_periodo_fk FOREIGN KEY ( periodo_idperiodo ) REFERENCES periodo ( idperiodo ); ALTER TABLE cursosmatriculados ADD CONSTRAINT cursosmatriculados_usuario_fk FOREIGN KEY ( usuario_idusuario ) REFERENCES usuario ( idusuario ); CREATE TABLE sesion ( idsesion INTEGER NOT NULL, nombre VARCHAR2(100), fecha DATE, puntos INTEGER, evaluacion VARCHAR2(1000), curso_idcurso INTEGER NOT NULL, periodo_idperiodo INTEGER NOT NULL, ud_usuario_idusuario INTEGER NOT NULL ); A...


Similar Free PDFs