- •Введение
- •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. Методические аспекты реализации нормализации
- •Контрольные вопросы
Реляционная модель данных
Реляционная модель данных основана на теоретико-множественном подходе. Ее базу составляют методология и язык, разработанные Коддом в 1972 г.
Реляционной моделью данных называется модель, представляемая в виде двухмерной таблицы (Рис. 0 .15), информационными единицами которой являются поля, домены и кортежи. Для реляционной модели данных используется также термин "отношение".
Доменом называется совокупность значений какого-либо типа поля. Из домена извлекаются требуемые конкретные значения этого поля.
Кортежем называется запись, или строка, реляционной таблицы. По количеству столбцов в кортеже определяется размерность реляционной модели данных, или отношения. Так, при размерности n реляционная модель будет степени n или n-мерной.
Для различных пользователей из БД интересны различные наборы данных и связи между ними. Для одних пользователей требуется извлекать подмножества полей таблицы с целью создания таблиц меньшей размерности, а для других пользователей, наоборот, объединять поля в таблицы большей размерности. Следовательно, с логической точки зрения, реляционная модель данных ПО - это множество двухмерных таблиц, называемых также отношениями с операторами извлечения и объединения полей.
Для представления структур реляционных моделей данных, или отношений, можно вместо таблиц использовать рассмотренные ранее строковые записи. В этих записях указывается тип отношения, затем в круглых скобках размещаются через запятую имена доменов, или атрибутов. При этом атрибуты ключей размещаются на первых позициях и подчеркиваются:
(4.1) Тип отношения(Атрибут1, Атрибут2,…, АтрибутN).
№п/п |
Домены |
| ||||
|
Р1 |
Р2 |
|
Рn |
| |
1 |
р11 |
р21 |
|
рn1 |
Кортеж | |
2 |
р12 |
р22 |
|
рn2 |
| |
. . . . . . . . . . . . . . . |
| |||||
m |
р1m |
р2m |
|
рnm |
|
Домен
Рис. 0.15
В отношении (4.1) имена атрибутов, состоящих из нескольких слов, как отмечалось ранее, записываются без пробелов между словами, но каждое новое слово записывается с большой буквы.
Пример.
Сотрудник(NТабСотрудника, ФИО, Задание,
ВремяВыполненияЗадания).
Рассмотрим реляционную таблицу - БД "Временные трудовые коллективы (ВТК)", приведенную на Рис. 0 .16.
№ВТК |
НазваниеВТК |
№Комнаты |
ФИОРуководителя |
В1 |
Луч |
212 |
Белов В. Г. |
В2 |
Стрела |
318 |
Орлов К.И. |
В3 |
Взлет |
214 |
Белов В. Г. |
В4 |
Омега |
318 |
Ломов Г. Р. |
Рис. 0.16
Здесь первичными ключами-кандидатами могут быть:
атрибут №ВТК
сцепленный ключ №Комнаты + ФИО Руководителя.
Используя для представления реляционной модели данных вместо таблицы строковую запись, и принимая простой первичный ключ, структуру таблицы на Рис. 0 .16можно записать в виде:
ВТК(№ВТК , НазваниеВТК, №Комн, ФИОРук-ля).