Está en la página 1de 9

Lenguaje de control de datos en SQL

Buri Jimenez Cortes

Fundamentos de bases de datos

Instituto IACC

30-07-2018
Revise el siguiente caso de estudio y responda a los requerimientos:
1-El Instituto Profesional Estudio recientemente ha implementado un sistema de tickets para llevar
registro y seguimiento de las solicitudes que hacen los estudiantes al Departamento de Atención al
Estudiante (DAE). Dentro del departamento, existe un director, dos supervisores y “n” ejecutivos de
atención al estudiante. El sistema recién implementado no cuenta con los perfiles de seguridad necesarios,
por lo que cualquier colaborador del departamento puede realizar lo que desee con la base de datos.
Usted como conocedor del área debe elaborar un informe en el cual exponga los comandos de SQL que
podrían servir para el caso, además de esbozar, de acuerdo a los cargos que se tienen en el departamento,
cómo deberían ser las instrucciones que otorguen o retiren ciertos permisos sobre la base de datos. Asuma
que se tienen las siguientes tablas: Estudiantes Colaboradores, Tickets, Motivos_Contacto. Usted puede
determinar los registros y campos que tendrán cada una de las tablas.
2- Se tiene la siguiente tabla que registra para una librería el código del autor, el código del libro,
nombre del libro, código de la editorial, precio y porcentaje de descuento:

A partir de las funciones abordadas durante la semana de estudio, entregue las siguientes
consultas en SQL:
1. Liste la cantidad de libros que tiene la librería actualmente.
2. Indique el promedio de precios de los libros pertenecientes al autor con código = ‘0001’.
3. Indique el total que recibiría la librería si vende en este momento todos los libros, sin
aplicar ningún tipo de descuento.
4. Indique el libro con el menor precio.

5. Indique el libro con el mayor precio.

6. Tomando en cuenta el porcentaje de descuento, liste todos los libros que se encuentran en la

librería, y de acuerdo al descuento, imprima lo que indica el siguiente rango:

Porcentaje de Descuento < = 10 imprimir mensaje “Descuento de hasta un 10%”.

Porcentaje de Descuento > 10 y < = 25 imprimir mensaje “Descuento de hasta un 25%”.

Porcentaje de Descuento > 25 imprimir mensaje “Descuento de más del 25%”.


Desarrollo

En primera instancia debemos crear la base de datos con las tablas otorgadas anteriormente y se
complementaran los campos y registros necesarios para finalizar correctamente el informe.
Tablas con las que debemos de contar:
Estudiantes Colaboradores
Nombre Apellido 1 Apellido 2 Rut
Rosa Fuentes Morales 12.546.258-5
Patricio Marambio Lorca 13.524.365-K
Elizabeth Contreras Gallardo 12-985.357-6
Raimundo Sotomayor Fuentes 14.658.354-9
Carlos Silva Mora 13.658.985-0
Ernesto Contreras Galleguillo 11.258.000-3
Eleonor Cifuentes Perez 12.365.200-K

Ticket
Nro_Ticket Rut
10001 12.546.258-5
10002 13.524.365-K
10003 12-985.357-6
10004 14.658.354-9
10005 13.658.985-0
10006 11.258.000-3
10007 12.546.258-5
10008 12.365.200-K
10009 13.658.985-0

Motivo_Contacto
Nro_Ticket Motivo
10001 Solicitud de certificado de estudiante
10002 Solicitud de pase escolar
10003 Prorroga en pago mensual
10004 Solicitud Pase escolar
10005 Solicitud Pase escolar
10006 Solicitud certificado estudiante
10007 Solicita cambio fecha pago
10008 Solicitud de certificado de estudiante
10009 Solicitud de certificado de estudiante

