- •Введение
- •1. Концепция информационных систем
- •1.1. Информация и данные предметных областей
- •1.2. Структура банка данных
- •1.2.1. База данных
- •1.2.2. Система управления базами данных
- •1.2.3. Словарь данных
- •2. Инфомационное моделирование предметных областей для баз данных
- •2.1. Отображение явлений реального мира данными
- •1.2.4. Администратор базы данных и его функции
- •1.3. Контрольные вопросы
- •2.2. Инфологическое моделирование по
- •2.3. Трехуровневое представление информационных объектов
- •2.4. Структурные элементы для моделирования данных
- •2.5. Ключи бд
- •2.6. Интеграция полей бд в отношения
- •2.7. Требования интеграции полей в отношения
- •2.8. Обобщенная структура модели данных в бнд
- •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.6. Способы обработки данных
- •Централизованная обработка данных
- •Распределенная обработка данных
- •Комбинированная обработка данных
- •3.7. Целостность и ограничения целостности данных
- •3.8. Защита данных в бд
- •Контрольные вопросы
- •4. Реляционные бд
- •4.1. Свойства реляционных таблиц
- •4.2. Назначение первичных и вторичных ключей реляционных таблиц
- •4.2.1. Первичный ключ
- •4.2.2. Вторичный ключ
- •4.3. Функциональные и многозначные зависимости
- •4.3.1. Функциональные зависимости
- •X y (X влечет y).
- •4.3.2. Аксиомы функциональных зависимостей
- •Аксиома транзитивности
- •4.3.3. Многозначные зависимости
- •4.4. Уровни автоматизации манипулирования данными в реляционных бд
- •Контрольные вопросы
- •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. Методические аспекты реализации нормализации
- •Контрольные вопросы
Комбинированный запрос с операторами proj и sel
Рассмотрим комбинированный запрос с операторами PROJ и SEL для БД "Разработчики ПП", приведенной на рис.5.1.
Запрос.
Выбрать ФИО разработчиков со стажем от 12 лет, ГодРождения которых 1960 и позже.
Для ответа на запрос в БД "Разработчики ПП" необходимо использовать РТ "Разработчики". Тогда уравнение ответа можно записать в виде:
R=ProjФИО(sel<(Стаж >=12)and(ГодРожд-я>=1960)> (Разр-ки))
Ответ : R: |
ФИО |
|
Крылов Г. |
5.7 Оператор "соединение" (join)
Функция: на основе двух реляционных таблиц R1 и R2, имеющих одно или несколько полей идентичных типов, формируется реляционная таблица R, состоящая из записей, каждая из которых является конкатенацией, т.е. соединением в одну тех записей таблиц R1 и R2, у которых совпадают значения полей всех идентичных типов.
Следовательно, соединение может быть реализовано двумя способами:
по одному полю;
по нескольким полям.
Если у таблиц R1 и R2 типы полей, по которым выполняется соединение, имеют идентичные имена, то соединение называется естественным. В этом случае в результирующей записи общий тип поля помещается лишь один раз. Если имена разные, то в результирующей записи остается каждый тип поля.
Синтаксис: R = R1 join R2.
Пример 1.
Соединить таблицы R1 и R2 с одним общим полем.
R1: |
A |
B |
R2: |
C |
B |
Ответ: R: |
A |
B |
C |
|
|
d |
3 |
|
3 |
a |
|
d |
3 |
a |
|
|
h |
7 |
|
3 |
b |
|
d |
3 |
b |
|
|
y |
4 |
|
7 |
a |
|
h |
7 |
a |
|
|
|
|
|
9 |
c |
|
||||
Пример 2.
Соединить таблицы R1 и R2 с двумя общими полями
-
R1:
A
B
C
R2:
B
C
D
Ответ: R:
A
B
C
D
d
3
a
3
a
c
d
3
a
c
h
7
b
3
a
d
d
3
a
d
y
4
a
4
a
e
y
4
a
e
g
2
c
