Objetos de Esquema de Oracle Database Z052-09

6,189
-1

Published on

Describe los Objetos que se permiten dentro de un esquema de oracle database.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
6,189
On Slideshare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
150
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Objetos de Esquema de Oracle Database Z052-09

  1. 1. Oracle Database 11g Administrator I Cap. 9 Administrando Objetos de EsquemasUniversidad de El Salvadorcalderonperza@gmail.comhttp://BasesDeDatosUES.blogspot.com
  2. 2. Usuario y esquema• USUARIO => ESQUEMA• El usuario SYS es el dueño del diccionario de datos.
  3. 3. Objetos de esquematablas COMPARTEN EL MISMO NAMESPACE• Vistas NameSpace: define unSecuencias mismo grupo de objetos SCHEMA.OBJETO• SinónimosProcedimientos• FuncionesPaquetes
  4. 4. Otros objetos• INDEX• CONSTRAINTS• CLUSTERS• TRIGGERS• DATABASE LINK• Ellos cuando se crean se contruyen en namespace propio.• Si bien es posible que un indice para una tabla se llame igual que la tabla, tal situacion no es una practica adecuada.
  5. 5. TIPOS DE DATOS• Un tipo de dato es un atributo de una parte de los datos que indica algo sobre la clase de datos sobre los que se va a procesar.• Esto incluye imponer restricciones en los datos, como qué valores pueden tomar y qué operaciones se pueden realizar.
  6. 6. Tipos de dato alfanuméricos• VARCHAR2• NVARCHAR2 • Igual varchar2 pero permite caracteres unicode• CHAR
  7. 7. Tipos de datos numéricos• NUMBER• FLOAT es la versión ANSI de number• INTEGER, equivale a number con cero decimales.
  8. 8. Tipos de datos para fechas• DATE • siglo, año, mes, día, hora, minutos y segundos.• TIMESTAMP • Igual a date pero una precisión de 9 decimales en los segundos• TIMESTAMP WITH TIMEZONE• Interval Year to Month• Interval Day to Second
  9. 9. Tipos de datos para objetosgrandes• CLOB • Tamaño prácticamente ilimitado de caracteres• NCLOB• BLOB • Similar a Clob pero con datos binarios• BFILE • Puntero a un archivo almacenado en el SO• LONG • Obsoleto, sustituido por CLOB
  10. 10. CREANDO TABLAS• Create table ex_emp as select * from employees where 1=2;• Alter table ex_emp drop column email;• Alter table ex_emp drop column phone_number;• Alter table ex_emp add(fire_date date);• Drop table ex_emp;• Create table ex_emp (employee_id number(6), first_name varchar2(200));
  11. 11. CONSTRAINTS• Sirven para aplicar reglas de negocio a los datos, garantizando la integridad del modelo relacional.• TIPOS: • UNIQUE • NOT NULL • PRIMARY KEY • FOREING KEY • CHECK
  12. 12. UNIQUE CONSTRAINTS• Determina que un conjunto de columnas no puedan tener valores repetidos.• Sin embargo un Unique permite que se pueda almacenar VALORES NULOS.• Se asocia con llaves candidatas• Ejemplo: el campo DNI o DUI, dentro de una tabla Alumno donde la llave primaria es el carnet, el DUI es una llave Unique debido a que no debe ser repetido pero estudiantes menores de 18 anos no tienen aun DUI.
  13. 13. NOT NULL• Obliga a que todos los valores de una columna sean introducidos.• Dicho de otra manera, no se permite que en dicha columna se deje una tupla con ese valor como NULL
  14. 14. PRIMARY KEY• Sirve para identificar una tupla de forma unica.• La implementacion de una llave primaria es la combinacion de un UNIQUE y un NOT NULL constraint.• Se recomienda que no existan ninguna tabla sin llave primaria.
  15. 15. FOREIGN KEY• Es definida en la tabla hija, de una relacion padre e hijo• Determina una serie de columnas, cuyos valores se deben corresponder con los de la tabla padre.• Las columnas pueden llamarse distinto, pero deben poseer el mismo tipo de datos.
  16. 16. Llaves Foráneas• Si bien se permite colocar valores nulos dentro de los campos de llave foráneas, NO se recomienda pues ello puede ocasionar tuplas huérfanas.• Se aplican restricciones de integridad referencias, relacionando eventos de Eliminación y Actualización en el lado del padre • ON DELETE CASCADE
  17. 17. CHECK CONSTRAINTS• Aplican reglas sencillas a un campo en una tabla.• Ejemplo: un campo sexo en la tabla alumno, el campo es CHAR(1) y posee un check que restringe sus valores a M o F
  18. 18. DEPTDeptno: number(2,0)Dname: varchar2(20) EMP Empno: number(4,0) Ename: varchar2(20) Mgr: number(4,0) Dob: date Hiredate: date Deptono: number(2,0) Email: varchar2(30)
  19. 19. 1. create table dept(2. deptno number(2,0) constraint dept_deptno_pk primary key3. constraint dept_deptno_ck check (deptno between 10 and 90),4. dname varchar2(20) constraint dept_dname_nn not null);5. create table emp(6. empno number(4,0) constraint emp_empno_pk primary key,7. ename varchar2(20) constraint emp_ename_nn not null,8. mgr number (4,0) constraint emp_mgr_fk references emp (empno),9. dob date,10. hiredate date,
  20. 20. 1. deptno number(2,0) constraint emp_deptno_fk references dept(deptno)2. on delete set null,3. email varchar2(30) constraint emp_email_uk unique,4. constraint emp_hiredate_ck check (hiredate >= dob + 365*16),5. constraint emp_email_ck6. check ((instr(email,@) > 0) and (instr(email,.) > 0)));
  21. 21. Índices• Los indices tienen dos funciones, para implementar llaves primarias y unicas, y para proveer rendimiento.• Llaves foraneas se implementan por medio de indices, pero los indices existen en la tabla padre.• Los indices se crean automaticamente.• Si no se posee un indice, se realizara un FULL TABLE SCAN.• Son de vital importancia para la clausula WHERE de SQL
  22. 22. Tipos de Indices• B*Tree. • Es el tipo usado por defecto • B es por Balance • El nodo principal de 3 puntos a muchos nodos en el segundo nivel • El puntero a una fila es el ROWID• Bitmap • Son poco utilizados, pues soportan baja cardinalidad.
  23. 23. OPCIONES DE INDICES• UNIQUE: este no permite valores duplicados en el indice.• REVERSE: realiza una indexacion al reves ej: «JUAN» «NAUJ»• COMPOSITE: es construido por dos o mas columnas• COMPRESSED
  24. 24. Creacion de indices• CREATE [UNIQUE | BITMAP ] INDEX NombreIndice ON NombreTabla (Columna1, columna2) ;• Por defecto se crea el indice non-unique, no-compressed, no- reverse del tipo B-Tree.
  25. 25. TABLAS TEMPORALES• Una tabla temporal tiene una estructura que es visible a todas las sesiones, pero las tuplas son privadas, y vistas solo por la sesion que las inserta.• CREATE GLOBAL TEMPORARY TABLE TablaTemporal (Columna1 DATATYPE, Columna2 DATATYPE) [ON COMMIT {DELETE | PRESERVE} ROWS];
  26. 26. Vista• Para un usuario, una vista es lo mismo que una tabla.• Las instrucciones DML no funcionan sobre una vista.• VENTAJAS • Seguridad • Simpleza • Prevencion de errores • Facilidad de datos • Rendimiento
  27. 27. Mejorando la Seguridad• Observe la tabla HR.employees, contiene informacion delicada, sin embargo el depto de finanzas puede requerir alguna informacion, para ello:• CREATE VIEW hr.emp_fin AS select hire_date, job_id, salary, commission_pct, department_id from hr.employees;
  28. 28. Simpleza• Se vuelve mas sencillo consultar una vista ya elaborada, que codificar nuestro SQL• CREATE VIEW dept_sal as select d.department_name, sum(e.salary) from departments d left outer join employees e on d.department_id=e.department_id group by department_name;• Select * from dept_sal;
  29. 29. Prevenir Errores • Dado que las vistas no son actualizables, al brindar acceso a las mismas garantizamos la protección sobre los datos reales. Facilidad de datos • La información en las tablas esta normalizada, por lo que dificulta la lectura y entendimiento de la misma.
  30. 30. Creando vistas• CREATE [OR REPLACE] VIEW• [Schema.]VistaNombre• AS• Subconsulta
  31. 31. SECUENCIA• Es una estructura para generar valores enteros únicos.• Son de gran utilidad para crear valores de llaves primarias.
  32. 32. Sintaxis • CREATE SEQUENCE NombreSecuencia Máximo lael incremento Indica para valor que generación • [INCREMENT BY numero] puede siguiente del tomar la secuencia en ascenso numero • [START WITH numero] antes de generar un error o reiniciar conteo • Valor inicial de la [MAXVALUE numero | NONMAXVALUE] por defecto 1 Controla el secuencia, • [MINVALUE numero | NOMINVALUE] comportamiento de MAXVALUE y Por rendimiento oracle • [CYCLE | NOCYCLE ] MINVALUE, por defecto genera un cache de la secuencia de 20 parapero mostrara un error, los • [CACHE number | NOCACHE] si CYCLE es siguientes valores especificado reiniciara • [ORDER | NOORDER]; la secuencia Solo para uso en CLUSTER, order obliga a todas las instancias del cluster a coordinar el incremento en la secuencia
  33. 33. Utilizando secuencias• Cada sesión selecciona su propio valor con NEXTVAL (columna ficticia de la secuencia)• Nextval es globalmente unico, para cada sesion se genera uno diferente.• CURRVAL es constante para una sesion, hasta que se selecciona NEXTVAL nuevamente.• No se puede invocar CURRVAL hasta despues de haber invocado NEXTVAL
  34. 34. Ejemplo• Create sequence order_seq start with 10;• Create sequence line_seq start with 10;• Insert into orders(order_number, order_date, customer_number) values(order_seq.nextval, sysdate,‘1000’);• Insert into order_line(order_number, line_number, item_number, quantity) values (order_seq.currval, line_seq.nextval,’A111’, 1);• Commit;
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×