- •Введение
- •1. Концепция информационных систем
- •1.1. Информация и данные предметных областей
- •1.2. Структура банка данных
- •1.2.1. База данных
- •1.2.2. Система управления базами данных
- •1.2.3. Словарь данных
- •1.2.4. Администратор базы данных и его функции
- •1.3. Контрольные вопросы
- •2. Инфомационное моделирование предметных областей для баз данных
- •2.1. Отображение явлений реального мира данными
- •2.2. Инфологическое моделирование по
- •2.3. Трехуровневое представление информационных объектов
- •2.4. Структурные элементы для моделирования данных
- •2.5. Ключи бд
- •2.6. Интеграция полей бд в отношения
- •2.7. Требования интеграции полей в отношения
- •2.8. Обобщенная структура модели данных в бнд
- •2.9. Er-модель бд
- •2.10. Формирование связей сущностей
- •Способ 1. Определение связи сущностей введением дополнительной сущности
- •Способ 2. Определение связей сущностей добавлением в тип сущности общих атрибутов
- •2.11. Бинарные отношения сущностей
- •2.12. Формы представления структур данных
- •2.13. Организация систем бд
- •2.14. Средства поддержки бд
- •2.15. Виды моделей данных для бд
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Контрольные вопросы
- •3. Системы управления базами данных
- •3.1. Функции и состав универсальной субд
- •3.2. Лингвистическое обеспечение субд
- •3.3. Независимость прикладных программ от данных
- •3.4. Операции над данными
- •Селекция данных
- •Обработка данных
- •Запросы к бд
- •3.5. Схема реализации запроса в БнД
- •Распределенная обработка данных
- •Комбинированная обработка данных
- •3.7. Целостность и ограничения целостности данных
- •3.8. Защита данных в бд
- •Контрольные вопросы
- •4.2.2. Вторичный ключ
- •4.3. Функциональные и многозначные зависимости
- •4.3.1. Функциональные зависимости
- •X y (X влечет y).
- •4.3.2. Аксиомы функциональных зависимостей
- •Контрольные вопросы
- •5. Реляционная алгебра
- •5.1. Операции над отношениями
- •5.2. Оператор "объединение" (union)
- •5.3. Оператор "вычитание" (difference)
- •5.4. Оператор "пересечение" (intersection)
- •5.5. Оператор "проектирование" (proj)
- •5.6. Оператор "выбор" (sel)
- •Комбинированный запрос с операторами proj и sel
- •5.7 Оператор "соединение" (join)
- •Запрос с соединением по одному полю
- •Алгоритм реализации
- •Запрос с соединением по нескольким полям
- •Алгоритм реализации
- •Оператор "соединение по условию"
- •5.8. Оператор "умножение" (product)
- •Запрос с оператором умножения
- •Алгоритм реализации
- •5.9. Оператор "деление" (division)
- •5.10. Оптимизация алгоритмов реализации запросов
- •Контрольные вопросы
- •6. Нормализация реляционных бд
- •6.1. Задачи нормализации Бд
- •6.2. Первая нормальная форма
- •6.3. Декомпозиция реляционных таблиц
- •Проблема дублирования, операторы реляционной алгебры для декомпозиции и объединения таблиц
- •Присоединенные записи
- •Теорема Хита
- •Критерий полной декомпозиции с исключением дублирования
- •6.4. Вторая нормальная форма
- •6.5. Третья нормальная форма
- •6.6. Экстранормализационные формы
- •Нормальная форма Бокса-Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •6.7. Методические аспекты реализации нормализации
- •Контрольные вопросы
2.10. Формирование связей сущностей
Рассмотрим сущность типа Служащий, запись которой имеет вид:
(2.3) Служащий (№Таб, ФИО, ГодРождения, Образование)
и сущность типа "Отдел":
(2.4) Отдел (№Отдела, Корпус, НачальникОтдела)
с идентифицирующими атрибутами соответственно №Таб и №Отдела.
На основе записей (2.3) и (2.4) для этих сущностей нельзя ответить, например, на запрос о том, какие конкретно сотрудники работают в том или ином отделе, т.к. между сущностями нет связей (Рис. 0 .5).
-
Сущность
(2.3)
Связь - ?
Сущность
(2.4)
Рис. 0.5
Следовательно, для обеспечения взаимосвязи сущностей необходимо применить косвенные приемы моделирования связей на основе типов структур данных, допускаемых моделью данных принятой СУБД.
Для косвенного моделирования связи сущностей применяются два способа:
введение дополнительной сущности;
добавление в сущность общих атрибутов.
Способ 1. Определение связи сущностей введением дополнительной сущности
По этому способу в качестве атрибутов дополнительной сущности принимаются идентифицирующие атрибуты связываемых сущностей. Для примеров сущностей, представленных типами записей (2.3) и (2.4), этими атрибутами будут первичные ключи, т.е. соответственно №Таб и №Отдела. В рассматриваемом примере для вновь вводимой с целью обеспечения связи самостоятельной сущности присвоим тип РаботаетВ.
Структуру этой связующей сущности можно смоделировать схемой записи:
(2.5) РаботаетВ (№Таб, №Отдела),
в которой идентифицирующим будет атрибут №Таб.
Набор экземпляров сущностей типа (2.5) моделируется отдельной БД.
Способ 2. Определение связей сущностей добавлением в тип сущности общих атрибутов
По этому способу в качестве общих атрибутов, добавляемых в какой-либо тип сущности, принимаются идентифицирующие атрибуты связываемых сущностей. Для примеров сущностей, представленных типами записей (2.3) и (2.4), этими атрибутами могут быть первичные ключи, т.е. соответственно №Таб и №Отдела.
По рассматриваемому способу в сущность Служащий (2.3) можно дополнительно ввести идентифицирующий атрибут из сущности (2.4) №Отдела. Тогда схема сущности примет вид:
Служащий (№Таб, №Отдела, ФИО, ГодРождения, Образование)
В целом при датологическом проектировании принятая модель данных считается тем удачнее, чем большее число конструкций инфологической модели представимо прямым моделированием.
2.11. Бинарные отношения сущностей
Как отмечалось выше, каждое отношение (или связь) между информационными объектами по числу входящих в него объектов характеризуется степенью n=1,2,...,n. Соответственно связи сущностей могут быть бинарные (между двумя сущностями), тернарные (между тремя сущностями) и т.д. Чаще в информационных объектах связи бинарные, т.е. охватывают две сущности.
Рассмотрим два типа сущностей: А и В. Между двумя сущностями возможны четыре вида бинарных отношений.
Отношение 1:1 ("один к одному") - это связь, при которой каждому экземпляру сущности А соответствует один и только один экземпляр сущности В и наоборот (Рис. 0 .6,а). На рРис. 0 .6,б и Рис. 0 .6,в приведены примеры схемы и экземпляра схемы структуры данных с отношением 1:1.
Отношение 1:М ("один ко многим") - это связь, при которой одному экземпляру сущностей А может соответствовать 0,1,2 или более экземпляров сущности В. Однако каждому экземпляру сущности В соответствует только один экземпляр сущности А (Рис. 0 .7,а). На Рис. 0 .7,б и Рис. 0 .7,в приведены соответственно схема и экземпляр схемы структуры данных с отношением 1:М.
Отношение М:1 ("многие к одному") - это связь с характеристиками, противоположными типу 1:М. Пример на Рис. 0 .8.
Отношение М:М ("многие ко многим") - это связь, при которой каждому экземпляру сущности А может соответствовать 0,1,2 или более экземпляров сущности В и наоборот. Пример на Рис. 0 .9.
A 1 1 B 1 1
0 0 |
|
0 0 |
|
№Табельный |
|
Паспортные Данные |
… |
|
… |
|
|
|
|
0 |
|
0 |
|
|
|
|
а) б)
-
7011
VII-СД № 565901, выдан 02. 11. 76
7314
XXV-БС № 131416, выдан 12.01.84
в)
Рис. 0.6
A 1 М B 1 М
0 0 |
0 0 |
|
Клиенты |
|
Банк | |
… |
|
0 |
|
|
|
|
0 |
|
0 |
|
|
|
|
а) б)
-
Счет 26015
ИМПЕРИАЛ
Счет 440516
в)
Рис. 0.7
A М 1 B М 1
0 0 |
|
0 0 |
|
Менеджеры |
|
Управление фирмой |
… |
|
0 |
|
|
|
|
0 |
|
0 |
|
|
|
|
а) б)
-
Соколов С.С.
Управление фирмой
"Кристалл"
Титов Т.Т.
в)
Рис. 0.8
М М
-
Поставщики
Потребители
Рис. 0.9