Sie sind auf Seite 1von 159

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez

Pablo

UNIVERSIDAD LA SALLE

Trabajo Final proyecto de Administracin de Base de datos Tecnologa Oracle 11g R2

Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Trabajo Final proyecto de Administracin de Base de datos Tecnologa Oracle 11g R2


ndice: 1. Descripcin General del RDBMS 2. Requerimientos para su instalacin y plataformas en las que se puede instalar 3. Estructura de almacenamiento de la base de datos Oracle 4. Estructura de la memoria 5. Integridad, concurrencia, consistencia y manejo de transacciones de datos 6. Indizacin 7. Implementacin del diseo conceptual (MER) 8. Administracin de la Seguridad de la Base de Datos 9. Administracin de Objetos 10. Utileras del RDBMS 11. Frontends & Backends 12. Servicios de DTW y BI 13. Ejemplos de aplicacin 14. Lenguaje de programacin nativo: PL/SQL 15. Referencias 3 6 29 35 42 65 72 88 93 103 112 117 129 139 159

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Oracle 11g Descripcin General


Oracle Database 11g es un sistema de gestin de bases de datos objeto-relacin o ORDBMS por sus siglas en ingles. Es considerada la nica base de datos diseada para grid computing Una base de datos objeto relacional es la unin entre los sistemas de gestin de bases de datos relacional y las bases de datos orientadas a objetos. Oracle Database 11g es toda una suite que contiene diferentes aplicaciones cuya funcin principal es gestionar los datos en propiedad de una empresa y convertir estos datos en informacin valiosa para mejorar los procesos, implementar estrategias comerciales o ayudar en la toma de decisiones crticas para la empresa. Actualmente la versin ms reciente de Oracle database 11g es la R2. Las ventajas que se destacan en esta nueva versin de Oracle database 11g R2 son: Proteccin contra fallas del servidor, errores humanos, reduccin del tiempo de cada. Asegura los datos y permite la integridad un nivel nico de seguridad por lnea, cifrado de datos transparente y recuperacin total de los datos. Alto rendimiento en el almacenamiento de los datos, procesamiento analtico en lnea y minera de datos. Manejo integral del ciclo de vida de la informacin. Oracle Database 11g es una plataforma de base de datos comprensiva para Data Warehousing y Business Intelligence que combina escalabilidad, rendimiento, integracin embebida, calidad de datos y capacidades de anlisis. Existen tres ediciones de Oracle database 11g: Oracle Database 11 g Standard Edition (SE) est disponible para uno o servidores agrupados con una capacidad mxima de cuatro sockets en total. Incluye Oracle Real Application Clusters como una caracterstica estndar. Oracle Real Application Clusters permite que varias computadoras ejecuten el RDBMS de Oracle mientras acceden a una base de datos individual o una base de datos en grupo (cluster). Otra caracterstica esencial es el Cache Fusin nombre dado a la habilidad de Oracle RAC para tratar las caches de datos In-memory en cada computador en una cache individual global. Cache Fusin esencialmente 'funde' las caches separadas en una cache global. Oracle Database 11 g Enterprise Edition (EE) proporciona productos de gestin de datos de seguridad de misin crtica de procesamiento de transacciones y aplicaciones on-line, consultas intensivas almacenes de datos y gestin de contenidos

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

y aplicaciones Web 2.0. Est disponible en los servidores individuales y agrupados, sin toma de limitacin. Oracle Database Express Edition (XE) se puede instalar en cualquier mquina husped de cualquier tamao y nmero de CPUs (Una base de datos por mquina), pero XE slo almacena hasta 4GB de datos de los usuarios, utiliza hasta 1 GB de memoria, y el uso de una CPU en la mquina. XE puede ser fcilmente actualizado a SE o EE, cuando sea necesario sin necesidad de costosas y complejas las migraciones. Cada versin de Oracle Database 11g incluye herramientas que complementan la funcionalidad de este sistema de gestin de bases de datos por ejemplo: Active Data Guard. Dentro de Oracle Database 11g, Oracle Data Guard permite que los clientes utilicen su base de datos standby para mejorar el desempeo de su entorno de produccin y tambin para brindar proteccin contra las fallas del sistema y desastres en el sitio. Oracle Data Guard posibilita de manera exclusiva la lectura y recuperacin simultnea de una sola base de datos standby, lo que hace que est disponible para la creacin de informes, backup, pruebas y ejecucin de actualizaciones a bases de datos de produccin. Al trasladar la carga de trabajo de produccin al sistema standby, Oracle Data Guard ayuda a mejorar el desempeo de los sistemas de produccin y ofrece una solucin ms eficaz de recuperacin de desastres Advanced Compression. Oracle Database 11g ofrece compresin avanzada de datos tanto para aquellos estructurados como no estructurados que se gestionan en el procesamiento de transacciones, almacenamiento de datos (data warehousing) y entornos de gestin de contenido. Los ratios de compresin de 2 y 3 veces, o superior para todos los datos, pueden lograrse con las nuevas capacidades avanzadas de compresin de Oracle Database 11g. Oracle Total Recall. Permite a los administradores consultar datos en tablas designadas en fechas anteriores. Esta funcionalidad ofrece una manera fcil y prctica para agregar una dimensin de tiempo al rastreo de cambios, auditoria y cumplimiento de datos. Oracle Flashback Transaction. Facilita volver atrs en una transaccin realizada con errores, as como en cualquier transaccin relacionada.

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Parallel Backup and Restore. Ayuda a mejorar el desempeo de backup y de restauracin de bases de datos muy grandes. Hot Patching. Mejora la disponibilidad del sistema permitiendo aplicar los parches de base de datos sin que sea necesario cerrarlas. Data Recovery Advisor. Ayuda a los administradores a reducir considerablemente el tiempo de baja de recuperacin automatizando la investigacin del problema, determinando de manera inteligente el plan de recuperacin y manejando varias situaciones de fallas. Oracle Fast Files. La capacidad de ltima generacin para almacenar objetos grandes (LOBs, por sus siglas en ingls) tales como imgenes, grandes objetos de texto, o tipos de datos avanzados, incluidos XML, imgenes mdicas y objetos tridimensionales dentro de la base de datos. XML. Se ha incorporado soporte para XML binario, lo cual hace posible que los clientes puedan elegir opciones de almacenamiento XML para cumplir con los requerimientos especficos de desempeo y de aplicaciones. XML DB tambin permite la manipulacin de datos XML utilizando interfaces estndares del sector con soporte a los estndares XQuery, Java Specification Requests (JSR)-170 y SQL/XML.

Encriptacin transparente. Brinda encriptacin de tablespace que puede utilizarse para encriptar tablas e ndices enteros y otros almacenamientos de datos. Adems, tambin se ofrece encriptacin para los LOB almacenados en la base de datos. Cubos OLAP. Los cubos OLAP han sido mejorados para funcionar como visualizaciones materializadas en la base de datos. Esto permite a los desarrolladores utilizar SQL estndar del sector para consulta de datos, incluso beneficindose con el alto desempeo ofrecido por un cubo OLAP. Query Results Caches. Mejoran el desempeo y la escalabilidad de la aplicacin al colocar en cach y reutilizar los resultados de las frecuentes consultas a las bases de datos y funciones en los niveles de aplicaciones; y bases de datos, Database Resident Connection Pooling. Mejora la escalabilidad de los sistemas basados en la Web brindando un sondeo de conexin para aplicaciones no multithreaded .

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Data Pump Compressed dump file sets. Permite comprimir los metadatos en un archivo conjunto tipo vertedero (dump files set). Esta edicin incluso permite la compresin de estos dump file set. Database Upgrade/Downgrade Enhancements. Reduce la complejidad al actualizar la base de datos y provee al DBA con informacin para determinar el xito de la actualizacin. Herramientas Business Intelligence y Data Warehousing. Permiten la integracin de bases de datos operacionales y analticas, para permitir una mayor calidad e informacin actualizada. Estas herramientas tambin permiten limpiar la base de datos, el usuario puede especificar qu datos deben ser eliminados. Real Application Testing. Oracle Database 11g incluye caractersticas avanzadas de autogestin y automatizacin para ayudar a que las empresas cumplan con los acuerdos de nivel de servicio. Por ejemplo, para las empresas que deben realizar frecuentes actualizaciones de la base de datos y del sistema operativo, adems de cambios en el hardware y en el sistema, Oracle Database 11g presenta Oracle Real Application Testing, lo que hace que sea la primera base de datos en ayudar a los clientes a realizar pruebas y gestionar cambios al entorno de TI con rapidez, de manera controlada y econmica.

Requerimientos para su instalacin y plataformas en las que se puede instalar.


En esta seccin se muestra la instalacin de la base de datos versin 11g, as como los productos complementarios en las cinco diferentes plataformas que conforma: Linux Windows Solaris HP-UX AIX

con la consideracin de la configuracin de los clientes en las plataformas antes citadas

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Requerimientos de Hardware para instalacin de Base de Datos para Linux


Componente Memoria RAM Descripcin Mnimo: 1 GB de RAM Recomendado: 2 GB de RAM o ms Considerar la siguiente relacin entre memoria RAM instalada y recomendacin de espacio swap configurado: RAM Espacio SWAP Entre 1 GB y 2GB 1.5 veces ms que la RAM Entre 2 GB y 16 GB Igual al tamao de la RAM Ms de 16 GB 16 GB Arquitectura Linux, la cual puede ser confirmada por medio del siguiente comando # uname m 1 GB de espacio en el directorio /tmp A continuacin se describen las configuraciones especficas por tipos de arquitectura Linux:
Tipo de Instalacin (Linux x86) Edicin Empresarial Edicin Estndar Tipo de Instalacin (Linux x86) Edicin Empresarial Edicin Estndar Tipo de Instalacin (Linux x86-64) Edicin Empresarial Edicin Estndar Tipo de Instalacin (Linux x86-64) Edicin Empresarial Edicin Estndar Espacio para archivos de software (GB) 3.95 3.88 Espacio para archivos de datos (GB) 1.7 1.5 Espacio para archivos de software (GB) 4.35 3.73 Espacio para archivos de datos (GB) 1.68 1.48

Arquitectura del Sistema Espacio en Disco

Tipo de Instalacin (IBM:Linux en sistema Z) Edicin Empresarial Edicin Estndar Tipo de Instalacin (IBM:Linux en sistema Z) Edicin Empresarial Edicin Estndar

Espacio para archivos de software (GB) 4.37 4.30 Espacio para archivos de datos (GB) 1.68 1.48

Requisitos de

La mnima resolucin solicitada es de 1024 x 768 px o mayor.

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

pantalla

Requerimientos de Software para instalacin de Base de Datos para Linux


Componente Sistema Operativo Descripcin Segn la arquitectura del procesador se agrupa de la siguiente manera:
On Linux x86 Asianux Server 3 SP2 Oracle Linux 5 Update 2 Oracle Linux 4 Update 7 Red Hat Enterprise Linux 4 Update 7

Red Hat Enterprise Linux 5 Update 2 SUSE Linux Enterprise Server 10 SP2 SUSE Linux Enterprise Server 11

On Linux x86-64 Asianux Server 3 SP2 Oracle Linux 5 Update 2 Oracle Linux 4 Update 7 Oracle Linux 5 Update 5

Red Hat Enterprise Linux 4 Update 7 Red Hat Enterprise Linux 5 Update 2 Red Hat Enterprise Linux 5 Update 5 SUSE Linux Enterprise Server 10 SP2 SUSE Linux Enterprise Server 1

On IBM: Linux on System z Red Hat Enterprise Linux 4 Update 8 SUSE Linux Enterprise Server 10 SP3 Red Hat Enterprise Linux 5 Update 4 SUSE Linux Enterprise Server 11 SP1

Requerimientos de Kernel

F For Linux x86


On Oracle Linux 4 and Red Hat Enterprise Linux 4 2.6.9 o superior On Asianux Server 3, Oracle Linux 5, and Red Hat Enterprise Linux 5 2.6.18 o superior

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

On SUSE Linux Enterprise Server 10 2.6.16.21 o superior On SUSE Linux Enterprise Server 1: 2 2.6.27.19 o superior

For Linux x86-64


On Oracle Linux 4 and Red Hat Enterprise Linux 4 2.6.9 o superior O On Oracle Linux 5 Update 2 2.6.18 o superior (compatible with Red Hat Enterprise kernel) On Oracle Linux 5 Update 5 with the Unbreakable Enterprise Kernel for Linux 2.6.321 100.0.19 o superior On Red Hat Enterprise Linux 5 Update 5 2.6.32 o superior O On Asianux Server 3, Oracle Linux 5 Update 2, and Red Hat Enterprise Linux 5 Update 2 U 2.6.18 o superior O On SUSE Linux Enterprise Server 10 2.6.16.21 o superior O On SUSE Linux Enterprise Server 11 2.6.27.19 o superior

For IBM: Linux on System z


On Red Hat Enterprise Linux 4 2.6.9 o superior On Red Hat Enterprise Linux 5 2.6.18 o superior On SUSE Linux Enterprise Server 10 2.6.16.21 o superior On SUSE Linux Enterprise Server 11 2.6.27.19 o superior

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Requerimientos de Paquetes

Linux x86
Oracle Linux 4 and Red Hat Enterprise Linux 4 Los siguientes paquetes deben ser instalados: binutils-2.15.92.0.2 compat-libstdc++-33-3.2.3 compat-libstdc++-33-3.2.3 (32 bit) elfutils-libelf-0.97 elfutils-libelf-devel-0.97 expat-1.95.7 g gcc-3.4.6 gcc-c++-3.4.6 glibc-2.3.4-2.41 glibc-2.3.4-2.41 (32 bit) glibc-common-2.3.4 glibc-devel-2.3.4 glibc-headers-2.3.4 libaio-devel-0.3.105 (32 bit) libgcc-3.4.6 libgcc-3.4.6 (32-bit) libstdc++-3.4.6 libstdc++-3.4.6 (32 bit) libstdc++-devel 3.4.6 make-3.80 numactl-0.6.4.x86_64 pdksh-5.2.14 sysstat-5.0.5 libaio-0.3.105 libaio-0.3.105 (32 bit) libaio-devel-0.3.105

Asianux Server 3, Oracle Linux 5, and Red Hat Enterprise Linux 5 Los siguientes paquetes deben ser instalados: binutils-2.17.50.0.6 compat-libstdc++-33-3.2.3 compat-libstdc++-33-3.2.3 (32 bit) elfutils-libelf-0.125 elfutils-libelf-devel-0.125 gcc-4.1.2 g gcc-c++-4.1.2 g glibc-2.5-24 glibc-2.5-24 (32 bit) glibc-common-2.5 glibc-devel-2.5 numactl-devel-0.9.8.x86_64 sysstat-7.0.2 glibc-devel-2.5 (32 bit) glibc-headers-2.5 k ksh-20060214 libaio-0.3.106 libaio-0.3.106 (32 bit) libaio-devel-0.3.106 libaio-devel-0.3.106 (32 bit) libgcc-4.1.2 libgcc-4.1.2 (32 bit) libstdc++-4.1.2 libstdc++-4.1.2 (32 bit) libstdc++-devel 4.1.2 make-3.81

SUSE Linux Enterprise Server 10 Los siguientes paquetes deben ser instalados: 10

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Manejadores Oracle ODBC

Para usar ODBC en Linux x86, el siguiente RPM 32-bit ODBC RPMs es requerido:
O Oracle Linux 4 and Red Hat Enterprise Linux 4: unixODBC-2.2.11 (32 bit) o superior unixODBC-devel-2.2.11 (32 bit) o superior 0 Asianux Server 3, Oracle Linux 5, and Red Hat Enterprise Linux 5 u unixODBC-2.2.11 (32 bit) o superior unixODBC-devel-2.2.11 (32 bit) o superior 1 S SUSE 10: unixODBC-32bit-2.2.11 (32 bit) o superior unixODBC-devel-32bit-2.2.11 (32 bit) o superior

O On SUSE 11: unixODBC-32bit-2.2.12 (32-bit) o superior unixODBC-devel-32bit-2.2.12 (32 bit) o superior

Para usar ODBC en Linux x86-64, el siguiente RPM 32-bit ODBC RPMs es requerido:
O On Oracle Linux 4 and Red Hat Enterprise Linux 4: unixODBC-2.2.11 (32 bit) o superior unixODBC-devel-2.2.11 (64 bit) o superior unixODBC-2.2.11 (64 bit ) o superior On Asianux Server 3, Oracle Linux 5, and Red Hat Enterprise Linux unixODBC-2.2.11 (32 bit) o superior unixODBC-devel-2.2.11 (64 bit) o superior unixODBC-2.2.11 (64 bit) o superior O On SUSE 10: unixODBC-32bit-2.2.11 (32 bit) o superior unixODBC-2.2.11 (64 bit ) o superior unixODBC-devel-2.2.11 (64 bit) o superior

11

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

O On SUSE 11: unixODBC-2.2.12 o superior unixODBC-devel-2.2.12 o superior u unixODBC-32bit-2.2.12 (32 bit) o superior

Para usar ODBC en IBM: Linux on System z, el siguiente RPM 32bit ODBC RPMs es requerido:
On Red Hat Enterprise Linux 4: unixODBC-2.2.11 (32 bit) o superior unixODBC-devel-2.2.11 (64 bit) o superior unixODBC-2.2.11 (64 bit ) o superior On Red Hat Enterprise Linux 5: unixODBC-2.2.11 (32 bit) o superior unixODBC-devel-2.2.11 (64 bit) unixODBC-2.2.11 (64 bit) o superior On SUSE 10: unixODBC-32bit-2.2.11 (32 bit) unixODBC-2.2.11 (64 bit ) o superior unixODBC-devel-2.2.11 (64 bit) On SUSE 11: unixODBC-2.2.12 o superior unixODBC-devel-2.2.12 o superior unixODBC-32bit-2.2.12 (32 bit)

Requerimientos de navegador WEB

Los navegadores web deben soportar JavaScript, HTML 4.0 y estndares CSS 1.0. Los siguientes navegadores satisfacen este requerimiento: Netscape Navigator 8.1 Netscape Navigator 9.0 Microsoft Internet Explorer 6.0 SP2 Microsoft Internet Explorer 7.0 SP1 Microsoft Internet Explorer 8.0 Firefox 2.0 Firefox 3.0.7

12

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Firefox 3.5 Firefox 3.6 Safari 3.1 Safari 3.2 Safari 4.0.x Google Chrome 3.0 Chrome 4.0

Requerimientos de Hardware para instalacin de Base de Datos para Windows 32-Bit


Componente Memoria RAM Arquitectura del Sistema Espacio en Disco Descripcin Mnimo: 1 GB de RAM Asignar el doble de RAM para memoria virtual Procesador: Intel (x86), AMD64, e Intel EM64T Espaciototalparainstalacintpica:5.35GB Espaciototalparainstalacinavanzada:4.89GB A continuacin se describen el detalle del uso del espacio
Tipo de Instalacin Instalacin Espacio temporal 500 MB SYSTEM_DRIVE:\ Archivos de programa\Oracle 4.0 MB Oracle Home 3.0 GB Archivos de Datos 1.86 GB

13

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

tpica Instalacin avanzada

500 MB

4.0 MB

3.0 GB

1.4 GB

Requisitos de pantalla

Es altamente recomendable el uso del sistema de archivos NTFS (Network Transfer File System) en lugar de FAT32. La mnima resolucin solicitada es de 1024 x 768 px o mayor. Video adaptador: 256 colores

Requerimientos de Hardware para instalacin de Base de Datos para Windows 64-Bit

Componente Memoria RAM Arquitectura del Sistema Espacio en Disco

Descripcin Mnimo: 1 GB de RAM Usando Windows 7: 2 GB de RAM Asignar el doble de RAM para memoria virtual Procesador: AMD64, e Intel EM64T Espaciototalparainstalacintpica:5.39GB Espaciototalparainstalacinavanzada:5.89GB A continuacin se describen el detalle del uso del espacio
Tipo de Instalacin Instalacin tpica Instalacin avanzada Espacio temporal 500 MB 500 MB SYSTEM_DRIVE:\ Archivos de programa\Oracle 4.0 MB 4.0 MB Oracle Home 3.0 GB 3.5 GB Archivos de Datos 1.9 GB 1.4 GB

Requisitos de pantalla

Es altamente recomendable el uso del sistema de archivos NTFS (Network Transfer File System) en lugar de FAT32. La mnima resolucin solicitada es de 1024 x 768 px o mayor. Video adaptador: 256 colores

Requerimientos de Software para instalacin de Base de Datos para Windows 32-Bit


14

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Componente Sistema Operativo

Descripcin Windows Server 2003 todas las ediciones Windows Server 2003 R2 - todas las ediciones Windows XP Professional Windows Vista Edicin Business, Enterprise y Ultimate Windows Server 2008 - Edicin Standard, Enterprise, Datacenter, Web y Foundation. La opcin Server Core option no est soportada. Windows 7 - Edicin Professional, Enterprise y Ultimate.

Compilador

Pro*COBOL Compiladores Intel 10.1 C:


1. Oracle Call Interface 2. External callouts 3. Pro*C/C++

4. XDK Oracle C++ Call X Requerimientos de navegador WEB Los navegadores web deben soportar JavaScript, HTML 4.0 y estndares CSS 1.0. Los siguientes navegadores satisfacen este requerimiento: Microsoft Internet Explorer 6.0 SP2 Microsoft Internet Exlorer 7.0 SP1 Microsoft Internet Explorer 8.0 Firefox 2.0 Firefox 3.0.7 Firefox 3.5 Firefox 3.6 Netscape 8.1 Netscape 9.0 Safari 3.1 Safari 3.2 Safari 4.0.x Safari 4.0.x Google Chrome 3.0 Chrome 4.0

15

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Requerimientos de Software para instalacin de Base de Datos para Windows 64-Bit


Componente Sistema Operativo Descripcin Windows Server 2003 todas las ediciones x64 Windows Server 2003 R2 - todas las ediciones x64 Windows XP Professional Windows Vista x64 Edicin Business, Enterprise y Ultimate Windows Server 2008 x64 y Windows Server 2008 R2 x64 - Edicin Standard, Enterprise, Datacenter, Web y Foundation. La opcin Server Core option no est soportada. Windows 7 x64 - Edicin Professional, Enterprise y Ultimate. Compilador Pro*COBOL Compiladores Intel 10.1 C:
5. Oracle Call Interface 6. External callouts 7. Pro*C/C++

8. XDK Oracle C++ Call X Requerimientos de navegador WEB Los navegadores web deben soportar JavaScript, HTML 4.0 y estndares CSS 1.0. Los siguientes navegadores satisfacen este requerimiento: Microsoft Internet Explorer 6.0 SP2 Microsoft Internet Exlorer 7.0 SP1 Microsoft Internet Explorer 8.0 Firefox 2.0 Firefox 3.0.7 Firefox 3.5 Firefox 3.6 Netscape 8.1 Netscape 9.0 Safari 3.1 Safari 3.2 Safari 4.0.x Safari 4.0.x

16

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Google Chrome 3.0 Chrome 4.0

Requerimientos de Hardware para instalacin de Base de Datos para Solaris

Componente Memoria RAM

Arquitectura del Sistema

Descripcin Mnimo: 1 GB de RAM Recomendado: 2 GB de RAM o ms Considerar la siguiente relacin entre memoria RAM instalada y recomendacin de espacio swap configurado: RAM Espacio SWAP Entre 1 GB y 2GB 1.5 veces ms que la RAM Entre 2 GB y 16 GB Igual al tamao de la RAM Ms de 16 GB 16 GB Arquitectura Solaris, la cual puede ser confirmada por medio del siguiente comando # /bin/isainfo kv La salida esperada es la siguiente: O Oracle Solaris on SPARC (64-Bit):64-bit sparcv9 kernel modules Oracle Solaris on x86-64 (64-Bit):64-bit amd64 kernel modules

Espacio en Disco

1 GB de espacio en el directorio /tmp A continuacin se describen las configuraciones especficas por tipos de arquitectura Linux:
Tipo de Instalacin (Linux x86) Edicin Empresarial Edicin Estndar Edicin Estndar One Edicin Personalizada (Edicin empresarial + opciones de instalacin personalizada) Espacio para archivos de software (GB) 4.7 4.6 4.6 4.7

Requisitos de pantalla Requisitos de Run Level

La mnima resolucin solicitada es de 1024 x 768 px o mayor. Asegurarse que el sistema empez en nivel 3 de Run Level

17

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Requerimientos de Software para instalacin de Base de Datos para Solaris


Componente Sistema Operativo Requisitos de Paquetes Descripcin Oracle Solaris 10 U6 (5.10-2008.10) SUNWarc SUNWbtool SUNWhea SUNWlibC SUNWlibm SUNWlibms SUNWsprot SUNWtoo SUNWi1of SUNWi1cs (ISO8859-1) SUNWi15cs (ISO8859-15) SUNWxwfnt SUNWcsl Compilador Oracle Solaris Studio 12 (C and C++ 5.9) es soportado con: Pro*C/C++, Oracle Call Interface, Oracle C++ Call Interface, y Oracle XML Developers Kit (XDK) for Oracle Database 11g Release 2. Requerimientos de navegador 18 Los navegadores web deben soportar JavaScript, HTML 4.0 y estndares

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

WEB

CSS 1.0. Los siguientes navegadores satisfacen este requerimiento: Netscape Navigator 8.1 Netscape Navigator 9.0 Microsoft Internet Explorer 6.0 SP2 Microsoft Internet Explorer 7.0 SP1 Microsoft Internet Explorer 8.0 Firefox 2.0 Firefox 3.0.7 Firefox 3.5 Firefox 3.6 Safari 3.1 Safari 3.2 Safari 4.0.x Google Chrome 3.0 Google Chrome 4.0

Requerimientos de Hardware para instalacin de Base de Datos para HP-UX

Componente Memoria RAM

Arquitectura del Sistema Espacio en Disco

Descripcin Mnimo: 1 GB de RAM Recomendado: 2 GB de RAM o ms Considerar la siguiente relacin entre memoria RAM instalada y recomendacin de espacio swap configurado: RAM Espacio SWAP Entre 1 GB y 2GB 1.5 veces ms que la RAM Entre 2 GB y 16 GB Igual al tamao de la RAM Ms de 16 GB 16 GB Arquitectura HP-UX Itanium systems o HP-UX PA-RISC 1 GB de espacio en el directorio /tmp A continuacin se describen las configuraciones especficas por tipos de arquitectura HP-UX:

19

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Tipo de Instalacin (HP-UX Itanium) Edicin Empresarial Edicin Estndar Tipo de Instalacin (HP-UX Itanium) Edicin Empresarial Edicin Estndar Tipo de Instalacin (HP-UX PA-RISC) Edicin Empresarial Edicin Estndar Tipo de Instalacin (HP-UX PA-RISC) Edicin Empresarial Edicin Estndar

Espacio para archivos de software (GB) 6.89 6.09 Espacio para archivos de datos (GB) 1.69 1.48 Espacio para archivos de software (GB) 5.0 4.7 Espacio para archivos de datos (GB) 2.0 1.8

Requisitos de pantalla Requisitos de Run Level

La mnima resolucin solicitada es de 1024 x 768 px o mayor. Asegurarse que el sistema empez en nivel 3 de Run Level

Requerimientos de Software para instalacin de Base de Datos para HP-UX


Componente Sistema Operativo Descripcin HP-UX 11i V3 patch Bundle Sep/ 2008 (B.11.31.0809.326a) o mayor. Para determiner que version o distribucin est instalada, teclear el siguiente comando:
# uname -aHP-UX hostname B.11.31 U ia64 4156074294 unlimited-user license

Compilador

