Системы управления базами данных. Основные модели баз данных

Каждая система БД реализует ту или иную модель данных, которая определяет правила порождения допустимых для системы видов структур данных, возможные операции над такими структурами, классы представимых средствами системы ограничений целостности данных. Таким образом, модель данных задает границы множества всех конкретных БД, которые могут быть созданы средствами этой системы.

Описание выбранной предметной области в терминах модели данных позволяет получить модель БД. Обычно выделяют три уровня моделей БД .

Мифологическая модель отражает информацию о предметной области без ориентации на конкретную СУБД (или даже на тип предполагаемой к использованию СУБД). В связи с этим некоторые авторы говорят о существовании инфологической модели предметной области, а не БД.

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

Физическая модель БД строится с учетом возможностей по организации и хранению данных, предоставляемых СУБД и используемой программноаппаратной платформой. Она, в частности, определяет используемые запоминающие устройства и способы организации данных в среде хранения.

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

Однако вернемся к рассмотрению моделей данных. Разные авторы приводят несколько различающиеся перечни существующих моделей данных. Например, в предлагается такой список моделей данных и периодов времени, когда в их разработке были получены основные результаты:

  • иерархическая (англ. hierarchical), конец 1960-х и 1970-е гг.;
  • сетевая (англ. network), 1970-е гг.;
  • реляционная (англ. relational), 1970-е и начало 1980-х гг.;
  • "сущность – связь" (англ. entity – relationship), 1970-е гг.;
  • расширенная реляционная (англ. extended relational), 1980-е гг.;
  • семантическая (англ. semantic), конец 1970-х и 1980-е гг.;
  • объектно-ориентированная (англ. object-oriented), конец 1980-х – начало 1990-х гг.;
  • объектно-реляционная (англ. object-relational), конец 1980-х – начало 1990-х гг.;
  • полуструктурированная (англ. semi-structured), с конца 1990-х гг. до настоящего времени.

Первыми появились модели данных, основанные на теории графов, – иерархическая и сетевая. Более подробно они рассмотрены ниже. Следующей появилась разработанная Э. Коддом (Edgar Codd) реляционная модель данных, основанная на математической теории множеств. На сегодняшний день она является самой распространенной, поэтому будет рассматриваться наиболее подробно. Вопросам, связанным с реляционной моделью и логическим проектированием реляционных баз данных, посвящены главы 4 и 5.

Модель "сущность – связь" была предложена П. Ченом (Peter Chen) в 1976 г. в качестве унифицированного способа описания предметной области. Как самостоятельная модель данных (в соответствии с приведенным выше определением) она развития не получила, но стала основой для создания инфологических моделей БД. Этап инфологического проектирования рассмотрен в главе 6.

Семантическая модель, так же как и модель "сущность – связь", используется для построения инфологических моделей. Только в этом случае пользовательские данные представляются в виде набора семантических объектов. Семантический объект – это именованная совокупность атрибутов, которая в достаточной степени описывает отдельный феномен (объект, явление и т.п.).

Объектно-ориентированная и объектно-реляционная модели данных появились в результате распространения объектно-ориентированного подхода в программировании. Объектная модель данных предлагает рассматривать БД как множество объектов, обладающих свойствами инкапсуляции, наследования и т.д. В 1989 г. был опубликован "Манифест систем объектно-ориентированных баз данных", а в 1991 г. образован консорциум ODMG (от англ. Object Data Management Group), который занялся разработкой стандартов. В 2000 г. была опубликована версия стандарта The Object Data Standard: ODMG 3.0, а в 2001 г. группа прекратила свою деятельность. Примерно в то же время велась активная работа по адаптации реляционной модели к требованиям объектно-ориентированного подхода к разработке ПО, что привело к появлению объектно-реляционной модели данных. Позднее объектные расширения были введены в стандарт языка SQL.

К полуструктурированным относят данные, в которых можно выделить некоторую структуру, но она недостаточно строгая по сравнению с реляционными структурами данных (или структурами других традиционных моделей данных) . Наиболее ярким примером полуструктурированных данных являются XML-документы (от англ. extensible Markup Language – расширяемый язык разметки). Действительный (англ. valid) XML-до- кумент должен соответствовать определенному формату описания (схеме), где заданы структура документа, допустимые названия элементов, атрибутов и т.д. Формат XML широко используется для обмена данными между приложениями, и его поддержка обеспечивается многими СУБД.

Виды моделей данных БД

Модели организации данных. Сетевые, реляционные, иерархические модели.

Ядром любой базы данных является модель данных. С помощью модели данных могут быть представлены объекты предметной области и взаимосвязи между ними.

Модель данных - это совокупность структур данных и операций их обработки. Рассмотрим три основных типа моделей данных: иерархическую, сетевую и реляционную.

Виды моделей данных БД

Иерархическую модель БД изображают в виде дерева. Элементы дерева вершины представляют совокупность данных, например логические записи.

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

