- •Часть I. Теория баз данных
- •Глава I. Системы файлов и базы данных
- •Оценка системы файлов
- •1.2. Понятие базы данных и системы управления базами данных.
- •1.3 Архитектура бд
- •Концептуальная модель
- •Внутренняя модель
- •1.4.1 Иерархическая модель данных
- •Физическая модель
- •1.4 Модели баз данных
- •1.4.2 Сетевая модель данных
- •1.4.3 Реляционная модель данных
- •Нормализация отношений
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Нормальная форма Бойса-Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •Денормализация
- •Методы реализации денормализации
- •1.4.4. Объектно-ориентированная модель данных
- •1.4.4.1. Атрибуты
- •1.4.4.2. Состояние объекта. Сообщения и методы
- •1.4.4.3. Классы
- •1.4.4.4. Протокол
- •1.4.4.5. Суперклассы, подклассы, наследование
- •1.4.4.6. Единичное наследование. Множественное наследование.
- •1.4.4.7. Переопределение методов и полиморфизм
- •1.4.4.8. Абстрактные типы данных
- •1.4.4.9. Классификация объектов
- •1.4.4.10. Свойства объектно-ориентированных моделей данных
- •1.5.1 Сущности
- •1.5.2 Атрибуты
- •1.5.3. Связи
- •1.5.4. Сравнение обозначений в er-моделировании
- •1.5.5. Разработка er-диаграмм
1.4.2 Сетевая модель данных
Сетевая модель была разработана для того, чтобы более эффективно представлять более сложные отношения данных, а также для улучшения производительности и стандартизации БД.
Были описаны три ключевых компоненты БД:
схема-абстрактная организация БД с точки зрения администратора БД. В эту схему включены определение имени БД, типа каждой записи и их структуры, а также описание наборов данных;
подсхема, определяющая фрагмент БД, видимый прикладными программистами, которые фактически извлекают из БД информацию;
язык описания данных, предназначенный для определения свойств данных и их структуры.
Был также определен необходимый стандарт для каждой из трех этих компонент, т.е. определены три отдельных компоненты языка управления данными:
схема языка определения данных (DDL), которая позволяла администратору определять компоненты схемы;
подсхема DDL, дающая возможность прикладным программистам определить компоненты БД, которые будут использоваться;
язык манипулирования данными (DML) для работы с БД.
Во многих отношениях сетевая модель схожа с иерархической. БД воспринимается как совокупность записей, между которыми существует связь 1:М. Но в отличие от иерархической модели в сетевой записи могут иметь более чем одного предка.
Рис. 2 Потомок с несколькими предками
Связи, представленные на рис.2 легко описываются средствами сетевой модели.
На связи в сетевой модели накладываются два ограничения: они должны быть бинарными и находиться в соотношении 1:М. Если хотя бы одно из этих ограничений не выполняется, то делают соответствующие преобразования и добиваются выполнения этих ограничений.
Графическое представление сетевой БД показывается диаграммой Бахмана.
Рис.3. Диаграмма Бахмана
На этой диаграмме P1, P2, S1, S2 – физические наборы данных, содержащие тот или иной тип записей. SYS, POST, TOV, DOG – тип записей. Буква C означает, что эти записи вычисленные (CALC), их можно вычислить, зная значения ключей (KPOST или KTOV), буква V означает, что эти записи можно получить только через наборы S1 или S2.
Наборы P1 и P2 называются сингулярными или перечнем. Особенность этих наборов заключается в том, что у всех записей типа POST по набору P1 владельцем является одна единственная запись SYS (система), у всех записей типа TOV по набору P2 владельцем является запись SYS. Пример описания схемы БД для данной диаграммы Бахмана для сетевой СУБД db_vista:
database ‘study’ {
data file ‘study.dat’ contains
Каждая запись в сетевой модели имеет служебные поля: владелец (master, owner), которая в иерархической модели соответствует предку, следующий (next), которая соответствует потомку в иерархической модели. Запись (member) в сетевой модели может при некоторых условиях появляться более чем в одном наборе, т.е. запись-член может иметь несколько записей-владельцев. Пример такой связи представлен на рис. 4.
Рис.4. Сетевая модель БД.
Преимущества сетевой модели.
В сетевой модели сохранились преимущества иерархической модели данных, но были исправлены многие недостатки:
концептуальная простота. Абстрактное представление БД достаточно простое;
поддержка других типов связей. Связь типа m:n в сетевой модели реализуется проще, чем в иерархической за счет того, что в ней допускается наличие нескольких владельцев записи;
гибкий доступ к данным значительно выше, чем в иерархической и в системах файлов;
любое приложение может получить доступ к записи-владельцу и всем записям-членам набора без долгого прямого обхода;
обеспечение целостности данных за счет того, что пользователь должен сначала определить запись-владелец, а потом уже записи-члены (запись-член не может существовать без записи-владельца);
независимость данных. Частично избавляет от программирования сложных деталей, связанных с методами физического хранения информации. Поэтому изменения в свойствах данных не потребуют переделки тех участков прикладных программ, где выполняется доступ к данным;
соответствие стандартам. Стандарты DDL и DML значительно улучшили возможности администрирования БД.
Недостатки сетевой модели.
Сложность системы в целом. Так же, как и иерархическая предоставляет навигационные средства доступа к данным, поэтому администраторы, программисты для получения доступа должны хорошо знать внутреннюю структуру БД. Сетевую модель, как и иерархическую нельзя считать дружественной системой;
Недостаточная структурная независимость. Поскольку сетевая модель обеспечивает доступ к данным с помощью средств навигации, трудно производить структурные изменения. Если делаются какие-либо изменения, то необходимо проверить все прикладные программы.
В 1980-х годах сетевая модель была вытеснена реляционной моделью данных.
