jueves, 15 de julio de 2010

EXAMEN

EXAMEN DE ORACLE


<>
CREATE TABLESPACE "TBLEXAMEN147" DATAFILE 'D:\DATA\TBLEXAMEN147.ora' SIZE 10M autoextend on next 1024 konline;
<>
CREATE USER MAALMEIDA PROFILE DEFAULT IDENTIFIED BY "123ma" DEFAULT TABLESPACE "TBLEXAMEN147" ACCOUNT UNLOCK;GRANT CONNECT, resource TO MAALMEIDA;


<>

GRANT "RESOURCE" TO "MAALMEIDA";ALTER USER "MAALMEIDA" DEFAULT ROLE ALL

<>
CREATE TABLE SOCIOS (COD_SOCIO NUMBER(2) NOT NULL, NOM_SOCIO VARCHAR2(50) NOT NULL, DIR_SOCIO VARCHAR2(25) NOT NULL, FECHA_NACIMIENTO_SOCIO DATE NOT NULL, SEXO_SOCIO VARCHAR(15) NOT NULL, CONSTRAINT PK_SOCIOS PRIMARY KEY(COD_SOCIOS)) TABLESPACE TBLEXAMEN147;

CREATE TABLE PRESTAMOS (COD_PRESTAMO NUMBER(2) NOT NULL, FECHA_APROBADA DATE NOT NULL, FECHA_ENTREGA DATE NOT NULL, PLAZO VARCHAR2(25) NOT NULL, MONTO_ENTREGADO NUMBER (6) NOT NULL,SALDO NUMBER (6) NOT NULL, NOM_SOCIO VARCHAR2(25) NOT NULL, CONSTRAINT PK_PRESTAMOS PRIMARY KEY(COD_PRESTAMOS)); TABLESPACE TBLEXAMEN147;

CREATE TABLE PAGO (COD_PAGO NUMBER(2) NOT NULL, FECHA_PAGO DATE NOT NULL, MONTO_PAGO NUMBER(6) NOT NULL, COD_PRESTAMO NUMBER(2) NOT NULL, CONSTRAINT PK_PAGO PRIMARY KEY(COD_PAGO)) TABLESPACE TBLEXAMEN147;

CREATE TABLE CUENTA (COD_CUENTA NUMBER(2) NOT NULL, FECHA_CREADA DATE NOT NULL, SALDO NUMBER (6) NOT NULL, COD_SOCIO NUMBER(2) NOT NULL, CONSTRAINT PK_CUENTA PRIMARY KEY(COD_CUENTA)); TABLESPACE TBLEXAMEN147;

CREATE TABLE TRANSACCIONES (COD_TRANS NUMBER(2) NOT NULL, TIPO_TRANS VARCHAR2(25) NOT NULL, FECHA_TRANS DATE NOT NULL, MONTO_TRANS NUMBER(6) NOT NULL,COD_CUENTA NUMBER(2) not null, CONSTRAINT PK_CUENTA PRIMARY KEY(COD_CUENTA)); TABLESPACE TBLEXAMEN147;

<<>>create sequence sq_alumnosstart with 1increment by 1;
create sequence sq_materiasstart with 1increment by 1;
create sequence sq_notasstart with 1increment by 1;

CREATE TABLE NOTAS (COD_NOTAS NUMBER(5) NOT NULL, NOTA1 NUMBER(2) NOT NULL, NOTA2 NUMBER(2) NOT NULL, NOTA3 NUMBER(2) NOT NULL, COD_ALUMNO NUMBER(5) NOT NULL constraint Fk_Alumnos references alumnos, COD_MATERIA NUMBER(5) NOT NULL constraint FK_materias references materias, CONSTRAINT PK_NOTAS PRIMARY KEY(COD_NOTAS)) TABLESPACE TBLSEPTIMO147;

<<>>create sequence sq_alumnosstart with 1increment by 1;
create sequence sq_materiasstart with 1increment by 1;
create sequence sq_notasstart with 1increment by 1;

ver filas creadasselect * from dba_data_files
<>
CREATE USER MAALMEIDA PROFILE DEFAULT IDENTIFIED BY "123ma" DEFAULT TABLESPACE "TBLSEPTIMO147" ACCOUNT UNLOCK;GRANT CONNECT, resource TO MAALMEIDA;

CREATE USER JURAMIREZ PROFILE DEFAULT IDENTIFIED BY "123ju" DEFAULT TABLESPACE "TBLSEPTIMO147" ACCOUNT UNLOCK;GRANT CONNECT, resource TO JURAMIREZ;
CREATE USER VIGUANOCHANGA PROFILE DEFAULT IDENTIFIED BY "123vi" DEFAULT TABLESPACE "TBLSEPTIMO147" ACCOUNT UNLOCK;GRANT CONNECT, resource TO VIGUANOCHANGA ;

<<>>create sequence sq_alumnosstart with 1increment by 1;
create sequence sq_materiasstart with 1increment by 1;
create sequence sq_notasstart with 1increment by 1;

<>
GRANT "RESOURCE" TO "MAALMEIDA";ALTER USER "MAALMEIDA" DEFAULT ROLE ALL

<> usuarios sys
CREATE TABLE "MAALMEIDA"."ALUMNOS" ("COD_ALUMNO" NUMBER(5) NOT NULL, "NOM_ALUMNO" VARCHAR2(50) NOT NULL, "DIR_ALUMNO" VARCHAR2(25) NOT NULL, "TEL_ALUMNO" NUMBER(9) NOT NULL, "REP_ALUMNO" VARCHAR2(30) NOT NULL, CONSTRAINT "PK_ALUMNOS" PRIMARY KEY("COD_ALUMNO")) TABLESPACE "TBLSEPTIMO"
CREATE TABLE MAALMEIDA.MATERIAS ("COD_MATERIA" NUMBER(5) NOT NULL, "NOM_MATERIA" VARCHAR2(25) NOT NULL, "PENSUM" VARCHAR2(30) NOT NULL, "NUM_CREDITOS" VARCHAR2(10) NOT NULL, CONSTRAINT "PK_MATERIAS" PRIMARY KEY("COD_MATERIA")) TABLESPACE "TBLSEPTIMO"
CREATE TABLE "MAALMEIDA"."NOTAS" ("COD_NOTAS" NUMBER(5) NOT NULL, "NOTA1" NUMBER(2) NOT NULL, "NOTA2" NUMBER(2) NOT NULL, "NOTA3" NUMBER(2) NOT NULL, "COD_ALUMNO" NUMBER(5) NOT NULL, "COD_MATERIA" NUMBER(5) NOT NULL, CONSTRAINT "PK_NOTAS" PRIMARY KEY("COD_NOTAS")) TABLESPACE "TBLSEPTIMO"

<>show user; permite ver en q usuario estamos
connect usuario/contraseña@cadena_de_conección (clicoracle) cambio de usuario


<>
CREATE TABLE alumnos (COD_ALUMNO NUMBER(5) NOT NULL, NOM_ALUMNO VARCHAR2(50) NOT NULL, DIR_ALUMNO VARCHAR2(25) NOT NULL, TEL_ALUMNO NUMBER(9) NOT NULL, REP_ALUMNO VARCHAR2(30) NOT NULL, CONSTRAINT PK_ALUMNOS PRIMARY KEY(COD_ALUMNO)) TABLESPACE TBLSEPTIMO147;
CREATE TABLE Materias (COD_MATERIA NUMBER(5) NOT NULL, NOM_MATERIA VARCHAR2(25) NOT NULL, PENSUM VARCHAR2(30) NOT NULL, NUM_CREDITOS VARCHAR2(10) NOT NULL, CONSTRAINT PK_MATERIAS PRIMARY KEY(COD_MATERIA)) TABLESPACE TBLSEPTIMO147;
CREATE TABLE NOTAS (COD_NOTAS NUMBER(5) NOT NULL, NOTA1 NUMBER(2) NOT NULL, NOTA2 NUMBER(2) NOT NULL, NOTA3 NUMBER(2) NOT NULL, COD_ALUMNO NUMBER(5) NOT NULL constraint Fk_Alumnos references alumnos, COD_MATERIA NUMBER(5) NOT NULL constraint FK_materias references materias, CONSTRAINT PK_NOTAS PRIMARY KEY(COD_NOTAS)) TABLESPACE TBLSEPTIMO147;

<<>>

create or replace trigger clave_primaria_alumnobefore insert on alumnosfor each rowdeclarevalor number;beginselect sq_alumnos.nextval into valor from dual;:new.cod_alumno:=valor;end;
create or replace trigger clave_primaria_materiabefore insert on materiasfor each rowdeclarevalor number;beginselect sq_alumnos.nextval into valor from dual;:new.cod_materia:=valor;end;
create or replace trigger clave_primaria_notabefore insert on notasfor each rowdeclarevalor number;beginselect sq_alumnos.nextval into valor from dual;:new.cod_notas:=valor;end;

<<>>

create view notas_por_materias_alumnosasselect nom_alumno, nom_materia, nota1, nota2, nota3,nota1+nota2+nota3 as total , (nota1+nota2+nota3)/3 as promediofrom alumnos, materias, notaswhere alumnos.cod_alumno= notas.cod_alumnoand materias.cod_materia=notas.cod_materia;

con una condicion aprovado y reprobado/////////
create view notas_por_materias_alumnosasselect nom_alumno, nom_materia, nota1, nota2, nota3,nota1+nota2+nota3 as total , (nota1+nota2+nota3)/3 as promedioif promedio=7 from alumnos, materias, notaswhere alumnos.cod_alumno= notas.cod_alumnoand materias.cod_materia=notas.cod_materia;

<>

ALTER TABLE "MAALMEIDA"."NOTAS" ADD (CONSTRAINT "FK_NOTASMATERIAS" FOREIGN KEY("COD_MATERIA") REFERENCES "MAALMEIDA"."MATERIAS"("COD_MATERIA"))
ALTER TABLE "MAALMEIDA"."NOTAS" ADD (CONSTRAINT "FK_NOTASALUMNOS" FOREIGN KEY() REFERENCES "MAALMEIDA"."ALUMNOS"())
<>
INSERT INTO "MAALMEIDA"."ALUMNOS" ("COD_ALUMNO" ,"NOM_ALUMNO" , "DIR_ALUMNO" ,"TEL_ALUMNO" ,"REP_ALUMNO" ) VALUES (01 ,'Maribel Almeida' ,'San Roque ' ,062 908888 , 'Franco Roldan' )INSERT INTO "MAALMEIDA"."ALUMNOS" ("COD_ALUMNO" ,"NOM_ALUMNO" ,"DIR_ALUMNO" ,"TEL_ALUMNO" ,"REP_ALUMNO" ) VALUES (02 ,'Francisco Ramirez' ,'Otavalo' ,099452447 ,'Estefania Bucheli' )INSERT INTO "MAALMEIDA"."ALUMNOS" ("COD_ALUMNO" ,"NOM_ALUMNO" ,"DIR_ALUMNO" ,"TEL_ALUMNO" ,"REP_ALUMNO" ) VALUES (02 ,'Javier Espinoza' ,'Ibarra' ,099673181 ,'Marco Peralta' )

viernes, 9 de julio de 2010

Trabajos en Clase

Instrucción Sql para crear
un Tablespace



CREATE TABLESPACE "TBLSEPTIMO142"



DATAFILE 'D:\DATA\TBLSEPTIMO142.ORA' SIZE 10M



AUTOEXTEND ON NEXT 1024K



PERMANENT



ONLINE;



SELECT
* FROM



DBA_TABLESPACES;
// PARA VER QUE TABLESPLACE ESTAN CREADOS



SELECT
* FROM



DBA_DATA_FILES
; // PARA VER CUANTOS DATAFILES ESTAN CREADOS



DESC
NOMBRE_TABLA // ESTRUCTURA DE LAS TABLAS VER




  • PARA
    ALTERAR UN NUEVO TABLESPACE MODIFICADO



ALTER TABLESPACE



TBLSEPTIMO142



ADD DATAFILE



'D:\DATA\TBLSEPTIMO1422.ORA' SIZE 10M



AUTOEXTEND ON



NEXT 1024K;




  • INSTRUCCIÓN
    SQL PARA CREAR UN USARIO



CREATE USER JAQUELINE



IDENTIFIED BY “1001766151”



DEFAULT TABLESPACE TBLSEPTIMO142



ACCOUNT UNLOCK;




  • CONEXION



GRANT CONNECT,RESOURCE TO JAQUELINE;




  • CONCEDER
    ROLES A UN USUARIO DE TIPO DESARROLLADOR









































































































  • Instrucción
    con clave primaria en oracle



CREATE
TABLE ALUMNOS(COD_ALUMNO NUMBER(5) CONSTRAINT PK_ALUMNOS PRIMARY KEY,



NOM_ALUMNO
VARCHAR2(50) NOT NULL,



DIR_ALUMNO
VARCHAR2(50) NOT NULL,



TEL_ALUMNO NUMBER(9) NOT NULL,



REP_ALUMNO VARCHAR2(50) NOT NULL);



----------------------------------------------------------------------------------------------------------------------



CREATE TABLE MATERIAS



(COD_MATERIA NUMBER(5) NOT NULL,



NOM_MATERIA VARCHAR2(50) NOT NULL,



PENSUM NUMBER(10) NOT NULL,



NUM_CREDITOS NUMBER(10) NOT NULL,



CONSTRAINT PK_MATERIAS PRIMARY KEY(COD_MATERIA)) ;



---------------------------------------------------------------------------------------------------------------------------



CREATE TABLE NOTAS(



NOTA1 NUMBER(2) NOT NULL,



NOTA2 NUMBER(2) NOT NULL,



NOTA3 NUMBER(2) NOT NULL,



COD_ALUMNO NUMBER(5) NOT NULL CONSTRAINT FK_ALUMNO REFERENCES
ALUMNOS,



COD_MATERIA NUMBER(5) NOT NULL CONSTRAINT FK_MATERIAS REFERENCES
MATERIAS,



COD_NOTAS NUMBER(5) NOT NULL CONSTRAINT PK_NOTAS PRIMARY KEY)



---------------------------------------------------------------------------------------------------------------------------




  • CREAR
    SECUENCIAS



CREATE SEQUENCE SQ_ALUMNOS



START WITH 1;



-----------------------------------------------------------------------



CREATE SEQUENCE SQ_MATERIAS



START WITH 1;



CREATE SEQUENCE SQ_NOTAS



START WITH 1;




  • PARA CAMBIAR DE USUARIO



SHOW USER;



CONNECT JAQUELINE/1001766151@CLIORACLE




  • CREAR UN DISPADOR



NOMBRES



CREATE OR REPLACE TRIGGER CLAVE_PRIMARIA_ALUMNO



BEFORE INSERT ON ALUMNOS



FOR EACH ROW



DECLARE



VALOR NUMBER;



BEGIN



SELECT SQ_ALUMNOS.NEXTVAL



INTO
VALOR FROM DUAL;



:NEW.COD_ALUMNO:=VALOR;



END;



------------------------------------------------------------------------------------------------------------------------



MATERIAS



CREATE OR REPLACE TRIGGER CLAVE_PRIMARIA_MATERIA



BEFORE INSERT ON MATERIAS



FOR EACH ROW



DECLARE



VALOR NUMBER;



BEGIN



SELECT SQ_MATERIAS.NEXTVAL



INTO VALOR FROM DUAL;



:NEW.COD_MATERIA:=VALOR;



END;



------------------------------------------------------------------------------------------------------------------------



NOTAS



CREATE OR REPLACE TRIGGER CLAVE_PRIMARIA_NOTAS



BEFORE INSERT ON NOTAS



FOR EACH ROW



DECLARE



VALOR NUMBER;



BEGIN



SELECT SQ_NOTAS.NEXTVAL



INTO VALOR FROM DUAL;



:NEW.COD_NOTAS:=VALOR;



END;





------------------------------------------------------------------------------------------------------------------------



INSERTAR DATOS



INSERT INTO MATERIAS VALUES(NULL,'MATEMATICA','5','10');



INSERT INTO NOTAS VALUES('10','20','15',1,1,NULL);




  • CREAR UNA VISTA



ALTER
VIEW NOTAS_POR_MATERIA_ALUMNO



AS



SELECT
NOM_ALUMNO, NOM_MATERIA, NOTA1, NOTA2, NOTA3, NOTA1+NOTA2+NOTA3 AS TOTAL,
(NOTA1+NOTA2+NOTA3)/3 AS PROMEDIO



FROM
ALUMNOS , MATERIAS , NOTAS



WHERE
ALUMNOS.COD_ALUMNO=NOTAS.COD_ALUMNO



AND
MATERIAS.COD_MATERIA=NOTAS.COD_MATERIA;



-------------------------------------------------------------------------------------------------------------------------



CREATE
VIEW NOTAS_POR_MATERIA_ALUMNO



AS



SELECT
NOM_ALUMNO, NOM_MATERIA, NOTA1, NOTA2, NOTA3, NOTA1+NOTA2+NOTA3 AS TOTAL,
(NOTA1+NOTA2+NOTA3)/3 AS PROMEDIO, OBSERVACIONES AS



FROM
ALUMNOS , MATERIAS , NOTAS



WHERE
ALUMNOS.COD_ALUMNO=NOTAS.COD_ALUMNO



AND
MATERIAS.COD_MATERIA=NOTAS.COD_MATERIA AND OBSERVACIONES1 >14 AND
OBSERVACIONES2 <14;



Instrucción



ALTER
TABLE "CRPASTAZ"."NOTAS"




ADD (CONSTRAINT "FK_NOTASMATERIAS" FOREIGN
KEY("COD_MATERIA")



REFERENCES
"CRPASTAZ"."MATERIAS"("COD_MATERIA"))



Insertar
datos



INSERT
INTO "CRPASTAZ"."ALUMNOS" ("COD_ALUMNO"
,"NOM_ALUMNO" ,




"DIR_ALUMNO" ,"TEL_ALUMNO" ,"REP-ALUMNO" )




VALUES (1 ,'Juan' ,'Ibarra' ,098764521 ,'Martha' )



INSERT
INTO "CRPASTAZ"."ALUMNOS" ("COD_ALUMNO"
,"NOM_ALUMNO" ,"DIR_ALUMNO" ,"TEL_ALUMNO"
,"REP-ALUMNO" ) VALUES (2 ,'Mateo' ,'Quito' ,093385270 ,'Pedro' )



INSERT
INTO "CRPASTAZ"."ALUMNOS" ("COD_ALUMNO"
,"NOM_ALUMNO" ,"DIR_ALUMNO" ,"TEL_ALUMNO"
,"REP-ALUMNO" ) VALUES (3 ,'Mary' ,'Otavalo' ,062234567 ,'Hugo' )

PROGRAMACIÓN EN
N-CAPAS E INTRODUCCIÓN A ORACLE










INTRODUCCIÓN


Las arquitecturas de desarrollo de sistemas ha evolucionado conjuntamente con las tecnologías, es así que, desde
sistemas de escritorio “standalone” ó de cliente único hemos llegado a arquitecturas n-capas “n-tier” que son capaces de gestionar gran cantidad de
datos, ser multiusuario e incluso multiplataforma estableciendo sistemas más robustos para mejorar el acceso a la información.