К основным понятиям иерархической структуры относятся уровень, узел и связь. Узел - это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. Каждый узел на более низком уровне связан только с одним узлом, находящимся на более высоком уровне. Иерархическое дерево имеет только одну вершину, не подчиненную никакой другой вершине и находящуюся на самом верхнем - первом уровне. Зависимые (подчиненные) узлы находятся на втором, третьем и т. д. уровнях. Количество деревьев в базе данных определяется числом корневых записей. К каждой записи базы данных существует только один иерархический путь от корневой записи.

Сетевые модели БД соответствуют более широкому классу объектов управления, хотя требуют для своей организации и дополнительных затрат.

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

Реляционная модель БД представляет объекты и взаимосвязи между ними в виде таблиц, а все операции над данными сводятся к операциям над этими таблицами. На этой модели базируются практически все современные СУБД. Эта модель более понятна, "прозрачна" для конечного пользователя организации данных.

Реляционная модель данных объекты и связи между ними представляет в виде таблиц, при этом связи тоже рассматриваются как объекты. Все строки, составляющие таблицу в реляционной базе данных, должны иметь первичный ключ. Все современные средства СУБД поддерживают реляционную модель данных.

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

Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:

1. Каждый элемент таблицы соответствует одному элементу данных.

2. Все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип и длину.

3. Каждый столбец имеет уникальное имя.

4. Одинаковые строки в таблице отсутствуют;

5. Порядок следования строк и столбцов может быть произвольным.

Это БД, основанная на древовидной структуре. По принципу построения она чем-то схожа с файловой системой компьютера. У использования такой модели есть свои достоинства и недостатки, которые будут рассмотрены в этой статье, вместе с подробными примерами.

Виды баз данных

Как известно, различают четыре вида посторения БД:

  • Реляционные - табличные СУБД, где информация представлена в виде строк-столбцов. По этому принципу строятся в "Аксесе", к примеру.
  • Объектно-ориентированные - тесно связаны с в котором идет работа с объектами), и это их главный плюс, но, учитывая их небольшую производительность, они пока значительно уступают в распространенности реляционным.
  • Гибридные - СУБД, вмещающие в себе сразу два указанных выше вида.
  • Иерархические - объект внимания данной статьи. характеризирующиеся древообразной структурой.

Наиболее известным примером иерархической базы данных является продукт, созданный компанией IBM ("АйБиЭм"), под названием Information Management System (переводится как "Информационная система управления"), сокращенно IMS. Первая версия IMS вышла еще в прошлом, двадцатом веке, в шестьдесят восьмом году. Она используется для хранения и контроля данных и поныне.

Принцип построения иерархической модели

Иерархическая модель данных строится по следующему принципу:

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

Применение иерархической структуры данных

Иерархическая база данных - это хранилище, применимое для тех систем, которым изначально свойственна древовидная структура. Для них выбирать подобное моделирование - логично.

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

Кроме того, существует тенденция, при которой направленный вниз по структуре запрос проще, чем аналогичный вверх.

Основные операции над БД, построенными на иерархической модели

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

  • поиск по базе данных того или иного элемента;
  • переход по базе данных - от дерева к дереву;
  • переход по дереву - от ветви к ветви;
  • соответственно, переход по ветвям - поэлементно;
  • работа с записями: вставка новой и/или удаление текущей, копирование, вырезание и т. д.

Обобщенное описание структуры

Термин "древовидная" для описания структуры упоминается в этой статье уже далеко не единожды. Пора рассказать, откуда он произошел. Все потому что иерархическая база данных - это такая БД, которая использует тип данных "дерево". Рассмотрим подробнее, что он из себя представляет.

Это составной тип: в каждый из элементов (узлов) вкладывается несколько последующих (один или более). А начинается все с одного корневого элемента. Суть в том, что каждый из кусочков типа "дерево", является подтипом, тоже "деревом". Много-много разветвленных, и все также упорядоченных структур.

Элементарные типы могут быть простыми и составными, но по существу это всегда записи. Но в простом записи присутствует один а в составном - целая их совокупность.

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

Наполнение БД

Основными данными иерархической БД являются значения (числа или символы), которые хранятся в записях. Обходят такую базу данных обычно снизу вверх и слева направо.

Достоинства

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

Иерархическая модель идеальна для применения ее для упорядоченной информации.

Недостатки

Однако те же особенности рассматриваемых СУБД, которые стали их основными достоинствами, определяют также и их недостатки. К примеру, громоздкость и сложность логических связей - опытному специалисту при работе с ранее неизвестной базой будет трудно разобраться, а простой пользователь и вовсе в ней "заблудится". Эта сложность понимания приводит к тому, что на самом деле не так много СУБД построены на иерархической модели. Примером иерархической базы данных является, кроме уже описанного продукта компании "АйБиЭм", "Ока" и МИРИС (производство России), а также Data Edge и Team-UP (от зарубежных корпораций).

Примеры

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

На самом верхней уровне будет располагаться "лидер" администрации - директор. В его подчинении завучи, у завучей - преподаватели, который руководят параллелями классов. В каждой параллели энное их количество, а в каждом классе есть некоторое число учеников.

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

Применение в ЭВМ

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

Сетевые базы данных

Существуют:

Почему мы вновь вспомнили о классификации? Поскольку, в отличие от реляционной, сетевая БД имеет с иерархической схожие черты.

