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
Top Related