- •2. Реляционная модель данных
- •2.1. Определения и понятия
- •2.2. Первичные ключи и индексы
- •2.3. Реляционные отношения между таблицами
- •2.3.1. Отношение один-ко-многим
- •2.3.2. Отношение один-к-одному
- •2.3.3. Отношение многие-ко-многим
- •2.3.4. Связи между записями одной таблицы
- •2.4. Ссылочная целостность
- •2.5. Индексы
- •Упражнения и задачи
- •3. Нормализация отношений
- •3.1. Первая нормальная форма
- •3.2. Функциональные зависимости и детерминанты
- •3.3. Вторая нормальная форма
- •3.4. Третья нормальная форма
- •3.5. Нормальная форма Бойса-Кодда (нфбк)
- •3.6. Нормализация за и против
- •Контрольные вопросы
- •Упражнения и задачи
- •4. Операции с данными в реляционной модели
- •4.1. Объединение
- •4.2. Пересечение
- •4.3. Вычитание
- •4.4. Декартово произведение
- •4.5. Выбор
- •4.6. Проекция
- •4.7. Соединение
- •4.8. Деление
- •Упражнения и задачи
- •5. Запросы к бд
- •5.1. Простые запросы
- •5.2. Многотабличные запросы
- •5.3. Подзапросы
- •6. Сетевая модель данных
- •6.1. Исторический контекст
- •6.2. Основные понятия и определения
- •Торговый-агент
- •Строка-элемент
- •6.3. Преимущества и недостатки сетевых моделей
- •Упражнения и задачи
- •7. Иерархическая модель данных
- •7.1. Основные понятия и определения
- •7.2. Преимущества и недостатки иерархических моделей
- •Упражнения и задачи
- •Часть 2. Управление окружением базы данных
- •1. Администрирование баз данных
- •1.1. Функции абд
- •1.1.1. Работа с пользователями
- •1.1.2. Установление стандартов и процедур
- •1.2. Задачи абд
- •2. Защита базы данных
- •2.1. Идентификация пользователя
- •2.2. Проверка полномочий и представления данных
- •2.3. Шифровка
- •Метод поалфавитной подстановки
- •2.4. Секретность данных
- •4. Целостность данных
- •4.1. Контроль типов
- •4.2. Контроль изменений
- •4.3. Целостность на уровне ссылок
- •5. Параллельная работа с бд
- •5.1. Обработка транзакций
- •5.2. Параллельная работа с бд
- •Литература
6. Сетевая модель данных
6.1. Исторический контекст
Сети - это способ представления отношений между объектами. Они широко применяются в математике, исследованиях операции, физике и других областях знаний.
Сети обычно представлены математической структурой, которая называется направленным графом.Граф состоит из точек илиузлов, которые соединены стрелками илиребрами.В сетевой модели узлы можно представлять как типы записей данных, а ребра – как отношения один-к-одному или один-ко-многим. Таким образом,сетевая модель данных представляет данные сетевыми структурами типов записей, которые связаны отношениями один-к-одному или один-ко-многим.
В 1971 году был опубликован официальный стандарт сетевых баз данных, который получил название CODASYL. Появление стандарта увеличило популярность сетевой модели, и многие компании создали свои версии сетевой СУБД. Хотя сетевая модель данных в будущем может все больше уступать место на рынке СУБД реляционной модели данных, сегодня она эффективно служит во многих информационных системах.
6.2. Основные понятия и определения
В сетевой модели существуют два основных понятия: типы записей и наборы. Типы записей - это совокупность логически связанных записей. Например, тип записи клиент может включать такие элементы данных, как ИД-Клиент, Имя, Адрес, Сумма-Счета, Дата-Последнего-Платежа. Все типы записей - это заданные имена, такие как КЛИЕНТ, СЧЕТ, ТОРГОВЫЙ АГЕНТ и т.д.
Наборы- это отношения один-ко-многим (или один-к-одному) между двумя типами записей. Например, один набор выражает отношения один-ко-многим между записями клиентов и подлежащих оплате ими счетов. В любом сетевом наборе один тип записей является владельцем, а остальные - членами. В данном примере тип записи клиент является владельцем, а тип записи счета – членом.Отношение один-ко-многим допускает возможность, что с записью клиент может быть связано ноль, одна или несколько записей счетов. Конечно, бывают ситуации, когда отношения строго один-к-одному, как, например, между грузовиком и его водителем, но они обрабатываются таким же образом. Имя набора - это метка, которая присвоена стрелке. Все эти понятия проиллюстрированы примером, приведенным на рис.6.1.
Торговый-агент
КЛИЕНТ ВЛАДЕЛЕЦ
ВЛАДЕЛЕЦ
МНОЖЕСТВО
КЛИЕНТ-ЗАКАЗ МНОЖЕСТВО
ТА-ЗАКАЗ
ЗАКАЗ
ВЛАДЕЛЕЦ ЧЛЕН
МНОЖЕСТВО
ЭЛЕМЕНТ-ЗАКАЗА
Строка-элемент
ЧЛЕН
а) диаграмма
КЛИЕНТ ТОРГОВЫЙ АГЕНТ
Смит Джоунс Дарвин Бин
Заказ 1 Заказ 2 Заказ 3
Ручки Карандаши Бумага Конверты
б) Вхождения
Рис.6.1. Пример сетевой структуры данных
На рис.6.1 мы видим некоторые обозначения. Во-первых, набор обозначается стрелками между типами записей, причем стрелка указывает в сторону типа записи члена. Во-вторых, каждый набор состоит из типа записи владелец, типа записи член и имени набора. В-третьих, структура данных состоит из этих простых наборов отношений. На рис.6.1 представлены три набора: набор КЛИЕНТ-ЗАКАЗ с владельцем КЛИЕНТ и членом ЗАКАЗ, набор ТА-ЗАКАЗ с владельцем ТОРГОВЫЙ-АГЕНТ и членом ЗАКАЗ и набор ЭЛЕМЕНТ-ЗАКАЗА с владельцем ЗАКАЗ и членом СТРОКА-ЭЛЕМЕНТ.
Рис.6.1 является примером отличия сетевой модели от иерархической. Тип записи ЗАКАЗ является членом для двух наборов: КЛИЕНТ-ЗАКАЗ и ЗАКАЗ. В иерархической модели данных никакой тип записи не может быть членом двух разных наборов, но в сетевой модели это возможно.