Oracle SQL 201 - V1

46
Oracle SQL 201

description

Curso Oracle SQL

Transcript of Oracle SQL 201 - V1

Page 1: Oracle SQL 201 - V1

Oracle SQL 201

Page 2: Oracle SQL 201 - V1

Contenido …

• Conceptos básicos• El servidor de base de datos Oracle• Objetos de base de datos• El diccionario de datos• Familias de sentencias SQL• Tipos de datos en Oracle• Operadores, funciones, expresiones y

condiciones

Page 3: Oracle SQL 201 - V1

… Contenido

• La sentencia SELECT• Formas básicas• SQL analítico• Uso de subconsultas (subqueries)• Consultas jerárquicas

• Manejo de transacciones y el modelo de consistencia de lectura multiversión de Oracle (MVRC)

Page 4: Oracle SQL 201 - V1

Material de referencia

• Oracle Database Concepts• Oracle Database SQL Language

Reference• Oracle Database Reference• AskTom

• http://asktom.oracle.com

• Oracle Technology Network• http://otn.oracle.com

Page 5: Oracle SQL 201 - V1

Homework

• Explicación de 10’ por tema• Qué es, en qué consiste• Para qué puede servir• Ejemplos de aplicación

• Demostración

Page 6: Oracle SQL 201 - V1

Conceptos básicos sobre base de

datos Oracle

Page 7: Oracle SQL 201 - V1

Oracle Server

Oracle Server

SQL

PL/SQLAplicación

Cliente

Resultado

Page 8: Oracle SQL 201 - V1

Instancia y Base de Datos

ProcesosOracle

System GlobalArea

Instancia Oracle

Base de datos Oracle

Page 9: Oracle SQL 201 - V1

Objetos de base de datos• Tablas• Vistas• Índices• Secuencias• Sinónimos• Usuarios• Roles• Privilegios

• Restricciones• Stored

procedures• Stored functions• Packages• Triggers• Tablespaces• Etc.

Page 10: Oracle SQL 201 - V1

El usuario SYS

• Es el usuario propietario de los objetos del sistema

• Tiene privilegios para realizar cualquier operación en la base de datos

• Es el usuario de base de datos cuando se realiza una conexión “AS SYDBA”

Page 11: Oracle SQL 201 - V1

El diccionario de datos

• Es un conjunto de vistas que permiten leer la definición de cualquier objeto de base de datos utilizando el lenguaje SQL

• Hay tres grupos de vistas del diccionario:Vistas Contienen información sobre

USER_*Objetos cuyo propietario es el usuario conectado

ALL_*Objetos sobre los que el usuario conectado tiene privilegios

DBA_* Todos los objetos de la base de datos

Page 12: Oracle SQL 201 - V1

Familias de sentencias SQL• Data Definition Language (DDL)• Data Control Language (DCL)• SELECT• Data Manipulation Language

(DML)• Transaction Control

Page 13: Oracle SQL 201 - V1

Data Definition Language• Permite crear, modificar y eliminar

definiciones de objetos• Sentencias:

• CREATE• ALTER• DROP• RENAME• TRUNCATE• COMMENT

Page 14: Oracle SQL 201 - V1

Data Control Language

• Permite asignar y revocar privilegios a usuarios y roles

• Sentencias:• GRANT• REVOKE

Page 15: Oracle SQL 201 - V1

SELECT

• Permite leer datos de tablas y vistas

• La operación más frecuente en una base de datos

Page 16: Oracle SQL 201 - V1

Data Manipulation Language (DML)

• Permite modificar datos de tablas de usuario (no del sistema)

• Sentencias:• DELETE• INSERT• UPDATE• MERGE

Page 17: Oracle SQL 201 - V1

Transaction Control …

• Una transacción es un conjunto de una o más modificaciones a los datos (sentencias DML)

• Cada transacción debe tener cuatro características:• Atomicidad: “todo o nada”• Consistencia: que se cumplan las reglas de

integridad definidas en la base de datos• Aislamiento: las transacciones incompletas no

son visibles para otras transacciones• Durabilidad: la transacción se hace permanente

cuando sólo después de ser confirmada (COMMIT)

Page 18: Oracle SQL 201 - V1

… Transaction Control

• Sentencias:• COMMIT• ROLLBACK• SAVEPOINT

• Cuando se ejecuta una sentencia DDL o una sentencia DCL, la transacción se confirma de manera implícita (como si se hubiera hecho COMMIT)

Page 19: Oracle SQL 201 - V1

Tipos de datos en Oracle• CHAR y NCHAR• VARCHAR2 y NVARCHAR2• NUMBER• DATE• TIMESTAMP• BLOB, CLOB, NCLOB y BFILE• ROWID• Tipos definidos por usuario

Page 20: Oracle SQL 201 - V1

Operadores …

• Existen operadores unarios y binarios• Los unarios tienen sólo un

argumento• Los binarios tienen dos argumentos

• Tener en cuenta la precedencia (orden de aplicación) de los operadores

• Revisar Oracle Database SQL Language Reference 11g Release 2, capítulo 4

Page 21: Oracle SQL 201 - V1

… Operadores

• Aritméticos• + y – (identidad y negación, unarios)• +, -, *, / (operaciones aritméticas, binarios)

• Concatenación de cadenas de caracteres (binario)• ||

• De conjuntos (binarios)• UNION• UNION ALL• MINUS• INTERSECT

