Основные типы моделей данных. Модели организации баз данных

14.07.2019

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

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

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

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

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

Таким образом, если СУБД поддерживает возможность создания подсхем, то архитектура БД становится трехуровневой: уровень схемы хранения, уровень схемы и уровень подсхем.

Рассмотрим теперь основные типы моделей данных.

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

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

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

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

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

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

Необходимо отметить, что в ряде нотаций может использоваться иная терминология. Так, в нотации Американской Ассоциации по базам данных DBTG (Data Base Task Group) термину “запись” соответствует термин “сегмент”, а записью называется все множество записей, которые относятся к одному экземпляру типа “дерево”.

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

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

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

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

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

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

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

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

Измерением называется множество данных одного типа, которые образуют грань n-мерного куба. Ячейкой является поле, значение которого определяется всей совокупностью измерений. Значение ячейки может быть переменной или формулой.

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

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

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

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

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

Инкапсуляция означает возможность разграничения доступа различных программ, приложений, методов и функций (в более широком смысле и доступа различных категорий пользователей) к различным свойствам объектов данных. В контексте термина “инкапсуляция” часто используется понятие видимости - степень доступности отдельных свойств объекта. В современных объектно-ориентированных системах программирования (таких как Delphi или С++ Builder) имеются следующие уровни инкапсуляции (видимости), которые принято называть разделами:

  • 1. Разделы Public, Published и Automated - с незначительными отличительными особенностями свойства объекта, описанные как принадлежащие к данным разделам, полностью доступны.
  • 2. Раздел Private - этот раздел накладывает наиболее жесткие ограничения на видимость свойств объекта. Как правило, такие свойства оказываются доступными только владельцу данного объекта (программному модулю, в котором этот объект создан).
  • 3. Раздел Protected - в отличие от раздела Private свойства объекта становятся доступными наследникам владельца объекта.

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

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

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

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

8.1. Иерархическая модель базы данных

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

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

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

Рис. 6. Иерархическая база данных

Организация данных в СУБД иерархического типа определяется в терминах: элемент, агрегат, запись (группа ), групповоеотношение , база данных .

Атрибут (элемент данных)

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

Запись

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

Групповое отношение

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

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

Поэтому, для информационной системы управления персоналом необходимо создать групповое отношение, состоящее из родительской записи ОТДЕЛ (НАИМЕНОВАНИЕ_ОТДЕЛА, ЧИСЛО_РАБОТНИКОВ) и дочерней записи СОТРУДНИК (ФАМИЛИЯ, ДОЛЖНОСТЬ, ОКЛАД). Это отношение показано на рис. 7 (а) (Для простоты полагается, что имеются только две дочерние записи).

Для автоматизации учета контрактов с заказчиками необходимо создание еще одной иерархической структуры: заказчик - контракты с ним - сотрудники, задействованные в работе над контрактом. Это дерево будет включать записи ЗАКАЗЧИК (НАИМЕНОВАНИЕ_ЗАКАЗЧИКА, АДРЕС), КОНТРАКТ(НОМЕР, ДАТА,СУММА), ИСПОЛНИТЕЛЬ (ФАМИЛИЯ, ДОЛЖНОСТЬ, НАИМЕНОВАНИЕ_ОТДЕЛА) (рис. 7b).

Рис. 7. Пример иерархической БД

Из этого примера видны недостатки иерархических БД :

Частично дублируется информация между записями СОТРУДНИК и ИСПОЛНИТЕЛЬ (такие записи называют парными), причем виерархической модели данных не предусмотрена поддержка соответствия между парными записями.

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

Допустим теперь, что исполнитель может принимать участие более чем в одном контракте (т.е. возникает связь типа M:N). В этом случае в базу данных необходимо ввести еще одно групповое отношение , в котором ИСПОЛНИТЕЛЬ будет являться исходной записью, а КОНТРАКТ - дочерней (рис. 7 c). Таким образом, мы опять вынуждены дублировать информацию.

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

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

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

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

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

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

Сегодня наиболее распространены реляционные модели, которые будут подробно рассмотрены в главе 3.

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

Модели организации баз данных

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

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

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

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

Избежать трудностей манипулирования позволяет второй элемент модели – реляционно-полный язык (отметим, что язык является неотъемлемой частью любой модели данных, без него модель не существует). Полнота языка в приложении к реляционной модели означает, что он должен выполнять любую операцию реляционной алгебры или реляционного исчисления (полнота последних доказана математически Э.Ф. Коддом). Более того, язык должен описывать любой запрос в виде операций с таблицами, а не с их строками. Одним из таких языков является SQL.

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

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

5.3.3 Модели данных и концептуальное моделирование

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

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

· Структурная часть, т.е. набор правил, по которым может быть построена база данных.

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

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

Цель построения модели данных заключается в представлении данных в понятном виде. Если такое представление возможно, то модель данных можно будет легко применить при проектировании базы данных. Для отображения архитектуры ANSI-SPARC можно определить следующие три связанные модели данных:

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

