- •Головчинер м.Н.
- •Курс лекций Томск 2011
- •Введение
- •Понятие о данных как о ресурсе
- •Файловые системы и базы данных
- •Численные и информационные прикладные системы
- •Файловые системы
- •Файлы и информационные системы. Общее понятие о базе данных
- •Контрольные вопросы по первому разделу
- •База данных как модель предметной области
- •Понятие предметной области
- •Понятие системы
- •Понятие модели. Структурная модель
- •Модель предметной области и модель данных
- •Контрольные вопросы по второму разделу
- •Понятие о банке данных
- •Структура банка данных
- •Организационный аспект
- •Уровни представления базы данных
- •Модели предметной области:
- •Модели данных:
- •Контрольные вопросы по третьему разделу
- •Вопросы проектирования баз данных
- •Жизненный цикл информационной системы
- •Процесс проектирования
- •Организационный аспект
- •Задачи и структура процесса проектирования
- •Формулирование и анализ требований. Инфологическое проектирование
- •Общая схема логического (концептуального) проектирования
- •Контрольные вопросы по четвертому разделу
- •Модели данных
- •Реляционная модель данных
- •Базовые понятия
- •5.1.2. Принципы нормализации
- •5.1.3. Целостность сущности и ссылок
- •5.1.4. Манипулирование данными в реляционных моделях
- •5.1.4.1.Операции реляционной алгебры
- •5.1.4.2.Реляционное исчисление
- •Достоинства и недостатки реляционных моделей
- •Контрольные вопросы по разделу 5.1.
- •Навигационные модели данных
- •Иерархическая модель
- •Сетевые структуры
- •Особенности навигационных моделей. Достоинства и недостатки
- •Контрольные вопросы по разделу 5.2.
- •Система управления базой данных
- •Назначение и функции субд
- •Типовая организация субд и упрощенная схема работы
- •Контрольные вопросы по шестому разделу
- •Основы физического проектирования
- •Файловые и страничные системы хранения информации
- •Файловые структуры. Классификация методов доступа
- •Способы последовательной организации
- •Прямые методы доступа. Хеширование
- •Прямые методы доступа. Классификация методов индексирования
- •Доступ с полным (плотным) индексом
- •Доступ с неплотным индексом
- •Организация индексов в виде в-деревьев
- •Инвертированный файл (доступ по неключевым атрибутам)
- •Использование битовых шкал
- •Достоинства и недостатки основных методов доступа
- •Бесфайловая организация внешней памяти
- •Особенности реляционных субд
- •Базовые структуры памяти
- •5.1.4.3.Структура и типы страниц
- •5.1.4.4.Табличные пространства
- •5.1.4.5.Понятие экстента и буферизация
- •Проблемы и параметры управления внешней памятью
- •Контрольные вопросы по седьмому разделу
- •Особенности объектно-ориентированных субд
- •Основные понятия объектно-ориентированного подхода
- •Предпосылки появления объектно-ориентированных субд
- •Объектная модель данных. Оосубд
- •. Объектно-реляционные субд
- •5.2.Поддержка сложных объектов,
- •5.3.Поддержка динамических изменений определений классов,
- •5.4.Полная интеграция с объектно-ориентированными системами программирования.
- •Объектно-реляционное отображение
- •Select * from Предпочтительная акция
- •Управление ресурсами. Сервер объектов и сервер страниц
- •Контрольные вопросы по восьмому разделу
- •Вопросы распределенных баз данных
- •9.1. Централизованные и децентрализованные субд
- •Стратегии хранения данных. Достоинства и недостатки
- •Проблемы распределенных баз данных
- •Одновременная работа
- •Управление блокированием
- •Методы синхронизации распределенных обновлений
- •Завершение транзакции. Журнал транзакций
- •Свойства транзакций
- •Контрольные вопросы по девятому разделу
- •Заключение
- •Литература
Сетевые структуры
О сновные понятия. Сетевой подход к организации данных является расширением иерархического. В иерархических структурах запись-потомок должна иметь в точности одного предка; в сетевой структуре данных потомок может иметь любое число предков. С точки зрения теории графов сетевой модели соответствует произвольный граф (возможно, имеющий циклы и петли). Например,
Стандарт сетевой модели впервые был определен в 1975г. организацией CODASYL (Conference of Data System Languages), которая определила базовые понятия модели и формальный язык ее описания.
Базовыми объектами модели являются:
элемент данных,
агрегат данных,
запись,
набор данных.
Элемент данных – минимальная информационная единица, доступная с помощью СУБД.
Агрегат данных – соответствует следующему после элемента данных уровню обобщения.
Например, агрегат с именем Адрес может быть представлен в виде
Адрес |
|||
Город |
Улица |
Дом |
Квартира |
Запись - в общем случае совокупность элементов данных и/или агрегатов, моделирующая некоторый класс объектов реального мира.
Набор – двухуровневый граф, связывающий отношением 1:M два типа записей.
Набор фактически отображает иерархическую связь между двумя типами записей - родительским типом записи (предком), называемым владельцем набора, и дочерним типом записи (потомком) – членом набора. Экземпляр типа связи состоит из одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка.
Для любых двух типов записей может быть задано любое количество наборов, которые их связывают. Наличие подобных возможностей позволяет промоделировать отношение M:N между двумя объектами реального мира, что выгодно отличает сетевую модель от иерархической.
П ример. На рис.16. представлены два набора, связывающие сущности "Преподаватель" и "Группа".
Рис.16. Наборы данных, связывающие сущности "Преподаватель" и "Группа"
Пусть связь между экземплярами типов записей в наборах представляется содержимым таблицы1.
Экземпляров набора "Ведет занятия у" – 3 (по количеству преподавателей), а экземпляров набора "Занимается у" – 4 (по количеству групп).
Таблица 1.
Преподаватель |
Группа |
Иванов |
1171 |
Иванов |
1172 |
Карпова |
1172 |
Карпова |
1174 |
Карпова |
723 |
Смирнов |
1171 |
Смирнов |
1174 |
Учитывая первоначальные рекомендации CODASYL и результаты последующих соглашений, можно сформулировать следующие основные свойства и ограничения, присущие набору:
Набор – это поименованная совокупность связанных записей.
В каждом экземпляре набора имеется только один экземпляр записи-владельца.
Тип набора представляет логическую взаимосвязь 1:M между владельцем и членом
С ущественное различие между сетевой и иерархической моделями данных состоит в том, что в сетевой модели каждая запись может участвовать в любом количестве наборов:
В сетевых моделях допускаются записи-члены, не участвующие в наборах. Это соответствует порожденным узлам дерева, не имеющим исходных.
Между двумя типами записей можно определить любое количество наборов, то есть, между ними могут быть определены любые типы отношений.
Экземпляр набора существует после заполнения записи-владельца.
На формирование типов связи не накладываются особые ограничения; возможны, например, ситуации:
Тип записи потомка в одном типе связи может быть типом записи предка в другом типе связи (как в иерархии).
Данный тип записи может быть типом записи предка в любом числе типов связи.
Данный тип записи может быть типом записи потомка в любом числе типов связи.
Предок и потомок могут быть одного типа записи.
Концептуальная модель. Таким образом, сетевая БД состоит из набора записей и набора связей между ними, на концептуальном уровне образующих некоторый граф, а если говорить более точно, из набора экземпляров каждого типа из заданного в схеме БД набора типов записи и набора экземпляров каждого типа из заданного набора типов связи.
Внешняя модель. При сетевой организации данных внешняя модель поддерживается путем описания соответствующей части общего связного графа.
Навигация в сетевой модели. Навигационные операции осуществляют перемещение по БД путем прохождения по связям, которые поддерживаются в схеме БД. В этом случае результатом является новый единичный объект, который получает статус текущего объекта.
Примерный набор операций манипулирования данными может быть таковым:
найти конкретную запись в наборе однотипных записей;
перейти от предка к первому потомку по некоторой связи;
перейти к следующему потомку в некоторой связи;
перейти от потомка к предку по некоторой связи;
создать новую запись;
уничтожить запись;
модифицировать запись;
включить в связь;
исключить из связи;
переставить в другую связь и т.д.
Искомая взаимосвязь экземпляров типов записей, приведенных в таблице 1 для наборов примера на рис. 16, может быть представлена в виде следующей диаграммы:
Рис.17. Пример диаграммы связей экземпляров типов записей в сетевой модели
Очевидно, что задачи как физической организации файла, в которую отображается данная структура, так и поиска нужных записей отнюдь не тривиальны.
Наиболее интересна операция поиска (FIND), так как именно она отражает суть навигационных методов, применяемых в сетевой модели. Всего существует 7 типов операций поиска:
по ключу,
последовательный просмотр записей данного типа,
поиск владельца текущего экземпляра набора,
последовательный просмотр записей-членов текущего экземпляра набора,
просмотр записей-членов экземпляра набора, специфицированных рядом полей,
сделать текущей записью процесса текущий экземпляр набора,
установить текущую запись процесса.
Таким образом, выполнение команд поиска устанавливает текущий указатель (указатель на текущий объект). Далее найденный объект, если его необходимо модифицировать, должен быть перемещен из БД в рабочую область приложения.
Ограничения целостности. В принципе их поддержание не требуется, но иногда требуют целостности по ссылкам (как в иерархической модели).