martes, 20 de agosto de 2019

Crear tablas y vistas con Oracle SQL Data Modeler Parte 2

En el artículo anterior, se desarrolló una serie de objetos de tipo tabla empleando SQL Developer Data Modeler, en este post que es continuación del anterior, se procederá a desarrollar Vistas a partir del archivo del modelo creado previamente.

1.Abrir el archivo del modelo desarrollado previamente:
      Archivo>>Data Modeler>>Abrir


  
2. En el cuadro de diálogo seelccionar el archivo con extensión .dmd y hacer click en Abrir.
 
3.  En el cuadro de diálogo seleccionar el modelo Relational_2 (o el que haya definido) y hacer click en Aceptar.


4. En la barra de herramientas de Data Modeler seleccionar Vista.

5. Hacer clik sobre el área de trabajo. En el cuadro de diálogo que se visualiza, ingresar el nombre de la Vista: ProgramasVIEW y hacer click en el botón Aplicar.
 



 6.  En el cuadro de diálogo Ver Propiedades, hacer click en  Consulta.
 
 7. Se visualizará el cuadro de diálogo  Generador de Consultas que en su panel derecho   muestra las tablas y vistas existentes incluyendo la vista que se está configurando.


8. Seleccionar la tabla programas y arrastrar al área de consulta(área en blanco) o hacer doble clik sobre la tabla programas.


 La tablas seleccionada se visualiza gráficamente en el área de consulta.


 9. Seleccionar los campos de la tabla programas, al realizar esta acción los campos se agregan en la primera cuadrícula debajo  del área de consulta.
10. Proceda a configurar las prpiedades de la consulta, por ejemplo:

Tipo de Orden: Ascendente
Secuencia de Orden: 1

Esto hará que los resultados (filas o registros) se muestren ordenados ascendentemente por nombre de programa.
Adicionalmente, a medida que realiza cambios, estos se traducen en una sentencia SELECT bajo la cuadrícula de columnas o campos como se aprecia en la imagen de abajo.

Hacer Click en Aceptar.
11.  Realizada la acción anterior, se oculta la ventana de Consultas y retorna al siguiente cuadro de diálogo Ver propiedades y hacer click en Aceptar.

12.  Se obtiene un cuadrado color verde que contiene el nombre de la vista con sus campos y el nombre de la tabla de donde provienen los campos.

13. Hacer Click con el botón secundario  sobre el nombre del Diseño y selccionar Guardar Diseño.
14. Click en Generar DDL de la barra de herramientas.


15. Seleccionar la versión de Oracle donde implementará el script.


16. Click en Generar.


17. En la pestaña Selección 'CREATE' expandir Sin Asignar a Esquemas y seleccionar tablas y vistas.



18. En la pestaña Selección 'DROP', seleccionar Tablas, Vistas y Claves Ajenas, estos elementos si ya existen en el esquema de destino serán borrados y posteriormente recreados.
 

19. Click sobre el botón Aceptar ubicado en la parte inferior dereecha del cuadro de diálogo Editor de Archivo DDL.


 20. Se desplega el código SQL que incluye la vista generada.
Posteriormente puede seguir las indicaciones 25 a 30 del post anterior para ejecutar el script.

Espero que este post sea de gran ayuda.  Sus comentarios son importantes, aún cuando no encuentren dificultades en el desarrollo de lo aquí descrito no olvidar comentar.

Saludos.



 
     
     

miércoles, 14 de agosto de 2019

Columnas Identidad

En versiones previas a Oracle 12c, los valores de una columna clave primaria se generaban mediante una secuencia que produce un valor único y para que el proceso sea automático se requería adicionalmente de un disparador.  A partir de Oracle Database 12c se puede prescindir de las secuencias empleando columnas de identidad, una columna de identidad  genera un valor numérico secuencial y único al estilo de gestores como MySQL y PostgreSQL.

Para crear una columna de identidad se emplea la sintaxis básica siguiente:

             nombre_columna tipo GENERATED BY DEFAULT AS IDENTITY

El siguiente ejemplo crea la tabla Projects en el esquema HR:

   create table HR.Projects(
     project_id number(6)  GENERATED BY DEFAULT AS IDENTITY,
     project_name varchar2(60) not null,
     constraint Projects_PK Primary key( project_id)
   ); 