Como mencionamos la tecnología de desarrollo a avanzado a la par es así que desde tiempo atrás Oracle se ha
impuesto ante las demás como un conjunto de herramientas de desarrollo n-capas desde su base de datos orientada a objetos a entornos de desarrollo integrados
como Oracle Forms que permiten el desarrollo de sistemas de manera rápida, eficaz y eficiente.



RESUMEN EJECUTIVO

El desarrollo ha evolucionado en:

Escritorio: Donde el sistema y la base de datos se encontraban en el mismo lugar, lo que impedía
que el sistema se pueda conectar en red.

Tres Capas: En cambios en este se podía tener la base de datos y la aplicación en diferentes
lugares, es decir pueden conectarse algunos clientes desde diferentes equipos a la base de datos, pero lamentablemente la capa de presentación como la de
negocios estaban dentro de un mismo entorno lo que supondría la reprogramación casi total del sistema en caso de errores y no supondría una contingencia en
caso de caída de red.


N-Capas: En n-capas se separan todas las capas en: capa de presentación, capa de negocios,
acceso a datos e EIS (“Sistema de información empresarial”). En este forma se pueden cambiar cada una de las capas en diferentes plataformas sin necesidad de
cambiar la otra, por ejemplo: podemos modificar el acceso a datos a un diferente EIS digamos de Oracle a DB2 y el sistema debería seguir funcionando
sin ningún inconveniente; además, la escalabilidad de este modelo se puede implementar en diferentes tecnologías así como en diferentes servidores mejorando el
rendimiento de la aplicación en el acceso a grandes bancos de información como en una n capacidad de usuarios.



En cuanto a Oracle claramente podemos afirmar que no es una base de datos como muchas personas la
piensan sino es un conjunto de herramientas que permiten una mejor gestión de la información desde un EIS hasta un complejo conjunto de herramientas de
desarrollo.


La escalabilidad de la base de datos de Oracle permite manejar grandes objetos de datos, sistemas
de información geográfica y cada versión se adapta a las necesidades del tiempo actual.


En lo que respecta a SQL, Oracle maneja tanto el Transat-SQL como el Ansi-SQL a pesar de que este
último ya no es muy utilizado, el lenguaje procedural que maneja es pgSQL que permite manejar de una forma estructurada los datos dentro los procedimientos
almacenados y disparadores.


OBJETIVOS

Objetivo General

Conocer la evolución de la arquitectura de desarrollo así como una herramienta de
desarrollo n-capas a través de un exhaustivo análisis de la información existente en la red.

Objetivo especifico

Evaluar las diferentes etapas de evolución de la arquitectura cliente servidor hasta
nuestro tiempo.

Conocer el diccionario de Oracle.

Aprender a creara bases de datos, tablas, etc.

prender a manejar las herramientas que nos brinda Oracle.

Conocer el SQL+;

MARCO TEÓRICO

Arquitectura de Red

Concepto: La arquitectura es el “plan” con el que se conectan los protocolos y otros programas de
software. Las computadoras se comunican por medio de redes. La red más sencilla es una conexión directa entre dos computadoras. Sin embargo, también pueden
conectarse a través de grandes redes que permiten a los usuarios intercambiar datos, comunicarse mediante correo electrónico y compartir recursos, por
ejemplo, impresoras. La arquitectura de red es el medio más efectivo en cuanto a costos para desarrollar e implementar un conjunto coordinado de productos que
se puedan interconectar.

Características

· Separación de funciones.
Dado que las redes separa los usuarios y los productos que se venden
evolucionan con el tipo, debe haber una forma de hacer que las funciones
mejoradas se adapten a la ultima.


· Amplia conectividad.
El objetivo de la mayoría de las redes es proveer conexión óptima entre cualquier cantidad de nodos, teniendo en consideración los niveles de seguridad
que se puedan requerir.

· Recursos compartidos.
Mediante las arquitecturas de red se pueden compartir recursos tales como impresoras y bases de datos.

· Administración de la red.
Dentro de la arquitectura se debe permitir que el usuario defina, opere, cambie,
proteja y de mantenimiento a la de.

· Facilidad de uso. Mediante
la arquitectura de red los diseñadores pueden centra su atención en las
interfaces primarias de la red y por tanto hacerlas amigables para el usuario.

· Normalización. Con la arquitectura de red se alimenta a quienes desarrollan y venden software a
utilizar hardware y software normalizados. Mientras mayor es la normalización,
mayor es la colectividad y menor el costo.

· Administración de datos. En
las arquitecturas de red se toma en cuenta la administración de los datos y la
necesidad de interconectar los diferentes sistemas de administración de bases
de datos.

· Interfaces. En las arquitecturas también se definen las interfaces como de persona a red, de
persona y de programa a programa. De esta manera, la arquitectura combina los
protocolos apropiados (los cuales se escriben como programas de computadora) y
otros paquetes apropiados de software para producir una red funcional.


· Aplicaciones. En las arquitecturas de red se separan las funciones que se requieren para operar
una red a partir de las aplicaciones comerciales de la organización. Se obtiene
más eficiencia cuando los programadores del negocio no necesitan considerar la
operación.

Ventajas

· Los ordenadores están conectados a través de un único conjunto de cables denominado, Un ordenador envía datos a otro transmitiendo a través del bus la dirección del receptor y los datos

· Todos los ordenadores de la red examinan la dirección simultáneamente, y el indicado como receptor acepta los datos

APLICACIONES MONOLÍTICAS

En la ingeniería de software, una aplicación monolítica describe una única aplicación de software en niveles en los que la interfaz de usuario y código de acceso a datos se combinan en un solo programa de una plataforma única.

Una aplicación monolítica es autónoma, independiente y de las aplicaciones computacionales. La filosofía del diseño es que la aplicación es responsable no sólo de una tarea determinada, pero puede realizar todos los pasos necesarios para completar una función particular. [1] [2] Hoy en día, algunas aplicaciones de finanzas personales son monolíticos en el sentido de que ayudan al usuario realizar una tarea completa, de extremo a extremo, y son "datos privados
de los silos" en lugar de partes de un sistema más amplio de aplicaciones que funcionan juntos. procesadores de texto son un ejemplo de una aplicación monolítica. [3] Estas aplicaciones se asocia a veces con mainframe ordenadores.

APLICACIONES DISTRIBUIDAS

El diseño de aplicaciones modernas involucra la división de una aplicación en múltiples capas; la interface de usuario, la capa media de objetos de negocios, y la capa de acceso a datos. Puede ser útil identificar los tipos de procesamiento que podemos esperar que una aplicación realice. Muchas aplicaciones pueden, al menos, hacer lo siguiente:

· Cálculos u otros procesos de negocios.

· Ejecución de reglas de negocios.

· Validación de datos relacionados al negocio.

· Manipulación de datos.

· Ejecución de las reglas de datos relacional.

· Interactuar con aplicaciones externas o servicios.

· Interactuar con otros usuarios.

Nosotros podemos tomar estos tipos de servicios y generalizarlos dentro de los tres grupos o capas que a
continuación se resumen:


· Interface de usuario (Capa de Presentación)

o Interactuar con otros usuarios.

o Interactuar con aplicaciones externas o servicios.

· Procesos de negocios (Capa de Negocios)

o Cálculos u otros procesos de negocios.

o Ejecución de reglas de negocios.

o Validación de datos relacionados al negocio.

· Procesos de datos (Capa de Servicios de Datos).

o Manipulación de datos.

o Ejecución de las reglas de datos relacional.

La división de estos procesos de aplicaciones y su distribución entre diferentes procesos cliente/servidor es conocido como Procesamiento Distribuido. Generalizando estos procesos dentro de estas tres categorías o capas es una distribución lógica y no refleja necesariamente alguna opción de diseño físico sobre computadoras, terminales u otros equipos. Usted puede desarrollar una aplicación cliente/servidor distribuida basada sobre estas tres capas de Presentación, Lógica de Negocios y Servicios de Datos
y tener la aplicación entera corriendo sobre una simple computadora. Alternativamente, usted puede esparcir estas tres capas a través de un gran número de diferentes computadoras sobre
una red. De cualquier forma usted ha desarrollado una aplicación cliente/servidor de tres capas.

Capa de Presentación.

La capa de Presentación provee su aplicación con una interfase de usuario(IU). Aquí es donde su aplicación presenta información a los usuarios y acepta entradas o respuestas del usuario para usar por su programa.
Idealmente, la IU no desarrolla ningún procesamiento de negocios o reglas de validación de negocios. Por el contrario, la IU debería relegar sobre la capa de negocios para manipular estos asuntos. Esto es importante, especialmente hoy en día, debido a que es muy común para una aplicación tener múltiples IU, o
para sus clientes o usuarios, que le solicitan que elimine una IU y la remplace con otra. Por ejemplo, usted puede desarrollar una aplicación Win32 (un programa en
Visual Basic
) y entonces solicitársele remplazarla con una página HTLM., quizás usando tecnología ASP.

Una de las mayores dificultades y factores importantes cuando desarrollamos aplicaciones cliente/servidor es mantener una separación completa entre la presentación, la lógica de negocios y los servicios de datos. Es muy tentador para los desarrolladores mezclar una o más capas; poniendo alguna validación u otro proceso de negocios dentro de la capa de presentación en vez de en la capa de negocios.

Capa de Negocios.

Toda aplicación tiene código para implementar reglas de negocios, procesos relacionados a los datos o cálculos y otras actividades relativas a los negocios. Colectivamente este código es considerado para formar la capa de negocios. Otra vez, uno de los principios del diseño lógico cliente/servidor, la lógica de negocios debe mantenerse separada de la capa de presentación y de los servicios de datos. Esto no significa necesariamente que la lógica de negocios está en cualquier parte, por el contrario, esta separación es en un sentido lógico.

Hay muchas formas de separar la lógica de negocios. En términos orientados a objetos, usted debería encapsular la lógica de negocios en un conjunto de objetos o componentes que no contienen presentación o código de servicios de datos. Teniendo separada lógicamente su lógica de negocios de ambas, la capa de presentación y servicios de datos, usted ganará en flexibilidad en término de donde usted puede almacenar físicamente la lógica de negocios. Por ejemplo, usted puede seleccionar almacenar la lógica de negocios
sobre cada estación de cliente, u optar por ejecutar la lógica de negocios sobre un servidor de aplicaciones, permitiendo a todos los clientes acceder a un recurso centralizado.


Los objetos de negocios son diseñados para reflejar o representar sus negocios. Ellos se convierten en un modelo de sus entidades de negocios e interrelaciones. Esto incluye tanto objetos físicos como conceptos abstractos. Estos son algunos ejemplos de objetos del mundo real: un empleado, un cliente, un producto, una orden de compra.

Todos estos son objetos en el mundo físico, y la idea en su totalidad detrás de usar objetos de negocios de software, es crear una representación de los mismos objetos dentro de su aplicación. Sus aplicaciones pueden hacer que estos objetos interactúen unos con otros como ellos lo hacen en el mundo real.
Por ejemplo, un empleado puede crear una orden de compra a un cliente que contiene una lista de
productos
. Siguiendo esta lógica usted puede crear objetos de negocios de una orden conteniendo el código necesario para administrarse a si mismo, así usted nunca necesitará replicar código para crear ordenes, usted solo usará el objeto. Similarmente, un objeto cliente contiene y administra sus propios datos. Un buen diseño de un
objeto cliente contiene todos los datos y rutinas necesitadas para representarlo a través del negocio completo, y puede ser usado a través de toda la aplicación de ese negocio.


No toda la lógica de negocio es la misma. Alguna lógica de negocio es un proceso intensivo de datos, requiriendo un eficiente y rápido acceso a la base de datos. Otras no requieren un frecuente acceso a los datos, pero es de uso frecuente por una interfase de usuario robusta para la validación en la entrada de campos u otras interacciones de usuarios. Si nosotros necesitamos una validación al nivel de pantallas y quizás cálculos en tiempos real u otra lógica de negocios, pudiéramos considerar este tipo de lógica de negocios para ser parte de la IU, ya que en su mayor parte es usada por la interfase de usuario.

Una alternativa de solución es dividir la capa de lógica de negocios en dos:

· Objetos de negocios de la IU.

· Objetos de negocios de datos.

Un ejemplo del objeto Empleado de la capa objetos de negocios de la IU proveerá propiedades y métodos para usar por el diseñador de la interfase de usuario. Ejemplo de propiedades y métodos pudieran ser: IDEmpleado, Nombre, Dirección, etc., y como métodos crear una de compra, etc. El objeto Empleado de la capa de objetos de negocios de datos será responsable de los mecanismos de persistencias, interactuar con la base de datos. Los objetos de esta capa son considerados sin estado, solo poseen métodos.

Capa de Servicios de Datos.

Muchas aplicaciones interactúan con datos, los almacenan en alguna forma de bases de datos. Hay algunas funciones básicas que son comunes a todos los procesos. Estas incluyen:

· Crear datos,

· leer datos,

· actualizar datos y

· eliminar datos.

Adicionalmente, nosotros tenemos servicios más avanzados disponibles, tales como: búsquedas, ordenamientos, filtrados, etc.


ARQUITECTURAS MULTI-CAPAS

Concepto:
La arquitectura cliente/servidor genérica tiene dos tipos de nodos en la red:
clientes
y servidores.
Consecuentemente, estas arquitecturas genéricas se refieren a veces como arquitecturas de dos niveles o dos capas. Las tecnologías XML (eXtensible Markup Language) aplicadas conjuntamente con arquitecturas software multicapa nos permiten realizar la integración con los sistemas existentes en estas empresas construyendo aplicaciones escalables.
cterísticas


· Que ofrecen tanto el empleo de XML como el uso de una arquitectura software multicapa. El artículo finaliza presentando un caso práctico de integración de sistemas usando la arquitectura descrita.

· La independencia de los componentes en los sistemas multi-capa facilita una completa partición de las tareas de desarrollo y mantenimiento.

· La capa Lógica del Negocio es el corazón del sistema, allí se almacenan las “Reglas del Negocio” que definen la manera como STARLIMS se comporta en la empresa. Esta capa contiene adicionalmente los meta datos que definen los objetos STARLIMS que son ensamblados para ejecutar funciones específicas.


· Estos incluyen registro de muestras, entrada de resultados, procesos de aprobación, sistema de numeración de
muestras, cálculos automáticos basados en el ingreso de resultados y la lógica tras la programación de reportes, intervalos de muestreo automatizados, impresión de etiquetas, muestreo múltiple, mantenimiento de instrumentos, entrenamiento del personal, niveles de reactivos, optimización del flujo de trabajo y activadores de las bases de datos

Algunas redes disponen de tres tipos de nodos:

  • Clientes que interactúan con los
    usuarios finales.

  • Servidores de aplicación que
    procesan los datos para los clientes.

  • Servidores de la base de datos que
    almacenan los datos para los servidores de aplicación.

Ventajas

· Centralización del control: los accesos, recursos y la integridad de los datos son controlados por el servidor de forma que un programa cliente defectuoso o no autorizado no pueda dañar el sistema. Esta centralización también facilita la tarea de poner al día datos u otros recursos
(mejor que en las redes
P2P)..

  • Escalabilidad: se puede aumentar la capacidad de clientes y servidores por separado. Cualquier elemento puede ser aumentado (o mejorado)
    en cualquier momento, o se pueden añadir nuevos nodos a la red (clientes
    y/o servidores).



  • Fácil mantenimiento: al estar
    distribuidas las funciones y responsabilidades entre varios ordenadores
    independientes, es posible reemplazar, reparar, actualizar, o incluso
    trasladar un servidor, mientras que sus clientes no se verán afectados por
    ese cambio (o se afectarán mínimamente). Esta independencia de los cambios
    también se conoce como
    encapsulación.



  • Existen tecnologías, suficientemente desarrolladas, diseñadas para el paradigma de
    C/S que aseguran la
    seguridad en las transacciones, la amigabilidad del interfaz, y la facilidad de empleo.

Desventajas

  • La congestión del tráfico ha sido
    siempre un problema en el paradigma de C/S. Cuando una gran cantidad de
    clientes envían peticiones simultaneas al mismo servidor, puede ser que
    cause muchos problemas para éste (a mayor número de clientes, más
    problemas para el servidor). Al contrario, en las redes
    P2P como cada nodo
    en la red hace también de servidor, cuanto más nodos hay, mejor
    es el
    ancho de banda que se tiene.



  • El paradigma de C/S clásico no
    tiene la robustez de una red P2P. Cuando un servidor está caído,
    las peticiones de los clientes no pueden ser satisfechas. En la mayor
    parte de redes P2P, los recursos están generalmente distribuidos en varios
    nodos de la red. Aunque algunos salgan o abandonen la descarga; otros
    pueden todavía acabar de descargar consiguiendo datos del resto de los
    nodos en la red.



  • El software y el hardware de un servidor son generalmente muy determinantes. Un hardware
    regular de un
    ordenador personal
    puede no poder
    servir a cierta cantidad de clientes. Normalmente se necesita software y
    hardware específico, sobre todo en el lado del servidor, para satisfacer
    el trabajo. Por supuesto, esto aumentará el coste.



  • El cliente no dispone de los
    recursos que puedan existir en el servidor. Por ejemplo, si la
    aplicación
    es una Web
    , no podemos escribir en el
    disco duro del cliente o imprimir directamente sobre las
    impresoras
    sin sacar antes la ventana previa de impresión de los
    navegadores.

ARQUITECTURA SERVIDOR DE ARCHIVOS

Concepto: Tipo de servidor que almacena varios tipos de archivos y los distribuye a otros clientes de la red en una red de ordenadores cuya función es permitir el acceso remoto a archivos almacenados en él o directamente accesibles por este. En principio, cualquier ordenador conectado a una red con un software apropiado, puede funcionar como servidor de archivos. Desde el punto de vista del cliente de un servidor de archivos, la localización de los archivos compartidos es transparente, normalmente no hay diferencias perceptibles si un archivo está almacenado en un servidor de archivos remoto o en el disco de la propia máquina.

Algunos protocolos comúnmente utilizados en servidores de archivos:

Ventajas


Tiene acceso controlado a los recursos por medio de contraseñas, para mantener la privacidad de los archivos deseados.

·
Con la posibilidad de compartir recursos entre varios usuarios o tener un repositorio público de archivos en donde todos puedan almacenar información.

·
Toda la información importante puede quedar centralizada en un solo lugar, lo cual facilita la administración y el respaldo de la información.


No se quedan archivos importantes aislados en terminales de escritorio y se tiene la posibilidad de acceder a los archivos remotamente, fuera de la oficina, desde casa o cualquier otro lugar con internet, mediante una VPN.

·
Posee servicios de impresión.·
Se incrementa un·
a arquitectura de red.

APLICACIONES CLIENTE SERVIDOR

Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.

En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.

La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc.

Características de la arquitectura Cliente/Servidor

Las características básicas de una arquitectura Cliente/Servidor son:

• Combinación de un cliente que interactúa con el usuario, y un servidor que Interactúa con los recursos
compartidos. El proceso del cliente proporciona la interfaz entre el usuario y el resto del sistema. El proceso del servidor actúa como un motor de software que maneja recursos compartidos tales como bases de datos, impresoras, módems, etc.

• Las tareas del cliente y del servidor tienen diferentes requerimientos en cuanto a recursos de cómputo como
velocidad del procesador, memoria, velocidad y capacidades del disco y input-output devices.

