Download UNIVERASIDAD TECNOLOGICA AMERICA UNIDAD DE APOYO

Document related concepts

Área Global del Sistema wikipedia , lookup

PL/SQL wikipedia , lookup

Inyección SQL wikipedia , lookup

SQL wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Transcript
UNIVERASIDAD TECNOLOGICA AMERICA
UNIDAD DE APOYO IBARRA
TRABAJO DE:
BASE DE DATOS
TEMA: ORACLE y BASE DE DATOS DISTRIBUIDA
NOMBRE: Marco Ramos
FECHA: 29-05-2010
NIVEL: Undécimo Inf.
IBARRA - ECUADOR
OBJETIVO:
Conocer las características principales del SMBD Oracle, su importancia,
ventajas y desventajas, mediante la investigación bibliográfica con el fin de
tener un concepto más claro y el alcance que tiene el utilizar este SMBD.
FUNDAMENTO TEORICO:
1. Concepto Oracle
Es un sistema de gestión de base de daos relacional fabricado por Oracle
corporation, es un administrador de datos en base a estructuras.
Aplica normas de algebra relacional y utiliza la arquitectura cliente servidor,
donde en un lado de la red esa el servidor con los datos, y del otro lado
están los clientes que consultan al servidor.
2. Productos Oracle
Oracle es una empresa que fabrica diversos productos. Su idea es aportar un
producto autosuficiente para el mantenimiento de datos y la creación de
aplicaciones basadas en estos. Sus tres productos más importantes son:

Oracle
DataBase.
El
DBMS
Oracle,
junto
con
las
herramientas
fundamentales para hacer de servidor y los programas clientes necesarios
para conectar clientes.

Oracle Application Server. Servidor de aplicaciones para la creación de
programas distribuidos.
 Oracle Developer Suite. Programas para la generación de aplicaciones