Время вспомнить в базах данных. Есть связи "один-к-одному", "один-ко-многим" и "многие-ко-многим". Нас интересует последняя. В сетевой БД она проявляется следующим образом: у одного узла-наследника может быть сразу несколько предков. Свойство иметь несколько потомков также сохраняется. Можно сказать, что иерархические базы данных, сетевые базы данных сами по себе уже пример такого наследования. Предком в данном случае является именно иерархическая БД, так как принцип построения структуры в сетевых БД остается прежним.

Иерархия и реляционность

Название "реляционная" произошло от английского слова "отношение". Как уже упоминалось в начале статьи, они часто выражаются таблично. Но в предыдущем пункте мы указали, что иерархическая БД также может организовывать связи, значит ли это, что и между этими двумя типами есть некая объединяющая их тонкая ниточка?

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

Имеется множество способов реализации элементарных единиц данных, и поэтому известны многообразные модели данных. Модель данных дает правила для их структурирования. Как правило, операции над данными соотносятся с их структурой. Разновидности существующих моделей данных соответствуют разнообразию областей применения и предпочтений пользователей.

Для представления данных используются модели, основанные на формах представления информации. Такие модели называются синтаксическими.

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

Классической, наиболее давно используемой считается модель данных, в основе которой лежит иерархическая структура типа дерева (фрагмент представлен на рис. 10). Часто используется также модель «упорядоченное дерево», в которой значим относительный порядок поддеревьев. В такой модели каждая следующая единица информации связана только с одной предыдущей, а предыдущие могут быть связаны с несколькими последующими.


Сетевая модель данных основана на таком представлении информации, при котором одна единица информации может быть связана с произвольным числом других (рис. 11).


Реляционная модель данных базируется на табличных методах и средствах представления данныхи манипулирования ими. В такой модели информация о предметной области отображается в таблицу, называемую «отношением» (рис. 12). Строка такой таблицы называется кортежем, столбец – атрибутом. Каждый атрибут может принимать некоторое подмножество значений из определенной области – домена.

Подавляющее большинство СУБД, ориентированных на персональные ЭВМ, являются системами, построенными на основе реляционной модели данных, – реляционными СУБД.

Бинарная модель данных – это графовая модель, в которой вершины отражают представления простых однозначных атрибутов, а дуги – представления бинарных связей между атрибутами (рис. 13).


Бинарная модель не получила широкого распространения, но в ряде случаев находит практическое применение. Так, в области искусственного интеллекта уже давно ведутся исследования с целью представления информации в виде бинарных отношений .

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

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

Семантические сети являются богатыми источниками идей моделирования данных, чрезвычайно полезных в плане решения проблемы представления сложных ситуаций. Они могут применяться независимо или совместно с идеями, положенными в основу других моделей данных. Их интересной особенностью служит то, что расстояние, измеренное на сети (семантическое расстояние, или метрика), играет важную роль, определяя близость взаимосвязанных понятий. При этом предусмотрена возможность в явной форме подчеркнуть, что семантическое расстояние велико. Как показано на рис. 14, МАГАЗИН соотносится с личностью ПРОДАВЕЦ, и в то же время ПРОДАВЦУ присущ ВЕС. Взаимосвязь личности со специальностью очевидна, однако из этого не обязательно следует взаимосвязь МАГАЗИНА и ВЕСА.


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

Остановимся подробнее на реляционной, иерархической и сетевой моделях данных.

Реляционная модель данных характеризуется следующими компонентами:

– информационной конструкцией: отношением с двухуровневой структурой;

– допустимыми операциями: проекцией, выборкой, соединением и некоторыми другими;

– ограничениями: функциональными зависимостями между атрибутами отношения.

Каждому классу объектов Р материального мира ставится в соответствие некоторое множество атрибутов, например А 1 , А 2 , ..., А n . Отдельный объект класса Р описывается строкой величин (a 1 , а 2 , ..., a n) , где a i – значение атрибута A i .

Строка (a 1 , а 2 , ..., a n ) называется кортежем. Всему классу объектов соответствует множество кортежей, именуемое отношением. Обозначим отношение, описывающее класс объектов Р , также через Р .

Выражение Р (А 1 , А 2 , ..., А n ) называется схемой отношения Р .

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

Каждое отношение отражает состояние класса объектов в некоторый момент времени. Следовательно, одной схеме отношения в разные моменты времени могут соответствовать разные отношения.

Множество значений отношения можно представить в виде таблицы, в которой соблюдаются следующие соответствия:

– название таблицы и перечень названий граф соответствуют схеме отношения;

– строке таблицы соответствует кортеж отношения;

– все строки таблицы (а значит, все кортежи) различны;

– порядок строк и столбцов произвольный (в частности, реляционная модель данных не предполагает специальную сортировку строк).

Описание процессов обработки отношений может быть выполнено двумя способами:

– указанием перечня операций, выполнение которых приводит к требу­емому результату (процедурный подход),

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

Рассмотрим процедурный подход . Множество отношений и операций над ними образует реляционную алгебру. Как правило, список операций содержит проекцию, выборку, объединение, пересечение, вычитание, соединение.

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