• Se establece una relación entre procesos distintos, los cuales pueden ser ejecutados en la misma máquina o en máquinas diferentes distribuidas a lo largo de la red.

• Existe una clara distinción de funciones basada en el concepto de "servicio", que se establece entre
clientes y servidores.

• La relación establecida puede ser de muchos a uno, en la que un servidor puede dar servicio a muchos
clientes, regulando su acceso a recursos compartidos.

• Los clientes corresponden a procesos activos en cuanto a que son éstos los que hacen peticiones de
servicios a los servidores. Estos últimos tienen un carácter pasivo ya que esperan las peticiones de los clientes.

• No existe otra relación entre clientes y servidores que no sea la que se establece a través del intercambio
de mensajes entre ambos. El mensaje es el mecanismo para la petición y entrega de solicitudes de servicio.

• El ambiente es heterogéneo. La plataforma de hardware y el sistema operativo del cliente y del servidor no son siempre la misma. Precisamente una de las principales ventajas de esta arquitectura es la posibilidad de conectar clientes y servidores independientemente de sus plataformas.

• El concepto de escalabilidad tanto horizontal como vertical es aplicable a cualquier sistema Cliente/Servidor. La escalabilidad horizontal permite agregar más estaciones de trabajo activas sin afectar significativamente el rendimiento. La escalabilidad vertical permite mejorar las características del servidor o agregar múltiples servidores.

Ventajas del esquema Cliente/Servidor

Entre las principales ventajas del esquema Cliente/Servidor están [16]:

• Uno de los aspectos que más ha promovido el uso de sistemas Cliente/Servidor, es la existencia de plataformas de hardware cada vez más baratas. Esta constituye a su vez una de las más palpables ventajas de este esquema, la posibilidad de utilizar máquinas considerablemente más baratas que las requeridas por una solución centralizada, basada en sistemas grandes. Además, se pueden utilizar componentes, tanto de hardware como de software, de varios fabricantes, lo cual contribuye considerablemente a la reducción de costos y favorece la flexibilidad en la implantación y actualización de soluciones.

• El esquema Cliente/Servidor
facilita la integración entre sistemas diferentes y comparte información
permitiendo, por ejemplo que las máquinas ya existentes puedan ser utilizadas
pero utilizando interfaces mas amigables al usuario. De esta manera, podemos
integrar PCs con sistemas medianos y grandes, sin necesidad de que todos tengan
que utilizar el mismo sistema operacional.

• Al favorecer el uso de interfaces gráficas interactivas, los sistemas Construídos bajo este esquema
tienen mayor interacción y más intuitiva con el usuario. En el uso de interfaces gráficas para el usuario, el esquema Cliente/Servidor presenta la ventaja, con respecto a uno centralizado, de que no es siempre necesario transmitir información gráfica por la red pues esta puede residir en el cliente, lo cual permite aprovechar mejor el ancho de banda de la red.

• Una ventaja adicional del uso del esquema Cliente/Servidor es que es más rápido el mantenimiento y el
desarrollo de aplicaciones, pues se pueden emplear las herramientas existentes (por ejemplo los servidores de SQL o las herramientas de más bajo nivel como los sockets o el RPC ).

• La estructura inherentemente modular facilita además la integración de nuevas tecnologías y el crecimiento
de la infraestructura computacional, favoreciendo así la escalabilidad de las soluciones.

• El esquema Cliente/Servidor contribuye además, a proporcionar, a los diferentes departamentos de una
organización, soluciones locales, pero permitiendo la integración de la información relevante a nivel global.

Desventajas del esquema Cliente/Servidor

Entre las principales desventajas del esquema Cliente/Servidor están [16]:

• El mantenimiento de los sistemas es más difícil pues implica la interacción de Diferentes partes de hardware y de software, distribuidas por distintos proveedores, lo cual dificulta el
diagnóstico de fallas.

• Se cuenta con muy escasas herramientas para la administración y ajuste del Desempeño de los sistemas. • Es importante que los clientes y los servidores utilicen el mismo mecanismo (por ejemplo sockets o RPC), lo cual implica que se deben tener mecanismos generales que existan en diferentes plataformas.

• Además, hay que tener estrategias para el manejo de errores y para mantener la consistencia de los datos.

• La seguridad de un esquema Cliente/Servidor es otra preocupación importante. Por ejemplo, se deben hacer
verificaciones en el cliente y en el servidor.

• El desempeño es otro de los aspectos que se deben tener en cuenta en el esquema Cliente/Servidor. Problemas de este estilo pueden presentarse por congestión en la red, dificultad de tráfico de datos, etc.

ORACLE

Oracle es básicamente un herramienta cliente/servidor para la gestión de base de datos, para su utilización primero sería necesario la instalación de la herramienta servidor y posteriormente podríamos atacar a la base de datos desde otros equipos con herramientas de desarrollo como Oracle Designer y Oracle Developer, que son las herramientas de programación sobre Oracle a partir de esta premisa vamos a desarrollar las principales acepciones de Oracle y sus aplicaciones en las distintas aéreas de trabajo.

En Oracle encontramos:

  • Datos del usuario



  • datos del sistema para gestionar la BD.



  • Un espacio de tablas en donde Oracle almacena los datos en forma de tablas y Agrupa un conjunto de archivos.

CONCEPTO DE TABLESPACE (ESPACIO DE TABLAS)

Una base de datos se divide en unidades lógicas denominadas TABLESPACES. Un tablespace no es un fichero físico en el disco, simplemente es el nombre que tiene un conjunto de propiedades de almacenamiento que se aplican a los objetos (tablas, secuencias…) que se van a crear en la base de datos bajo el tablespace indicado (tablas, secuencias…).

Un objeto en base de datos debe estar almacenado obligatoriamente dentro de un tablespace.

Las propiedades que se asocian a un tablespace son: -Localización de los ficheros de datos. -Especificación de máximas cuotas de consumo de disco.
-Control de la disponibilidad de los datos (en línea o fuera de línea). -Backup de datos.

Cuando un objeto se crea dentro de un cierto tablespace, este objeto adquiere todas las propiedades antes descritas del tablespace utilizado.

En este esquema podemos ver que, por ejemplo, la tabla ARTICULO se almacena dentro del tablespace A, y que por lo tanto tendrá todas las propiedades del tablespace A que pueden ser:

Sus ficheros de datos están en $ORACLE_HOME/datos/datos_tablespace_A -Los objetos no pueden ocupar más de 10Mb de espacio de base de datos.

En cualquier momento se puede poner fuera de línea todos los objeto de un cierto tablespace. Se pueden hacer copiar de seguridad sólo de ciertos tablespaces.


Si nos fijamos, se puede apreciar que es posible tener una tabla en un tablespace, y los índices de esa tabla en otro. Esto es debido a que los índices no son más que objetos independientes dentro de la base de datos, como lo son las tablas. Y al ser objetos independientes, pueden ir en tablespaces independientes. El tablespace SYSTEM es uno de los que se crear por defecto en todas las bases de datos Oracle. En él se almacenan todos los datos de sistema, el catálogo y todo el código fuente y compilado de procedimientos PL/SQL. También
es posible utilizar el mismo tablespace para guardar datos de usuario. En el esquema también vemos que hay un tablespace Temporal (en gris oscuro). Este representa las propiedades que tendrán los objetos que la base de datos cree temporalmente para sus cálculos internos (normalmente para ordenaciones y agrupaciones). Su creación difiere en una de sus cláusulas de creación. El tablespace RO (en gris claro) difiere de los demás en que es de solo lectura (Read Only), y que por lo tanto todos los objetos en él contenidos pueden recibir órdenes de consulta de datos, pero no de modificación de datos. Estos puede residir en soportes de sólo lectura, como pueden ser CDROMs, DVDs, etc. Cuando se crea un tablespace, éste se crea de lectura/escritura. Después se puede modificar para que sea de solo lectura. Un
tablespace puede estar en línea o fuera de ella (Online o OffLine), esto es que todos los objetos contenidos en él están a disposición de los usuarios o están
inhabilitados para restringir su uso. Cualquier objeto almacenado dentro de un
tablespace no podrá ser accedido si este está fuera de línea.

TIPOS DE TABLESPACES.

  • Tablespace SYSTEM.
    • Se crea automáticamente al hacer la instalación de Oracle o al
      crear una Base de Datos.

    • Contiene el diccionario de datos.

  • Tablespaces TEMPORALES.
    • Es aquél en el que solamente puede haber objetos temporales. No
      se pueden crear objetos permanentes como pueden ser los índices, las
      tablas o los segmentos de rollback.

    • Optimización operaciones de ordenación.
  • De tipo deshacer cambios (9i).
    • Se utilizan para gestionar poder deshacer las transacciones
      incompletas. En versiones anteriores --> rollback

  • Con tamaño de bloque variable (9i).



  • De tipo BigFile (10g).

Estado del tablespace.

Su estado puede ser online o offline. Existe una vista que nos da información sobre los tablespaces de nuestra base de datos.
Esa vista es la siguiente:

select tablespace_name, status from dba_tablespaces;

Para poder realizar una copia de seguridad del tablespace estando completamente seguros de que nadie está modificando los objetos del tablespace es necesario establecer el modo offlne.

Así mismo se actuará de igual forma para poder actualizar una aplicación que se basa en los objetos de este tablespace sin que ningún usuario puede modificar los datos en medio de la actualización.


Manipulación del tablespace.

  • Crear un Tablespace.
    • Create tablespace prueba datafile
    • 'c:\ORACLEXE\ORADATA\XE\prueba01.dbf' size 100M;
  • Aumentar el tamaño del Tablespace.
    • Alter database tablespace prueba add datafile
      ‘c:\oracleexe\oradata\XE\prueba02.dbf' size 50M;

    • Alter database datafile '/users/oradata/orcl/prueba01.dbf' resize
      150M;

  • Borrando un tablespace.


    • Drop tablespace prueba;

CLÁUSULA STORAGE.

Todo objeto que tenga ocupación física tiene esta cláusula. El objetivo es definir ciertas propiedades de almacenamiento para el objeto creado.

STORAGE( INITIAL entero{KM} NEXT entero{KM} {MINEXTENTS entero}
{MAXEXTENTS enteroUNLIMITED} {PCTINCREASE %entero} )

Tablespaces Temporales.

Para crear un tablespace temporal simplemente hay que añadir la palabra TEMPORARY
a la instrucción utilizada para crear tablespaces normales.

Create tablespace prueba datafile '/users/oradata/orcl/prueba01.dbf' size 100M
temporary;

Alter user nombre_de_usuario temporary tablespace nombre_de_tablespace;

Select username, temporary_tablespace from dba_users;

Select tablespace_name, contents from dba_tablespaces;


TABLESPACES READ-ONLY.

Se pueden consultar los datos de los objetos, no se puede ni borrar ni insertar nada en ellos.

La principal ventaja de un tablespace read-only es que no hace falta hacer backup del mismo.

Ejemplo de los tablespaces read-only.

SQL> alter tablespace DATACURSOxy read only;

Tablespace modificado.

SQL> insert into tabla01 values ('PRIMERA FILA');

ORA-00372:
el fichero 3 no puede ser modificado en este momento

ORA-01110:
fichero de datos 3:

'/u02/oradata/CURSOxy/datacursoxy01.dbf'

SQL> DROP TABLE TABLA01;

Tabla
borrada.

SQL>
alter tablespace DATACURSOxy read write;

Tablespace
modificado.

SQL>
insert into tabla02 values ('PRIMERA FILA');

1
fila creada.

SQL>
commit;

Validación
terminada.

Tablespace de Undo.

  • Podemos tener varios tablespaces de “undo”, pero sólo uno de ellos estará activo.
  • No se pueden crear objetos sobre un tablespace de “undo”.
  • Al cambiar de tablespace “undo” activo (con undo_tablespace), los segmentos de rollback que contiene el nuevo tablespace pasan a estar online, mientras que los del tablespace anterior se ponen offline.

Se crean de dos formas:

  • Mediante create database.



  • Mediante create tablespace:

Create undo tablespace undotbs02 datafile ‘c:\oraclexe\oradata\ex\undo02.dbf’ size 25M
reuse autoextend on;

Para eliminarlo:

drop
tablespace undotbs02;

Parámetros de inicialización de los espacios de tablas de deshacer:

  • Undo_Management
    (valores MANUAL/AUTO). Si auto se gestionará de forma automática el
    espacio de deshacer. No es dinámico, cuando se cambia de estado se debe
    rearrancar la instancia.

DATAFILE

CONCEPTO DE DATAFILE (FICHERO DE DATOS)

Un datafile es la representación física de un tablespace. Son los "ficheros de datos" donde se almacena la información físicamente. Un datafile puede tener cualquier nombre y extensión (siempre dentro de las limitaciones del sistema operativo), y puede estar localizado en cualquier directorio del disco duro, aunque su localización típica suele ser $ORACLE_HOME/Database. Un datafile tiene un tamaño predefinido en su creación (por ejemplo 100Mb) y este puede ser alterado en cualquier momento. Cuando creemos un datafile, este ocupará tanto espacio en disco como hayamos indicado en su creación, aunque internamente esté vacío. Oracle hace esto para reservar espacio continuo en disco y evitar así la fragmentación. Conforme se vayan creando objetos en ese tablespace, se irá ocupando el espacio que creó inicialmente.

Un datafile está asociado a un solo tablespace y, a su vez, un tablespace está asociado a uno o varios datafiles. Es decir, la relación lógica entre tablespaces y datafiles es de 1-N, maestro-detalle.

En el esquema podemos ver como el “Tablespace A” está compuesto (físicamente) por tres datafiles (DATOS_1.ORA, DATOS_2.ORA y DATOS_3.ORA). Estos tres datafiles son los ficheros físicos que soportan los objetos contenidos dentro del tablespace A. Aunque siempre se dice que los objetos están dentro del tablespace, en realidad las tablas están dentro del datafile, pero tienen la propiedades asociadas al tablespace. Cada uno de los datafiles utilizados está ocupando su tamaño en disco (50 Mb los dos primeros y 25 Mb el último) aunque en realidad sólo contengan dos objetos y estos objetos no llenen el espacio que está asignado para los datafiles.

Los datafiles tienen una propiedad llamada AUTOEXTEND, que se si está activa, se encarga de que el datafile crezca automáticamente (según un tamaño indicado) cada vez que se necesite espacio y no exista. Al igual que los tablespaces, los datafiles también puede estar en línea o fuera de ella.

Crear Usuarios y asignar privilegios en Oracle

El siguiente es un resumen de algunas consideraciones al momento de crear un usuario o cuenta en Oracle, y los privilegios y roles que le podemos asignar.

  • El nombre de usuario no debe superar 30 caracteres, no debe tener caracteres especiales y debe iniciar con una letra.



  • Un método de autentificación. El mas común es una clave o password, pero Oracle 10g soporta otros métodos (como biometric, certificado y autentificación por medio de token).



  • Un Tablespace default, el cual es donde el usuario va a poder crear sus objetos por defecto, sin embargo, esto no significa que pueda crear objetos, o que tenga una cuota de espacio. Estos permisos se asignan de forma separada, salvo si utiliza el privilegio RESOURCE el que asigna una quota unlimited, incluso en el Tablespace SYSTEM! Sin embargo si esto ocurre, ud. puede posteriormente mover los objetos creados en el SYSTEM a otro Tablespace.
  • Un Tablespace temporal, donde el usuario crea sus objetos temporales y hace los sort u ordenamientos.



  • Un perfil o profile de usuario, que son las restricciones que puede tener su cuenta (opcional).

Por ejemplo, conectado como el usuario SYS, creamos un usuario y su clave asi:

SQL>CREATE USER ahernandez IDENTIFIED BY ahz
DEFAULT TABLESPACE users;

Si no se indica un Tablespace por defecto, el usuario toma el que está definido en la BD (generalmente el SYSTEM). Para modificar el Tablespace default de un usuario se hace de la siguiente manera:

SQL>
ALTER USER jperez DEFAULT TABLESPACE datos;

También podemos asignar a los usuarios un Tablespace temporal donde se almacenan operaciones de ordenamiento. Estas incluyen las cláusulas ORDER BY, GROUP BY, SELECT DISTINCT, MERGE JOIN, o CREATE INDEX (también es utilizado cuando se crean Tablas temporales).

SQL> CREATE USER jperez IDENTIFIED BY jpz

DEFAULT TABLESPACE users

TEMPORARY TABLESPACE temp;

Adicionalmente, a cada usuario se puede asignar a un profile o perfil, que tiene dos propósitos principalmente:

  • Limita el uso de recursos, lo que es recomendable, por ejemplo en ambientes de Desarrollo
  • Garantiza y refuerza reglas de Seguridad a nivel de cuentas

Ejemplos, cuando se crea el usuario o asignar un perfil existente:

SQL> CREATE USER jperez IDENTIFIED BY jpz

DEFAULT TABLESPACE users

TEMPORARY TABLESPACE temp

PROFILE resource_profile;

SQL> ALTER USER jperez

PROFILE
perfil_desa;

ELIMINAR UN USUARIO DE LA BASE DE DATOS

Para eliminar un usuario de la BD se hace uso de la clausula DROP USER y opcionalmente se puede utilizar CASCADE, para decirle que también elimine todos los objetos creados por ese usuario.

SQL>
DROP USER jperez CASCADE;

Modificar cuentas de Usuarios

Para modificar un usuario creado, por ejemplo cambiar su clave, tenemos la sintáxis:

SQL>
ALTER USER NOMBRE_USUARIO

IDENTIFIED
BY CLAVE_ACCESO

[DEFAULT
TABLESPACE ESPACIO_TABLA]

[TEMPORARY
TABLESPACE ESPACIO_TABLA]

