Сетевая модель данных
Как и в случае иерархической модели, сетевую структуру можно описать в терминах исходных и порождаемых узлов, а также представить ее таким образом, чтобы порожденные узлы располагались ниже исходных. При рассмотрении некоторых сетевых структур можно говорить об уровнях. Так, рассмотренная выше сетевая структура имеет три уровня.
База данных с сетевой структурой состоит из нескольких областей. Каждая область состоит из записей, которые состоят из полей. Объединение записей в логическую структуру возможно не только по областям, но и с помощью наборов данных. По существу набор данных — это поименованное двухуровневое дерево, которое является основой для построения многоуровневых деревьев. Сама база данных состоит из некоторой совокупности наборов данных. Набор данных — это экземпляр поименованной совокупности записей. Каждый тип набора представляет собой отношение между двумя или несколькими типами записей. Для каждого набора данных один тип записи может быть объявлен владельцем, а один или несколько типов других записей — членами набора. Набор данных, например, можно использовать для объединения записей о студентах одной группы. Тогда тип набора можно определить как состав группы с типом записи владельца. Например, Учебная группа с типом записей членов Студент: Учебная группа (запись-владельца) — Студент (совокупность записей о сту дентах в данной группе).
Набор данных имеет следующие свойства:
Набор данных есть поименованная совокупность связанных записей.
В каждом экземпляре набора данных имеется только один экземпляр записи владельца.
Экземпляр набора может содержать 0,1 или несколько записей-членов.
Набор данных считается пустым, если ни один экземпляр записи-члена не связан с соответствующим экземпляром записи владельца.
Экземпляр набора данных связан с записью владельца.
Тип набора предполагает логическую взаимосвязь 1:M между владельцем и членом набора.
Каждому типу набора данных присваивается имя, которое позволяет одной и той же паре типов объектов участвовать в нескольких взаимосвязях.
Концепция сетевой модели данных связана с именем Ч. Бахмана, известного специалиста в области обработки данных, который оказал определяющее влияние на создание проекта DBTG CODASYL (1971 год). Сетевая модель данных является моделью объектов-связей, где допускаются только бинарные связи типа «многие-к-одному», что позволяет использовать для представления данных простую модель ориентированных графов. В некоторых определениях сетевой модели допускаются связи типа «многие-ко-многим», но требование бинарности связи остается в силе.
Для сетевой модели не существует общепринятой терминологии. Далее используется сложившая к настоящему времени группа понятий и терминов, которые используются для описания элементов сетевой модели.
Для моделирования представления данных в сетевой модели используются следующие элементы данных:
простое поле (элемент данных, итем) — наименьшая единица структуры данных, имеет уникальное имя, размер и тип: (табельный номер служащего);
множественное поле (агрегат данных, периодическая группа) — поименованная совокупность простых полей или агрегатов; (простой агрегат: Дата = (день, месяц, год)), (составной агрегат: Организация = (наименование, адрес = (почтовый_индекс, город, улица, дома_номер))), (повторяющаяся группа: зарплата (12) = (ФИО, оклад));
запись (группа данных) — поименованный агрегат, который не входит в состав никакого другого агрегата и представляет сущность ПО БД (тип записи);
групповое отношение (связь, набор) — иерархическое отношение между различными записями (графическое представление группового отношения в сетевой модели называется диаграммой Бахмана);
БД — совокупность записей различного типа, объединенная системой групповых отношений различной направленности.
Сетевая модель данных
В сетевой структуре при тех же основных понятиях (уровень, узел, связь) каждый элемент может быть связан с любым другим элементом.
На рис. 25.3изображена сетевая структура базы данных в виде графа.
Рис.25.3. Графическое изображение сетевой структуры
Единственное отношение представляет собой сложную связь между записями в обоих направлениях.
Реляционная модель данных
Понятие реляционный(англ.relation —отношение) связано с разработками известного американского специалиста в области систем баз данных Е. Кодда.
Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблицапредставляет собой двумерный массив и обладает следующими свойствами: каждый элемент таблицы —один элемент данных; все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину; каждый столбец имеет уникальное имя; одинаковые строки в таблице отсутствуют; порядок следования строк и столбцов может быть произвольным.
Реляционной таблицей можно представить информацию о студентах, обучающихся в вузе (табл.2).
Пример реляционной таблицы
Отношения представлены в виде таблиц,строки которых соответствуют кортежам илизаписям,а столбцы —атрибутам отношений, доменам,полям.
Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом(ключевым полем). Если записи однозначно определяются значениями нескольких полей, то такая таблица базы данных имеетсоставной ключ. В примере, показанном на табл. 2,ключевым полем таблицы является «№личного дела».
Чтобы связать две реляционные таблицы, необходимо ключ первой таблицы ввести в состав ключа второй таблицы (возможно совпадение ключей); в противном случае нужно ввести в структуру первой таблицы внешний ключ —ключ второй таблицы. На рис.25.4. показан пример реляционной модели, построенной на основе отношений: СТУДЕНТ, СЕССИЯ, СТИПЕНДИЯ.
Рис.25.4. Пример реляционной модели.
Таблицы СТУДЕНТ И СЕССИЯ имеют совпадающие ключи (Номер), что дает возможность легко организовать связь между ними. Таблица СЕССИЯ имеет первичный ключ Номер и содержит внешний ключ Результат, который обеспечивает ее связь с таблицей СТИПЕНДИЯ.
25.1.Реляционный подход к построению инфологической модели
Информационный объект —это описание некоторой сущности (реального объекта, явления, процесса, события) в виде совокупности логически связанныхреквизитов (информационных элементов). Такими сущностями для информационных объектов могут служить: цех, склад, материал, вуз, студент, сдача экзаменов и т.д.
Информационный объект определенного реквизитного состава и структуры образует класс (тип), которому присваивается уникальное имя (символьное обозначение), например Студент, Сессия, Стипендия.
Информационный объект имеет множество реализации —экземпляров, каждый из которых представлен совокупностью конкретных значений, реквизитов и идентифицируется значением ключа (простого —один реквизит или составного —несколько реквизитов). Остальные реквизиты информационного объекта являются описательными. При этом одни и те же реквизиты в одних информационных объектах могут быть ключевыми, а в других—описательными. Информационный объект может иметь несколько ключей.
Сетевая модель данных
В сетевой структуре при тех же основных понятиях (уровень, узел, связь) каждый элемент может быть связан с любым другим элементом. На рис. 3 изображена сетевая структура базы данных в виде графа.
Пример. Примером сложной сетевой структуры может служить структура базы данных, содержащей сведения о студентах, участвующих в научно-исследовательских работах (НИРС). Возможно участие одного студента в нескольких НИРС, а также участие нескольких студентов в разработке одной НИРС. Графическое изображение описанной в примере сетевой структуры, состоящей только из двух типов записей, показано на рис. 4. Единственное отношение представляет собой сложную связь между записями в обоих направлениях.
Рис. 2. Пример иерархической структуры БД
Р Рис. 3. Графическое изображение сетевой структурыЕляционная модель данных
Понятие реляционный (англ. relation — отношение) связано с разработками известного американского специалиста в области систем баз данных Е. Кодда.
Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
- каждый элемент таблицы – один элемент данных;
- все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;
- каждый столбец имеет уникальное имя;
- одинаковые строки в таблице отсутствуют;
- порядок следования строк и столбцов может быть произвольным.
Пример. Реляционной таблицей можно представить информацию о студентах, обучающихся в вузе (Рис. 4).
№ л/д | Фамилия | Имя | Отчество | Дата рождения | Группа |
16493 | Сергеев | Петр | Михайлович | 01.01.76 | 111 |
16593 | Петрова | Анна | Владимировна | 15.03.75 | 112 |
16693 | Анохин | Андрей | Борисович | 14.04.76 | 111 |
Рис. 4. Пример реляционной таблицы Отношения представлены в виде таблиц, строки которых соответствуют кортежам или записям, а столбцы — атрибутам отношений, доменам, полям. Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом (ключевым полем). Если записи однозначно определяются значениями нескольких полей, то такая таблица базы данных имеет составной ключ. В примере, показанном на Рис. 4, ключевым полем таблицы является «№ личного дела». Чтобы связать две реляционные таблицы, необходимо ключ первой таблицы ввести в состав ключа второй таблицы (возможно совпадение ключей); в противном случае нужно ввести в структуру первой таблицы внешний ключ — ключ второй таблицы. Пример. На рис. 5 показан пример реляционной модели, построенной на основе отношений: СТУДЕНТЫ, СЕССИЯ, ПРЕДМЕТЫ. СТУДЕНТЫ(Код студента, Фамилия, Имя, Пол, Дата рождения, Телефон, Группа). СЕССИЯ(Код студента, Код предмета, Оценка). ПРЕДМЕТЫ(Код предмета, Название, Преподаватель). Таблица СЕССИЯ имеет два внешних ключа Код студентаиКод предмета, которые обеспечивают ее связь с таблицами СТУДЕНТЫ и ПРЕДМЕТЫ. Рис. 5