Professional Documents
Culture Documents
Objetivos
Despus de completar esta leccin, usted debera ser
privilegios Otorgar privilegios a las tablas Conceder roles Distinguir entre los privilegios y los roles
Programa 1:
Privilegios del sistema
Creacin de un rol
Privilegios de Objetos Revocar privilegios de Objeto
Privilegios
Base de datos de seguridad: Sistema de seguridad La seguridad de los datos Privilegios del sistema: Realizacin de una accin
concreta dentro de la base de datos Objeto privilegios: Manipular el contenido de los objetos de la base de datos Schemas: Coleccin de objetos como tablas, vistas y secuencias
Sistema de privilegios
Ms de 100 privilegios estn disponibles.
Creacin de nuevos usuarios Eliminacin de usuarios Eliminacin de tablas Copia de seguridad de las tablas
Creacin de Usuarios
El administrador de bases de datos (DBA) crea los usuarios con la
CREATE USER usuario IDENTIFIED BY clave; CREATE USER demo IDENTIFIED BY demo;
a un usuario.
GRANT TO
Qu es un rol?
Usuarios
Administrador
Privilegio
La asignacin de privilegios sin un rol La asignacin de privilegios con un papel
Cambio de contrasea
El DBA crea las cuentas de usuario y inicializa su
Privilegios de Objetos
Privilegios de Objetos ALTER DELETE Tabla Vista Secuencia
INDEX
INSERT REFERENCES SELECT UPDATE
Privilegios de Objetos
Privilegios de Objeto varan de objeto a objeto.
GRANT ON TO
usuarios y roles:
GRANT ON TO
GRANT ON TO WITH
ROLE_SYS_PRIVS
ROLE_TAB_PRIVS USER_ROLE_PRIVS USER_SYS_PRIVS
USER_TAB_PRIVS_MADE
USER_TAB_PRIVS_RECD USER_COL_PRIVS_MADE
USER_COL_PRIVS_RECD
concedidos a otros usuarios. Privilegios concedidos a los dems a travs de la clusula WITH GRANT OPTION tambin son revocados.
REVOKE {privilegios [, privilegios...]|ALL} ON objetos FROM {usuario[, usuario...]|rol|PUBLIC} [CASCADE CONSTRAINTS];
REVOKE ON FROM
Resumen
En esta leccin, usted debe haber aprendido sobre las
CREATE ROLE
ALTER USER REVOKE
Objetivos
Despus de completar esta leccin, usted debera ser
Crear ndices
Crear ndices con la sentencia CREATE TABLE Crear ndices basados en funciones Eliminar columnas y establecer columnas como no
Programa 2:
Usando el comando ALTER TABLE para aadir,
Aadiendo y eliminando una restriccin Aplazar las restricciones Activacin y desactivacin de una restriccin
Creacin de ndices Uso de la sentencia CREATE TABLE Crear ndices basados en funciones Eliminando un ndice Realizacin de operaciones de flashback Creacin y uso de tablas externas
ALTER TABLE tabla ADD (columna TipoDato[DEFAULT expresin] [, columna TipoDato]...); ALTER TABLE tabla MODIFY (columna TipoDato[DEFAULT expresin] [, columna TipoDato]...); ALTER TABLE tabla DROP COLUMN (columna);
columnas no utilizadas. Puede utilizar la opcin de DROP UNUSED COLUMNS para eliminar las columnas que estn marcados como no utilizadas.
ALTER TABLE <tabla_nombre> SET UNUSED(<columna_nombre>); OR ALTER TABLE <tabla_nombre> SET UNUSED COLUMN <columna_nombre>;
ALTER TABLE emp2 ADD CONSTRAINT emp_jefe_fk FOREIGN KEY(jefe_id) REFERENCES emp2(empleado_id);
ON DELETE CASCADE
Eliminar filas hijas cuando la clave del padre es eliminada:
ALTER TABLE Emp2 ADD CONSTRAINT emp_dep_fk FOREIGN KEY (departamento_id) REFERENCES departamentos(departamento_id) ON DELETE CASCADE;
Aplazar Limitaciones
Las restricciones pueden tener los siguientes atributos: Aplazable o no aplazable (DEFERRABLE or NOT DEFERRABLE) Inicialmente diferido o Inicialmente inmediato (INITIALLY DEFERRED or INITIALLY IMMEDIATE)
ALTER TABLE dept2 ADD CONSTRAINT dept2_id_pk PRIMARY KEY (departamento_id) DEFERRABLE INITIALLY DEFERRED SET CONSTRAINTS dept2_id_pk IMMEDIATE ALTER SESSION SET CONSTRAINTS= IMMEDIATE
INITIALLY IMMEDIATE
CREATE TABLE emp_new_sal (salary NUMBER CONSTRAINT sal_ck CHECK (salary > 100) DEFERRABLE INITIALLY IMMEDIATE, bonus NUMBER CONSTRAINT bonus_ck CHECK (bonus > 0 ) DEFERRABLE INITIALLY DEFERRED );
TABLE para desactivar una restriccin de integridad. Aplicar la opcin CASCADE para deshabilitar las restricciones dependen de la integridad.
Activar Restricciones
Activar
una restriccin de integridad actualmente desactivada en la definicin de tabla mediante el uso de la clusula ENABLE.
Restricciones en cascada
La clusula CASCADE CONSTRAINTS se utiliza junto con la
clusula DROP COLUMN. La clusula CASCADE CONSTRAINTS elimina todas las restricciones de integridad referencial que se refieren a la clave primaria y nica definidas sobe las columnas borradas. La clusula CASCADE CONSTRAINTS tambin elimina todas las restricciones multicolumnas definidas en las columnas borradas.
Restricciones en cascada
Ejemplo:
Uso de la clusula RENAME CONSTRAINT de la sentencia ALTER TABLE para cambiar el nombre de cualquier restriccin de la tabla.
ALTER TABLE marketing RENAME CONSTRAINT mktg_pk b TO new_mktg_pk;
Listado de ndices
Los ndices son creados: Automticamente
Manualmente
ndice basado en funciones esta basado en expresiones. La expresin del ndice se construye a partir de columnas de la tabla, constantes, funciones SQL, y funciones definidas por el usuario.
CREATE INDEX Nombre_Depa_Mayscula_idx ON dept2(UPPER(departamento_nombre));
La eliminacin de un ndice
Eliminar un ndice del diccionario de datos utilizando el
diccionario de datos :
en el tiempo con una sola declaracin Restaura los datos de las tablas junto con sus ndices y restricciones Permite volver a la tabla y su contenido a un cierto punto en el tiempo o SCN
SCN
Restaura una tabla para una fecha anterior en el tiempo Ventajas: Facilidad de uso, la disponibilidad y la rpida ejecucin Se realiza en el lugar Sintaxis:
FLASHBACK TABLE[schema.]table[, [schema.]table ]... TO { TIMESTAMP | SCN } expresin [ { ENABLE | DISABLE } TRIGGERS ];
Tablas externas
JUBILADO S
jub.dat
Resumen
En esta leccin, usted debe haber aprendido cmo: Aadir restricciones Crear ndices Crear ndices con la sentencia CREATE TABLE Crear la ndices basados en funciones Eliminar columnas y establecer columnas como no utilizadas (UNUSED) Realizar operaciones FLASHBACK Crear y utilizar tablas externas
Objetivos
Despus de completar esta leccin, usted debera ser capaz de hacer lo siguiente: Utilizar vistas del diccionario de datos para buscar datos de tus objetos Varias consultas de vistas del diccionario de datos
Programa 3:
Introduccin al diccionario de datos Consultar vistas del diccionario para:
Diccionario de Datos
Servidor Oracle Tablas que contienen los datos de negocio: EMPLEADOS DEPARTAMENTOS LOCACIONES TRAB_HISTORIAL ... Vistas del Diccionario de datos: DICTIONARY USER_OBJECTS USER_TABLES USER_TAB_COLUMNS ...
ALL_OBJECTS: consulta ALL_OBJECTS para ver todos los objetos a los que tiene acceso
Visualizar USER_OBJECTS
SELECT object_name, object_type, created, status FROM user_objects ORDER BY object_type;
Informacin de Tablas
USER_TABLES:
DESCRIBE user_tables
Informacin de Columnas
USER_TAB_COLUMNS:
DESCRIBE user_tab_columns
Informacin de Columnas
SELECT column_name, data_type, data_length, data_precision, data_scale, nullable FROM user_tab_columns WHERE table_name = 'EMPLEADOS';
Informacin de restricciones
USER_CONSTRAINTS describe la definiciones de las
restricciones sobre sus tablas. USER_CONS_COLUMNS se describen las columnas que son propiedad de usted y que se especifican en las restricciones.
DESCRIBE user_constraints
USER_CONSTRAINTS: Ejemplo
SELECT constraint_name, constraint_type, search_condition, r_constraint_name, delete_rule, status FROM user_constraints WHERE table_name = 'EMPLEADOS';
Consultando USER_CONS_COLUMNS
DESCRIBE user_cons_columns
Informacin de Vistas
1
DESCRIBE user_views
Informacin de Secuencias
DESCRIBE user_sequences
Confirmando Secuencias
Verificar los valores de su secuencia en la tabla
SELECT FROM
Informacin de ndices
USER_INDEXES proporciona informacin acerca de
sus ndices. USER_IND_COLUMNS describe las columnas que comprende los ndices y las columnas de los ndices de tus tablas.
DESCRIBE user_indexes
USER_INDEXES: Exemplos
a
SELECT index_name, table_name, uniqueness FROM user_indexes WHERE table_name = 'EMPLEADOS';
Consultando USER_IND_COLUMNS
DESCRIBE user_ind_columns
Informacin de Sinnimos
DESCRIBE user_synonyms
COMMENT ON TABLE empleados IS 'Informacin del empleado'; COMMENT ON COLUMN empleados.nombres IS 'nombres del empleado';
Resumen
En esta leccin, debi aprender la manera de encontrar
informacin acerca de sus objetos a travs de las siguientes vistas del diccionario:
DICTIONARY
USER_OBJECTS USER_TABLES USER_TAB_COLUMNS
USER_CONSTRAINTS
USER_CONS_COLUMNS USER_VIEWS USER_SEQUENCES
USER_INDEXES
USER_SYNONYMS
capaz de hacer lo siguiente: Manipular los datos mediante subconsultas Especificar explcitamente los valores en el INSERT y UPDATE Describir las caractersticas de multitablas INSERTs Utilice los siguientes tipos de multitablas INSERTs:
Incondicional INSERT Pivotantes INSERT Condicional INSERT ALL Condicional INSERT FIRST
Combinar filas de una tabla Seguimiento de los cambios a los datos durante un
perodo de tiempo
Programa 4:
Manipular los datos mediante subconsultas
Incondicional INSERT Pivotantes INSERT Condicional INSERT ALL Condicional INSERT FIRST
Combinar filas de una tabla Seguimiento de los cambios a los datos durante un
perodo de tiempo
cuando el valor por defecto de la columna es la deseada. Esto permite al usuario controlar donde y cuando el valor por defecto debe aplicarse a los datos. Explcita por defecto se pueden utilizar en INSERT y UPDATE.
INSERT INTO deptm3 (department_id, department_name, manager_id) VALUES (300, 'Ingeniera', DEFAULT);
DEFAULT with UPDATE:
con la subconsulta.
Tabla_Almacenamiento INSERT ALL INTO target_a VALUES(,,) INTO target_b VALUES(,,) INTO target_c VALUES(,,) SELECT FROM Tabla_Almacenamiento WHERE ;
Target_b
Subconsulta
Target_c
filas en varias tablas como parte de una nica declaracin LMD. Multitablas INSERT se utilizan en los sistemas de almacenamiento de datos para transferir datos de una o ms fuentes de funcionamiento a un conjunto de tablas de destino. Ofrecen gran mejora del rendimiento en:
LMD nico frente a mltiples INSERT ... SELECT LMD nico frente a un procedimiento para llevar a cabo mltiples inserciones usando la sintaxis if ... then
Multitablas INSERT
Sintaxis de mltiples INSERT:
INSERT [clausur_insercin_condicional] [clausur_de_insercin valor_clausur] (subconsulta)
Clausur_insercin_condicional :
[ALL] [FIRST] [WHEN condicin THEN] [clausur_de_insercin valor_clausur] [ELSE] [clausur_de_insercin valor_clausur]
SUELDO y JEFE_ID de la tabla EMPLEADOS para aquellos empleados cuyos EMPLEADO_ID es superior a 200. Introduzca estos valores en las tablas SAL_HISTORIAL and MGR_HISTORIAL utilizando un multitablas INSERT.
INSERT ALL INTO sal_historial VALUES(EMPID,HIREDATE,SAL) INTO mgr_historial VALUES(EMPID,MGR,SAL) SELECT empleado_id EMPID, hire_date HIREDATE, sueldo SAL, jefe_id MGR FROM empleados WHERE empleado_id > 200;
Empleados
Con comisin de ventas
EMP_VENTAS
5000 <= Sueldo <= 10,000 SAL_MEDIOS EMPLEADOS Otros casos SAL_ALTOS
ELSE
INTO sal_alto VALUES (empleado_id, apellidos, sueldo) SELECT empleado_id, apellidos, sueldo FROM empleados
Pivotantes INSERT
Convertir el conjunto de registros de ventas desde Base de
Jue 5000
Vie 6000
Semana 6 6
176
176
6
6
4000
5000
176
6000
Pivotantes INSERT
INSERT ALL INTO info_ventas VALUES (empleado_id, semana_id, sales_LUN) INTO info_ventas VALUES (empleado_id, semana_id, venta_MAR) INTO info_ventas VALUES (empleado_id, semana_id, venta_MIE) INTO info_ventas VALUES (empleado_id, semana_id, venta_JUE) INTO info_ventas VALUES (empleado_id, semana_id, venta_VIE) SELECT EMPLEADO_ID, semana_id, ventas_LUN, ventas_MAR, ventas_MIE, ventas_JUE, ventas_VIE FROM Almacen_datos_ventas;
Declaracin MERGE
Proporciona la capacidad condicional de actualizar,
insertar o eliminar datos en una tabla de base de datos Realiza un UPDATE si existe la fila, y un INSERT si se trata de una nueva fila:
Evita actualizaciones separadas Aumenta el rendimiento y facilidad de uso Es til en aplicaciones de almacenamiento de datos
MERGE INTO nombre_tabla alias_tabla USING (tabla|vista|sub_consulta) alias ON (join condicin) WHEN MATCHED THEN UPDATE SET col1 = col1_val, col2 = col2_val WHEN NOT MATCHED THEN INSERT (lista_columna) VALUES (columna_valores);
MERGE INTO copy_emp3 c USING (SELECT * FROM EMPLEADOS ) e ON (c.empleado_id = e.empleado_id) WHEN MATCHED THEN UPDATE SET c.nombres = e.nombres, c.apellidos = e.apellidos, ... DELETE WHERE (E.COMMISSION_PCT IS NOT NULL) WHEN NOT MATCHED THEN INSERT VALUES(e.empleado_id, e.nombres, e.apellidos, e.email, e.telefono_numero, e.fecha_contrato, e.trabajo_id, e.sueldo, e.comision_pct, e.jefe_id, e.departamento_id);
COMMIT; SELECT sueldo FROM empleados3 VERSIONS BETWEEN SCN MINVALOR AND MAXVALOR WHERE empleado_id = 107;
Resumen
En esta leccin, usted debe haber aprendido cmo: Usar declaraciones DML y control de transacciones Describir las caractersticas de multitablas INSERTs Utilizar los siguientes tipos de multitablas INSERTs:
Unconditional INSERT Pivoting INSERT Conditional INSERT ALL Conditional INSERT FIRST
Combinar filas de una tabla Manipular los datos mediante el uso de subconsultas Seguimiento de los cambios a los datos a lo largo de
un perodo de tiempo