Т = R [X ],

где R – исходное отношение; Т – результирующее отношение; X – список атрибутов в структуре отношения Т (условие проекции).

Рассмотрим отношение O 1 , содержащее сведения о продаже продукции в 2010 г. (табл. 1).

Таблица 1

Отношение Т 1 , содержащее сведения только о фактическом выпуске продукции, получается в результате выполнения проекции

Т 1 = О 1 [Магазин, Продукция, Факт]

и имеет вид табл. 2.

Таблица 2

Столбцы можно указывать в любом порядке:

Т 1 = О 1 [Продукция, Магазин, Факт].

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

1) Имя атрибута 1 <знак сравнения> Значение, где допускаются знаки сравнения =, #, >, ≥, <, ≤. Например: Цена > 100.

Имена атрибутов должны содержаться в структуре исходного отношения. Алгебраическая запись выборки имеет вид

T = R [p ],

где R – исходное отношение; Т – результирующее отношение; р – условие выборки.

Например, получим значения Т 2 = О 1 [Продукция = «П 1 »] (табл. 3).

Таблица 3

Операции объединения, пересечения и вычитания производятся над двумя исходными отношениями с одинаковой структурой.

Обозначим исходные отношения через R 1 и R 2 , результирующее – через Т .

Объединение Т = U (R 1 , R 2) содержит строки, присутствующие либо в отношении R 1 , либо в R 2 .

Пересечение Т = I (R 1 , R 2) содержит строки, присутствующие в отношениях R 1 и R 2 одновременно.

Вычитание Т = M (R 1 , R 2) содержит те строки из R 1 , которые отсутствуют в R 2 .

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

Имя атрибута 1 <знак сравнения> Имя атрибута 2,

где Имя атрибута 1 находится в одном исходном отношении, а Имя атрибута 2 – в другом. Будем использовать следующее обозначение операции соединения:

T = R l [p ] R 2 ,

где R 1 и R 2 – исходные отношения; Т – результирующее отношение; р – условие соединения.

Один из наиболее важных частных случаев соединения называется натуральным соединением и имеет следующие особенности:

– знаком сравнения в условии соединения является «=»;

– Имя атрибута 1 и Имя атрибута 2 должны совпадать, а точнее, содержать пересечение списков атрибутов исходных отношений;

– список атрибутов результирующего отношения образуется в результате объединения списков атрибутов исходных отношений.

Обозначение натурального соединения не содержит условия соединения и имеет вид Т = R l * R 2 .

Декларативный подход к обработке реляционных баз данных основан на интерпретации понятий и методов математической логики . В частности, реляционное исчисление базируется на исчислении предикатов. Назовем необходимые для реляционного исчисления понятия математической логики.

1. Символы переменных и констант. В языковых конструкциях реляционного исчисления им соответствуют имена атрибутов и переменных, а также константы.

2. Логические связки «и», «или», «не» и знаки сравнения =, # (не равно), >, <, ≥, ≤.

3. Термы, т. е. любые константы и переменные, а также функции, аргументами которых служат термы.

4. Элементарные формулы – предикаты, аргументами которых выступают термы. Предикаты, связанные операциями «и», «или», «не», также являются элементарными формулами. Элементарными формулами служат, например, выражения Фамилия = «Петров» и Сумма ≤ Итог.

5. Формулы, т. е. результат применения кванторов общности или суще­ствования к элементарным формулам. Формула соответствует запросу к реляционной базе данных, выраженному средствами реляционного исчисления.

Главная задача проектирования базы данных ЭИС – определение количества отношений (или иных составных единиц информации) и их атрибутного состава.

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

– множество отношений должно обеспечивать минимальную избыточность представления информации;

– корректировка отношений не должна приводить к двусмысленности или потере информации;

– перестройка набора отношений при добавлении в базу данных новых атрибутов должна быть минимальной.

Нормализация представляет собой один из наиболее изученных способов преобразования отношений, позволяющих улучшить характеристики БД по перечисленным критериям .

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

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

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

Простейший случай функциональной зависимости охватывает два атрибута. В отношении R (A , B , ..., J ) атрибут А функционально определяет атрибут В , если в любой момент времени каждому значению А В (обозначается А В ).

Иначе говоря, В функционально зависит от А (В = f (A )). Первое обозначение оказывается более удобным, когда число функциональных зависимостей растет и их взаимосвязи становятся труднообозримыми; оно и будет использоваться в дальнейшем. Отсутствие функциональной зависимости обозначается как А В .

Для атрибутов А и В некоторого отношения возможны следующие ситуации:

– отсутствие функциональной зависимости;

– наличие А В (или В А ), но не обеих зависимостей вместе;

– наличие взаимно-однозначного соответствия А В .

Понятие функциональной зависимости распространяется на ситуацию с тремя и более атрибутами в следующей форме. Группа атрибутов (А , В , С ) функционально определяет атрибут D в отношении T (A , B , C , D , ..., J ), если каждому сочетанию значений <а, b , с > соответствует единственное значение d (а – значение A ; b – значение В ; с – значение С ; d – значение D ). Наличие такой функциональной зависимости будем обозначать А , В , С D .

