- •Содержание
- •1.1. Основные понятия
- •1.2. Компоненты БнД
- •1.3. Классификация БнД и бд
- •1.4. Этапы проектирования бд
- •1.5. Взаимосвязь этапов проектирования бд
- •Вопросы для самоконтроля
- •Раздел 2. Проектирование баз данных. Тема 2. Инфологическое моделирование (начало)
- •2.1. Необходимость инфологического моделирования
- •2.1.1. Виды ограничений целостности
- •2.1.2. Причины, приводящие к нарушению ограничений целостности
- •2.2. Описание объектов и их свойств
- •Тема 3. Инфологическое моделирование (окончание)
- •3.1. Описание связей между объектами.
- •3. 2. Описание сложных объектов
- •Вопросы для самоконтроля
- •Тема 4. Даталогическое проектирование
- •4.1. Общие сведения
- •4.2. Подход к даталогическому проектированию
- •4.3. Определение состава бд
- •4.4. Разновидности даталогических моделей
- •Вопросы для самоконтроля
- •Тема 5. Реляционная даталогическая модель базы данных
- •5.1. Основные понятия
- •5.2. Цели проектирования рбд
- •5.2.1. Возможность хранения всех необходимых данных в бд
- •5.2.2. Исключение избыточности данных
- •5.2.3. Сведение числа хранимых в бд отношений к минимуму
- •5.2.4. Нормализация отношений
- •Вопросы для самоконтроля
- •Тема 6. Метод проектирования реляционной базы данных на основе илм
- •Вопросы для самоконтроля
- •Тема 7. Пример проектирования реляционной базы данных на основе илм
- •7.6. Определение состава бд
- •7.7. Определение отношений, включаемых в бд
- •7.8. Описание логической структуры бд на языке субд (схема бд)
- •7.9. Сравнение спроектированной рбд с однотабличной бд
- •Вопросы для самоконтроля
- •Раздел 3. Описание информационных потребностей пользователей базы данных. Тема 8. Информационные потребности пользователей базы данных.
- •8.1. Типы и языки запросов
- •8.2. Реляционная алгебра (алгебра отношений)
- •8.2.1. Проекция
- •8.2.2. Выборка
- •8.2.3. Соединение
- •8.2.4. Объединение
- •8.2.5. Пересечение
- •8.2.6. Вычитание
- •8.2.7. Умножение
- •8.2.8. Деление
- •8.3. Примеры запросов на реляционном языке
- •Вопросы для самоконтроля
- •Раздел 4. Использование языкаSql для работы с базами данных. Тема9. Структурированный язык запросов sql
- •9.1. Стандарт и разновидности языка sql
- •9.2. Краткое введение в sql
- •Тема 10. Основные элементы языка sql. Использование языка sql для выборки данных
- •10.1. Оператор select
- •Тема 11. Отбор строк из таблиц. Условия поиска строк
- •Вопросы для самоконтроля
- •Тема 12. Сортировка таблиц
- •Тема 13. Использование псевдонимов для обозначения таблиц базы данных. Самосоединение таблиц. Итоговые запросы и агрегатные функции
- •Вопросы для самоконтроля
- •Тема 14. Запросы с группировкой
- •Тема 15. Вложенные запросы
- •Вопросы для самоконтроля
- •Тема 16. Изменение данных в базе данных
- •16.1. Корректировка таблиц бд
- •16.2. Создание объектов бд
- •16.3. Создание представлений
- •Вопросы для самоконтроля
- •Рекомендуемая литература
8.2.2. Выборка
В противоположность проекции, которая выделяет из отношения нужные столбцы, выборкой называют операцию, при которой отношение исследуют по строкам и выделяют множество строк, удовлетворяющих заданным условиям.
Выборкой из отношения R по условию для подмножества атрибутов Х называют новое отношение
R[ (X) ] = { r R (r[X]) }.
Так, выборка по условию (r[X]) = (ЗавК=‘Шаньгин’), т.е. информация о преподавателях, работающих на кафедре Шаньгина, показана на рис.8.3.
R3 = R [ЗавК=‘Шаньгин’]
НП |
ЗавК |
Нтел |
102 |
Шаньгин |
2854 |
125 |
Шаньгин |
2854 |
Рис.8.3. Выборка.
8.2.3. Соединение
Операция соединения обратна операции проекции и предназначена для создания одного нового отношения из двух уже существующих отношений. Новое отношение получается путем конкатенации (сцепления) кортежей первого отношения R с кортежами второго отношения S. Только те кортежи подвергаются конкатенации, в которых значение заданного атрибута Х в отношении R совпадает со значением заданного атрибута Y в отношении S:
R [X=Y] S = {<r,s> | r R s S (r[X] = s[Y])}.
Если R имеет N атрибутов (столбцов), а S - M атрибутов, то отношение R[X=Y]S будет иметь N+M атрибутов (столбцов). В получаемом отношении в двух столбцах всегда будут содержаться одинаковые значения. Если один из этих столбцов удалить, то результат принято называть естественным соединением.
Например, естественное соединение R1 [ЗавК=ЗавК] R2 отношений R1 и R2, показанных на рис.8.2, совпадает с отношением, приведенным на рис 8.1.
8.2.4. Объединение
Объединение - это операция получения отношения, полностью объединяющего кортежи, содержащиеся в отношениях R и S. Множества атрибутов и порядок следования атрибутов в кортежах должны быть одинаковыми в отношениях R и S. Результирующее отношение называется множеством-суммой
R S = { x | x R x S }.
8.2.5. Пересечение
Результатом данной операции является отношение, состоящее из общих кортежей отношений R и S:
R S = { x | x R x S }.
8.2.6. Вычитание
Это операция получения отношения, состоящего из кортежей, которые являются кортежами отношения R и не являются кортежами отношения S:
R - S = { x | x R x S }.
8.2.7. Умножение
Результатом данной операции является декартово, или прямое, произведение: R S = { <r,s> | r R s S }
Если умножаются отношение R степени m и отношение S степени n, то получается отношение R S степени (m+n).
Мощность отношения R S равна i*j, где i, j - мощности отношений R, S соответственно.
Например, если
-
G2
G1
F1
R=
A
, S=
d
3
B
h
7
то
-
G2
G1
F1
A
d
3
R S=
A
h
7
B
d
3
B
h
7
8.2.8. Деление
Операция определена для отношений R(X, Y) и S(Z), где X, Y , Z - множества атрибутов отношений R и S, причем Y=Z. Результат деления R[YZ]S является отношением, в котором множество кортежей r[X] таково, что r[X],sR(X,Y), где s S(Z):
R[YZ]S={ r[X] | r[X],sR(X,Y) s S(Z) }.
Справедливо следующее выражение: (R[YZ]S S) R.
X Y Z
Например, если |
G2 |
G1 |
F1 |
|
G1 |
F1 |
|
|
A |
d |
3 |
|
d |
3 |
|
R = |
A |
h |
7 |
, S = |
h |
7 |
, |
|
B |
r |
3 |
|
|
|
|
|
B |
h |
7 |
|
|
|
|
|
C |
h |
7 |
|
|
|
|
то
|
G2 |
|
R[YZ]S = |
A |
. |
|
B |
|
Значение С поля G2 не вошло в результат, поскольку в R отсутствует кортеж < C, d, 3>. Дополнительно проверить правильность отсутствия значения С в результате можно умножением:
|
G2 |
|
G1 |
F1 |
|
G2 |
G1 |
F1 |
|
a) |
A |
|
d |
3 |
= |
A |
d |
3 |
|
|
B |
|
h |
7 |
|
A |
h |
7 |
R; |
|
C |
|
|
|
|
B |
d |
3 |
|
|
|
|
|
|
|
B |
h |
7 |
|
|
|
|
|
|
|
C |
d |
3 |
|
|
|
|
|
|
C |
h |
7 |
|
б) (R[YZ]S S) R.
С помощью рассмотренных операций реляционной алгебры можно формулировать запросы к БД для получения необходимой информации, а проекция используется для нормализации отношений. Нормализация проводится с целью удаления избыточных данных из каждой таблицы в БД.