Los siguientes requerimientos son para los sistemas HP-UX Pro*C/C++, Oracle Call Interface, Oracle C++ Call Interface, y Oracle XML Developers Kit (XDK) for Oracle Database 11g Release 2: En HP-UX PA RISC
HP ANSI C B.11.31.04 (Swlist Bundle - C.11.31.04) - September 2008

20

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

aC++ A.03.85 (Swlist Bundle - C.11.31.04) - September 2008

En HP-UX Itanium
A.06.20 (HP C/aC++ Swlist Bundle - C.11.31.04) - Sep 2008

Manejador Oracle ODBC

El manejador Oracle ODBC en HP-UX Itanium esta certificado con ODBC Driver Manager 2.2.14. .

Para ODBC, debes instalar el paquete gcc 3.4.5 o superior. P


Los manejadores Oracle ODBC no estn soportados en los sistemas HPUX PA-RISC. Requerimientos de navegador WEB Los navegadores web deben soportar JavaScript, HTML 4.0 y estndares CSS 1.0. Los siguientes navegadores satisfacen este requerimiento: Netscape Navigator 8.1 Netscape Navigator 9.0 Microsoft Internet Explorer 6.0 SP2 Microsoft Internet Explorer 7.0 SP1 Microsoft Internet Explorer 8.0 Firefox 2.0 Firefox 3.0.7 Firefox 3.5 Firefox 3.6 Safari 3.1 Safari 3.2 Safari 4.0.x Google Chrome 3.0 Google Chrome 4.0

Requerimientos de Hardware para instalacin de Base de Datos para IBM AIX en POWER Systems (64-Bit)
21

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Componente Memoria RAM

Arquitectura del Sistema

Descripcin Mnimo: 1 GB de RAM Recomendado: 2 GB de RAM o ms Considerar la siguiente relacin entre memoria RAM instalada y recomendacin de espacio swap configurado: RAM Espacio SWAP Entre 1 GB y 2GB 1.5 veces ms que la RAM Entre 2 GB y 16 GB Igual al tamao de la RAM Ms de 16 GB 16 GB Para detertminar si el sistema operativo puede ejecutar el instalador, teclear el siguiente comando: # /usr/bin/getconf HARDWARE_BITMODE El resultado esperado de le ejecucin de este comando es 64. Si no se muestra este resultado, entonces no ser posible instalar este software: Para determinar si el sistema fue arrancado en modo de 64 bits, ejecutar el siguiente comando: # bootinfo -K El resultado debe ser 64, indicando que ese fue el modo en que inici el servidor.Estesistemaoperativonoproveesoportepara

aplicacionesen32bits.
Espacio en Disco 1 GB de espacio en el directorio /tmp A continuacin se describen las configuraciones especficas por tipos de arquitectura IBM AIX:
Tipo de Instalacin (IBM AIX) Edicin Empresarial Edicin Estndar Tipo de Instalacin (IBM AIX) Edicin Empresarial Edicin Estndar Espacio para archivos de software (GB) 7.44 6.99 Espacio para archivos de datos (GB) 1.55 1.50

Requisitos de pantalla

La mnima resolucin solicitada es de 1024 x 768 px o mayor.

22

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Requisitos de Run Level

Asegurarse que el sistema empez en nivel 2 de Run Level