Существование функциональных зависимостей связано с применяемыми способами кодирования атрибутов. Так, для множества учреждений можно утверждать, что каждый отдел (как объект предметной области) относится к единственному учреждению. Однако этого недостаточно для доказательства функциональной зависимости Отдел → Учреждение. Если в каждом учреждении отделы нумеруются последовательно, начиная с 1, то функциональная зависимость неверна. Если же код отдела, кроме номера, содержит и код учреждения (или уникальность кодов обеспечивается каким-либо другим способом), то функциональная зависимость Отдел → Учреждение справедлива.

Для показателя со множеством атрибутов-признаков Р = (Р 1 , Р 2 , ..., Р n ) и атрибутом-основанием Q справедлива функциональная зависимость Р Q , хотя нельзя утверждать, что это единственная зависимость на указанных атрибутах.

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

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

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

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

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

Каждое значение первичного ключа встречается только в одной строке отношения. Значение любого атрибута в этой строке также единственное. Если через К обозначить атрибуты первичного ключа в отношении R (A , B , C , ..., J ), то справедливы следующие функциональные зависимости: К А , К В , К С , ..., К J . Набор атрибутов первичного ключа функционально определяет любой атрибут отношения. Обратное утверждение также верно: если найдена группа атрибутов, которая функционально определяет все атрибуты отношения по отдельности, и эту группу нельзя сократить, то найден первичный ключ отношения.

Для исходного множества функциональных зависимостей существует ряд закономерностей, знание которых позволяет получать производные зависимости. Отметим некоторые из них:

– если А , В А , то и А , В В ;

– А В и А С тогда и только тогда, когда А ВС ;

– если А В и В С , то А С ;

– если А В , то АС В (С произвольно);

– если А В , то АС ВС (С произвольно);

– если А В и ВС D , то АС D .

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

Отношение имеет вторую нормальную форму (2НФ), если оно соответ-ствует 1НФ и не содержит неполных функциональных зависимостей.

Неполная функциональная зависимость состоит из двух зависимостей:

– вероятный ключ отношения функционально определяет некоторый неключевой атрибут,

– часть вероятного ключа функционально определяет этот же неключевой атрибут.

Отношение, не соответствующее 2НФ, характеризуется избыточностью хранимых данных. База данных находится в 2НФ, если все ее отношения находятся в 2НФ.

Отношение соответствует 3НФ, если оно соответствует 2НФ и среди его атрибутов отсутствуют транзитивные функциональные зависимости (ФЗ).

Транзитивная ФЗ включает в себя две ФЗ:

– вероятный ключ отношения функционально определяет неключевой атрибут;

– этот атрибут функционально определяет другой неключевой атрибут.

Если К – ключ отношения, А , В – неключевые атрибуты и К А , А В – справедливые ФЗ, то они являются транзитивными. Частный случай транзитивной ФЗ – неполная ФЗ, когда К = С , Е и К Е , Е А .

База данных находится в 3НФ, если все ее отношения находятся в 3НФ.

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

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

2. Зафиксировать множество атрибутов оболочки. Если все необходимые атрибуты находятся в каком-либо одном отношении, то последующие операции выборки и проекции проводятся только с ним. Если требуемые атрибуты распределены по нескольким отношениям, то эти отношения необходимо соединить. Каждая пара отношений соединяется по условию равенства атрибутов с совпадающими именами (или определенных на общем домене). После каждого соединения с помощью проекции можно отсечь ненужные для последующих операций атрибуты.

4. Если запрос можно разделить на части (подзапросы), то его реализация также разделяется на части, где результатом каждого подзапроса является отдельное отношение.

5. Указанная последовательность действий стандартна, но, возможно, создает промежуточные отношения слишком большого размера. Этот недостаток можно компенсировать, выполняя некоторые выборки и проекции над исходными отношениями (до проведения соединения) и меняя взаимный порядок требуемых соединений.

Сетевая БД представляется как множество отношений и веерных отношений . Отношения разделяются на основные и зависимые.

Веерным отношением W (R , S ) называется пара отношений, состоящая из одного основного (R ), одного зависимого отношения (S ) и связи между ними, при условии, что каждое значение зависимого отношения связано с единственным значением основного отношения . Это условие является ограничением, характерным для сетевой модели данных в целом. Способ реализации этого ограничения в памяти ЭВМ неодинаков у различных сетевых СУБД.

Допустимые в сетевой модели данных операции представляют собой различные варианты выборки.

Сетевые базы данных в зависимости от ограничений на вхождение отношений в веерные отношения разделяются на двухуровневые и многоуровневые сети.

Ограничение двухуровневых сетей состоит в том, что каждое отношение может существовать в одной из перечисленных ниже ролей:

– вне каких-либо веерных отношений;

– в качестве основного отношения в любом количестве веерных отношений;

– в качестве зависимого отношения в любом количестве веерных отношений.

Запрещается существование отношения в качестве основного в одном контексте и одновременно в качестве зависимого – в другом.

Многоуровневые сети не предусматривают никаких ограничений на взаимосвязь веерных отношений, в некоторых сетевых СУБД разрешены даже циклические структуры сети.

