- •214Лекция 10. Разработка базы данных. Модели данных.
- •Реляционная модель
- •Лекция 10. Разработка базы данных. Модели данных. Реляционная модель
- •Введение
- •Основные понятия баз данных Определения
- •Логическая организация баз данных
- •Типовые функции обработки данных
- •Основные требования к базам данных
- •Создание базы данных и ввод данных
- •Многопользовательская технология обработки данных бд
- •Модели данных, поддерживаемые в субд
- •Сетевые и иерархические модели данных
- •Структуры данных сетевых и иерархических моделей
- •Связи объектов в сетевых и иерархических моделях данных
- •Операции обработки данных модели
- •Сравнение сетевых и иерархических моделей
- •Реляционная модель данных
- •Структуры данных реляционной модели
- •Определения и основные понятия реляционного подхода
- •Нормализация данных
- •Логические связи в реляционной модели, реляционная бд
- •Контрольные вопросы
Операции обработки данных модели
По отношению к объектам (записям) сетевой модели осуществляются операции: запомнить – ввод новой записи и автоматическое ее включение в групповые отношения, где она объявлена подчиненной; включить – включение уже существующей подчиненной записи в заданное групповое отношение; обновить – изменить значения элементов существующей записи; извлечь – поиск записи любого типа; удалить – удалить запись; исключить из группового отношения – разорвать связь с владельцем, сохранив запись. Для корневой записи обязательно наличие уникального ключа, для подчиненной записи – наличие в БД записи, которой она подчинена.
По отношению к объектам (записям) иерархической модели осуществляются операции: запомнить – включить в БД новую запись; обновить – изменить значения элементов в предварительно извлеченной записи (ключевые поля записей не изменяются); удалить – удалить из БД экземпляр записи и все подчиненные ей записи; извлечь – найти корневую запись по значению уникального ключа записи или произвести поиск подчиненной записи левосторонним обходом иерархической структуры БД сверху вниз.
Сравнение сетевых и иерархических моделей
В строго иерархических моделях, как правило, любой объект (запись, сегмент) может подчиняться только одному объекту вышестоящего уровня. В сетевых моделях – любой объект (запись, файл) может быть подчинен нескольким объектам. Отличие в топологии иерархической и сетевой модели схематически иллюстрирует рис.10.2.
Рис.2. Иллюстрация особенностей моделей по топологии и доступу
В иерархических моделях непосредственный доступ по ключу, как правило, возможен только к объекту самого высокого уровня, который не подчинен другим объектам. К другим объектам доступ осуществляется по связям от объекта на вершине модели. В сетевых моделях непосредственный доступ по ключу может обеспечиваться к любому объекту независимо от его уровня в модели. Возможен также доступ по связям от любой точки доступа.
Структура объекта (записи, файла) в сетевых моделях чаще бывает линейной и реже имеет иерархическую структуру. Объект линейной структуры состоит только из простых и ключевых атрибутов. Структуры данных более низкого уровня также могут иметь свою специфику и названия. Например, атрибут – аналог элемента данных. Структура объекта (записи, сегмента) в иерархических моделях может быть иерархической (см. рис.10.1.) или линейной.
Сетевая модель на примере базы данных, содержащей справочные данные о цехах, складах, изделиях, плановые данные выпуска изделий цехами и учетные данные о сдаче выпущенных цехами изделий на склад, приведена на рис.10.3. Объекты в этой модели являются линейными.
Рис. 3. Пример базы данных, реализованной сетевой моделью
Достоинством сетевых моделей является отсутствие дублирования данных в различных объектах модели. Кроме того, технология работы с сетевыми моделями является удобной для пользователя, так как доступ к данным практически не имеет ограничений и возможен непосредственно к объекту любого уровня. Допустимы всевозможные запросы. Сетевые модели позволяют отображать также иерархические взаимосвязи данных.
В соответствии со структурами данных, используемыми в модели данных, каждая сетевая или иерархическая СУБД имеет свой язык описания данных – язык декларативных команд. Язык манипулирования данными также специфичен для каждой СУБД и зависит от типов структур данных модели. Такие отличия в используемых языковых средствах затрудняют освоение СУБД, поддерживающих сетевые и иерархические модели. Генерация описания схемы БД делает программы зависимыми от структуры БД.