СТАТЬЯ
07.02.01

содержание | следующая часть

ГЛАВА 1

РАЗРАБОТЧИК ПРИЛОЖЕНИЙ

Эта глава кратко обсуждает этапы, из которых состоит процесс проектирования и разработки приложения базы данных ORACLE. Более детальная информация, необходимая для понимания этих задач, представлена в последующих главах этого документа. Хотя специфика этих задач варьируется в зависимости от типа и сложности разрабатываемого приложения, в общем случае обязанности разработчика приложения включают:

  1. проектирование и разработку приложения базы данных
  2. проектирование структуры базы данных для этого приложения
  3. оценку требований к памяти базы данных для приложения
  4. специфицирование модификаций в базе данных для этого приложения
  5. передачу этой информации администратору базы данных
  6. настройку приложения в процессе его разработки

Оценка потребностей

Первым шагом в проектировании полезного приложения является определение проблемы, которую вы хотите решить. Важно, чтобы вы сосредотачивались не на данных как таковых, а, скорее, на том, как используются эти данные. При проектировании вашего приложения вы должны определить следующее:

  1. Кто будет использовать это приложение?
  2. Чего они пытаются достичь с помощью этого приложения?
  3. Как они будут выполнять эти задачи?
Вы должны привлечь конечного пользователя на как можно более ранней стадии проектирования. Это поможет устранить проблемы, которые могут проистекать из различного понимания целей данного приложения. Когда вы лучше поймете задачи, которые пытаются решить конечные пользователи приложения, вы сможете определить данные, которые необходимы для решения этих задач. На этом этапе вы должны посмотреть на каждую из задач и решить:
  1. Какие данные должны быть доступны для выполнения этой задачи?
  2. Как должны обрабатываться эти данные?
  3. Как могут быть осмысленно представлены результаты?
  4. Каковы потенциальные будущие применения этого приложения?
Важно, чтобы ваша аудитория имела ясное понимание того решения, которое предлагается вами. Не менее важно, чтобы ваше приложение разрабатывалось с учетом изменяющихся потребностей этой аудитории. -

Проектирование базы данных

С этого момента вы готовы начать проектирование вашей модели данных. Эта модель поможет вам определить, как эти данные могут наиболее эффективно храниться и использоваться. Для отображения реального мира в систему управления реляционной базой данных часто используется модель связей между сущностями. Модель связей между сущностями категоризует каждый элемент системы либо как сущность (лицо, место, вещь), либо как связь, отношение между сущностями. Оба этих конструкта представляются одной и той же структурой: таблицей. Например, в системе ввода заказов как изделия, так и заказы являются сущностями. Информация об изделиях и информация о заказах представляется таблицами. Отношение, показывающее, какие изделия входят в каждый заказ, также представляется еще одной таблицей.

Приложение, реализующее модель связей между сущностями, требует выполнения следующих шагов.

  1. Во-первых, идентифицируйте сущности вашей системы, и сконструируйте таблицу для представления каждой сущности.
  2. Во-вторых, идентифицируйте отношения между этими сущностями, и либо расширьте текущие таблицы, либо создайте новые таблицы для представления этих отношений.
  3. В-третьих, идентифицируйте атрибуты каждой сущности, и расширьте таблицы, включив в них эти атрибуты.
При моделировании системы посредством модели связей между сущностями вы будете часто включать шаг, называемый нормализацией. Большинство учебников по проектированию баз данных могут научить вас, как достигать третьей нормальной формы. Каждая таблица должна иметь ровно один первичный ключ, и, в третьей нормальной форме, все данные в таблице зависят исключительно от первичного ключа этой таблицы. Вы можете, разумеется, найти необходимым время от времени нарушать нормальную форму, чтобы достичь желаемого уровня эффективности. Надлежащее применение модели связей между сущностями приводит к построению хорошо спроектированных таблиц. Этот комплект хорошо спроектированных таблиц обладает следующими преимуществами:
  1. сокращением избыточных данных в системе, что избавляет от необходимости обновлять дубликаты и устраняет риск нарушения согласованности из-за наличия дубликатов данных
  2. сравнительно большими возможностями эффективного ввода в действие ограничений целостности
  3. улучшенными возможностями адаптации к росту и изменению системы
  4. увеличением продуктивности, основанным на гибкости, присущей хорошо спроектированным реляционным системам Oracle предоставляет для проектирования баз данных продукты CASE*Dictionary, CASE*Method и CASE*Designer, которые могут помочь улучшить, автоматизировать и документировать ваши проекты. Для дополнительной информации обратитесь к документации CASE.
