Está en la página 1de 23

ACTIVIDAD DE APRENDIZAJE 3

Presentado por:

Jessica Paola Peña Peña


Santiago Prieto Moreno
Camilo Andrés Gaitán Escobar
Javier Enrique León Parra

FUNDACIÓN UCOMPENSAR

FACULTAD DE INGENIERIA
SISTEMAS GESTORES DE BASES DE DATOS
2021
Tabla de contenido

CONTEXTUALIZACION.....................................................................................................................3
1. Diferencia entre independencia física y lógica de los datos....................................................3
2. Diferencias entre LDD y LMD de un sistema gestor de bases de datos...................................3
3. Cuadro comparativo entre las sentencias utilizadas en LDD y LMD – y sus funciones............4
4. Que es un diccionario de datos..............................................................................................5
5. Cuadro comparativo con las características de cada una de las generaciones
de...................6 los lenguajes de
programación.......................................................................................................6
6. Mapa mental de la integridad de datos en una base de
datos...............................................8
7. Procedimiento almacenado y
ventajas...................................................................................8
8. Que es un trigger y dar un
ejemplo........................................................................................9
9. Explique que es un Join y de un ejemplo de cada
uno.........................................................10
10. Algebra relacional en las bases de datos y las operaciones..............................................10
SEGUNDA PARTE CASO
PRACTICO............................................................................................13 Construir las
consultas que corresponden a los siguientes requerimientos:................................15
1. Un listado de todos los pacientes que tienen algún diagnostico por parte de un médico
remitente.....................................................................................................................................15
2. El reporte de las sesiones que ha recibido un paciente determinado (una vez conocido su
número de cedula) durante el presente mes...............................................................................15
3. La cantidad total de sesiones realizadas por cada uno de los diagnósticos que se refieren en
las remisiones entregadas a los
médicos......................................................................................16
4. Una consulta que permita calcular el valor a pagar por todas las sesiones trabajadas
teniendo en cuenta que las terapias físicas se pagan a $23.000 y las terapias respiratorios tienen
un costo de $25.000.....................................................................................................................16
5. Un listado de todos los fisoterapeutas inscritos en la IPS y el valor pagado a cada uno de
ellos durante el mes pasado.........................................................................................................17
Construir los procedimientos almacenados para las siguientes necesidades:..............................18
1. Un procedimiento almacenado que permita Incrementar el valor de las sesiones en el 10 %
sobre el costo inicialmente determinado.....................................................................................18
Realizar una matriz por tabla que permita construir un diccionario de datos identificando y
diferenciando los tipos de datos para tres sistemas gestores diferentes. A continuación, se
sugiere un modelo:.......................................................................................................................21
Bibliografía...................................................................................................................................25
CONTEXTUALIZACION

1. Diferencia entre independencia física y lógica de los datos

Independencia física: Es la que permite realizar las estructuras de almacenamiento de

datos en una forma independiente de la actual estructura lógica, algunas de las ventajas

es que los cambios efectuados en la estructura lógica no implican cambios en la del

almacenamiento, los datos almacenados quedan a cargo del SGBD y los cambios de la

estructura del su almacenamiento no afectan cambios en los programas de aplicación.

 Las modificaciones en el nivel físico son esporádicamente necesarias para mejorar

el funcionamiento

Independencia lógica: Los datos deben permitir cierta independencia sobre los datos vistos

por las aplicaciones y la estructura lógica de sí mismos, cuentan con la capacidad para

modificar una definición de esquema en un nivel sin que afecte a una definición de

esquema en el siguiente nivel más alto.

 Las modificaciones en el nivel lógico son necesarias siempre que la estructura lógica

de la base de datos se altere.

2. Diferencias entre LDD y LMD de un sistema gestor de bases de datos.

Leguaje De Definición De Datos (LDD)

 Es el que se encarga de la modificación de la estructura de los objetos de la base de

datos

 El SGBD posee un compilador de LDD cuya función consiste en procesar las

sentencias del lenguaje para identificar las descripciones de los distintos


elementos de los esquemas y almacenar la descripción del esquema en el