Requerimientos de Software para instalacin de Base de Datos para para IBM AIX en POWER Systems (64-Bit)
Componente Sistema Operativo Descripcin AIX 5L V5.3 TL 09 SP1 ("5300-09-01"), 64 bit kernel AIX 6.1 TL 02 SP1 ("6100-02-01), 64-bit kernel A AIX 7.1 TL 0 SP1 ("7100-00-01"), 64-bit kernel Los siguientes filesets del sistema operativo AIX 5L son requeridos: bos.adt.base bos.adt.lib bos.adt.libm bos.perf.libperfstat 5.3.9.0 o superior bos.perf.perfstat bos.perf.proctools xlC.aix50.rte:10.1.0.0 o superior g gpfs.base 3.2.1.8 o superior Los siguientes filesets del sistema operativo AIX 6.1 son requeridos: bos.adt.base bos.adt.lib bos.adt.libm bos.perf.libperfstat 6.1.2.1 o superior bos.perf.perfstat bos.perf.proctools xlC.aix61.rte:10.1.0.0 o superior g gpfs.base 3.2.1.8 o superior

23

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Los siguientes filesets del sistema operativo AIX 7.1 son requeridos: bos.adt.base bos.adt.lib bos.adt.libm bos.perf.libperfstat bos.perf.perfstat bos.perf.proctools xlC.aix61.rte:10.1.0.0 o superior xlC.rte:10.1.0.0 o superior

Para determinar la distribucin de la versin IBM AIX instalada, ejecutar el siguiente comando # oslevel -s Para AIX 5L: Si la versin de sistema operativo es menor a AIX 5.3 Technology Level 9 SP 1, actualiza el sistema operativo o a nivel superior. Para AIX 6.1: Si la versin de sistema operativo es menor a AIX 6.1 Technology Level 2 SP 1, actualiza el sistema operativo o a nivel superior. Para AIX 7.1: Si la versin de sistema operativo es menor a AIX 7.1 Technology Level 0 plus SP 1, actualiza el sistema operativo o a nivel superior. Compilador Los siguientes requerimientos son para los sistemas AIX Pro*C/C++, Oracle Call Interface, Oracle C++ Call Interface, y Oracle XML Developers Kit (XDK) for Oracle Database 11g Release 2: IBM XL C/C++ Enterprise Edition for AIX, V9.0 April 2008

Manejador Oracle ODBC

El manejador Oracle ODBC en AIX esta certificado con ODBC Driver Manager 2.2.14.

24

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Para ODBC, debes instalar el paquete gcc 3.4.5 o superior. Requerimientos de navegador WEB Los navegadores web deben soportar JavaScript, HTML 4.0 y estndares CSS 1.0. Los siguientes navegadores satisfacen este requerimiento: Netscape Navigator 8.1 Netscape Navigator 9.0 Microsoft Internet Explorer 6.0 SP2 Microsoft Internet Explorer 7.0 SP1 Microsoft Internet Explorer 8.0 Firefox 2.0 Firefox 3.0.7 Firefox 3.5 Firefox 3.6 Safari 3.1 Safari 3.2 Safari 4.0.x Google Chrome 3.0 Google Chrome 4.0

Estructura de almacenamiento de la base de datos Oracle:


3.1 Estructura fsica Una caracterstica de un RDBMS es la independencia de las estructuras de datos lgicas (tablas, vistas, ndices) de las estructuras de almacenamiento fsicas. Gracias a esto se puede manejar la parte fsica sin que afecte a la estructura de la parte lgica. Una base de datos Oracle es un conjunto de archivos que se guardan en un disco persistente. Los archivos que conforman la base de datos, contienen los datos del usuario e informacin adicional que es necesaria para garantizar el funcionamiento de la base de datos. Una base de datos Oracle tiene los siguientes tipos de archivos:

25

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Archivos de datos (Data Files). Archivos de Control (Control Files). Archivos de Bitcora (Redo Log Files o Redo Log).

3.1.1 Archivos de datos (Data Files) Son aquellos que almacenan el diccionario de datos, los objetos del usuario y los valores de los datos previos a su modificacin. Una base de datos Oracle debe poseer al menos un archivo de datos. La informacin de una tabla puede expandirse a muchos Archivos de datos y est puede almacenar mltiples tablas. El nmero mximo de Archivos de datos que soporta una instancia Oracle puede ser configurado en el Control File.

3.1.2 Archivos de Control (Control Files) Contiene la informacin necesaria para mantener y verificar la integridad de la base de datos, como la ubicacin de los datos y los Redo Log. Oracle requiere de esta informacin cada vez que arranque la instancia de RDBMS. Toda base de datos Oracle, requiere de por lo menos un Control File. Los Control File deben de estar protegidos, ya que en caso de prdida no se podr reiniciar la instancia de la base de datos, perdiendo toda la informacin. Oracle tiene mecanismos para almacenar mltiples copias de los archivos de control. 3.1.3. Archivos de Bitcora (Redo Log Files o Redo Log) 26

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Mantiene informacin sobre todos los cambios hechos sobre la base de datos, para asegurar su reconstruccin en caso de fallas. Toda base de datos Oracle requiere de por lo menos 2 Redo Log Files. Es necesario que los Redo Log tengan un buen rendimiento y estn protegidos contra fallas de hardware. Si se pierde la informacin contenida en estos archivos, ser imposible la recuperacin de la base de datos en caso de fallas del sistema. Oracle tiene mecanismos para almacenar mltiples copias de los archivos de control.

3.2 Estructura Lgica Las bases de datos Oracle asignan espacio lgico para toda la informacin de la base de datos. Las unidades lgicas para el espacio de la base de datos son bloques de datos, extensiones, segmentos y tablespaces. 3.2.1 Bloques de datos Una base de datos se encuentra almacenada en bloques de datos que es el nivel ms fino de unidades de almacenamiento. El tamao de un bloque de datos siempre corresponde a un mltiplo del tamao de bloque manejado por el sistema operativo. El tamao del bloque de datos es un valor configurable en el RDBMS.

27

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

3.2.2 Extensiones (extents) Los extents son las piezas utilizadas para construir segmentos. Cada extent se compone de una serie de bloques de datos. La razn principal de esta estructura, es la de minimizar el espacio desperdiciado (vaco) de un tablespace. A medida que se insertan o eliminan filas de una tabla, los extents del tablespace asociado a la tabla pueden aumentar o disminuir de tamao. De esta forma el espacio para el almacenamiento de los datos puede ser administrado dependiendo de cmo la tabla va sufriendo modificaciones en el nmero de filas. Cuando se crea un tablespace se puede especificar el nmero de extents a ser asignados, as como el nmero de extents a ser agregados cada vez que se agote el espacio disponible para almacenar datos.

28

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

3.2.3 Segmentos Es un conjunto de extensiones que han sido asignadas para el almacenamiento de un tipo de datos en especfico y todos ellos se encuentran ubicados dentro del mismo tablespace.

Existen diferentes tipos de segmentos: De datos: cada segmento almacena los datos que corresponden a una tabla. De ndice: cada segmento mantiene los datos para un ndice definido dentro de la base de datos. De rollback: permite almacenar las acciones de una transaccin que deben ser deshechas bajo ciertas circunstancias. Temporales: se crean cuando se requiere de un espacio temporal para procesar una instruccin de SQL y son destruidos una vez que haya terminado el procesamiento de la instruccin. Las instrucciones que usan estos segmentos son: SELECT... ORDER BY..., SELECT...GROUP BY..., SELECT... UNION..., SELECT DISTINCT ..., SELECTINSERSEC..., SELECT ... MINUS ..., CREATE INDEX.

29

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

3.2.4 Tablespaces Es el nivel ms alto en la estructura de datos lgicos en una base de datos Oracle. Una base de datos agrupa las piezas lgicas de mayor nivel de almacenamiento en Oracle (tablespaces). Un tablespace es utilizado para agrupar lgicamente los datos. Por ejemplo, puede tenerse un tablespace para almacenar los datos de contabilidad y otro para almacenar los datos de ventas en una empresa de servicios. Al segmentar grupos de datos relacionados en tablespace diferentes se simplifican las tareas de administracin de dichos grupos. Los tablespaces pueden estar constituidos de varios archivos de datos. Al utilizar ms de un archivo de datos por tablespace pueden distribuirse los datos sobre varios discos y balancear la carga de entrada/salida, mejorando as el rendimiento del sistema. Como parte del proceso de crear la base de datos, Oracle automticamente crea un tablespace llamado SYSTEM. Aunque solo una base de datos pequea puede ser almacenada en SYSTEM, es recomendable que se cree uno o varios tablespaces para los datos del usuario. El tablespace SYSTEM almacena los datos del diccionario. Los archivos de datos pueden ser archivos del sistema de operacin, y en algunos sistemas de operacin se permite que un archivo de datos sea un dispositivo de almacenamiento secundario.

30

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Estructura de la memoria:
Cuando se inicia una instancia, las bases de datos Oracle asignan memoria y empiezan a correr procesos. El rea de memoria almacena informacin como: Cdigo de programas. Informacin acerca de cada sesin que est conectada, aun si no est activa. Informacin necesaria para ejecutar un programa, por ejemplo, el estado de un query y desde cual lnea est siendo ejecutado. Informacin como datos de bloqueo, que es compartida y trasmitida entre los procesos. Datos en cache, como data blocks y redo records, que existen en disco.

Las estructuras de memoria bsicas en una base de datos Oracle son: rea global del sistema (System Global Area, SGA). rea global del programa (Program Global Area, PGA). rea global del usuario (User Global Area, UGA). reas de cdigo de software.

31

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

4.1 rea Global del Usuario (UGA) Es memoria que se asocia con la sesin de un usuario. Esta memoria tiene asignada variables de sesin como la informacin de inicio de sesin, entre otra informacin necesaria para una sesin en la base de datos. Bsicamente guarda el estado de las sesiones. EL UGA es un paquete que contiene las variables de sesin y el OLAP (Online Analytical Processing o Procesamiento analtico en lnea) que se caracteriza por el anlisis dinmico y dimensional de datos histricos. Si una sesin carga a PL/SQL en memoria, entonces el UGA contiene el estado del paquete, que contiene los valores en la variable, de un tiempo en especfico.

32

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

4.2 rea global del programa (PGA) Es la zona de memoria utilizada por un nico proceso de usuario de Oracle que contiene datos e informacin del proceso. La memoria PGA no se comparte.

4.3 rea global del sistema (SGA) El SGA es la zona de memoria en la que la BD Oracle guarda informacin sobre su estado. Esta estructura de memoria est disponible para todos los procesos, por eso se dice que est compartida. Sirve para facilitar la transferencia de informacin entre usuarios y tambin almacena la informacin estructural de la BD ms frecuentemente requerida. Se podra definir como una serie de buffers en memoria residente, a travs de la cual todas las transacciones y el almacenamiento de dato fluyen. Por cada instancia de base de datos, tendremos una zona de memoria global. El SGA, donde se almacenan aquellos datos y estructuras que deben ser compartidos entre distintos procesos de la base de datos, como los procesos propios de Oracle y cada uno de los subprocesos que gestionan la conexin. El tamao del SGA es uno de los puntos ms crticos a la hora de mejorar el rendimiento de una base de datos, ya que, cuanto mayor memoria se reserve (mientras no sea memoria virtual), ms rpidas se realizarn ciertas operaciones. Por ejemplo, las ordenaciones (una de las operaciones que ms rpido deben hacerse) se realizan en el SGA si hay espacio suficiente. En caso contrario, se realizarn directamente en el disco, utilizando segmentos temporales. El SGA se encuentra compuesto por: Database Buffer Cache Redo Log Buffer Shared Pool Large Pool Java Pool Streams Pool

33

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Database Buffer Cache Es el cach que almacena los bloques de datos ledos de los segmentos de datos de la base de datos (datafiles), tales como tablas, ndices y clusters. Cada vez que es necesario acceder a un bloque se busca el bloque en esta zona y en caso de no existir, se lee de nuevo del datafile correspondiente. Cuantos ms bloques quepan en esta zona de memoria, mejor ser el rendimiento. Los bloques modificados se llaman bloques sucios. El tamao de buffer cach se fija por el parmetro DB_BLOCK_BUFFERS del fichero init.ora. Como el tamao del buffer suele ser pequeo para almacenar todos los bloques de datos ledos su gestin se hace mediante el algoritmo LRU.

Redo Log Buffer Los registros Redo describen los cambios realizados en la BD y son escritos en los ficheros redo log para que puedan ser utilizados en las operaciones de recuperacin hacia adelante, roll-forward, durante las recuperaciones de la BD. Pero antes de ser escritos en los ficheros redo log son escritos en un cach de la SGA llamado redo log buffer. El servidor escribe peridicamente los registros redo log en los ficheros redo log.El tamao del buffer redo log se fija por el parmetro LOG_BUFFER. .

34

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Shared Pool El componente shared pool est formado por sub componentes: - Library Cache - Data Dictionary Cache - Server Result Cache - Reserved Pool

35

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Library Cache Contiene las zonas de SQL compartido (Shared SQL), procedimientos y paquetes PL/SQL y otras estructuras de control. En esta zona se encuentran las sentencias SQL que han sido analizadas. El anlisis sintctico de las sentencias SQL lleva su tiempo y Oracle mantiene las estructuras asociadas a cada sentencia SQL analizada durante el tiempo que pueda para ver si puede reutilizarlas. Antes de analizar una sentencia SQL, Oracle mira a ver si encuentra otra sentencia exactamente igual en la zona de SQL compartido. Si es as, no la analiza y pasa directamente a ejecutar la que mantiene en memoria. De esta manera se premia la uniformidad en la programacin de las aplicaciones. La igualdad se entiende que es lexicogrfica, espacios en blanco y variables incluidas. Es importante que siempre que se utilice la misma sentencia, sea exactamente igual, para poder aprovechar sentencias previas almacenadas en el rea SQL. Es decir, las siguientes sentencias: SELECT * FROM TABLA select * from tabla SELECT * FROM TABLA SELECT * FROM tabla

Se consideran distintas y no se aprovecha el rea SQL. Debe coincidir el texto exactamente, considerando maysculas y minsculas, espacios, retornos de carro, nombre de parmetros, etc. Esto es debido a que se buscan dentro del rea SQL utilizando un hash de la sentencia, y un simple espacio (o cambiar una letra a maysculas) hace que el hash resultante sea distinto, por lo que no encontrar la sentencia dentro del rea SQL. Cuanto mayor sea el espacio del rea SQL, se realizarn menos compilaciones, planes de ejecucin y anlisis lxicos, por lo que la ejecucin de las consultas ser ms rpida. El contenido de la zona de SQL compartido es: Plan de ejecucin de la sentencia SQL. Texto de la sentencia. Lista de objetos referenciados.

Los pasos de procesamiento de cada peticin de anlisis de una sentencia SQL son: Comprobar si la sentencia se encuentra en el rea compartida. Comprobar si los objetos referenciados son los mismos. Comprobar si el usuario tiene acceso a los objetos referenciados.

Si no, la sentencia es nueva, se analiza y los datos de anlisis se almacenan en la zona de SQL compartida.

36

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Dictionary cache Almacena datos del diccionario de Oracle, para utilizarlos en los planes de ejecucin, optimizacin de consultas, etc. Cuantos ms datos quepan en esta zona, mayor probabilidad habr de que el dato que necesitamos ya est en memoria, y no sea necesario acceder a las tablas del diccionario para leerlo. La informacin sobre los objetos de la BD se encuentra almacenada en las tablas del diccionario. Cuando esta informacin se necesita, se leen las tablas del diccionario y su informacin se guarda en el cach del diccionario de la SGA. Este cach tambin se administra mediante el algoritmo LRU. El tamao del cach est gestionado internamente por el servidor, pero es parte del shared pool, cuyo tamao viene determinado por el parmetro SHARED_POOL_SIZE. Result Cache Est compuesto por el "SQL query result cache" y el "PL/SQL function result cache" los cuales comparten la misma infraestructura. Contiene el paquete DBMS_RESULT_CACHE que provee subprogramas de administracin. El "SQL Result Cache" permite cachar en memoria el resultado de consultas o fragmentos de consultas, estos resultados son utilizados por la base de datos para responder futuras consultas. El "PL /SQL Function Result Cache" es utilizado para regresar el resultado de una comparacin donde los parmetros de entrada son una o varias consultas de la funcin. Large Pool Es un rea configurable por el administrador de la base de datos, que permite la utilizacin de grandes localidades de memoria para: Sesiones de memoria entre el servidor compartido y la interface Oracle XA. Procesos de entrada y salida del servidor. Respaldo y restauracin de operaciones de la base de datos.

37

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Java Pool Es utilizada en la memoria del servidor para todas las sesiones con cdigo java especfico y datos en la JVM. Streams Pool Es utilizada nicamente por los flujos de Oracle. El conjunto de flujos almacena colas de mensaje contenidas en el bfer y provee memoria para que los flujos de oracle ejecuten procesos. 4.4. rea de cdigo de software Son porciones de memoria usada para guardar cdigo que est siendo ejecutado o va a serlo. El cdigo en las bases de datos Oracle es guardado en un lugar diferente al de los programas del usuario. Es un lugar ms protegido y exclusivo.

Integridad, concurrencia, consistencia y manejo de transacciones de datos:


5.1 Mtodos de Integridad:

38

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Las reglas de negocio especifican condiciones y relaciones que deben ser siempre ciertas o siempre deben ser falsas. Por ejemplo, cada compaa define sus propias polticas referentes a salarios, nmeros de empleado, control de inventarios y as sucesivamente. Es importante que los datos mantengan integridad, que es apegarse a estas reglas como son determinadas por el administrador de la base de datos o el desarrollador de la aplicacin. Cuando se disea una base de datos de una aplicacin, los desarrolladores cuentan con diversas opciones para garantizar la integridad de los datos almacenados en la base de datos. Estas opciones consisten en: Asegurar el cumplimiento de las reglas de negocio con los procedimientos almacenados en la base de datos. Emplear procedimientos almacenados para un eficiente centro de acceso a los datos. Aseguramiento de las reglas de negocio en el cdigo de la base de datos de la aplicacin Empleando restricciones de integridad de Oracle, que son reglas definidas a nivel de columna u objeto que restringen valores en la base de datos Ventajas de las restricciones de integridad Una restriccin de integridad es un objeto de esquema que es creado y eliminado usando SQL. Para asegurar la integridad de datos, emplee restricciones de integridad a menos que no sea posible. Las ventajas de las restricciones de integridad sobre las alternativas para asegurar la integridad de datos incluyen: Fcil declaracin (Las definiciones de restricciones de integridad emplean SQL) Reglas centralizadas: Las restricciones de integridad son definidas para tablas y almacenadas en un diccionario de datos Flexibilidad en la carga de datos Las restricciones de integridad pueden ser deshabilitadas temporalmente

Tipos de restricciones de integridad Oracle permite aplicar restricciones a nivel de tabla y de columna. Una restriccin es parte de una definicin de una columna o atributo y es llamado en una especificacin lineal. Una restriccin es parte de una definicin de tabla y es llamada en una especificacin fuera de lnea.

39

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

El trmino llave es usado en las definiciones de ciertos tipos de restricciones de integridad. Una llave es una columna o un conjunto de columnas incluidas en la definicin de ciertos tipos de restricciones de integridad. Las llaves describen la relacin entre las tablas y columnas de una base de datos relacional. Los valores individuales en una llave son llamados valores clave. Existen 3 tipos de integridad: de entidad, de domino y de relaciones o referencial:

5.1.2 Integridad de entidad Garantiza que cada fila en una tabla es nica. La forma para implementar sta integridad en Oracle es mediante las claves primarias (Primary Key). Tambin pueden especificarse claves alternativas (alternative key) para garantizar sta integridad en base a otros campos.

Tipo de restriccin Unique key

Descripcin Prohbe que mltiples filas o registros tengan el mismo valor en la misma columna o combinacin de columnas, pero permite que algunos valores sean nulos. Combina una restriccin NOT NULL y una restriccin unique. Se prohbe que varias filas tengan el mismo valor en la misma columna o combinacin de columnas y prohbe los valores nulos.

Ver Restriccin unique Restriccin Llave primaria

Primary key

Restricciones Unique Una restriccin de clave nica requiere que cada valor en una columna o conjunto de columnas sea nico. Ningn registro de la tabla deber tener un valor duplicado en una columna (la clave nica) o conjunto de columnas (La composicin de llaves nicas) con una restriccin de clave nica. Las restricciones de clave nica son apropiadas para alguna columna donde los valores duplicados no son permitidos. Las restricciones nicas difieren de las 40

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

restricciones de llave primaria, cuyo propsito es identificar cada registro de la tabla nica, y por lo general contienen valores sin ningn significado aparte de ser nico. Algunos ejemplos de claves nicas son: El nmero telefnico de un cliente, donde la clave primaria es el nmero el cliente El nombre de departamento, donde la llave primaria es el nmero de departamento.

Ejemplo de restriccin nica:


SQL> SELECT employee_id, last_name, email FROM employees WHERE email = 'PFAY'; EMPLOYEE_ID LAST_NAME EMAIL ----------- ------------------------- ------------------------202 Fay PFAY SQL> INSERT INTO employees (employee_id, last_name, email, hire_date, job_id) 1 VALUES (999,'Fay','PFAY',SYSDATE,'ST_CLERK'); . . . ERROR at line 1: ORA-00001: unique constraint (HR.EMP_EMAIL_UK) violated Al menos que una restriccin NOT NULL se encuentre tambin definida, un nulo siempre satisface la restriccin de llave nica. Por lo tanto, las columnas con ambas restricciones (clave nica y NOT NULL) son tpicas. Esta combinacin obliga al usuario a ingresar valores en la clave nica y elimina la posibilidad de que haya conflicto con nuevos registros de datos y los datos existentes.

Restricciones de clave primaria En una restriccin de clave primaria, los valores en un grupo de una o varias columnas sujetas a la restriccin de valores nicos identifican el registro. Cada tabla puede contener una clave primaria la cual asegura la no duplicidad de registros existentes. Una clave primaria puede ser natural o sustituta. Una clave natural es un identificador significativo compuesto de atributos existentes en la tabla. Po ejemplo, una clave natural puede ser un cdigo postal en una tabla de bsqueda. En contraste, una clave sustituta es un identificador incremental que asegura la unicidad en una tabla.

41

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

La implementacin de restricciones de llave nica en Oracle garantiza que las siguientes sentencias sean verdaderas: Dos registros no deben contener valores duplicados en una columna u juego de columnas especificadas Las columnas de clave primaria no permiten nulos.

Ejemplo: Se indica que un empleado existente tiene un ID de empleado 202, donde el ID de empleado es la clave primaria. El siguiente ejemplo muestra un intento de agregar un empleado con el mismo ID de empleado y un empleado sin ID: SQL> INSERT INTO employees (employee_id, last_name, email, hire_date, job_id) 1 VALUES (202,'Chan','ICHAN',SYSDATE,'ST_CLERK'); . . . ERROR at line 1: ORA-00001: unique constraint (HR.EMP_EMP_ID_PK) violated SQL> INSERT INTO employees (last_name) VALUES ('Chan'); . . . ERROR at line 1: ORA-01400: cannot insert NULL ("HR"."EMPLOYEES"."EMPLOYEE_ID")

into

La base de datos impone restricciones de clave primaria con un ndice. Usualmente, una restriccin de clave primaria creada para una columna implcitamente crea una restriccin UNIQUE y NOT NULL. 5.1.3 Integridad de Domino y referencial

De dominio: Garantiza que los datos cumplan con las especificaciones de dominio del diseo de la base de datos. Por ejemplo, si se tiene un campo pas, se debe garantizar que el valor corresponda slo a uno de los pases que realmente existen en el mundo. La forma de implementar sta integridad en Oracle es mediante la exigencia de un valor no nulo (NULL) y las restricciones (CONSTRAINT).

42

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

De relaciones o referencial: Garantiza que toda referencia tiene un destino. Esto responde a las relaciones entre tablas, especificadas en el modelo lgico. La forma para implementar sta integridad en Oracle es mediante la restriccin FOREIGN KEY REFERENCES.

Tipo de restriccin NOT NULL Foreign key Check

Descripcin Permite o no inserciones o actualizaciones de registros o filas que contienen un valor nulo en una columna especificada. Designa una columna como la llave fornea y establece una relacin entre la llave fornea y la llave primaria o nica, denominada llave de referencia. Requiere un valor base de datos que obedece a una condicin especificada Indica los tipos de manipulacin de datos permitido en los valores de una columna REF y cmo estas acciones afectan a los valores dependientes. En una base de datos objetorelacional, incorpora un tipo de datos llamado REF encapsula una referencia a un objeto registro de un tipo de objeto especifico. Restricciones de integridad referencial en las columnas REF aseguran que es un objeto registro para REF.

Ver Restricciones de integridad NOT NULL Restriccin de llave fornea Restriccin check

REF

Restricciones de integridad NOT NULL

Una restriccin NOT NULL requiere que una tabla o una columna contengan valores no nulos, Un nulo es la ausencia de valor. Por default, todas las columnas de la tabla son nulos. Las restricciones NOT NULL estn destinadas para columnas que no deben carecer de valores. Por ejemplo, la tabla hr.employees requiere un valor en la columna last_name. Al intentar insertar un registro de empleado sin un apellido generar un error:

SQL> INSERT INTO hr.employees (employee_id, last_name) values (999, 'Smith'); . . .


43

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

ERROR at line 1: ORA-01400: cannot insert ("HR"."EMPLOYEES"."LAST_NAME")

NULL

into

Es posible agregar solo una columna con una restriccin NOT NULL si la tabla no contiene algn registro o si es especificado un valor por default. Restricciones de clave fornea: Siempre que dos tablas contienen una o ms columnas en comn, Oracle puede forzar la relacin entre las 2 tablas travs de una restriccin de clave fornea., tambin llamada restricciones de integridad referencial. La restriccin requiere que para cada valor en la columna en la que se define la restriccin el valor que se especifique en otra tabla debe coincidir. Un ejemplo de regla de integridad referencial es que un empleado puede trabajar solo para un departamento existente.

Trminos de restricciones de integridad referencial:

Trmino Clave Fornea

Definicin La columna o juego de columnas incluidas en la definicin de la restriccin es referencia a una clave referenciada. Por ejemplo, la columna department_id en la tabla employees es una clave fornea que referencia la columna department_id en la tabla departments. Las claves forneas pueden ser definidas como mltiples columnas. Entonces, una composicin de claves forneas debe ser una clave primaria o nica compuesta con el mismo nmero de columnas y el mismo tipo de datos.

44

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

El valor de las claves primarias puede coincidir con el valor de clave primaria o nica referenciada o ser nulo. Si alguna columna de alguna clave fornea compuesta es nulo, entonces las partes no nulas de la clave no debe coincidir con cualquier elemento de la clave primaria. La clave nica o clave primaria de la tabla es referenciada por una clave fornea. Por ejemplo, la columna department_id en la tabla departments es la clave referenciada para la columna department_id de la tabla employees. Es la tabla que incluye la tabla fornea. Esta tabla es dependiente de un valor presente en la clave primaria o nica referenciada. Por ejemplo, la tabla employees es hija de la tabla departments Es la tabla que es referenciada por una clave fornea o una tabla hija. Esta es la clave referenciada de la tabla que determina que inserciones o actualizaciones son permitidas en la tabla hija. Por ejemplo, la tabla departments es un padre de la tabla employees

Clave referenciada

Dependencia o tabla hija

Tabla padre o referenciada

La siguiente imagen muestra una clave fornea en la columna employees.department_id. Esto garantiza que cada valor en esta columna concuerda con el valor de la columna departments.department_id. Por lo tanto, no pueden existir nmeros de departamento errneos en la columna employees.department_id.

45

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

46

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Restricciones de integridad auto-referencial. La siguiente imagen muestra una restriccin de integridad auto-referencial. En este caso, una clave fornea referencia a una clave padre en la misma tabla. Las restricciones de integridad referencial aseguran que para cada valor en la columna employees.manager_id corresponde a un valor existente en la columna employees.employee_id. Por ejemplo, el gerente para el empleado 102 debe existir en la tabla employees. Esta restriccin elimina la posibilidad de nmeros de empleado errneos en la columna manager_id.

Nulos y llaves forneas. El modelo relacional permite a los valores de llave fornea coincidir con los valores de las claves primarias o nicas o ser nulos. Por ejemplo, un usuario puede insertar un registro dentro de hr.employees sin especificar un ID de departamento.

47

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Si una columna de una clave fornea compuesta es nulo, entonces la pate nonula de la clave no debe coincidir con su correspondiente clave padre. Modificaciones de llave padre y llaves forneas. La relacin entre claves forneas y claves padre tiene implicaciones para la eliminacin de claves padre. Por ejemplo, si un usuario intenta eliminar el registro para este departamento, entonces qu sucede con los registros para empleados en este departamento?. Cuando una clave padre es modificada, las restricciones de integridad referencial pueden especificar las siguientes acciones para llevar a cabo en registros dependientes en una tabla hijo: Ninguna accin en la eliminacin o actualizacin En el caso normal, usuarios no pueden modificar valores de clave referenciados si el resultado puede violar la integridad referencial. Por ejemplo, si employees.department_id es una clave fornea de departments, y si los empleados pertenecen a un departamento en particular, entonces un intento de eliminar el registro para este departamento viola la restriccin. Eliminaciones en cascada Una eliminacin en cascada (DELETE, CASCADE), cuando los registros contienen valores referenciados a eliminar, ocasionan que todos los registros en las tablas hijo con dependencia de valores de claves forneas tambin son eliminados. Por ejemplo, la eliminacin de un registro en la tabla departments ocasiona que los registros para todos los empleados en este departamento sean eliminados. Eliminaciones de conjuntos nulos

Una eliminacin de conjuntos nulos, (DELETE, SET NULL) , cuando los registros contienen valores clave referenciados a ser eliminados, ocasionan que todos los registros en tablas hijo con valores de dependencia de claves fornea sean puestos con valores a nulo. Por ejemplo, la eliminacin de un registro de departamento coloca la columna departmen_id en valores nulo para todos los empleados en ese departamento.
Restricciones CHECK Una restriccin CHECK en una columna o un conjunto de columnas requiere que una condicin especificada sea verdadera o no conocida para cada fila. Si los resultados DML, en la condicin de la restriccin de la evaluacin es falsa, la instruccin SQL se regresa.

48

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

El principal beneficio de las restricciones check es la capacidad para hacer cumplir las reglas de integridad muy especficas. Por ejemplo, se podra utilizar las restricciones check para hacer cumplir las siguientes reglas en la tabla hr.employees: La columna salario no debe tener un valor superior a 10000. La columna comisin debe tener un valor que no es mayor que salario.

En el ejemplo siguiente se crea una restriccin de salario mximo para los empleados y demuestra lo que ocurre cuando una instruccin intenta insertar una fila que contiene un salario que excede el mximo:

SQL> ALTER TABLE employees ADD CONSTRAINT max_emp_sal CHECK (salary < 10001); SQL> INSERT INTO employees (employee_id,last_name,email,hire_date,job_id,salary) 1 VALUES (999,'Green','BGREEN',SYSDATE,'ST_CLERK',20000); . . . ERROR at line 1: ORA-02290: check constraint (HR.MAX_EMP_SAL) violated
Una columna puede tener mltiples restricciones de verificacin que hacen referencia a una columna en su definicin. Por ejemplo, la columna de sueldos podra haber una restriccin que impide valores mayores de 10000 y una restriccin independiente que impide valores menores de 500. Si existen varias restricciones de verificacin para una columna, entonces deben ser diseadas para que sus propsitos no entren en conflicto. Ningn orden de evaluacin de las condiciones se puede suponer. La base de datos no comprueba que las condiciones check no son mutuamente excluyentes. Estados de las restricciones de integridad Como parte de las definiciones de restricciones, se puede especificar como y cuando Oracle debe cumplir las restricciones, determinando as el estado de restriccin.

49

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Comprobacin de datos existentes y modificados La base de datos permite especificar cuando una restriccin aplica a datos existentes o futuros datos. Si una restriccin est habilitada, la base de datos verifica si los datos han sido introducidos o actualizados. Los datos que no se ajusten a la restriccin no podrn guardarse en la base de datos. Por ejemplo, habilitando una restriccin NOT NULL sobre el campo employees.department_id garantiza que cada registro ser un ID de departamento. Si una restriccin se encuentra deshabilitada, la tabla contendr registros que no cumplen la restriccin. Pueden emplearse restricciones para validar (VALIDATE) o no validar (NOVALIDATE) datos existentes. Si VALIDATE est definido, los datos existentes debern cumplir la restriccin. Por ejemplo, habilitando una restriccin NOT NULL en el campo employees.department_id y configurando este para VALIDATE, se verificar que cada registro existente sea un ID de departamento. Si NONVALIDATE se encuentra definido, los datos existentes no necesitan ajustarse a la restriccin. Restricciones aplazables Cada restriccin puede tener un estado no aplazable (por default) o aplazable. Este estado determina cuando Oracle verifica las restricciones para validacin. La siguiente grfica muestra las opciones para las restricciones aplazables

Restricciones no aplazables Si una restriccin es no aplazable, Oracle no difiere de la verificacin de validacin de una restriccin al final de la transaccin. En cambio, la base de datos verifica la restriccin al final de cada sentencia. Si la restriccin es violada, entonces la sentencia se restaura. Por ejemplo, supongamos que se genera una restriccin NOT NULL no aplazable, para la columna employees.last_name. Si un usuario intenta insertar un registro que no contenga apellido, la base de datos inmediatamente restaurar la sentencia por que la restriccin NOT NULL es violada. El registro no ser insertado.

50

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Restricciones aplazables Una restriccin aplazable permite a una transaccin emplear la clusula SET CONSTRAINT para aplazar la verificacin hasta que una sentencia es ejecutada. Si se realizan cambios a la base de datos esto podra violar la restriccin, entonces esta configuracin efectivamente permitir deshabilitar la restriccin hasta que todos los cambios sean completados. Se puede especificar el valor predeterminado de la base de datos cuando se comprueba la restriccin aplazable. Se puede especificar cada uno de los siguientes atributos: Inicializacin inmediata La base de datos verifica la restriccin inmediatamente despus de que cada sentencia es ejecutada. Si la restriccin es violada, la base de datos restaurar la sentencia. Inicializacin de aplazamiento La base de datos verifica la restriccin cuando un COMMIT es ejecutado en la base de dados. Si la restriccin es violada, la base de datos restaurar la transaccin. 5.2 Concurrencia: Un requerimiento de un RDBMS multiusuario es el control de concurrencia, que es el acceso simultneo a un mismo dato por mltiples usuarios. Sin los controles de concurrencia, los usuarios podran cambiar los datos inapropiadamente comprometiendo la integridad de datos. Por ejemplo, un usuario podra actualizar un registro mientras un usuario distinto actualiza simultneamente este registro. Si mltiples usuarios acceden a los mismos datos, una manera de manejar la concurrencia es hacer que los usuarios esperen. Sin embargo, el objetivo de un DBMS es reducir el tiempo de espera por lo que es o inexistente o insignificante. Todas las sentencias SQL que alteran datos deben ejecutarse con la menor interferencia posible. Interacciones destructivas, que son interacciones que actualizan incorrectamente datos o alteran deliberadamente estructuras de datos deben ser evitadas. Oracle utiliza bloqueos para controlar la concurrencia de acceso a datos. Un bloqueo es un mecanismo que previene la interaccin destructiva entre transacciones accediendo a recursos compartidos. Los bloqueos ayudan a asegurar la integridad de datos permitiendo mxima concurrencia de acceso a datos.

51

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

5.3 Consistencia: Con la base de datos de Oracle, cada usuario puede tener una vista consistente de datos, incluyendo cambios visibles hechos por usuarios a sus propias transacciones y transacciones ejecutadas por otros usuarios. Por ejemplo, la base de datos debe prevenir lecturas incorrectas, que ocurren cuando una transaccin ve cambios sin ejecutarse realizados por otra transaccin concurrente. Oracle siempre cumple lecturas de niveles de consistencia, que garantizan que los datos devueltos por una simple consulta son ejecutados y consistentes respecto a un punto en el tiempo. Dependiendo del nivel de isolacin de la transaccin, este punto es el tiempo en el que cada sentencia fue abierta o el tiempo en que la transaccin inicia. La caracterstica de recordar consultas permite especificar este punto en un tiempo en especfico. La base de datos puede tambin proveer lectura de consistencia real a todas las consultas en una transaccin, conocido como Lectura de consistencia de nivel de transaccin. En este caso, cada sentencia en una transaccin ve los datos en el mismo punto en el tiempo, que es el tiempo en cuanto la transaccin inicia. Lectura de consistencia multiversin En Oracle, multiversin es la capacidad de materializar mltiples versiones de datos. Oracle mantiene la lectura de consistencia multiversin, lo que significa que las consultas tienen las siguientes caractersticas: Consultas de lectura consistente Los datos devueltos por las consultas son ejecutados y consistentes con respecto a un punto simple en el tiempo. Para ejemplificar el problema con lecturas sucias, supongamos una transaccin de actualizacin en un valor de columna sin haber sido ejecutado. Una segunda transaccin lee la actualizacin (Sin confirmar) y altera el valor. La primera sesin regresa la transaccin, entonces la columna tiene el valor anterior, pero la segunda transaccin procede usando el valor actualizado, corrompiendo la base de datos. Las lecturas sucias comprometen la integridad de la base de datos, violando claves forneas e ignorando restricciones nicas. Consultas sin bloqueo Lectores y escritores de datos no bloquean unos a otros. Lecturas de consistencia de niveles de sentencia

52

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Oracle siempre cumple lecturas de consistencia en niveles de sentencia que garantizan que los datos regresados por una simple consulta es confirmado y consistente con respecto a un simple momento. El momento en que una sola sentencia SQL es consistente depende de los niveles de aislamiento de una transaccin y de la naturaleza de la consulta. En la confirmacin de los niveles de aislamiento, en el momento en que la sentencia es abierta. Por ejemplo, si una sentencia SELECT abre un SCN 1000, entonces esta sentencia es consistente a un SCN 1000. En una transaccin serializable o de solo lectura este punto es el momento en que la transaccin inicia. Por ejemplo, si una transaccin inicia en un SCN 1000 y si mltiples sentencias SELECT ocurren en esta transaccin, entonces cada consulta es consistente en el SCN1000. En una operacin de consulta anterior (SELECTAS OF) la sentencia SELECT explcitamente especifica el punto en el tiempo. Por ejemplo, se puede consultar una tabla que apareci el pasado jueves a las 2pm. 5.4 Manejo de transacciones de datos: Oracle est diseado como una base de datos multiusuario. El gestor de base de datos debe asegurar que mltiples usuarios pueden trabajar concurrentemente sin corromperse dato alguno Un RDBMS debe poder agrupar sentencias SQL por lo que estas deben ser ejecutadas, lo que significa que estas deben ser aplicadas a la base de datos o todas deben ser restauradas. Una transaccin es una unidad lgica atmica de trabajo que contiene una o varias sentencias SQL. Las transacciones son una de las caractersticas que establece Oracle aparte de un sistema de archivos. Si se realiza una operacin atmica que actualiza archivos crticos y si el sistema falla estos archivos no sern consistentes. Por el contrario, una transaccin cambia una base de datos de Oracle de un estado consistente a otro. El principio bsico de una transaccin es todo o nada: una operacin atmica tiene xito o falla en su conjunto. Todas las transacciones de Oracle cumplen con las propiedades bsicas de una transaccin de base de datos, conocidas como propiedades ACID. ACID es un acrnimo de los siguientes: Atomicidad (Atomicity) Todas las tareas de una transaccin o se realizan todas o ninguna de ellas. No hay ninguna operacin parcial. Por ejemplo, si una transaccin se inicia con la

53

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

actualizacin de 100 filas, pero el sistema falla despus de 20 actualizaciones, a continuacin, la base de datos deshace los cambios en estas 20 filas. Consistencia (Consistency) La transaccin se lleva a la base de datos de un estado consistente a otro estado consistente. Por ejemplo, en una transaccin bancaria donde se checan las cuentas de ahorro y las cuentas de crdito, una falla en una sola cuenta de crdito no debe suceder en la base de datos de crdito, porque dejara los datos inconsistentes. Aislamiento (Isolation) Es el efecto de que una transaccin no sea visible para otras transacciones hasta que la transaccin se ha completado. Por ejemplo, un usuario que actualiza la tabla hr.employees no ve los cambios no confirmados a esa misma tabla de otros usuarios hechos concurrentemente. Por lo tanto, parece para los usuarios como si las transacciones se ejecutaran en serie. Durabilidad (Durability) Los cambios realizados por transacciones confirmadas son permanentes. Despus de que una transaccin se complete, la base de datos garantiza a travs de sus mecanismos de recuperacin que los cambios de la transaccin no se pierden. El uso de transacciones es una de las formas ms importantes que un sistema de gestin de base de datos difiere de un sistema de archivos.

Transaccin de ejemplo: Cuenta de dbito y Cuenta de cheques Para ilustrar el concepto de una transaccin, considere una base de datos bancaria. Cuando un cliente transfiere dinero de una cuenta de ahorro a una cuenta de cheques, la transaccin debe constar de tres operaciones distintas: Disminuir la cuenta de ahorro Incremento de la cuenta de cheques Registro de la transaccin en el registro de transacciones La Base de datos Oracle debe permitir dos situaciones. Slo la ejecucin de las tres sentencias SQL mantiene las cuentas en equilibrio, hasta entonces los efectos de la operacin se puede aplicar a la base de datos. Sin embargo, si un problema como la insuficiencia de fondos, nmero de cuenta no vlido, o un fallo de hardware evita

54

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

que uno o dos de los estados en la transaccin se complete, la base de datos debe revertir toda la transaccin para que el equilibrio de todas las cuentas sea la correcta. La Figura 5-3 ilustra una transaccin bancaria. La primera declaracin resta $ 500 de cuenta de ahorro 3209. La segunda declaracin agrega $ 500 a la cuenta de cheques 3208. La tercera declaracin inserta un registro de la transferencia en la tabla journal. La declaracin final confirma la transaccin.

Estructura de una transaccin Una transaccin de base de datos consta de una o ms instrucciones. En concreto, una transaccin consiste en una de las siguientes: Una o ms instrucciones de lenguaje de manipulacin de datos (DML) que en conjunto constituyen un cambio atmico a la base de datos. Una instruccin del lenguaje de definicin de datos (DDL).

55

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Una transaccin que tiene un principio y un fin. Comienzo de una transaccin Una transaccin comienza cuando la primera instruccin ejecutable de SQL es encontrada. Una instruccin ejecutable de SQL es una instruccin de SQL que genera una instancia de la base de datos, incluyendo instrucciones DDL y DML y la declaracin del conjunto de transacciones. Cuando una transaccin comienza, la base de datos Oracle asigna la transaccin a un segmento de datos undo disponibles para registrar las entradas undo para la nueva transaccin. Un id de transaccin no se asigna hasta que un segmento undo y una tabla de transaccin slot son asignados, lo cual ocurre durante la primer instruccin DML. Un id de la transaccin es nica para una transaccin y representa el nmero de segmento undo, slot y nmero de secuencia. El siguiente ejemplo ejecuta una instruccin UPDATE para iniciar una transaccin y consulta V$TRANSACCIN para obtener ms detalles sobre la transaccin: SQL> UPDATE hr.employees SET salary=salary; 107 rows updated. SQL> SELECT XID AS "txn id", XIDUSN AS "undo seg", XIDSLOT AS "slot", 2 XIDSQN AS "seq", STATUS AS "txn status" 3 FROM V$TRANSACTION; txn id undo seg slot seq txn status ---------------- ---------- ---------- ---------- ---------------0600060037000000 6 6 55 ACTIVE Fin de una transaccin Una transaccin termina cuando ocurre cualquiera de las siguientes acciones: Un usuario ejecuta una instruccin COMMIT o ROLLBACK sin una clusula SAVEPOINT.

56

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

En un commit, un usuario de manera explcita o implcitamente, solicita que los cambios de la transaccin se realicen permanentemente. Los cambios realizados por la transaccin son permanentes y visibles para otros usuarios slo despus de que la transaccin sea confirmada. Un usuario ejecuta un comando DDL como un CREATE, DROP, RENAME, o ALTER. La base de datos emite una sentencia COMMIT implcito antes y despus de cada instruccin DDL. Si la transaccin actual contiene instrucciones DML, a continuacin, la base de datos Oracle primero confirma la transaccin y luego la ejecuta y compromete a la instruccin DDL en una nueva transaccin, en una sola instruccin. Un usuario sale normalmente de la mayora de las herramientas y utileras de Oracle, haciendo que la transaccin actual se confirme implcitamente. El comportamiento del commit cuando el usuario se desconecta depende de la aplicacin y configuracin. Nota: Las aplicaciones siempre deberan tener una instruccin commit explcitamente o undo transaction antes de la finalizacin del programa. Un proceso de cliente termina de forma anormal, causando que la transaccin implcita rollback utilice metadatos almacenados en la tabla de transacciones y el segmento undo. Despus de que una transaccin termina, la siguiente sentencia SQL ejecutable comienza automticamente la siguiente operacin. En el ejemplo siguiente se ejecuta una instruccin UPDATE para iniciar una transaccin, la transaccin termina con una sentencia ROLLBACK, y luego ejecuta una instruccin UPDATE para iniciar una nueva transaccin (tenga en cuenta que los identificadores de transaccin son diferentes): SQL> UPDATE hr.employees SET salary=salary; 107 rows updated. SQL> SELECT XID, STATUS FROM V$TRANSACTION; XID STATUS ---------------- ---------------0800090033000000 ACTIVE

57

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

SQL> ROLLBACK; Rollback complete. SQL> SELECT XID FROM V$TRANSACTION; no rows selected SQL> UPDATE hr.employees SET last_name=last_name; 107 rows updated. SQL> SELECT XID, STATUS FROM V$TRANSACTION; XID STATUS ---------------- ---------------0900050033000000 ACTIVE Nivel de Atomicidad La Base de Datos Oracle apoya el nivel de atomicidad, lo que significa que una instruccin de SQL es una unidad atmica, tiene xito completamente o falla por completo. Una declaracin de xito es diferente de una transaccin confirmada. Una instruccin SQL es correcta si la base de datos se ejecuta sin error como una unidad atmica, como cuando todas las filas se cambian en una actualizacin multi filas. Si en una sentencia SQL se produce un error durante la ejecucin, entonces no es exitoso de modo que todos los efectos de la instruccin se revierten. Esta operacin es una reversin de nivel de instruccin. Esta operacin tiene las siguientes caractersticas: La declaracin no exitosa, no causa la prdida de ninguna tarea que lo precedi en la transaccin actual. Por ejemplo, si la ejecucin de la segunda instruccin UPDATE en la figura se produce un error y se revierte, entonces la tarea realizada por la primera instruccin UPDATE no se revierte. La primera instruccin UPDATE se puede confirmar o deshacer explcitamente por el usuario. El efecto de un rollback es como si la declaracin nunca habiera sido ejecutada.

58

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

El posible efecto de una instruccin atmica, por ejemplo, los triggers ejecutados en la sentencia, se consideran parte del estado atmico. Todas las actividades generadas en la declaracin atmica tienen xito o no hace nada. Un ejemplo de un error que causa un rollback es un intento de insertar una copia de una llave principal. Las instrucciones de SQL involucradas en un deadlock, las cuales compiten por los mismos datos, tambin puede provocar un roll back. Sin embargo, los errores descubiertos durante la instruccin SQL, tales como un error de sintaxis, que an no se ha ejecutado por lo que no causa un rollback. Listado de control de transacciones El control de transacciones es la gestin de los cambios realizados por instrucciones DML y la agrupacin de instrucciones DML en las transacciones. En general, los diseadores de aplicaciones se refieren al control de transacciones para que el trabajo se lleve a cabo en unidades lgicas y los datos se mantengan consistentes. El control de transacciones implica el uso de las siguientes instrucciones, tal como se describe en "Declaraciones del Control de transacciones ": La sentencia COMMIT finaliza la transaccin actual y hace que todos los cambios realizados en la operacin sean permanentes. COMMIT, tambin borra todos los puntos de retorno en la transaccin y libera bloqueos de transacciones. La sentencia ROLLBACK revierte el trabajo realizado en la transaccin actual, y hace que todos los cambios de datos desde el ltimo COMMIT o ROLLBACK sea descartado. El comando ROLLBACK para la instruccin SAVEPOINT deshace los cambios desde el ltimo "savepoint", pero no termina toda la transaccin. La sentencia SAVEPOINT identifica un punto en una transaccin a la que posteriormente se puede deshacer. La tabla siguiente muestra los conceptos bsicos de control de transacciones: Tiempo Sesin t0 t1 t2 t3 COMMIT; SET TRANSACTION NAME 'sal_update'; UPDATE employees SET salary = 7000 WHERE last_name = 'Banda'; SAVEPOINT Explicacin Esta sentencia pone fin a cualquier transaccin existente en la sesin. Esta sentencia comienza una transaccin con el nombre sal_update. Esta sentencia actualiza el campo salary de del campo last_name = Banda a 7000. Esta sentencia crea un savepoint nombrado

59

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

after_banda_sal; t4 UPDATE employees SET salary = 12000 WHERE last_name = 'Greene'; SAVEPOINT after_greene_sal; ROLLBACK TO SAVEPOINT after_banda_sal; UPDATE employees SET salary = 11000 WHERE last_name = 'Greene'; ROLLBACK; SET TRANSACTION NAME 'sal_update2'; UPDATE employees SET salary = 7050 WHERE last_name = 'Banda'; UPDATE employees SET salary = 10950 WHERE last_name = 'Greene'; COMMIT;

after_banda_sal, habitando cambios en esta transaccin para ser reversados en este punto. Esta sentencia actualiza salary para Greene en 12000. Esta sentencia crea un savepoint after_greene_sal, lo que permite que cambios en esta transaccin se reviertan en este punto. Esta sentencia deshace la transaccin t3, deshace la actualizacin del salario de Greene en t4. La transaccin sal_update no ha terminado. Esta sentencia actualiza el salario de Greene a 11.000 en transaccin sal_update. Esta sentencia deshace todos los cambios en la transaccin sal_update, poniendo fin a la transaccin. Esta sentencia inicia una nueva transaccin en la sesin con nombre sal_update2. Actualiza el salario de Banda en 7050

t5

t6

t7

t8 t9 t10

t11

Actualiza el salario de Greene a 10.950. Esta declaracin confirma todos los cambios realizados en la transaccin sal_update2, poniendo fin a la transaccin. Commit garantiza que los cambios se guardan en los archivos de registro redo en lnea.

t12

Listado de transacciones distribuidas Una base de datos distribuida es un conjunto de bases de datos en un sistema distribuido que puede aparecer a las aplicaciones como un nico origen de datos. Una transaccin distribuida es una transaccin que incluye una o ms sentencias que

60

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

actualizan los datos en dos o ms nodos distintos de una base de datos distribuida, mediante un esquema objeto llamado un enlace de base de datos. Un enlace de base de datos se describe como una instancia de base de datos que puede acceder a otra instancia de base de datos. A diferencia de una transaccin en una base de datos local, una transaccin distribuida altera los datos en varias bases de datos. En consecuencia, el procesamiento de transacciones distribuidas es ms complicado porque la base de datos debe coordinar el "commit" o rollback los cambios en una transaccin como una unidad atmica. Toda la transaccin debe confirmarse o deshacerse. Oracle debe coordinar el control de transacciones en una red y mantener la consistencia de los datos, incluso si un fallo en la red o el sistema se producen. Two Phase Commit El mecanismo two phase commit garantiza que en todas las bases de datos participantes en una transaccin distribuida, todos los commit o todos los undo sean realizados en la transaccin. El mecanismo tambin protege implcitamente el DML realizado por las restricciones de integridad, las llamadas a procedimientos remotos, y los triggers. En una two phase commit entre mltiples bases de datos, una base de datos coordina la transaccin distribuida. El nodo de inicio se llama coordinador global. El coordinador pregunta a las otras bases de datos si estn dispuestos a realizar commit. Si cualquier base de datos responde con un no, entonces toda la transaccin se revierte. Si todas las bases de datos contestan s, entonces el coordinador emite un mensaje para que el commit en cada una de las bases de datos sea permanente. El mecanismo two phase commit es transparente para los usuarios que realizan las transacciones distribuidas. De hecho, los usuarios no necesitan saber que la transaccin es distribuida. Una sentencia COMMIT que indica el final de una transaccin, activa automticamente el mecanismo two phase commit. No codificar o una sintaxis de instruccin compleja se requiere para incluir las transacciones distribuidas en el cuerpo de una aplicacin de base de datos. Transacciones en duda Una transaccin distribuida en duda se produce cuando un two phase commit fue interrumpido por cualquier tipo de sistema o falla en la red. Por ejemplo, dos bases de datos de informe a la base de datos coordinadora que estn dispuestas a realizar commit, pero la instancia de base de datos coordinadora falla inmediatamente despus de recibir los mensajes. Las dos bases de datos que estn

61

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

dispuestas a realizar commit ahora en espera mientras la notificacin de los resultados es enviada. El Recuperador (RECO), proceso en segundo plano resuelve automticamente el resultado de las transacciones distribuidas dudosas. Despus de que la falla ha sido reparada y la comunicacin se restableci, el proceso RECO de cada base de datos local de Oracle automticamente confirma o deshace cualquier duda en las transacciones distribuidas sistemticamente en todos los nodos involucrados. En el caso de una falla a largo plazo, Oracle permite a los administradores locales de forma manual, confirmar o deshacer las transacciones distribuidas que estn en duda por una falla. Esta opcin permite al administrador de la base de datos local liberar los recursos bloqueados que estn mantenidos por tiempo indefinido debido a la falla de largo plazo. Si una base de datos debe ser recuperada a un tiempo pasado, entonces, las facilidades de recuperacin de la base de datos permiten a los administradores de bases de datos en otros sitios regresar a sus bases de datos al momento anterior. Esta operacin garantiza que la base de datos global se mantenga consistente.

Indizacin:
6.1 Caractersticas del ndice: Un ndice es una estructura asociada con una tabla o con un clster, que puede aumentar la velocidad de acceso a los datos. Si una tabla no tiene ndices, entonces la base de datos debe implementar un escaneo a toda la tabla para hallar un valor, lo que reduce el rendimiento del motor de bsquedas. Los ndices son objetos lgica y fsicamente independientes de los datos en los objetos en los que son asociados. Un ndice puede ser eliminado o creados sin afectar fsicamente la tabla. Un ndice es una ruta de acceso rpido a una fila nica de datos, que solo afecta la velocidad de la ejecucin. Dado un valor de un dato que debe ser indexado, el ndice apunta directamente a la locacin de las filas que contienen se valor. La base de datos automticamente mantiene y emplea los ndices despus de que son creados. La base refleja automticamente los cambios a los datos, como agregar, actualizar y eliminar filas, en todos los ndices relevantes sin requerir acciones adicionales de los usuarios. La presencia de muchos ndices en una tabla,

62

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

degradan el performance DML (Data Manipulation Language) porque la base debe actualizar tambin los ndices. Llaves y columnas: Una llave es un conjunto de columnas o expresiones en las que se puede construir un ndice. Los ndices son estructuras almacenadas en la base de datos que los usuarios administran usando instrucciones SQL, mientras que las llaves son estrictamente un concepto lgico. La siguiente instruccin crea un ndice en la columna customer_id en la tabla de ejemplo oe.orders: CREATE INDEX ord_customer_ix ON orders(customer_id); La columna customer_id es la llave indexada, y el ndice es nombrado ord_customer_ix. NOTA:Las llaves primarias y nicas tienen ndices de forma automtica, pero ser necesario crearlos para una llave fornea. ndices Compuestos: Tambin llamados concatenados y se trata de un ndice sobre mltiples columnas en una tabla; mismas que debern aparecer en el orden en el que tengan un mayor sentido para los queries que obtendrn los datos y necesitarn ser adyacentes en la tabla. Los ndices compuestos pueden acelerar la entrega de datos para instrucciones tipo SELECT en donde la clusula WHEN referencia todas las porciones de las columnas en el ndice compuesto. Los ndices mltiples pueden existir para la misma tabla si la permutacin de columnas se da para cada ndice; por ejemplo, en una tabla de empleados: CREATE INDEX employee_idx1 ON employees (last_name, job_id); CREATE INDEX employee_idx2 ON employees (job_id, last_name);

ndices nicos y no nicos: Los ndices nicos garantizan que dos filas de una tabla no tengan valores duplicados en la columna, un ejemplo puede ser el nmero de empleado asignado en una base de empleados. Los ndices no nicos permiten valores duplicados como por ejemplo la columna de nombre en un archivo de empleados. 6.2 Tipos de ndices: La base de datos de Oracle provee esquemas de indexacin severos, que proveen un rendimiento complementario. Son categorizados como:

63

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

6.2.1 B-Tree: Son los ndices de tipo estndar, excelentes para llaves primarias e ndices altamente selectivos. Consiste en una lista ordenada de valores dividida en rangos. Al asociar una llave con una fila o rango de filas, proveen un buen rendimiento para un numeroso rango de queries, incluyendo coincidencias exactas y rangos de bsquedas. La figura 6.1 ilustra un ndice de rbol B, de la columna department_id, que es una llave fornea en la tabla de empleados:

6.1 B-Tree Un ndice B-tree tiene dos diferentes tipos de bloques: de ramas (para las bsquedas) y de hojas (que almacenan los valores). El nivel superior de bloques de ramas contiene datos de ndice que apuntan a los niveles ms bajos. En el ejemplo de la figura 6.1 el bloque de la rama tiene una entrada 0-40 que apunta al bloque de la izquierda en el siguiente nivel de rama. sta rama contiene entradas como 0-10 y 1119. Cada entrada apunta a la hoja que contiene valores llave dentro del rango. Un ndice B-tree se dice balanceado debido a que todos los bloques de hojas mantienen la misma profundidad. La altura de un ndice es el nmero de bloques requeridos para ir del bloque raz al bloque hoja. El nivel hoja es la altura menos 1. En la figura 6.1 el ndice tiene una altura de 3 y un nivel de rama de 2. El bloque de ramas, almacena el mnimo prefijo llave requerido para tomar decisiones de rama entre dos llaves. El

64

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

bloque de ramas contiene un apuntador al bloque hijo que contiene la llave. El nmero de llaves y apuntadores es limitado por el tamao del bloque. Los bloques hojas contienen cada valor de dato indexado y un identificador de fila utilizado para ubicar a la fila actual. Dentro de una hoja, la llave y el id de fila son ligados a sus hojas vecinas. Escaneos de ndice: La base de datos recupera una fila mediante el ndice. Si una declaracin SQL accede solo a las columnas indexadas, entonces la base de datos lee valores directamente del ndice en vez de la tabla. Si la declaracin accede a columnas de forma adicional a las columnas indexadas, entonces la base utiliza los identificadores de filas. La base recupera la informacin leyendo de forma alterna un bloque de ndices y un bloque de tablas. Escaneo completo de ndice: La base lee el ndice completo en orden. Un escaneo completo se ejecuta si la declaracin SQL hace referencia en el WHERE a una columna en el ndice, y en algunas circunstancias cuando no es especificado un predicado (WHERE). Suponiendo que una aplicacin corre la siguiente sentencia: SELECT department_id, last_name, salary FROM employees WHERE salary > 50000 ORDER BY department_id, last_name; Asumiendo que department_id, last_name y salary son una llave compuesta en un ndice. Oracle implementa un escaneo complete del ndice, leyndolo en el orden clasificado (por ID de departamento y apellido) y filtrando el atributo de salario. La base escanea un conjunto de datos menor que el conjunto total de empleados de la tabla. Por ejemplo, la lectura de los ndices mediante el escaneo completo sera de la siguiente forma: 50,Atkinson,2800,rowi d 60,Austin,4800,rowid 70,Baer,10000,rowid 80,Abel,11000,rowid 80,Ande,6400,rowid 110,Austin,7200,rowid Escaneo de ndice completo y rpido: La base leee los bloques de ndice sin un orden particular. La base de datos accede a los datos en el ndice mismo, sin acceder a la tabla. Es un escaneo alternativo al

65

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

escaneo completo de tablas donde el ndice contiene todas las columnas requeridas para el query, y al menos una columna en la llave ndice tiene la restriccin NOT NULL. Por ejemplo una aplicacin con la siguiente sentencia, que no incluya una instruccin ORDER BY: SELECT last_name, salary FROM employees; Si el apellido y el salario son llaves compuestas en un ndice, entonces el escaneo rpido podrn leer las entradas del ndice para obtener la informacin solicitada: Baida,2900,rowid Zlotkey,10500,rowid Austin,7200,rowid Baer,10000,rowid Atkinson,2800,rowid Austin,4800,rowid Escaneo de ndices por rango: Es un escaneo ordenado de ndice con las siguientes caractersticas: Una o ms columnas son especificadas en la condicin. Una condicin especifica una combinacin de una o ms expresiones y operadores lgicos (booleanos) y regresa un valor de TRUE, FALSA o UNKNOWN. 0,1 o ms valores son posibles para un ndice llave. La base comnmente usa un rango de escaneo para acceder a determinados datos. La selectividad es el porcentaje de filas en una tabla que selecciona un query; el 0 significa sin filas y 1 todas las filas; sta est amarrada al predicado de la sentencia a ejecutar como WHERE last_name LIKE A%. Un predicado se vuelve ms selectivo en tanto el valor se acerca a 0 y menos selectivo mientras el valor se acerca a 1. Escaneo nico de ndice: Debe tener un id de fila 0 o 1 asociado con una llave ndice. La base de datos implementa un escaneo nico cuando el predicado referencia a todas las columnas en una llave ndice nica usando un operador igual. Un ndice nico puede detener el procesamiento tan pronto como encuentre el primer registro, ya que no existe la posibilidad de un segundo registro. Como ejemplo tenemos el siguiente query: SELECT * FROM employees WHERE employee_id = 5;

66

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Asumiendo que la columna employee_id es la llave primaria y que est indexada con entradas como las siguientes, la base de datos puede usar un escaneo nico de ndice para localizar la fila para el empleado cuyo ID es 5. 1,rowid 2,rowid 4,rowid 5,rowid 6,rowed Escaneo de salto de ndice: Utiliza subndices lgicos de un ndice compuesto. La base salta a travs de un ndex como si estuviera buscando en ndices separados. ste escaneo es favorable si hay distintos valores. La base debe elegir ste escaneo cuando la columna apuntada del ndice compuesto no se encuentra especificada en el WHERE del query. Por ejemplo, si se corre la siguiente sentencia para un cliente: SELECT * FROM sh.customers WHERE cust_email = 'Abbey@company.com'; La tabla de clientes tiene una columna cust_gender cuyos valores con M o F. Asumiendo que el ndice compuesto existe en las columnas cust_gender y cust_email, el ndice compuesto lucira de la siguiente forma: F,Wolf@company.com,rowid F,Wolsey@company.com,rowid F,Wood@company.com,rowid F,Woodman@company.com,rowid F,Yang@company.com,rowid F,Zimmerman@company.com,rowid M,Abbassi@company.com,rowid M,Abbey@company.com,rowid En un ndice de salto, el nmero de subndices lgicos es determinado por el nmero de distintos valores en la columna a la que apunta. En ste ejemplo la columna tiene dos posibles valores; por lo que la base divide de forma lgica el ndice en un subndice con la llave F y en un segundo subndice con la llave M. Al buscar el registro con el correo Abbey@company.com, la base busca primero el subndice con el valor F y despus busca el subndice con valor M. Conceptualmente, la base procesa la solicitud de la siguiente forma: SELECT * FROM sh.customers WHERE cust_gender = 'F' AND cust_email = 'Abbey@company.com' UNION ALL SELECT * FROM sh.customers WHERE cust_gender = 'M' AND cust_email = 'Abbey@company.com'; ndices de llave reversible:

67

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Fsicamente reversa los bytes de cada llave ndice mientras mantiene el orden de las columnas. Por ejemplo, si la llave ndice es 20 y los dos bytes almacenados para sta llave en hexadecimal son C1, 15 en un ndice estndar B-tree, y un ndice de llave reversible almacenar los bytes como 15, C1. Esto soluciona el problema de contencin para los bloques de hoja en la parte derecha de un ndice B-tree. ste problema puede ser especficamente grave en una aplicacin de clusters Oracle real (Oracle RAC), donde mltiples instancias modifican repetidamente el mismo bloque. ndices ascendentes y descendentes: En un ndice ascendente en la base de datos, los datos son ordenados por los valores binarios contenidos en cada byte en los datos de tipo char, en los numricos de los menores a los mayores y en las fechas de la ms reciente a la ms antigua. Al especificar la palabra DESC en un CREATE INDEX, es posible crear un ndice descendiente. En ste caso, el ndice almacena datos en orden descendiente dentro de una columna especificada; ste tipo de ndices son de utilidad cuando un query ordena algunas columnas de forma ascendiente y otras descendiente: CREATE INDEX emp_name_dpt_ix ON hr.employees(last_name ASC, department_id DESC); Llave de compresin: til para comprimir porciones de los valores de la columna de una llave primaria en un ndice B-tree; permitiendo reducir enormemente el espacio consumido por el ndice. Las llaves tienen dos partes: la parte grupal y la nica. La compresin divide la llave en una entrada prefijo, que es la parte grupal, y la entrada sufijo que es la parte nica. Oracle realiza la compresin compartiendo las entradas prefijas con las sufijas en un bloque de ndice. En el ejemplo: CREATE INDEX orders_mod_stat_ix ON orders ( order_mode, order_status ); online,0,AAAPvCAAFAAAAFaAAa online,0,AAAPvCAAFAAAAFaAAg online,0,AAAPvCAAFAAAAFaAAl online,2,AAAPvCAAFAAAAFaAAm online,3,AAAPvCAAFAAAAFaAAq online,3,AAAPvCAAFAAAAFaAAt La llave prefijo consistira en una concatenacin de los valores order_mode y order_status. Si el ndice fue creado con llaves de compresin, entonces los prefijos llave como online=0 y online=2 sern comprimidos. Conceptualmente, la base realiza la compresin de la siguiente forma: online,0 AAAPvCAAFAAAAFaAAa AAAPvCAAFAAAAFaAAg AAAPvCAAFAAAAFaAAl

68

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

online,2 AAAPvCAAFAAAAFaAAm online,3 AAAPvCAAFAAAAFaAAq AAAPvCAAFAAAAFaAAt Las entradas sufijo forman la versin comprimida del ndice de filas. Cada sufijo referencia un prefijo que es almacenado en el mismo bloque de ndices que la entrada sufijo.

Implementacin del diseo conceptual (MER)


El esquema conceptual es el resultado de aplicar las reglas que se determinan despus del establecimiento de los estndares y polticas del nivel conceptual. Representa la visin organizacional de la BD que se obtiene al integrar los requerimientos de todos los usuarios en una empresa. El esquema conceptual es totalmente independiente de las estructuras fsicas de almacenamiento y de la representacin final de los datos que los usuarios manejan. La implantacin de este esquema es responsabilidad del DBA. El esquema conceptual consta bsicamente de dos definiciones: a) De los datos. Especifica las caractersticas como tipo, longitud y precisin de la informacin que ser almacenada en la BD. b) De las relaciones entre los datos. Se determina los niveles de iteracin que habrn de ocurrir generalmente entre mltiples archivos para obtener informacin compuesta y procesos complejos. 7.1 Elementos en la definicin de datos: Adicionalmente a las propiedades de los datos que sern manejados y ocasionalmente en forma complementaria a estos, ser necesario definir las especificaciones de:
a) Atributos. Deber asignarse un identificador que permita manipular en forma