• Si el operando es NULL, el resultado es NULL, excepto con el operador de concatenación

Page 22: Oracle SQL 201 - V1

Funciones …

• Hay funciones escalares, de totalización o resumen (aggregate) y analíticas

• Muchas funciones escalares ofrecen versiones sobrecargadas• Familias de funciones con el mismo

nombre y variación en los argumentos que aceptan

• Revisar Oracle Database SQL Language Reference 11g Release 2, capítulo 5

Page 23: Oracle SQL 201 - V1

… Funciones

• Escalares• Numéricas• De caracteres• De fecha y hora• De comparación• De conversión• Para codificar y decodificar• Para manejar valores nulos• De ambiente e identificación

• De totalización• Analíticas

Page 24: Oracle SQL 201 - V1

Expresiones

• Una expresión es una combinación de uno o más valores, operadores y funciones, que da como resultado un valor

• En general, las expresiones pueden reemplazar un valor del tipo adecuado

• Hay expresiones• Simples y compuestas• CASE

• Revisar Oracle Database SQL Language Reference 11g Release 2, capítulo 6

Page 25: Oracle SQL 201 - V1

Condiciones …

• En SQL, se manejan tres valores lógicos:• VERDADERO (TRUE)• FALSO (FALSE)• NULO (NULL)

• Nulo significa DESCONOCIDO• No significa vacío

• Las tablas de verdad de las operaciones lógicas (AND, OR, NOT), se deben ajustar de acuerdo con esta definición

• Tener en cuenta la precedencia (orden de aplicación) de los operadores

• Revisar Oracle Database SQL Language Reference 11g Release 2, capítulo 7

Page 26: Oracle SQL 201 - V1

… Condiciones

• Operadores de comparación• >, >=, =, !=, <>, ^=,<, <=• IS [NOT] NULL• LIKE• BETWEEN• IN• EXISTS

• Operadores lógicos• NOT• AND• OR

Page 27: Oracle SQL 201 - V1

La sentencia SELECT:

Generalidades

Page 28: Oracle SQL 201 - V1

¿Qué es una base de datos relacional?• Elementos

• Atributos o columnas• Tuplas o filas• Relaciones o tablas

• Operaciones relacionales• SELECT• PROJECT• JOIN

• Utiliza un lenguaje declarativo para manejar los datos (p. ej. SQL)

Page 29: Oracle SQL 201 - V1

SELECT simples

• Cláusulas• SELECT• FROM• WHERE• GROUP BY• ORDER BY

Page 30: Oracle SQL 201 - V1

Operadores de conjuntos

Page 31: Oracle SQL 201 - V1
Page 32: Oracle SQL 201 - V1

SQL Analítico

Page 33: Oracle SQL 201 - V1
Page 34: Oracle SQL 201 - V1

Subconsultas

Page 35: Oracle SQL 201 - V1
Page 36: Oracle SQL 201 - V1

Consultas jerárquicas

Page 37: Oracle SQL 201 - V1
Page 38: Oracle SQL 201 - V1

El modelo de consistencia de

lectura multiversión(MVRC)

Page 39: Oracle SQL 201 - V1

Consistencia de lectura multiversión …

Page 40: Oracle SQL 201 - V1

… Consistencia de lectura multiversión• Quienes leen no bloquean a quienes

modifican• Quienes modifican no bloquean a quienes

leen• Se produce un bloqueo a nivel de fila cuando

se intenta modificar el mismo registro a la vez, en transacciones diferentes

• Consistencia a nivel de sentencia• Siempre se cumple, es el modelo preferido• El resultado de una consulta se obtiene en

referencia al mismo momento en el tiempo (inicio de la sentencia)

• Consistencia a nivel de transacción• Opcional, se debe declarar la transacción como

SERIALIZABLE• El resultado de todas las consultas en la misma

transacción corresponden al mismo momento en el tiempo

Page 41: Oracle SQL 201 - V1

Checklist …

• Concepto de parsing• Leer e interpretar planes de ejecución• Arquitectura general de Oracle

Database• Mecanismo de consistencia de datos y

undo• Diferencia entre CBO y RBO• Diferencia entre los modos del

optimizador FIRST_ROWS y ALL_ROWS• Concepto de estadísticas del

optimizador• Diferencia entre PIO y LIO, cómo

aparecen éstos en los reportes de trace

Page 42: Oracle SQL 201 - V1

… Checklist

• Métodos de acceso en planes de ejecución• Table access full o full table scan (FTS)• Full index scan• Index range scan, Index unique Scan• Table access by index rowid

• Cuándo conviene Full Table Scan y cuándo acceso por índice

• Diferencia entre nested loops join, sort-merge join y hash join

• Diferencia entre índices B*Tree e índices bitmap

Page 43: Oracle SQL 201 - V1

PL/SQL

Page 44: Oracle SQL 201 - V1

¿Qué es PL/SQL?

• Lenguaje propietario de Oracle• Extensión procedimental a SQL

• Variables• Bucles• Condicionales• Manejo de excepciones• Tipos de datos definidos por el

desarrollador

Page 45: Oracle SQL 201 - V1

Ventajas PL/SQL

• Manejo de seguridad• Opciones para control de acceso:

AUTHID CURRENT_USER y AUTHID DEFINER

• Encriptación de código

• Enmascaramiento de información• Separación de interfaz e

implementación• Optimización de tráfico en la red

Page 46: Oracle SQL 201 - V1

Arquitectura de PL/SQL