catálogo o diccionario de datos.

 Lenguaje de definición de vistas (LDV), que se utilizaría para especificar las vitas

de los usuarios y su correspondencia con el esquema conceptual.

Lenguaje De Manipulación De Datos (LMD)

 Una vez creados los esquemas se necesita de un lenguaje que permita modificar

los datos de la base

 Es el que permite a los usuarios llevar a cabo las tareas de consulta o

manipulación de los datos, organizados por el modelo de datos adecuado.

 Hay dos tipos de LMD: los procedurales y los no procedurales.


 Procedurales, especifica qué datos se necesitan y cómo hay que obtenerlos. Las

sentencias de un LMD procedural deben estar embebidas en un lenguaje de alto

nivel, ya que se necesitan sus estructuras para obtener y procesar cada registro

individual

 Los no procedurales, manera independiente para definir operaciones complejas,

permitiendo especificar los datos a obtener en una consulta o los datos que se

deben actualizar, mediante una sola y sencilla sentencia.

3. Cuadro comparativo entre las sentencias utilizadas en LDD y LMD – y sus funciones

Leguaje De Definición De Datos (LDD) Lenguaje De Manipulación De Datos

(LMD)
CREATE Sirve para crear objetos SELECT Nos sirve para para obtener
en la base de datos. datos de una base de datos.
ALTER modifica la estructura de INSERT Nos sirve para insertar los
la base de datos. datos en una tabla
DROP Nos permite borrar UPDATE Sirve para modificar los datos
objetos de la base de ya existentes dentro de una
datos tabla
TRUNCATE Permite eliminar todos DELETE Permite eliminar todos los
los registros de la tabla

4. Que es un diccionario de datos.

Un diccionario de datos es una lista constituida y organizada, los datos de entrada y salida

los define con precisión, este contiene las características lógicas de los lugares donde se

encuentran los datos, esto nos ayuda a entender la estructura de la base de datos,

(atributos, dominios, asociaciones y operaciones).

Es importante utilizar un diccionario de datos, algunas razones son:

 Permiten manejar los detalles en bases de datos grandes


 Permiten comunicar un significado común para diferentes elementos del sistema
 Permite localizar errores en un sistema
 Permite documentar las características del sistema
 Permite analizar detalles con el fin de determinar las características y determinar

donde efectuar los cambios

5. Cuadro comparativo con las características de cada una de las generaciones de los

lenguajes de programación.