Probar la columna insertando datos y omitiendo la columna identidad porque esta genera su valor por defecto:

    insert into HR.Projects(project_name)
  values('Proyecto A1');

  insert into HR.Projects(project_name)
  values('Proyecto A2');

Consultar datos de Projects:

   select project_id,project_name
   from HR.Projects;


Como puede apreciarse en la imagen, la columan identidad genera automáticamente los valores secuenciales 1 y 2 para cada fila insertada. 

Para poder cambiar el valor inicial, establecer el  valor de incremento e indicar valores mínimo y máximo se puede aplicar la sintaxis siguiente:

                       GENERATED BY DEFAULT AS IDENTITY
          MINVALUE valor_mínimo
          MAXVALUE valor_máximo
          INCREMENT BY valor_incremento
          START WITH valor_inicial 
          NOORDER  NOCYCLE  NOT NULL ENABLE

Con el objetivo de probar la sintaxis descrita, se creará la tabla Project2 con las siguientes características para la columna Project_Id:
  •   Valor Mínimo:100
  •   Valor Máximo:99999999
  •   Incremento: 10
  •   Iniciar con:100

create table HR.Projects2(
     project_id number(6) GENERATED BY DEFAULT AS IDENTITY
                          MINVALUE 100
                          MAXVALUE 99999999
                          INCREMENT BY 10
                          START WITH 100,
     project_name varchar2(60) not null,
     constraint Projects_PK Primary key( project_id)
); 

Table HR.PROJECTS2 creado.

Insertar datos en la nueva tabla:

 insert into HR.Projects2(project_name)
 values('Proyecto A1A');

 insert into HR.Projects2(project_name)
 values('Proyecto A2A');


Consultar la tabla Projects2 para comprobar resultados:

 SELECT *
 FROM
PROJECTS2; 


  

Conclusión

Las columnas de identidad constituyen un mecanismo natural y ágil para generar valores únicos y secuenciales para los campos de clave primaria, evitando crear objetos extra como  secuencias y disparadores.

Hasta una próxima ocasión.

Saludos.

    
      

sábado, 13 de julio de 2019

Campos o Columnas Virtuales

Las columnas virtuales constituyen una de las nuevas características introducidas en Oracle Database 11g e incluida en la Edición Express 11g Versión 2 y posteriores. Consiste en campos que obtienen sus valores a partir de expresiones que hacen referencia a otras columnas, tales expresiones pueden incluir llamadas a funciones.

Un ejemplo concreto: Crearemos una tabla que registre la venta de productos agregando los campos siguientes:
compra_id, producto_id, precio, cantidad, importe.

  1. Ejecutar la línea de comandos SQL.
  2. Conectarse como usuario SYSTEM:
          
conn system/sucontraseña@localhost:1521/XEPDB1

  1. Crear un usuario con nombre: SHOP.       
CREATE USER SHOP IDENTIFIED BY XYZ2011 DEFAULT TABLESPACE USERS;

    4. Otorgar roles CONNECT y RESOURCE.
 
         GRANT CONNECT,RESOURCE TO SHOP;

    5. Desconectarse con el comando disc;
           SQL>disc;

    6. Conectarse como usuario SHOP.
           CONN SHOP/XYZ2011@localhost:1521/XEPDB1

    7. Introducir la siguiente sentencia:
        CREATE TABLE VENTAS(
               PRODUCTO_ID NUMBER(6) NOT NULL,
               COMPRA_ID   NUMBER(5) NOT NULL,        
               CANTIDAD    NUMBER(7,3) NOT NULL,
               PRECIO      NUMBER(7,3) NOT NULL,
               IMPORTE  NUMBER GENERATED ALWAYS AS
               (CANTIDAD*PRECIO) VIRTUAL
          );

    8. Insertar un registro de prueba.
         INSERT INTO VENTAS( PRODUCTO_ID,
                         COMPRA_ID,
                         CANTIDAD,
                         PRECIO)
       VALUES(220,350,10,20.35);

    9. Seleccionar el registro insertado con la sentencia:
        SELECT *
         FROM VENTAS;
 
 

Espero sirva de ayuda.

Roberto Párraga Zambrano