[QUOTA
{ENTERO {K M } UNLIMITED } ON ESPACIO_TABLA[PROFILE PERFIL];

CREACIÓN DE USUARIOS

Una de las más básicas tareas de un administrador de base de datos es identificar los usuarios. Cada usuario que conecta en la base de datos debe de tener una cuenta. En las cuentas compartidas son difíciles de aplicar una auditoria.

Para crear un usuario utilizamos la sentencia CREATE USER. Cuando creas una cuenta como mínimo tienes que asignar un único nombre (username) y una contraseña para poder autenticarse.

Para cambiar alguno de los atributos que se le ha añadido al usuario creado se
utiliza la sentencia ALTER USER.

AUTENTICACIÓN ORACLE

Cuando no se conecta con una instancia de una base de datos la cuenta de usuario debe
de estar autenticada. ORACLE provee tres métodos de autenticación para nuestra
cuenta de usuario.

AUTENTICACIÓN MEDIANTE PASSWORD

Cuando un usuario conecta con una base de datos verifica que este usuario y la
contraseña introducida almacenada en la base de datos, sea correcta. Las
contraseñas se guardan encriptadas en la base de datos (en el data dictionary).

SQL > CREATE USER david IDENTIFIED BY tititus;

En este caso tititus es la contraseña de david que será guardada encriptada en la
base de datos.

AUTENTICACIÓN EXTERNA

Cuando un usuario conecta con la base de datos se verifica que el nombre de usuario es
el mismo que el nombre de usuario del sistema operativo para permitir la
validación.

No se almacenan las cuentas en la base de datos de ninguna forma. Estas cuentas
están siempre referidas con OPS$ .A partir de la versión 10g puedes
configurar OS_AUTHENT_PREFIX en el spfile


CREATE USER ops$david IDENTIFIED BY tititus;

Mediante IDENTIFIED EXTERNALLY decimos a la base de datos que nuestra cuenta es
externa y tiene que ser validada con el sistema operativo.

AUTENTICACIÓN GLOBAL

Cuando un usuario se conecta con la base de datos se verifica globalmente cuando la
información pasa por una opción avanzada de seguridad ( ADVANCED SECURITY
OPTION ) para la autenticación tal como Kerberos, RADIUS ....

Para las cuentas globales no se almacena tampoco nada en la base de datos.

SQL > CREATE USER david IDENTIFIED GLOBALLY AS
‘CN=alumnos,OU=campus .......’

Mediante IDENTIFIED GLOBALLY decimos a la base de datos que nuestra cuenta se
autentica globalmente, mediante otra opción de seguridad avanzada.

ASIGNACIONES A LOS USUARIOS

ASIGNACIÓN DE UN USUARIO A UN TABLESPACE ( DEFAULT TABLESPACE )



Mediante esta sentencia asignamos un usuario a un tablespace, este será su tablespace
por defecto cuando creamos un usuario.



SQL > CREATE USER david IDENTIFIED BY tititus DEFAULT TABLESPACE
users;




Mediante esta sentencia, en caso de tener creado ya el usuario le asignamos un tablespace.



SQL > ALTER USER david DEFAULT TABLESPACE users;



La base de datos toma un tablespace por defecto, en caso de querer cambiar este
tablespace utilizamos la siguiente sentencia



SQL > ALTER DATABASE DEFAULT TABLESPACE users;

ASIGNACIÓN DE UN USUARIO A UN TABLESPACE TEMPORAL



Un tablespace temporal se utiliza para almacenar “segmentos” temporales que son creados durante operaciones como ORDER BY,SELECT DISTINCT, MERGE JOIN o CREATE INDEX.A veces a los usuarios se les asocia un tablespace temporal para realizar este tipo de operaciones, cuando estas
operaciones finalizan este segmento temporal que se ha creado exclusivamente
para la operación desaparece.



SQL > CREATE USER david IDENTIFIED BY tititus DEFAULT TABLESPACE
users



TEMPORARY TABLESPACE temp;



Mediante TEMPORARY TABLESPACE asignamos como tablespace temporal temp al usuario
david.



En caso de que el usuario esté creado si queremos asignarle un tablespace temporal
utilizamos ALTER USER

SQL > ALTER USER david TEMPORARY TABLESPACE Temp;

ASIGNACIÓN DE UN PERFIL A UN USUARIO



Al gual que podemos asignar un tablespace a un usuario, también podemos asignarle en perfil (profile). El principal perfil ( profile ) por defecto se denomina
default.

Si el usuario no está lo podemos crear de la siguiente forma:

SQL > CREATE USER david IDENTIFIED BY tititus

DEFAULT TABLESPACE users

TEMPORARY TABLESPACE temp

PROFILE resource_profile;

En caso de que el usuario ya esté creado al igual que en los anteriores casos
utilizamos la sentencia ALTER USER.

SQL > ALTER USER david PROFILE resource_profile;

BORRADO DE UN USUARIO

Para borrar un usuario utilizamos la sentencia DROP USER, podemos
opcionalmente incluir la opción CASCADE, se utiliza para borrar
recursivamente los objetos del usuario que se pretende borrar.

SQL
> DROP USER david CASCADE

OTORGANDO PRIVILEGIOS (GRANTING)

A un usuario podemos otorgarle una serie de privilegios. Un privilegio permite a
un usuario acceder a ciertos objetos o realizar ciertas acciones:

Privilegios sobre Objetos ( Object privileges ) a permisos sobre vistas,
tablas, secuencias, procedimientos, paquetes.

-Privilegios del Sistema ( System privileges ) a permisos sobre “niveles de la base de
datos” como pueden ser conexión a la base de datos, creación de usuarios,
limitar cuentas.

- Privilegios sobre Roles ( Role privileges ) a muchos permisos son otorgados
mediante roles agrupando un conjunto de privilegios.

System: Que permite al usuario hacer ciertas tareas sobre la BD, como por ejemplo crear un Tablespace. Estos permisos son otorgados por el administrador o por alguien que haya recibido el permiso
para administrar ese tipo de privilegio. Existen como 100 tipos distintos de
privilegios de este tipo.


En general los permisos de sistema, permiten ejecutar comandos del tipo DDL (Data
definition Language), como CREATE, ALTER y DROP o del tipo DML (Data
Manipulation Language). Oracle 10g tiene mas de 170 privilegios de sistema los
cuales pueden ser vistos consultando la vista: SYSTEM_PRIVILEGE_MAP

Entre todos los privilegios de sistema que existen, hay dos que son los importantes:
SYSDBA y SYSOPER. Estos son dados a otros usuarios
que serán administradores de base de datos.

Para otorgar varios permisos a la vez, se hace de la siguiente manera:

SQL> GRANT CREATE USER, ALTER USER, DROP USER TO ahernandez;

Object: Este tipo de permiso le permite al usuario realizar ciertas acciones en objetos de la BD, como una
Tabla, Vista, un Procedure o Función, etc. Si a un usuario no se le dan estos permisos sólo puede acceder a sus propios objetos (véase USER_OBJECTS). Este tipo de permisos los da el owner o dueño del objeto, el administrador o alguien que haya recibido este permiso explícitamente (con Grant Option).

Por ejemplo, para otorgar permisos a una tabla Ventas para un usuario particular:

SQL> GRANT SELECT,INSERT,UPDATE, ON analista.venta TO jperez;

Adicionalmente, podemos restringir los DML a una columna de la tabla mencionada. Si quisieramos
que este usuario pueda dar permisos sobre la tabla Factura a otros usuarios, utilizamos la cláusula WITH GRANT OPTION.
Ejemplo:

SQL> GRANT SELECT,INSERT,UPDATE,DELETE ON venta
TO mgarcia WITH GRANT OPTION;

Roles

Finalmente los Roles, que son simplemente un conjunto de privilegios que se pueden otorgar a un usuario o a otro Rol. De esa forma se simplifica el trabajo del DBA en esta tarea.



Por default cuando creamos un usuario desde el Enterprise Manager se le asigna el permiso de connect, lo que permite al usuario conectarse a la BD y crear sus propios objetos en su propio esquema. De otra manera, debemos asignarlos en forma manual.


Para crear un Rol y asignarlo a un usuario se hace de la siguiente manera:

SQL> CREATE ROLE appl_dba;

Opcionalmente, se puede asignar una clave al Rol:

SQL> SET ROLE appl_dba IDENTIFIED BY app_pwd;

Para asignar este Rol a un usuario:

SQL> GRANT appl_dba TO jperez;

Otro uso común de los roles es asignarles privilegios a nivel de Objetos, por ejemplo en una Tabla de Facturas en donde sólo queremos que se puedan hacer Querys e Inserts:

SQL> CREATE ROLE consulta;

SQL> GRANT SELECT,INSERT on analista.factura TO
consulta;

Y finalmente asignamos ese rol con este “perfil” a distintos usuarios finales:

SQL> GRANT consulta TO ahernandez;

Nota: Existen algunos roles
predefinidos, tales como:

CONNECT, CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SYNONYM,
CREATE SEQUENCE, CREATE DATABASE LINK, CREATE CLUSTER,

ALTER SESSION, RESOURCE, CREATE PROCEDURE, CREATE SEQUENCE, CREATE
TRIGGER, CREATE TYPE, CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR
SCHEDULER, CREATE ANY JOB, CREATE JOB,

EXECUTE ANY CLASS, EXECUTE ANY PROGRAM,MANAGE SCHEDULER,
etc.

Tiene la mayoría de los privilegios, no es recomendable asignarlo a usuarios que no son administradores.

SELECT_CATALOG_ROLE: No tiene privilegios de
sistema, pero tiene cerca de 1600 privilegios de objeto.

Para consultar los roles definidos y los privilegios otorgados a través de ellos, utilize las vistas:

SQL> select * from DBA_ROLES;

SQL> select * from DBA_ROLE_PRIVS order by GRANTEE;

Para otorgar privilegios utilizamos la sentencia GRANT, para quitar un privilegio o permiso a un usuario utilizamos la sentencia REVOKE.

Privilegio sobre una secuencia:

Con las secuencias pasa lo mismo que con los anteriores objetos vistos, para otorgar permisos se utiliza GRANT. Los permisos que podemos otorgar a una secuencia es SELECT o ALTER.

Privilegio sobre un paquete, función o procedimiento

Los permisos que podemos otorgar a las funciones, paquetes o procedimientos almacenados en nuestra base de datos son los siguientes: EXECUTE, DEBUG.


QUITANDO PRIVILEGIOS

Si queremos quitar un privilegio a uno de estos objetos haremos lo mismo que con GRANT pero utilizando la sentencia REVOKE.


SQL > REVOKE ALL ON tabla_usuarios FROM david




Algunas tablas y vistas del diccionario de datos
























































































































































































Significado





dba





user





all





Información sobre todos los objetos: tablas, vistas, funciones,
procedimientos, índices, triggers, etc.





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Código de funciones y procedimientos





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Usuarios





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Roles





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Roles asignados a roles o usuarios





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Privilegios asignados a roles o usuarios





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Permisos sobre tablas asignados a roles o usuarios





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Límites de recursos





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Perfiles y sus límites de recursos asociados





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Límites de recursos en cuanto a restricciones en claves





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Principio del formulario







Final del formulario





Estas son sólo algunas de las tablas y vistas. Se puede obtener un listado de todas
con
Principio del formulario


Final del formulario

pero la lista es muy larga, y probablemente sea necesario filtrarla, por ejemplo:

Principio del formulario


Final del formulario

Para seleccionar sólo un cierto número de registros:

PRIVILEGIOS DEL SISTEMA


Los roles de sistema se utilizan para distribuir la disponibilidad de los comandos del sistema utilizados para gestionar la BD. Los privilegios más comunes están en la siguiente tabla. En ella se distinguen entre privilegios de manejo de objetos y de gestión de la BD. La palabra clave ANY significa que ese usuario tiene el privilegio para todos los esquemas en la BD. Hay que hacer notar que ANY y PUBLIC no son sinónimos.













































































































































































































































































































































































































Privilegio





Capacidades





Manejo de Objetos





...





CREATE
ANY INDEX





Crear
cualquier índice.





CREATE
[PUBLIC] SYNONYM





Crear
sinónimos [públicos].





CREATE
[ANY] TABLE





Crear
tablas. El usuario debe tener cuota en el espacio de tablas, o ha de tener
asignado el privilegio UNLIMITED TABLESPACE.





CREATE
[ANY] VIEW





Crear
vistas.





ALTER
ANY INDEX





Alterar
cualquier índice.





ALTER
ANY TABLE





Alterar
cualquier tabla





DROP
ANY INDEX





Borrar
cualquier índice.





DROP
ANY SYNONYM





Borrar
cualquier sinónimo.





DROP
PUBLIC SYNONYM





Borrar
sinónimos públicos.





DROP
ANY VIEW





Borrar
cualquier vista.





DROP
ANY TABLE





Borrar
cualquier tabla.





SELECT
ANY TABLE





Efectuar
selecciones de cualquier tabla o vista.





INSERT
ANY TABLE





Insertar
en cualquier tabla o vista.





DELETE
ANY TABLE





Borrar
filas de cualquier tabla o vista, y también truncar.





ALTER
SESSION





Alterar
los parámetros de la sesión.





CREATE
SESSION





Conectarse
a la BD.





Gestión de la BD





...





CREATE
PROFILE





Crear
perfiles de usuario.





CREATE
ROLE





Crear
roles.





CREATE
ROLLBACK SEGMENT





Creación
de segmentos de rollback.





CREATE
TABLESPACE





Crear
espacios de tablas.





CREATE
USER





Crear
usuarios.





ALTER
PROFILE





Alterar
perfiles existentes.





ALTER
ANY ROLE





Alterar
cualquier rol.





ALTER
ROLLBACK SEGMENT





Alterar
segmentos de rollback.





ALTER
TABLESPACE





Alterar
espacios de tablas.





ALTER
USER





Alterar
usuarios.





DROP
PROFILE





Borrar
un perfil existente.





DROP
ANY ROLE





Borrar
cualquier rol.





DROP
ROLLBACK SEGMENT





Borrar
un segmento de rollback existente.





DROP
TABLESPACE





Borrar
un espacio de tablas.





DROP
USER





Borrar
un usuario. Añadir CASCADE si el usuario posee objetos.





ALTER
DATABASE





Permite
una sentencia ALTER DATABASE.





GRANT
ANY PRIVILEGE





Otorgar
cualquiera de estos privilegios.





GRANT
ANY ROLE





Otorgar
cualquier rol a un usario.





UNLIMITED
TABLESPACE





Puede
usar una cantidad de almacenamiento ilimitada.





DROP
PROFILE





Borrar
un perfil existente.


Los privilegios se pueden agrupar en roles, para así satisfacer a distintos tipos de usuarios. En la instalación se crea un rol llamado OSOPER que sirve para los operarios de la máquina donde está la BD y permite realizar copias de seguridad en frio y en caliente. Los privilegios de OSOPER son STARTUP, SHUTDOWN, ALTER DATABASE OPEN/MOUNT, ALTER DATABASE BACKUP, ARCHIVE LOG, RECOVER y RESTRICTED SESSION.

Se pueden crear nuevos roles. Por ejemplo, podemos crear un rol llamado creadorCuentas que sólo pueda crear usuarios y no pueda realizar ninguna otra operación de DBA. Las sentencias que permiten hacer esto son las siguientes:

SVRMGR>
create role creadorCuentas;

Statement processed.

SVRMGR> grant create session, create user to creadorCuentas;

Statement
processed.

Oracle incluye otros tres roles de sistema: CONNECT, RESOURCE y DBA, cuyos privilegios
son:

Listar Privilegios Otorgados

La Información de los privilegios otorgados se almacena en el diccionario de datos. Estos datos son accesibles a través de las siguientes vistas del diccionario de datos:

CONEXIONES TNS

Making Database Connections
Conexiones de base de datos

Connect to Oracle and third-party databases from Oracle SQL Developer. Conectarse a Oracle y de terceros bases de datos de Oracle SQL Developer. Oracle SQL Developer enables developers and DBAs to browse, create, and update data in a database.

Oracle SQL Developer permite a los desarrolladores y DBAs para navegar, crear y actualizar datos en una base de datos. Before you can perform those actions, however, you must create at least one database
connection —an Oracle SQL Developer object containing the information needed to
connect to a specific database as a specific user.
Para poder realizar
estas acciones, sin embargo, debe crear al menos una base de datos de una
conexión Oracle SQL Developer objeto que contiene la información necesaria para
conectarse a una base de datos específica como un usuario específico.

This column explains how to make connections from Oracle SQL Developer to an Oracle Database and third-party databases. En esta columna se explica cómo realizar las conexiones de Oracle SQL
Developer para una base de datos Oracle y de terceros bases de datos.
It also discusses authorization options for Oracle Database connections and explains the role of JDBC drivers in the connection process. También se analizan las opciones de autorización de conexiones de base de datos Oracle y explica el papel de controladores JDBC en el proceso de conexión.

All the examples in this column require Oracle SQL Developer to be running on your local machine. Todos los
ejemplos de esta columna requiere Oracle SQL Developer que se ejecuta en su máquina local.
For some examples, you need access to a running local or remote Oracle Database instance with the sample HR schema
(available in the default database installation).
Para algunos ejemplos, que necesita acceso a un servidor local o remoto de base de datos Oracle ejemplo con el esquema de recursos humanos de la muestra (disponible en la instalación de bases de datos por defecto).
Other examples require access to an Oracle Internet Directory server or a third-party database. Otros ejemplos requieren acceso a un directorio de Internet
servidor de Oracle o una base de datos de proveedores terceros. Basic Connections

CONEXIONES BÁSICAS


You can connect to a local or remote Oracle Database instance by using the Basic connection type. Puede
conectarse a una base de datos local o remota instancia de Oracle utilizando el tipo de conexión de base.
Basic connections do not require any other Oracle software to be installed on your machine—you don't
need an Oracle home.
conexiones de base no requieren cualquier otro software de Oracle para ser instalado en su máquina, usted no necesita una casa de Oracle.

Right-click the Connections node in Oracle SQL Developer's Connections Navigator, and click New Connection to open the New / Select Database Connection dialog box. Haga clic en el nodo Conexiones en SQL Developer's Conexiones Oracle Navigator y haga clic en Nueva conexión para abrir el Nuevo / Seleccione Conexión de base de datos cuadro de diálogo. All of this column's connection examples start from this dialog box. Todos los ejemplos de la conexión de la columna de este inicio de este cuadro de diálogo.


To create a basic connection for the HR schema, follow these steps: Para crear una conexión de base para el
esquema de recursos humanos, siga estos pasos:

1. Enter HR_ORCL for Connection Name . 1. Ingrese HR_ORCL de Nombre de conexión. The connection name is an arbitrary alias; conventionally, it's a combined username and database name. El nombre es un alias de conexión arbitraria, de manera convencional, es un nombre de usuario y nombre de la base combinada.

2. Enter hr for Username , and enter the hr password in the Password field. 2. Ingrese h durante nombre de
usuario, e introduzca la contraseña horas en el campo Contraseña.
(If you check the Save Password box, the password will be stored as an encrypted file on your local machine.) (Si marca la casilla Guardar contraseña, la contraseña se almacena como un archivo cifrado en el equipo local.)

3. Select Basic from the Connection Type list. 3. Seleccione básica de la lista Tipo de conexión.

4. Provide information for the following settings: 4. Proporcionar información para los siguientes ajustes:

  • Role: This is the set of privileges to be associated
    with the connection.
    Función: Este es el conjunto de
    privilegios a estar asociado con la conexión.
    Accept
    default for this connection.
    Acepte por defecto para esta conexión.



  • OS Authentication: Leave this unchecked for this
    connection.
    OS Autenticación: Deja esta casilla sin
    marcar para esta conexión.



  • Proxy Connection: Leave this unchecked for this
    connection.
    Conexión Proxy: Deje esta casilla sin
    marcar para esta conexión.



  • Hostname: This is the host system for the Oracle
    Database instance.
    Nombre de la máquina: Este es el
    sistema de acogida de la Base de Datos Oracle instance.
    Enter an IP address, a machine name, or localhost
    (when connecting to a database on the same machine as Oracle SQL
    Developer).
    Introduzca una dirección IP, nombre de una máquina, o
    localhost (cuando se conecta a una base de datos en la misma máquina como
    Oracle SQL Developer).
    The default is localhost
    .
    El valor por defecto es localhost.



  • Port: This is the listener port for the database. Puerto: Este es el puerto de escucha para la base de datos. The default port for Oracle Database is 1521.
    El puerto por defecto para Oracle de base de datos es 1521.



  • SID: This is the system identifier, such as orcl (the
    default for Oracle Database 10 g and Oracle Database 11 g )
    or xe (the default for Oracle Database 10 g Express Edition).
    SID: Este es el identificador del sistema, como ORCL (el valor
    predeterminado de Oracle Database y Oracle 10 g 11 g de base de datos) o xe (el valor predeterminado de Oracle Database 10 g Express Edition).



  • Service name: This is the network service name of the
    database.
    Nombre del servicio: Este es el nombre del
    servicio de red de la base de datos.
    Select
    either SID or Service name.
    Seleccione SID o nombre de servicio.

5. Click Test to validate the new connection.5. Haga clic en Prueba para validar la nueva conexión. Figure 1 shows the dialog box after the connection has
validated successfully.
La figura 1 muestra el cuadro de diálogo después
de la conexión se ha validado con éxito.

6. If your test reports "Status: Success," click Connect . 6. Si la prueba de informes "Situación: El
éxito", haga clic en Conectar.
Oracle SQL Developer will save the new connection, close the dialog box, and connect to the database. Oracle SQL Developer guardar la nueva conexión, cierre el cuadro de diálogo, y conectarse a la base de datos. (If you click Save instead of Connect , you will be able to create more new
connections in the dialog box before connecting.)
(Si hace clic en Guardar en lugar de Connect, usted será capaz de crear más conexiones en el cuadro de diálogo antes de conectar.)

Now HR_ORCL appears in Connections Navigator, and you can
expand it to browse the database.
Ahora HR_ORCL aparece en
Conexiones de Navigator, y se puede ampliar para navegar la base de datos.

TNS Connections TNS Conexiones

The TNS connection type is an appropriate option in any of
the following circumstances:
El tipo de conexión TNS es
una opción adecuada en cualquiera de las siguientes circunstancias:

You have an Oracle client installed on your machine.
Usted tiene un cliente de Oracle instalado en su máquina.


You have access to many Oracle Database instances.
Usted tiene acceso a muchas instancias de Oracle Database.


You do not know the machine details of the system
hosting the Oracle Database instance you want to connect to.
No conozco
los detalles del sistema de la máquina anfitriona de la base de datos de
instancia de Oracle que desea conectarse.


A TNS connection uses an alias entry from a tnsnames.ora
file.
Una conexión TNS utiliza una entrada de alias de un
archivo tnsnames.ora.
Oracle SQL Developer uses only
one tnsnames.ora file.
Oracle SQL Developer utiliza sólo un archivo
tnsnames.ora.
You may have more than one on your
local machine or want to use the tnsnames.ora file on a remote machine, so note
that Oracle SQL Developer looks sequentially for the tnsnames.ora file in the
following locations:
Usted puede tener más de uno en el equipo local o
si desea utilizar el archivo tnsnames.ora en una máquina remota, por lo que
tenga en cuenta que Oracle SQL Developer se ve de forma secuencial para el
archivo tnsnames.ora en los siguientes lugares:


1. $HOME/.tnsnames.ora 1.
$ HOME / .tnsnames.ora


2. $TNS_ADMIN/tnsnames.ora 2. TNS_ADMIN $ / tnsnames.ora

3. /etc/tnsnames.ora (non-Windows systems) 3. / / Tnsnames.ora (no los sistemas Windows, etc)

4. $ORACLE_HOME/network/admin/tnsnames.ora 4. $ ORACLE_HOME / network / admin / tnsnames.ora

5. Registry key 5. Clave del Registro



On Windows systems, if a tnsnames .ora file exists but
Oracle SQL Developer isn't using it, create a TNS_ADMIN environment variable
via Control Panel -> System -> Advanced -> Environment Variables ,
specifying the file's location as the variable's value.
En
los sistemas Windows, si un tnsnames archivo. Ora existe, pero Oracle SQL
Developer no lo está utilizando, cree una variable de entorno TNS_ADMIN a
través del Panel de control -> Sistema -> Avanzado -> Variables de
entorno, especificando la ubicación del archivo como variable el valor.


Follow these steps to create a TNS connection in Oracle
SQL Developer:
Siga estos pasos para crear una conexión de
TNS en Oracle SQL Developer:


1. In the New / Select Database Connection dialog box,
enter the same connection name, username, and password you used for the basic
connection.
1. En el Nuevo cuadro de diálogo Seleccionar
base de datos de conexión /, escriba el mismo nombre de conexión, nombre de
usuario y la contraseña que utiliza para la conexión de base.


2. Select TNS from the Connection Type list. 2. Seleccione TNS de la lista Tipo de conexión. The GUI changes slightly to provide a list of all network
alias entries available to you.
Los cambios GUI ligeramente a
proporcionar una lista de todos los alias de red a la que las entradas
disponibles para. Select an alias. Seleccione
un alias.

3. Click Test and Connect as before.
3. Haga clic en Prueba y Connect como antes.


LDAP Connections CONEXIONES LDAP









Oracle Internet Directory is a directory service that
enables you to store and manage network service names centrally.
Oracle Internet Directory es un servicio de directorio que le permite
almacenar y gestionar el servicio nombres de red de forma centralizada.
With it, user identity information can be stored in a
directory instead of in multiple databases.
Con él, la identidad de la
información del usuario se pueden almacenar en un directorio en lugar de en
varias bases de datos.
Oracle Internet Directory is
an implementation of the LDAP directory service and a component of Oracle Identity
Management.
Oracle Internet Directory es una implementación del servicio
de directorio LDAP y un componente de Oracle Identity Management.
For information on how to install, set up, and configure
Oracle Internet Directory, see the
Oracle Internet Directory
Administrator's Guide

.
Para obtener información sobre cómo instalar, configurar
y configurar Oracle Internet Directory, consulte el
directorio de Internet Guía del administrador de Oracle .









To look up database services in Oracle Internet Directory
and create an LDAP connection in Oracle SQL Developer, follow these steps:
Para buscar los servicios de base de datos en Oracle Internet
Directory y crear una conexión LDAP en Oracle SQL Developer, siga estos pasos:









1. In the New / Select Database Connection dialog box,
enter a new connection name, username, and password for the database user.
1. En el Nuevo cuadro de diálogo Seleccionar base de datos de conexión
/, introduzca un nombre de nueva conexión, nombre de usuario y contraseña para
el usuario de la base.









2. Select LDAP from the Connection Type list. 2. Seleccione LDAP de la lista Tipo de conexión.









3. Select a server from the LDAP Server list, which is
populated with entries from an ldap.ora file (similar to the tnsnames.ora
file).
3. Seleccione un servidor en el servidor LDAP
lista, que se rellena con entradas desde un archivo ldap.ora (similar al
archivo tnsnames.ora).
Alternatively, you can enter
LDAP server details directly.
Alternativamente, usted puede entrar en
detalles del servidor LDAP directamente.









4. Fill in the LDAP Admin User and LDAP Admin Password
fields.
4. Llene la parte administrativa de usuario LDAP y
LDAP Contraseña campos Admin.









5. Click Load to populate the DB Service list with all the
database service entries from Oracle Internet Directory.

5. Haga clic en Load para rellenar la lista de servicios DB con todos los
servicios entradas de base de datos de Oracle Internet Directory.









6. Select a service from the DB Service list, as shown in
Figure 2.
6. Seleccione un servicio en el Servicio de
lista de PP, como se muestra en la Figura 2.








7. Click Test and Connect as before.
7. Haga clic en Prueba y Connect como antes.









Other
Authentication Options
OTRAS OPCIONES DE AUTENTICACIÓN









Alternatives to database authentication and LDAP
authentication include operating system (OS) and proxy authentication.
Alternativas a la autenticación de base de datos y la autenticación
LDAP incluyen sistema operativo (OS) y la autenticación del proxy.
You can create connections in Oracle SQL Developer for
users who authenticate with these mechanisms. OS authentication.
Usted
puede crear conexiones en Oracle SQL Developer para los usuarios que se
autentican con estos mecanismos. Autenticación del sistema operativo.
With OS authentication, Oracle Database uses a database
user's OS login credentials to authenticate that user.
Con la
autenticación del sistema operativo, base de datos Oracle utiliza base de datos
de usuario de las credenciales de un sistema operativo entrada para autenticar
el usuario.
The user doesn't provide a username or
password to access the database, and Oracle Database doesn't store and manage
the account password.
El usuario no proporciona un nombre de usuario o
contraseña para acceder a la base de datos, Oracle Database y no almacenar y
administrar la contraseña de la cuenta.
Local OS
authentication can be used when the client and the database server are on the
same machine.
Local de autenticación sistema operativo puede ser
utilizado cuando el cliente y el servidor de base de datos están en la misma
máquina.
Remote OS authentication is possible but is
not considered secure.
Autenticación remota OS es posible pero no se
considera seguro.









To configure local OS authentication for a new user, first
find the value of the OS_AUTHENT_PREFIX database initialization parameter in
your system's init.ora file.
Para configurar la
autenticación local OS para un nuevo usuario, en primer lugar encontrar el
valor de la inicialización de parámetros de base de datos en los
OS_AUTHENT_PREFIX init.ora su sistema de archivos.
When
you create this new user in the database, you must add this parameter value as
a prefix to the OS username.
Al crear este nuevo usuario en la base de
datos, debe agregar el valor del parámetro como un prefijo al nombre de usuario
del sistema operativo.
The default value is OPS$,
for backward compatibility with earlier database releases.
El valor por
defecto es OPS $, para mantener la compatibilidad con versiones anteriores de
base de datos.
(If the value is "", the OS
username and the database username are the same, so you don't need to add a
prefix to create the Oracle usernames.)
(Si el valor es "", el
nombre de usuario del sistema operativo y el nombre de usuario de base de datos
son los mismos, por lo que no es necesario añadir un prefijo para crear los
nombres de usuario de Oracle.)









Establish a basic connection with the HR schema as the
SYSTEM user.
Establecer una conexión básica con el esquema
de recursos humanos como el usuario SYSTEM.
Execute
the following from the SQL worksheet, using your database's OS_AUTHENT_PREFIX
prefix and substituting your own OS username for "sue":

Ejecute el siguiente de la hoja de SQL, utilizando la base de datos
OS_AUTHENT_PREFIX su prefijo y sustituyendo su propio nombre de usuario del
sistema operativo para "demandar":









CREATE USER ops$sue IDENTIFIED EXTERNALLY; CREATE USER ops $ demandar IDENTIFICADOS externamente;









GRANT Connect, resource to sue; GRANT
Connect, los recursos para demandar;









Now create a basic connection for this user from the New /
Select Database Connection dialog box.
Ahora crea una
conexión básica para este usuario del Nuevo cuadro de diálogo Seleccionar base
de datos de conexión /.
Enter a connection name; select
Basic for Connection Type ; fill in the Hostname and Port fields; select OS
Authentication ; and provide a SID or Service name .
Introduzca un
nombre de conexión, seleccione Básico para el tipo de conexión, rellenar el
nombre del sistema y los campos de Puerto; seleccione la autenticación de
sistema operativo, y proporcionar un SID o nombre de servicio. Click Test and Connect as before. Haga clic en
Prueba y Connect como antes.









Proxy authentication. Proxy authentication means that one
JDBC connection acts as a proxy for other JDBC connections.
autenticación de proxy. proxy de autenticación significa que uno actúa
de conexiones JDBC como sustituto de otras conexiones JDBC.
Before you can create a connection that uses proxy
authentication, you need a proxy user.
Para poder crear una conexión que
utiliza la autenticación de proxy, necesita un usuario proxy.
In the following example, you create a new user named
HR_PROXY_USER and connect that user through the existing HR user.
En el
ejemplo siguiente, se crea un nuevo usuario llamado HR_PROXY_USER y conectar
ese usuario a través del usuario de recursos humanos existentes.









To create the new proxy user (HR_PROXY_USER) and grant the
correct proxy authentication privileges, execute the following in the SQL worksheet:
Para crear el usuario nuevo proxy (HR_PROXY_USER) y permiten la
autenticación proxy privilegios correctos, ejecute el siguiente en la hoja de
SQL:









CREATE USER HR_proxy_user IDENTIFIED BY < password
>;
CREATE USER HR_proxy_user SEÑALADAS POR contraseña
<>;









ALTER USER HR_proxy_user GRANT CONNECT THROUGH HR
AUTHENTICATED USING PASSWORD;
USUARIO GRANT ALTER
HR_proxy_user conectar a través de recursos humanos autenticado mediante
contraseña;









You also need to grant any other privileges required by
the new user, such as CREATE SESSION.
También es necesario
conceder otros privilegios requeridos por el nuevo usuario, tales como CREATE
SESSION.









Once your proxy user exists, you can create a new proxy
connection for HR in Oracle SQL Developer.
Una vez que el
usuario del proxy existe, puede crear una conexión proxy nuevo para los RR.HH.
en Oracle SQL Developer.
Select Proxy Connection in
the New / Select Database Connection dialog box, and complete the details in
the Oracle Proxy Connection dialog box, as shown in Figure 3.
Seleccione
la conexión proxy en el Nuevo cuadro de diálogo Seleccionar base de datos de
conexión / y complete los detalles en el cuadro de diálogo Conexión Proxy
Oracle, como se muestra en la Figura 3.








Connecting to
Third-Party Databases
CONEXIÓN A BASES DE DATOS DE TERCERA
PARTE









Oracle SQL Developer supports browsing and reviewing data
and objects in Microsoft Access, MySQL, Microsoft SQL Server, and Sybase.
Oracle SQL Developer soporta la navegación y la revisión de datos y
objetos en Microsoft Access, MySQL, Microsoft SQL Server y Sybase.
It also offers a SQL worksheet for ANSI SQL commands to
update or create objects for these databases.
También ofrece una hoja de
cálculo ANSI SQL para comandos SQL para actualizar o crear objetos de estas
bases de datos.
Users who want to migrate from
third-party databases to Oracle Database can use the Oracle SQL Developer
Migration Workbench.
Los usuarios que quieran migrar de otros
fabricantes de bases de datos de Oracle Database tercero puede utilizar la
migración de Oracle SQL Developer Workbench.
For any
of these situations, you need to create a connection to your third-party
database.
Para cualquiera de estas situaciones, es necesario crear una
conexión con el tercera base de datos de otros fabricantes.


Installing third-party drivers. The correct third-party
driver must be installed before you can create the connection.
Instalación de controladores de terceros. De terceros controlador
correcto debe estar instalado antes de poder crear la conexión.
You can install third-party drivers either manually or by
using Check for Updates ( Help->Check for Updates ).
Puede instalar
los controladores de otros fabricantes, ya sea manualmente o utilizando clic en
Buscar actualizaciones (Ayuda-> Buscar actualizaciones).
For manual installation, you can download supported
drivers from the following locations:
Para la instalación manual, puede
descargar los controladores desde el apoyo en las siguientes ubicaciones:



  • MySQL JDBC driver, version 5.08:
    dev.mysql.com/downloads/connector/j/5.0.html.
    MySQL
    JDBC controlador, la versión 5.08:
    dev.mysql.com/downloads/connector/j/5.0.html.



  • jTDS driver, version 1.2 (required by Microsoft SQL
    Server and Sybase): source forge.net/project/showfiles.php?group_id=33291.
    jTDS controlador, la versión 1.2 (requiere Microsoft SQL Server y
    Sybase): forge.net fuente / proyecto / showfiles.php? group_id = 33291.
    (See jtds.sourceforge.net for information about this
    driver.)
    (Ver jtds.sourceforge.net de información acerca de este
    controlador.)

Microsoft Access does not require an additional driver,
because it uses a JDBC/ODBC bridge.
Microsoft Access no
requiere un controlador adicional, ya que utiliza un JDBC / ODBC puente.


After downloading the driver you need, expand the driver
binary Java Archive (JAR) file, which is typically inside the downloaded
archive file:
Después de descargar el controlador que
necesita, expanda el controlador binario del archivo Java (JAR), que suele ser
dentro del archivo descargado el archivo:


  • The mysql-connector-java-5.0.8.tar.gz (or .zip)
    download for MySQL includes mysql-connector-java-5.0.8-bin.jar.
    El mysql-connector-java-5.0.8.tar.gz (o. Zip) descarga para MySQL
    incluye mysql-connector-java-5.0.8-bin.jar.



  • The jtds-1.2-dist.zip file for Microsoft SQL Server
    and Sybase includes jtds-1.2.jar.
    El-1.2-dist.zip
    jtds archivo para Microsoft SQL Server y Sybase incluye jtds-1.2.jar.


Select Tools -> Preferences -> Database -> Third
Party JDBC Drivers .
Seleccione Herramientas ->
Preferencias -> Base de datos - Parte Tercera> Controladores JDBC. Click Add Entry , and add your specific JAR file.
Haga clic en Añadir entrada, y agregar el archivo JAR específicos.
Now you can create a connection for your third-party
database.
Ahora usted puede crear una conexión de su base de datos de
proveedores terceros.


Creating a Microsoft Access connection. To create a
connection for Microsoft Access, follow these steps in the New / Select
Database Connection dialog box:
Creación de una conexión
de acceso de Microsoft. Para crear una conexión de Microsoft Access, siga estos
pasos en el Nuevo / Seleccione Conexión de base de datos cuadro de diálogo:


1. Enter a connection name. 1.
Introduzca un nombre de conexión.

2. Click the Access tab. 2. Haga clic
en la ficha Acceso.


3. Click Browse to locate the .mdb file you want to work
with.
3. Haga clic en Examinar para buscar el mdb. Archivo
que desea trabajar.


4. Click Connect. 4. Haga clic en
Conectar.


You can now expand and browse the new Microsoft Access
connection in the Connections Navigator.
Ahora puede
ampliar y navegar por el nuevo Microsoft conexión de Access en el Explorador de
Conexiones.


Creating a Microsoft SQL Server, Sybase, or MySQL
connection.
Creación de un Microsoft SQL Server, Sybase,
MySQL o conexión.
To create a connection to a
Microsoft SQL Server, Sybase, or MySQL database in the New / Select Database
Connection dialog box, follow these steps:
Para crear una conexión con
un servidor SQL Server, Sybase, MySQL o en la base de datos Nuevo / Base de
datos de conexión cuadro de diálogo Seleccione Microsoft siga estos pasos:


1. Enter a connection name, username, and password. 1. Introduzca un nombre de conexión, nombre de usuario y contraseña.


2. Click the SQL Server, Sybase , or MySQL tab. 2. Haga clic en el SQL Server, Sybase, MySQL o pestaña. Figure 4 shows the SQL Server tab. Figura 4 se
muestra la pestaña Servidor de SQL.


3. Choose one of the password authentication options (each
of these connections offers you multiple choices).
3.
Elija una de las opciones de autenticación de contraseña (cada una de estas
conexiones le ofrece opciones múltiples).


4. Fill in the Hostname and Port fields. 4. Rellene los campos Nombre de host y puerto. The default port is 1433 for Microsoft SQL Server, 5000 for Sybase, and
3306 for MySQL.
El puerto por defecto es 1433 para Microsoft SQL Server,
Sybase para 5000 y 3306 para MySQL.


5. Click Choose database to populate the database list,
and select the appropriate database from the list.
5. Haga
clic en Base de Datos escoja para llenar la lista de bases de datos, y
seleccione la base de datos correspondiente en la lista.

6. Click Test and Connect as before.
6. Haga clic en Prueba y Connect como antes.

You can now browse your Microsoft SQL Server, Sybase, or
MySQL database in the Connections Navigator.
Ahora puede
navegar de Microsoft SQL Server, Sybase, MySQL o base de datos en el Explorador
de Conexiones.


CONFIGURACIÓN DEL AGENTE EN ORACLE

Agente de Oracle


The UltraBac Oracle Agent allows the backup of Oracle databases without shutting down the Oracle services before backup. El UltraBac Oracle Agent permite la copia de seguridad de bases de
datos Oracle sin necesidad de apagar los servicios de Oracle antes de la copia.
The agent can perform either "hot" or
"cold" backups depending on the mode of the Oracle databases:

El agente puede realizar ya sea en caliente "o" frío "copias de
seguridad en función de la modalidad de las bases de datos Oracle:


  • Hot backup – Oracle database must be set in
    "ARCHIVELOG" mode, and the Oracle database will not be
    dismounted during backup.
    copia de seguridad de agua
    caliente - base de datos de Oracle se debe establecer en "ARCHIVELOG
    modo", y la base de datos de Oracle no se desmontarán durante copia
    de seguridad.



  • Cold backup – Oracle database must be set in
    "NOARCHIVELOG" mode.
    copia de seguridad
    Fría - Banco de datos de Oracle se debe establecer en "NOARCHIVELOG
    modo".
    The Oracle database will be
    automatically dismounted before, and re-mounted after backup.
    La
    base de datos Oracle será automáticamente desmontado antes, y vuelven a
    montar después de copia de seguridad.


Setup and Configuration Instalación y configuración

The UltraBac Oracle Agent has several requirements for use: El UltraBac Agente de Oracle tiene varios requerimientos para su uso:


  • Oracle Version 8i or greater.
    Oracle 8i, versión o superior.



  • Oracle client software must be installed on the
    UltraBac host (the Net8/Net9 Assistant and the Microsoft ODBC Administrator).
    el software cliente de Oracle debe estar instalado en el host
    UltraBac (el Net8/Net9 Asistente y el Administrador ODBC de Microsoft).



  • The Oracle database must be in "ARCHIVELOG"
    mode to perform hot backups, or "NOARCHIVELOG" mode to run cold
    backups.
    La base de datos Oracle debe estar en
    "ARCHIVELOG" modo de realizar copias de seguridad en caliente, o
    "NOARCHIVELOG modo" para ejecutar copias de seguridad de frío.



  • The username and password for the Oracle backup set
    must be entered in UltraBac, under
    "Tools"/"Options"/"Agents"/"Oracle
    Backup Agent."
    El nombre de usuario y contraseña
    para el conjunto de copia de seguridad de Oracle se debe introducir en
    UltraBac, en "Herramientas" / "Opciones" /
    "Agentes" / "Oracle Backup Agent".


Configuring the Net8/Net9 Assistant Configuración del Asistente Net8/Net9

Before creating a backup set, the Net Assistant must be
configured to allow access to the Oracle database.
Antes
de crear un conjunto de copia de seguridad, la Red asistente debe estar configurado para permitir el acceso a la base de datos Oracle.


  1. Open the Net8 Assistant (default location is
    "Start"/"Programs"/"Oracle"/"Network
    Administration"/"Net8 Assistant").

    Abra el Net8 Assistant (ubicación predeterminada es "Inicio" /
    "Programas" / "Oracle" / "de administración de
    redes" / "Net8 Assistant").



  2. Highlight "Service Naming" and click the
    "+."
    Resalte "servicio de
    nombres" y haga clic en el signo "+".


name and click "Next."
En la Red de Servicio de nombres asistente, escriba un nombre de servicio y haga clic en
"Siguiente".

  1. Leave the default "TCP/IP" (internet
    protocol) selected and click "Next."
    Deje
    el valor predeterminado "TCP / IP" (Internet Protocol),
    seleccione y haga clic en "Siguiente".



  2. Type the computer name of the system running Oracle
    in the "Host Name" field. Leave the default port number and
    click "Next."
    Escriba el nombre del equipo
    del sistema que ejecuta Oracle en el Nombre de campo "Host".
    Deje el número de puerto por defecto y haga clic en "Siguiente".

  3. Type the Oracle Service Name in the "Service
    Name" field and click "Next."
    Escriba
    el nombre de Oracle Service en el nombre "Servicio" y haga clic
    en "Siguiente".



  4. Click "Test" and make sure the connection
    is completed successfully. Click "Close," then
    "Finish."
    Haga clic en "Test" y
    asegúrese de que la conexión se ha realizado correctamente. Haga clic en
    "Cerrar" y luego "Finalizar".



  5. Click "File"/"Save Network
    Configuration" before closing the Net8 Assistant.
    Haga clic en "Archivo" / "Guardar configuración de
    red" antes de cerrar el Asistente Net8.

Configuring the Microsoft ODBC Driver Configuración del controlador ODBC de Microsoft

Before creating a backup set, the ODBC Driver must be
configured to allow access to the Oracle database.
Antes
de crear un conjunto de copia de seguridad, el controlador ODBC debe estar
configurado para permitir el acceso a la base de datos Oracle.

  1. Open
    "Start"/"Programs"/"Oracle"/"Network
    Administration"/"Microsoft ODBC Administrator."
    Abre "Inicio" / "Programas" /
    "Oracle" / "Administración de Redes" /
    "Administrador de ODBC de Microsoft."



  2. Click the System DSN tab, and click "Add." Haga clic en la ficha DSN de sistema y haga clic en
    "Añadir".



  3. Scroll to the bottom, highlight "Oracle ODBC
    Driver," and click "Finish."

    Desplácese hasta el final, resalte "Oracle ODBC Driver" y haga
    clic en "Finalizar".



  4. Type a name and a description in the "Data
    Source Name" and "Description" fields.

    Descripción campos Escriba un nombre y una descripción en el Nombre de
    origen de "Datos" y "".



  5. In the "Service Name" field, type in the
    Net Service Name as specified in the configuration of the Net8 Assistant.
    En el nombre "Servicio", escriba en la Red de Servicio de nombres como se especifica en la configuración del Asistente Net8.

Type the user ID in the "UserID" field and
click "OK."
Escriba el ID de usuario en el
"UserID" y haga clic en "Aceptar".

To test the Oracle configuration:
Para probar la configuración de Oracle:


  1. Run the "Oracle ODBC Test" located in
    "Start"/"Programs"/"Oracle"/"Network
    Administration."
    Ejecute el "Oracle ODBC
    Test" situado en "Inicio" / "Programas" /
    "Oracle" / "de administración de redes."



  2. Click "Connect," go to the Machine Data
    Source tab, and double click the "Data Source Name" specified in
    the ODBC driver setup.
    Haga clic en
    "Conectar", pase a la ficha Origen de datos de equipo, y haga
    doble clic en el nombre de "Data Source" se especifica en la
    configuración del controlador ODBC.



  3. When prompted by the Oracle ODBC driver connect
    screen, type the password and click "OK."

    Cuando se lo indique la pantalla del controlador ODBC de Oracle
    conectarse, escriba la contraseña y haga clic en "Aceptar".



  4. Click "All Tables" and data will appear in
    the query box, indicating the agent has been set up correctly.
    Haga clic en "todas las tablas" y los datos aparecerán
    en el cuadro de consulta, lo que indica que el agente ha sido configurado
    correctamente.


Creating an Oracle Backup Set Creación de una copia de seguridad de Oracle


To create an Oracle Agent backup set:
Para crear un Agente de Oracle grupo de respaldo:


  1. Launch the Backup Wizard by selecting the Backup tab,
    and clicking "New."
    Inicie el Asistente
    para copia de seguridad, seleccione la ficha Copia de seguridad, y
    haciendo clic en "Nuevo".



  2. Click "Oracle Agent" to highlight the
    option. Click "Next" to continue.
    Haga
    clic en "Oracle Agent" para resaltar la opción. Haga clic en
    "Siguiente" para continuar.



  3. Select the object to be backed up, or "All
    Objects." Click "Next."

    Seleccione el objeto de hacer copia de seguridad, o "todos los
    objetos." Haga clic en "Siguiente".

  4. Select the type of backup to be performed. This
    setting must match the mode of the Oracle database.

    Seleccione el tipo de copia de seguridad a realizar. Este valor debe
    coincidir con el modo de la base de datos Oracle. Click "Next." Haga clic en "Siguiente".



  5. Enter a Set Description, and click "Next." Introduzca una Descripción Set, y haga clic en
    "Siguiente".



  6. Select "View/Edit files in the backup set,"
    and click "Finish."
    Seleccione "Ver /
    Editar los archivos en el conjunto de copia de seguridad" y haga clic
    en "Finalizar".

Dividing the Backup to Improve Speed Performance La división de la copia de seguridad para mejorar el rendimiento de la
velocidad


If the Oracle machine exceeds storage capacity, or if the
entire "TableSpace" doesn't fit on one tape, the Oracle Agent backup
can be divided into separate sets. Dividing the backup in this manner will
allow the Oracle database to be backed up to more than one storage device
simultaneously, increasing backup speed.
Si la máquina
supera la capacidad de almacenamiento de Oracle, o si toda la
"tablas" no cabe en una cinta, la copia de seguridad de Oracle Agent
puede dividirse en grupos separados. La división de la copia de seguridad de
esta manera permitirá que la base de datos Oracle para hacer copia de seguridad
de más de un dispositivo de almacenamiento al mismo tiempo, aumentando la
velocidad de copia de seguridad.
Instead of backing
up the entire Oracle database with one session directing the backup to one
storage device, three sets can be used:
En lugar de copias de seguridad
de toda la base de datos de Oracle con un período de la dirección de la copia
de seguridad en un dispositivo de almacenamiento, tres juegos pueden ser
utilizados:

  • First set – Used to back up the first half of the
    "Tablespace."
    Primer grupo - Se usa para
    copias de seguridad de la primera mitad del espacio de tablas
    "."



  • Second set – Used to back up the second half of the
    "Tablespace."
    Segundo grupo - Se usa para
    copias de seguridad de la segunda mitad el espacio de tablas "."



  • Third set – Used to back up the
    "ControlFiles" and "ArchiveLogs."

    Tercer set - Se usa para copia de seguridad del ControlFiles "y"
    ArchiveLogs ".


The "ArchiveLogs" are deleted immediately after
the backup completes. Due to the fact that many logs are generated when a
"Tablespace" is taken offline, it is strongly recommended to back up
the "ArchiveLogs" after the "Tablespace," when the
"Tablespace" is divided into two sets. The Init.ora file is not
enumerated in the backup sets, but is always backed up, in both hot and cold
backups.
El ArchiveLogs "se eliminan inmediatamente
después de la copia de seguridad completa. Debido al hecho de que muchos
registros se generan cuando un" tablas "se queda sin conexión, se
recomienda encarecidamente realizar una copia de la ArchiveLogs" "después de las tablas", "cuando el" de tablas ",
se divide en dos partes. El archivo init.ora no se enumera en los conjuntos de
copia de seguridad, pero es siempre una copia de seguridad, tanto en frío y
caliente copias de seguridad.


During enumeration of an Oracle cold backup set,
"OnlineRedoLogs" will replace the
"ArchiveLogs." During a cold backup, the
"OnlineRedoLogs" are never deleted.
Durante la
enumeración de una copia de seguridad de Oracle fría conjunto,
"OnlineRedoLogs" sustituirá a los ArchiveLogs "." Durante
una copia de seguridad de frío, el OnlineRedoLogs "nunca se borran.

Restore Restaurar

Restoring an Oracle database requires the data to be
restored using UltraBac, then the database must be mounted by the Oracle
administrator.
Restauración de una base de datos Oracle
necesita los datos para ser restaurado utilizando UltraBac, entonces la base de
datos debe ser montado por el administrador de Oracle.


  1. Launch the Restore Wizard by selecting the Restore
    tab, and selecting the index source.
    Inicie el
    Asistente para restauración, seleccione la ficha Restaurar y seleccionar
    la fuente de índice.



  2. Select the objects for restore.
    Seleccione los objetos para la restauración.



  3. Click "Operations"/"Restore Selected
    Files."
    Haga clic en "Operaciones" /
    "restaurar archivos seleccionados".

  4. Check "Keep Original Location" to restore
    the Oracle database to its original location.
    Marque
    "Mantener la ubicación original" para restaurar la base de datos
    Oracle en su ubicación original.



  5. To restore to an alternate location, type in or
    browse to an alternate restore path in the "New Location" field
    and click "Next."
    Para restaurar a una
    ubicación alternativa, escriba o busque una alternativa de restauración
    trayectoria en el "Nueva ubicación" y haga clic en
    "Siguiente".



  6. Check "Unattended," and click
    "Restore."
    Marque "desatendida",
    y haga clic en "Restaurar".

SQL (ORACLE)

FUNCIONES

FUNCIONES NUMÉRICAS

ABS( ): Devuelve el valor absoluto de un nº . Formato:
ABS(<nº>)


CEIL( ): Devuelve un entero >= nº . Formato:
CEIL(<nº>)


FLOOR( ): Devuelve un entero <= nº . Formato:
FLOOR(<nº>)


MOD( ): Devuelve el resto de la división nº1 /
nº2. Formato: MOD(<nº1>,<nº2>)


POWER( ): Devuelve nº1nº2. Formato:
POWER(<nº1>,<nº2>)


ROUND( ): Devuelve el nº n redondeado con m
decimales. Formato: ROUND(<nº>, [<nº decimales>])


SIGN( ): Devuelve el signo de n (nº < 0 à -1; nº = 0 à 0; nº > 0 à 1). Formato:
SIGN(<nº>)


TRUNC( ): Devuelve el nº n con m decimales
(por defecto, m=0). Si m es negativo trunca m dígitos a la izquierda del punto
decimal. Formato: TRUNC(<nº>,<nº decimales>)

Ejemplos:

SELECT
TRUNC(4567, -3), TRUNC(4567.89, 1) FROM DUAL;
à devuelve 4000 y 4567.8


SELECT TRUNC(4567.555), TRUNC(1, -2) FROM DUAL; à devuelve
4567 y 0


SQRT( ): Devuelve la raíz cuadrada de un nº . Formato:
SQRT(<nº>)


FUNCIONES DE GRUPOS

AVG( ): Devuelve la media. Formato:
AVG(<campo numérico/lista de valores>)

COUNT( ): Devuelve el nº de valores no
nulos
en los registros recuperados. Formato:
COUNT({<campo> *})


DISTINCT( ): Contar los distintos. [no existe
en el SQL de ACCESS ]. Formato: DISTINCT({<campo> *})


MAX( ): Devuelve el valor máximo. Formato:
MAX(<campo>)

MIN( ): Devuelve el valor mínimo. Formato:
MIN(<campo>)


SUM( ): Devuelve la suma de todos los
registros del grupo. Formato: SUM(<campo>)


FUNCIONES DE CONVERSION DE TIPOS DE DATOS


TO_CHAR( ): Convierte un nº o una fecha en una
cadena.
Formato:

TO_CHAR(<nº>).

Ejemplo: TO_CHAR(1000)

TO_DATE( ): Convierte una cadena en una fecha.
Formato: TO_DATE(<cadena>). Ejemplo:
TO_DATE('01-DEC-97')


TO_NUMBER( ): Convierte una cadena en un nº. Formato:
TO_NUMBER(<cadena>). Ejemplo: TO_NUMBER('1000')


FUNCIONES DE CADENAS


INITCAP( ): El primer carácter en mayúsculas. Formato:
INITCAP(<cadena>)


INSTR( ): Comprueba si una cadena está dentro
de otra. Se busca la ocurrencia nº n empezando desde <inicio>.


Formato: INSTR("<cadena donde se
busca>","<cadena buscada>",<inicio>,<nº
ocurrencia>)


LENGTH( ): Longitud de una cadena. Formato:
LENGTH(<cadena>)

LOWER( ): Pasa la cadena a minúsculas. Formato:
LOWER(<cadena>)

LPAD( ): Rellena una columna por la izquierda
con el carácter indicado.


(a)
Si nº > longitud del campo: los espacios que sobran se rellenan por la
izquierda con el carácter indicado.


(b)
Si nº = longitud del campo: sin cambios


(c)
Si nº < longitud del campo: devuelve los primeros caracteres del campo


Formato: LPAD(<campo>,
<nº>,<carácter>)


Ejemplos:


SELECT
LPAD('S1', 10 '_') FROM DUAL [Esta select devuelve la cadena '________S1' ]


SELECT
LPAD('1234567890', 2, '_') FROM DUAL [Esta select devuelve la cadena '12' ]


SELECT
LPAD(1000, 7, '*') FROM DUAL [Esta select devuelve la cadena '***1000'

Ejemplo:select lpad(cod_usuario, 2, '_')
from list_movimientos;

LTRIM( ): Elimina los espacios de la ß . Formato:
LTRIM(<campo carácter>)


REPLACE( ): Hace 'buscar <cad1> y
cambiarla por <cad2>' dentro de <cadena>.


Formato:
REPLACE("<cadena>","<cad1>","<cad2>")


Ejemplo: SELECT
REPLACE('SCOTT','S','BOY') FROM DUAL

RPAD( ): Aumenta el tamaño de una columna. Los
espacios que sobran se rellenan por la derecha.


(a)
Si nº > longitud del campo: los espacios que sobran se rellenan por la
derecha con el carácter indicado.

(b)
Si nº = longitud del campo: sin cambios

(c)
Si nº < longitud del campo: devuelve los primeros caracteres del campo

Formato: RPAD(<columna>, <ancho
del campo>,<carácter>)


Ejemplos:

SELECT
RPAD('S1', 10 '_') FROM DUAL [Esta select devuelve la cadena ' S1________' ]

SELECT
RPAD('S1', 10 '_-') FROM DUAL [Esta select devuelve la cadena ' S1_-_-_-_-' ]


SELECT
RPAD('S1', 12, '_- ') FROM DUAL [Esta select devuelve la cadena ' S1_- _- _- _'
]


SELECT
RPAD('1234567890', 2, '_') FROM DUAL [Esta select devuelve la cadena '12' ]


RTRIM( ): Elimina los espacios de la à . Formato:
RTRIM(<campo carácter>)


SOUNDEX( ): Busca palabras que suenen igual
(en inglés). Formato: SOUNDEX("<cadena>")


Ejemplo:


SELECT
apellidos FROM empleados

WHERE SOUNDEX(apellidos) = SOUNDEX("SMYTHE")

SUBSTR( ): Devuelve un pedazo de una cadena. Formato:
SUBSTR(<cadena>,<inicio>,<nº caracteres>)


TRIM( ): Elimina los espacios de la ß y à (es como hacer
un LTRIM(RTRIM(…))
). Formato: TRIM(<campo carácter>)


Ejemplo:

SELECT
'==>' TRIM(SUBSTR(DESCRIPCION, 1, 40)) '<==' "Sin
espacios"

FROM almacenes

WHERE CODIGO LIKE 'A_B_'

Sin espacios

--------------------------------------------------


==>Almacén
de la calle Bravo Murillo<==


==>Almacén
de la calle Sainz de Baranda<==


UPPER( ): Pasa la cadena a mayúsculas. Formato:
UPPER(<cadena>)

FUNCIONES DE FECHA

ADD_MONTHS( ): Suma n meses a una fecha. Formato:
ADD_MONTHS(<fecha>,<nº meses>)


DAY( ): Día del mes. Formato:
DAY(<fecha>)

LAST_DAY( ): Nº de días del mes. Formato: LAST_DAY(<fecha>).

Ejemplo: SELECT LAST_DAY(SYSDATE)
FROM DUAL

MONTH( ): Mes de la fecha. Formato:
MONTH(<fecha>)

MONTHS_BETWEEN( ): Devuelve nº de meses que
hay entre dos fechas. (fecha2 - fecha1)

Formato: MONTHS_BETWEEN(<una
fecha>,<otra fecha>)


SYSDATE: Fecha del sistema. Formato:
SYSDATE. Ejemplo: SELECT SYSDATE FROM DUAL

WEEKDAY( ): Día de la semana (0àdomingo, 6àsábado)


YEAR( ): Año de la fecha. Formato:
YEAR(<fecha>)


COMANDOS DEL SQL DE ORACLE (ORDENADOS A - Z)

- A -

ALTER TABLE: Modifica estructura de la tabla
(pone/quita campos, pone/quita índices,…). No se pueden destruir campos con
esta orden. ADD se pone al añadir o editar campos.


Formato: ALTER TABLE <nombre tabla>
[ADD (<nombre campo y características>)]


[DROP PRIMARY KEY][DROP FOREIGN KEY][ <definir clave
primaria>][<definir clave foránea>]

Ejemplos:


ALTER
TABLE prueba ADD (precio NUMBER(6))


ALTER
TABLE prueba ADD (precio CHECK precio > 5)

ALTER
TABLE prueba FOREIGN KEY en_region (region) REFERENCES regiones

ALTER
TABLE prueba DROP FOREIGN KEY (region)

ALTER TABLE referencia add primary key (clave_ext)

ALTER
TABLE prueba FOREIGN KEY ciudad REFERENCES regiones
ó
ALTER TABLE prueba
FOREIGN KEY ciudad (ciudad) REFERENCES regiones

- C -

COMMIT: Transacción realizada con éxito. Formato:
COMMIT [WORK]. Ejemplo: COMMIT

CREATE INDEX: Crea ficheros de índice.

Formato: CREATE INDEX <nombre
índice> ON <nombre tabla> (<campos que forman la clave>) [ASC
DESC]

· ASC ordena de < a > ; DESC ordena de > a <.

Ejemplo:

CREATE
INDEX OFI_IND ON oficinas (NOMB_OF)


CREATE SYNONYM: Sirve para poner un nombre más
corto a las tablas de otros usuarios


Formato: CREATE SYNONYM <nombre> FOR
<tabla>
à Crea sinónimo

Ejemplo: CREATE SYNONYM VENTAS FOR
ADMI_PP.VENTAS

CREATE TABLE: Crea tablas vacías.

Formato 1: CREATE TABLE <nombre[1]> (<definición de columnas>), <clave principal>,
<clave foránea>, <campos que no pueden tener valores duplicados>)
ß
crea una tabla
nueva

Formato 2: CREATE TABLE <nueva
tabla> AS <una SELECT>
ß crea una copia de una tabla


<definición de campos>: Van entre ( ) y
separados por comas. Formado por: <nombre campo> <tipo dato> [WITH
DEFAULT "<valor por defecto>"][NOT NULL].


<clave principal>: PRIMARY KEY
<nombre columna>


<clave foránea>: FOREIGN KEY <nombre
campo> REFERENCES TO <nombre tabla> ON DELETE [RESTRICT CASCADE
SET NULL]


<campos que no pueden tener valores duplicados>: UNIQUE <nombre campo>


La clave principal debe ser NOT NULL


La clave foránea no debe ser NOT NULL


La clave debe existir


Si no se indica tipo de borrado, se elige
RESTRICTED

Ejemplo:


CREATE TABLE oficinas

(COD_OF INTEGER NOT NULL, ß Primer campo

REGION VARCHAR2(20) WITH DEFAULT "ESTE" NOT NULL,

CIUDAD VARCHAR2(20) NOT NULL,

DIR INTEGER, ß Ultimo campo

PRIMARY KEY (COD_OF), ß Clave principal

FOREIGN KEY ESTA_EN (DIR) ß Clave foránea

REFERENCES DIRECCIONES ß Otra tabla

ON DELETE CASCADE) ß Tipo de borrado para claves foráneas

CREATE VIEW: Crea una vista. Las vistas son
tablas virtuales formadas a través de una consulta a partir de otras tablas y/o
vistas existentes en la base de datos. Sirve para crear esquemas externos.


Formato:

CREATE
VIEW [OR REPLACE] [FORCE NOFORCE] <nombre de vista> [(<nombre
campos>)] ;
aquí va una SELECT>

OPTION [CONSTRAIT <restricción>]]

Los nombres de columnas son opcionales. Si se ponen se deben poner todos o ninguno (sólo el nombre del campo

· Es obligatorio cuando se devuelve un valor calculado, es decir cuando
la columna ha sido calculada dentro de la vista.

· Es obligatorio cuando sacamos una vista que combina diferentes tablas

Opciones;

· OR REPLACE: Si existiese una vista con ese
mismo nombre, con esta opción se reemplaza el nombre. Indica que existe ya una
vista con el mismo nombre y que sea sustituida por otra.


FORCE: Crea la vista aunque no existan los
objetos.

· NOFORCE: Funciona al revés que FORCE.

· WITH CHECK OPTION: Valida las tuplas para
saber si esas tuplas se pueden meter, modificar,…

· CONSTRAINT <restricción>: Pone restricciones.
Se usa en casos muy especiales.

Ejemplo de vista horizontal (todos los campos):

CREATE VIEW oficinas_este AS SELECT * FROM oficinas WHERE region =
'este'

Ejemplo de vista vertical (se especifican campos):


CREATE
VIEW oficinas_este AS SELECT cod_ofi, nom_ofi FROM oficinas

Ejemplo de vista mixta (es horizontal y vertical a la vez) (se
especifican campos):

CREATE VIEW oficinas_este AS SELECT cod_ofi, nom_ofi FROM oficinas
WHERE cod_ofi IN [1,2,8,9]

-D-

DELETE FROM: Elimina registros de una tabla.

Formato 1: DELETE FROM <tabla>
[WHERE <condición>]

Formato 2: DELETE FROM <tabla>
[WHERE <aquí va una SELECT>]

· Si no se pone la condición se borran todos.

Ejemplos:

DELETE
FROM juegos

WHERE (cod < 10)

DELETE FROM CI071

WHERE FLD4 IN (SELECT FLD4 FROM CI071 WHERE FLD4 NOT LIKE
'-%');

(Elimina registros en albaranes_prov_cab_hist si no existen registros
en pedidos_prov_cab con el codigo indicado)

delete from albaranes_prov_cab_hist

where cod_albaran = 'dedede' and cod_proveedor = 'PERSONA4' AND

(select count(*) from albaranes_prov_lin_hist

where cod_albaran = 'dedede' and
cod_proveedor = 'PERSONA4') = 0;

DROP INDEX: Elimina el índice. Formato:
DROP INDEX <nombre índice>

Ejemplo: DROP INDEX ndx_moto

DROP SYNONYM: Elimina el sinónimo. Formato:
DROP SYNONYM <nombre>

Ejemplo: DROP SYNONYM ventas

DROP TABLE: Elimina una tabla. Se pierden
todos los datos de la tabla

Formato: DROP TABLE <nombre
tabla> [CASCADE CONSTRAINT]


CASCADE CONSTRAINT: Se borran todas las
restricciones de integridad referencial que hacen referencia a la clave
primaria o única de la tabla a borrar. Se le indica al sistema que se conocen
las restricciones, pero que aun así se quiere eliminar.

Ejemplo: DROP TABLE motos CASCADE
CONSTRAINT

DROP VIEW: Todas las referencias que
pertenecen a la vista se deben redefinir o eliminar para evitar errores,


Si se tiene una vista definida sobre otra y desaparece la 2ª, entonces la 1ª vista
no funciona.


Formato: DROP VIEW <nombre de vista>



Ejemplo: DROP VIEW vista_01


- G -

GRANT...ON...TO: Se dan privilegios de acceso
a un usuario para las tablas seleccionadas.



Formato: GRANT <permisos> ON <objeto> TO [ PUBLIC <
usuarios>] [WITH GRANT OPTION]


· WITH GRANT OPTION: Los usuarios seleccionados
pueden dar privilegios a otros.









































































































PERMISOS QUE SE PUEDEN USAR CON GRANT & REVOKE





PERMISOS





QUE HACE CADA UNO





ALTER





Añadir
/ eliminar campos y renombrar tablas





ALL





Todos los permisos





DELETE





Borrar registros





INDEX





Crear índices





INSERT[(campos)]





Insertar registros





REFERENCES





Crear referencias (claves externas))





SELECT [(campos)]





Permite
lectura de campos de tablas (Por defecto: Todos)





UPDATE[(campos)]





Permite
modificar datos de campos de tablas (Por defecto: Todos)





Ejemplo:

GRANT
UPDATE(empresa, cliente) ON clientes TO rodolfo


GRANT ALL TO oscar


- I -

INSERT INTO…VALUES: Mete valores en una tabla.
Los coloca donde le parezca.


Formato 1 (un registro): INSERT INTO <nombre tabla> [(<Lista de campos>)] VALUES
(<Lista de valores>).


Formato 2 (muchos registros): INSERT INTO TABLA <una SELECT>


· Si el campo es carácter (VARCHAR2, CHAR o LONG) se debe poner entre
comillas.

· Si el campo es numérico (NUMBER), no se pone comillas.

· En los campos carácter se puede meter el NULL, pero si se ha definido
antes al campo con la opción NOT NULL, da error.

· Si no se incluyen los campos, se refiere a todos los campos. Influye el
orden en que se colocaron en la tabla.

Ejemplo:

INSERT
INTO coches (MARCA, MODELO) VALUES ('CITROEN', 'ZX')
ß Inserta un registro


INSERT INTO proveedores VALUES ('P1', 'TOMAS', 'A', 'BILBAO') ß Inserta un
registro


INSERT INTO p11 SELECT * FROM p10 WHERE cod_prov = 'S1'

- L -

LOCK TABLE: Se usa para bloquear una tabla o
vista. El objetivo es garantizar que durante el tiempo que se trabaje con ella
la tabla
No es modificada por el usuario y
Otros usuarios no
puedan acceder a la tabla. Para poder realizar esta operación basta con tener
algún privilegio.

Los bloqueos se pueden quitar con COMMIT & ROLLBACK


Formato: LOCK TABLE
[<esquema>.[<tabla> <vista>]] IN <modo bloqueo> MODE
[NOWAIT]


Opciones:


· <modo bloqueo>: Operaciones permitidas
mientras dura el bloqueo.


· NOWAIT: No espera hasta que finalice el
bloqueo (si no se pone esta opción y se intenta entrar una tabla bloqueada el
SGBD se queda esperando hasta que termine el bloqueo)





































































Tipo de bloqueo





Efectos que tiene ese bloqueo en la base de datos





ROW SHARE (mínimo)





Nivel
mínimo de bloqueo. Se usa para modificar algunas filas. Los demás usuarios
pueden consultar o modificar otras filas.
Los otros
no pueden usar LOCK … EXCLUSIVE.





ROW EXCLUSIVE





Es
como la anterior pero prohibe que otros usuarios bloqueen la tabla para uso
compartido.





SHARE





No
deja que otros usuarios bloqueen la tabla de forma más restringida (Permite
bloqueos de menor o igual nivel). Permite que los usuarios vean la tabla,
pero las actualizaciones sólo se pueden realizar sobre filas específicas.





SHARE ROW EXCLUSIVE





No
permite más bloqueos sobre la tabla. Permite que se vean los registros





EXCLUSIVE (máximo)





Nivel
máximo de bloqueo. El usuario que realiza el bloqueo es el único que puede
hacer operaciones sobre la tabla.
Los otros usuarios
no pueden hacer nada.




Ejemplos:

LOCK TABLE motos IN SHARE MODE NOWAIT

LOCK TABLE coches IN ROW SHARE MODE

- R -

RENAME: Cambia el nombre de una tabla. Formato:
RENAME <tabla1> TO <tabla2>

Ejemplo:

RENAME tmp1 TO tmp3

REVOKE…ON…FROM: Quita permisos. Formato:
REVOKE <permisos> ON <tabla> FROM {PUBLIC <usuarios>}
[CASCADE CONSTRAINTS]

· Los permisos son los mismos que los de GRANT.


LADE CONSTRAINTS elimina todas las referencias

Ejemplo: REVOKE ALL ON juegos FROM
picnic


ROLLBACK: Se ha producido un error en la
transacción. No guarda los cambios realizados.

Formato: ROLLBACK [WORK] [TO
<punto de referencia>].

· Los puntos de referencia sirven para dividir una transacción grande en
varias partes. Si se usa la opción TO <punto de ref> no repite toda la
transacción desde el principio.
(lo hace desde ese
punto)

Ejemplo:
ROLLBACK


- S -


SAVEPOINT: Crea puntos de referencia. Formato:
SAVEPOINT <nombre punto de referencia>


Ejemplo: SAVEPOINT p1

SELECT…FROM: Selecciona los datos que
interesan de una tabla o muchas. Se parece a la orden SET FILTER TO del dBase


Formato: SELECT
[DISTINCT] <* lista de campos> [expresiones
[2]] [[AS] "<alias>"] >

FROM <tablas> [[AS] <alias>]

[WHERE <condición>]

[GROUP BY <lista de
campos>

[HAVING < condición>]]

[ORDER BY <lista de campos> [ASC DESC] ]

[INTO TEMP < nombre tabla temporal>]

[{UNION [ALL] INTERSECT MINUS} <otra select>]


1) OPCIONES QUE PUEDEN PONERSE ENTRE SELECT Y FROM


· *: Todos los campos

· DISTINCT: No muestra datos repetidos (campos
con el mismo valor).


· DISTINCTROW: No muestra datos repetidos
(registros con el mismo valor).

· <lista de campos>: Campos que se van a
usar.

· <expresiones>: Al poner una expresión se
consigue crear un nuevo campo en memoria en que se guarda el resultado de esa
expresión.
Se pueden usar los operadores +, -, /,…


· <alias>: Otra forma de llamar a las
tablas. Primero se pone la tabla que se va a usar y después el alias separado
por un espacio.


Ejemplos: SELECT tipo, nombre FROM TABLA
T1
¬

el alias es T1


3. PONER CONDICIONES CON WHERE

Se pueden usar los operadores lógicos AND, OR y NOT para unir condiciones y
también
>, < , <=, >=, = , != y <>


Otras posibilidades son:


· <campo> [NOT] BETWEEN <val1> AND <val2>: Sólo selecciona los registros que el
contenido del campo esté entre <val1> y <val2>.
Puede ser un nº o una fecha.

· <campo> [NOT] IN (<lista de valores>): Se seleccionan los registros en que el
contenido del campo coincida con alguno de los valores puestos después de IN.

· <campo> [NOT] LIKE “<cadena>”: Se seleccionan todos los registros que el
contenido del campo sea <cadena>.
Comodines[3]: _: Sustituye un carácter. %: Sustituye varios caracteres

· <campo> [NOT] MATCHES “<cadena>”: Se seleccionan todos los registros que el
contenido del campo sea <cadena>.
Comodines:
?: Sustituye un carácter. *: Sustituye varios
caracteres.

· <campo> IS [NOT] NULL: Se selecciona los campos que su contenido sea NULL.

· SCAPE '<carácter>': Si encuentra ese
carácter, que salte

3.1. PONER UNA SELECT DENTRO DE UNA CONDICION


Se usa cuando se debe poner una función (MAX,MIN... ) dentro de una expresión.


Ejemplo: (La SELECT que está
dentro de la condición selecciona el valor máximo del campo UNIDADES cuando
NUMSTOCK es 9.
Esta SELECT devuelve un nº)


SELECT N_ARTICULO FROM ARTICULO


WHERE NUM_STOCK = 9 AND CANTIDAD = (SELECT MAX(UNIDADES) FROM
ARTICULO


WHERE
NUM_STOCK = 9 )


Ejemplo: (Selecciona todos los
registros que tengan N_ARTICULO igual a 1011) (En este ejemplo se puede
conseguir lo mismo poniendo SELECT MAX(PRECIO_TOTAL)... en vez de ALL
(SELECT PRECIO_TOTAL ...) y poner = en vez de >.)


SELECT N_ARTICULO FROM ARTICULO

WHERE PRECIO_TOTAL > ALL (SELECT PRECIO_TOTAL FROM ARTICULO

WHERE
N_ARTICULO = 1011)

Poniendo
IN en vez de > , la condición se cumple cuando precio total coincida con
una lista de valores.


· ALL: La condición debe cumplirse en todos los
registros seleccionados.


· SOME/ANY: La condición debe cumplirse por lo
menos en un registro.


3.2. USAR EXISTS CON UNA SELECT DENTRO DE UNA CONDICION:


Devuelve verdadero cuando hay algún registro que cumpla la condición puesta en la
SELECT.

Ejemplo:


SELECT
A.nombre FROM proveedores A


WHERE EXISTS (SELECT * FROM pedidos B

WHERE B.P# = 'P2' AND A.S# = B.S#)


4. AGRUPAR INFORMACION CON GROUP BY


1)
No puede tener columnas que no hayan sido puestas
al comienzo de la SELECT.

2)
Se puede poner un nº para referirse a los campos
(orden en que están colocados en memoria).