Lenguajes de Características
programación
Lenguaje ensamblador El lenguaje ensamblador es el lenguaje de programación
(1944) utilizado para escribir programas informáticos de bajo nivel, y constituye la
representación más directa del Código máquina específico
para cada arquitectura de computadoras legible por un
programado
Lenguaje maquina Es el único que entiende directamente la computadora, utiliza
(1948) el alfabeto binario que consta de los dos únicos símbolos 0 y
1, denominados bits (abreviatura inglesa de dígitos binarios)
Fortran (1951) Es un lenguaje orientado al cálculo numérico, diseñado en sus
inicios para las computadoras IBM y usado en aplicaciones
científicas y de ingeniería y es el más antiguo de los
Lenguajes de alto nivel
Cobol (1960) El Cobol (del inglés: Common Business Oriented Language, o Lenguaje
Común Orientado a Negocios) se inventó en los años 60.
Nació con el objetivo de ser un lenguaje de programación
versátil, que pudiese ser usado en cualquier computador
Basic (1964) Basic: Siglas de Beginner's All-purpose Symbolic Instruction Code (Código
simbólico de instrucciones de propósito general para
principiantes en español), es una familia de lenguajes de
programación de alto nivel.
Algol (1966) Su nombre proviene de Algorithmic Language. Fue muy popular en las
universidades durante los años 60, pero nunca llego a ser
considerado como lenguaje de utilización comercial.
Prolog (1969) Es un lenguaje de programación lógica cuya primera versión fue
desarrollada a principios de la década de 1970 por
Colmerauer en la universidad de Marsella.
Pascal (1970) Es un lenguaje de alto nivel, y de propósito general, lo cual quiere decir
que se puede utilizar para cualquier tipo de propósitos. El
lenguaje de programación en Pascal se considera un
lenguaje estructurado, sencillo y práctico para los usuarios
que se inician en el mundo de la programación, ya que fue
creado con fines de aprendizaje
C (1972) C: Es un programación originalmente desarrollado por
Dennis Ritchie entre 1969 y 1972 en los Laboratorios Bell,2
como evolución del anterior lenguaje B, a su vez basado en
BCPLE(Basic Combined Programming Language (Lenguaje
de Programación Básico Combinado)).
Ada (1980) Es un lenguaje de programación orientado a objetos y fuertemente tipado de
forma estática que fue diseñado por Jean Ichbiah de CII
Honeywell Bull por encargo del Departamento de Defensa
de los Estados Unidos.
C++ (1985) C++: es un lenguaje imperativo orientado a objetos derivado del C. En
realidad un superconjunto de C, que nació para añadirle
cualidades y características de las que carecía. El resultado
es que como su ancestro, pero se la han añadido elementos
que le permiten también un estilo de programación con alto
nivel de abstracción.
SQL (1986) SQL corresponde a la expresión inglesa Structured Query
Language (entendida en español como Lenguaje de
Consulta Estructurado), la cual identifica a un tipo de
lenguajevinculado con la gestión de bases de datos de
carácter relacional que permite la especificación de distintas
clases de operaciones entre éstas., el SQL brinda la
posibilidad de realizar consultas con el objetivo de recuperar
información de las bases de datos de manera sencilla.
Visula Basic (1991) El lenguaje de programación Visual Basic es uno de los lenguajes de
programación que utiliza una interfaz visual es decir que nos
permite programar en un entorno gráfico, nos permite
realizar un número de tareas sin escribir código,
simplemente realizando operaciones con el ratón sobre la
pantalla de la computadora.
JAVA (1944) Es un lenguaje de programación y una plataforma informática
comercializada por primera vez en 1995 por Sun
Microsystems. Hay muchas aplicaciones y sitios web que no
funcionarán a menos que tenga Java instalado y cada día
se crean más, es concurrente , basado en clases , orientado
a objetos , [15] y diseñado específicamente para tener la
menor cantidad de dependencias de implementación
posibles. Está destinado a permitir que los desarrolladores
de aplicaciones .
Python (1995) Python se le considera en el primer lugar de la lista de todos los lenguajes
de desarrollo de AI debido a la simplicidad. Las sintaxis que
pertenecen a Python son muy simples y se pueden
aprender fácilmente.
OPS5 (2002) OPS5, basado en reglas o sistema de producción, notable
como el primer lenguaje de este tipo que se utiliza en un
sistema experto exitoso

6. Mapa mental de la integridad de datos en una base de datos

7. Procedimiento almacenado y ventajas

Es un paquete de lógica residente o embebidos dentro de un sistema de base de datos,

como diferencia ante los disparadores se tiene que los procedimientos almacenados son

unidades de lógica autónomos, estos procedimientos pueden ser llamados desde una

aplicación, desde otro procedimiento almacenado o desde un disparador.


Proporcionan velocidad a las demandas que hacen los usuarios sobre algunos datos en

concreto, puesto que buscan exactamente lo que el usuario necesita y prácticamente se

le da una respuesta inmediata, evitando así que estos reciban todo el flujo de información

que se encuentra en esa base de datos y que no les interesa.

Algunas de las ventajas de los procedimientos de almacenado son:

• Tráfico de red reducido entre el cliente y el servidor

• Mayor seguridad

• El uso de parámetros de procedimientos ayuda a protegerse contra ataques por

inyección de código SQL

• Los procedimientos pueden cifrarse, lo que ayuda a ofuscar el código fuente

• Reutilización del código

• Mantenimiento más sencillo

• Rendimiento mejorado

8. Que es un trigger y dar un ejemplo

Los disparadores o TRIGGER son eventos a nivel de tabla que se ejecutan

automáticamente cuando se realizan ciertas operaciones sobre la tabla, los eventos que

hacen que se ejecute un trigger son las operaciones de inserción INSERT, borrado

