Download informe de oracle

Document related concepts

Oracle Database wikipedia , lookup

Toad wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Navicat wikipedia , lookup

Área Global del Sistema wikipedia , lookup

Transcript
INFORME DE ORACLE
Autores: Gil, Joseba
Suaña, Noelia
Índice
1.
2.
3.
4.
5.
6.
Introducción
Concurrencia
Seguridad
Extensiones
Comparativa con otras bases de datos
Conclusiones
1. Introducción
Oracle es una base de datos relacional que lleva muchos años en el
mercado. Se creó en 1977 de la mano de Laurence Joseph Ellison. Antes de
crear Oracle, Ellison trabajó para la empresa Ampex, la cual le encargó
desarrollar una gran base de datos para la CIA. Sin embargo, fracasó en su
intento. Años más tarde, fundaría por su cuenta la empresa Oracle y crearía la
base de datos de igual nombre.
2. Concurrencia
Una característica principal en una buena base de datos es el acceso
concurrente a ellos. El problema que plantea la concurrencia es que los datos
pueden ser leídos y modificados de forma incorrecta, violando la integridad de
los mismos.
Para evitar estos problemas, Oracle utiliza dos técnicas: varios tipos de
bloqueo y un modelo de consistencia multiversión.
2.1. Bloqueo
Los mecanismos de bloqueo se utilizan para conseguir dos cosas:
consistencia e integridad, es decir, asegurar que los datos utilizados por el
usuario no se modifiquen por otros usuario hasta que el primero no termine con
ellos, por una parte; y por otra, que los cambios realizados se reflejen en la
secuencia correcta. Además, es importante que el tiempo de espera para
acceder a los datos sea inapreciable.
Entre los mecanismos de bloqueo destacamos el bloqueo automático.
Como su nombre indica, se realiza de forma automática y se encarga de
bloquear los datos de la tabla a nivel de fila, minimizando así la contención y el
tiempo de espera. Aunque los datos estén bloqueados, es posible consultarlos
pero no modificarlos.
En cualquier caso, si el usuario lo desea, Oracle permite el bloqueo
manual a nivel de fila y de tabla. Este último es útil para consultar registros que
posteriormente van a ser actualizados.
2.2. Modelo de consistencia multiversión
En este modelo nos encontramos con la consistencia en lectura. Ésta
garantiza que los datos leídos por una sentencia sean consistentes y no
cambia su ejecución (consistencia a nivel de sentencia). Además, garantiza
que un usuario sólo esperará a otros cuando intente modificar las mismas filas
en transacciones concurrentes.
Esto permite imaginar que cada usuario trabaja con una copia de la base
de datos, de ahí la idea de consistencia mutiversión.
3. Seguridad
Otra característica importante es la seguridad para garantizar la
fiabilidad y exclusividad de los datos. Oracle dispone de mecanismos que
controlan el acceso a los datos, previenen de accesos no autorizados,
controlan los recursos del sistema y realizan auditorías.
La seguridad en Oracle es de dos tipos: seguridad del sistema, que se
encarga de comprobar usuarios y contraseñas, accesos al sistema permitidos
al usuario y controlar los recursos del sistema y del usuario; y la seguridad de
los datos, que trata aspectos como accesos permitidos a los objetos o datos y
qué operaciones les están permitidas a los usuarios.
A la hora de gestionar la seguridad, existen diferentes alternativas a
utilizar: usuarios y esquemas de la base de datos, privilegios y roles, cuotas de
almacenamiento, limitación de recursos y auditorías.
3.1 Usuarios y esquemas de la base de datos
Un usuario dispone de un conjunto de propiedades que determinan
aspectos como: el espacio de disco disponible, las acciones permitidas o las
limitaciones de los recursos del sistema.
3.2. Privilegios y roles
Los privilegios son los derechos que tiene el usuario para realizar ciertas
acciones sobre el sistema y los datos. Se pueden clasificar en: privilegios del
sistema y privilegios sobre objetos.
Los privilegios del sistema permiten realizar acciones sobre un objeto,
como eliminar una tabla. Normalmente, estos privilegios son asignados a
administradores y programadores, porque dichas acciones son delicadas.
Los privilegios sobre objetos permiten realizar acciones sobre objetos
específicos, como eliminar filas de una tabla.
Los privilegios se conceden de dos maneras: explícitamente, con el
nombre de usuario, y mediante roles, un grupo de privilegios que se pueden
conceder a usuarios y a otros roles.
3.3. Cuotas de almacenamiento
Las cuotas de almacenamiento sirven para limitar el espacio de disco
asignado a cada usuario y el asignado a los objetos del esquema de la base de
datos. Además, se pueden definir cuotas para controlar la cantidad es espacio
consumido por los objetos de un usuario.
3.4. Limitación de los recursos
Para cada usuario existe un perfil que especifica las limitaciones sobre
los distintos recursos disponibles para éste. Algunos recursos son: el número
de sesiones concurrentes que el usuario puede abrir, el tiempo de CPU que
puede utilizar, el tiempo de conexión, el tiempo de inactividad, etc.
3.5. Auditorías
Las auditorias son procesos que permiten detectar usos extraños de la
base de datos. En Oracle, se pueden realizar a tres niveles: a nivel de
sentencia, a nivel de privilegios y a nivel de objeto.
Las auditorias a nivel de sentencia registran las sentencias SQL. Se
pueden realizar para todos los usuarios o para algunos en concreto.
A nivel de privilegios, registran el uso de privilegios delicados. También
se pueden realizar sobre todos los usuario o sobre algunos.
Finalmente, las auditorias a nivel de objeto registran los accesos a
objetos concretos del esquema.
Para todos los tipos, Oracle permite analizar, de forma selectiva, las
sentencias realizadas con éxito, las fallidas o ambas, para detectar las
malintencionadas.
4. Extensiones
Además de las herramientas propias de una buena base de datos,
Oracle proporciona otras de gran utilidad: grid computing, herramientas
administrativas, de recuperación de datos, de inteligencia del negocio, de
gestión del contenido y de integración de la información.
4.1. Grid computing
El sistema de grid computing consiste en agrupar varios servidores para
poder ejecutar operaciones en paralelo, ganando velocidad y rendimiento. Es
similar al sistema de clusters, con la diferencia de que en el grid cada servidor
puede usar cualquier recurso para ejecutar cualquier aplicación de cualquier
cliente. De esta forma, el sistema es más flexible, más disponible para el
usuario y de mayor rendimiento.
4.2. Herramientas administrativas
Son aquellas herramientas que facilitan el trabajo al administrador de la
base de datos. Entre ellas, destacamos: el auto-administrador, que se encarga
de realizar las tareas del administrador en su ausencia automáticamente; el
administrador de empresa, que coordina a través de la red la labor de varios
administradores; el administrador automático del contenido, que redistribuye
equilibradamente el espacio en disco y replica los datos; el scheduler, que
gestiona los procesos; y el administrador de recursos, que controla que ningún
usuario acapare los mismos.
4.3. Herramientas de recuperación de datos
Es importante disponer de algún medio para recuperar los datos en caso
de fallo del sistema. De eso se encarga automáticamente el RMAN (Recovery
MANager). Además, hace copias incrementales y se recomienda por ser más
robusto que los comandos.
4.4. Herramientas de inteligencia del negocio
Estas herramientas son de utilidad para las empresas. Entre las
primeras, se encuentran: data warehouse, para el análisis y extracción de
información relevante a partir de los datos (utilizando para ello OLAP y data
mining); compresión y partición de tablas, para gestionar el espacio y acceder
selectivamente; y la ejecución o procesamiento paralelo de sentencias SQL.
4.5. Herramientas de gestión del contenido
Estas herramientas permiten representar en la base de datos objetos
pertenecientes a otras bases de datos (como DB2) o incluso tipos de datos no
propios de bases de datos relacionales, como: XML, objetos, texto, imágenes,
sonido… Además, existen indexadores para buscar eficientemente todos ellos.
4.6. Herramientas de integración de la información
En este caso, hablamos de herramientas útiles para entornos
distribuidos, que garantizan: que un usuario no sepa dónde están los datos,
que no se deban modificar las sentencias SQL, la integridad de los datos, la
optimización de las consultas, el control por parte del usuario de la
transferencia de la información (mediante streams) y la posibilidad de
comunicación con bases de datos o aplicaciones distintas a las de Oracle.
5. Comparativa con otras bases de datos
En este apartado se comparan distintas bases de datos comerciales
bastante conocidas y utilizadas por todo el mundo: Oracle, SQL Server, DB2 e
Informix. Para ello, hemos utilizado análisis y comparativas (generalmente,
realizadas por las propias empresas que distribuyen estas bases de datos) y
las opiniones de usuarios que las han utilizado.
5.1. Oracle
Entre sus ventajas, encontramos que es, con mucho, la más completa
en cuanto a características y extensiones se refiere. Además, es muy robusta y
estable, soporta grandes cantidades de datos y funciona perfectamente en
sistemas críticos y distribuidos.
En contra, podemos decir que Oracle es la más cara de todas, no sólo
por su precio, sino por el coste de su instalación, aprendizaje y mantenimiento.
Además, la dificultad de su manejo implica la contratación de varios
administradores, cuyos salarios suelen ser muy altos.
5.2. DB2
Es la principal competidora de Oracle y por ello, presenta características
parecidas. Sin embargo, aventaja a su rival en que ofrece mayor compatibilidad
para servidores con diferentes sistemas operativos y un precio visiblemente
inferior.
Como desventaja, esta base de datos de IBM ha perdido enteros con las
últimas actualizaciones, que están mal diseñadas o resultan demasiado caras.
5.3. SQL Server
La base de datos de Microsoft por antonomasia. Destaca por ser la más
barata de todas, y la más fácil de instalar y utilizar. Además, está optimizada
para Windows.
Pero precisamente ésa es su principal desventaja: que no soporta otro
sistema operativo que no sea Windows, ni tampoco grandes cantidades de
datos.
5.4. Informix
Ésta es otra base de datos de IBM y también tiene características
similares a Oracle. Eso sí, es más fácil de instalar y configurar. Sin embargo, su
precio es algo mayor en configuraciones parecidas.
A continuación, ofrecemos una tabla de precios de estas bases de
datos, tanto en su versión estándar como en su versión empresarial.
Nº de CPUs Oracle9i
IBM
DB2 SQL Server Informix
Standard
v8.1
2000
versión 9.21
Edition
Workgroup Standard
Edition
Edition
1
$15,000
$7,500
$4,999
$20,000
2
$30,000
$15,000
$9,998
$30,000
8
$120,000
$60,000
$39,992
-
32
$480,000
$240,000
$159,968
-
Nº
de Oracle9i
IBM DB2 v8.1 SQL
Server
CPUs Enterprise Edition Enterprise
2000 Enterprise
Edition
Edition
1
$40,000
$25,000
$19,999
2
$80,000
$50,000
$39,998
8
$320,000
$200,000
$159,992
32
$1,280,000
$800,000
$639,968
6. Conclusiones
Con lo dicho en la comparativa y lo visto en las tablas de precios,
podemos decir que, evidentemente, todas estas bases de datos están
orientadas a la empresa, pues ofrecen características que pueden ser de
utilidad para la misma. Además, es necesaria una inversión de dinero que un
usuario particular no puede costearse.
A esto hay que añadir unos curiosos datos. En una encuesta realizada
en la web sobre la base de datos preferida por los usuarios, éstos se
decantaban por bases de datos no comerciales, como PostgreSQL y MySQL.
Sin embargo, en otro estudio se reflejaba que las empresas solicitaban
mayores conocimientos sobre las comerciales, como Oracle o SQL Server.
Esto puede deberse, por una parte, a que las bases de datos comerciales
tienen claramente una mayor difusión, y por otra parte, a que éstas dan una
imagen de seriedad porque existen empresas detrás.
En cuanto a cuándo usar una u otra base de datos, creemos que Oracle,
DB2 e Informix, por sus características, son recomendable en grandes
empresas, como multinacionales, y en proyectos de gran envergadura, donde
se utilice un gran volumen de datos y donde se trabaje en sistemas críticos o
distribuidos. SQL Server no llega a tanto, por eso es recomendable en
proyectos más pequeños que solamente necesiten entornos Windows.