Documentos de Académico
Documentos de Profesional
Documentos de Cultura
com
Introducción
yo n el antiguo texto clásico chinoTao Te Ching, Lao Tzu ("Viejo Maestro") dice,“El árbol que llena los
brazos creció del más pequeño brote; la torre de nueve pisos se levantó de un (pequeño) montón de
tierra; el viaje de mil [millas] comenzó con un solo paso”. escribíA partir de la base de datos Oracle 11
gramoAdministraciónpara ayudarlo a dar los primeros pasos de su recorrido con Oracle Database. Es
el libro que desearía haber tenido cuando comencé a usar Oracle Database hace tantos años. Es el
libro que me hubiera gustado regalar a los muchos colegas y amigos de TI que, a lo largo de los
años, me han pedido que les enseñe los conceptos básicos de Oracle Database.
Comencé mi propio viaje hace más de 10 años cuando mi gerente en ese momento, Bill
Schwimmer, me dio la oportunidad de convertirme en administrador de Oracle Database en los días
de Oracle 7. Los libros sobre Oracle Database eran menos en ese momento y confiaba en copias
impresas de los manuales, que tuve que compartir con el resto del equipo; esto fue en los días previos
a Google, cuando Netscape Navigator acababa de aparecer en escena.
Hoy en día, los manuales de Oracle Database se pueden descargar de forma gratuita desde el sitio web
de Oracle. Pero su tamaño ha crecido enormemente a lo largo de los años. El manual de referencia de Oracle
Database 7.3 SQL tenía alrededor de 750 páginas; el 11gramola versión es el doble de ese tamaño.
¡Definitivamente no querrás llevar una copia impresa de eso en tu mochila!
El libro que tiene en sus manos no es un manual de referencia exhaustivo en ningún sentido; es una
introducción más manejable a los temas clave de administración de la base de datos de Oracle, que incluyen la
planificación, la instalación, la supervisión, la resolución de problemas, el mantenimiento, las copias de seguridad
y el ajuste del rendimiento, por nombrar solo algunos. Obtendrá el beneficio de mi experiencia, no solo de la línea
del partido que se encuentra en los manuales. Por ejemplo, por las razones explicadas en el interior, enfatizo la
herramienta Statspack en lugar del Repositorio de carga de trabajo automático (AWR).
En este libro, encontrará información que no encontrará en otros libros sobre Oracle Database. Aquí
encontrará no solo información técnica, sino también orientación sobre las prácticas laborales que son tan
vitales para su éxito como las habilidades técnicas. El capítulo más importante del libro es “El panorama
general y los diez entregables”. Si toma en serio las lecciones de ese capítulo, puede convertirse rápidamente
en un administrador de base de datos Oracle mucho mejor de lo que nunca pensó posible.
xiv
xxi INTRODUCCIÓN
Puede que tenga prisa por aprender a crear una base de datos, pero espero que se tome el tiempo
para comprender primero la teoría subyacente. No te arrepentirás.
Leonardo da Vinci dijo,“Aquellos que están enamorados de la práctica sin conocimiento son como el
marinero que se sube a un barco sin timón ni brújula y que nunca puede estar seguro [adónde] va. La
práctica siempre debe basarse en una teoría sólida”.¿Cómo puede administrar de manera
competente un sistema de administración de bases de datos relacionales como Oracle si realmente
no sabe qué hace que una base de datos "relacional" sea relacional o qué administra un sistema de
administración de bases de datos por usted? Este capítulo lo ayudará a orientarse y lo preparará para
lo que vendrá en el resto del libro.
Toda la actividad de los usuarios de la base de datos se lleva a cabo en lenguaje de consulta estructurado (SQL) y, por
lo tanto, los administradores de la base de datos deben estar íntimamente familiarizados con él. El mayor potencial
para mejorar el rendimiento generalmente se encuentra dentro de la aplicación de software, no dentro de la base de
datos donde la aplicación almacena sus datos o dentro de la infraestructura física donde se aloja la base de datos.
Una razón igualmente importante por la que los administradores de bases de datos necesitan
INTRODUCCIÓN xvii
estar íntimamente familiarizado con SQL es que todas las actividades de administración de la base de datos, como
el mantenimiento de la base de datos y la gestión de usuarios, también se llevan a cabo en SQL. Una tercera razón
es que SQL tiene deficiencias contra las que se debe proteger. Estas deficiencias incluyen redundancia, problemas
introducidos por elementos de datos anulables y la ausencia de prohibiciones sobre registros de datos duplicados.
Así como el motor de un automóvil tiene muchas partes interconectadas que deben funcionar bien juntas, y
así como un mecánico de automóviles debe entender las partes individuales y cómo se relacionan con el
todo, el motor de la base de datos de Oracle tiene muchas partes interconectadas y el El administrador de la
base de datos debe comprender las partes individuales y cómo se relacionan con el todo. Este capítulo
proporciona una breve descripción general del motor de Oracle.
Después de dedicar algún tiempo a la teoría de bases de datos, estará ansioso por crear su primera base de datos.
Espero que aproveche la oportunidad de instalar Oracle en su propia computadora portátil XP o Vista; la mejor
manera de aprender es haciendo.
Capítulo 4: Planificación
Su objetivo como administrador de Oracle no es simplemente crear una base de datos, sino llegar a tiempo,
dentro del presupuesto y cumplir con los objetivos de disponibilidad y rendimiento del negocio. Como con
cualquier objetivo, la planificación cuidadosa es la clave del éxito. Tiene poco control sobre una serie de
factores que afectan el éxito de su base de datos; por ejemplo, diseño y prueba de aplicaciones. Este
capítulo analiza tres cuestiones importantes que definitivamente están dentro de su círculo de influencia y
que no puede permitirse el lujo de ignorar: licencias, arquitectura y dimensionamiento.
En este capítulo, repasaré algunos requisitos previos, como obtener el software, las guías de instalación y
los manuales de referencia. También hablaré sobre la instalación de software que precede a la creación de
una base de datos. Le mostraré cómo instalé el software de Oracle en mi computadora portátil con Windows
XP Professional.
La creación de bases de datos es más fácil de lo que piensas; son las tareas que vienen antes y después las que
toman mucho tiempo. En este capítulo, primero discutiré el “Siguiente-Siguiente-Siguiente; haga clic en Finalizar”
para crear una base de datos. Luego discutiré brevemente algunas tareas que debe considerar
xviii INTRODUCCIÓN
realizar después de crear una base de datos; específicamente, instalar las herramientas RDA y Statspack y
deshabilitar las funciones de la base de datos que no tienen licencia. Finalmente, presentaré el método
manual de creación de bases de datos y algunas tareas administrativas básicas.
Las consideraciones de rendimiento pueden pasar a primer plano en cualquier momento durante la vida útil de la
base de datos; se pueden introducir nuevas consultas en cualquier momento. Por lo tanto, los administradores de
bases de datos deben comprender los mecanismos que se pueden utilizar para mejorar el rendimiento, y este
capítulo analiza tres categorías amplias.Índicesse puede utilizar para encontrar rápidamente los datos. Particionesy
racimosse puede utilizar para organizar los datos. Finalmente,vistas materializadasy tablas desnormalizadasse puede
usar para realizar operaciones costosas como uniones con anticipación.
Su trabajo no termina cuando crea una base de datos; todavía tiene que ingresar los datos y asegurarse de que
aquellos que necesitan usarlos puedan hacerlo. Este capítulo analiza cómo controlar a los usuarios y cómo obtener
grandes cantidades de datos dentro y fuera de las bases de datos. La administración de usuarios y la carga de datos
son dos tareas comunes realizadas por los administradores de bases de datos.
La parte fácil ha terminado. Ha creado una base de datos y la ha cargado con datos. Ahora tienes que
centrar tu atención en el cuidado y alimentación de la misma.
Si va a ser responsable de una base de datos, necesita saber qué contiene y cómo se utiliza. ¿Cuáles son las
mesas más grandes? ¿Cómo se distribuyen los archivos de datos, los archivos de control y los archivos de
registro? ¿Cuántas personas tienen cuentas de base de datos? ¿Cuántas personas utilizan la base de datos
a la vez? Su primera acción cuando adquiere la responsabilidad de una base de datos debe ser explorarla a
fondo.
En este capítulo, aprenderá acerca de las herramientas basadas en formularios, como Enterprise
Manager, SQL Developer y Remote Diagnostic Agent, que facilitan la exploración de la base de datos y
simplifican la tarea de administración de la base de datos.
Cuando era niño, a veces me despertaba por la noche el sonido de un bastón golpeando el
suelo: era el vigilante nocturno que patrullaba el vecindario. Habría tenido una mejor
oportunidad de sorprender a los ladrones si se hubiera acercado sigilosamente a ellos.
INTRODUCCIÓN xxix
en voz baja, pero nunca cuestioné por qué anunciaba su presencia tan fuerte. Armado
únicamente con un bastón, tendría que confiar en sus fuertes pulmones para despertar al
vecindario si veía a algún ladrón, por lo que quizás era mejor anunciar su presencia y esperar
que los ladrones huyeran cuando lo escucharan venir. Sin embargo, el sonido de su bastón era
reconfortante, era bueno saber que alguien de confianza vigilaba el vecindario mientras
dormíamos.
El administrador de la base de datos es responsable de vigilar la base de datos. Si algo sale mal con la base de
datos que podría haberse evitado, no hay nadie más a quien culpar. Como aprenderá en este capítulo, la
disponibilidad, los cambios, la seguridad, el crecimiento, las copias de seguridad, la carga de trabajo, el rendimiento
y la capacidad de la base de datos son algunas de las áreas que deben monitorearse.
En este capítulo, observará un problema de la vida real a medida que avanza desde la detección hasta la
resolución. Aprenderá un enfoque sistemático de cinco pasos para solucionar problemas y la diferencia
entreadministracion de incidentesygestión de problemas. Cubriré la variedad de recursos de Internet que
están disponibles para usted, presentaré una base de conocimiento de Oracle llamada MetaLink y explicaré
cómo obtener soporte técnico de Oracle Corporation. Finalmente, discutiré algunos problemas comunes de
la base de datos.
El héroe nacional estadounidense Benjamin Franklin solía escribir cartas anónimas a losgaceta de
pensilvania,un destacado periódico que él mismo poseía y editaba. En una de esas cartas acuñó la
famosa frase“una onza de prevención vale una libra de cura” y, además de hacer varias sugerencias
para la prevención de incendios, sugirió que Filadelfia imitara a su Boston natal en el
establecimiento de estaciones de bomberos y el empleo de bomberos; no solo se deben hacer todos
los esfuerzos para prevenir incendios, sino que la ciudad debe estar adecuadamente preparada para
manejar el próximo incendio inevitable.
Las copias de seguridad son para una base de datos lo que las estaciones de bomberos y los bomberos son para
una ciudad; podemos proteger la base de datos contra daños lo mejor que podamos, pero debemos estar preparados
si la base de datos alguna vez se daña, debido a un error del usuario o del operador o falla del hardware, y necesita ser
reparada. En este capítulo, aprenderá sobre los diferentes tipos de copias de seguridad y las herramientas utilizadas
para crearlas.
condiciones de funcionamiento.
Este es el capítulo más importante de este libro: discuto el panorama general de TI y ofrezco una
guía muy específica en forma de diez entregables del rol de administración de bases de datos. Pocos
libros, si es que hay alguno, abordan este tema. Si toma en serio las lecciones de este capítulo,
puede convertirse rápidamente en un mejor administrador de Oracle Database de lo que creía
posible.
La competencia en tecnología Oracle es solo la mitad del desafío de ser un administrador de
base de datos. Si tuviera muy poco conocimiento de la tecnología de Oracle pero supiera
exactamente quéhabía que hacerlo, siempre se podía averiguarcómopara hacerlo, está Google y hay
muchos manuales en línea. Demasiados administradores de bases de datos de Oracle no saben qué
hacer y lo que tienen cuando terminan es "simplemente un desastre sin idea".
No existe tal cosa como un automóvil completamente autoajustable y no existe tal cosa como una base de datos
completamente autoajustable. El ajuste del rendimiento a menudo puede ser un rompecabezas que requiere una
solución creativa.
El ajuste de la base de datos puede ser un ejercicio complejo, pero puede facilitarse mediante un enfoque
sistemático. Este capítulo describe un enfoque sistemático de cinco pasos para el ajuste del rendimiento.
También presenta las herramientas más importantes proporcionadas por Oracle para ayudar con el ajuste
del rendimiento; Se enfatiza Statspack porque las herramientas más nuevas, como AWR y ADDM, requieren
licencias costosas y no están disponibles en la mayoría de los sitios. En particular, aprenderá un poderoso
método de extracción del repositorio de Statspack para obtener datos sobre tendencias de rendimiento. Lo
más destacado de este capítulo es el ejercicio de ajuste de rendimiento muy detallado al final; reforzará las
lecciones del capítulo.
INTRODUCCIÓN xxi
Fe de erratas
Apress hace todo lo posible para asegurarse de que no haya errores en el texto o el código. Sin embargo,
errar es humano y, como tal, reconocemos la necesidad de mantenerlo informado sobre cualquier error a
medida que se descubre y corrige. Las hojas de erratas están disponibles para todos nuestros libros en
. Si encuentra un error que aún no se ha informado, comuníquelo
sabemos.
El sitio web de Apress actúa como centro de otra información y soporte, incluido el código de todos
los libros de Apress, capítulos de muestra, vistas previas de los próximos títulos y artículos sobre temas
relacionados.
Aquellos que están enamorados de la práctica sin conocimiento son como el marinero que
se sube a un barco sin timón ni brújula y que nunca puede estar seguro [adónde] va. La
práctica siempre debe basarse en una teoría sólida.
W uando era un programador junior, bastante temprano en mi carrera, mis amigos y yo fuimos
asignados a trabajar en un gran proyecto de desarrollo de software para el cual tendríamos que usar
tecnologías desconocidas, aunque se nos prometió que se brindaría capacitación antes de que
comenzara el proyecto. . Todo lo que sabíamos de antemano era que el sistema operativo era algo
llamado VAX/VMS; no sabíamos qué lenguaje de programación o base de datos se utilizaría. Lo
primero que dijo el instructor fue (parafraseando) “Primero tienes que insertar tus definiciones en el
CDD”, y caminó hacia la pizarra y escribió los comandos que necesitábamos para ese propósito. No
hace falta decir que estábamos bastante nerviosos porque no teníamos idea de cuáles podrían ser
esas "definiciones" o qué era un "CDD" y cómo encajaba en el panorama general.
Me han dicho que lo primero que debo decirte es cómo crear un Oracle 11gramobase de datos.
Bueno, si realmente debes saberlo, el comando necesario es seguido
por su elección de nombre para la base de datos: cualquiera puede escribir ese comando y crear un Oracle
11gramobase de datos. Pero el mero conocimiento de unos pocos comandos de Oracle (o incluso muchos
comandos de Oracle) no convertirá a nadie en un administrador de base de datos de Oracle. Lo que dijo
Leonardo es tan importante que lo citaré de nuevo: “Aquellos que están enamorados de la práctica sin
conocimiento son como el marinero que se sube a un barco sin timón ni brújula y que nunca puede estar
seguro [adónde] va. La práctica siempre debe basarse en una teoría sólida.” ¿Cómo puede administrar de
manera competente un sistema de administración de bases de datos relacionales como Oracle si realmente
no sabe qué hace que una base de datos “relacional” sea relacional o qué administra un sistema de
administración de bases de datos por usted?
3
4 CAPÍTULO 1 SISTEMAS DE GESTIÓN DE BASES DE DATOS RELACIONADOS
trabajé, para el gigante de fabricación de semiconductores Intel, tenía menos de 100 megabytes de tamaño y solo tenía unas
pocas docenas de tablas de datos. Hoy en día, las bases de datos utilizadas por conjuntos de aplicaciones empresariales
como Peoplesoft, Siebel y Oracle Applications tienen un tamaño de decenas o cientos de gigabytes y pueden tener diez mil
tablas o más. Una de las razones por las que las bases de datos son ahora tan grandes es que los avances en la tecnología de
almacenamiento en discos magnéticos han hecho factible almacenar y recuperar de manera eficiente grandes cantidades de
También podemos señalar que las bases de datos pueden crecer rápidamente y que debemos planificar el
crecimiento. También podemos ver que las aplicaciones de bases de datos pueden consumir grandes cantidades
de recursos informáticos.Gestión de capacidadpor lo tanto, es otra parte importante de su trabajo, y necesita un
plan de capacidad que se adapte tanto al crecimiento continuo de los datos como a las crecientes necesidades de
recursos informáticos.
Cuando dejamos de pensar en términos de comandos de Oracle como y
empecemos a pensar en términos como gestión de seguridad, gestión de disponibilidad, gestión de
continuidad, gestión de cambios, gestión de incidentes, gestión de problemas, gestión de configuración,
gestión de versiones y gestión de capacidad, el negocio de la administración de bases de datos comienza a
tener un sentido coherente y nos convertimos en una base de datos más efectiva administradores Estos
términos forman parte de la jerga estándar de la Biblioteca de infraestructura de TI (ITIL), un conjunto de
prácticas recomendadas que utilizan las organizaciones de TI de todo el mundo.
Ahora, ¿le gustaría intentar responder la pregunta que me dejó anonadado en la entrevista
televisiva:¿Por qué las bases de datos son importantes para la sociedad?
Dados los conjuntos S1, S2,..., Sn (no necesariamente distintos), R es una relación sobre estos n conjuntos
si es un conjunto de n-tuplas, cada una de las cuales tiene su primer elemento de S1, su segundo
elemento de S2, y así.
1. Codd, Edgar. “Un modelo relacional de datos para grandes bancos de datos compartidos”,Comunicaciones de la ACM,
Volumen 13, número 6 (junio de 1970).
6 CAPÍTULO 1 SISTEMAS DE GESTIÓN DE BASES DE DATOS RELACIONADOS
Bueno, esto parece ser una forma matemática aburrida de complicar un concepto simple
como una tabla y no explica por qué el enfoque relacional barrió todo lo que venía antes. Para
entender por qué el enfoque relacional fue revolucionario, primero tenemos que entender las
tecnologías que lo precedieron y cómo eran deficientes. Luego debemos estudiar los
“operadores relacionales” que producen nuevas relaciones a partir de las antiguas.
Un ejemplo de una tecnología de base de datos pre-relacional fue la tecnología de “base de datos en
red”, uno de los mejores ejemplos fue DEC/DBMS, creado por Digital Equipment Corporation para las
plataformas VAX/VMS y OpenVMS; todavía sobrevive hoy como Oracle/ SGBD. Sí, es extraño, pero es
cierto: Oracle Corporation, el fabricante de la tecnología de base de datos relacional dominante en el
mundo, también vende una tecnología de base de datos prerelacional. Según Oracle Corporation,
Oracle/DBMS es una tecnología de base de datos muy poderosa, confiable y sofisticada que tiene una
relevancia continua y que Oracle se compromete a respaldar. Aquí hay algunas citas del sitio web de
Oracle Corporation.
CODASYL DBMS es un sistema de gestión de base de datos multiusuario compatible con CODASYL
para sistemas operativos OpenVMS. CODASYL DBMS está diseñado para bases de datos de todos
los niveles de complejidad, desde jerarquías simples hasta redes sofisticadas con relaciones de
varios niveles. CODASYL DBMS proporciona una plataforma operativa confiable para entornos de
aplicaciones donde la estabilidad, la alta disponibilidad y el rendimiento son esenciales. … La
estrategia de Oracle para CODASYL DBMS más allá de la versión 7 es un énfasis continuo en la
disponibilidad, las capacidades de VLDB y el rendimiento. … Nuestro objetivo general es brindar
soporte y mejoras continuas para garantizar que DBMS mantenga su reputación de estabilidad y
calidad.2
En una base de datos de red, los registros de datos están vinculados en cadenas. Considere un ejemplo
que involucre tres tipos de registros: PROVEEDOR, PARTE y COTIZACIÓN; cada registro de PROVEEDOR
almacena información sobre un proveedor, cada registro de PARTE almacena información sobre una parte y
cada registro de COTIZACIÓN almacena el precio cotizado por un proveedor para una parte. La figura 1-1
muestra cómo se pueden vincular los registros. Vemos que los martillos son suministrados por tres
proveedores diferentes y que New Yankee Workshop, Inc. ha cotizado el precio más bajo.
2. CODASYL es la Conferencia sobre lenguajes de sistemas de datos, un consorcio de la industria que escribió las
especificaciones para el lenguaje de programación COBOL.
CAPÍTULO 1 SISTEMAS DE GESTIÓN DE BASES DE DATOS RELACIONADOS 7
PARTE
UÑA MARTILLO
PROVEEDOR
NUEVO YANQUI
Suponiendo que las cadenas de cotizaciones están ordenadas en orden ascendente y que los registros de
PARTES individuales y los registros de PROVEEDORES se pueden ubicar rápidamente usando elpicadillotécnica,3
la organización de la base de datos que se muestra en la Figura 1-1 nos permite realizar las siguientes
tareas.
1.Enumere toda la información disponible para una parte específica: el método de indexación hash
nos permite recuperar el registro PART requerido rápidamente.
3.Enumere todas las partes: esto se puede responder recorriendo la cadena de registros PART desde
el principio hasta el final.
4.Haga una lista de todos los proveedores: esto se puede responder recorriendo la cadena de registros
PROVEEDOR desde el principio hasta el final.
5.Enumere todos los proveedores de una pieza específica; esto se puede responder recorriendo la cadena de
registros COTIZACIÓN vinculados al registro PARTE específico.
3.PicadilloLas técnicas se utilizan para calcular un valor numérico a partir de un valor no numérico, como un código de pieza. Entonces
se puede almacenar un registro de datos en la dirección correspondiente a este valor numérico y se puede encontrar en esta
dirección en un momento futuro. Por lo tanto, las técnicas hash tienen el mismo propósito que un índice.
8 CAPÍTULO 1 SISTEMAS DE GESTIÓN DE BASES DE DATOS RELACIONADOS
6.Haga una lista de todas las piezas suministradas por un proveedor específico; esto se puede responder recorriendo
7.Enumere el proveedor que ha cotizado el precio más bajo para una pieza específica; esto se puede
responder buscando el primer registro de COTIZACIÓN vinculado al registro de PARTE específico.
Pero otras tareas como "enumerar los proveedores que suministran todas las piezas", "enumerar las piezas
que suministran todos los proveedores" y "enumerar los proveedores que suministran todas las piezas
proporcionadas por un proveedor específico a precios más baratos" no se pueden realizar fácilmente. usando la
estructura de la base de datos de la red diagramada en la Figura 1-1. Pero se logran fácilmente con una base de
datos relacional, como veremos pronto.
La tecnología de bases de datos relacionales hizo a un lado a las tecnologías más antiguas precisamente porque demostró
ser lo suficientemente flexible como para responder a todo tipo de preguntas; no sólo un pequeño conjunto de preguntas.
Esto se debe a que las bases de datos relacionales vienen conoperadores relacionalesque producen nuevas relaciones a partir
de las antiguas. Aquí, entonces, hay una definición "aproximada y lista" (ligeramente parafraseada) de una base de datos
relacional de CJ Date'sIntroducción a los sistemas de bases de datos, octava edición (Addison-Wesley, 2003):
Una base de datos relacional es una base de datos en la que: El usuario percibe los datos como
tablas (y nada más que tablas)4y los operadores disponibles para el usuario para (por ejemplo) la
recuperación son operadores que derivan tablas "nuevas" de las "antiguas".
Operadores relacionales
Nombre de la pieza
MARTILLO
UÑA
4. Habiendo explicado el origen de la palabrarelación, podemos empezar a usar el término más comúnmesa siempre
que nos estemos refiriendo a una relación.
CAPÍTULO 1 SISTEMAS DE GESTIÓN DE BASES DE DATOS RELACIONADOS 9
La tabla 1-4 enumera las definiciones de cinco operadores relacionales, cuatro de los cuales necesitaremos para
Operador Definición
Selección Forme otra tabla extrayendo un subconjunto de las filas de una tabla de interés utilizando algunos
criterios.
Proyección Forme otra tabla extrayendo un subconjunto de las columnas de una tabla de interés. Cualquier
fila duplicada que se forme como resultado de la operación de proyección se elimina.
Unión Forme otra tabla seleccionando todas las filas de dos tablas de interés. Si la primera tabla
tiene 10 filas y la segunda tabla tiene 20 filas, la tabla resultante tendrá como máximo 30
filas, porque los duplicados se eliminarán del resultado.
Diferencia Forme otra tabla extrayendo solo aquellas filas de una tabla de interés que no aparecen
en una segunda tabla.
Unirse Forme otra tabla concatenando registros de dos tablas de interés. Por ejemplo, si la
primera tabla tiene 10 filas y la segunda tabla tiene 20 filas, la tabla resultante tendrá
200 filas, y si la primera tabla tiene 10 columnas y la segunda tabla tiene 20 columnas,
entonces la tabla resultante tendrá 30 filas. columnas
Podemos calcular la respuesta a la pregunta “¿Qué proveedores suministran todas las piezas?” en una
secuencia de cinco pasos. En cada paso, usamos uno de los operadores relacionales recién enumerados y
creamos una tabla de resultados intermedia.
5. Es posible crear nuevas operaciones combinando las operaciones enumeradas. Por ejemplo, "Combinación natural" es el
resultado producido por una operación de combinación en dos tablas seguida de una operación de selección en la tabla
intermedia resultante.
10 CAPÍTULO 1 SISTEMAS DE GESTIÓN DE BASES DE DATOS RELACIONADOS
1.En el primer paso, usamos la operación Unir y formamos una tabla de resultados intermedia
concatenando registros de la tabla Proveedores y la tabla Partes. Todas las combinaciones de
Nombre del proveedor y Nombre de la pieza aparecen en esta tabla. La tabla 1-5 muestra el
resultado.
2.En el segundo paso, usamos la operación Proyección y formamos otra tabla de resultados
intermedia extrayendo las columnas Nombre del proveedor y Nombre de la pieza de la tabla
Cotizaciones. El resultado de la Tabla 1-6 es la lista de combinaciones válidas de nombre de
proveedor y nombre de pieza.
3.En el tercer paso, utilizamos la operación Diferencia y formamos una tercera tabla de
resultados intermedios, que se muestra en la Tabla 1-7, extrayendo solo aquellas filas de la
tabla de resultados intermedios creada en el primer paso que no se encuentran en el
resultado intermedio. tabla creada en el segundo paso. La aparición de una cierta
combinación de NombreProveedor y NombrePieza en esta nueva tabla intermedia indica que
el proveedor en cuestión no suministra la pieza indicada.
4.En el cuarto paso, utilizamos la operación Proyección y formamos otra tabla de resultados
intermedia extrayendo solo la primera columna de la tabla de resultados intermedia creada
en el tercer paso. El resultado, que se muestra en la Tabla 1-8, es la lista de proveedores que
no suministran al menos una parte.
5.En el quinto y último paso, usamos la operación Diferencia una vez más y obtenemos el
resultado final que buscábamos al extraer solo aquellas filas de la tabla Proveedores que no
aparecen en la tabla de resultados intermedios del cuarto paso. La tabla 1-9 muestra el
resultado final, que es la lista requerida de proveedores que sí suministran todas las piezas.
Así como los números y los símbolos aritméticos, como la suma y la multiplicación, se pueden combinar en una
expresión aritmética, las tablas y los operadores de tablas también se pueden combinar en una expresión de álgebra
relacional. Podemos especificar la secuencia anterior de pasos en una sola expresión como se muestra aquí.
La declaración de SQL que se muestra en el Listado 1-1 es bastante parecida a la inglesa y se explica
por sí misma, y retomaremos la discusión de SQL en el próximo capítulo. Por ahora, observe cómo el
formato mejora la legibilidad: la versión elegantemente formateada con "ríos" verticales y
CAPÍTULO 1 SISTEMAS DE GESTIÓN DE BASES DE DATOS RELACIONADOS 13
"palabras reservadas" en mayúsculas6que se muestra en el Listado 1-1 se produjo usando una herramienta llamada
Toad y es completamente equivalente a la versión ilegible que se muestra en el Listado 1-2.
Es posible que haya notado que la discusión en la sección anterior no mencionó la eficiencia. Las definiciones de las
operaciones de la tabla no explican cómo se pueden obtener los resultados de manera eficiente. Esto es, de hecho,
intencional y es una de las mayores fortalezas de la tecnología de bases de datos relacionales:se deja al sistema de
gestión de la base de datos proporcionar implementaciones eficientes de las operaciones de la tabla. En particular, la
operación de selección depende en gran medida de los esquemas de indexación y Oracle Database proporciona una
gran cantidad de tales esquemas, incluidos los índices de árbol B, las tablas organizadas por índices, las tablas
particionadas, los índices particionados, los índices de funciones, los índices de clave inversa, los índices de mapas de
bits, los índices de tablas. clústeres y clústeres hash. Discutiremos las posibilidades de indexación como parte del
diseño de una base de datos física en el Capítulo 7.
Optimización de consultas
Quizás el aspecto más importante de las expresiones del álgebra relacional es que, excepto en casos
muy simples, se pueden reorganizar de diferentes maneras para obtener una ventaja de rendimiento
sin cambiar su significado o hacer que cambien los resultados. Las siguientes dos expresiones son
equivalentes, excepto quizás en el orden en que aparecen las columnas de datos en el resultado: un
detalle de presentación menor, no uno que cambie el significado del resultado.
El número de formas en que se puede reorganizar una expresión de álgebra relacional aumenta drásticamente
a medida que las expresiones se hacen más largas. Incluso la expresión relativamente simple
puede organizarse de las siguientes 12 formas equivalentes que
duce resultados que difieren solo en el orden en que se presentan las columnas, un detalle cosmético que se
puede remediar fácilmente antes de que los resultados se muestren al usuario.
No es obvio en esta etapa qué ventaja de rendimiento, si es que se obtiene alguna, se obtiene
reorganizando las expresiones del álgebra relacional. Tampoco es obvio qué criterios deben usarse al
reorganizar las expresiones. Baste decir que una expresión de álgebra relacional pretende ser unano
procedimentalespecificación de un resultado esperado y laoptimizador de consultaspuede tomar cualquier
acción destinada a mejorar la eficiencia del procesamiento de consultas siempre que el resultado no cambie.
La optimización de consultas relacionales es objeto de mucha investigación teórica, y el optimizador de
consultas de Oracle continúa mejorando en cada versión de Oracle Database. Volveremos al tema del ajuste
de consultas SQL en el Capítulo 17.