DELETE o actualización UPDATE ya que con estas operaciones lo que realizamos es

actualizar la tabla y por ello también la información.

Un trigger puede programarse para:

• Permite impedir alguna entrada de un datos o datos inválidos o una transacción no

permitida

• Permite realizar un pedido automático de un producto de un almacén cuando este

se esté agotando
• Generar automáticamente cálculos sobre varias columnas

• Permite sincronizar tablas donde haya información duplicada


• Llevar una serie de estadísticas cuando se ingresa a una base de datos

Un Ejemplo seria si se necesita crear una tabla duplicada separada de la otra, pero con la

misma información, se puede programar al disponer un Trigger para que cada vez que se

ejecute un INSERT automáticamente realice la misma operación en la segunda tabla.

9. Explique que es un Join y de un ejemplo de cada uno.

Son la forma en la cual los datos que se encuentran en las tablas que están separadas y

también relacionadas, se ponen juntos en un conjunto de manera que determinadas

operaciones de recuperación se realicen sobre el conjunto completo de los datos. Es un

operador del álgebra relacional que asocia datos entre las tablas, y sirve para realizar

consultas entre las tablas. El operador toma dos relaciones como entrada y produce una

relación como salida.

Para el caso de un natural join se tienen dos tablas en las cuales se tienen varias

columnas para producir un resultado de sólo aquellas filas en la tabla 1 que se

correspondan con las filas en la tabla 2, y viceversa.

Para el caso de outer join se tienen dos tablas en las cuales se tienen varias columnas

para producir un resultado en el que se quiere mantener todas las filas de la tabla 1 o en

la tabla 2 o en ambos en el resultado.

10. Algebra relacional en las bases de datos y las operaciones.

El algebra relacional en las bases de datos es un método que consiste básicamente en

crear o construir nuevas relaciones a partir de relaciones existentes. El algebra relacional

es un lenguaje de consulta procedural, que se refiere a un conjunto de operaciones que

refiere a una entrada que toma una o dos relaciones y después las convierte en una
nueva relación y por ello es anidar y combinar los operadores. Existen 8 operadores de

algebra relacional que se constituyen en relaciones y manipulación de datos.

Restrict
Ese operador toma una relación como entrada y genera una única relación como salida,

extrayendo filas de la relación de entrada, comprobando que cumpla la condición dada y

las pase a la relación de salida

Sintaxis del operador RESTRICT:

RESTRICT <Nombre tabla> [WHERE <condición>] <tabla resultado>

Project
El operador Project toma una única relación como entrada y produce una única relación

como salida, produciendo en la relación de salida un subconjunto de las columnas de la

relación de entrada.

Sintaxis del operador PROJECT:

PROJECT <nombre tabla> [<lista columnas>] <tabla resultado>

Product
Product toma dos relaciones como entrada y produce como salida una relación

compuesta de todas las posibles combinaciones de las filas de entrada, no es muy

utilizado en la practica ya que puede generar una “explosión de información”.

Sintaxis del operador PRODUCT:

PRODUCT < tabla 1 > WITH < tabla 2 > < tabla resultado >

Join
Este operador toma dos relaciones como entrada y produce otra relación como salida, ya

que existe varios tipos de Join el mas utilizado es el


natural join

Sintaxis del operador JOIN:

EQUIJOIN < tabla 1 > WITH < tabla 2> < tabla resultado >

Union
Este operador toma dos relaciones compatibles como entrada y produce una relación

como salida, para que sea compatible las tablas deben tener la misma estructura, las

mismas columnas definidas sobre los mismos dominios.

Sintaxis del operador UNION:

< tabla 1 > UNION < tabla 2> < tabla resultado >

Intersection
El operador intersección es fundamentalmente el opuesto a unión, Mientras que unión

combina dos conjuntos de tablas, intersección genera una tabla que contiene las filas

comunes a ambas tablas de entrada.

Sintaxis del operador INTERSECTION:

< tabla 1 > INTERSECTION < tabla 2> < tabla resultado
>

Difference
Cuando se usa el operador Difference si importa el orden en que se especifican las tablas