Ejemplo: SELECT
NMAT,NOMBRE,CURSO,DIRECCION,GRUPO FROM ALUMNOS

GROUP BY 3,5 (Es lo mismo que poner CURSO,GRUPO)


5. PONER CONDICIONES CON HAVING


Sirve para poner condiciones a los grupos (acepta o rechaza grupos de filas)

Se pueden poner campos que no estén dentro de esos grupos.

6. ORDENAR CAMPOS CON ORDER BY

1)
Nº máximo de campos que pueden ordenarse: 8 campos.

2)
Longitud máxima entre todos los campos a ordenar:
120 bytes.



3)
Igual que en GROUP BY se pueden poner números
enteros en vez de los nombres de las columnas.


7. CREAR UNA TABLA TEMPORAL CON INTO TEMP


Se crea una tabla temporal con los campos y registros que han sido seleccionados
en la SELECT.


8. UNIR DOS SELECT (CON UNION & INTERSECT, MINUS)


UNION (operador È): Da los registros que salen en la 1ª select
+ los registros que salen en la 2ª select. No hay registros repetidos.


UNION ALL (operador È): Da los
registros que salen en la 1ª select + los registros que salen en la 2ª select.
Puede haber registros repetidos.

INTERSECT (operador Ç): Da los
registros que están a la vez en la 1ª y en la 2ª select

