Vista Externa de Una
Base de Datos
John Freddy Duitama Muñoz.
Facultad de Ingeniería.
U.de.A.
¿Qué es la Vista Externa?
Es la perspectiva que un grupo de usuarios tiene de la base
de datos.
Permite establecer un esquema de seguridad para la
información en la base de datos.
Generalmente la información está representada en las
tablas de la base de datos
Diagrama General
Pedro
Usuarios
Gerente
De Cuenta
Cajero
Cargos
María
Juan
Transacciones
Facturar
T1
Pagar
T2
Cierre
T3
Primer Paso: Definir funciones en la
organización.

Supongamos tres transacciones: facturar, pagar y cierre.
Procedemos a crear un role por cada función.


SQL> CREATE ROLE facturar;
SQL> CREATE ROLE pagar;
SQL> CREATE ROLE cierre;

Nota: la base de definición son los casos de uso.

Segundo Paso: Para cada función debemos
asignar los permisos necesarios en las tablas
y vistas SQL del sistema.
Ejemplo:
 SQL> GRANT SELECT ON tabla-1 TO facturar.
 Significa que la transacción facturar necesita consultar todos los
atributos de la tabla-1.


SQL > GRANT UPDATE(sal, comm) ON tabla-1 to facturar;
Significa que la transacción facturar necesita solo actualizar dos
atributos de la tabla-1.

SQL> GRANT DELETE ON Tabla-3 TO facturar.
Significa que la transacción facturar necesita borrar registros de la
tabla-3.

De manera similar se asignan los permisos a Pagar y Cierre

MATRIZ TABLAS VS TRANSACCIONES
Tabla/ Transacción
Empleado
Cedula
Nombre
Teléfono
Salario
Cargo
Registros por Tx.
Tabla2
Atributo1
Atributo2
Atributo3
Registros por Tx.
Tx por DIA
Transacción- Transacción- Transacción- Transacción1
2
3
4
K-S
S
S
1
K
S
U
U
3
K-D
D
D
D
D
5
I
I
I
I
I
1
S: Consulta
U: Actualización
D: Borrado
I: Inserción
K: Punto de entrada. (Búsqueda)
1000
508
600
100
Diagrama General
Pedro
Usuarios
Gerente
De Cuenta
Cajero
Cargos
María
Juan
Transacciones
facturar
Pagar
Cierre
Tercer Paso, Definir los cargos de la
empresa.

Tenemos los cargos cajero y Gerente de Cuenta.
Debemos definir su existencia en la base de datos
mediante ROLE.

SQL> CREATE ROLE cajero;

SQL> CREATE ROLE gerente_de_cuenta;

La base de la definición son los actores del sistema
definidos en los casos de uso.
Cuarto Paso: Asignar funciones a los cargos.





SQL> GRANT facturar TO Cajero;
SQL> GRANT pagar TO Cajero;
SQL> GRANT pagar TO gerente_de_cuenta;
SQL> GRANT cierre TO gerente_de_cuenta;
Significa que el Cajero tiene la función de facturar y pagar,
mientras que el gertente de cuenta tiene las funciones de
pagar y cierre.
Diagrama General
Pedro
Usuarios
Gerente
De Cuenta
Cajero
Cargos
María
Juan
Transacciones
facturar
Pagar
Cierre
Quinto Paso: Crear usuarios y asignarles un
cargo en la empresa.
Por cada empleado de la empresa debe crearse una
cuenta individual y especificar el o los cargos que este
posea.
 La instrucción para crear usuarios es:
CREATE USER nombreUsuario [identified by clave]




CREATE USER Pedro identified by 1234;
CREATE USER Juan identified by HHERN;
CREATE USER Maria identified by Mari12;
Sexto Paso: A cada usuario le asignamos un
cargo.

SQL> GRANT Cajero to Pedro;

SQL> GRANT Gerente_de_Cuenta to Juan;

SQL> GRANT Gerente_de_Cuenta to Maria;
Vistas SQL

Una vista SQL es una tabla lógica (no física) que se basa
en una tabla o varias tablas o en otra vista.

Una vista SQL no contiene datos en si misma, es solo una
ventana a través de la cual se pueden ver y cambiar datos
de las tablas.
Sintaxis
 CREATE [OR REPLACE]
[FORCE|NOFORCE] VIEW nombre_vista
[(alias atributos...)] AS subconsulta
[WITH READ ONLY]
Donde:
 OR REPLACE. Se utiliza por si la vista ya estuviera creada anteriormente.
De esta forma una vista podrá ser modificada.
 FORCE. Crea la vista independientemente de si la tabla base existe.
 NOFORCE. Crea la vista sólo si la tabla base existe. Está opción es la que
está por defecto.
 Subconsulta. Es una sentencia SELECT
 WITH READ ONLY. Solo lectura
 WITH CHECK OPTION. Valida condiciones del where.
Ejemplo
CREATE VIEW vEmpleado AS
(
SELECT cedula, nombre,salario, depto, jefe
FROM empleados
WHERE depto = 20
WITH CHECK OPTION;
)
-- WITH CHECK OPTION, significa que sólo podrán
manipularse empleados del departamento 20
Una vista permite consultar, editar y
eliminar atributos de la tabla base, sin
embargo:










No puede borrarse una fila si la vista contiene:
Funciones de agrupamiento
Una cláusula GROUP BY
La cláusula DISTINCT
No pueden modificarse datos de una vista si:
Se cumple alguna de las condiciones del borrado
Las columnas están definidas mediante expresiones
No se pueden añadir datos a una vista si
Se cumple cualquiera de las condiciones del borrado
Hay columnas NOT NULL en la tabla base que no están seleccionadas en la
vista
Referencias

(Connolly , Begg. 2005) Connolly, Thomas. Begg, Carolyn.
Sistemas de bases de datos. Un enfoque práctico para
diseño, implementación y gestión. 4ta edición. Pearson
Addison Wesley. Pag 165.
Descargar

Descargar