de entradas, ya que en la mayoría de las operaciones del algebra relacional el orden en el


cual se especifican las relaciones de entrada no importa.

Division

Este operador toma dos tablas como entrada y produce una tabla como salida. Una de

estas tablas debe ser una taba binaria, y una unaria y la tabla unaria debe estar definida

en el mismo dominio que una de las columnas de la tabla binaria. Teniendo como

finalidad tomar los valores de la tabla unaria cotejándolos con la columna asociada en la

tabla binaria. Cuando los valores de la tabla unaria correspondan con el mismo valor de la

tabla binaria se saca el valor a la tabla resultado.

SEGUNDA PARTE CASO PRACTIC


Construir las consultas que corresponden a los siguientes requerimientos:

1. Un listado de todos los pacientes que tienen algún diagnostico por parte de un médico
remitente.

SELECT CITA.id_paciente, paciente.NOMBRE, paciente.APELLIDO, medico.id_medico,

medico.NOMBRE, medico.APELLIDO, historia.DIAGNOSTICO FROM CITA INNER

JOIN historia ON CITA.id_cita = historia.id_cita INNER JOIN MEDICO ON

CITA.id_medico = medico.id_medico inner JOIN paciente on cita.id_paciente =

paciente.id_paciente

2. El reporte de las sesiones que ha recibido un paciente determinado (una vez conocido su
número de cedula) durante el presente mes.

SELECT cita.id_paciente, paciente.NOMBRE, paciente.APELLIDO FROM cita, paciente

WHERE cita.id_paciente=4545342 and month (08/05/20)=05 AND

paciente.id_paciente=4545342
3. La cantidad total de sesiones realizadas por cada uno de los diagnósticos que se refieren
en las remisiones entregadas a los médicos.

select TERAPIA.nombre, MEDICO.id_medico, MEDICO.nombre, medico.apellido,

historia.diagnostico FROM historia inner JOIN terapia on historia.id_terapia =

terapia.id_terapia INNER JOIN MEDICO ON medico.id_medico = terapia.id_medico

4. Una consulta que permita calcular el valor a pagar por todas las sesiones trabajadas

teniendo en cuenta que las terapias físicas se pagan a $23.000 y las terapias

respiratorios tienen un costo de $25.000

SELECT terapia.nombre, terapia.precio FROM terapia WHERE (PRECIO BETWEEN

22000 AND 26000)


5. Un listado de todos los fisoterapeutas inscritos en la IPS y el valor pagado a cada uno de
ellos durante el mes pasado.

SELECT medico.id_medico, medico.nombre, medico.apellido, especialidad.nombre,

especialidad.salario FROM MEDICO INNER JOIN especialidad ON

especialidad.id_especialidad = medico.id_especialidad
Construir los procedimientos almacenados para las siguientes necesidades:

1. Un procedimiento almacenado que permita Incrementar el valor de las sesiones en el 10


% sobre el costo inicialmente determinado.

CREATE PROCEDURE PRO1 (PORCENTAJE FLOAT) SELECT (TERAPIA.precio+

(terapia.precio*PORCENTAJE)) FROM TERAPIA

CALL PRO1 (0.1)

2. Antes de borrar un registro, en la tabla Diagnostico o Terapias, inserte en una tabla de

Auditoria donde guarde el usuario que hace el borrado, la fecha con hora minuto y

segundo, la acción que realizo “Borrado”, y el código de la terapia o diagnóstico.


CREATE TABLE AUDITORIA_TERAPIAS (ID_TERAPIA INT (50), NOMBRE_TERAPIA V
ARCHAR (50), PRECIO_TERAPIA INT (50), ID_MEDICO INT (50), USUARIO INT
(50), FECHA_ELIMINACION DATETIME)

CREATE TRIGGER BORRAR_TERAPIA AFTER DELETE ON terapia FOR EACH ROW INSERT INTO auditoria_ter

apias (ID_TERAPIA,NOMBRE,PRECIO,ID_MEDICO,USUARIO,FECHA_ELIMINACION
) VALUES (OLD.ID_TERAPIA,

OLD.NOMBRE, OLD.PRECIO,OLD.ID.MEDICO,CURRENT_USER,NOW())

