Cuadernillo Victor Medrano

Embed Size (px)

Citation preview

  • 8/19/2019 Cuadernillo Victor Medrano

    1/17

      UNIVERSIDAD TECNOLÓGICA

    DE CHETUMAL

    INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

    PROFESOR:

    M.S.I. FRANCISCO HERRERA

    ASIGNATURA:

    BASE DE DATOS

    TRABAJO:CUADERNILLO DE SCRIPTS

    PRESENTA:VÍCTOR HUGO MEDRANO ORTEGÓN

    CHETUMAL, QUINTANA ROO, 03 DE MARZO DE 0!"

  • 8/19/2019 Cuadernillo Victor Medrano

    2/17

    ÍNDICE

    MANEJO DE VISTAS.............................................................................................3

    SUBCONSULTAS..................................................................................................6SINÓNIMOS.......................................................................................................... 9

    JUSTIFICACIÓN, MEJORES PR#CTICAS UTILIZADAS..........................................12

    BUENAS PR#CTICAS USADAS PARA VISTAS..................................................12

    BUENAS PR#CTICAS USADAS PARA SUBCONSULTAS....................................13

    BUENAS PR#CTICAS USADAS PARA SINONIMOS............................................14

    REFERENCIAS...................................................................................................14

  • 8/19/2019 Cuadernillo Victor Medrano

    3/17

    MANEJO DE VISTAS

    Una vista es un objeto. Una vista es una alternativa para mostrar datos de varias

    tablas; es como una tabla virtual que almacena una consulta. Los datos accesibles

    a través de la vista no están almacenados en la base de datos, en la base de

    datos se guarda la definición de la vista y no el resultado de ella.

    Entonces, una vista almacena una consulta como un objeto para utiliarse

    posteriormente. Las tablas consultadas en una vista se llaman tablas base. En

    general, se puede dar un nombre a cualquier consulta y almacenarla como una

    vista.

    Una vista suele llamarse también tabla virtual porque los resultados que retorna y

    la manera de referenciarlas es la misma que para una tabla.

    Las vistas permiten!

    • simplificar la administración de los permisos de usuario! se pueden dar al

    usuario permisos para que solamente pueda acceder a los datos a través

    de vistas, en lugar de concederle permisos para acceder a ciertos campos,

    as" se protegen las tablas base de cambios en su estructura.

    • mejorar el rendimiento! se puede evitar tipear instrucciones repetidamente

    almacenando en una vista el resultado de una consulta compleja que

    incluya información de varias tablas.

    #odemos crear vistas con! un subconjunto de registros y campos de una tabla;

    una unión de varias tablas; una combinación de varias tablas; un subconjunto deotra vista, combinación de vistas y tablas.

    Una vista se define usando un $select$.

    La sinta%is básica para crear una vista es la siguiente!

     CREATE VIEW NOMBREVISTA

    AS SUBCONSULTA;

    El contenido de una vista se muestra con un $select$!

     SELECT * FROM NOMBREVISTA;

    3

  • 8/19/2019 Cuadernillo Victor Medrano

    4/17

    VISTA 1

    CREATE VIEW VISTA_CLIENTES

    AS SELECT"CLI_ID","CLI_NOMBRE","CLI_DIRECCION","CLI_CIUDAD","CLI_DEPARTAMENTO","CLI_TELEFONO","EMP_ID","CLI_CREDITOLIMITE","CLI_OBSERVACIONES"

    FROM CLIENTES;

    VISTA 2

    CREATE VIEW VISTA_PRECIOS

    AS SELECT

    "PRO_ID","PRE_FECAINICIO","PRE_FECAFIN","PRE_ESTANDAR","PRE_MINIMO"

    FROM PRECIOS;

    VISTA 3

    CREATE VIEW VISTA_DEPARTAMENTOS

    4

  • 8/19/2019 Cuadernillo Victor Medrano

    5/17

    AS SELECT

    "DEP_ID","DEP_NOMBRE","DEP_LOCALI!ACION"

    FROM DEPARTAMENTOS;

    VISTA 4

    CREATE VIEW VISTA_ORDENES

    AS SELECT"ORD_ID","ORD_FECA","ORD_PLANCOMISION","CLI_ID","ORD_FECAENTREA","ORD_TOTAL"

    FROM ORDENES;

    VISTA 5

    CREATE VIEW VISTA_PRODUCTOSPORORDEN

    AS SELECT"ORD_ID","PPO_ID","PRO_ID","PPO_PRECIOACTUAL","PPO_CANTIDAD","PPO_TOTALLINEA"

    FROM PRODUCTOSPORORDEN;

    #

  • 8/19/2019 Cuadernillo Victor Medrano

    6/17

    VISTA 6

    CREATE VIEW VISTA_RADOSDESALARIO

    AS SELECT

    "RA_ID","RA_LIMITEINFERIOR","RA_LIMITESUPERIOR"

    FROM RADOSDESALARIO;

    SUBCONSULTAS

    Una subconsulta &subquery' es una sentencia $select$ anidada en otra sentencia

    $select$, $insert$, $update$ o $delete$ &o en otra subconsulta'.

    Las subconsultas se emplean cuando una consulta es muy compleja, entonces se

    la divide en varios pasos lógicos y se obtiene el resultado con una (nica

    instrucción y cuando la consulta depende de los resultados de otra consulta.

    )eneralmente, una subconsulta se puede reemplaar por combinaciones y estas

    (ltimas son más eficientes.

    Las subconsultas generalmente se incluyen entre paréntesis. #uede *aber 

    subconsultas dentro de subconsultas. )eneralmente las subconsultas se colocanen la cláusula $+*ere$.

    Una subconsulta puede retornar!

    • un solo valor,

    • una lista de valores de una sola columna,

    • un conjunto de registros de varios campos.

    6

  • 8/19/2019 Cuadernillo Victor Medrano

    7/17

    #odemos averiguar si un valor de la consulta e%terna pertenece o no al conjunto

    devuelto por una subconsulta &$in$, $not in$', si es mayor, menor o igual a todos

    &$all$' o a algunos valores &$some$, $any$' del conjunto devuelto.

    e pueden emplear subconsultas!

    • en lugar de una e%presión, siempre que devuelvan un solo valor o una listade valores.

    • que retornen un conjunto de registros de varios campos en lugar de una

    tabla o para obtener el mismo resultado que una combinación &join'.

    -ay varios tipos básicos de subconsultas!

    • las que retornan un solo valor escalar que se utilia con un operador de

    comparación o en lugar de una e%presión.

    • las que retornan una lista de valores, se combinan con $in$, o los

    operadores $any$, $some$ y $all$.

    • los que testean la e%istencia con $e%ists$.

    SUBCONSULTA 1

    SELECT CLIENTES.CLI_ID, CLIENTES.CLI_NOMBRE,CLIENTES.CLI_DEPARTAMENTO,

      $SELECT ORDENES.ORD_TOTAL

    FROM ORDENES

    WERE CLI_ID% 1#&

    FROM CLIENTES

    WERE CLI_ID % 1#;

    '

  • 8/19/2019 Cuadernillo Victor Medrano

    8/17

    SUBCONSULTA 2

    SELECT CLIENTES.CLI_NOMBRE, CLIENTES.CLI_DIRECCION,CLIENTES.CLI_CIUDAD,

      $SELECT DEPARTAMENTOS.DEP_NOMBRE

    FROM DEPARTAMENTOS

      WERE DEP_ID% 3(&

    FROM CLIENTES

    WERE CLI_ID % 1(;

    SUBCONSULTA 3

    SELECT DEPARTAMENTOS.DEP_NOMBRE, DEPARTAMENTOS.DEP_LOCALI!ACION,

      $SELECT EMPLEADOS.EMP_NOMBRE

      FROM EMPLEADOS

      WERE EMP_ID % 11((&

    FROM DEPARTAMENTOS

    WERE DEP_ID % 1(;

    )

  • 8/19/2019 Cuadernillo Victor Medrano

    9/17

    SUBCONSULTA 4

    SELECT EMPLEADOS.EMP_NOMBRE, EMPLEADOS.EMP_CARO,EMP_EFE,

      $SELECT DEPARTAMENTOS.DEP_LOCALI!ACION

      FROM DEPARTAMENTOS

      WERE DEP_ID % 1(&

    FROM EMPLEADOS

    WERE EMP_ID % 1(((;

    SUBCONSULTA 5

    SELECT PRODUCTOS.PRO_ID, PRODUCTOS.PRO_NOMBRE,

      $SELECT ORDENES.ORD_FECA

      FROM ORDENES

      WERE ORD_ID % 4#2&

    FROM PRODUCTOS

    WERE PRO_ID % 3(1((2(1;

    SUBCONSULTA 6

    SELECT PRODUCTOSPORORDEN.PPO_PRECIOACTUAL,PRODUCTOSPORORDEN.PPO_CANTIDAD,

      $SELECT PRODUCTOS.PRO_NOMBRE

      FROM PRODUCTOS

    9

  • 8/19/2019 Cuadernillo Victor Medrano

    10/17

      WERE PRO_ID % 3(1((2(2&

    FROM PRODUCTOSPORORDEN

    WERE ORD_ID % 4#2;

    SINÓNIMOS

    Un sinónimo en racle, es una representación local o p(blica de un objeto

    perteneciente a un esquema. irve para poder *acer referencia a aquel objeto sin

    tener que anteponer su esquema. Un sinónimo p(blico puede ser visto por todos

    los usuarios, pero uno privado, sólo por el usuario que lo creó.

    #ara poder crear un sinónimo, el esquema o usuario que lo crea, tiene que tener 

    alguno o ambos privilegios de los siguientes!

    CREATE S+NON+M

    CREATE PUBLIC S+NON+M

    #ara el caso de un sinónimo simple &no p(blico', el usuario tiene que tener 

    privilegio sobre el objeto al que le creará el sinónimo. #or ejemplo, si es una tabla,

    deberá tener al menos privilegio de select, insert, delete o update sobre la misma.

    SINONIMO 1

    CREATE S+NON+M

    "DEMO"."SINOCLI"

    FOR

    "DEMO"."CLIENTES";

    1(

  • 8/19/2019 Cuadernillo Victor Medrano

    11/17

    SINONIMO 2

    CREATE S+NON+M

    "DEMO"."SINODEPA"

    FOR

    "DEMO"."DEPARTAMENTOS";

    11

  • 8/19/2019 Cuadernillo Victor Medrano

    12/17

    SINONIMO 3

    CREATE S+NON+M

    "DEMO"."SINOBONI"

    FOR"DEMO"."BONIFICACIONES";

    *-/- 0 -0 $5-7-&

    SINONIMO 4

    CREATE S+NON+M

    "DEMO"."SINOEMPL"

    FOR

    "DEMO"."EMPLEADOS";

    12

  • 8/19/2019 Cuadernillo Victor Medrano

    13/17

    SINONIMO 5

    CREATE S+NON+M

    "DEMO"."SINORADESAL"

    FOR

    "DEMO"."RADOSDESALARIO";

    SINONIMO 6

    CREATE S+NON+M

    "DEMO"."SONOPRE"

    13

  • 8/19/2019 Cuadernillo Victor Medrano

    14/17

    FOR

    "DEMO"."PRECIOS";

    JUSTIFICACIÓN, MEJORES PR#CTICAS UTILIZADAS.

    BUENAS PR#CTICAS USADAS PARA VISTAS

    • Los nombres para vistas deben seguir las mismas reglas que cualquier 

    identificador. #ara distinguir una tabla de una vista podemos fijar una

    convención para darle nombres, por ejemplo, colocar el sufijo /vista0 y luego el

    nombre de las tablas consultadas en ellas.

    • Los campos y e%presiones de la consulta que define una vista deben tener un

    nombre. e debe colocar nombre de campo cuando es un campo calculado o

    si *ay 1 campos con el mismo nombre, al concatenar los campos es necesario

    colocar un alias; si no se *ace aparecerá un mensaje de error porque dic*a

    e%presión debe tener un encabeado, racle no lo coloca por defecto.

    14

  • 8/19/2019 Cuadernillo Victor Medrano

    15/17

    • Los nombres de los campos y e%presiones de la consulta que define una vista

    deben ser (nicos &no puede *aber dos campos o encabeados con igual

    nombre'.

    •  2l crear una vista, racle *ay que verificar que e%istan las tablas a las que se*acen referencia en ella; no se puede crear una vista que referencie tablas

    ine%istentes. 3o se puede crear una vista si e%iste un objeto con ese nombre.

    • #robar la sentencia $select$ con la cual definiremos la vista antes de crearla

    para asegurarnos que el resultado que retorna es el imaginado.

    BUENAS PR#CTICAS USADAS PARA SUBCONSULTAS

    • 3o utiliar ELE45 6 por qué el motor debe leer primero la estructura de la

    tabla antes de ejecutar la sentencia.

    • eleccionar solo aquellos campos que se necesiten, cada campo e%tra genera

    tiempo e%tra.

    • Especificar el alias de la tabla delante de cada campo definido en el select,

    esto le a*orra tiempo al motor de tener que buscar a que tabla pertenece el

    campo especificado.

    •  2l realiar una subconsulta se prueba primero que la consulta principalfuncione correctamente y posteriormente se procede a agregar la subconsulta

    para evitar errores dif"ciles de encontrar.

    • El evitar el uso del -2783) en la instrucción ELE45. Las condiciones del

    -2783) son de e%clusividad para funciones agregadas como el 4U35,

    U9, 27), 92:, 983, etc y no son para condiciones de datos.

    • ealiar las composiciones de las subconsultas en el ELE45 para que sea

    más rápida la concatenación de las columnas de la otra consulta a la consulta

    principal.

    • -ay que tener en cuenta el orden en el que enunciamos las tablas en el

    ?.

    1#

  • 8/19/2019 Cuadernillo Victor Medrano

    16/17

    BUENAS PR#CTICAS USADAS PARA SINONIMOS

    Los nombres para sinónimos deben seguir las mismas reglas que cualquier identificador. #ara distinguir un sinónimo podemos fijar una convención para

    darle nombres, por ejemplo, colocar el sufijo /sino0 y luego el nombre

    abreviado del objeto.

    • El nombre de un sinónimo no debe ser más largo que el nombre del objeto o

    tabla referenciado esto es con el fin de que el sinónimo sea más fácil de

    recordar y facilitar la b(squeda del contenido del objeto o tabla.

    • 3o se puede crear un sinónimo con el mismo nombre del objeto referenciado.

    • i se crea un sinónimo p(blico y posteriormente tiene tablas dependientes o

    tipos de objetos definidos por el usuario válidos dependientes, entonces no se

    puede crear otro objeto de base de datos del mismo nombre que el sinónimo

    en el mismo esquema que los objetos dependientes porque esto generara un

    error en la ejecución del sinónimo.

    • El acceso es un poco más eficiente cuando se accede por sinónimos p(blicos.

    REFERENCIAS

    8:0=.8%#(%23(%'2

    80:=/-/.00.@2((9(222@->>0@0

    8:0=.8%24(%1

    8:>0.0/>08-=>.>>@-G@H->0/-0

    80:0.=-/>.@B2)3#9_(10>=5>=.1112)2)60->@>0_'((1.8@

    16

    http://www.oracleya.com.ar/temarios/descripcion.php?inicio=50&cod=230&punto=72http://www.oracleya.com.ar/temarios/descripcion.php?inicio=50&cod=230&punto=72https://orlandoolguin.wordpress.com/2009/02/22/manejo-de-sinonimos/http://www.oracleya.com.ar/temarios/descripcion.php?cod=240&punto=1http://es.slideshare.net/etumax/optimizacion-de-consultashttps://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_7001.htmhttps://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_7001.htmhttp://www.oracleya.com.ar/temarios/descripcion.php?inicio=50&cod=230&punto=72http://www.oracleya.com.ar/temarios/descripcion.php?inicio=50&cod=230&punto=72https://orlandoolguin.wordpress.com/2009/02/22/manejo-de-sinonimos/http://www.oracleya.com.ar/temarios/descripcion.php?cod=240&punto=1http://es.slideshare.net/etumax/optimizacion-de-consultashttps://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_7001.htmhttps://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_7001.htm

  • 8/19/2019 Cuadernillo Victor Medrano

    17/17

    1'