Características Objeto Relacionales en Oracle

Slides:



Advertisements
Presentaciones similares
SQL Sigla del nombre “Structured Query Language”.
Advertisements

integridad referencial
Insercion de datos..
LENGUAJE ESTRUCTURADO DE CONSULTA “SQL”
BASE DE DATOS OBJETO RELACIONAL
Fernando Velasco
Por: Ronald Toscano Pretelt
Maestría en Bioinformática Bases de Datos y Sistemas de Información Otros objetos de Base de Datos Ing. Alfonso Vicente, PMP
01/12/07Seminario de Bases de Datos1 Características Objeto Relacionales en Oracle 10G* * Tomado del curso de Francisco Moreno.
01/12/07Seminario de Bases de Datos1 Características Objeto Relacionales en Oracle 10G* * Tomado del curso de Francisco Moreno.
Julio Pacheco SQL SERVER 2005 XML APRENDIENDO CON EJEMPLOS.
EL LENGUAJE ESTÁNDAR SQL
PL/SQL Francisco Moreno Universidad Nacional.
Francisco Moreno Bases de Datos II Universidad Nacional
Características Objeto Relacionales en Oracle
PL/SQL Francisco Moreno Universidad Nacional.
EXPLAIN PLAN Cómo leer los resultados del EXPLAIN PLAN
Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional.
Sistema de gestión de las bases de datos (SGBD).
UNITA - IBARRA BLOQUES PL-SQL SUBPROGRAMAS Paulina Guevara.
Características Objeto Relacionales en Oracle
Unidad 3 Lenguaje SQL Contenidos Que es SQL ? Estructura de SQL
Lenguaje Estructurado de Consultas (Structured Query Language – SQL)
PL/SQL Francisco Moreno Universidad Nacional.
Contenido de la sesión 1 Bases de Datos Relacionales Lenguaje SQL
Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional.
MySQL M.C. Pedro Bello López.
Mini curso: Inteligencia de negocios (Bodega y Minería de Datos) aplicación práctica Mauro Callejas Cuervo Ecuador, Mayo 2014 Sesión 2 – TALLER 2 Grupo.
…Tablas DDL.
Lenguaje SQL (Structured Query Language)
SQL Lenguaje de consulta estructurado
PL/SQL Francisco Moreno Universidad Nacional. Introducción al PL/SQL ¿Por qué PL/SQL? A pesar de que SQL tiene mecanismos de control condicional (cláusula.
PL/SQL Francisco Moreno Universidad Nacional.
PL/SQL Francisco Moreno Universidad Nacional.
Subconsultas Avanzadas
Componentes sintácticos
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
Dr. Mario Rossainz López Aplicaciones WEB Primavera 2015.
Laboratorio de Bases de datos
PL/SQL Francisco Moreno Universidad Nacional.
PL/SQL Francisco Moreno Universidad Nacional.
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
SQL (Structured Query Language / Lenguaje de consulta estructurado)‏
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
Características Objeto Relacionales en Oracle
Características Objeto-Relacionales en Oracle Francisco Moreno Universidad Nacional.
Consultas SQL (Base de Datos)
Structured Query Language (Lenguaje Estructurado de Consultas)
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
SQL: DDL Francisco Moreno. SQL: DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la BD Tipos de objetos: - Tablas: corresponden a las.
Expresiones algebraicas equivalentes
Más ejemplos en SQL Francisco Moreno. S sn snombre situacion ciudad S1 Salazar 20 Londres S2 Jaramillo 10 París S3 Bernal30 París S4 Caicedo 20 Londres.
SQL Sigla del nombre “Structured Query Language”.
Base de Datos I. SQL es el lenguaje estándar para trabaja con base de datos relacionales. MySQL, el sistema de gestión de bases de datos SQL Open Source.
Consultas SQL. SQL SQL es un lenguaje de consulta estructurado (Structured Query Languague). Se utiliza para: Eliminar Modificar Consultar La base de.
Base de datos Francisco Castro. Creación de una tabla drop table TABLA cascade constraints; /*==============================================================*/
Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional.
HINTS ¿Cómo afectar el plan de ejecución? Por defecto, el SGBD tomará en cuenta el camino de ejecución (Execution Path) determinado por el optimizador.
Comandos DDL Los comandos DDL son las siglas de Data Definition Language, y se corresponde con el conjunto de órdenes que permiten definir las estructuras.
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
Bases de Datos SQL.
UNIVERSIDAD LATINA IV. CONSULTAS AVANZADAS CON BASES DE DATOS. E.I. L.E. Prof. Ramón Castro Liceaga.
SQL: DDL.
6 Triggers ORACLE - II Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
DLM Transact SQL Sesión II Recuperación de información.
Características Objeto Relacionales en Oracle
SQL: structured Query Language
Características Objeto Relacionales en Oracle
Transcripción de la presentación:

Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional

Tipos y Refs Ejemplo: Sean los tipos: CREATE TYPE dir_tipo AS OBJECT( dir VARCHAR2(10), ciudad VARCHAR2(20) ); / CREATE TYPE persona_tipo AS OBJECT( cod NUMBER(10), hv XMLTYPE,--hoja de vida p_dir dir_tipo

CREATE TYPE vendedor_tipo AS OBJECT( territorio VARCHAR2(10), v_datos persona_tipo ); / dir_tipo persona_tipo Usado por vendedor_tipo Usado por ¿Hay aquí herencia?

Creación de una tabla tipada: CREATE TABLE vendedor OF vendedor_tipo; ALTER TABLE vendedor ADD PRIMARY KEY(v_datos.cod);

Inserción de un vendedor: INSERT INTO vendedor VALUES ('Norte', persona_tipo(234, XMLTYPE('<Datos> <Nom>Emma</Nom> <Sal>18</Sal> </Datos>'), dir_tipo('Cl 56', 'Bogota') ) );

Otros dos vendedores: INSERT INTO vendedor VALUES ('Sur', persona_tipo(666, XMLTYPE('<Datos> <Nom>Geri</Nom> <Sal>20</Sal> </Datos>'), dir_tipo('Cl 666', 'Cali'))); ('Sur', persona_tipo(611, XMLTYPE('<Datos> <Nom>Mel</Nom> <Sal>50</Sal> </Datos>‘), dir_tipo('Cl 26', 'Bogota')));

Consultas: 1. Seleccionar el nombre, la dirección (dir) y el territorio de todos los vendedores: SELECT EXTRACTVALUE(v.v_datos.hv,'/Datos/Nom') AS nom, v.v_datos.p_dir.dir AS direc, v.territorio AS territ FROM vendedor v;

2. Seleccionar todos los datos personales de los vendedores de Bogotá. SELECT v.v_datos AS datos_personales FROM vendedor v WHERE v.v_datos.p_dir.ciudad = 'Bogota';

3. ¿Cuántos vendedores hay en cada ciudad? SELECT v.v_datos.p_dir.ciudad AS city, COUNT(*) AS cuantos FROM vendedor v GROUP BY v.v_datos.p_dir.ciudad;

Supóngase que cada vendedor puede estar encargado de muchos clientes y un cliente debe ser manejado por un único vendedor: El identificador único es cod CLIENTE VENDEDOR encargado de #id_cliente *nom °territorio v_datos manejado por El manager del cliente es un vendedor

¿Cómo se puede implementar CLIENTE?: - Una tabla con una columna tipada - Crear un tipo y luego la tabla tipada Tipo de las columnas de CLIENTE: - id_cliente  Numérico - nom  Cadena de caracteres - manager  En el modelo relacional sería una clave foránea. En el modelo objeto-relacional es un REF.

Se va a crear un tipo cliente_tipo y luego una tabla tipada: CREATE TYPE cliente_tipo AS OBJECT( id_cliente NUMBER(10), nom VARCHAR2(20), manager REF vendedor_tipo ); / CREATE TABLE cliente OF cliente_tipo( id_cliente PRIMARY KEY, SCOPE FOR (manager) IS vendedor, manager NOT NULL); Puntero

¿Cómo se inserta un cliente? a) Mediante un INSERT basado en un SELECT: INSERT INTO cliente SELECT 129, 'Lisa', REF(v) FROM vendedor v WHERE v.v_datos.cod = 234; Obtiene el puntero del vendedor con cod 234

b) Mediante un INSERT con VALUES, el cual incluye un SELECT para obtener el REF: INSERT INTO cliente VALUES (145, 'Adam', (SELECT REF(v) FROM vendedor v WHERE v.v_datos.cod = 666 ) ); INSERT INTO cliente VALUES (111, 'George', (SELECT manager FROM cliente WHERE id_cliente = 145) ); O asignándole el de otro cliente Otra forma de obtener el puntero de un vendedor

SELECT id_cliente AS codigo, DEREF(manager) AS datos_manager Consultas: 1. Imprimir el código de todos los clientes y todos los datos de su manager. SELECT * FROM cliente; SELECT id_cliente AS codigo, DEREF(manager) AS datos_manager En SQL*Plus no imprime los datos del manager, sino su puntero (en otros productos sí salen los datos) Función de “dereferenciamiento“

2. Imprimir la cédula de cada cliente y la cédula de su manager: SELECT id_cliente, DEREF(manager).v_datos.cod AS cod_manager FROM cliente c; --También funciona sin el DEREF: c.manager.v_datos.cod AS cod_manager

DEREF fue concebido para “dereferenciar” todos los atributos de la tupla objeto referenciada Se puede acceder a cada atributo de una tupla referenciada con o sin DEREF En conclusión: DEREF es una forma más corta de traer todos los atributos de una tupla objeto referenciada

3. Imprimir la cédula de cada manager y el número de clientes que este maneja: SELECT c.manager.v_datos.cod AS codman, COUNT(*) AS representados FROM cliente c GROUP BY c.manager.v_datos.cod; --También se puede agrupar por el puntero: SELECT MAX(c.manager.v_datos.cod) AS codman, GROUP BY manager; --¿Por qué se requiere una función como MAX aquí?

Esta consulta también se puede resolver desde la tabla comisionista: SELECT v.v_datos.cod AS codman, (SELECT COUNT(*) FROM cliente WHERE manager = REF(v)) AS representados FROM vendedor v; Sin embargo, nótese que desde el punto de vista de resultados puede llegar a haber diferencias con la consulta anterior…

Ejercicios: Imprimir la cédula de los vendedores que no manejan clientes. Confrontar los ejemplos anteriores contra la versión relacional. Modelar la siguiente situación mediante REFs: Un país tiene departamentos y un departamento tiene municipios. No usar claves foráneas. Imprimir el nombre de cada municipio y el nombre del departamento y el país al que pertenece el municipio.