Для двухуровневых сетевых СУБД вводятся еще два ограничения (с теоретической точки зрения необязательные):

– первичный ключ основного отношения может быть только одноатрибутным;

– веерное отношение существует, если первичный ключ основного отношения выступает частью первичного ключа зависимого отношения.

Для организации веерного отношения в памяти ЭВМ в структуру основного и зависимого отношений вводится дополнительный атрибут, называемый адресом связи. Значения адресов связи совместно обеспечивают в веерном отношении соответствие каждого значения зависимого отношения S единственному значению основного отношения R .

Значение отношения при хранении в памяти ЭВМ часто называется записью. Адресом связи именуется атрибут в составе записи, в котором хранится начальный адрес или номер следующей обрабатываемой записи.

Связь значений зависимого отношения с единственным значением основного отношения в простейшем случае обеспечивается следующим образом. Адрес связи некоторой записи основного отношения указывает на одну из записей зависимого отношения (значением адреса связи основного отношения служит начальный адрес этой записи зависимого отношения), адрес связи указанной записи зависимого отношения – на следующую запись зависимого отношения, связанную с той же записью основного отношения, и т. д. Последняя запись зависимого отношения в этой цепочке адресует названную выше запись основного отношения. Получается кольцевая структура адресов связи, называемая веером , где роль «ручки» веера играет запись основного отношения. На графических иллюстрациях адрес связи изображается стрелкой, направленной от адреса связи данной записи к той записи, начальный адрес (номер) которой служит значением этого адреса связи.

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

Автоматический способ указывает на то, что при появлении нового значения основного отношения оно сразу же ставится в соответствие некоторому значению зависимого отношения и образует новый элемент веерного отношения. Несоблюдение этого правила характерно для неавтоматического способа.

Способы исключения могут быть обязательными и необязательными. При обязательном способе после того, как значение включено в основное отношение, оно становится его постоянным членом. Его можно обновлять, но нельзя удалять из отношения. Необязательный способ разрешает удалить любое значение основного отношения.

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

В схеме сетевой БД отношения и веерные отношения часто трактуются как файлы и связи, что позволяет рассматривать сетевую структуру как множество файлов

F = {F l (X 1), F 2 (X 2), ..., F i (X i ), ..., F n (X n )},

где X i – атрибуты ключа в файле F i .

Дополнительно вводится граф сетевой структуры В с вершинами {X l , X 2 , ..., X i , ..., X n }. Дуга <X i , X j > в графе В существует, если X i является частью X j и F j [X i ] представляет собой подмножество F i . Последнее условие имеет тот же смысл, что и синтаксическое включение отношений в реляционной модели данных. Здесь предполагается, что ключ основного файла содержится в зависимом файле. Граф В аналогичен графу соединений для реляционной БД.

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

Для множества файлов F ациклической базы данных DBA вполне применима операция

m (DBA ) = F 1 & F 2 & ... & F i & ...& F n ,

называемая максимальным пересечением . Ее аналогом может служить последовательность соединений в реляционной БД.

В сетевых СУБД количество операций выборки достаточно велико. Функции операции проекции для сетевой СУБД выполняет описание подсхемы сетевой базы данных. Схемой сетевой БД называется описание всех отношений с указанием атрибутного состава и ключей каждого отношения, а также веерных отношений. В прикладной программе имеется возможность объявить часть отношений сетевой базы данных, в каждом отношении – некоторое подмножество атрибутов (с обязательным оставлением атрибутов-ключей) и лишь некоторые веерные отношения. Соответствующее описание данных называется подсхемой. Отношения, веерные отношения и атрибуты, не указанные в подсхеме, становятся недоступными прикладной программе. В отличие от операции проекции база данных, соответствующая подсхеме, создается не физически, а путем ограничения доступа к исходной БД, которая определена в схеме.

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

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

Понятия отношения и веерного отношения в иерархической модели данных не изменяются.

Иерархической базой данных называется множество отношений и веерных отношений, для которых соблюдаются два ограничения :

1) существует единственное отношение, называемое корневым, которое не является зависимым ни в одном веерном отношении;

2) все остальные отношения (за исключением корневого) являются зависимыми отношениями только в одном веерном отношении.

Схема иерархической БД по составу компонентов идентична сетевой БД. Названные выше ограничения поддерживаются иерархическими СУБД.

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

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

1. Начиная с первого значения корневого отношения перечисляются первые значения соответствующих отношений на каждом уровне вплоть до последнего.

2. Перечисляются все значения в том веерном отношении, на котором остановился шаг 1.

3. Перечисляются значения всех вееров этого веерного отношения.

4. От достигнутого уровня происходит подъем на предыдущий уровень, и если возможно применить шаг 1, то процесс повторяется.

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

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

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

Алгоритм получения структуры иерархической БД составлен А.И. Мишениным .

При сравнении моделей данных очень трудно отделить факторы, характеризующие принципиальные особенности модели, от факторов, связанных с реализацией этих моделей данных средствами конкретных СУБД.

Рассматривая преимущества и недостатки самых известных моделей данных, следует отметить ряд несомненных достоинств реляционного подхода:

– простота: в реляционной модели всего одна информационная конструкция, которая формализует табличное представление данных, привычное для пользователей-экономистов;

– теоретическое обоснование: наличие теоретически аргументированных методов нормализации отношений и проверки ацикличности структуры позволяет получать базы данных с требуемыми характеристиками;

– независимость данных: изменение структуры реляционной БД, как правило, приводит к минимальным изменениям в прикладных программах.

Среди недостатков реляционной модели данных необходимо назвать следующие:

– низкую скорость при выполнении операции соединения;

– большой расход памяти для представления реляционной БД. Хотя проектирование в 3НФ рассчитано на минимальную избыточность (каждый факт представляется в БД один раз), другие модели данных при тех же условиях обеспечивают меньший расход памяти. Например, длина адреса связи обычно намного меньше, чем длина значения атрибута.

Достоинствами иерархической модели данных являются:

– простота: хотя модель использует три информационные конструкции, иерар­хический принцип соподчиненности понятий естественен для многих экономических задач (например, для организации статистической отчетности);

– минимальный расход памяти: для задач, допускающих реализацию с помощью любой из трех моделей данных, иерархическая модель позволяет получить представление с минимально требуемой памятью.

Недостатки иерархической модели:

– неуниверсальность: многие важные варианты взаимосвязи данных невозможно реализовать средствами иерархической модели без повышения избыточности в базе данных;

– допустимость только навигационного принципа доступа к данным;

– доступ к данным производится только через корневое отношение.

Необходимо отметить следующие преимущества сетевой модели данных:

– универсальность: выразительные возможности сетевой модели данных наиболее обширны в сравнении с остальными моделями;

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

В качестве недостатков сетевой модели данных можно назвать:

– сложность, т. е. обилие понятий, вариантов их взаимосвязей и особенностей реализации;

– допустимость только навигационного принципа доступа к данным.

Результаты, полученные для ациклических баз данных, позволяют говорить о равноценных возможностях представления информации у ациклических реляционных БД, двухуровневых сетевых БД и иерархической БД без логических связей.

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

На окончательный выбор модели данных влияют многие дополнительные факторы, например, наличие хорошо зарекомендовавших себя СУБД, квалификация прикладных программистов, размер базы данных и др.

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

Контрольные вопросы и задания

1. Перечислите наиболее известные виды моделей данных.

2. Расскажите об иерархической и сетевой моделях данных. В чем их сходство и различия?

3. Охарактеризуйте реляционную модель.

4. Опишите бинарную модель и область ее применения.

5. Какова специфика семантических сетей и их назначения?

6. Перечислите информационные конструкции для различных технологий.

7. Назовите компоненты реляционной модели данных.

8. Дайте определения кортежа и отношения.

9. Какими способами можно описать процессы обработки отношений?

10. Раскройте сущность процедурного описания процессов обработки данных.

11. Расскажите о декларативном подходе к обработке реляционных баз данных.

12. Что такое нормализация отношений?

13. Сколько атрибутов в простейшей функциональной зависимости?

14. Дайте определение функциональной зависимости атрибутов в терминах реляционного подхода.

15. Что такое вероятный ключ отношения?

16. Что такое первичный ключ? Как по-другому он называется?

17. Расскажите о закономерностях для множества функциональных зависимостей.

18. Охарактеризуйте вторую и третью нормальные формы отношений.

19. Расскажите о доступе к реляционной базе данных.

20. Назовите информационные конструкции в сетевой модели.

21. Что такое «веерное отношение»?

22. Дайте определение двухуровневых сетей.

23. Дайте определение многоуровневых сетей.

24. Что представляет собой «адрес связи»?

25. Что называют «веером»?

26. Какие компоненты содержит схема сетевой БД?

27. Какие стандартные соглашения о способах включения и исключения данных в веерном отношении вам известны?

28. Что такое файлы и связи?

29. Что такое «максимальное пересечение»?

30. Назовите информационные конструкции в иерархической модели.

31. Дайте определение иерархической базы данных.

32. Расскажите о правилах концевого прохождения.

33. Дайте определение записи иерархической базы.

34. Назовите преимущества и недостатки реляционного подхода.

35. Перечислите достоинства и недостатки иерархической модели.

36. Охарактеризуйте сильные и слабые стороны сетевой модели данных.

38. Выполните задания 2.1–2.20 по операциям над отношениями из практикума .

39. Выполните задания 2.21–2.32 по теме «Функциональные зависимости и ключи» из практикума .

40. Выполните задания 2.33–2.60 по теме «Нормальные формы отношений» из практикума .

41. Выполните задания 2.61–2.71 по теме «Ациклические базы данных» из практикума .

42. Выполните задания 2.72–2.93 по теме «Сетевая и иерархическая модели данных» из практикума .

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

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

Ядром любой базы данных является модель данных. Модель данных – это совокупность структур данных и операций их обработки.

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

– "один к одному", когда одна запись может быть связана
только с одной записью;

– "один ко многим", когда одна запись взаимосвязана со многими другими;

– "многие ко многим", когда одна и та же запись может входить в отношения со многими другими записями в различных вариантах.