individual las caractersticas del objeto en cuestin (entidades). b) Llaves.Debern especificarse los atributos o conjuntos de atributos mediante los cuales pueden hacerse referencia a una entidad especfica. Deben reconocerse y definirse con claridad:

69

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Sper-llaves Llaves candidato Llave primaria c) Entidades fuertes y dbiles: Debe reconocerse la factibilidad de referenciar a una entidad en particular dentro del conjunto de entidades (mediante una llave primaria); si esta no se da, debe definirse el conjunto de atributos de la entidad necesariamente dbil- que ser utilizado en combinacin con la llave primaria de otro u otros conjuntos de entidades -necesariamente fuertes- para lograr tal referencia. Este conjunto de atributos ser denominado discriminador. d) Especializacin y generalizacin:Debe establecerse con claridad el tipo de relacin existente entre conjuntos de entidades que fueron particionadas con el objeto de optimizar el espacio de almacenamiento. Un caso de generalizacin provendr en la mayora de los casos de la fusin de tablas llevada a cabo con el objeto de reducir redundancia. e) Dependencias de existencias: Debe especificarse con precisin si la existencia de una o ms entidades o conjuntos de entidades- estn supeditadas a la existencia de otras. 7.21 Elementos en la definicin de relaciones:

El establecimiento de conexiones entre las entidades y conjuntos de entidades que conforman una BD, deben especificarse en forma precisa de la siguiente manera para cada relacin:

Nombre de las relaciones: Generalmente una etiqueta que indica la funcin que la relacin desempea. Cardinalidad de las relaciones. Debe definirse en forma muy precisa si las entidades de cada conjunto de entidades tendrn interaccin con solo una o varias entidades del conjunto a relacionar.

Debe verificarse que la cardinalidad tenga validez para todos los casos que puedan presentarse en el manejo de la BD; es decir, si son vlidas para cualquier instancia.

Opcionalidad de las relaciones. Permiten definir con mayor claridad aquellos casos en los que una relacin puede no establecerse. Las especificaciones de estas situaciones nos permitir definir estructuras ms precisas, consistentes y de baja redundancia.

7.33 Estructura de la Base de Datos:

70

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

El modelo ser el paso siguiente a la definicin de los elementos que componen a los datos y que rigen a las relaciones que se dan entre estos. Aunque existen mltiples alternativas para el desarrollo de mtodos eficientes, el uso de l modelo entidad relacin se ha convertido casi en un estndar para manejadores secuenciales. La implementacin del modelo E-R dar como resultado un modelo relacional; esto al convertir los elementos del diagrama E-R a las tablas correspondientes. Las tablas resultantes podrn ser o no relacionales segn la pericia del diseador, puede resultar redundancia en consecuencia riesgo de inconsistencia y otros efectos indeseables. La etapa de normalizacin debe refinar los detalles del modelo resultante, de tal forma que la estructura de las tablas proporcione un bajo nivel de redundancia, minimice hasta donde sea posible la inconsistencia y sea capaz de proporcionar acceso eficiente a los datos. Ocasionalmente ser preferible llevar la normalizacin hasta un nivel no ptimo si se obtiene a cambio eficiencia en el acceso a los datos u otros beneficios que eleven en forma significativa el desempeo del sistema.

7.41 Esquema de Integridad Un control de integridad o restricciones es aquel que nos permite definir con precisin el rango de valores vlidos para un elemento y/o las operaciones que sern consideraciones validas en la relacin de los elementos. El objetivo primordial de un control de integridad es la reduccin de la inconsistencia en la BD. Las restricciones de integridad normalmente se aplican en tres niveles:
1. Un atributo simple. Se define un dominio del atributo que es totalmente

independiente del resto del entorno de la Base de Datos. 2. Un atributo dependiente de otro. Se definen subconjuntos de dominios posibles para un atributo X segn el valor que previamente ha sido asignado al atributo Y. 3. Relaciones entre tuplas de una o varias tablas. Se especifican valores posibles para registros completos segn los valores acumulados registros previos o por valores existentes en registros de otras tablas. La implementacin de la cardinalidad resultante en el modelo ser una de las restricciones importantes que el sistema debe considerar.

71

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

La programacin de todas estas restricciones regularmente corre a cuenta de un programador especializado (que pudiera ser el DBA), mediante la adicin de mdulos al sistema; lo anterior dado que los DBMS comnmente no incorporan facilidades para su implementacin.

7.5 Esquema de seguridad y autorizacin Existen mltiples riesgos para la seguridad de la informacin durante la operacin, implantacin y tiempos muertos en el sistema. Riesgos en la implantacin Cuando se est instalando o actualizando un sistema, los principales factores de riesgo son aquellos relacionados con el ajuste de formatos, dominios y otros parmetros que pueden verse afectados por la conversin del sistema; ya sea manual-automatizado o automatizado-automatizado. Cuando el sistema que se implanta ha de recibir nueva informacin, es importante el establecimiento de cdigos que permitan validar la captura para minimizar los riesgos de informacin no confiable. Riesgos en la operacin Mientras el sistema se encuentra en uso, se dice que las operaciones se realizan en lnea; es decir, la informacin se afecta por medio de los procedimientos definidos en el sistema. La proteccin ms comn para reducir estos riesgos consiste en el establecimiento de claves de operacin (Password) tanto para ingresar a la aplicacin como a las diversas operaciones que esta desempea. Las claves pueden asignarse: Genrico Por niveles de seguridad Por tipos de acceso a los datos. La seleccin de las claves de acceso debe llevarse a cabo utilizando los siguientes criterios: No informacin que pueda asociarse al usuario. Fcil de recordar, difcil de adivinar. Debe utilizar un parmetro variable o algoritmo Algunos sistemas que manejan claves fijas pueden incluir controles sobre el usuario que lo obliguen a modificar su clave de acceso con cierta regularidad. Es

72

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

importante que el cdigo que mantiene la tabla de claves de usuarios en el sistema se encuentre codificada o encriptada. Riesgos en tiempos muertos: Cuando el sistema no se encuentra en operacin la informacin est expuesta a ser alterada fuera de lnea; es decir, sin utilizar los programas de aplicacin diseados para este fin. Algunas de las tcnicas ms utilizadas para evitar y en algunos casos solo para ejecutar modificaciones fuera de lnea son: Encriptamiento: Consiste en convertir la informacin de la BD a un formato que resulte ilegible sino se dispone del algoritmo de conversin. Aplicacin de totales de control: Consiste en generar registros ficticios que son agregados a la BD y que permitirn detectar la insercin, eliminacin o modificacin de datos en la gran mayora de los casos. Los registros ficticios son creados con informacin que se obtiene de acumulados o valores estadsticos de los registros reales. Control de concurrencia: Cuando el sistema da soporte a mltiples usuarios en forma simultnea, la inconsistencia puede presentarse por factores adicionales: Actualizacin prdida.- Ocurre cuando la actualizacin de un usuario queda sobrescrita por la de otro cuando ambos acceden al sistema por un recurso comn. Un mtodo comnmente utilizado para evitar la actualizacin perdida es el bloqueo de registros o archivos. Este consiste en activar restricciones de acceso para los recursos que estn siendo utilizados por un proceso en un momento determinado. Con el objeto de no retardar la ejecucin de determinados procesos que pretendan alcanzar recursos especficos, los bloqueos normalmente se establecen para los recursos en forma individual. Esto puede traer como consecuencia: Interbloqueo(Dead Lock) Se presenta cuando dos procesos que compitan por recursos comunes inician su ejecucin tomando alguno de ellos y bloquendolo en este momento. El proceso requiere para finalizar su ejecucin del recurso que est bloqueado por el otro proceso presentndose de esta manera un bloqueo mutuo en el que ninguno de los procesos puede finalizar. Una de las alternativas ms comunes para minimizar el interbloqueo consiste en asignar una secuencia especfica de acceso a los recursos para aquellos procesos que los requieren en forma comn Normalmente las polticas de los sistemas incluyen tcnicas para detectar el interbloqueo y abortar a uno o todos los procesos involucrados para dar agilidad al sistema las formas ms comunes de detecciones son:

73

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Control de longitud de la cola de procesos. Verificacin de ciclos en las conexiones proceso tiene un recurso.

7.6 Consideraciones en ambiente multiusuario: Precauciones adicionales a las anteriores, deben ser tomadas en cuenta para elevar el nivel de seguridad en redes de usuarios. Las ms comunes: Validar no contraseas repetidas. Eliminar claves de acceso de usuarios deshabilitados. Establecer polticas y sanciones por desatender estaciones desconectadas (con acceso). Restringir procesos de alto riesgo a terminales con mayor nivel de seguridad y/o vigilancia. Establecer controles dial-up/call-back para el acceso validado a las terminales; es decir, implementar sistemas electrnicos de autenticacin de terminal. Establecer polticas para denegar el acceso despus de una cantidad determinada de intentos fallidos de un tiempo transcurrido. Controles genricos de acceso: Debe considerarse la posibilidad de controles alternos cuando el sistema maneja informacin o recursos altamente privilegiados para la organizacin. Las formas ms comunes para autentificar la identidad del usuario son: a) Algo que el usuario conoce. Password, contrasea, algoritmos de acceso. b) Algo que el usuario tiene. Tarjetas de acceso, bandas magnticas etc. c) Identificacin de aspectos fsicos del usuario.- Huellas digitales, examen de la retina, voz, etc. 7.7 Clculo del tamao de la BD: La base de datos debe ser lo suficientemente grande. Esta medida referente a tamao, depende del hardware y de las restricciones operativas aplicables en un ambiente dado. El termino grande implica una cantidad de datos mayor que la que una sola persona puede manejar por s misma, aunque la auxilie un sistema de computacin. La cantidad real variara dependiendo de la complejidad de los datos y de sus aplicaciones. Una base de datos muy grande es parte esencial de una empresa y ser utilizada continuamente por muchos individuos. Al mismo tiempo requerir muchos dispositivos de almacenamiento. Una base de datos muy grandes presenta problemas

74

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

de manejo, ya que no puede detenerse sin afectar la operacin y el bienestar de la empresa usuaria. 7.8 Diseo: Un diagrama E-R, puede ser representado tambin a travs de una coleccin de tablas. Para cada una de las entidades y relaciones existe una tabla nica a la que se le asigna como nombre el del conjunto de entidades y de las relaciones respectivamente, cada tabla tiene un nmero de columnas que son definidas por la cantidad de atributos y las cuales tienen el nombre del atributo. El diagrama E-R es el siguiente:

Las tablas resultantes siguiendo la descripcin anterior son: Tabla Empleado Nombre Puesto Salario RFC Tefilo Vendedor 2000 TEAT701210XYZ Auxiliar Cesar 1200 COV741120ABC ventas Tabla artculo Clave Descripcin Costo A100 Abanico 460 Colcha C260 1200 matrimonial Tabla Venta RFC Clave TEAT701210XYZ C260 COV741120ABC A100

75

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

En la tabla de relacin - Venta -, contiene como atributos a las llaves primarias de las entidades que intervienen en dicha relacin, en caso de que exista un atributo en las relaciones, este atributo es anexado como una fila ms de la tabla; Por ejemplo si anexamos el atributo fecha a la relacin venta, la tabla que se originaria sera la siguiente: RFC Clave Fecha TEAT701210XYZ C260 10/12/96 COV741120ABC A100 11/12/96 Dentro de la suite de la base de datos Oracle, se proveen de forma gratuita herramientas para asistir el desarrollo. En lo que respecta a la implementacin del diseo conceptual, Oracle ofrece dos herramientas a saber. Oracle Designer Oracle Designer incorpora soporte para el modelado de procesos de negocio, anlisis de sistemas, diseo de software y generacin de sistemas. Adems, provee un repositorio multi-usuario basado en Oracle SCM y est integrado con Oracle FormsDeveloper. Oracle Designer permite disear e implementar rpidamente sistemas escalables de cliente/servidor que puedan adaptarse a las cambiantes necesidades de los negocios. Su ltima versin es 10gR2. De acuerdo a la Declaracin de Direccin de las Herramientas de Desarrollo: Oracle Forms, Oracle Reports y Oracle Designer de Julio de 2009, Oracle Designer no est incluido en la suite de desarrollo para Oracle 11g. Oracle SQL Developer Data Modeler Oracle SQL Developer Data Modeler (en lo subsecuente Data Modeler) es una nueva herramienta grafica para modelado de datos que facilita y mejora la comunicacin entre los arquitectos de datos, administradores de bases de datos, usuarios y desarrolladores de aplicaciones, adems de simplificar el proceso de desarrollo de modelado de datos. Al usar el Data Modeler, los usuarios pueden crear, consultar y editar los modelos lgicos, relacionales, fsicos, multi-dimensionales y de tipos de dato. La generacin de scripts DDL mejora la productividad y promueve el uso de estndares. Introduccin al Data Modeler Oracle Data Modeler es una solucin modelo-a-implementacin completa para modelado de datos, para: Bases de datos de nueva operacin o bases de datos para Business Intelligence. Capturar implementaciones existentes de bases de datos y proveer una representacin grfica de ella, as como la documentacin y metadatos relacionados. Agregar e implementar nuevos requerimientos de datos.