Определив общую схему таблиц в вашей базе данных, вы должны спроектировать содержимое этих таблиц. Этот процесс включает выбор правильного типа данных для каждого столбца и назначение каждому столбцу осмысленного имени. Информация о том, как подбирать тип данных для столбца ORACLE, содержится в главе 3 этого документа. Если вы создаете приложение, которое будет выполняться в распределенной базе данных, то вы должны также определить места хранения этих данных и все связи, необходимые для доступа к этим данным через сеть; для дополнительной информации обратитесь к главе 11.

Проектирование приложения

Закончив проектирование вашей базы данных, вы можете начинать проектирование самого приложения. Этот процесс также является интерактивным, и может заставить вас пересмотреть ваш проект базы данных. По мере возможности вы должны привлекать вашу аудиторию к этим проектным решениям. Вы должны сделать ваше приложение доступным пользователям как можно раньше, чтобы получать от них обратную связь, необходимую для уточнения вашего проекта. Для помощи в разработке и реализации приложения существует много инструментов, как от Oracle, так и от других поставщиков. Ваша первая задача - оценить имеющиеся инструменты и выбрать из них наиболее подходящие.

Использование существующих возможностей

Затем вы должны определить, как реализовать ваши требования с помощью средств, предлагаемых как ORACLE, так и любыми другими инструментами и утилитами, которые вы выбрали на предыдущем шаге. Средства и инструменты, выбираемые вами для реализации вашего приложения, могут существенно сказаться на производительности этого приложения. Чем больше усилий вы вложите в проектирование эффективного приложения, тем меньше времени потребуется вам затратить на настройку готового приложения. Ниже перечислены некоторые возможности ORACLE, наиболее полезные для разработчиков приложений. Каждое из средств, описанных здесь, подробно обсуждается в последующих главах этой книги.

Ограничения целостности

Ограничения целостности позволяют вам определить некоторые требования к данным, которые могут включаться в таблицу, и гарантировать, что эти требования будут соблюдаться независимо от того, как вводятся данные. Эти ограничения включаются как часть определения таблицы, и не требуют никакого программирования; рекомендации по их применению приводятся в главе 6.

Хранимые процедуры и пакеты

Процедуры общего применения можно написать на PL/SQL один раз, и сохранить их в базе данных для неоднократного использования различными приложениями. Это гарантирует согласованность поведения между приложениями, и может сократить ваше время на разработку и отладку. Взаимосвязанные процедуры можно группировать в пакеты, и хранить спецификацию пакета отдельно от тела пакета. Тело пакета можно изменять и перекомпилировать, не затрагивая спецификацию пакета. Это позволяет вам вносить в тело пакета изменения, которые остаются невидимыми конечным пользователям и не требуют перекомпиляции объектов, обращающихся к спецификации данного пакета. Для дополнительной информации обратитесь к главе 7.

Триггеры базы данных

Сложные организационные правила, которые не могут быть реализованы посредством декларативных ограничений целостности, можно ввести в действие через триггеры. Триггеры, которые аналогичны хранимым процедурам, автоматически исполняются, когда выдается предложение триггера, независимо от пользователя или приложения. Для дополнительной информации обратитесь к главе 8. Триггеры базы данных могут найти такие разнообразные применения, как аудит, основанный на значениях, поддержка вычисляемых данных, ввод в действие комплексных правил защиты или целостности, а также дублирование данных между базами данных. За счет перемещения кода из вашего приложения в базу данных (посредством триггеров) вы можете гарантировать одинаковость поведения всех приложений.

Стоимостной оптимизатор

