Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 98
Текст из файла (страница 98)
Есть и другие причины, по которым можно обратиться к СУБД. ° Защита данных. СУБД защищают данные от случайной порчи, связанной со сбоями аппаратного обеспечения, ошибками носителей и приложений. ° Эффективность. СУБД основаны на эффективных алгоритмах, предназначенных для работы с большими объемами данных. ° Многопользовательский режим. Множество пользователей могут работать с базой данных одновременно. ° Работа с несколькими приложениями.
Несколько приложений могут одновременно считывать данные из базы и записывать их туда. База данных— нейтральный посредник, обеспечивающий взаимодействие между программами. ° Качество данных. Вы можете указать правила, которым должны удовлетворять данные. СУБД может контролировать качество данных в дополнение к тому контролю, который обеспечивается приложениями. ° Распределенность данных. Данные могут быть разделены между разными сайтами, организациями и платформами. СУБД обеспечивает согласованность фрагментированных данных. ° Безопасность.
СУБД позволяет разрешить работу с данными только ограниченному кругу авторизованных пользователей. 19.1.2. Концепции реляционных баз данных Реляционная база данных (ге!абопа! дагаЬазе) хранит данные в виде таблиц. Реляционная СУБД (ге!ат1опа! ОВМБ — ВОВМЯ) управляет таблицами данных и связанными структурами, которые повышают функциональность и эффективность использования таблиц. РСУБД значительно выиграли от наличия ясного определения (изобретателем реляционных баз данных был Е.Р. СоИ) и стандартного языка (ЯО1. [Ме!гоп-93]). Все РСУБД поддерживают основные команды ЯО!., посредством которых можно определять таблицы, работать с данными в этих таблицах и контролировать доступ к ним. РСУБД отличаются друг от друга поддерживаемыми типами данных, оптимизацией, доступом из программ и системными данными. Стандарт 5Я1 постепенно охватывает все более широкие области его применения.
Три главных аспекта РСУБД вЂ” структура данных, операторы и ограничения. ° Структура данных. Реляционная база данных представляет собой совокупность таблиц. Каждая таблица имеет конкретное количество столбцов и произвольное число строк. В каждой ячейке таблицы хранится определенное значение. На рис. 19.1 показан пример из двух таблиц. Таблица 19.1. Введение 411 Ретзоп (Человек) состоит из пяти столбцов и четырех строк; таблица СотРапу (Компания) состоит из трех столбцов и трех строк. Полужирным выделены столбцы, в которых записывается основной ключ (рптагу 1геу)— о том, что это такое, будет рассказано ниже.
Обратите внимание, что )ас1г Вгои и нигде не работает. Значение ии11 означает, что фактическое значение атрибута в данной строке неизвестно или неприменимо. В РСУБД используются специальные методы ускорения доступа, такие как индексирование, хэширование и сортировка, потому что обычные таблицы работают слишком медленно для большинства практических задач.
Эти методы реализованы прозрачно для пользователя н не видны командам записи и чтения. РСУБД самостоятельно определяет, в каких случаях для ускорения доступа следует использовать соответствующую методику, и задействует ее. Обновление вспомогательных структур при изменении содержимого таблиц также осуществляется автоматически. егвоп $аЫе Согпрапу ЫЫе Рис. 19.1.
Пример базы данных из двух таблиц Операторы. Язык БО1. содержит операторы для работы с таблицами. Оператор зе!есГ считывает данные из таблицы. Синтаксис выглядит примерно следующим образом (ключевые слова мы выделили прописными буквами): 5ЕЬЕСТ спнсокетолбнов ГНОМ спнсоктаблнн ИНЕКЕ условнеистннно С логической точки зрения СУБД объединяет все таблицы в одну временную таблицу (фактическая реализация гораздо более эффективна).
Аргумент оператора ГНОМ показывает, из каких столбцов нужно считывать данные. Условие %НЕКЕ позволяет выбрать определенные строки. В ответ на запрос РСУБД возвращает полученные данные. В языке БО) имеются также команды для добавления, удаления и обновления данных в таблицах. Интерактивные команды БО). ориентированы на работу с множествами. Они оперируют целыми таблицами, а не отдельными строками или значениями. 412 Глава 19 ° Базы данных Аналог БО!.
для работы с приложениями позволяет оперировать конкретными строками. ° Ограничения. РСУБД может накладывать на данные множество ограничений, которые определяются в составе структуры базы данных. Если данные не удовлетворяют какому-либо из ограничений, РСУБД откажется сохранять их и вернет пользователю сообщение об ошибке. Возможный или потенциальный ключ (саван)асе )геу) — это сочетание столбцов, уникально идентифицирующих каждую строку в таблице. Комбинация должна быть минимальной, то есть в нее должны входить только те столбцы, которые необходимы для уникальной идентификации.
Ни один столбец в возможном ключе не может содержать нулевые значения. Основной ключ (рншагу )геу) — это возможный ключ, который предпочтительнее всего использовать для обращения к записям таблицы. Основной ключ у каждой таблицы может быть только один, и обычно он в ней имеется. На рис. 19.1 мы выделили основные ключи полужирным шрифтом. Внешний ключ (1оге!яп !геу) — это ссылка на возможный ключ (обычно— на основной ключ) в другой таблице. С его помошью таблицы соединяются между собой. На рис. 19.1 столбец етр1оувг (работодатель) является внешним ключом таблицы Рвгзоп (Человек), который ссылается на столбец сотрапуШ (идентификаторКомпании) в таблице Сатрапу (Компания). Недопустимо было бы установить значение етр1оуег для Мов Вгоап равным 1004, потому что в таблице Сатрапу это значение не определено. Если строку А1ах %Ъ18в~ удалить из таблицы Сотрапу, придется также удалить обе строки человека 11т Ят(гп или установить для них значение втр1оувг - пи!1.
Итак, связи между внешними и основными ключами служат для переходов между таблицами. 19.1.3. Нормальные формы Нормальная форма (поппа! 1опп) — это правило формирования таблиц реляционных баз данных, помогаюшее повысить согласованность их содержимого. Таблицы, удовлетворяющие нормальным формам высокого уровня, хранят меньшее количество избыточных или противоречивых данных.
Разработчики могут нарушать нормальные формы по каким-либо веским причинам, например для повышения производительности базы данных, которая чаще считывается, чем обновляется. Ослабление требований называется двнормализацивй (депоппа!!гас!оп). Очень важно стараться как можно точнее следовать нормальным формам и нарушать их только тогда, когда это действительно необходимо. Нормальные формы впервые стали использоваться в 70 — 80-х годах ХХ века. В те времена разработчики формировали базы данных, создавая списки требуемых полей, которые приходилось разбивать на осмысленные группы перед сохранением их в базы данных. Для этого и служили нормальные формы.
С их помощью поля разбиваются на группы на основании зависимостей между этими полями. 19.2. Сокращенная модель банкомата 413 К сожалению, зависимости слишком легко пропустить. Если это происходит, структура базы данных получается ущербной. Модели 1)М1. предоставляют более удобный способ для подготовки баз данных. Вместо того чтобы начинать с отдельных полей, разработчики мыслят сразу в терминах больших групп полей, то есть классов. Модели 1)М(. не исключают применения нормальных форм. Формы применимы к данным независимо от подхода, использовавшегося в процессе разработки.
Однако моделирование на языке 1)М1. делает ненужной проверку нормальных форм. Если разработчику удается построить цельную модель, она заведомо будет удовлетворять нормальным формам. Обратное также верно: плохая модель не будет удовлетворять нормальным формам. Более того, если разработчику не удается построить цельную модель, он, скорее всего, не сможет найти все внутренние зависимости между полями данных, необходимые для построения правильных нормальных форм. Модель строить не так сложно, как искать зависимости.
Вывод таков: разработчик может проверить нормальные формы после завершения моделирования, но такая проверка не является необходимой. 19.1А. Выбор СУБД Чтобы построить свое приложение, вы должны выбрать конкретную СУБД. Основные функции определены стандартом ЯЯ1., поэтому вам остается выбрать поставщика РСУБД исходя из прагматических соображений. ° Доля на рынке. Основными игроками являются Огас1е, 1ВМ и М1сгоэо»Г. Смогут ли другие компании бороться с ними, сказать сложно.
Вы можете также рассмотреть возможность использования РСУБД с открытым кодом, например МуЯЯ(. или РозгягеБЯ1.. ° Производитель и поддержка третьих фирм. РСУБД вЂ” это значительное вложение средств для компании; поддержка РСУБД требует постоянного взаимодействия с производителем или сторонними фирмами. ° Другие приложения.