3. Un procedimiento almacenado que permita eliminar todas las sesiones realizadas hace

más de 4 meses ya registradas en la base de datos.


CREATE PROCEDURE PRO2 (PRO2FECHA DATE) DELETE FROM cita WHERE fecha < PRO2FECHA

CALL PRO2('2020-01-01')

4. De acuerdo al material de estudio, crear 2 trigers definidos para el caso de estudio.


Realizar una matriz por tabla que permita construir un diccionario de datos identificando y
diferenciando los tipos de datos para tres sistemas gestores diferentes.
A continuación, se sugiere un modelo:
Diccionario de datos MySQL

AFILIACION
Nombre de la Tipo de dato Clave primaria No nulo
columna
Id_afiliación Int (11) PK NN
Tipo_afiliación Varchar (45) - NN
Precio Int (11) - NN

CITA
Nombre de la Tipo de dato Clave primaria No nulo
columna
Id_ cita Int (11) PK NN
Fecha Date - NN
Hora Varchar (11) - NN
Id_medico Int (11) - NN
Id_paciente Int (11) - NN
Id_afiliacion Int (11) - NN

ESPECIALIDAD
Nombre de la Tipo de dato Clave primaria No nulo
columna
Id_ especialidad Int (11) PK NN
Nombre Varchar (45) - NN
Salario Int (11) - NN
HISTORIA
Nombre de la Tipo de dato Clave primaria No nulo
columna
Id_ historia Int (11) PK NN
Fecha Date - NN
Diagnostico Varchar (100) - NN
Id_cita Int (11) - NN
Id_medico Int (11) - NN
Id_terapia Int (11) - NN
MEDICO
Nombre de la Tipo de dato Clave primaria No nulo
columna
Id_ Medico Int (11) PK NN
Cedula Int (11) - NN
Nombre Varchar (45) - NN
Apellido Varchar (45) - NN
Teléfono Varchar (45) - NN
Email Varchar (45) - NN
Id_especialidad Int (11) - NN

PACIENTE
Nombre de la Tipo de dato Clave primaria No nulo
columna
Id_ paciente Int (11) PK NN
Cedula Int (11) - NN
Nombre Varchar (45) - NN
Apellido Varchar (45) - NN
Teléfono Varchar (45) - NN
Email Varchar (45) - NN

TERAPIA
Nombre de la Tipo de dato Clave primaria No nulo
columna
Id_ terapia Int (11) PK NN
Nombre Varchar (45) - NN
Precio Int (11) - NN
Id_medico Int (11) - NN
Bibliografía

 base de datos Webquest - Visión de los datos: Independencia lógica y física.

https://sites.google.com/site/basededatoswebquest/vision-de-los-datos

 Beynon-Davies, Paul. Sistemas de bases de datos, Editorial Reverté, 2014.


ProQuest Ebook

Central, http://ebookcentral.proquest.com/lib/unipanamericanasp/detail.action?

docID=5635473.

 Sentencias SELECT FROM WHERE y ORDER BY con Mysql Workbench

http://www.edu4java.com/es/sql/sql4.html

 Conocimientos web la divisa del nuevo milenio

https://www.conocimientosweb.net/dcmt/ficha16971.html

 Generaciones de los Lenguajes de Programación


https://www.timetoast.com/timelines/generaciones-de-los-lenguajes-

deprogramacion-78279214-40c7-4337-be29-0bcd0e376bd2

 Microsoft - Procedimientos almacenados (motor de base de datos)


https://docs.microsoft.com/es-es/sql/relational-databases/stored-procedures/

storedprocedures-database-engine?view=sql-server-ver15

 Wikipedia – Bases de datos https://es.wikipedia.org/wiki/Trigger_(base_de_datos)


 Procedimientos almacenados mysql, Phpmyadmin

https://www.youtube.com/watch?v=crAOYDEoPA4

 Actualizar una tabla con disparadores o triggers https://www.youtube.com/watch?

v=Av8T_Nlvt9s

También podría gustarte