Метод стоимостной оптимизации использует статистики по таблицам вместе с информацией о существующих индексах при выборе плана исполнения для предложений SQL. Это позволяет даже неопытным пользователям выдавать сложные запросы, не беспокоясь об их производительности. Как разработчик приложения, вы в ряде ситуаций можете иметь больше знания о данных вашей таблицы, чем известно оптимизатору, и это может позволить вам выбирать лучшие планы исполнения. В таких случаях вы можете предоставлять оптимизатору советы, позволяющие ему выбрать должный план исполнения. Для дополнительной информации обратитесь к главе 5.

Разделяемый SQL

Разделяемый SQL позволяет множественным пользователям совместно использовать (разделять) единственную исполняемую копию процедуры или предложения SQL, что существенно сокращает требования к памяти. Если выдаются идентичные предложения SQL, разделяемая область SQL, использовавшаяся для обработки первого экземпляра предложения, повторно используется для обработки последующих экземпляров того же самого предложения. Вы должны совместно с АБД и другими разработчиками приложений выработать стандарты, которые позволили бы предложениям и блокам, выполняющим аналогичные задачи, использовать одни и те же разделяемые области SQL всегда, когда это возможно. Для дополнительной информации см. страницу 4-10.

Поддержка национальных языков

ORACLE поддерживает как однобайтовые, так и мультибайтовые схемы кодирования символов. Поскольку зависящие от языка данные хранятся отдельно от обрабатывающего их кода, вы можете легко добавлять новые языки и зависящие от языка средства (такие как форматы дат), не изменяя кода вашего приложения.

Блокировка

По умолчанию ORACLE предусматривает блокировку на уровне строк, что позволяет множественным пользователям обращаться к разным строкам одной и той же таблицы, не сталкиваясь с соперничеством за блокировки. Хотя это в высокой степени сокращает вероятность возникновения захватов, вы при проектировании приложения все-таки должны заботиться о том, чтобы избегать этих захватов.

Больше всего выигрывают от блокировки на уровне строк приложения интерактивной обработки транзакций (т.е. приложения, в которых множественные пользователи одновременно модифицируют разные строки одной и той же таблицы). Вы должны проектировать свои приложения с учетом этих средств. Помимо этого, блокировки ORACLE доступны вам для явного использования в приложениях. Эти блокировки предоставляются как часть пакета DBMS_LOCK, который описан в приложении A.

Профили

Профили могут использоваться для установления ограничений на использование системных ресурсов, как на индивидуальный запрос, так и на сессию. При проектировании приложений вы можете учесть возможность того, что пользователь может быть лишен возможности доступа к системе из-за ограничений на ресурсы. С помощью профилей вы можете предоставлять таким редко встречающимся пользователям ограниченный доступ к базе данных. В этом случае вам может потребоваться учесть их требования при формулировке вашего проекта. Профили обычно контролируются администраторами базы данных. Обратитесь к вашему АБД, чтобы выяснить, не требуется ли доступ к приложению дополнительным пользователям, и определить соответствующую аудиторию.

Последовательности

Вы можете применять последовательности для автоматической генерации уникальных ключей для ваших данных и координации таких ключей между множественными строками или таблицами. Генератор последовательных номеров устраняет очередь, которая возникала бы при генерации номеров программными средствами, за счет того, что блокирует последнее использовавшееся значение, а затем наращивает его. Последовательные номера могут также считываться из кэша последовательных номеров, вместо диска, что еще более увеличивает скорость их получения.

Соответствие промышленным стандартам

ORACLE разработан в соответствии с промышленными стандартами. Если ваши приложения должны удовлетворять таким стандартам, вам следует обратиться к документу ORACLE7 Server SQL Language Reference Manual за детальным объяснением вопросов согласованности ORACLE со стандартами SQL.

Написание SQL

Все операции, выполняемые с информацией в базе данных ORACLE, осуществляются с помощью предложений SQL. После того как вы завершите проектирование ваше приложения, вы должны будете начать написание предложений SQL, реализующих этот проект. Вы должны обладать глубоким пониманием SQL, прежде чем начнете писать ваше приложение. Общее описание того, как исполняются предложения SQL, приведено в главе 4 этого документа. Для более детальной информации о SQL обратитесь к документу ORACLE7 SQL Language Reference Manual. Вы можете существенно улучшить производительность вашего приложения путем настройки используемых им предложений SQL. Настройка предложений SQL подробно объясняется в главе 5 этого документа.

