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.