MINUS (operador -): Registros que están en la
1ª select y no están en la 2ª

Condiciones:


· Nº de columnas de las dos SELECT debe ser igual. Cada columna debe ser
del mismo tipo y longitud.


· ORDER BY solo puede estar en la última SELECT. Se deben usar los nºs en
vez de los nombres de columnas


· UNION no saca los repetidos, para que los saque, usar UNION ALL


· Para INTERSECT ocurre lo mismo que para UNION

9. SABER COMO SE LLAMAN LAS TABLAS (ORACLE 7.0)

SELECT * FROM TAB

Ejemplo:

SELECT * FROM TAB

TNAME
TABTYPE CLUSTERID

------------------------------
------- ---------

PRUEBA
TABLE



REFERENCIA
TABLE



TABLA_NULOS
TABLE



10. SABER COMO SE LLAMAN LOS CAMPOS (ORACLE 7.0)


SELECT
* FROM COL


WHERE TNAME = '<nombre de la tabla en mayúsculas>'


Ejemplo:

SELECT * FROM COL WHERE TNAME = 'REFERENCIA';

TNAME COLNO CNAME COLTYPE WIDTH SCALE PRECISION
NULLS DEFAULTVAL

-------------
----- -------------- -------- ----- ----- --------- ----------- ----------

