Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John...
-
Upload
purificacion-olivera-jimenez -
Category
Documents
-
view
220 -
download
1
Transcript of Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John...
Vista Externa de Una Base de Datos
John Freddy Duitama Muñoz.
Facultad de Ingeniería.U.de.A.
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
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.
Diagrama General
Cajero GerenteDe Cuenta
FacturarT1FacturarT1 Pagar
T2PagarT2
CierreT3CierreT3
Pedro Juan MaríaUsuarios
Cargos
Transacciones
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
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.
Diagrama General
CajeroCajero GerenteDe CuentaGerenteDe Cuenta
facturar Pagar Cierre
Pedro Juan MaríaUsuarios
Cargos
Transacciones
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 gertenye de cuenta tiene las funciones de pagar y cierre.
Diagrama General
CajeroCajero GerenteDe CuentaGerenteDe Cuenta
facturarfacturarPagarPagar CierreCierre
Pedro Juan MaríaUsuarios
Cargos
Transacciones
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;
MATRIZ TABLAS VS TRANSACCIONES
Tabla/ TransacciónTransacción-1
Transacción-2
Transacción-3
Transacción-4
EmpleadoCedula K-S K K-D INombre S S D ITeléfono S U D ISalario - U D ICargo - - D IRegistros por Tx. 1 3 5 1Tabla2Atributo1Atributo2Atributo3Registros por Tx.Tx por DIA 1000 508 600 100
S: ConsultaU: ActualizaciónD: BorradoI: InserciónK: Punto de entrada. (Búsqueda)
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 como una ventana a través de la cual pueden verse y cambiarse datos de 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
EjemploCREATE VIEW vEmpleado AS
(SELECT cedula, nombre,salario, depto, jefeFROM empleadosWHERE depto = 20WITH CHECK OPTION;)-- WITH CHECK OPTION, significa que sólo
podrán manipularse únicamente 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.