rápidas basadas en bases de datos Oracle.
2.1.
Programación PL/SQL
SQL es un lenguaje de comandos, no un lenguaje de programación con todas
las estructuras de control típicas, SQL contempla instrucciones simples.
Oracle definió un lenguaje de programación de tercera generación, que admite
sentencias SQL embebidas, este lenguaje se conoce como PL/SQL
(Programming Languaje/SQL).
La idea es aplicar las estructuras típicas de un lenguaje de programación
(bifurcaciones, bucles, funciones, etc.)a las sentencias SQL típicas.
2.2.
Estructura básica en PL/SQL
Cuando se escribe código en PL/SQL, esta debe estar agrupada en unidades
denominadas “bloques de código”.
Un bloque de código puede contener otros sub bucles de código y así
sucesivamente, este queda delimitado por las palabras reservadas BEGUIN y
END.
BEGIN
Sentencia…
Sentencia…
Sentencia…
BEGIN
Sentencia…
Sentencia…
Sentencia…
END
Sentencia…
Sentencia…
Sentencia…
END
En el ejemplo se puede observar un bloque externo que contiene un bloque
interno.
Un bloque de código opcionalmente puede contar con las siguientes secciones:
DECLARE
Declaración de variables
BEGIN
Sentencias SQL y PL/SQL
EXCEPTION
Manejadores de excepciones
END;
La única sección obligatoria es la que se encuentra dentro de BEGIN y END.
2.3.
Comentarios
Los comentario pueden ser multi línea /* */ o mono línea –
2.4.
Declaración de variables
Las variables deben declararse dentro de la sección DECLARE según la
sintaxis:
Nombre_de_variable {CONSTANT} TIPO {:=inicialización}
Los tipos posibles son todos aquellos validos para SQL añadiendo algunos
propios de PL/SQL.
Ejemplo:
Interés
NUMBER (5,3);
Descripción
VARCHAR2 (50):=`inicial´;
Fecha_max
DATE;
Contabilizado
BOOLEAN :=TRUE;
PI
CONSTANT
REAL
:=3.14159
2.5.

Estructura básica de control
Bifurcaciones condicionales
IF condición_1 THEN
Se ejecuta si se cumple condición_1
ELSIF condición_2 THEN
Se ejecuta si no se cumple condición_1 y se cumple condición_2
ELSE
Se ejecuta si no se cumple condición_1 ni condición_2
END IF;
La estructura IF se puede anidar unas dentro de otras como en cualquier
lenguaje de programación.

Bucles
Entre las más conocidas tenemos:
LOOP
Sentencia
END LOOP;
Las sentencias dentro de un bucle se ejecutan un número indefinido de
vueltas, hasta que aparezca la instrucción EXIT; que finalizara el bucle. Este
tipo de bucle se denomina bucle incondicional.
También se puede incluir la estructura EXIT WHEN condición, se terminara
el bucle cuando la condición se cumpla.
LOOP
Sentencia
EXIT WHEN condición;
Sentencias
END LOOP;
También se puede escribir:
LOOP
Sentencia
IF condición WHEN;
EXIT;
END IF;
Sentencias
END LOOP;
Bucles condicionales:
WHILE condición LOOP
Sentencias
END LOOP;
Y finalmente el bucle FOR:
FOR contador IN {REVERSE} limite_inferior.. limite_superior LOOP
Sentencias
END LOOP;
Contador deberá ser una variable de tipo numérico que sea capaz de
contener los valores comprendidos entre limite_inferior y limite_superior.
limite_inferior y limite_superior deberán ser expresiones numéricas, ya sean
constantes (1,10…) o funciones (ROUND (max,0), ASCII(‘A’)…).
Si la variable contador no esta definido, PL/SQL definirá una variable de tipo
INTEGER al iniciar el bucle y la liberara al finalizar el bucle.

Registros y tablas
Existen dos tipos de datos que aun no se han mencionado, los registros
(estructuras) y las tablas (arrays o vectores).
El modo de definir nuevos tipos de variables en PL/SQL es utilizando la
palabra reservada TYPE:
TYPE nuevo_tipo IS tipo_original.
Una vez definido procedemos a definir variables de ese nuevo tipo.
Una_variable nuevo_tipo;
o Registros
Son agrupaciones de tipos de variables que se acceden con el
mismo nombre.
La sintaxis es:
TYPE nombre_registro IS RECORD(
Campo1 tipo,
Campo2 tipo,
Campo3 tipo);
EJEMPLO:
TYPE alumno IS RECORD (
n_alumno VARCHAR (5),
nombre VARCHAR(25),
apellido_1 VARCHAR (25),
apellido_2 VARCHAR (25));
o Tablas
Es una colección de elementos identificados cada uno por un índice,
también se denominan arrays.
Sintaxis:
TYPE nombre_tabla IS TABLE OF tipo_de_elementos;
El tamaño de la tabla se define durante la declaración de la variable.
Nombre_variable nombre_tabla :=nombre_variable (lista_elementos);
EJEMPLO:
DECLARE
TYPE array_enteros IS TABLE OF INTEGER;
Un_array array_enteros :=array_enteros (0,0,0,0);
BEGIN
....
END;
En el ejemplo se define un array de tipo entero y después se declara
una variable de ese tipo inicializándola con 4 elementos, todos con
cero.

Excepciones
Esta sección es la encargada de recoger todas las anomalías que se
pueden producir dentro del bloque de código.
Una excepción es una situación especial dentro de la ejecución de un
programa, que puede ser capturado para darle un nuevo comportamiento.
Una excepción puede ser un error de ejecución, una división entre cero o
cualquier otro tipo de suceso.
Las excepciones deben ser declaradas dentro de l sección declare.
DECLARE
e_sin_alumnos EXCEPTION;
Una vez definida, esta debe ser lanzada, ya sea automáticamente por
ORACLE o manualmente a través de la instrucción RAISE.
Select count (*)
Into num_alumnos;
If num_alumnos =0 then
RAISE e_sin_alumnos;
En if;
Una vez lanzada la excepción, la ejecución continúa en la sección
EXCEPTION, en el manejador apropiado.
Una manejador de excepcioneses una sub sección dentro de la sección
EXCEPTION que se encarga de capturar una excepción concreta.
La sintaxis para escribir manejadores es:
EXCEPTION
WHEN <excepción> THEN
....
WHEN <excepción> THEN
....
WHEN OTHERS THEN
.....
END;
La línea de código debajo del manejador específico se ejecutara cuando
esa excepción se produzca.
3. USUARIOS Y PRIVILEGIOS
Los usuarios son las personas que acceden de una forma o de otra a la base
de datos. Cada usuario tiene una vista determinada de la base de datos. Hay
varios conceptos sobre los usuarios a tener en cuenta.
Los privilegios Controlan el permiso que posee un usuario de ejecutar una
determinada instrucción SQL.
Un usuario que quiera crear una tabla, deberá tener el privilegio (o permiso)
adecuado para ello.
Además se pueden colocar privilegios en los objetos, es decir, un usuario
propietario de una tabla puede otorgar privilegios a esa tabla (se trataría de un
privilegio a nivel de objeto) para que haya otros usuarios que la puedan usar.
Roles Son agrupaciones de privilegios que facilitan la tarea de gestionar a los
usuarios. Así cuando una serie de usuarios van a tener los mismos privilegios,
se crea un rol que contenga esos privilegios y a esos usuarios se les asigna el
rol.
Oracle proporciona varios roles ya preparados, por ejemplo el rol DBA da
privilegio absoluto a un usuario.
4. BASE DE DATOS DISTRIBUIDA
La base de datos distribuida consiste en un almacén de datos, es un conjunto
de datos almacenado de manera sistemática siempre dispuesto a ser utilizado.
Con la particularidad de que los datos están almacenados en distintas
máquinas que integran un sistema y que tienen conexión entre si.
Cada uno de los procesadores que integran dicho sistema se conoce con el
nombre de localidad o nodo, y por lo tanto la información va a estar distribuida
en las distintas localidades y no en una sola localidad, que es lo que ocurre con
las bases de datos centralizadas.
Cada localidad tiene una base de datos local aunque la información que se
necesite puede provenir tanto de la base de datos local como de otras
localidades, lo que se conoce como transacciones locales o transacciones
globales respectivamente.
En cuanto al las formas que pueden conectarse las localidades, las más
comunes son: la red totalmente conectada, la red prácticamente conectada, la
red con estructura de árbol, la red de estrella o la red de anillo.
4.1.
VENTAJAS
Debido a que la información está distribuida en localidades, los resultados a las
consultas se pueden obtener de manera rápida, ágil y fiable. Asimismo, en
caso de que alguna de las localidades falle, como todas tienen autonomía local,
el resto sigue trabajando sin que se desactive el sistema, existe autonomía e
independencia entre nodos, permite crecimiento, tolerancia a fallas, nuevos
nodos se pueden agregar fácil y rápidamente. La comunicación entre nodos se
mejora, los costos de cooperación se reducen, son amigables al usuario, la
probabilidad de una falla es baja.
4.2.
DESVENTAJAS
La principal se refiere al control y manejo de los datos, ya que residen en
muchos nodos diferentes y se pueden consultar por nodos diversos de la red,
la probabilidad de violaciones de seguridad es creciente si no toman las
precauciones debidas, seguridad de integridad compleja, complejo control de
concurrencia ya que podemos encontrar replicación de información.
La instalación de este sistema es mucho más compleja que el de una base de
datos centralizada.
4.3.
DOCE REGLAS DE LAS BASES DE DATOS DISTRIBUIDAS:
Principio fundamental: Para el usuario un sistema distribuido debe ser igual
que uno centralizado.
• Autonomía Local: Los sitios distribuidos deben ser autónomos, es decir que
todas las operaciones en un sitio dado se controlan en ese sitio.
• No dependencia de un sitio central: No debe de haber dependencia de un
sitio central para obtener un servicio.
• Operación Continua: Nunca debería apagarse para que se pueda realizar
alguna función, como añadir un nuevo sitio.
• Independencia con respecto a la localización: No debe de ser necesario que
los usuarios sepan dónde están almacenados físicamente los datos, sino que
más el usuario lo debe de ver como si solo existiera un sitio local.
• Independencia con respecto a la fragmentación: La fragmentación es
deseable por razones de desempeño, los datos, pueden almacenarse en la
localidad donde se utilizan con mayor frecuencia de manera que la mayor parte
de las operaciones sean sólo locales y se reduzca el tráfico en la red.
• Independencia de réplica: Si una relación dada (es decir, un fragmento dado
de una relación) se puede presentar en el nivel físico mediante varias copias
almacenadas o réplicas, en muchos sitios distintos.
•
Procesamiento
Distribuido
de
Consultas:
El
objetivo
es
convertir
transacciones de usuario en instrucciones para manipulación de datos, y así
reducir el tráfico en la red implica que el proceso mismo de optimización de
consultas debe ser distribuido.
• Manejo Distribuido de Transacciones: Tiene dos aspectos principales, el
control de recuperación y el control de concurrencia, cada uno de los cuales
requiere un tratamiento más amplio en el ambiente distribuido.
• Independencia con respecto al equipo: El SGBDD debe ser ejecutable en
diferentes plataformas hardware.
• Independencia con respecto al Sistema Operativo: El sistema debe ser
ejecutable varios diferentes SO.
• Independencia con respecto a la red: El sistema debe poder ejecutarse en
diferentes redes.
• Todos los usuarios accesan a la BDD a través de un esquema global en
forma transparente al usuario. Debe ser posible ejecutar diferentes SGBDD
locales que utilicen distintos modelos de datos.
4.4.
Copias de seguridad
Es una de las herramientas fundamentales de toda base de datos. Al hacer la
copia de seguridad se nos permite recuperar la información de esa copia. Eso
hace que perdamos definitivamente los datos perdidos desde la última copia de
seguridad, de ahí la importancia de hacer copia a menudo.
Hay una posibilidad de perder menos información y es hacer que la base de
datos se ejecute en modo Archivo Log, lo que significa que se almacena en un
archivo de datos especial, los datos que se van rechazando en los registros
rehacer por estar llenos. Lo malo de esta opción, es que el servidor funciona
más lento; lo bueno es que en caso de desastre se pueden recuperar los datos
almacenados.
Hay dos tipos de copia de seguridad:

En frío. La copia se realiza tras cortar la instancia de Oracle. La copia de
seguridad almacena todos los datos de la base (incluidos los archivos de
control y de rehacer).

En caliente. Ya que en muchos casos no se puede parar la instancia tan
fácilmente (por estar 24 horas al día funcionando). En ese caso es una
indicación la que se hace a la base de datos y la copia se realiza desde el
sistema operativo (copiando sin más).
Otras posibilidades de copias son:

Catálogos de copia de seguridad. Que almacenan información sobre las
copias realizadas, fechas, datos, estructura, etc.

Copias de seguridad incrementales. Un problema de las copias es que en
bases extensas, la copia tarda muchas horas. Cuando la copia termina la
información ya está desfasada. Las copias incrementales sólo almacenan
los datos que han cambiado recientemente.
5. Características de Oracle
 Oracle corre en computadoras personales, microcomputadoras,
mainframes y computadoras con procesamiento paralelo masivo.
 Soporta 17 idiomas.
 Corre automáticamente en más de 80 arquitecturas de hardware y
software distintos sin necesidad de cambiar el código.
 Ofrece una gran variedad de herramientas.
6. CONCLUSIONES
Existen muchas bases de datos para cualquier tipo de empresa, Oracle
puede ser una base de datos ideal para el desarrollo de aplicaciones con
arquitectura cliente servidor.
Es compatible casi con todo el hardware existente y utiliza código SQL para
la comunicación.
7. BIBLIOGRAFIA
Internet: www.monografias.com/trabajos11/basda/basda.shtml
Iternet: http://www.programatium.com/oracle.htm
Guía de estudio del CD proporcionado por la UNITA. Año 2007