76

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Oracle Data Modeler est dirigido a una audiencia amplia, desde Arquitectos de Datos a DBAs y desarrolladores, as como a todos los usuarios que necesiten una forma clara, consistente y entendible acerca de los datos y sus propiedades.

Interfaz de Oracle SQL Developer Data M Ahora vamos a realizar nuestro modelo E-R pero con la herramienta DESIGNER, paso a paso y vamos a realizar nuestras entidades, as como establecer las cardinalidades, de las mismas. Seleccione en el men Herramientas del navegador de repositorio de objetos o seleccione Entidad Relacin de la Designer/ Launchpad.

77

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

1: Seleccin del E-R Diagrammer desde el men Herramientas del RON.

2: Seleccin de la E-R Diagrammer de la Designer/ Launchpad. La ventana entidad nuevo diagrama titulado ERD1 aparecer si selecciona la SEE en el Navegador repositorio de objetos.

78

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

3: La ventana entidad nuevo diagrama ERD1 cuando se selecciona la ER Diagrammer de la RON.

1.

4: Seleccin de un nuevo diagrama de la ER Diagrammer. Tener una idea conceptual acerca de las entidades, atributos y relaciones entre las entidades de la que desea representar en el diagrama de E-R.

79

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

2.

Lo primero que se necesita para crear un diagrama E-R es la creacin de una entidad. Para ello, haz clic en el siguiente icono en la barra de herramientas superior.

3.

Crear entidad y escribir el nombre, nombre corto y el nombre en plural (si lo quieres diferente del nombre) en las etiquetas. Aqu vamos a llamarlo ESTUDIANTE, nombre corto: nombre STUD y plural como estudiantes. Haga clic en Aceptar.

5: El diagrama de E-R con la entidad.

80

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

4.

Haga clic en el icono de la entidad y la ventana Crear entidad aparecer de nuevo. Slo que lo nombre como CURSOS, con el nombre corto Cour y CURSOS plural (para crear ms entidades).

6: La ventana de Creacin de la Entidad para la entidad Curso.

7: El diagrama E-R con las dos entidades. 5. Despus de haber creado todas las entidades, debemos especificar la cardinalidad.

81

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Para especificar la cardinalidad haga clic en cualquiera de las opciones junto al icono de la entidad y se arrastra de la entidad a la izquierda a la derecha. En este caso hemos elegido la M: M (O a O) la relacin, es decir, la de muchos a muchos, opcional a la relacin opcional. Para ello, seleccione el siguiente icono de la barra de herramientas.

Especificar el nombre de la relacin.

82

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

8: Diagrama ER con las Entidades y su cardinalidad.

83

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

9: Seleccionar las propiedades de la entidad estudiante.

10: La ventana de edicin Entidad. 84

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

La ventana de atributos aparecer con las diferentes columnas, tales como nombre, dominio (no nula o nula), formato (si varchar2, nmero, etc), maxLength, primaria (si es una clave principal o no). Los atributos que se crear para los estudiantes son: studid (primaria), STUDNAME, FTPT_STATUS, PRINCIPAL, SEXO, START_SEM y start_year). Llena el formato, MaxLen, campos de primaria, y haga clic en Aplicar o en Aceptar.

11: La ventana de atributos para la entidad estudiantil.

12: La ventana de atributos para la entidad Curso.

85

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

6.

Los atributos se mostrarn en la entidad. El signo # a la izquierda de un atributo indica que el atributo es el identificador / clave para la entidad).

13: Una representacin grfica del diagrama E-R terminado.

Administracin de la Seguridad de la Base de Datos


An tomando las precauciones adecuadas, los registros de base de datos crticos a veces pueden ser destruidos como consecuencia de un error humano o fallo de hardware o software. La nica forma de prepararse para este tipo de situacin potencialmente desastrosa es llevar a cabo las operaciones regulares de copia de seguridad. Dos tipos bsicos de posibles fallos puede afectar a una base de datos Oracle: Error de ejemplo, en el que la instancia de Oracle termina sin pasar por el proceso de cierre, y la falta de medios, en los que los discos que almacenan la informacin en una base de datos de Oracle estn daados. Despus de un fallo de instancia, Oracle ejecutar automticamente la recuperacin de una cada. Por ejemplo, puede utilizar Real Application Clusters para

86

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

realizar automticamente la recuperacin ejemplo, cuando uno de sus choques de los casos. Sin embargo, los DBA debe iniciar la recuperacin de la falta de medios. La capacidad de recuperarse con xito de este tipo de fracaso es el resultado de una cuidadosa planificacin. El proceso de recuperacin incluye la restauracin de las copias ms viejas del fichero de datos daada (s) y balanceo hacia adelante mediante la aplicacin de archivado y los registros de rehacer en lnea. Para garantizar la recuperacin exitosa, el DBA debera haber preparado para esta eventualidad mediante la realizacin de las siguientes acciones: Multiplexacin en lnea los registros de rehacer con varios miembros de registro por grupo en diferentes discos y controladores Ejecucin de la base de datos en modo ARCHIVELOG para que rehacer los archivos de registro se archivan antes de que sean reutilizados Archivo de registros de rehacer en varias ubicaciones El mantenimiento de mltiples copias del archivo de control (s) Copia de seguridad de archivos de datos fsicos con frecuencia, idealmente, el almacenamiento de varias copias en varios lugares

Ejecucin de la base de datos en modo ARCHIVELOG garantiza que podr recuperar la base de datos hasta el momento de la falta de medios, en este modo, el DBA puede realizar copias de seguridad del archivo de datos en lnea, mientras que la base de datos est disponible para su uso. Adems, archivados redo logs pueden ser enviados a una base de datos en espera a las que puedan aplicarse. Recovery Manager, tambin conocido como RMAN, por primera vez en Oracle8 y mucho mayor, ya que, proporciona una interfaz fcil de usar para administrar este proceso. RMAN es accesible hoy a travs de Enterprise Manager. 8.1 Esquemas de Respaldo Al hacer la copia de seguridad se nos permite recuperar la informacin 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 informacin 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 opcin, es que el servidor funciona ms lento; lo bueno es que en caso de desastre se pueden recuperar los datos almacenados.

87

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Cold Backups (Respaldos Fros): Tambin son conocidos como respaldos imagen. Se ejecuta cuando la base de datos se apaga o est abajo y ningn proceso se est ejecutando sobre ella. La desventaja con ste respaldo es que es muy complejo recuperar una o ms tablas. Cuando sta se ejecuta en conjunto con un archivo de registro (archive logging) se puede recuperar la base en un punto en el tiempo o antes de cancelar. . Hot Backups (Respaldos Calientes): Ejecutados con la base de datos arriba y disponible. Si la base est en modo de registro. Este tipo de respaldo son esenciales para ambientes que son todo el tiempo trabajando. Tambin son copias a nivel de archivo de los archivo de datos (datafiles). El modo de registro debe ser habilitado para asegurar los respaldos. Las tablas individuales no pueden ser fcilmente recuperadas. Si se utiliza respaldo fro o caliente se recuperara la base de datos al punto en cual la copia se hizo. Se pueden remplazar los archivos daados con los archivos. EXPORT (Respaldos Lgicos): Son respaldos de la lgica, mediante el uso de la herramienta, en donde se extrae las definiciones lgicas y los datos de una base a un archivo. Sirve para que los objetos sean transformados en archivos binarios, los cuales tambin pueden ser importados a otra base de datos de Oracle. Se puede recuperar una tabla o ms tablas, se puede recuperar todo un espacio en tabla (tablespace). Para ejecutarlo la base debe de estar en lnea. Los tipos de respaldos lgicos o exportaciones que se pueden realizar son: Exportacin de toda la base de datos. Exportacin por usuario o de un esquema completo La exportacin de una tabla o varias A diferencia de los respaldos fros o calientes que capturan todo el archivo y su contenido, la exportacin captura elementos de la base de datos, completa a un archivo. Permite recuperar una sola tabla. Respaldos RMAN: se utiliza estando la base en lnea y fuera de lnea. Utilidad de Respaldo Empresarial (EBU): Oracle provee una solucin para poder respaldar mltiples bases de datos. Esto es un reto para el DBA. Algunos script causaran que algunas bases de datos se apaguen para respaldos fuera de lnea, mientras otros se realizan en lnea o llamados respaldos calientes. Se usa en conjunto con HP OminBack II, provee un mtodo simplificado para la administracin de Respaldos y recuperacin. Con esto el DBA no debe de preocuparse por el cdigo de UNIX o las sentencias completas de SQL. Esta herramienta provee de una interfaz grfica.

88

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Una de las caractersticas principales de EBU es para realizar una recuperacin en lnea slo a las reas afectadas mientras las reas no afectadas permanecen disponibles. Esta herramienta surge para poder resolver el problema de respaldas bases de datos muy grandes. EBU trabaja en conjunto con otros productos como: Epoch EpochBackup Administrador de Almacenaje Distribuido IBM Adstar Legato Systems NetWorker Hewlett-Packard Omniback II SprectraLogic Alexandria Libreria REEL y Herramienta de Respaldo REEL Respaldo de Red Open Vision No todos los productos trabajan para las mismas plataformas. La herramienta consiste en programas de software y catlogo de respaldo. El conjunto de respaldo y Copia de Imagen: Son herramientas nuevas que vienen con la Utilera de Administracin de Recuperacin, sta utilera tambin genera copias, la diferencia es que tambin controla el nmero de copias, cuando y donde son almacenadas. Esquemas de Recuperacin Restaurar involucra copiar los archivos respaldados en una unidad de respaldo al disco. Esto puede ser hecho para evitar archivos daados o para mover la base de datos a una locacin nueva. Las opciones de recuperacin en Oracle son las siguientes: Recuperacin de la base de datos completa para el momento del error De tablas de punto en el tiempo de recuperacin (recuperacin de un espacio de tablas a una hora diferente del resto de la base de datos) Base de datos en funcin del tiempo o punto en el tiempo de recuperacin (recuperacin de la base de datos a un momento anterior a la poca ms actual) De recuperacin hasta que el comando CANCEL se emite Cambiar o basado en la recuperacin de secuencia de registro (para un determinado nmero de Cambio del Sistema, o SCN)

Se puede recuperar a travs de RMAN, utilizando el catlogo de recuperacin o archivo de control a travs de SQL o SQL * Plus. RMAN en Oracle Database 10g mejora la fiabilidad de las copias de seguridad y restaura a travs de un nmero de caractersticas aadidas. Esta versin agreg copia de seguridad y restauracin de

89

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

archivos de control de espera. RMAN ahora automticamente puede volver a intentar una copia de seguridad o no operacin de restauracin. Durante la recuperacin, RMAN puede crear automticamente y recuperar archivos de datos, no en la copia de seguridad ms reciente. En caso de copias de seguridad se encuentra o est daado durante el proceso de restauracin, RMAN utiliza automticamente una copia de seguridad anterior. Para acelerar las copias de seguridad y restauracin, Oracle Database 10g presenta el rea de recuperacin flash, por lo que la organizacin de los archivos de recuperacin de una zona especfica en el disco. Estos archivos incluyen una copia del archivo de control, archivar los archivos de registro, base de datos retrospectiva los registros, copias de archivo de datos y copias de seguridad de RMAN. Puede establecer un parmetro de rea de retencin para conservar los archivos necesarios de recuperacin para las ventanas de tiempo especfico. Como los archivos de copia de seguridad y la edad archivelogs ms all de la ventana de tiempo, se eliminan automticamente. ASM (descrito anteriormente en este captulo) se puede configurar el rea de recuperacin flash. Si la disponibilidad de espacio en disco es un problema, tambin puede aprovechar la capacidad de RMAN para comprimir conjuntos de copia de seguridad. 8.3 Tolerancia a Fallos Es una de las tareas y herramientas fundamentales que nos proporcionan las bases de datos. Hay posibilidad de perder datos de nuestra base de datos por alguna de estas razones: Fallo en una instruccin: Hay instrucciones que pueden provocar la prdida no deseada de cientos de registros en un momento (DELETE o UPDATE). En ese caso basta ejecutar un rollback antes de que la instruccin se lleve a cabo. Fallo en la comunicacin: Si una conexin de usuario se corta anulando el proceso de usuario relacionado. En ese caso, Oracle anula los cambios de la ltima transaccin (el resto de transacciones s se almacena). Cada del servidor: Puede que la instancia Oracle se deje de ejecutar. En ese caso basta con lanzar de nuevo la instancia. El proceso SMON se encargar de grabar los archivos rehacer y aplica de nuevo las transacciones confirmadas. Se anulan los cambios no confirmados. Prdida de datos en los archivos: Es el nico caso en el que tiene que intervenir el administrador. La nica posibilidad es recuperarles de una copia de seguridad

Administracin de Objetos
9.1 Bases de Datos

90

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Se debe considerar que es lo que la base de datos va a usar y cuanta informacin va a contener. Se debe de entender el hardware involucrado, el nmero de PCUS, la cantidad de memoria, el nmero de discos, los controladores del disco, etc. Como la base se almacena en discos varios problemas de afinacin pueden ser evitados con la adecuada capacidad de planeacin de subsistemas de entrada y salida. 9.2 Tablas La tabla es la estructura de datos bsicos utilizados en una base de datos relacional. Una tabla es una coleccin de filas. Cada fila de una tabla contiene una o ms columnas. Si no est familiarizado con bases de datos relacionales, puede asignar una tabla con el concepto de un archivo o base de datos en una base de datos no relacionales, as como usted puede asignar una fila con el concepto de un registro en una base de datos no relacionales. A partir de i Oracle9, puede definir las tablas externas. Como su nombre lo indica, los datos de una tabla externa se almacena fuera de la base de datos, normalmente en un archivo plano. La tabla externa es de slo lectura, no se puede actualizar los datos que contiene. La tabla externa es buena para la carga y descarga de datos a los ficheros de una base de datos, entre otros fines. Oracle Database 11 g introduce la posibilidad de crear columnas virtuales para una tabla. Estas columnas estn definidas por una expresin y, aunque los resultados de la expresin no se almacenan, las columnas se pueden acceder a las aplicaciones en tiempo de ejecucin. La base del diccionario de datos es una serie de tablas a las que el servidor de datos accede cada vez que se procesa una instruccin del DDL de SQL, o en determinados comandos del DML. Estas tablas raramente son accedidas por usuarios ya que la mayor parte de su informacin est codificada. Por ejemplo, la tabla IND$ provee informacin sobre los ndices definidos en la base de datos, y la tabla OBJ$ provee informacin sobre los diferentes objetos lgicos (tablas, ndices, secuencias, etc.) creados por los usuarios de la base de datos. 9.2.1 Creacin de tablas En SQL*Plus es posible usar todos los comandos bsicos de SQL con algunas restricciones de sintaxis. Para crear una tabla, debe teclearse en la linea de comandos: CREATE TABLE nombretabla (

91

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

{nombre_col tipo [DEFAULT expr] [rest_columna] ... |rest_tabla} [,{nombre_col tipo [DEFAULT expr] [rest_columna] ... |rest_tabla}] ... ); Donde nombretabla representa el nombre que se le dara a la relacin que se est creando; nombre_col es el nombre de un atributo, y tipo indica el tipo de datos del mismo; DEFAULT expr representa el valor por defecto de un atributo (el valor que se asigna cuando no se especifican datos de entrada para ese atributo); rest_columna son las restricciones a nivel de atributo que se pueden colocar; y rest_tabla las restricciones a nivel de la relacin (por ejemplo, si la clave est constituida por un solo atributo, se puede indicar como restriccin a nivel de columna, en cambio, si es compuesta, se indica como restriccin a nivel de tabla). Un ejemplo lo tenemos con: SQL> CREATE TABLE empleado ( 2> ci NUMBER(8) CONSTRAINT pk_empleado PRIMARY KEY, 3> nombre VARCHAR2(20) NOT NULL 4> CONSTRAINT may CHECK (nombre=UPPER(nombre)), 5> cargo VARCHAR2(9), 6> jefe NUMBER CONSTRAINT fk_jefe REFERENCES empleado(ci), 7> ingreso DATE, 8> sueldo NUMBER(10,2), 9> dpto NUMBER(2) NOT NULL 10> CONSTRAINT fk_dpto REFERENCES depto(nro) 11> ); Mientras no se cierra la sentencia completa de SQL (con punto y coma) aparece un prompt con el nmero de lnea que se est escribiendo. La sentencia solo se ejecuta luego de escribir el punto y coma y presionar [ENTER].Adems que los comandos en SQL no son case sensitive, por lo cual no habr diferencia entre una tabla empleado y una tabla EMPLEADO. La sentencia anterior crea una relacin empleado, con las siguientes caractersticas: cedula: Entero de longitud 8, clave primaria; nombre: Cadena de caracteres de hasta 20 caracteres, no puede contener nulos, y todas las letras deben ser maysculas; cargo: Cadena de caracteres de hasta 9 caracteres, sin restricciones; jefe: Nmero de cdula de identidad del jefe, es clave fornea de la misma relacin en el atributo ci;

92

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

ingreso: Fecha en la cual comenz a trabajar en la empresa; sueldo: Nmero en punto flotante, de hasta diez dgitos, incluyendo dos decimales, que indica el sueldo mensual del empleado; dpto: Nmero del departamento para el cual trabaja el empleado, es clave fornea del atributo nro, de la relacin depto.

Tipos de datos CHAR(n) Cadena de caracteres de longitud n. Una vez que se declara, se reserva espacio para n caracteres, aun cuando no se usen todos. VARCHAR2(n) Cadena de caracteres de longitud n. Se define un mximo de n caracteres, pero solo se usa el espacio correspondiente a los caracteres ocupados VARCHAR(n) Exactamente lo mismo que VARCHAR2(n) NUMBER(p,s) Nmero en punto flotante, de p dgitos, de los cuales s son decimales. El parmetro s puede ser omitido, con lo cual se considerar que su valor es 0. El valor por defecto para p es 38. DATE Fecha comprendida entre Enero 1, 4712 aC y Diciembre 31, 4712 dC.

9.2.2 Eliminacin de tablas Para eliminar una tabla determinada, se usa la instruccin DROP TABLE, de la siguiente manera: SQL> DROP TABLE nombretabla; Con lo cual se elimina la tabla nombretabla del sistema. Un caso especial se presenta si la relacin a ser eliminada est referenciada por claves forneas en otra(s) relacin(es). En este caso, se debe hacer la llamada de la siguiente manera: SQL> DROP TABLE nombretabla CASCADE CONSTRAINTS; De esta manera se eliminarn todas las tuplas en otras relaciones que referencien a la clave primaria de la relacin a ser eliminada. Si no se incluye el parmetro CASCADE CONSTRAINTS y existe alguna referencia a una tupla que se eliminar, ORACLE retornar un mensaje de error y no eliminar la relacin. 9.3 Vistas

93

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Una vista es una estructura de datos de Oracle se define a travs de una sentencia SQL. La sentencia SQL se almacena en la base de datos. Cuando se utiliza un punto de vista en una consulta, la consulta se ejecuta y almacena los datos de la tabla base se devuelve al usuario. Las vistas no contienen datos, sino que representan formas de ver los datos de base de la mesa en la forma en que la consulta especifica. Puede utilizar una vista para varios propsitos: Para simplificar el acceso a los datos almacenados en varias tablas. Para implementar la seguridad especfica para los datos en una tabla (por ejemplo, mediante la creacin de una vista que incluye una clusula WHERE que limite los datos se puede acceder a travs de la vista). A partir de i Oracle9, puede utilizar control de acceso de grano fino a lograr el mismo propsito. Control de acceso de grano fino le da la capacidad de limitar el acceso a datos de forma automtica en funcin del valor de los datos en una fila. Para aislar una aplicacin de la estructura especfica de las tablas subyacentes.

Una vista se basa en una coleccin de tablas de base, que puede ser tablas reales en una base de datos Oracle u otros puntos de vista. Si modifica cualquiera de las tablas base para una vista de modo que ya no se puede utilizar para una vista, este punto de vista se puede dejar de utilizarse. En general, usted puede escribir en las columnas de una sola tabla base subyacente de un punto de vista en una nica sentencia SQL. Existen restricciones adicionales para las instrucciones INSERT, UPDATE y DELETE, y hay ciertas clusulas SQL que impiden la actualizacin de cualquiera de los datos en una vista. Usted puede escribir en un punto de vista nonupdateable utilizando un desencadenador INSTEAD OF, que se describe ms adelante en este captulo. Oracle8i introducido vistas materializadas. Estos no son realmente puntos de vista como se define en esta seccin, pero son tablas fsicas que mantienen presummarized datos que proporcionan importantes mejoras de rendimiento en un almacn de datos. Vistas Estticas Las vistas estticas se crean durante la instalacin del DBMS y decodifican y resumen la informacin contenida en las tablas base. Durante la ejecucin del script de creacin de estas vistas se generan sinnimos pblicos para proveer el acceso a los usuarios del DBMS.

94

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Estas vistas son las que deben ser utilizadas para efectuar labores de administracin rutinarias que requieran de informacin especfica sobre la configuracin y estado de la base de datos. A estas vistas se les conoce como estticas porque no mantienen informacin relacionada con las sesiones que actualmente existen en el sistema de base de datos. Estas vistas se dividen en tres categoras de acuerdo con el prefijo de sus nombres: Vistas con prefijo USER: Estas vistas pueden ser utilizadas por cualquier usuario de la base de datos y se refieren a los objetos posedos por dicho usuario. Por ejemplo si el usuario ci531301 ejecuta el comando SQL SELECT * FROM USER_TABLES Se desplegar toda la informacin de aquellas tablas cuyo dueo sea el usuario ci531301. Vistas con prefijo ALL: Estas vistas pueden ser utilizadas por cualquier usuario e incluyen la columna OWNER adicionalmente a la dems informacin. Con estas vistas se puede tener acceso a la informacin de aquellos objetos de los que el usuario es dueo, ms todos aquellos objetos pblicos y todos aquellos objetos a los que el usuario tiene acceso por pertenecer a cierto grupo de seguridad o por poseer ciertos privilegios sobre la base de datos. Por ejemplo, si el usuario CI531301 posee el privilegio de ver la tabla EMPLEADO creada por el usuario CI531302 (dicho privilegio le fue otorgado por un administrador o por el mismo usuario CI531302), entonces la consulta anterior devolver la misma informacin (incluyendo la columna OWNER) ms una fila especfica con la informacin sobre la tabla EMPLEADO del usuario CI531302. Vistas con prefijo DBA: Estas vistas dan informacin sobre TODOS los objetos de la base de datos, y usualmente incluyen la columna OWNER. Estas vistas slo pueden ser utilizadas por el administrador de la base de datos o por cualquier usuario que posea el privilegio SELECT ANY TABLE o pertenezca a un rol que incluya tal privilegio.

Vistas Dinmicas A diferencia de las vistas estticas, las vistas dinmicas (tambin conocidas como performance views) incluyen informacin sobre las condiciones actuales (en un

95

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

instante dado) de operacin del DBMS. La mayor parte de estas vistas son creadas durante la instalacin y existen algunas que se crean explcitamente para monitorear cierta actividad (el DBMS provee los archivos necesarios para crear estas vistas). Todas las vistas dinmicas se identifican por poseer el prefijo V$. Por ejemplo la vista dinmica V$_SESSION incluye informacin sobre las sesiones actuales y la vista V$SYSSTAT provee informacin estadstica sobre el DBMS. Para obtener informacin general sobre las vistas del diccionario de datos puede usarse la consulta SELECT * FROM DICTIONARY WHERE table_name LIKE %indicador% Por ejemplo, para ver todas las vistas relacionadas con tablas podramos ejecutar la instruccin SQL SELECT * FROM DICTIONARY WHERE table_name LIKE %TABLE% 9.4 Usuarios, Privilegios, Grupos y Roles. El administrador de la base de datos creo nombre de usuario (usernames por su trmino en ingls) que pueden usarse para conectar a la base de datos. Dos cuentas de usuario son automticamente creadas como parte del proceso de instalacin y son asignadas por el rol de DBA como SYS y SYSTEM. Cada nombre de usuario de la base de datos tiene un password asociado con el cual se autentifica. Oracle puede checar stas caractersticas cada vez que un password es creado o modificado como parte de refuerzo de las polticas de seguridad.El usuario una vez autenticado est restringido a los privilegios con los que cuenta. Y los derechos que tiene para ejecutar sentencias SQL. Los Roles son grupos con privilegios que pueden crear, alterar y eliminar. Como ejemplo podemos mencionar: si se desea dar acceso a un rol para proveer un acceso un conjunto especfico de aplicaciones, como Recursos Humanos o se definen mltiples Roles para que los usuarios asignados a esos Roles puedan actualizar en las aplicaciones de Recursos Humanos, mientras que los usuarios de otros roles no pueden.

96

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

9.5 Procedimientos almacenados, funciones y paquetes Oracle mantiene una lista nica del nombre de los objetos almacenados, sta lista es conocida con namespace. Hay otro que almacena disparadores conocidos como triggers. Los procedimientos, funciones y paquetes almacenados proveen una manera de esconder los detalles de implementacin en una unidad de programa. Tambin permiten que se coloquen aplicaciones en un nivel del servidor que evitar la visibilidad indiscreta. Las funciones con estructuras convenientes que pueden ser llamadas directamente de SQL o programas de PL/SQL. Todas las funciones devuelven un valor. Las funciones se definen bloques y estas frecuentemente se implementan en por paquetes almacenados. Los procedimientos no pueden ser operadores correctos, no pueden ser utilizados directamente del SQL. Se mueven los datos a travs de un procedimiento por medio de una lista de parmetros. Se pueden definir estos con o sin parmetros formales. Estos principalmente permiten intercambiar valores con las aplicaciones externas. Los paquetes son la columna vertebral de los programas almacenados en Oracle 11g. Actan como libreras y estn compuestas de funciones y de procedimientos. Los paquetes permiten sobrecargar las funciones y los procedimientos. Los paquetes tienen una publicacin especial La sintaxis para crear un procedimiento es la siguiente: CREATE [OR REPLACE] PROCEDURE name [(param [IN|OUT|IN OUT|] datatype) . . .] [IS|AS] pl/sql_subprogram El uso de OR REPLACE permite sobrescribir un procedimiento existente. Si se omite, y el procedimiento ya existe, se producir un error. Los modificadores IN, OUT, IN OUT indican si el parmetro es de entrada, salida o ambos. A continuacin se presenta un ejemplo de creacin de un procedimiento: SQL> CREATE PROCEDURE credit (acc_no IN NUMBER, amount IN NUMBER) 1> AS BEGIN 2> UPDATE accounts 3> SET balance = balance + amount 4> WHERE account_id = acc_no; 5> END;