viernes, 15 de marzo de 2019

Crear tablas y vistas con Oracle SQL Data Modeler Parte 1

Oracle SQL Data Modeler es una herramienta de diseño de Modelos Relacionales y Lógicos que permite crear de forma gráfica esquemas conceptuales basados en el modelo relacional.
Una de las ventajas de esta herramienta consiste en que podemos generar el código SQL para diferentes SGB's como Oracle, DB2, MS SQL Server.

Antes de emplear esta herramienta incorporada en Oracle SQL Developer, recomiendo disponer de un esquema de base de datos con su respectiva conexión.

Para emplear SQL Data Modeler, ejecutar las siguientes instrucciones:

1. Ejecutar ORACLE SQL DEVELOPER.

2. Click en menú Ver>Data Modeler>Explorador.



3. Se visualiza el panel Explorador como panel izquierdo.



4. Click con el botón secundario en Sin título_1 y seleccionar Guardar Diseño.



5. Desplegar el nodo del diseño Desarrollo.


6. Desplegar el nodo Modelos Relacionales y seleccionar Relational_1, con el botón secundario del mouse seleccionar Mostrar.


En la barra de herramientas se adicionará la barra siguiente:

Y se abre una nueva pestaña.


7. De la barra Relational Model seleccionar el icono Tabla y llevarlo sobre el área de trabajo haciendo click sobre ella.

8. Llenar como Nombre: Programas


 9. Click en Columnas del panel izquierdo.


10. Click sobre el botón Más de la pestaña Detalles.



11. Llenar el nombre del programa con programa_id.

Click en Lógica.
En Tipo de Origen seleccionar Integer.
Click en la casilla Clave Primaria.



Agregar el campo de cada una de las siguientes imágenes:






12. Click en Aceptar.


13. Click en Nueva Tabla.


14. La tabla contendrá los campos de la imagen siguiente:


15. Click en Clave Primaria. Seleccionar los campos programa_id y nro_version.


16. Click en el botón Agregar 


17. Click en Clave Ajena.

En la columna Nombre: Programa_FK.
Seleccionar del cuadro combinado Tabla de Referencias: Programas.
Seleccionar del cuadro combinado Restricción de Referencias:  Programas_PK.
Columna de Referencia: programa_id.
Columna: programa_id.
Obligatoria: Check.


18. Click en Aceptar.
19. Seleccionar Desarrollador del Explorador de modelos y Click en Guardar Diseño.



20. Click en Generar DDL de la barra de herramientas.


21. Seleccionar la versión de Oracle donde implementará el script.


22. Click en Generar



23. Click en Aceptar.



24. Se generará el guión SQL. Hacer click en Guardar.


25. Guardar el archivo en una carpeta y click en Guardar.





26. En el panel de conexiones, seleccionar y abrir la conexión DESARROLLO o la de su preferencia.



27. Click en el menú Archivo>Abrir y seleccionar con doble clik el archivo con extensión DDL.

                       
                      


28. Click en Ejecutar Script o pulsar F5. 
  


29. Seleccionar la conexión. Click en Aceptar.





30. Expandir el nodo de la conexión empleada y expandir el nodo tablas para visualizar las tablas creadas.



Saludos.








Realizar copia de seguridad con RMAN

RMAN (Recovery Manager) es un programa cliente creado por Oracle para realizar copias de respaldo y recuperación de la base de datos. Cabe destacar que la base de datos debe estar configurada en Modo Archivado (Archive Log Mode), para poder realizar  respaldos en "caliente" o en línea usando RMAN. 

Sin más preámbulos, se especificarán las instrucciones para respaldar la base de datos, que en este caso por tratarse de 18c XE incluirá el respaldo o backup de la CDB y las PDBs.

1. Ejecutar RMAN desde la línea de comandos cmd de Windows.
  
  c:\rman

2. Conectarse con la base de datos primaria(Target Database).

   connect target


3. Submitir el siguiente comando

   backup database;




Listo. Ya cuenta con un respaldo de la base de datos XE.

Saludos.


Entrada destacada

Cómo instalar Oracle Database 18c Express Edition para Windows

Oracle Database 18c XE ya está disponible para Windows 64bit, en este post se enseñará como instalar y configurar esta nueva versión en W...