Применение того или иного вида взаимосвязей определило три основные модели баз данных: иерархическую, сетевую и ре­ляционную.

Для пояснения логической структуры основных моделей баз данных рассмотрим такую простую задачу: необходимо разработать логическую структуру БД для хранения данных о трех поставщиках: П 1 , П 2 , П 3 , которые могут поставлять товары Т 1 , Т 2 , Т 3 в следующих комбинациях: поставщик П 1 - все три вида товаров, поставщик П 2 - товары Т 1 и Т 3 , поставщик П 3 - товары Т 2 и Т 3 .

Иерархическая модель представляется в виде древовидного графа, в котором объекты выделяются по уровням соподчиненности (иерархии) объектов (рис. 4.1.)

Рис. 4.1. Иерархическая модель БД

На верхнем, первом уровне находится информация об объекте "поставщики" (П), на втором - о конкретных поставщиках П 1 , П 2 , П 3 , на нижнем, третьем, уровне - о товарах, которые могут поставлять конкретные поставщики. В иерархической модели дол­жно соблюдаться правило: каждый порожденный узел не может иметь больше одного порождающего узла (только одна входящая стрелка); в структуре может быть только один непорожденный узел (без входящей стрелки) - корень. Узлы, не имеющие входных стре­лок, носят название листьев. Узел интегрируется как запись. Для поиска необходимой записи нужно двигаться от корня к листьям, т.е. сверху вниз, что значительно упрощает доступ.

Достоинство иерархической модели данных состоит в том, что она позволяет описать их структуру, как на логическом, так и на физическом уровне. Недостатками данной модели являются жесткая фиксированность взаимосвязей между элемен­тами данных, вследствие чего любые изменения связей требуют изменения структуры, а также жесткая зависимость физической и логической организации данных. Быстрота доступа в иерархи­ческой модели достигнута за счет потери информационной гиб­кости (за один проход по дереву невозможно получить информа­цию о том, какие поставщики поставляют, например, товар Ti).

В иерархической модели используется вид связи между элементами данных "один ко многим". Если применяется взаимосвязь вида "многие ко многим", то приходят к сетевой модели данных.

Сетевая модель базы данных для поставленной задачи представлена в виде диаграммы связей (рис. 5.2.). На диаграмме указа­ны независимые (основные) типы данных П 1 , П 2 , П 3 , т.е. ин­формация о поставщиках, и зависимые - информация о товарах T 1 , T 2 , и Т 3 . В сетевой модели допустимы любые виды связей меж­ду записями и отсутствует ограничение на число обратных свя­зей. Но должно соблюдаться одно правило: связь включает ос­новную и зависимую записи

Рис. 4.2. Сетевая модель базы данных

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

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

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

Для приведенной выше задачи о поставщиках и товарах логи­ческая структура реляционной БД будет содержать три таблицы (отношения): R 1 , R 2 , R 3 , состоящие соответственно из записей о поставках, о товарах и о поставках товаров поставщиками (рис. 4.3.)



Рис. 4.3. Реляционная модель БД

СУБД и ее функции

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

СУБД предназначена для централизованного управления базой данных в интересах всех работающих в этой системе.

По степени универсальности различают два класса СУБД:

– системы общего назначения;

– специализированные системы.

СУБД общего назначения не ориентированы на какую-либо предметную область или на информационные потребности какой-либо группы пользователей. Каждая система тако­го рода реализуется как программный продукт, способный функционировать на некоторой модели ЭВМ в определенной операционной системе и поставляется многим пользователям как коммерческое изделие. Такие СУБД обладают средствами настройки на работу с кон­кретной базой данных. Использование СУБД общего назначения в качестве инструменталь­ного средства для создания автоматизированных информационных систем, основанных на технологии баз данных, позволяет существенно сокращать сроки разработки, экономить трудовые ресурсы. Этим СУБД присущи развитые функциональные возможности.

Специализированные СУБД создаются в редких случаях при невозможности или не­целесообразности использования СУБД общего назначения.

СУБД общего назначения - это сложные программные комплексы, предназначенные для выполнения всей совокупности функций, связанных с созданием и эксплуатацией базы данных информационной системы.

Используемые в настоящее время СУБД обладают средствами обеспечения целостнос­ти данных и надежной безопасности, что дает возможность разработчикам гарантировать большую безопасность данных при меньших затратах сил на низкоуровневое программирование. Продукты, функционирующие в среде WINDOWS, выгодно отличаются удобством пользовательского интерфейса и встроенными средствами повышения производительности.

Производительность СУБД оценивается:

– временем выполнения запросов;

– скоростью поиска информации в неиндексированных полях;

– временем выполнения операций импортирования базы данных из других форматов;

– скоростью создания индексов и выполнения таких массовых операций, как обновление, вставка, удаление данных;

– максимальным числом параллельных обращений к данным в многопользовательском режиме;

– временем генерации отчета.

На производительность СУБД оказывают влияние два фактора:

– СУБД, которые следят за соблюдением целостности данных, несут дополнительную нагрузку, которую не испытывают другие программы;

– производительность собственных прикладных программ сильно зависит от правильного проектирования и построения базы данных.


Похожая информация.




Статьи по теме