97

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Este procedimiento actualizar la(s) tupla(s) con nmero de cuenta igual al parmetro acc_no con un incremento de amount en el balance de dicha cuenta. Si se desea eliminar (borrar) un procedimiento almacenado, se usa la instruccin: SQL> DROP PROCEDURE name; 9.6 Triggers (Disparadores) Son programas almacenados especializados que son detonados por los eventos dentro de la base de datos. Ellos se ejecutan cuando se da un comando y cuando una accin del sistema de administracin. Debido a que se ejecuta en pares no se puede utilizar SQL DCL lenguaje de control de datos. Se pueden definir 5 tipos de disparadores: Disparadores de Definicin de Datos DDL: se dispara cuando se genera un nuevo objeto. Disparadores de manipulacin de Datos DML se disparan cuando se inserta, se actualiza o se elimina un dato. Disparadores compuestos: Actan como una sentencia, permiten capturar informacin Instancias de disparadores: Detiene la ejecucin de un disparador de definicin o de manipulacin. Disparadores de sistema o de eventos de base de datos: cuando surge una actividad de sistema.

Un trigger es un bloque PL/SQL asociado a una tabla, que se ejecuta cuando una determinada instruccin en SQL se va a ejecutar sobre dicha tabla.La sintaxis para crear un trigger es la siguiente: CREATE [OR REPLACE] TRIGGER [FOLLOWS nombre-otro-trigger] {BEFORE|AFTER} {DELETE|INSERT|UPDATE [OF col1, col2, . . ., colN] [OR {DELETE|INSERT|UPDATE [OF col1, col2, . . ., colN]. . .]} ON table [REFERENCING OLD AS oldname, NEW as newname] [FOR EACH ROW [WHEN (condition)]] {Bloque estndar de sentencias PL/SQL... BEGIN, EXCEPTION}

98

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

El uso de OR REPLACE permite sobreescribir un trigger existente. Si se omite, y el trigger existe, se producir, un error. El modificador FOR EACH ROW indica que el trigger se disparar cada vez que se desee hacer operaciones sobre una fila de la tabla. Si se acompaa del modificador WHEN, se establece una restriccin; el trigger solo actuar, sobre las filas que satisfagan la restriccin. La diferencia entre UPDATE y UPDATE OF lista-columnas es que, en el segundo caso, el trigger PL/SQL se ejecuta slo cuando se modifica alguna de las columnas de la lista y, en el primer caso, el trigger se ejecuta en caso de que cualquiera de las columnas de la tabla sea modificada. La clusula FOLLOWS se utiliza para determinar el orden en que se deben ejecutar diferentes triggers del mismo tipo (INSERT, DELETE o UPDATE) que se disparan al mismo tiempo sobre una misma tabla. As el trigger que est siendo creado se ejecutar despus del trigger indicado en la clusula FOLLOWS (slo disponible para la versin 11g de la base de datos Oracle). La clusula REFERENCING permite referirnos con el nombre que nosotros indiquemos (por defecto los nombres son old y new) al valor antiguo (old) de un registro que ha sido borrado o actualizado o al valor nuevo (new) de un registro que ha sido actualizado o insertado. Yo, sinceramente, no le veo una utilidad evidente a esta clusula debido a que los valores por defecto son suficientemente explicativos. La clusula WHEN determina que el trigger PLSQL se dispar slo para los registros que cumplen la condicin de la clusula. Esta clusula slo se puede usar en triggers a nivel de registro.

A continuacin se presenta un ejemplo de creacin de un trigger: SQL> CREATE TRIGGER salary_check 1> BEFORE 2> INSERT OR UPDATE OF sal, job 3> ON employee 4> FOR EACH ROW 5> WHEN (new.job <> 'PRESIDENT') 6> DECLARE 7> minsal NUMBER 8> maxsal NUMBER 9> BEGIN 10> /* Se obtienen los valores minimo y maximo para el salario de */

99

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

11> /* un cargo determinado, usando la tabla sal_guide */ 12> SELECT minsal, maxsal 13> INTO minsal, maxsal 14> FROM sal_guide 15> WHERE job = :new.job 16> /* Si el salario del empleado a insertar/modificar esta por */ 17> /* debajo del minimo, o por encima del maximo, se genera */ 19> /* un error. */ 20> IF (:new.sal < minsal OR :new.sal> maxsal) 21> THEN raise_application_error(-20601, 'Salary '||:new.sal|| 22> ' out of range for job '||:new.job||' for employee '|| 23> :new.ename); 24> END IF; 25 > END; Este trigger impide que se agregue o modifique un empleado con el sueldo mayor o menor que los valores mximo y mnimo respectivamente para su cargo. Se agrega la restriccin de que el trigger no se dispararn si el cargo es PRESIDENTE. Si se desea eliminar (borrar) un trigger, se usa la instruccin: SQL> DROP TRIGGER name; 9.7Administrador de reglas La base de datos no ha dejado de extender la funcionalidad que puede ofrecer, desde almacenamiento de datos simple, que siguen aplicando algunos atributos lgica de los datos, que almacenan procedimientos. El Administrador de reglas, present con Oracle Database 10g Release 2, se esta extensin de un paso ms all. El concepto detrs del Administrador de reglas es muy sencillo. Una regla se almacena en la base de datos y se llama y evaluados por las aplicaciones. Si las condiciones de negocio o los requisitos cambio, el Estado cubre los escenarios se pueden cambiar sin tener que tocar el cdigo de aplicacin. Las reglas pueden ser compartidas a travs de sistemas de aplicaciones mltiples, de normalizacin junto con el mantenimiento reducido para todo el conjunto de aplicaciones.

10. Utileras del RBDMS


Oracle es un RDBMS poderoso y amplio que funciona en muchos varias plataformas diferentes (como lo referimos en secciones anteriores del presente

100

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

documento) y que tiene a su vez varios productos o utileras presentes en los instaladores de las bases de datos. El software del sistema de bases de datos Oracle incorpora herramientas para realizar la mayora de las tareas comunes de las bases de datos: Universal Installer: Gestor de instalaciones, controla cada nueva instalacin de software Oracle a fin de que se integren de la mejor manera posible. Esta versin tiene un interfaz y funcionalidad diferente a la del resto de productos ya que en la estructura de directorios creada est la aplicacin del instalador universal de Oracle (Oracle Universal Installer - OUI). OUI permite mediante una interfaz grfica ver los productos de Oracle que hay instalados en el servidor, instalar nuevos productos y desinstalar alguno de los existentes. Durante todo el proceso de instalacin o desinstalacin ofrece ayuda para mejorar la comprensin de los procesos que se van a llevar a cabo. Al iniciar el OUI se asignan valores por defecto para definir el directorio raz donde se instalar el software as como seleccionar el tipo de instalacin ha realizar, pudiendo escoger entre una versin personal, estndar y empresarial. Crear opcionalmente una base de datos, en cuyo caso se ha de dar un nombre nico para la misma y la contrasea que se desea utilizar para los super usuarios. Aceptando las opciones por defecto y salvo complicaciones extraordinarias, el OUI y el DBCA finalizarn con la creacin de una base de datos totalmente operativa.

SQL*plus: Es un cliente de lnea de comandos utilizada para ejecutar sentencias SQL y compilacin de cdigo PL / SQL. SQL Developer ofrece todas las mismas capacidades que SQL * Plus, as como un fcil de usar, potente funcin de arrastrar y soltar interfaz grfica de usuario para administrar los objetos de base de datos y la 101

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

creacin y visualizacin de informes. Oracle tambin ofrece extensiones para Microsoft Visual Studio es el entorno de desarrollo para apoyar el desarrollo de aplicaciones en. Plataformas NET. SQL*Plus est disponible en todas las plataformas en las que se ejecuta Oracle. Se sirve con el cliente de Oracle. Tambin est presente en el servidor. Se puede ejecutar cualquier comando de base de datos o bloque PL/SQL en SQL*Plus (siempre que se disponga de permisos).

SQL Developer: Oracle SQL Developer es una versin grfica de SQL * Plus que ofrece a los desarrolladores de bases de datos de una manera conveniente de realizar las tareas bsicas. Puede explorar, crear, editar y eliminar (drop) los objetos de base de datos, ejecutar sentencias SQL y scripts, editar y depurar cdigo PL / SQL, manipular y exportar datos, y ver y crear informes. Puede conectarse a cualquier base de datos Oracle esquema de destino utilizando la autenticacin estndar de base de datos Oracle. Una vez conectado, puede realizar operaciones sobre los objetos en la base de datos. Se puede conectar a los esquemas de terceros seleccionados (no-Oracle) las bases de datos, como MySQL, Microsoft SQL Server, Sybase Adaptive, y Microsoft Access, y ver los metadatos y los datos en estas bases de datos, y puede migrar bases de

102

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

datos de terceros para Oracle. Al instalar Oracle Database (versin 11 o posterior) ,una versin de SQL Developer tambin est incluido y es accesible a travs del sistema de mens en Oracle. Esta versin de SQL Developer es independiente de cualquier kit de desarrollo de SQL que se descarga y descomprime por su cuenta, as que no hay que confundir las dos, y no descomprimir un juego sobre los archivos de SQL Developer que se incluyen en la base de datos Oracle.

SQL*Loader: Permite cargar en bases de datos de Oracle informacin que procede de un archivo de texto. Necesaria para utilizar en las bases de datos de Oracle, informacin que procede de otro software. SQL *Loader carga datos desde archivos externos en las tablas de una base de datos Oracle. Tiene un motor de anlisis de datos de gran alcance que pone pocas limitaciones en el formato de los datos en el archivo de datos. Puede utilizar SQL *Loader para hacer lo siguiente: . . Carga de datos a travs de una red si sus archivos de datos estn en un sistema diferente que la base de datos. Cargar datos de varios archivos de datos durante la sesin de la misma carga.

103

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

. . . . . . . . . . .

Carga de datos en varias tablas en la sesin de la misma carga. Especificar el juego de caracteres de los datos. Seleccionar la carga de datos (que puede cargar registros con base en los valores de los registros). Manipular los datos antes de la carga, utilizando las funciones de SQL. Generar valores nicos secuencial clave en las columnas especificadas. Utilizar el sistema de archivos del sistema operativo para acceder a los archivos de datos. Cargar datos desde el disco, cinta o stream con nombre. Generar informes complejos de error, que en gran medida ayudar a solucionar problemas. Carga de datos orientados a objetos arbitrariamente complejos Usar los archivos de datos secundarios para carda de LOBs y colecciones.

Una tpica sesin de SQL *Loader toma como entrada un archivo de control, que controla el comportamiento de SQL *Loader, y uno o ms archivos de datos. La salida de SQL *Loader es una base de datos Oracle (donde se cargan los datos), un archivo log, un archivo de errores, y, un archivo de registros potencialmente descartados.

104

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Import/Export:. Para importar y exportar datos entre instancias de Oracle. De un servidor a otro por ejemplo. tambin se utiliza como herramienta de copia de seguridad. A continuacin se enumeran sus principales caractersticas y restricciones: Interface basada en lnea de comandos, invocado con los comandos exp e imp. Realiza los exports/imports de una base de datos Oracle a otra (en formato binario propietario). Compatible con los tipos de datos XML. No soporta los tipos de datos FLOAT y DOUBLE. Capacidades similares a las Data Pump, Data Pump es ms recomendado.

105

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Data Pump: La tecnologa de Oracle Data Pump permite la transferencia de datos y metadatos a muy alta velocidad de una base de datos a otra. Todo el procesamiento de Data Pum Export/Import, incluyendo la lectura y escritura de archivos de volcado, se lleva a cabo en el sistema (servidor) seleccionados por la cadena de conexin de la base de dato. Esto significa que para los usuarios sin privilegios, el administrador de base de datos (DBA) debe crear objetos de directorio para los Data Pump File que se leen y escriben en ese sistema de archivos del servidor. (Por razones de seguridad, los DBA deben asegurarse que slo los usuarios autorizados pueden acceder a los objetos de alta jerarqua). A continuacin se enumeran sus principales caractersticas y restricciones: Interface basada en lnea de comandos, invocado con los comandos expdp e impdp Realiza los exports/imports de una base de datos Oracle a otra (en formato

106

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

binario propietario). Realiza los exports/imports de todos los tipos de objeto de esquema Importaciones / exportaciones de base de datos, esquema completo, varios esquemas, mltiples espacios de tablas, o varias tablas Potente filtrado de datos de alta velocidad

Servidor http de Oracle: Basado en el servidor Apache, permite opciones de documentacin y sobre todo la comunicacin directa a travs de SQL*Plus con el servidor Oracle sin tener necesidad de instalar software adicional. Se complementa con la solucin Oracle Application Express as como de un plug-in llamado mod_plsql que proporciona apoyo para la implementacin de PL / SQL basado en aplicaciones de base de datos en la web. Como plug-in de Oracle HTTP Server, mod_plsql genera que los procedimientos almacenados se ejecutan en respuesta a las peticiones HTTP. Para cada URL que se procesa, mod_plsql utiliza una sesin de base de datos desde el pool de conexiones, o crea una nueva sesin al vuelo y lo encola.

107

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Net Manager: Permite la administracin de los servicios de red a fin de configurar las conexiones hacia instancias de Oracle. Oracle Net Manager permite configurar los Servicios de Red de Oracle para Oracle home en un cliente local o host de un servidor. Se puede utilizar el Administrador de Red de Oracle para configurar los componentes de red: Listener: Crear y configurar los listeners para recibir conexiones de clientes. Nombrado: Definir los identificadores de conexin y el mapa que les permite conectarse descriptores para identificar la ubicacin de red y la identificacin de un servicio. Oracle Net Manager admite la configuracin de conexin en los descriptores de archivos locales tnsnames.ora o un servicio de directorio centralizado.

108

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Mtodos de nombres: Configure las formas conectar los identificadores que se resuelvan para conectar descriptores. Perfiles: Configurar las preferencias para activar y configurar las caractersticas de Oracle Net en el cliente o servidor.

Oracle Forms: Permite crear aplicaciones visuales sobre bases de datos de Oracle, es un producto de software para la creacin de pantallas que interactan con una ase de datos Oracle. Tiene un IDE que incluye un navegador de objetos, y editor de cdigo que utiliza PL / SQL. Fue portado a otras plataformas, incluyendo Windows, para funcionar en un entorno cliente-servidor. Las versiones posteriores fueron portados a Java en el que se ejecuta en un contenedor Java EE y puede integrarse con Java y servicios web. El enfoque principal de las formas es crear sistemas de entrada de datos que accedan a una base de datos Oracle.

109

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

11. Descripcin de Frontends y backends con los que se puede interactuar (mencionar los que son nativos en caso de frontend)
En diseo de software el front-end es la parte del software que interacta con el o los usuarios y el back-end es la parte que procesa la entrada desde el front-end. La separacin del sistema en "front ends" y "back ends" es un tipo de abstraccin que ayuda a mantener las diferentes partes del sistema separadas. La idea general es que el front-end sea el responsable de recolectar los datos de entrada del usuario, que pueden ser de muchas y variadas formas, y procesarlas de una manera conforme a la especificacin que el back-end pueda usar. La conexin del front-end y el back-end es un tipo de interfaz. Una base de datos back-end es una base de datos al que se accede por los usuarios indirectamente a travs de una externa aplicacin en lugar de programacin de aplicaciones almacenadas en la propia base de datos o por la manipulacin bajo nivel de los datos (por ejemplo, a travs de SQL comandos). Un back-end de base de datos almacena datos, pero no incluye a los usuarios finales los elementos de aplicacin, tales como almacenar consultas, formularios, macros o informes. Para aplicaciones ms avanzadas de la base de datos es comn para dividir los datos y las partes de la programacin en una base de datos front-end y una base de datos back-end en el front-end tiene todas las de programacin de aplicaciones. Esto tiene 110

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

ventajas en trminos de escalabilidad, rendimiento y concurrencia, sino que requiere un mayor esfuerzo por parte del desarrollador. A largo plazo puede ser ms fcil de mantener y actualizar las nuevas versiones del front-end se pueden implementar de forma independiente de la base de datos de back-end. Las bases de datos frontal y de fondo no siempre tienen que ser del mismo tipo. Backend. Como forma de acceso a la base de datos en Oracle 11g tiene como forma de acceso a la base de datos paquetes PL/SQL con una arquitectura cliente-servidor.

Esto permite contar con una organizacin de datos que tiene contacto con el RDBMS, como se puede ver en la figura. Ms adelante se ver el SQL nativo, pero la estructura del paquete ser la siguiente: 111

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Cuenta con una sintaxis BEGIN-END Es una especie de meta-block Incluye entre otras cosas: o Cursores o Variables y constantes o Tablas de PL/SQL

Estos paquetes permiten estructurar y organizar los mdulos y otros elementos de PL/SQL. Con ello se promueven las tcnicas de programacin estructurada, Hablando de las capas del cliente que es lo que se describe en esta parte, este PL/SQL es una de las herramientas disponibles, desde hace tiempo para interactuar. Frontend Nativo. Tomando en cuenta los diferentes tipos de acceso al manejador, se puede tomar en cuenta lo siguiente: Por lo que ser importante mencionar las formas de acceso a los datos, a travs del frontend y backend. Uno de los accesos desde el frontend se refiere a toda la parte de Business Intelligence

112

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Se tienen otros accesos a travs de la herramienta donde se explotan los datos directamente, a travs de un integrador de datos, se puede tener acceso a vnculos de tablas como un Knowledge Management System. Trabajar con las tablas directamente para hacer actualizaciones Se administran los paquetes de PL/SQL Se realizan tambin anlisis de datos grficos con la herramienta nativa Es posible importar modelos desde archivos xml Gracias a los diferentes tipos de aplicaciones, como correo, repositorios de archivos, aplicaciones de negocios instaladas en el RDBMS, se puede acceder como frontend, desde diversos dispositivos a travs de browsers, incluyendo mviles. Por lo

113

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

que es importante considerar la gran variedad de servicios ofrecidos por este manejador.
Se tienen otros accesos a travs de la herramienta donde se explotan los datos directamente, a travs de un integrador de datos, se puede tener acceso a vnculos de tablas como un Knowledge Management System. Trabajar con las tablas directamente para hacer actualizaciones Se administran los paquetes de PL/SQL Se realizan tambin anlisis de datos grficos con la herramienta nativa Es posible importar modelos desde archivos xml

Gracias a los diferentes tipos de aplicaciones, como correo, repositorios de archivos, aplicaciones de negocios instaladas en el RDBMS, se puede acceder como frontend, desde diversos dispositivos a travs de browsers, incluyendo mviles. Por lo que es importante considerar la gran variedad de servicios ofrecidos por este manejador. Otras utileras de desarrollo Existen otros proveedores del servicio, que por cierto precio ofrecen frontends, o herramientas de desarrollo como por ejemplo: Oracle Interrogador. Para desarrollos de SQL de manera grfica. Oracle Sybase Import Export & Convert Software. Para conversiones de estas bases de datos. Oracle Data Access Componentes. Para interfaces de acceso a programadores.

Front-end y back-end son trminos que se relacionan con el principio y el final de un


proceso. Estos trminos adquieren una relevancia mayor en ciertas reas particulares. En diseo de software el front-end es la parte del software que interacta con el o los usuarios y el back-end es la parte que procesa la entrada desde el front-end. La separacin del sistema en "front ends" y "back ends" es un tipo de abstraccin que ayuda a mantener las diferentes partes del sistema separadas. La idea general es que el front-end sea el responsable de recolectar los datos de entrada del usuario, que pueden ser de muchas y variadas formas, y procesarlas de una manera conforme a la especificacin que el back-end pueda usar. La conexin del front-end y el back-end es un tipo de interfaz. En diseo web (o desarrollo web) hace referencia a la visualizacin del usuario navegante por un lado (front-end), y del administrador del sitio con sus respectivos sistemas por el otro (back-end)..Muchos mtodos conocidos de interactuar con computadoras pueden ser conceptualizados en trminos de "front-end" y "back-end". Por ejemplo, un administrador de archivos grfico como son Windows Explorer o Nautilus puede ser considerado como un front-end para el sistema de archivos de la computadora.

114

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

12. Servicios de DTW y BI


Data Warehouse de Oracle son utilizadas ms frecuentemente utilizando herramientas de inteligencia de negocios de otros proveedores populares. Sin embargo, las herramientas propias de Oracle se hicieron ms comunes para el despliegue, tales como Oracle aument su oferta a travs de adquisiciones. Oferta inicial de Oracle incluye Oracle Discoverer e informes, y estas herramientas quedan disponibles en el servidor de aplicaciones o como independiente de Oracle Business Intelligence Suite Standard Edition. El producto estrella de Oracle en esta rea es de Oracle Business Intelligence Suite Enterprise Edition (EE OBI), originalmente formado por el ex Siebel Analytics, incluyendo respuestas de Oracle, cuadros de mando, Entrega, BI Publisher y Office Plug-ins. Oracle ampli esta oferta en OBI EE Adems la adicin de componentes de Hyperion, que incluyen la Fundacin de Servicios, generacin de informes interactivos, informes SQR de produccin, generacin de informes financieros, SmartView para Office, y anlisis Web. Essbase est disponible como una opcin para proporcionar un cubo OLAP y la funcionalidad, independientemente de la base de datos de almacenamiento de datos. Un subconjunto OBI EE est incluido en Business Intelligence Standard Edition One, junto con la de Oracle Standard Edition One y la base de datos de Oracle Warehouse Builder. Oracle tambin ofrece aplicaciones de inteligencia de negocios que incluyen modelos de datos y presentacin de informes y anlisis con los metadatos de negocio completa previamente. Aplicaciones de negocios incluyen buque insignia de Oracle Aplicaciones de Inteligencia (la ex Siebel Business Analytics aplicaciones) y las aplicaciones de Hyperion Financial Performance Management. 12.1 Oracle Warehouse Builder Oracle Database 11g es una plataforma integral de base de datos para data warehousing e inteligencia de negocios que combina escalabilidad y desempeo lderes del sector, anlisis bien integrado y calidad de datos e integridadtodo en una sola plataforma que se ejecuta en una infraestructura grid de bajo costo y confiable. Oracle Database 11g ofrece la mejor funcionalidad de su clase para data warehouses y data marts, con escalabilidad probada en cientos de terabytes y desempeo lder en el mercado. Oracle Database 11g tambin ofrece una plataforma

115

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

exclusivamente integrada para anlisis. Al incorporar OLAP, Data Mining y capacidades estadsticas directamente en la base de datos, Oracle brinda toda la funcionalidad de motores analticos autnomos con la escalabilidad, seguridad y confiabilidad empresarial de una base de datos Oracle. Debido a que la integracin de datos es un requerimiento principal de cualquier data warehouse, Oracle Database 11g incluye una herramienta ETL lder, OracleWarehouse Builder, que aprovecha las capacidades escalables de Oracle en cuanto a transformacin de datos y acceso a datos heterogneos. Las caractersticas claves de Oracle Database 11g para data warehousing, as como las tecnologas mediante las cuales los sistemas de inteligencia de negocios y data warehouse de Oracle pueden integrar la informacin, realizar consultas rpidas, escalar a volmenes de datos muy grandes y analizar cualquier dato. Para cumplir con estos requerimientos de negocio, Oracle Database 11g incluye una herramienta lder para la integracin de datos, Oracle Warehouse Builder (OWB). Las caractersticas principales de OWB se incluyen como caracterstica de base de datos sin costo, y OWB tiene adicionalmente tres opciones para requerimientos de integracin especficos: Producto Base: El producto base est diseado para permitir que cualquier cliente Oracle cree un data mart o data warehouse con eficiencia, de cualquier tamao o complejidad. Incluye un repositorio de metadatos de mltiples usuarios y listo para empresas, capacidades para el modelado de datos y una amplia variedad de tcnicas de transformacin y extraccin, y el desempeo y la escalabilidad de una arquitectura ELT. Opcin Enterprise ETL: Esta opcin est especficamente diseada para aumentar el desempeo y la productividad, e incluye las siguientes caractersticas: o o o o o Opciones avanzadas para la carga de datos Productividad del desarrollador mediante componentes reutilizables Administracin de dimensiones lentamente cambiantes Anlisis de impacto y linaje completo de datos Soporte de administracin avanzada de configuracin

Opcin de Calidad de Datos: Como parte totalmente integrada del producto, una ventaja muy distinta de las dems herramientas en el mercado, la opcin de calidad de datos ofrece soporte para la proliferacin de datos, reglas de datos (esencialmente, reglas de negocio) y caractersticas del cumplimiento de la informacin.

116

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Conectores: Los conectores ofrecen acceso optimizado para aplicaciones operacionales lderes. Oracle brinda conectores para Oracle e-Business Suite, Peoplesoft Enterprise, Siebel (CRM) y SAP R/3.

Una ventaja clave de OWB es la gran variedad de funcionalidad que ofrece dentro de una sola herramienta. El modelado de datos, el cumplimiento de datos y la calidad de datos son caractersticas centrales que cualquier herramienta para la integracin de datos empresariales debe tener. No obstante, una ventaja estructural clave de Oracle Warehouse Builder es la integracin de los componentes. Oracle Warehouse Builder proporciona todas sus capacidades dentro de un repositorio comn y una interface de usuarios.

117

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Al brindar todas estas capacidades en una sola herramienta sobre un repositorio nico, OWB resuelve un antiguo desafo de la integracin de datos. Muchas soluciones de integracin brindan herramientas separadas para estas capacidades diferentes. No obstante, resulta terriblemente ineficiente realizar el modelado de datos en una sola herramienta, y luego el mapeo de ETL en otra herramienta, y luego la proliferacin de datos incluso en otra herramienta. OWB brinda un repositorio de metadatos y una UI para todo el proceso de integracin. Oracle Warehouse Builder utiliza una arquitectura extract-load-transform (ELT).En lugar de ofrecer un motor externo para la transformacin de datos, OWB realiza toda su transformacin dentro de una base de datos Oracle aprovechando la escalabilidad y el desempeo de la plataforma de base de datos. 12.2 Integracin de HYPERION con la plataforma BI de ORACLE Es una suite de productos BI empresariales que proporcionan un completo nivel de anlisis y reportes. Se caracteriza por tener alta escalabilidad y arquitectura moderna, Oracle BI EE Plus provee inteligencia y anlisis de datos que abarcan recursos empresariales y aplicaciones poderosas.

118

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Oracle BI EE Plus se apoya en productos de reporte Oracle Hyperion para integrar reportes con aplicaciones Hyperion financial.

Completa funcionalidad BI para construir una infraestructura nica. - Incluye Dashboards interactivos, completas consultas Ad-hoc y anlisis, inteligencia proactiva y alertas, reportes empresariales y financieros, presentaciones y OLAP, alto volumen de produccin de reportes, inteligencia predictiva en tiempo real, anlisis desconectado, e integracin con Microsoft Office. Profunda eficacia para todos, en cualquier lugar.- Todos los niveles de la organizacin pueden ver la informacin optimizada de acuerdo a su rol. Modelo de negocio nico.- Construccin sobre un modelo de informacin empresarial que una metadatos de herramientas Oracle BI y aplicaciones analticas para el ms bajo CTP (Total Cost of Ownership o TCO). Infraestructura BI Hot-Pluggable.- Integracin con cualquier recurso de dato para Extraccin, Transformacin y Carga (ETL), manejo de aplicaciones de Negocio, Servidor de aplicacin, Infraestructura de seguridad Portal, Herramientas analticas, otros Front-end, y base de datos incluyendo IBM BD/2, Tera data,

119

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Microsoft SQL Server; SAP Business Information Warehouse (BW), Microsoft Analysis Services; archivos planos; datos XML ; y datos sin estructura. OBIEE Plus comprende una ponderosa tecnologa de servidor BI y herramientas BI, referidas como (OBIEE) y complementa estas con herramientas especiales de reporte seguro con la adquisicin de Hyperion (Plus). OBIEE Plus consiste de varios componentes independientes: Oracle BI Server: Empresa modelo de negocio comn y la capa de abstraccin. Oracle BI Respuestas: Ad-hoc de consulta y presentacin de informes. Oracle BI Interactive Dashboards: Cuadros de mando interactivos de alta para acceder a la inteligencia empresarial y aplicaciones de contenido. Oracle BI Entrega: Actividad comercial proactiva de monitoreo y alerta. Oracle BI Disconnected Analytics: Anlisis funcionalidad completa para los profesionales mviles. Oracle BI Publisher (anteriormente conocido como XML Publisher): Presentacin de informes de empresa y la distribucin de "pixel-perfect", informa. Oracle BI Briefing Libros: Instantneas de las pginas de panel para ver y compartir en modo fuera de lnea. Hyperion Interactive Reporting: Informes ad-hoc y altamente interactivo intuitivo. Hyperion SQR Production Reporting: El alto volumen, con el formato de generacin de informes de calidad de presentacin. Hyperion Financial Reporting: Formato y presentacin de informes de gestin de calidad de datos financieros. Hyperion Web Anlisis: Basado en la Web de procesamiento analtico en lnea (OLAP) anlisis, presentacin y elaboracin de informes.

12.2.1 Oracle BI Server El servidor Oracle BI tiene alta escalabilidad, alta eficiencia en consultas, reportes y anlisis, a su vez habilita que otros componentes de la Suite Oracle BI como Answers, Dashboards, Data mining, reportes y aplicaciones analticas. 12.2.2 Oracle BI Presentation Service Genera una interfaz de usuario en Oracle Answers y Interactive Dashboards que nosotros usamos para visualizar datos desde el Oracle BI Server. Esta interaccin con Oracle BI Server es como un cliente ODBC y provee un nmero importante de servicios: Genera la interfaz los Answers y Dashboard de la interfaz de usuario

120

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Es responsable de la seleccin de usuarios Las especificaciones de los registros de los usuarios muestra como los datos pueden ser representados e interactuar con el motor de creacin de grficas. El pivote y datos agregados despus al Oracle BI Server genera un conjunto de resultados. Proporciona seguridad de usuarios y grupos para todos los Dashboards y objetos de Dashboards (Reportes)

12.2.3 Oracle Business Intellingence Answers Oracle BI Answers proporciona verdaderas habilidades Ad hoc al usuario final en una arquitectura web. Los usuarios interactan con una vista lgica de informacin completamente separada de la compleja estructura de datos, mientras simultneamente previene excesivas consultas y fcilmente se pueden realizar grficas, tablas pivotes, reportes y atractivos Dashboard, todos estos con una completa interaccin que pueden ser guardados, compartidos, modificados de acuerdo al usuario en su Portal empresarial.

12.2.4 Oracle Business Interactive Dashboards

121

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Oracle BI proporciona Dashboard interactivos que proporciona al usuario el conocimiento de una manera intuitiva, acceso a la informacin de manera interactiva procesndola y personalizando dinmicamente basado sobre roles individuales e identidad. En el ambiente de Oracle BI Dashboards el usuario final puede trabajar con reportes, apuntes, graficas, tablas, tablas pivotes, grficos y tickets en una arquitectura Web. El usuario tiene la completa capacidad de Drilling, navegar, modificar e interactuar con estos resultados. Oracle BI Dashboards puede agregar el contenido de varios recursos como son el Internet, archivos compartidos y depsitos de documentos.

12.2.5 Oracle Business Intellingence Publisher Oracle BI Publisher (formalmente conocido como XML Publisher), ofrece eficientes soluciones de reportes escalables disponibles para ambientes distribuidos. Este proporciona una arquitectura central para generar y entregar informacin a empleados, clientes y socios del negocio, ambos seguros y en un buen formato. | En Oracle BI Publisher report los formatos pueden ser diseados usando Microsoft Word o Adobe Acrobat. Permite traer datos de mltiples recursos de datos en un solo documento externo. Los reportes pueden ser repartidos por impresin, email, fax, o publicado dentro del portal. En Oracle BI Publisher puedes sealar un reporte independiente o integrado en el Suite.

122

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

12.2.6 Oracle Business Intellingence Briefing Books El contenido de las paginas Oracle BI Dashboard pueden ser salvadas en un Briefing Book, visualizable para cualquiera con un Oracle BI Briefing Book reader.A Briefing Book es un reporte que captura el contenido de un Oracle BI Interactive Dashboard. Esto permite que el contenido sea visualizado por cualquiera con un software Briefing Book reader. El Briefing Book proporciona una manera de crear Snapshots de paginas Dashboard, vistas offline. Multipaginas en el Briefing Books tiene control de pginas y estas son adecuadas para la presentacin de informacin. Los Briefing Books proporcionan la manera de archivar la informacin en un Dashboard, o salvarla localmente sobre una PC de escritorio y actualizar cuando el usuario lo decida. 12.2.7 Oracle Business Intellingence Delivers Oracle BI Delivers es una solucin que permite actividad de monitorear Informacin del negocio; identificando patrones que determinan cuando los problemas especficos estn por ocurrir; filtrado de datos basados sobre datos y reglas basadas en el tiempo; alerta a los usuarios por mltiples canales como e-mail, Dashboard, dispositivos mviles incluyendo mensaje de texto y wireless de los telfonos; y permite a los usuarios tomar una accin en responsabilidad de las alertas que ha

123

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

recibido. Oracle BI Delivers incluye un completo Web basado en el servicio de creacin de alertas y suscripciones al portal.

12.2.8 Oracle BI Office PLUG-IN Integra informacin de BI de Oracle BI Server, Answers, Dashboard interactivos y BI Publisher con el ambiente de Microsoft Office, embebiendo inmediatamente datos corporativos en documentos Microsoft Word, Excel y Power point. Los usuarios pueden compartir estos documentos con otros sobre la web corporativa para colaborar en la toma de decisiones.OBIEEs Microsoft Office Plug-in permite a los usuarios agregar informacin de BI en los documentos Office, salvando lo datos, compartiendo informacin con los compaeros de trabajo.

12.2.9 Oracle Business Intellingence Disconnected Analytics Oracle BI Disconnected Analytics proporciona una completa funcionalidad analtica para el profesional que lo requiera, habilitando completos Dashboard interactivos y anlisis Ad hoc mientras esta desconectado de la red corporativa.

124

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Proporcionando la misma interfaz intuitiva para usuarios que estn trabajando de modo conectado o desconectado. Oracle BI Disconnected Analytics permite una sincronizacin completa de datos con los recursos empresariales. Los datos son personalizados por cada usuario, manteniendo todos los roles basados en la seguridad y visibilidad, y esto es comprimido durante la sincronizacin.

12.2.10 Oracle Analytics Adapters Oracle BI Server tiene una extensa y abierta capa de conectividad con un conjunto de adaptadores que son responsables de la comunicacin con los recursos de los servidores de datos. Los adaptadores individuales tienen que ser construidos para comunicarse con los siguientes sistemas: Sistemas de Base de Datos relacional: Oracle, UDB DB2, OS390 DB2, AS400DB2, SQL Server, Teradata, Red Brick, Informix, Sybase y Microsoft SQLServer. Varios recursos de Host Data: VSAM, IDMS, IMS y CICS. Aplicaciones empresariales: Oracle, Peoplesoft Enterprise, JD Edwards Enterprise One, Oracle e-Business Suite, and SAP R/3 y mySAP. Recursos OLAP: Oracle Database OLAP Services, Microsoft Analysis Services Cubes, Hyperion Essbase y SAP BW Infocubes. Recursos de datos XML: Hojas de clculo Microsoft Excel y Servicios Web.

12.2.11

Oracle Business Intellingence Administrator

Durante el sistema de instalacin, el Administrador Oracle BI especifico el contenido los recursos de la tabla fsica usando una herramienta grafica de administracin. El administrador usa el contenido de esta tabla fsica para mezclar y coincidir recursos fsicos de la tabla en respuesta a los requerimientos lgicos de datos. El Oracle BI Administrator tiene herramientas como Asistentes, utilidades y elementos de diseo de interfaz.

125

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

12.2.12

Hyperion Financial Reporting

Su principal propsito es la solucin del reporte financiero y anlisis que genera ya con formato y calidad de libro financiero y reportes administrativos que obedezca a la regulacin y requerimientos externos

126

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

12.2.13

Hyperion Web Analysis

Permite realizar anlisis interactivos multidimensionales basados en Web, presentaciones y reportes empresariales; proporcionando a ejecutivos, usuarios del Negocio y analistas. Permite el acceso a datos de recursos empresariales como Hyperion Financial Management, Hyperion Planning, Hyperion Essbase, SAP BW y SQL Server Analysis Services. Analysis soporta drill-through a los recursos relacionales.

127

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

12.2.14 Hyperion Interactive Reporting Es modulo creado para ejecutivos, usuarios del negocio y analistas que realizan consultas y anlisis. En una interfaz intuitiva donde los usuarios fcilmente monitorean y navegan en la informacin relevante. Los usuarios pueden ver los datos de los recursos y crear grficas, pivotes, reportes y Dashboards.

128

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

12.2.15 Hyperion SQR Production Reporting La caracterstica de este mdulo es un ambiente de programacin SQR para generar una gran volumen y calidad en los formatos de reportes.

129

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

13. Mostrar un Ejemplo prctico aplicacin (frontend vs backend)

de

una

Oracle interacta con un sin nmero de aplicaciones que accedan a las bases de datos Oracle para extraer informacin y compartir recursos. Las aplicaciones frontend comnmente son desarrolladas en diversos lenguajes de programacin como son: - Microsoft .NET Java PHP

Realizar la conexin a una base de datos Oracle desde cualquiera de estos lenguajes de programacin no implica mayor problema, se necesita nicamente del driver para conexin o el cliente de Oracle soportado para la versin de la base de datos donde se requiere hacer la conexin. Regularmente los ambientes integrados de desarrollo de software como por ejemplo NetBeans para Java permiten agregar el driver como una clase de Java a un proyecto con un par de clicks. Adicionalmente existen varias herramientas de diferentes vendors para acceder a una base de datos Oracle desde muchas aplicaciones cliente, ya sea para trabajar como desarrollador como administrador, entre las ms destacadas encontramos a SQL Developer o Toad. Estas herramientas facilitan el trabajo ya que proporcionan un ambiente grafico desde el cual es muy fcil manipular objetos, as como crear y depurar stored procedures y funciones evitando lo tedioso de un ambiente Unix.

SQL Developer en la compilacin de un Store Procedure 130

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

De lado del motor de base de datos Oracle provee herramientas para una fcil manipulacin de los objetos de base de datos, as como para realizar tareas administrativas como es el caso del Oracle Enterprise Manager que viene incluido en cualquier edicin de la base de datos. Esta es una interface web que se conecta directamente a la base de datos y permite realizar tareas de operacin diaria y mantenimiento.

Oracle Enterprise Manager Un factor importante a considerar es que Oracle no depende de la consola de administracin (Oracle Enterprise Manager), esta solo es un plus para el fcil manejo de las instancias de base de datos. De hecho una de las fortalezas de Oracle en ambientes Unix es la facilidad de administracin desde lnea de comandos con la ayuda nicamente de una terminal telnet. El caso de la administracin desde una terminal telnet es comnmente usado ya que en caso de desastres no se requiere ms que la terminal telnet para levantar todos los servicios de base de datos. Ejemplo Prctico: A continuacin de muestra el caso de una base de datos en Oracle como el ncleo de un sistema de puntos de venta. El sistema atiende aproximadamente a 2000 puntos de venta en varias zonas del pas, la aplicacin final de usuario consiste en un par de mdulos, el principal se encarga de autenticar a los usuarios del sistema y realizar un 131

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

abono en la cuenta de dicho usuario. Existe otro modulo de administracin en el cual se llevan a cabo ajustes a los usuarios y un sub-modulo de monitoreo. Finalmente se realiza un proceso de extraccin por las madrugadas para que los datos de ciertas tablas puedan ser manipulados por en un DDS.

Modulo de Ventas

Modulo de Administraci n y Monitoreo

Base de Datos

Extracci n de Datos

Con XSLT, los datos pueden representarse en XML, sin informacin de presentacin ni ninguna dependencia a la tecnologa utilizada por el cliente. Con ello, se facilita la reutilizacin de los datos y lgica de negocio y se aslan los aspectos de presentacin en las plantillas de transformacin. Otra de las herramientas utilizadas para la parte de la vista fue Cocoon (cocoon.apache.org). Cocoon es un framework para el desarrollo de aplicaciones Web modulares que asla los distintos aspectos involucrados en la construccin y presentacin de las vistas. Para ello, hace un intenso uso de las tecnologas basadas en XML. Posteriormente se busc: 1. Desarrollar un protocolo de comunicacin directa entre Cocoon y procedimientos PL/SQL. 2. Implementar un pool de conexiones integrado en Cocoon que permita, de forma eficiente, cambiar el usuario de la conexin de un usuario genrico asociado al pool, al cliente de la peticin. 3. Proporcionar una implementacin para validar los valores de los campos de un formulario (CForms) contra procedimientos PL/SQL de la base de datos.

132

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

4. Crear un sistema para guardar los valores de documentos XML, especialmente construidos (tpicamente como resultado de un formulario CForms) para ser tratados por procedimientos PL/SQL. 13.2 Implementacin Desde el sitemap de Cocoon se configura una respuesta para la peticin saluda.html con la siguiente entrada:
<map:match pattern="saluda.html"> <map:generate src="ora:plsql://POOL/ejemplo.proc?p1=COURE"/> <map:transform src="xslt/plantilla.xsl" type="xslt"/> <map:serialize type="html"/> </map:match>

El sitemap indica que la respuesta se construir a partir del contenido (documento XML) de la URL: ora:plsql://POOL/ejemplo.proc?p1=COURE Procesado por la hoja de estilo xslt/plantilla.xsl Veamos brevemente que sucede cuando Cocoon accede a la URL para obtener el documento inicial. Primero analiza el nombre de protocolo para determinar qu forma de acceso utilizar. En el ejemplo, se trata del protocolo ora:plsql que previamente ha sido registrado para usar las clases del pseudoprotocolo PL/SQL. De este modo, la URL se pasa al pseudoprocolo para acceder a la fuente de XML. El procesado de la URL extrae sus distintos componentes: POOL es el nombre del pool de conexiones a utilizar ejemplo es el nombre del package PL/SQL proc es el nombre del procedimiento p1 es un parmetro con valor CUORE

Por tanto, el resultado es la invocacin al procedimiento ejemplo.proc con parmetro p1. La implementacin de este procedimiento podra ser la que sigue:
PACKAGE BODY ejemplo IS PROCEDURE proc (p1 IN VARCHAR2) IS BEGIN xmp.p( <SALIDA> ); xmp.p( LOWER (p1) );

133

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

xmp.p( </SALIDA> ); END proc; END ejemplo; El documento XML resultado del procedimiento es el acumulado en las sucesivas invocaciones al procedimiento xmp.p. En nuestro caso sera: <?xml version="1.0" encoding="iso-8859-1"?> <SALIDA> cuore </SALIDA>

Este documento sera posteriormente procesado siguiendo los mecanismos estndares de Cocoon. Configuracin del Pool de Conexiones Para acceder a la base de datos es necesario definir previamente uno o varios pools de conexiones, a partir de los cuales se obtendrn las conexiones. La configuracin se lleva a cabo en el fichero cocoon.xconf, y es procesada por una clase del pseudoprocolo que es la que crea el pool de conexiones.
<component-instance class="es.uib.pseudoprotocol.excalibur.OracleSourceFactory" logger="core.sources.ora" name="ora"> <driver ConnectionString="jdbc:oracle:thin:@172.1.1.2:1539:SID" PoolName="poolname" User="usuario" Password="password" PoolType="CACHE_POOL" > <configuration MaxConn = "7" MinConn = "3" Wait = "FALSE" TimeoutConn = "2" IncrementConn = "1" /> </driver> </component-instance>

En la configuracin se especifican: - la cadena de conexin utilizada por el JDBC - el nombre dado al pool - el usuario y password para la conexin - el tipo de pool - el nmero mximo y mnimo de conexiones - si esperar o no una para una conexin una vez sobrepasado el mximo

134

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

tiempo mximo de inactividad antes de cerrar una conexin nmero de conexiones a crear simultneamente

Los tipos de pool existentes son: JDBC_POOL utiliza la API estndar de JDBC OCI_POOL utiliza la API especfica de los driver OCI. Permite, entre otras funcionalidades, cambiar el usuario de las conexiones una vez obtenidas del pool

CACHE_POOL utiliza una implementacin de Oracle de pool de conexiones. 13.4 Solucin Las aplicaciones Web, generalmente hacen uso de un nico usuario para el acceso a base de datos. La existencia de un nico usuario, compartido por todos los clientes permite disponer de las ventajas de un pool nico de conexiones y facilita la gestin del servidor de aplicaciones.El sistema asocia los usuarios y perfiles a los objetos de la base de datos basndose en una definicin de las unidades funcionalidades del sistema (mdulos de aplicaciones Web, Forms o Reports) y de los permisos que stas requieren. Por ese motivo, es necesario que los accesos a la base de datos desde la aplicacin Web se realizasen con usuarios asociados al cliente y no con una conexin comn. Esto se soluciona con la implementacin OCI (Oracle Call Interface) de los drivers de Oracle. Esta implementacin permite la re-autenticacin sobre una conexin creada con un coste sustancialmente inferior al de crear una conexin nueva. La arquitectura resultante, por tanto, fue mantener un pool de conexiones con un usuario genrico y, al obtener una conexin del pool, realizar una re-autenticacin con el usuario asociado a la peticin. El resultado final fue el acceso a los beneficios en trminos de seguridad proporcionados por la infraestructura elaborada para las aplicaciones Forms, conservando el rendimiento y facilidad de gestin tpico de los pools de conexiones de las aplicaciones Web. Tipos de URLs La forma ms bsica de URL es la que invoca a un procedimiento sin parmetros ni autenticacin: ora:plsql://pool/paquete.procedimento

135

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

ora:plsql es el nombre dado al protocolo creado pool es el nombre con el que se ha declarado el pool en el fichero cocoon.xconf paquete es el nombre del package PLSQL procedimiento es el nombre del procedure

Autenticacin. En el caso, ms habitual, de necesitar acceder a conexiones con usuario y password se utiliza:

ora:plsql://usuario:password@pool/paquete.procedimento
Parmetros de entrada

ora:plsql://user:password@pool/paquete.procedimento? IN:arg1=val1&INarg2=val2 Opcionalmente, puede simplificarse la URL anterior eliminando IN:, ya que por defecto, los parmetros son de entrada. ora:plsql://pool/paquete.procedimento?arg1=val1&arg2=val2
Parmetros de entrada y salida. Si un parmetro es de entrada/salida o salida, sustituimos IN por INOUT o OUT:

ora:plsql://pool/paquete.procedimento?IN:arg1=val1&INOUT:arg2=val
Parmetros mltiples. Hay dos maneras de pasar parmetros mltiples. Podemos pasar el parmetro repetido:

ora:plsql://pool/paquete.procedimento?arg1=val1&arg1=val2 O podemos utilizar otra notacin ms compacta: ora:plsql://pool/paquete.procedimento?arg1=val1~val2


Variables de entorno. La notacin con URL tambin permite definir variables de entorno activas durante la ejecucin del procedimiento:

ora:plsql://pool/paquete.procedimento?arg1=val1&#en1=val1&#en2=val2 Extensiones al CForms

136

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

El mecanismo bsico de validaciones en formularios posee la funcionalidad de acceder a la lgica del negocio mediante cdigo PL/SQL. Con la intencin de evitar la duplicacin de cdigo, se analizaron distintas estrategias para usar este cdigo directamente en las aplicaciones Web. Finalmente, la opcin que se consider ms adecuada, fue la de extender el CForms de Cocoon para poder delegar la validacin de uno o varios campos a un procedimiento PL/SQL.
<fd:plsql Procedure="ora:plsql://POOL/Paquete.Procedimiento" WidgetError="path al widget que representar el error"> <fd:parametre Nom="parametro1" WidgetPath="path a un widget con el valor"/> <fd:parametre Nom="parametro2" Valor="Valor constante"/> </fd:plsql>

El cdigo anterior instruye al gestor de formularios de Cocoon para que invoque a un determinado procedimiento para realizar la validacin, con los dos parmetros especificados: uno con el valor recogido en uno de los campos y el segundo con un valor constante. En caso de que la validacin produzca un error el formulario es advertido de la situacin y se le proporciona el mensaje descriptivo devuelto por el procedimiento PL/SQL. 13. 7 Resumen De manera muy general este ejemplo prctico de una aplicacin web pretende diferenciar el concepto comn de Frontend en el mbito de programacin web (interfaz con el usuario, paginas html) frente al concepto de Frontend en el mbito de las bases de datos (En este caso el lenguaje procedural PL/SQL). Es importante recalcar que la funcin del backend es realizada en ambos escenarios por el RDBMS, cierta interaccin entre el Frontend (plsql) y el Backend se puede apreciar en las decisiones de conexin que se muestran.

14. Explicar cmo est compuesto su lenguaje de programacin nativo con ejemplos prcticos, en el caso de SQL, listar sus instrucciones con extensiones y agregados

137

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

SQL y PL/SQL son fundamentales para el desarrollo de cualquier aplicacin Oracle. SQL es el lenguaje usado para realizar consultas y para manipular bases de datos. PL/SQL es usado para crear y llamar Triggers, StoreProcedure, Funciones y Paquetes. Muchas aplicaciones y otras tecnologas que interactan con una base de datos Oracle utilizan estos dos recursos que provee Oracle para acceder y manipular las bases de datos. PL/SQL Lenguaje de programacin procedural de Oracle, es una extensin del SQL usado para las bases de datos Oracle. Es portable y de alto desempeo en el procesamiento de transacciones. PL/SQL combina una poderosa manipulacin de datos de SQL con las bondades de un lenguaje de programacin procedural. Fcilmente permite la solucin de un problema con la ayuda de SQL ahorrando el desarrollo de una nueva aplicacin. Como cualquier lenguaje de programacin nos da la posibilidad de declarar constantes y variables, controlar el flujo del programa, definir subprogramas, as como atrapar errores en tiempo de compilacin. El sistema de PL/SQL es un motor de compilacin y ejecucin en tiempo real, que procesa unidades de PL/SQL. El motor puede ser instalado en la base de datos en una herramienta de desarrollo, como por ejemplo Oracle Forms. A continuacin se muestra la estructura de PL/SQL, como se puede observar se aceptan de entradas unidades de PL/SQL y se envan las salidas SQL a la base de datos. Cuando una unidad de PL/SQL es recibida y no contiene instrucciones SQL es procesada localmente por el motor de PL/SQL sin necesidad de ir a la base de datos, lo que hace muy eficientes los programas.

PL/SQL Engine 138

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Las unidades de PL/SQL pueden ser cualquiera de las siguientes: - PL/SQL Bloque Annimo - Funciones - Libreras - Paquetes - Cuerpo de Paquetes (Package body) - Procedimientos - Triggers - Tipos
Las declaraciones de SQL estn divididas en las siguientes categoras:

14.1.1 Data Definition Language (DDL) DDL define, el cambio estructural y esquema de creacin de objetos. El lenguaje de definicin de objetos permite: Crear y modificar la estructura de la base de datos. La mayora de las declaraciones DDL empiezan con las palabras llave: CREATE, ALTER, DROP. Borran todos los datos en un esquema de objetos sin eliminar la estructura de stos objetos (TRUNCATE). Otorgan y revocan privilegios y roles (GRANT, REVOKE). Activan y desactivan las opciones de auditora (AUDIT, NOAUDIT). Agregan un comentario al diccionario de datos (COMMENT). DDL permite alterar los atributos de un objeto sin alterar las aplicaciones que acceden al objeto.
Ejemplo:La creacin de una tabla de plantas y usando DML insertar dos filas en el archivo. Luego se usa DDL para alterar la estructura de la tabla, otorgar y revocar privilegios a un usuario y finalmente eliminar la tabla:
CREATE TABLE plants ( plant_id NUMBER PRIMARY KEY, common_name VARCHAR2(15) ); INSERT INTO plants VALUES (1, 'African Violet'); # DML statement INSERT INTO plants VALUES (2, 'Amaryllis'); # DML statement ALTER TABLE plants ADD ( latin_name VARCHAR2(40) ); GRANT SELECT ON plants TO scott; REVOKE SELECT ON plants FROM scott; DROP TABLE plants;

Un COMMIT implcito ocurre antes de que la base ejecute la declaracin DDL y el COMMIT o ROLLBACK ocurren despus. En el ejemplo, los INSERT son seguidos por un

139

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

ALTER TABLE, por lo que la base de datos realiza COMMIT a las declaraciones INSERT. Si la declaracin ALTER tiene xito, entonces la base realiza el COMMIT a la declaracin, de lo contrario realiza un ROLLBACK; sin embargo, en ambos casos los INSERT se habrn ejecutado con su COMMIT.

14.1.2 Data Manipulation Language (DML)


ste lenguaje manipula los datos existentes en los esquemas de objetos. Permiten cuestionar o cambiar el contenido. Las declaraciones ms usadas permiten: Buscar datos de una o ms tablas o vistas (SELECT). Agregar nuevas filas o datos a la tabla o vista (INSERT) especificando una lista de valores por columnas usando un subquery para seleccionar y manipular los datos existentes. Cambiar el valor de las columnas en las filas existentes dentro de una tabla o vista (UPDATE) Actualizar o insertar filas de forma condicional en una tabla o vista (MERGE) Remover filar de una tabla o vista (DELETE) Ver el plan de ejecucin de una declaracin SQL (EXPLAIN PLAN) Bloquear la tabla o vista, limitando temporalmente el acceso por otros usuarios (LOCK TABLE)
Ejemplo: estas sentencias buscan empleados en una tabla, inserta una fila en el archivo, actualiza sta fila y luego la elimina:
SELECT INSERT VALUES UPDATE DELETE * FROM employees; INTO employees (employee_id, last_name, email, job_id, hire_date, salary) (1234, 'Mascis', 'JMASCIS', 'IT_PROG', '14-FEB-2008', 9000); employees SET salary=9100 WHERE employee_id=1234; FROM employees WHERE employee_id=1234;

Una coleccin de sentencias DML que forman una unidad lgica de trabajo es llamada TRANSACCIN. A diferencia de las sentencias DDL, las sentencias DML no implican el COMMIT a la transaccin actual.

14.1.3 Sentencias de Control de transaccin:


Las sentencias de control de transaccin administran los cambios hechos por las sentencias DML en las transacciones. Estas sentencias permiten: Hacer cambios en una transaccin de forma permanente (COMMIT) Deshacer los cambios en una transaccin, desde que sta inici (ROLLBACK) o desde un punto de restauracin (ROLLBACK TO SAVEPOINT) Establecer un punto al que sea posible retornar (SAVEPOINT) Establecer propiedades para una transaccin (SET TRANSACTION)

140

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

Especificar si la integridad de una restriccin aplazable es validada siguiendo cada sentencia DML o cuando la transaccin es ejecutada de forma definitiva (SET CONSTRAINT).
El siguiente ejemplo inicia una transaccin llamada Update salaries. Crea un punto de recuperacin, actualiza el salario a un empleado, y luego regresa la transaccin al punto de recuperacin: SET TRANSACTION NAME 'Update salaries'; SAVEPOINT before_salary_update; UPDATE employees SET salary=9100 employee_id=1234 # DML ROLLBACK TO SAVEPOINT before_salary_update; UPDATE employees SET salary=9200 employee_id=1234 # DML

WHERE WHERE

14.1.4 Sentencias de control de sesin:


Estas sentencias administran dinmicamente las propiedades de la sesin de un usuario. Una sesin es una entidad lgica en la instancia de memoria de una base de datos, que representa el estado del acceso de un usuario a la base. Una sesin dura desde el tiempo desde que el usuario es autenticado por la base de datos, hasta que ste se desconecta o sale de la aplicacin de la base de datos. Las sentencias de control de sesin permiten: Alterar la sesin actual, ejecutando una funcin especializada como habilitar o deshabilitar el rastreo de SQL (ALTER SESSION) Habilitar o deshabilitar roles, que son grupos de privilegios (SET ROLE)
El siguiente ejemplo enciende el rastreo SQL para la sesin y luego habilita todos los roles otorgados en la sesin actual, menos al dw_manager: SET TRANSACTION NAME 'Update salaries'; SAVEPOINT before_salary_update; UPDATE employees SET salary=9100 employee_id=1234 # DML ROLLBACK TO SAVEPOINT before_salary_update; UPDATE employees SET salary=9200 employee_id=1234 # DML

WHERE WHERE

14.1.5 Sentencias de control de sistema:


Estas sentencias cambian las propiedades de la instancia de la base de datos. La nica sentencia de control de sistema es ALTER SYSTEM. Permite cambiar los ajustes como el nmero mnimo de servidores compartidos, terminar una sesin y ejecutar otras tareas de nivel de sistema. La sentencia no implica un COMMIT a la transaccin actual.
ALTER SYSTEM SWITCH LOGFILE; ALTER SYSTEM KILL SESSION '39, 23';

141

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

14.1.6 Sentencias SQL embebidas: Estas sentencias incluyen DDL, DML y sentencias de control de transacciones con un lenguaje de programacin procedural. Son usadas con los pre-compiladores de Oracle. Un objetivo es usar lenguaje procedural API como la conectividad abierta de base de datos (ODBC Open Database Connectivity) o conectividad Java (JDBC). sas sentencias permiten: Definir, alojar y liberar cursores (DECLARE CURSOR, OPEN, CLOSE) Especificar una base de datos y conectarla (DECLARE DATABASE, CONNECT) Asignar nombres de variables (DECLARE STATEMENT) Inicializar descriptores (DESCRIBE) Especificar cmo las condiciones de error y alerta son manejadas (WHENEVER) Analizar y correr sentencias SQL (PREPARE, EXECUTE, EXECUTE IMMEDIATE) Obtener datos de la base (FETCH)

14.2 Uso de Optimizador Para ejecutar una sentencia DML, Oracle debe ejecutar muchos pasos. Cada paso obtiene filas de datos fsicos desde la base o los prepara para la sentencia. Existen muchas formas diferentes de procesar una sentencia DML. Por ejemplo, la orden en la que la tabla es accedida puede variar. El optimizador genera planes de ejecucin describiendo los mtodos posibles; ste determina cul plan de ejecucin es ms eficiente considerando diferentes fuentes de informacin, incluyendo las condiciones del query, las rutas de acceso disponible y las estadsticas del sistema. El optimizador ejecuta las siguientes operaciones: Evaluacin de expresiones y condiciones Inspeccin de constantes de integridad para aprender ms de los datos y optimizar basados en stos meta-datos. Sentencias de transformacin Eleccin de metas de optimizacin Eleccin de metas de rutas de acceso Eleccin de rdenes de unin (joins) El optimizador genera todos los posibles caminos de procesar un query y asigna un costo a cada paso en el plan de ejecucin generado. El plan con el menor costo es elegido para ejecutarse. 14.3 Server-Side Programming: PL/SQL y Java En un lenguaje no procedural como SQL, el conjunto de datos a ser operados, son especificados, pero no las operaciones a ser ejecutadas o la manera en la que son descartadas. En un programa de lenguaje procedural, la mayora de las sentencias de ejecucin dependen de sentencias previas o subsecuentes y de las estructuras de control. Para una ilustracin de la diferencia entre lenguajes procedurales y no procedurales,

142

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

considerar la siguiente sentencia SQL: SELECT last_name, salary FROM employees;

employee_id,

department_id,

La sentencia anterior solicita datos, pero no aplica lgica a los datos. Suponga que se desea que una aplicacin determine qu empleado en la base merece un aumento basado en salario y el rendimiento del departamento. Una condicin necesaria de un aumento es que el empleado no haya recibido ms de tres aumentos en los ltimos cinco aos. Si el aumento aplica, entonces la aplicacin debe ajustar el salario y enviar un mail al gerente. El problema es cmo las aplicaciones procedurales requieren condiciones lgicas y flujo de control que pueden usar SQL. Las propuestas del desarrollobsico son: Usar programacin del lado del cliente para incrustar sentencias SQL en aplicaciones escritas en lenguaje procedural como C, C++ o java. Es posible colocar sentencias SQL en cdigo fuente y someterlas a un pre-compilador o traductor de Java antes de la compilacin. Alternativamente, puede eliminar la pre-compilacin y usar un API como JDBC u OCI (Oracle Call Interface) para permitir la aplicacin interactuar con la base de datos. Usar programacin del lado del servidor para desarrollar lgica de datos que reside en la base. Una aplicacin puede invocar explcitamente sub-programas almacenados (procedimientos y funciones), escritos en PL/SQL o Java. Es posible crear un trigger, que es conocido como la unidad de programa que es almacenada en la base de datos e invocada en respuesta a un evento especfico. El principal beneficio de la programacin del lado de servidores que la funcionalidad construida dentro de la base de datos puede ser utilizada en cualquier lado. La base y no la aplicacin, determina la mejor forma de ejecutar tareas en un sistema operativo dado. Adems, los subprogramas incremente la escalabilidad centralizando el procesamiento de la aplicacin en el servidor, permitiendo as a los clientes a reutilizar cdigo. Las llamadas a los subprogramas son rpidas y eficientes, por lo que una sola llamada, puede iniciar un subprograma intensivo almacenado, reduciendo el trfico de red. Es posible usar los siguientes lenguajes para almacenar datos lgicos en Oracle: PL/SQL: es una extensin procedural de SQL. Integrado con la base de datos, suporta todas las sentencias SQL de Oracle, funciones y tipos de datos. Las aplicaciones escritas en las APIs pueden invocar los subprogramas PL/SQL almacenados y enviar bloques de cdigo a la base para su ejecucin. Java: Oracle provee soporte para desarrollar, almacenar y utilizar aplicaciones Java. Los subprogramas almacenados, son relacionados con SQL usando un modelo de ejecucin similar a PL/SQL.

La unidad bsica de un programa PL/SQL es el bloque el cual se encarga de agrupar varias sentencias y delimitar claramente dichas sentencias. Un bloque est definido por las palabras clave DECLARE, BEGIN, EXCEPTION y END, estas palabras claves

143

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

dividen el bloque en: rea de declaraciones, rea ejecutable y rea de excepciones. El ejemplo siguiente muestra ms claramente la composicin de un bloque.
DECLARE -- rea de declaraciones (opcional) -- Declarations of local types, variables, & subprograms BEGIN -- rea Ejecutable -- Statements (which can use items declared in declarative part) [EXCEPTION rea de Excepciones y control de errores (opcional) -- Exception handlers for exceptions (errors) raised in executable part] END;

Este tipo de bloques pueden ser ejecutados desde una herramienta interactiva como SQL*Plus Enterprise Manager, puede se embebido y precompilado en Oracle o un programa OCI. En el bloque de declaraciones podemos realizar tal cual como cualquier lenguaje de programacin la declaracin de variables y constantes, as como especificar valores iniciales. En la declaracin podemos hacer uso de todos los tipos de datos disponibles en la base de datos y tipos de datos adicionales que provee PL/SQL. Ejemplo de declaraciones en un bloque:
DECLARE null_string address zip_code name valid credit_limit BEGIN NULL; END; VARCHAR2(80) := TO_CHAR(''); VARCHAR2(80); VARCHAR2(80) := SUBSTR(address, 25, 0); VARCHAR2(80); BOOLEAN := (name != ''); CONSTANT REAL := 5000.00;

Un subprograma PL/SQL es un bloque que puede ser repetido indefinidas veces. Si el subprograma recibe parmetros entonces cada vez que se invoque tendr un resultado diferente, en PL/SQL existen dos tipos de subprogramas: procedimientos y funciones. Una funcin regresa un resultado especfico y un procedimiento realiza una tarea especfica. A diferencia de un bloque annimo de PL/SQL un subprograma se almacena en la base de datos. A continuacin tenemos el ejemplo de una funcin donde se puede apreciar la funcionalidad de SQL en un lenguaje de programacin.

144

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

CREATE FUNCTION "TRASPASO" (p_clvdist in TRASPASOS.CLV_DIST%TYPE, p_clvvta in TRASPASOS.CLV_PUNTO_VTA%TYPE, p_monto in TRASPASOS.MONTO_TRANSFERENCIA%TYPE, p_tipo in TRASPASOS.TRAS_TIPO%TYPE, p_distori in TRASPASOS.CLV_DIST_ORI%TYPE) RETURN BOOLEAN AS NUMVAR int := -1;

-- Nombre de la funcin, declaratoria de parmetros recibidos as como valor -- devuelto por la funcin
BEGIN

-- Bloque de ejecucin, Convivencia de un clsico if de programacin con sentencias SQL


if ( p_tipo = 0 ) then update factura set MONTO_RESTA = MONTO_RESTA - p_monto where CLV_DIST = p_clvdist and MONTO_RESTA >= p_monto returning MONTO_RESTA into NUMVAR; else update CAT_PUNTOS_VTA set MONTO_CREDITO = MONTO_CREDITO - p_monto where CLV_PUNTO_VTA = p_distori and CLV_DIST = p_clvdist and MONTO_CREDITO >= p_monto returning MONTO_CREDITO into NUMVAR; end if; if NUMVAR >= 0 then if ( p_clvdist = p_clvvta ) then update factura set MONTO_RESTA = MONTO_RESTA + p_monto where CLV_DIST = p_clvdist; else update CAT_PUNTOS_VTA set MONTO_CREDITO = MONTO_CREDITO + p_monto where CLV_PUNTO_VTA = p_clvvta and CLV_DIST = p_clvdist ; end if; RETURN TRUE; else return FALSE; end if;

-- Retorno del valor de la funcin as como fin de la funcin

145

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

END;

SQL El SQL (Structured Query Language) usado en Oracle Database es un superset del ANSI-SQL y del (ISO) SQL:1999 Standard. A continuacin se lista la sintaxis de las sentencias ms importantes y ms usadas del SQL de Oracle, esta gua fue tomada de la documentacin de Oracle 11g release 2.
ALTER DATABASE [ database ] { startup_clauses | recovery_clauses | database_file_clauses | logfile_clauses | controlfile_clauses | standby_database_clauses | default_settings_clauses | instance_clauses | security_clause } ; ALTER DATABASE LINK dblink { CONNECT TO user IDENTIFIED BY password [ dblink_authentication ] | dblink_authentication }; ALTER DISKGROUP { { diskgroup_name { { add_disk_clause | drop_disk_clause } [, { add_disk_clause | drop_disk_clause } ]... | resize_disk_clauses } [ rebalance_diskgroup_clause ] | { disk_online_clause | disk_offline_clause | rebalance_diskgroup_clause | check_diskgroup_clause | diskgroup_template_clauses | diskgroup_directory_clauses | diskgroup_alias_clauses | diskgroup_volume_clauses | diskgroup_attributes | modify_diskgroup_file | drop_diskgroup_file_clause | usergroup_clauses | user_clauses | file_permissions_clause

146

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

| file_owner_clause } | { diskgroup_name [, diskgroup_name ] ... | ALL } { undrop_disk_clause | diskgroup_availability | enable_disable_volume } } ALTER FLASHBACK ARCHIVE flashback_archive { SET DEFAULT | { ADD | MODIFY } TABLESPACE tablespace [flashback_archive_quota] | REMOVE TABLESPACE tablespace_name | MODIFY RETENTION flashback_archive_retention | PURGE { ALL | BEFORE { SCN expr | TIMESTAMP expr} } }; ALTER FUNCTION [ schema. ] function function_compile_clause ALTER INDEX [ schema. ]index { { deallocate_unused_clause | allocate_extent_clause | shrink_clause | parallel_clause | physical_attributes_clause | logging_clause } ... | rebuild_clause | PARAMETERS ( 'ODCI_parameters' ) ) | COMPILE | { ENABLE | DISABLE } | UNUSABLE | VISIBLE | INVISIBLE | RENAME TO new_name | COALESCE | { MONITORING | NOMONITORING } USAGE | UPDATE BLOCK REFERENCES | alter_index_partitioning } ; ALTER MATERIALIZED VIEW [ schema. ] materialized_view [ physical_attributes_clause

147

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

| | | | | | | | | | | ] [ [ [ | ] [ | | ]

modify_mv_column_clause table_compression LOB_storage_clause [, LOB_storage_clause ]... modify_LOB_storage_clause [, modify_LOB_storage_clause ]... alter_table_partitioning parallel_clause logging_clause allocate_extent_clause deallocate_unused_clause shrink_clause { CACHE | NOCACHE } alter_iot_clauses ] USING INDEX physical_attributes_clause ] MODIFY scoped_table_ref_constraint alter_mv_refresh { ENABLE | DISABLE } QUERY REWRITE COMPILE CONSIDER FRESH ;

ALTER PACKAGE [ schema. ] package package_compile_clause ALTER PROCEDURE [ schema. ] procedure procedure_compile_clause ALTER PROFILE profile LIMIT { resource_parameters | password_parameters } ... ; ALTER ROLE role { NOT IDENTIFIED | IDENTIFIED { BY password | USING [ schema. ] package | EXTERNALLY | GLOBALLY } } ; ALTER ROLLBACK SEGMENT rollback_segment { ONLINE | OFFLINE | storage_clause | SHRINK [ TO size_clause ] }; ALTER SEQUENCE [ schema. ] sequence

148

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

{ | | | | | } ;

INCREMENT BY integer { MAXVALUE integer | NOMAXVALUE } { MINVALUE integer | NOMINVALUE } { CYCLE | NOCYCLE } { CACHE integer | NOCACHE } { ORDER | NOORDER } ...

ALTER SESSION { ADVISE { COMMIT | ROLLBACK | NOTHING } | CLOSE DATABASE LINK dblink | { ENABLE | DISABLE } COMMIT IN PROCEDURE | { ENABLE | DISABLE } GUARD | { ENABLE | DISABLE | FORCE } PARALLEL { DML | DDL | QUERY } [ PARALLEL integer ] | { ENABLE RESUMABLE [ TIMEOUT integer ] [ NAME string ] | DISABLE RESUMABLE } | SYNC WITH PRIMARY | alter_session_set_clause } ; ALTER SYSTEM { archive_log_clause | checkpoint_clause | check_datafiles_clause | distributed_recov_clauses | FLUSH { SHARED_POOL | BUFFER_CACHE | REDO TO target_db_name [ [ NO ] CONFIRM APPLY ] } | end_session_clauses | SWITCH LOGFILE | { SUSPEND | RESUME } | quiesce_clauses | rolling_migration_clauses | security_clauses | shutdown_dispatcher_clause | REGISTER | SET alter_system_set_clause [ alter_system_set_clause ]... | RESET alter_system_reset_clause [ alter_system_reset_clause ]... } ; ALTER TABLE [ schema. ] table [ alter_table_properties | column_clauses | constraint_clauses

149

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

| | | ] [ | ] ;

alter_table_partitioning alter_external_table move_table_clause enable_disable_clause { ENABLE | DISABLE } { TABLE LOCK | ALL TRIGGERS } ...

ALTER TABLESPACE tablespace { DEFAULT [ table_compression ] storage_clause | MINIMUM EXTENT size_clause | RESIZE size_clause | COALESCE | SHRINK SPACE [ KEEP size_clause] | RENAME TO new_tablespace_name | { BEGIN | END } BACKUP | datafile_tempfile_clauses | tablespace_logging_clauses | tablespace_group_clause | tablespace_state_clauses | autoextend_clause | flashback_mode_clause | tablespace_retention_clause } ; ALTER TRIGGER [ schema. ] trigger { ENABLE | DISABLE | RENAME TO new_name | trigger_compile_clause } ; ALTER TYPE [ schema. ]type alter_type_clauses ALTER USER { user { IDENTIFIED { BY password [ REPLACE old_password ] | EXTERNALLY [ AS 'certificate_DN' | AS 'kerberos_principal_name' ] | GLOBALLY [ AS '[directory_DN]' ] } | DEFAULT TABLESPACE tablespace | TEMPORARY TABLESPACE { tablespace | tablespace_group_name } | { QUOTA { size_clause | UNLIMITED } ON tablespace

150

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

} ... | PROFILE profile | DEFAULT ROLE { role [, role ]... | ALL [ EXCEPT role [, role ] ... ] | NONE } | PASSWORD EXPIRE | ACCOUNT { LOCK | UNLOCK } | ENABLE EDITIONS [ FORCE ] } ... | user [, user ]... proxy_clause } ; ALTER VIEW [ schema. ] view { ADD out_of_line_constraint | MODIFY CONSTRAINT constraint { RELY | NORELY } | DROP { CONSTRAINT constraint | PRIMARY KEY | UNIQUE (column [, column ]...) } | COMPILE | { READ ONLY | READ WRITE } } ; ANALYZE { { TABLE [ schema. ] table | INDEX [ schema. ] index } [ partition_extension_clause ] | CLUSTER [ schema. ] cluster } { validation_clauses | LIST CHAINED ROWS [ into_clause ] | DELETE [ SYSTEM ] STATISTICS } ; CALL { routine_clause | object_access_expression } [ INTO :host_variable [ [ INDICATOR ] :indicator_variable ] ] ; COMMIT [ WORK ] [ [ COMMENT string ] | [ WRITE [ WAIT | NOWAIT ] [ IMMEDIATE | BATCH ] ] | FORCE { string [, integer ]

151

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

| CORRUPT_XID string | CORRUPT_XID_ALL } ] ; CREATE CLUSTER [ schema. ] cluster (column datatype [ SORT ] [, column datatype [ SORT ] ]... ) [ { physical_attributes_clause | SIZE size_clause | TABLESPACE tablespace | { INDEX | [ SINGLE TABLE ] HASHKEYS integer [ HASH IS expr ] } }... ] [ parallel_clause ] [ NOROWDEPENDENCIES | ROWDEPENDENCIES ] [ CACHE | NOCACHE ] ; CREATE CONTROLFILE [ REUSE ] [ SET ] DATABASE database [ logfile_clause ] { RESETLOGS | NORESETLOGS } [ DATAFILE file_specification [, file_specification ]... ] [ MAXLOGFILES integer | MAXLOGMEMBERS integer | MAXLOGHISTORY integer | MAXDATAFILES integer | MAXINSTANCES integer | { ARCHIVELOG | NOARCHIVELOG } | FORCE LOGGING ]... [ character_set_clause ] ;

CREATE DATABASE [ database { USER SYS IDENTIFIED BY | USER SYSTEM IDENTIFIED | CONTROLFILE REUSE | MAXDATAFILES integer | MAXINSTANCES integer | CHARACTER SET charset | NATIONAL CHARACTER SET | SET DEFAULT

] password BY password

charset

152

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

{ BIGFILE | SMALLFILE } TABLESPACE | database_logging_clauses | tablespace_clauses | set_time_zone_clause }... ; CREATE [ SHARED ] [ PUBLIC ] DATABASE LINK dblink [ CONNECT TO { CURRENT_USER | user IDENTIFIED BY password [ dblink_authentication ] } | dblink_authentication ]... [ USING connect_string ] ; CREATE [ OR REPLACE ] DIRECTORY directory AS 'path_name' ; CREATE FLASHBACK ARCHIVE [DEFAULT] flashback_archive TABLESPACE tablespace [flashback_archive_quota] flashback_archive_retention ; CREATE [ OR REPLACE ] FUNCTION plsql_source CREATE [ UNIQUE | BITMAP ] INDEX [ schema. ] index ON { cluster_index_clause | table_index_clause | bitmap_join_index_clause } [ UNUSABLE ] ; CREATE MATERIALIZED VIEW [ schema. ] materialized_view [ column_alias [ENCRYPT [encryption_spec]] [, column_alias [ENCRYPT [encryption_spec]] ]... ] [ OF [ schema. ] object_type ] [ (scoped_table_ref_constraint) ] { ON PREBUILT TABLE [ { WITH | WITHOUT } REDUCED PRECISION ] | physical_properties materialized_view_props } [ USING INDEX [ physical_attributes_clause | TABLESPACE tablespace ]... | USING NO INDEX ] [ create_mv_refresh ]

153

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

[ FOR UPDATE ] [ { DISABLE | ENABLE } QUERY REWRITE ] AS subquery ; CREATE [ OR REPLACE ] PACKAGE plsql_source CREATE PFILE [= 'pfile_name' ] FROM { SPFILE [= 'spfile_name'] | MEMORY } ; CREATE [ OR REPLACE ] PROCEDURE plsql_source CREATE PROFILE profile LIMIT { resource_parameters | password_parameters }... ; CREATE RESTORE POINT restore_point [ AS OF {TIMESTAMP | SCN} expr ] [ PRESERVE | GUARANTEE FLASHBACK DATABASE ]; CREATE ROLE role [ NOT IDENTIFIED | IDENTIFIED { BY password | USING [ schema. ] package | EXTERNALLY | GLOBALLY } ] ; CREATE [ PUBLIC ] ROLLBACK SEGMENT rollback_segment [ TABLESPACE tablespace | storage_clause ]...]; CREATE SCHEMA AUTHORIZATION schema { create_table_statement | create_view_statement | grant_statement }... ; CREATE [ { | { | { SEQUENCE [ schema. ] sequence INCREMENT BY | START WITH } integer MAXVALUE integer | NOMAXVALUE } MINVALUE integer | NOMINVALUE }

154

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

| { CYCLE | NOCYCLE } | { CACHE integer | NOCACHE } | { ORDER | NOORDER } ]... ; CREATE SPFILE [= 'spfile_name' ] FROM { PFILE [= 'pfile_name' ] | MEMORY } ; CREATE [ OR REPLACE ] [ PUBLIC ] SYNONYM [ schema. ] synonym FOR [ schema. ] object [ @ dblink ] ; CREATE [ GLOBAL TEMPORARY ] TABLE [ schema. ] table { relational_table | object_table | XMLType_table } CREATE [ BIGFILE | SMALLFILE ] { permanent_tablespace_clause | temporary_tablespace_clause | undo_tablespace_clause } ; CREATE [ OR REPLACE ] TRIGGER plsql_source CREATE USER user IDENTIFIED { BY password | EXTERNALLY [ AS 'certificate_DN' | AS 'kerberos_principal_name' ] | GLOBALLY [ AS '[ directory_DN ]' ] } [ DEFAULT TABLESPACE tablespace | TEMPORARY TABLESPACE { tablespace | tablespace_group_name } | { QUOTA { size_clause | UNLIMITED } ON tablespace }... | PROFILE profile | PASSWORD EXPIRE | ACCOUNT { LOCK | UNLOCK } [ DEFAULT TABLESPACE tablespace | TEMPORARY TABLESPACE { tablespace | tablespace_group_name } | { QUOTA { size_clause | UNLIMITED } ON tablespace }... | PROFILE profile | PASSWORD EXPIRE | ACCOUNT { LOCK | UNLOCK } | ENABLE EDITIONS

155

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

]... ] ; CREATE [OR REPLACE] [[NO] FORCE] [EDITIONING] VIEW [schema.] view [ ( { alias [ inline_constraint... ] | out_of_line_constraint } [, { alias [ inline_constraint...] | out_of_line_constraint } ] ) | object_view_clause | XMLType_view_clause ] AS subquery [ subquery_restriction_clause ] ; DELETE [ hint ] [ FROM ] { dml_table_expression_clause | ONLY (dml_table_expression_clause) } [ t_alias ] [ where_clause ] [ returning_clause ] [error_logging_clause]; DROP CLUSTER [ schema. ] cluster [ INCLUDING TABLES [ CASCADE CONSTRAINTS ] ] ; DROP CONTEXT namespace ; DROP DATABASE ; DROP [ PUBLIC ] DATABASE LINK dblink ; DROP DIMENSION [ schema. ] dimension ; DROP DIRECTORY directory_name ; DROP FLASHBACK ARCHIVE flashback_archive; DROP FUNCTION [ schema. ] function_name ; DROP INDEX [ schema. ] index [ FORCE ] ; DROP MATERIALIZED VIEW [ schema. ] materialized_view [ PRESERVE TABLE ] ;

