Диго С.М. Базы данных проектирование и использование (1084447), страница 7
Текст из файла (страница 7)
Рис. 1.18. Схема реляционной модели:
Другой отличительной чертой реляционных моделей является ограничение на внутризаписную структуру: записи имеют линейную структуру и могут содержать только простые поля. Эти особенности играют решающую роль при проектировании структуры БД.
Третьей отличительной особенностью реляционных моделей является использование теоретико-множественных языковых средств: реляционной алгебры или реляционного исчисления.
1980-е гг. были временем интенсивного развития реляционных систем. В 1992 г. уровень продаж реляционных СУБД впервые превысил уровень продаж нереляционных СУБД. Но до 90% данных предприятий хранилось к этому моменту в нереляционных базах данных на мейнфреймах.
В связи с тем, что в настоящее время основной сегмент рынка занят именно реляционными СУБД, в дальнейшем главное внимание уделим этим системам. В приложении 1 даны основные понятия теории реляционных баз данных, знание которых необходимо при работе с ними.
По типу хранимой информации БД делятся на документальные, фактографические и лексикографические. Среди документальных баз различают библиографические, реферативные и полнотекстовые.
К лексикографическим базам данных относятся различные словари (классификаторы, многоязычные словари, словари основ слов и т. п.).
В системах фактографического типа в БД хранится информация об интересующих пользователя объектах предметной области в виде «фактов» (например, биографические данные о сотрудниках, данные о выпуске продукции производителями и т.п.); в ответ на запрос пользователя выдается требуемая информация об интересующем его объекте (объектах) или сообщение о том, что искомая информация отсутствует в БД.
В документальных БД единицей хранения является какой-либо документ (например, текст закона или статьи), и пользователю в ответ на его запрос выдается либо ссылка на документ, либо сам документ, в котором он может найти интересующую его информацию.
БД документального типа могут быть организованы по-разному: без хранения и с хранением самого исходного документа на машинных носителях. К системам первого типа можно отнести библиографические и реферативные БД, а также БД-указатели, отсылающие к источнику информации. Системы, в которых предусмотрено хранение полного текста документа, называются полнотекстовыми.
В системах документального типа целью поиска может быть не только какая-то информация, хранящаяся в документах, но и сами документы. Так, возможны запросы типа «сколько документов было создано за определенный период времени» и т. п. Часто в критерий поиска в качестве признаков включаются «дата принятия документа», «кем принят» и другие «выходные данные» документов.
Специфической разновидностью баз данных являются базы данных форм документов. Они обладают некоторыми чертами документальных систем (ищется документ, а не информация о конкретном объекте, форма документа имеет название, по которому обычно и осуществляется его поиск), и специфическими особенностями (документ ищется не с целью извлечь из него информацию, а с целью использовать его в качестве шаблона).
В последние годы активно развивается объектно-ориентированный подход к созданию информационных систем. Объектные базы данных организованы как объекты и ссылки к объектам. Объект представляет собой данные и правила, по которым осуществляются операции с этими данными. Объект включает метод, который является частью определения объекта и запоминается вместе с объектом. В объектных базах данных данные запоминаются как объекты, классифицированные по типам классов и организованные в иерархическое семейство классов. Класс - коллекция объектов с одинаковыми свойствами. Объекты принадлежат классу. Классы организованы в иерархии.
По характеру организации хранения данных и обращения к ним различают локальные (персональные), общие (интегрированные, централизованные) и распределенные базы данных (рис. 1.19).
Рис. 1.19. Классификация базы данных по характеру хранения данных
и обращения к ним
Персональная база данных - это база данных, предназначенная для локального использования одним пользователем. Локальные БД могут создаваться каждым пользователем самостоятельно, а могут извлекаться из общей БД.
Интегрированные и распределенные БД предполагают возможность одновременного обращения нескольких пользователей к одной и той же информации (многопользовательский, параллельный режим доступа). Это привносит специфические проблемы при их проектировании и в процессе эксплуатации БнД. Распределенные БД, кроме того, имеют характерные особенности, связанные с тем, что физически разные части БД могут быть расположены на разных ЭВМ, а логически, с точки зрения пользователя, они должны представлять собой единое целое.
Технологии, которые, на первый взгляд, вроде бы находятся на разных концах спектра (локальная и распределенная обработка), на самом деле очень близки и различаются практически тем, как поддерживается связь между отдельными частями БД. В локальных системах поддержание этой связи не является централизованным, а в распределенных БнД связь должна поддерживаться СУБД. Совмещать идеи локальной работы и централизованного поддержания единой БД позволяет технология тиражирования, при которой средства СУБД обеспечивают тиражирование отдельных частей общей БД, локальное использование их, а затем согласование отдельных фрагментов БД в рамках единой базы данных.
Концепции централизованной и распределенной обработки данных гоже не так сильно различаются между собой, как кажется на первый взгляд. Так называемые клиент-серверные системы с тонким клиентом очень близки к централизованным базам данных.
Банк данных является сложной человеко-машинной системой, и распределяться по узлам сети могут не только БД, но и другие компоненты БнД. Причем сама БД при этом может быть и нераспределенной (например, при обеспечении многопользовательского доступа к централизованной БД в сети). Поэтому будем различать два понятия: распределенные БД и распределенные БнД. При этом под распределенным БнД будем понимать банк данных, в котором распределен хотя бы один его компонент.
Распределенные БнД, в свою очередь, могут быть классифицированы по разным признакам. Дополнительная информация о распределенных БнД будет дана в главе 10.
В [39] различают экстенсиональные (ЭБД) и интенсиональные (ИБД) базы данных. Последние строятся с помощью правил, определяющих их содержание, а не с помощью явного хранения данных в БД, как экстенсиональные БД.
Например, пусть имеется ЭБД, содержащая таблицу «Личность (Person)», которая содержит сведения о личности и среди полей которой есть поля «Фамилия_имя_отчество (FIO)», «Пол (Sex)». Можно построить в этой ЭБД вторую таблицу «Родитель (Parent)», которая содержит поля «Фамилия_имя_отчество» родителя (FIO) и «Имя_ребенка (Child)». С помощью правил можно определить, например, отношение «Отец (Father)», просто указав, что отец - это родитель, у которого пол - мужской. На ПРОЛОГЕ это отношение можно определить следующим образом:
father(X,Y):= person(X,male), parent(X,Y).
Если выполнить это правило, то получится отношение, которое содержит подмножество кортежей таблицы «Parent», таких, для которых верно указанное условие. Пользователю эти данные будут выданы в виде обычного отношения.
Данное определение ЭБД и ИБД можно расширить и на другой (не реляционный) тип БД, и на другой способ задания правил. В более общем виде можно сказать, что информацию можно передать и в виде данных, и в виде программ (строго говоря, программы тоже являются данными, но в русском языке нет подходящего термина, который можно было бы здесь употребить вместо слова «данные»).
БД классифицируются по объему. Особое место здесь занимают так называемые очень большие базы данных. Это вызвано тем, что для больших баз данных по-иному ставятся вопросы обеспечения эффективности хранения информации и обеспечения ее обработки.
1.3.2. Классификации СУБД
Рассмотрим теперь ряд классификационных признаков, относящихся к СУБД. По языкам общения СУБД делятся на открытые, замкнутые и смешанные. Открытые системы - это системы, в которых для обращения к базам данных используются универсальные языки программирования. Замкнутые системы имеют собственные языки общения с пользователями БнД.
По числу уровней в архитектуре различают одноуровневые, двухуровневые, трехуровневые системы. В принципе возможно выделение и большего числа уровней. Под архитектурным уровнем СУБД понимают функциональный компонент, механизмы которого служат для поддержки некоторого уровня абстракции данных (логический и физический уровень, а также «взгляд» пользователя - внешний уровень). Более подробно о каждом из названных уровней см. в разд. 1.5.1.
На рис. 1.20 сделана попытка совместить терминологию, встречающуюся в разных литературных источниках. В литературе широко используются понятия «внешняя», «концептуальная» и «внутренняя» модель/уровень (см., например, [28] и др.), «логический» и «физический» уровень [39], а также «внешняя схема», «подсхема», «схема хранения», просто «схема» и пр. Понятие «схема» с тем или иным уточнением обычно относится к описанию соответствующего уровня описания данных.
Нумерация уровней на рисунке условна, но, тем не менее, отражает их значимость (внутренняя модель может быть построена только на основе концептуальной; эти два уровня могут быть совмещены, но поддерживаются СУБД всегда; внешний уровень в архитектуре СУБД может отсутствовать).
Рис. 1.20. Классификация СУБД по числу уровней в архитектуре (пример трехуровневой архитектуры)
По выполняемым функциям СУБД делятся на информационные и операционные. Информационные СУБД позволяют организовать хранение информации и доступ к ней. Для выполнения более сложной обработки необходимо писать специальные программы. Операционные СУБД выполняют достаточно сложную обработку, например, автоматически позволяют получать агрегированные показатели, не хранящиеся непосредственно в базе данных, могут изменять алгоритмы обработки и т.д.
По сфере возможного применения различают универсальные и специализированные, обычно проблемно-ориентированные СУБД.
Системы управления базами данных поддерживают разные типы данных. Набор типов данных, допустимых в разных СУБД, различен. Кроме того, ряд СУБД позволяет разработчику добавлять новые типы данных и новые операции над этими данными. Такие системы называются расширяемыми системами баз данных (РСБД).
Дальнейшим развитием концепции РСБД являются системы объектно-ориентированных баз данных (СООБД), обладающие достаточно мощными выразительными возможностями, чтобы непосредственно моделировать сложные объекты.
По мощности СУБД делятся на настольные и корпоративные. Характерными чертами настольных СУБД являются сравнительно невысокие требования к техническим средствам, ориентация на конечного пользователя, низкая стоимость.
Корпоративные СУБД обеспечивают работу в распределенной среде, высокую производительность, поддержку коллективной работы при проектировании систем, имеют развитые средства администрирования и более широкие возможности поддержания целостности. Эти системы сложны, дороги, требуют значительных вычислительных ресурсов.