Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John...

17
Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.

Transcript of Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John...

Page 1: 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.

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.

Page 2: 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

Page 3: 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.

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.

Page 4: 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.

Diagrama General

Cajero GerenteDe Cuenta

FacturarT1FacturarT1 Pagar

T2PagarT2

CierreT3CierreT3

Pedro Juan MaríaUsuarios

Cargos

Transacciones

Page 5: 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.

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

Page 6: 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.

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.

Page 7: 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.

Diagrama General

CajeroCajero GerenteDe CuentaGerenteDe Cuenta

facturar Pagar Cierre

Pedro Juan MaríaUsuarios

Cargos

Transacciones

Page 8: 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.

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.

Page 9: 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.

Diagrama General

CajeroCajero GerenteDe CuentaGerenteDe Cuenta

facturarfacturarPagarPagar CierreCierre

Pedro Juan MaríaUsuarios

Cargos

Transacciones

Page 10: 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.

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;

Page 11: 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.

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;

Page 12: 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.

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)

Page 13: 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.

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.

Page 14: 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.

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

Page 15: 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.

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

Page 16: 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.

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

Page 17: 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.

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.