156

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

DROP PACKAGE [ BODY ] [ schema. ] package ; DROP PROCEDURE [ schema. ] procedure ; DROP PROFILE profile [ CASCADE ] ; DROP ROLE role ; DROP ROLLBACK SEGMENT rollback_segment ; DROP SEQUENCE [ schema. ] sequence_name ; DROP [PUBLIC] SYNONYM [ schema. ] synonym [FORCE] ; DROP TABLE [ schema. ] table [ CASCADE CONSTRAINTS ] [ PURGE ] ; DROP TABLESPACE tablespace [ INCLUDING CONTENTS [ {AND | KEEP} DATAFILES ] [ CASCADE CONSTRAINTS ] ] ; DROP TRIGGER [ schema. ] trigger ; DROP USER user [ CASCADE ] ; DROP VIEW [ schema. ] view [ CASCADE CONSTRAINTS ] ; FLASHBACK [ STANDBY ] DATABASE [ database ] { TO { { SCN | TIMESTAMP } expr | RESTORE POINT restore_point } | TO BEFORE { SCN | TIMESTAMP} expr | RESETLOGS } } FLASHBACK TABLE [ schema. ] table [, [ schema. ] table ]... TO { { { SCN | TIMESTAMP } expr | RESTORE POINT restore_point } [ { ENABLE | DISABLE } TRIGGERS ] | BEFORE DROP [ RENAME TO table ] } ; GRANT { grant_system_privileges

157

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

| grant_object_privileges } ; INSERT [ hint ] { single_table_insert | multi_table_insert } ; LOCK [ | ] TABLE [ schema. ] { table | view } partition_extension_clause @ dblink [, [ schema. ] { table | view } [ partition_extension_clause | @ dblink ] ]... IN lockmode MODE [ NOWAIT | WAIT integer ] ;