· концептуальную модель данных, отображающую логическое (или обобщенное) представление о данных, независимое от типа выбранной СУБД;

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

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

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

    • Модель типа "сущность-связь", или ER-модель (Entity-Relationship model).
    • Семантическая модель.
    • Функциональная модель.
    • Объектно-ориентированная модель.

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

Модели данных на основе записей. В модели на основе записей база данных состоит из нескольких записей фиксированного формата, которые могут иметь разные типы. Каждый тип записи определяет фиксированное количество полей, каждое из которых имеет фиксированную длину. Существует три основных типа логических моделей данных на основе записей: реляционная модель данных (relational data model), сетевая модель данных (network data model) и иерархическая модель данных (hierarchical data model).

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

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

Иерархическая модель данных.

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

Рис. 5. Иерархическая модель данных

К каждой записи базы данных существует только один (иерархический) путь от корневой записи. Например, для записи С4 путь проходит через записи А и В3.

Пример иерархической структуры. Каждый студент учится в определенной (только одной) группе, которая относится к определенному (только одному) факультету (см. рис. 6).

Рис. 6. Пример иерархической организации данных

Сетевая модель данных

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

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

Пример сетевой структуры. База данных, содержащая сведения о студентах, участвующих в научно-исследовательских работах (НИРС). Возможно участие одного студента в нескольких НИРС, а также участие нескольких студентов в разработке одной НИРС (см. рис. 8).

Рис. 8. Пример сетевой организации данных

Реляционная модель данных

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

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

· каждый элемент таблицы - один элемент данных;

· все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;

· каждый столбец имеет уникальное имя;

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

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

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

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

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

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

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

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

Процедуру нормализации рассмотрим на примере проектирования многотабличной БД Продажи , содержащей следующую информацию:

· Сведения о покупателях.

· Дату заказа и количество заказанного товара.

· Дату выполнения заказа и количество проданного товара.

· Характеристику проданного товара (наименование, стоимость, марка).

Таблица 2. Структура таблицы Продажи

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

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

· При изменении адреса или телефона покупателя необходимо корректировать все записи, содержащие сведения о заказах этого покупателя.

· Наличие повторяющейся информации приведет к неоправданному увеличению размера БД. В результате снизится скорость выполнения запросов. Кроме того, повторяющиеся данные нерационально используют дисковое пространство компьютера.

· Любые нештатные ситуации потребуют значительного времени для получения требуемой информации.

Классификация баз данных.

По технологии обработки данных базы данных подразделяются на централизованные и распределенные.

Централизованная база данных хранится в памяти одной вычислительной системы. Если эта вычислительная система является компонентом сети ЭВМ, возможен распределённый доступ к такой базе. Такой способ использования баз данных часто применяют в локальных сетях ПК.

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

По способу доступа к данным базы данных разделяются на базы данных с локальным доступом и базы данных с удаленным (сетевым) доступом.

Ядром любой модели базы данных является модель данных.

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

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

Исторически первой появилась Иерархическая модель данных. Иерархическая модель данных строится по прин­ципу иерархии типов объектов, т.е. один тип объекта яв­ляется главным, а остальные подчиненными.

Данные представлены в виде деревьев. Две вершины дерева связаны отношением подчиненности. Дерево обя­зательно содержит одну вершину, которая не имеет глав­ных. Такая вершина называется корнем. В данном случае это вершина 3. Вершины, которые не имеют подчинен­ных называются листьями, на рисунке это 1, 2, 5, 7, 8, 9.

Рис.1. Иерархическая модель данных

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

Между главными и подчиненными объектами установ­лено отношение «один ко многим». Для каждого подчи­ненного типа объекта может быть только один исходный тип объекта.

Главная вершина - Отдел - содержит информацию о названии, бюджете и телефоне отдела. Отдел имеет под­чиненную вершину Руководитель с информацией Фами­лия, Год рождения, Разряд и несколько подчиненных вер­шин сотрудники, каждый сотрудник характеризуется Фамилией, Адресом и т.д. Данное дерево содержит ин­формацию об одном отделе. Для описания второго отдела требуется второе дерево. База данных будет содержать несколько деревьев одинаковой структуры. Возможные операции с иерархической базой данных: переход между деревьями, создание и удаление дерева, поиск вершины дерева, изменение информации в вершинах. Работа с иерархическими базами данных основана на математичес­кой теории графов.

Сетевая модель данных.

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

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

Отдел содержит информацию: Название, Бюджет, Те­лефон и связи с Руководителем и несколькими Сотрудни­ками. Руководитель характеризуется Датой вступления в должность, Годом рождения, Разрядом. Сотрудники ха­рактеризуются фамилией, Адресом. Вершина Руководи­тель связана с одной из вершин Сотрудников, в ней хра­нятся Фамилия и Адрес руководителя.

Реляционная модель данных.

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

В настоящее время реляционная модель данных явля­ется наиболее популярной. На ее идеологии построены СУБД FoxPro, Access, Visual C++ и д.р.

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

Работа с реляционными базами данных основана на ре­ляционной алгебре.

Похожие статьи