ОБ АВТОРАХ
Вильям Дж. Пэйдж (мл.) (William G. Page, Jr.) — специалист в области обработки данных с 11-летним стажем. Он начал свою деятельность с должности статистика в Бюро переписи США (U.S. Census Bureau) в Суитленде, штат Мэриленд. Работая статистиком, он по-настоящему увлекся программированием, которое с тех пор стало делом всей его жизни. Вильям занимался программированием во многих областях — статистике, научных исследованиях, системах обработки данных и др. Он стал профессионалом, владеющим множеством языков программирования, освоил различные операционные системы, был системным администратором как систем Sun, так и баз данных Sybase/Oracle. С 1997 года Пэйдж работает в фирме Mitretek Systems, Маклин (McLean), штат Вирджиния, которая представляет собой гражданский филиал Mitre Corporation. Являясь ведущим специалистом фирмы в области баз данных, в сферу интересов которого входят вопросы проектирования и повышения производительности систем, В. Дж. Пэйдж основное внимание уделяет программным продуктам Oracle.
В 1986 году Вильям получил степень бакалавра философии и математики в Университете штата Северная Каролина, Чапел-Хилл. Степень магистра компьютерных наук он получил в 1993 году в Технологическом институте штата Вирджиния (Virginia Tech) за работы в области операционных систем и баз данных. В его дальнейшие планы входит защита докторской диссертации в области применения методов искусственного интеллекта в системах баз данных, баз знаний и в экспертных системах. В настоящее время он занимается проблемой распространения реляционной модели на объектно-ориентированные системы, а также методами построения объектно-ориентированных и сверхбольших баз данных.
Дэвид Остин (David Austin) в настоящее время готовит новый курс для разработчиков в Oracle Corporation. Работая более 20 лет в области обработки данных, он опробовал множество систем на самых различных платформах, а на протяжении последних 5 лет отдает предпочтение продуктам Oracle. Дэвид работает как в учебных заведениях, так и в производственных фирмах, занимаясь, в основном, Oracle Parallel Server и аналогичными технологиями. Прежде чем перейти в Oracle Corporation, он работал администратором базы данных и системным администратором. Именно тогда Остин и познакомился с первой версией Oracle Parallel Server — версией 6.2. Дэвид имеет два диплома бакалавра, один — по математике и английскому языку, второй — по прикладной математике, которые он получил в Университете штата Колорадо, где одним из первых занялся исследованием параллельных структур. Дэвид — сертифицированный администратор баз данных Oracle. Его e-mail — [email protected].
Виллард Берд II (Willard Baird II) занимается исследованием систем обработки данных уже 15 лет, из которых последние 10 он посвятил именно базам данных. С базами данных Oracle Виллард работает с 1991 года. О результатах своих исследований он докладывал на Международной неделе пользователей Oracle (International Oracle Users Week) и на конференции по безопасности сетей NetSec. Он организовал однодневный семинар по безопасности систем Oracle, в рамках которого рассматривались методика проектирования и организация обслуживания баз данных в аспекте обеспечения безопасности. Некоторое время Виллард посвятил преподавательской работе в Университете Южной Флориды, где читал курс по современным технологиям баз данных. Берд 9 лет работал администратором баз данных Oracle в банковской сфере, где приобрел практический опыт организации надежной защиты данных в таких системах. В настоящее время Виллард — сертифицированный администратор баз данных Oracle. С ним можно связаться по электронной почте ([email protected]).
Николас Чейз (Nicholas Chase) разрабатывает Web-узлы на базе Oracle для таких компаний, как Lucent Technologies, Sun Microsystems и Oracle. Первый свой e-mail Николас получил в 1989 году. Прежде чем заняться Web, он был физиком, преподавателем вуза, инженером по радиационной безопасности, редактором журнала научной фантастики, мультимедиа-инженером и, наконец, преподавателем Oracle. В настоящее время он является консультантом по безопасности компьютерных систем. Николас живет во Флориде с женой Сарой. Его e-mail — [email protected].
Джо Дуэр (Joe Duer) — аналитик и администратор баз данных Oracle, специализирующийся на разработке Web-приложений с использованием Oracle’s Application Server и Database Server. Он разрабатывает объектно-ориентированные системы с помощью Java и C++. Его e-mail — [email protected]; начальную страницу можно найти по адресу http://www.netcom.com/~joeduer.
Томас Гаспер (Tomas Gasper) работает администратором баз данных в фирме Energizer Battery Co., Сент-Луис, штат Миссури. За время своей деятельности он перепробовал все специальности, имеющие отношение к эксплуатации и проектированию систем баз данных: был администратором базы данных, системным администратором UNIX и Windows NT, а также системным программистом. Поскольку ранее его работа была связана с оборонной промышленностью, он обожает копаться в экзотических и уникальных компьютерных системах. Его хобби — эксперименты с Linux, Web-приложениями и, конечно, путешествия по Internet. С Томасом можно связаться по адресу [email protected].
Дэн Хотка (Dan Hotka), директор European Operations for Platinum Technology; работает в компьютерной индустрии свыше 21 года, из которых более 15 — с продуктами Oracle. Это выдающийся эксперт по Oracle, начиная со времен Oracle V.4.0. Дэн является соавтором многих популярных книг, посвященных Oracle, часто публикуется в специализированных журналах и выступает с докладами на конференциях, посвященных Oracle. Его e-mail — [email protected].
Мэниш Д. Какаде (Manish D. Kakade) работает в компании Asea Brown Boveri (ABB) в городе Рэлей, Северная Каролина. Его должность — старший консультант по информационным системам, а основная специализация — администрирование баз данных Oracle, резервное копирование и восстановление, а также повышение производительности баз данных, для чего он создает различные программные инструменты и сценарии. До прихода в ABB Мэниш работал в Lucent Technologies в Аллентауне, штат Пенсильвания, и Tata Consultancy Services в Бомбее, Индия, где он также занимался вопросами использования Oracle.
Виджай Лунават (Vijay Lunawat) — технический специалист Oracle Corporation; сейчас живет в Орландо, штат Флорида. Уже более 10 лет Лунават занимается базами данных. Он был разработчиком, администратором баз данных, консультантом и специалистом по сопровождению. Виджай часто привлекается для проведения занятий со специалистами компании Oracle.
Бэтти Пэйдж (Betty F. Page) работает в Бюро переписи США (U.S. Census Bureau) в Суитленде, штат Мэриленд; ее специализация — поддержка баз данных. Она работает в качестве администратора и разработчика в области обработки данных уже более 13 лет, в том числе с СУРБД Oracle — с 1992 года. Впрочем, в последнее время основная область ее интересов — ее дети, одному из которых 3 года, а второму 7 месяцев.
Правин Шарма (Praveen Sharma) — старший консультант по продажам Oracle Corporation, имеющий диплом в области информационных систем и степень бакалавра электротехники. Его специализация — установка, перенос данных, настройка баз данных Oracle8 и Oracle8i. До прихода в Oracle Corporation Правин был старшим разработчиком в Hoffman la Roche и Brystol Myers Squibb. Его e-mail — [email protected].
Мехрай Чаккар (Meghraj Thakkar) сейчас работает в Quest Software, Австралия. До этого он был главным техническим аналитиком в Oracle Corporation. Он — обладатель диплома магистра компьютерных наук и диплома бакалавра электроники. Кроме того, его квалификация подтверждена сертификатами ряда ведущих компьютерных фирм — Microsoft, Novell, Lotus. Мехрай — соавтор множества книг, посвященных различным базам данных, в первую очередь — Oracle.
ПОСВЯЩЕНИЕ
С любовью главным людям в моей жизни — BF, LM и BC
БЛАГОДАРНОСТИ
Я благодарен Ксаба Егихази (Csaba Egyhazy), Джеймсу Хатчинсону (James Hutchinson) и моим учителям, которые так повлияли на меня. Спасибо всем моим друзьям из Бюро переписи. И, конечно, спасибо моей семье за любовь, понимание и поддержку.
— Вильям Дж. Пэйдж (мл.)
Введение
- Для кого предназначена эта книга
- Какую версию использовать — Oracle7, Oracle8 или Oracle8i
- Содержание книги
- Как пользоваться этой книгой
ДЛЯ КОГО ПРЕДНАЗНАЧЕНА ЭТА КНИГА
В последние годы база данных Oracle стала одной из наиболее популярных платформ баз данных в мире. Хотя компания Oracle в основном специализируется на базах данных больших корпораций или правительственных учреждений, требующих больших возможностей обработки данных, она предлагает в последнее время много продуктов, рассчитанных на небольшие фирмы (и соответственно небольшие базы данных). Особенно способствует распространению Oracle возможность работать на платформе Windows NT.
Эта книга написана для профессионалов в использовании Oracle. В первую очередь, она предназначена для администраторов баз данных Oracle — от среднего уровня до экспертов; книга будет полезна и другим профессионалам в этой области — разработчикам, конструкторам, инженерам и архитекторам. Данное издание подойдет и для конечных пользователей баз данных, в особенности для тех, кто имеет опыт работы с Oracle или другими реляционными базами данных. Найдут нужную для себя информацию также администраторы и разработчики Web, которые хотят хранить данные в корректно построенной и хорошо отлаженной базе данных Oracle. Администраторы UNIX и Windows NT смогут найти здесь полезную информацию для выполнения своих обязанностей по обслуживанию продуктов Oracle.
В книге, в первую очередь, рассматриваются вопросы реализации и использования баз данных Oracle, их администрирования, разработки и настройки, но при этом она предоставляет и сведения в области реляционных баз данных в целом. Авторы книги — профессионалы, ранее работавшие в промышленных, научных, правительственных учреждениях и в Oracle Corporation. Книга насыщена различными советами, предостережениями и примечаниями, родившимися из ежедневной практики использования баз данных Oracle.
КАКУЮ ВЕРСИЮ ИСПОЛЬЗОВАТЬ — ORACLE7, ORACLE8 ИЛИ ORACLE8I
Как большой путь начинается с маленького первого шага, так и эта книга начинается с маленького рассказа об эволюции Oracle, который поможет вам пройти через все главы книги.
Когда в этой книге упоминается Oracle7, имеется в виду Oracle7.x, а именно — Oracle7.3.x. Когда мы говорим об Oracle8, подразумевается Oracle8.0.x, а Oracle8i означает Oracle8.1.x. Если вы еще не запутались, то сообщаем, что под Oracle8.x подразумеваются как Oracle8, так и Oracle8i…
В первом выпуске Oracle8 было много новых возможностей и опций по сравнению с Oracle7, однако само ядро СУРБД не было полностью переписано. Oracle8i находится в процессе подготовки к выпуску; ее ядро еще меньше отличается от ядра Oracle8, чем ядро Oracle8 от Oracle7. Oracle8i можно рассматривать как некоторое "надмножество" Oracle8.
Тем не менее они представляют собой два разных продукта, так же как Oracle7 и Oracle8. Это два "параллельных" продукта, и лишним подтверждением тому служит одновременность выпусков подверсий: стоит выйти, например, версии Oracle8.0.5, как тут же появляется версия Oracle8.1.5. Понятно, что Oracle8.0.x служит основой для Oracle8.1.x даже в большей степени, чем Oracle7 для Oracle8.
Поставим вопрос по-другому. Что может сделать Oracle8 такого, чего не может Oracle8i? Ничего, так как функционально Oracle8 — подмножество Oracle8i. А что же может сделать Oracle8i, чего не может Oracle8? Она предлагает целый ряд возможностей по работе с Internet. Наиболее важным отличием является использование встроенного языка Java в качестве языка базы данных, который может как совмещаться с SQL, так и замещать SQL; другое важное отличие — встраивание Web-сервера и платформы разработки (WebDB). Как утверждает фирма Oracle, разработка (не поддержка!) Oracle8.0.x прекращается на версии Oracle8.0.6 и после этого Oracle8i будет полностью замещать Oracle8.
Вторым встает вопрос о взаимоотношении Oracle Application Server (OAS) и других продуктов, например Developer, включающих возможности разработки для Web. В целом, WebDB является функциональным подмножеством OAS. Другими словами, WebDB не способен на все то, на что способен OAS (более того, WebDB не охватывает даже все возможности таких инструментов, как Designer и Developer). Существующее перекрытие функциональных возможностей продуктов не позволяет отказаться от всего обширного инструментария, пользуясь исключительно OAS.
Oracle8i представляет собой отличное средство для приложений от малых до средних (например, уровня рабочей группы или отдела) с Web-спецификой. Для больших же многоуровневых приложений требуются дополнительные инструменты — OAS, Designer или Developer.
СОДЕРЖАНИЕ КНИГИ
Книга состоит из 9 частей, 41 главы и 2 приложений. Каждая часть концептуально продолжает предыдущую, основываясь на ее материале.
Часть I. Принципы организации систем управления базами данных
Глава 1, "Базы данных, СУБД и реляционная модель", рассматривает глобальные вопросы: что такое база данных, эволюция баз данных, сравнение систем управления базами данных (СУБД) и систем управления реляционными базами данных (СУРБД). Здесь же кратко описывается реляционная модель.
Глава 2, "Логическое проектирование баз данных и нормализация", описывает модели ERD и теорию нормализации, конкретные примеры различных нормальных форм в действии.
Глава 3, "Физическое проектирование баз данных и технические средства", освещает вопросы аппаратного обеспечения, физического конструирования баз данных, разработки программного обеспечения, включая денормализацию, выбор корректной платформы, операционной системы и принципов физического конструирования.
Глава 4, "Решения Oracle", рассматривает историю и перспективы Oracle, а также вопросы реляционности и реализации базы данных Oracle.
Часть II. СУРБД Oracle7.X
Глава 5, "Архитектура базы данных Oracle", описывает механизмы хранения информации в базе данных Oracle. Здесь вы найдете сведения о файлах данных, таблицах, индексах и других объектах, а также детальное описание работы и взаимодействия объектов.
В главе 6, "Архитектура экземпляра базы данных Oracle", завершается описание сервера баз данных: структур памяти и процессов, выполняемых базой данных Oracle. Главы 5 и 6 дают полное представление о внутренней работе СУРБД Oracle.
Глава 7, "Среда Oracle", переходит от абстрактных вопросов, рассмотренных в предыдущих главах, к конкретным темам установки Oracle и описанию OFA — стандарта оптимальной гибкой архитектуры.
Глава 8, "Администрирование баз данных Oracle", посвящена редкому для книг о базах данных вопросу — обзору жизненного цикла базы данных, описанию задач администратора базы данных и других задач, которые приходится решать при разработке и создании базы данных Oracle.
Часть III. СУРБД Oracle8.x
Глава 9, "Преобразование базы данных Oracle7.x в базу данных Oracle8.x", описывает три основных метода миграции, соответствующий инструментарий и возникающие при переносе баз данных проблемы.
Глава 10, "Секционирование", рассказывает о новых возможностях логического секционирования таблиц, индексов и их поддержки в Oracle.
Глава 11, "Использование больших объектов (LOB)", посвящена истории больших бинарных объектов (LOB). В ней рассматриваются их реализация в Oracle7 и Oracle8, разница между LOB и BFILE в Oracle8 и множество примеров создания и использования LOB.
В главе 12, "Объектно-ориентированный подход", описывается объектно-ориентированная технология в базах данных и обсуждается ее применение в Oracle.
Глава 13, "Работа в сети с Net8: новые возможности и концепции", посвящена компонентам и функциям Net8, а также новой утилите Connection Manager. Здесь же рассматриваются такие новые возможности и концепции, как концентрация соединений и пул подключений.
Глава 14, "Расширенные возможности Oracle8i", описывает новые возможности Oracle8, в том числе новый ROWID, новое управление паролями, инструментарий Recovery Manager и Advanced Queuing и др.
Глава 15, "Обзор новых инструментов Oracle8i", представляет собой обзор отличий Oracle8i от Oracle8, включая такие важные моменты, как встроенный язык Java, WebDB, Internet File System, interMedia и др.
Часть IV. Настройка производительности
В главе 16, "Основные принципы настройки производительности", рассказывается о физическом конструировании баз данных с точки зрения настройки базы данных Oracle и повышения ее производительности.
В главе 17, "Настройка производительности приложения", описываются работа оптимизатора Oracle, типичные проблемы, возникающие при настройке, и вопросы написания эффективных запросов.
Глава 18, "Настройка памяти", посвящена настройке основных структур памяти Oracle, включая разделяемый пул, кэш и сортировку, и управлению ими. Здесь также рассказывается об оптимальной настройке операционной системы.
В главе 19, "Настройка системы ввода-вывода", вы познакомитесь с различными аспектами ввода-вывода в Oracle, в том числе мониторингом и настройкой табличных пространств и файлов данных, блоков и экстентов, сегментов отката и журналов.
Глава 20, "Особенности настройки Oracle8.x", дополняет главы этой части специфическими вопросами работы с Oracle8i.
Часть V. Управление базой данных Oracle
Из главы 21, "Управление хранением данных", вы узнаете, как создавать объекты базы данных Oracle (от таблиц до блоков) и управлять ими.
Глава 22, "Анализ использования ресурсов", поможет вам в выявлении пользователей, процессов и запросов, вызывающих проблемы при работе базы данных или "пожирающих" ее ресурсы. Вопросы, которым посвящена эта глава, представляют собой ключ к эффективной работе с базой данных.
Безопасность и защита баз данных, работа с пользователями, ролями и объектами освещаются в главе 23, "Обеспечение защиты базы данных".
Любимая и одновременно ненавистная администраторам баз данных тема (резервное копирование и восстановление базы данных) подробно рассматривается в главе 24, "Резервное копирование и восстановление".
Глава 25, "Обеспечение целостности данных", посвящена концепциям (и их реализации в Oracle) целостности баз данных, ссылочной целостности, ограничениям и триггерам.
Часть VI. Интерфейсы и утилиты Oracle
В главе 26, "SQL*Plus для администраторов", описывается SQL*Plus с точки зрения администратора баз данных.
В главе 27, "Oracle Enterprise Manager", вы познакомитесь с утилитой администрирования баз данных Oracle Enterprise Manager (OEM), причем с ее последней версией — OEM 3.x.
Глава 28, "Азы PL/SQL", будет полезна как опытным администраторам, так и начинающим разработчикам. Здесь вы узнаете о языке PL/SQL, его основных элементах, управляющих структурах, а также о способах построения процедур и пакетов.
Глава 29, "Использование хранимых подпрограмм и пакетов", продолжает тему построения процедур и пакетов и знакомит читателя с преимуществами использования хранимых процедур. Большое внимание уделяется также пакетам, которые при правильном использовании могут существенно облегчить выполнение обязанностей администратора или разработчика баз данных.
В главе 30, "Использование утилит импорта и экспорта", вы познакомитесь с утилитами экспорта и импорта, их применением и решением возникающих при этом проблем.
Глава 31, "Загрузчик SQL*Loader", посвящена утилите загрузки файлов SQL*Loader и возникающим при ее использовании проблемам.
В главе 32, "Designer для администраторов", содержится информация, необходимая для корректного администрирования и поддержки Designer 2000.
Часть VII. Сетевые возможности Oracle
Глава 33, "Основы работы в сетях с использованием Oracle", посвящена работе в сети с точки зрения Oracle и основных характеристик SQL*Net и Net8, а также инсталляции и настройке сетевых продуктов Oracle.
В главе 34, "Расширенные средства защиты", рассказывается о настройке и использовании возможностей SQL*Net, Net8 и Advanced Security Option, включая вопросы работы PKI и SSL.
Часть VIII. Oracle Application Server
В главе 35, "Введение в Oracle Application Server", речь идет об архитектуре, установке и администрировании Oracle Application Server 4.x. Глава особенно полезна тем, кто занимается интеграцией Oracle и Web.
Глава 36, "Компоненты Oracle Application Server", посвящена отдельным составляющим Oracle Application Server — Web Listener, Web Request Broker и др.
Основная тема главы 37, "Установка и настройка OAS", — процессы инсталляции и настройки Oracle Application Server и решение возникающих при этом проблем.
Часть IX. Параллелизм и распределенные среды
Глава 38, "Организация параллельных запросов", посвящена Parallel Query Option, в том числе использованию Parallel Query в запросах, DML и некоторым другим аспектам параллельной обработки запросов.
В главе 39, "Управление параллельным сервером", приводится информация по архитектуре и использованию Oracle Parallel Server.
Глава 40, "Управление распределенными СУРБД", основана на материале части V, "Управление базой данных Oracle", и посвящена специфике администрирования в распределенной среде.
Глава 41, "Управление репликацией", является продолжением предыдущей главы и детально рассматривает вопросы репликации.
Приложения
В приложении А, "Использование Oracle на платформе Solaris", содержится информация, специфичная для разработки, конфигурирования, администрирования и настройки баз данных Oracle в UNIX, в частности — в Solaris System V Release 4 (SVR4).
Приложение Б, "Использование Oracle на платформе Windows NT", посвящено специфическим вопросам функционирования Oracle в среде Windows NT.
КАК ПОЛЬЗОВАТЬСЯ ЭТОЙ КНИГОЙ
Эта книга представляет собой и учебное пособие, и справочник. Вы можете использовать ее так, как сочтете нужным. Мы бы советовали вам сперва воспользоваться ею, как учебником, а затем держать ее под рукой, чтобы обращаться к ней, как к справочнику, в трудную минуту.
Опытные администраторы могут пропустить при чтении часть I, "Принципы организации систем управления базами данных", а часть II, "СУРБД Oracle7.", просмотреть по диагонали, освежив в памяти сведения об Oracle7. Те, кто хорошо знакомы с Oracle7, могут переходить непосредственно к части III, "СУРБД Oracle8.x". Администраторам с небольшим опытом работы с Oracle мы рекомендуем ни в коем случае не пропускать начало книги.
В данной книге достаточно много конкретных примеров, которые помогут вам как в понимании излагаемого материала, так и в решении практических задач.
Эта книга принадлежит вам, и вам решать, как ее использовать. Не забывайте только, что это одновременно и учебник, и справочник, вобравший в себя опыт многих людей высочайшей квалификации.