REFERENCIA
1 CLAVE_EXT CHAR 2 NOT NULL


REFERENCIA
2 NOMBRE VARCHAR2 20 NOT NULL

REFERENCIA
3 V_DEFECTO VARCHAR2 20 NOT NULL 'tao'

REFERENCIA
4 COD VARCHAR2 10 NOT NULL '*.*'

Otros ejemplos (los dos primeros hacen lo mismo):

SELECT CODIGO, (PRECIO * 1.16) "PRECIO CON IVA" FROM
ARTICULOS;

SELECT CODIGO, (PRECIO * 1.16) AS "PRECIO CON IVA" FROM
ARTICULOS;


select a.fld2 codigo from ah053 a

where a.fld1 = (select empresa_usuario from
parametros_comunica) and

a.fld21 <> (select tipo_proveedor from parametros_comunica);


SELECT DESCRIPCION FROM ALMACENES

WHERE COD_DELEGACION IN (SELECT FLD2 cod_deleg FROM AH038 deleg

WHERE FLD1 = (SELECT
EMPRESA_USUARIO FROM PARAMETROS_COMUNICA)

AND FLD10 = 0 );

Ejemplos con UNION:


(Se usa el para juntar los datos de 3 campos)

SELECT (FLD7 ' ' FLD5 ' ' FLD6) "APELLIDOS Y
NOMBRE" FROM AH032