MERGE [ hint ] INTO [ schema. ] { table | view } [ t_alias ] USING { [ schema. ] { table | view } | subquery } [ t_alias ] ON ( condition ) [ merge_update_clause ] [ merge_insert_clause ] [ error_logging_clause ] ; PURGE { | | } { TABLE table | INDEX index } { RECYCLEBIN | DBA_RECYCLEBIN } TABLESPACE tablespace [ USER username ] ;

RENAME old_name TO new_name ; REVOKE { revoke_system_privileges | revoke_object_privileges } ; ROLLBACK [ WORK ] [ TO [ SAVEPOINT ] savepoint | FORCE string ] ; SELECT

158

Materia: Base de datos Integrantes: Bentez Len Enrique Bernal Lpez Moiss Hernndez Vaquerizo Alberto Martnez Hernndez Pablo

[ subquery_factoring_clause ] subquery [ for_update_clause ] ;

TRUNCATE TABLE [schema.] table [ {PRESERVE | PURGE} MATERIALIZED VIEW LOG ] [ {DROP [ ALL ] | REUSE} STORAGE ] ; UPDATE [ hint ] { dml_table_expression_clause | ONLY (dml_table_expression_clause) } [ t_alias ] update_set_clause [ where_clause ] [ returning_clause ] [error_logging_clause] ;

Fuentes de Consulta
1. Lance Ashdown, Tom Kyte. Oracle Database Concepts. 11g Release 2 (11.2). October 2010. Oracle Corp. 2. Maria Billings. Oracle Database 11g, Administration Workshop I. September 2010. Oracle Corp. 3. http://www.oracle.com/pls/db112/homepage

159

Das könnte Ihnen auch gefallen