Обеспечение защиты в вашем приложении

Ваш проект приложения не будет полным, пока вы не определите требования защиты для этого приложения. Как часть проекта приложения, вы в свое время идентифицировали задачи, которые должен выполнять каждый пользователь или группа пользователей с помощью вашего приложения. Сейчас вы должны определить, какие привилегии необходимы пользователям для выполнения этих задач. Для безопасности базы данных важно, чтобы пользователи имели привилегий не больше, чем требуется для выполнения соответствующих задач. Заставив ваше приложение включать соответствующие роли, когда пользователь запускает приложение, вы можете гарантировать, что пользователь сможет иметь к базе данных лишь те возможности доступа, которые изначально спланированы вами. Поскольку роли обычно назначаются пользователям администратором базы данных, вы должны согласовать с вашим АБД, чтобы каждый пользователь имел доступ к ролям, требуемым вашему приложению для соответствующих задач. Обратитесь к главе 10.

Настройка приложения

Настройка приложения базы данных имеет две важных области, над которыми следует подумать:

  1. настройка ваших предложений SQL
  2. настройка проекта приложения
Информация о настройке предложений SQL, включая вопросы применения стоимостного метода оптимизации, включена в главу 5 этой книги, "Настройка предложений SQL". Настройку проекта приложения в идеале необходимо осуществить до того, как вы начнете реализовывать приложение. Прежде чем начать разрабатывать приложение, вы должны тщательно ознакомиться с каждым из средств, описанных в этом документе, и уточнить, какие средства лучше всего отвечают вашим требованиям. Некоторые проектные решения, которые вы должны рассмотреть, перечислены ниже.
  1. Реализуйте организационные правила через ограничения целостности, а не через программирование. Обсуждение того, когда следует использовать ограничения целостности
  2. Используйте PL/SQL вместо SQL, чтобы улучшить производительность. Описание того, как PL/SQL улучшает производительность
  3. Для дальнейшего улучшения производительности и сокращения перекомпиляций времени выполнения используйте пакеты
  4. Для генерации значений первичных ключей применяйте кэшированные последовательные номера
  5. Используйте обработку массивов, чтобы сократить число вызовов ORACLE
  6. Используйте для символьных данных тип данных VARCHAR2 вместо типа CHAR, который дополняет данные до фиксированной длины
  7. Храните данные LONG и LONG RAW в таблицах отдельно от связанных с ними данных, и используйте ссылочную целостность для связи с такими данными. Это позволит вам обращаться к связанным данным без необходимости считывать данные LONG и LONG RAW
Вы должны также поработать совместно с вашим АБД, чтобы определить, как можно настроить базу данных в соответствии с требованиями вашего приложения. Настройка базы данных обсуждается в документе ORACLE7 Server Administrator's Guide.

Сопровождение и обновление приложения

При обновлении существующего приложения или написании нового приложения для существующей базы данных вы должны следовать в основном тем же процедурам, которые были описаны выше в этой главе. Вы должны идентифицировать и понять потребности вашей аудитории, и спроектировать ваше приложение в соответствии с ними. Вы должны также тесно сотрудничать с администратором базы данных, чтобы определить следующее:

  1. какие существующие приложения доступны, и как они используются.
  2. какие данные доступны, какие из них могут быть устранены, и не должны ли быть собраны какие-либо дополнительные данные.
  3. не требуются ли какие-либо модификации в структуре базы данных, и как осуществить эти изменения наиболее гладко.
содержание | следующая часть

Дополнительную информацию Вы можете получить в компании Interface Ltd.

Отправить ссылку на страницу по e-mail
Обсудить на форуме Oracle


Interface Ltd.
Тel/Fax: +7(095) 105-0049 (многоканальный)
Отправить E-Mail
http://www.interface.ru
Ваши замечания и предложения отправляйте автору
По техническим вопросам обращайтесь к вебмастеру
Документ опубликован: 07.02.01