WHERE FLD3 = 'F'

UNION

SELECT (FLD5) FROM AH032

WHERE FLD3 = 'J'


Una SELECT gigante [combina varias tablas y usa un UNION]

SELECT
&&LOGIN COD_USUARIO, AL.TIPO_MOV, AL.FECHA_MOV, AL.USUARIO,

DG.FLD4 "DELEGACION",


AM.DESCRIPCION,

AR.COD_ARTICULO, AR.TIPO_ARTICULO,

AL.CANTIDAD,


PRV.FLD7 ' ' PRV.FLD5 ' ' PRV.FLD6 "NOMBRE_PROVEEDOR",

MO.DESCRIPCION

FROM ALMACEN AL,

ALMACENES AM,

ARTICULOS AR,

AH038 DG,

AH053 PR,

AH032 PRV,

MOTIVOS_MOV MO

WHERE

(DG.FLD1 = (SELECT EMPRESA_USUARIO

FROM PARAMETROS_COMUNICA) AND DG.FLD10 = 0) AND

(AL.COD_DELEGACION = DG.FLD2) AND

(AL.COD_ALMACEN = AM.COD_ALMACEN) AND

(AL.COD_ARTICULO = AR.COD_ARTICULO) AND

(AL.COD_PROVEEDOR = PR.FLD2) AND

(PR.FLD1 = PRV.FLD1) AND

(PR.FLD2 = PRV.FLD2) AND

(PR.FLD1 = (SELECT EMPRESA_USUARIO FROM PARAMETROS_COMUNICA))
AND

(PR.FLD21 <> (SELECT EMPRESA_USUARIO FROM
PARAMETROS_COMUNICA)) AND

(PRV.FLD3 = 'F') AND

(AL.COD_MOTIVO_MOV = MO.COD_MOTIVO_MOV)

UNION

SELECT

&&LOGIN COD_USUARIO, AL.TIPO_MOV, AL.FECHA_MOV, AL.USUARIO,

DG.FLD4 "DELEGACION",

AM.DESCRIPCION,

AR.COD_ARTICULO, AR.TIPO_ARTICULO,

AL.CANTIDAD,

PRV.FLD5 "NOMBRE_PROVEEDOR",

MO.DESCRIPCION

FROM ALMACEN AL,

ALMACENES AM,

ARTICULOS AR,

AH038 DG,

AH053 PR,

AH032 PRV,

MOTIVOS_MOV MO

WHERE

(DG.FLD1 = (SELECT EMPRESA_USUARIO

FROM PARAMETROS_COMUNICA) AND DG.FLD10 = 0) AND

(AL.COD_DELEGACION = DG.FLD2) AND

(AL.COD_ALMACEN = AM.COD_ALMACEN) AND

(AL.COD_ARTICULO = AR.COD_ARTICULO) AND

(AL.COD_PROVEEDOR = PR.FLD2) AND

(PR.FLD1 = PRV.FLD1) AND

(PR.FLD2 = PRV.FLD2) AND

(PR.FLD1 = (SELECT EMPRESA_USUARIO FROM PARAMETROS_COMUNICA))
AND

(PR.FLD21 <> (SELECT EMPRESA_USUARIO FROM
PARAMETROS_COMUNICA)) AND

(PRV.FLD3 = 'J') AND

(AL.COD_MOTIVO_MOV = MO.COD_MOTIVO_MOV)

;

Al ejecutar la select, sale:

Enter value for LOGIN: _ (se mete
una cadena a mano y se pulsa ENTER)

Una SELECT gigante [combina varias tablas y usa un UNION]

SELECT 'F' TIPO_PER, COUNT(*) AS CUANTOS

FROM ALMACEN AL, ALMACENES AM, ARTICULOS AR, AH038 DG,

AH053 PR, AH032 PRV, MOTIVOS_MOV MO

WHERE

(DG.FLD1
= (SELECT EMPRESA_USUARIO FROM PARAMETROS_COMUNICA)) AND

(DG.FLD10 = 0) AND

(AL.COD_DELEGACION = DG.FLD2) AND

(AL.COD_ALMACEN = AM.COD_ALMACEN) AND

(AL.COD_ARTICULO = AR.COD_ARTICULO) AND

(AL.COD_PROVEEDOR = PR.FLD2) AND

(PR.FLD1 = PRV.FLD1) AND

(PR.FLD2 = PRV.FLD2) AND

(PR.FLD1 = (SELECT EMPRESA_USUARIO FROM PARAMETROS_COMUNICA))
AND

(PR.FLD21 <> (SELECT EMPRESA_USUARIO FROM PARAMETROS_COMUNICA))
AND

(AL.COD_MOTIVO_MOV = MO.COD_MOTIVO_MOV) AND

(PRV.FLD3 = 'F')

UNION

SELECT 'J' TIPO_PER, COUNT(*) AS CUANTOS

FROM ALMACEN AL, ALMACENES AM, ARTICULOS AR, AH038 DG,

AH053 PR, AH032 PRV, MOTIVOS_MOV MO

WHERE

(DG.FLD1 = (SELECT EMPRESA_USUARIO FROM PARAMETROS_COMUNICA))
AND

(DG.FLD10 = 0) AND

(AL.COD_DELEGACION = DG.FLD2) AND

(AL.COD_ALMACEN = AM.COD_ALMACEN) AND

(AL.COD_ARTICULO = AR.COD_ARTICULO) AND

(AL.COD_PROVEEDOR = PR.FLD2) AND

(PR.FLD1 = PRV.FLD1) AND

(PR.FLD2 = PRV.FLD2) AND

(PR.FLD1 = (SELECT EMPRESA_USUARIO FROM PARAMETROS_COMUNICA))
AND

(PR.FLD21 <> (SELECT EMPRESA_USUARIO FROM
PARAMETROS_COMUNICA)) AND

(AL.COD_MOTIVO_MOV = MO.COD_MOTIVO_MOV) AND

(PRV.FLD3 = 'J') ;

Sale
una cosa parecida a esto:

T
CUANTOS

---------

(Se usan SELECTs dentro de los WHERE)

Se puede usar = y <> porque la tabla PARAMETROS_COMUNICA sólo
tiene un registro


SELECT
'F: '(b.FLD7 ' ' b.FLD5 ' ' b.FLD6) MIX

FROM AH053 a, AH032 b

WHERE b.FLD3 = 'F' AND

a.fld1 = b.fld1 AND

a.fld2 = b.fld2 AND

a.fld1 = (select empresa_usuario from
parametros_comunica) and


a.fld21 <> (select tipo_proveedor from parametros_comunica)

UNION

SELECT 'J: 'b.FLD5 FROM AH053 a, AH032 b

WHERE b.FLD3 = 'J' AND

a.fld1 = b.fld1 AND

a.fld2 = b.fld2 AND

a.fld1 = (select empresa_usuario from parametros_comunica)
and

a.fld21 <> (select tipo_proveedor from
parametros_comunica)

ORDER
BY MIX;

(Otro ejemplo. Usa dos veces la misma tabla)

SELECT
A.* , B.FECHA_INFORME, B.ENTRADA_CONFORME, B.RESPONSABLE_CONFORME,

B.ENTRADA_NO, B.RESPONSABLE_NO

FORM INFORME_INSPECCION A, INFORME_INSPECCION_B

WHERE A.NUM_INFORME = B.NUM_INFORME AND

A.NUM_INFORME = 1 AND B.NUM_INFORME = 2;

(Otro ejemplo. Comprueba si lo que devuelve la SELECT anidada esun 0)

select cod_albaran, cod_proveedor from albaranes_prov_cab_hist

here cod_albaran = 'dedede' and cod_proveedor = 'PERSONA4' AND

(select count(*) from albaranes_prov_lin_hist

where cod_albaran = 'dedede' and
cod_proveedor = 'PERSONA4') = 0;

- U -

UPDATE…SET…[WHERE]: Reemplaza los valores de
los registros.


Formato 1: UPDATE
<nombre tabla> SET (<campos>)=(<valores>) [WHERE
<condición>]

Formato 2: UPDATE
<nombre tabla> SET (<campos>)=(<valores>) [WHERE <aquí va
una SELECT>]

· Si no se le ponen condiciones reemplaza todos los registros.

Ejemplos:

UPDATE
productos

SET existencias = existencias - 10 + 4

WHERE id_fab = 'QAS' AND id_producto = 'XK47'

UPDATE empleados

SET coment = 'NO COMMENT' ß Cambian todos

UPDATE
empleados

SET sueldo = sueldo - (sueldo * 0.10)

WHERE nombre = 'PEPE'

UPDATE empleados

SET sueldo = 100000

WHERE sueldo
IS NULL

UPDATE
trabajadores

SET sueldo = sueldo + 1000

WHERE cod_t IN (SELECT cod_t FROM oficinas

WHERE ciudad = 'MADRID')

- (otros) -

/* … */: Sirve para crear comentarios. El
comentario puede ocupar varias líneas. Formato: /* (comentario)
*/


Ejemplo:

/***


***
COMANDO SQL USADO PARA ELIMINAR PROVEEDORES


*/

-- : Sirve para crear comentarios. Formato:
--
<comentario>

Ejemplo:

-- Selecciona los registros en que EDAD < 25 y los ordena por
apellidos

OPERADORES SQL


= : Operador de asignación. Ejemplo: rec_read := rec_read + 1

< , <= , >, >= , = , < > , != y ^= : Se usan para comparar nºs, cadenas, fechas,… (!=, <> y ^= hacen
lo mismo (distinto))

Ejemplos (el 2º y 3º hacen lo mismo):

SELECT CODIGO, (PRECIO * 1.16) "PRECIO CON IVA" FROM
ARTICULOS

WHERE PRECIO >= 15000 AND PRECIO <= 20000;

SELECT CODIGO, (PRECIO * 1.16) "PRECIO CON IVA" FROM
ARTICULOS

WHERE PRECIO != 15000


ELECT CODIGO, (PRECIO * 1.16) "PRECIO CON IVA" FROM
ARTICULOS



WHERE PRECIO <> 15000


+ - * / : Son los operadores numéricos que
permite Oracle.

Ejemplos:


SELECT CODIGO, PRECIO, (PRECIO * 0.90) "DESPUES DEL
DESCUENTO" FROM ARTICULOS;


SELECT TO_DATE('1/mar/2000') - TO_DATE('1/mar/1999') "DIF
FECHAS" FROM DUAL;

(+)= : ??? [lo vi en una select, puede que
sirve para hacer los "LEFT JOIN" del Access]


: Operador usado para unir cadenas o campos
caracter. (son dos pipes seguidos)

Ejemplo:

SELECT
NIF, APE1 ' ' APE2 ', ' NOMBRE AS NOMBRE_COMPLETO

FROM DATOS_PERS;

" " : Se usa en alias de campos
(cuando tienen espacios o caracteres que dan problemas)

Ejemplo:

SELECT
NIF AS "Nº de NIF", APE1, APE2, NOMBRE FROM DATOS_PERS;

' : Delimitador de cadenas.

Ejemplo:

INSERT INTO CLIENTES (NOMBRE, APELLIDOS) VALUES ('DRACULA', NULL);

ALL (selects anidadas) : Se usa cuando se
quiere que el valor de un campo sea mayor, menor,… a todos los valores que
devuelva la SELECT.


Formato: <operador> ALL (<una
SELECT>)

Nota: El <operador> puede ser > ,
<, >= , <= y <> [también se puede usar = , pero es poco
práctico].


Ejemplo:


SELECT
DESCRIPCION FROM ARTICULO

WHERE PRECIO_TOTAL > ALL (SELECT PRECIO_TOTAL FROM ARTICULO

WHERE COD_ARTICULO LIKE 'CDR%')

AND, OR, NOT : Operadores lógicos. Si no hay paréntesis se ejecutan en este orden: NOT, AND, OR


SELECT CODIGO, (PRECIO * 1.16) "PRECIO CON IVA" FROM
ARTICULOS


WHERE PRECIO >= 15000 AND PRECIO <= 20000;

BETWEEN: El nº / fecha debe estar entre dos
valores.

Ejemplo:

SELECT CODIGO, (PRECIO * 1.16) "PRECIO CON IVA" FROM
ARTICULOS

WHERE PRECIO BETWEEN 15000 AND 20000;

IN : Se usa para indicar una lista de valores.
Pueden ser números, cadenas, fechas,… o una SELECT

Se usa principalmente en el comando SELECT y UPDATE

Ejemplos:

(Selecciona los registros que su COD_ALMACEN o su COD_DELEGACION sea '001')

SELECT * FROM ALMACENES WHERE '001' IN (COD_ALMACEN,
COD_DELEGACION);

(Selecciona los registros que su COD_ALMACEN sea '001' o '003')


SELECT * FROM ALMACENES WHERE COD_ALMACEN IN ('001', '003');

(El IN se usa con una SELECT para indicar que registros van a borrarse)

DELETE FROM CI071 WHERE FLD4 IN (SELECT FLD4 FROM CI071 WHERE FLD4
NOT LIKE '-%');

(El IN se usa con una SELECT para indicar que registros van a modificarse)


UPDATE
trabajadores

SET sueldo = sueldo + 1000


WHERE cod_t NOT IN (SELECT cod_t FROM oficinas

= 'MADRID');

LIKE: Se usa con cadenas. Los comodines que pueden usarse son '%' (varios caracteres) y subrayado (un
caracter).

Ejemplo:

SELECT DISTINCT APELLIDO FROM CLIENTES WHERE APELLIDO LIKE
"M%"

SELECT DISTINCT APELLIDO FROM CLIENTES WHERE APELLIDO NOT LIKE
"%Z"

CONCLUSIÓN Y RECOMENDACIONES

Como podemos observar la evolución de las arquitecturas ha ido de la mano de
acuerdo a las necesidades que se iban presentando, en muchos de los casos el
cambio de las arquitecturas se debió a que conforme se iba aumentando las
necesidades de una determinada empresa y el crecimiento físico de la misma
sobre saturaba los sistemas antiguos y obviamente esto obligaba a las empresas
a actualizarse en lo que se refiere a tecnología y a buscar otro tipo de
alternativas para mejorar el servicio a los clientes y el mejor aprovechamiento
de los recursos que disponían.

Actualmente la tecnología es una herramienta que ayuda al desarrollo de una empresa, si una
empresa no está actualizada tecnológicamente, no está en igualdad de
condiciones tanto para brindar un buen servicio como para tener un buen nivel
de competitividad, aparte de esto en la actualidad la globalización es un
factor que obliga a las empresas a estar de acorde con la nueva tecnología
entonces es recomendable usar las nuevas arquitecturas y mas que recomendable
es una necesidad para cada una de las empresas.

Hoy en día el Cliente y el Servidor pueden actuar como una sola entidad y también pueden actuar como entidades separadas, realizando actividades o tareas independientes. Las funciones de Cliente y Servidor pueden estar en plataformas separadas, o en la misma plataforma. Cada plataforma puede ser escalable independientemente. Los cambios realizados en las plataformas de los Clientes o de los Servidores, ya sean por actualización o por reemplazo tecnológico, se realizan de una manera transparente para el usuario final. La interrelación entre el hardware y el software están basados en una infraestructura poderosa, de tal forma que el acceso a los recursos de la red no muestra la complejidad de los diferentes tipos de formatos de datos y de los protocolos. Un sistema de servidores realiza múltiples funciones al mismo tiempo que presenta una
imagen de un solo sistema a las estaciones Clientes .Esto se logra combinando los recursos de cómputo que se encuentran físicamente separados en un solo sistema lógico, proporcionando de esta manera el servicio más efectivo para el usuario final.

Como ya conocemos todos Oracle Corporation es una de las mayores compañías de software del mundo. Sus productos van desde bases de datos (Oracle) hasta sistemas de gestión. Cuenta además, con herramientas propias de desarrollo para realizar potentes aplicaciones, como Oracle Designer, Oracle JDeveloper y Oracle Developer Suite.


Como dijimos anteriormente Oracle es el motor de base de datos relacional más usado a nivel mundial. Puede ejecutarse en todas las plataformas, desde una Pc hasta un supercomputador.


Oracle soporta todas las funciones que se esperan de un servidor "serio": un lenguaje de diseño de bases de datos muy completo (PL/SQL) que permite implementar diseños "activos", con triggers y procedimientos
almacenados, con una integridad referencial declarativa bastante potente.


Permite el uso de particiones para la mejora de la eficiencia, de replicación e incluso ciertas versiones, admiten la administración de bases de datos distribuidas. El software del servidor puede ejecutarse en multitud de sistemas operativos. Oracle es la base de datos con mas orientación hacía INTERNET.



Uno de los mayores inconvenientes que tiene Oracle es su precio es demasiado alto, en cuanto al software si la configuración está mal realizada puede ser bastante lento.


Lo recomendable seria que dependiendo de las necesidades que tengan las empresas implementar el Oracle y midiendo sus capacidad de recursos tanto económicos como de personal capacitado en este motor de base de datos.


En cuanto a los estudiantes es recomendable estar siempre actualizados en cuanto a
las nuevas herramientas y saber bien las ventajas y desventajas que van
ofreciendo cada una de las nuevas versiones que salen al mercado.