Una vez que tenemos nuestras tablas ya creadas, y en consideración los campos y registros
ingresados, podemos realizar el informe solicitado.
En este caso el informe es entregado y utilizado para conocer las falencias con las que cuenta
esta base de datos y proponer cambios que van en pro de la seguridad de los datos que esta
contiene.
Falencias de la base de datos:
Específicamente una base de datos tiene la función de almacenar información de forma ordenada
según como fue creada, para este caso en tablas con registros necesarios para tener la
información de lo que se desea. Esto aplica en todos los sectores y no solo en una gran empresa,
una base de datos tendrá una importancia relevante, también en una pequeña empresa o base
pequeña.
Junto a la creación de la base de datos, de acuerdo a las tablas y orden de estas, es paralelamente
importante limitar los accesos, de forma que solo tengan permitido el ingreso a estas bases o sus
registros, las personas establecidas y que necesiten realizar algún trabajo con estos datos. Por lo
que se debe aplicar seguridad a los datos (tablas o registros), de lo contrario se está propenso a la
eliminación o modificación de estos.

Propuesta de configuración de seguridad en las tablas


Debido a que en el departamento DAE encontramos un director, dos supervisores y una cantidad
ilimitada de ejecutivos de atención. Los permisos deberían ser programados como sigue:
Primero, aunque no debería ser, dado que solo se debe otorgar privilegios según cargo y datos
que corresponden a su función laboral, se le dará todos los privilegios en las tres tablas al
director y que este pueda otorgar sus permisos a otros usuarios, por lo que se usara With Grant
Option:
- Grant All Privileges on Estudiantes_Colaboradores to director With Grant Option;
Aunque esta tabla, no se debería tocar ya que corresponde a los datos del estudiante por
lo que se puede usar en todas las áreas del Instituto, no sólo en el DAE.
- Grant All Privileges on Ticket to director With Grant Option;
- Grant All Privileges on Motivo_Contacto to director With Grant Option;
A los dos Supervisores se les dará privilegios de actualización y eliminación de datos solo a las
tablas Ticket y Motivo_Contacto ya que la tabla Estudiante_Colaborador debe ser una tabla
general y no del área DAE.
- Grant Update on ticket to Supervisor
- Grant Update on Motivo_Contacto to Supervisor

- Grant Delete on ticket to Supervisor

- Grant Delete on Motico_Contacto to Supervisor

También puede ser:

- Grant Update, Delete on ticket to Supervisor;

- Grant Update, Delete on Motivo_Contacto to Supervisor;

Por último a los Ejecutivos se les dará privilegios de insertar y consulta de datos.

- Grant Insert, Select on ticket to Ejecutivos;

- Grant Insert, Select on Motivo_Contacto to Ejecutivos;


Fase II

1- Liste la cantidad de libros que tiene la librería actualmente.

SELECT COUNT(*) FROM libros;

2- Indique el promedio de precios de los libros pertenecientes al autor con código = ‘0001’.

select avg(precio)

from libros

where codigo_autor like '%0001%';

3- Indique el total que recibiría la librería si vende en este momento todos los libros, sin

aplicar ningún tipo de descuento.

select sum(precio)

from libros;

4- Indique el libro con el menor precio.

select min(precio)

from libros

5- Indique el libro con el mayor precio.

select max(precio)

from libros

6. Tomando en cuenta el porcentaje de descuento, liste todos los libros que se encuentran en la

librería y, de acuerdo al descuento, imprima lo que indica el siguiente rango:

Porcentaje de Descuento < = 10 imprimir mensaje “Descuento de hasta un 10%”.

select porc_descuento from libros where precio <= 10;


SELECT NOMBRE, PORC_DESCUENTO, IF (PORC_DESCUENTO <= 10, "DESCUENTO HASTA

10%","") AS COMENTARIOS FROM libros

Porcentaje de Descuento > 10 y < = 25 imprimir mensaje “Descuento de hasta un 25%”.

select porc_descuento from libros where precio > 10 <= 25;

Porcentaje de Descuento > 25 imprimir mensaje “Descuento de más del 25%”.

select porc_descuento from libros where precio > 25;


Bibliografía

[Contenidos semana 5, Fundamentos de bases de datos, IACC 2018.]