Oracle SQL 201 - V1

Post on 18-Jan-2016

45 views 3 download

description

Curso Oracle SQL

Transcript of Oracle SQL 201 - V1

Oracle SQL 201

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

… 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)

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

Homework

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

• Demostración

Conceptos básicos sobre base de

datos Oracle

Oracle Server

Oracle Server

SQL

PL/SQLAplicación

Cliente

Resultado

Instancia y Base de Datos

ProcesosOracle

System GlobalArea

Instancia Oracle

Base de datos Oracle

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

• Restricciones• Stored

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

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”

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

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

(DML)• Transaction Control

Data Definition Language• Permite crear, modificar y eliminar

definiciones de objetos• Sentencias:

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

Data Control Language

• Permite asignar y revocar privilegios a usuarios y roles

• Sentencias:• GRANT• REVOKE

SELECT

• Permite leer datos de tablas y vistas

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

Data Manipulation Language (DML)

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

• Sentencias:• DELETE• INSERT• UPDATE• MERGE

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)

… 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)

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

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

… 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

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

… 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

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

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

… Condiciones

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

• Operadores lógicos• NOT• AND• OR

La sentencia SELECT:

Generalidades

¿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)

SELECT simples

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

Operadores de conjuntos

SQL Analítico

Subconsultas

Consultas jerárquicas

El modelo de consistencia de

lectura multiversión(MVRC)

Consistencia de lectura multiversión …

… 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

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

… 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

PL/SQL

¿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

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

Arquitectura de PL/SQL