- •Министерство образования и науки рф Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
- •Введение в базы данных
- •Учебное пособие
- •Воронеж 2012
- •Понятие информационной системы
- •Процессы в информационной системе
- •Этапы развития информационных систем
- •Структура информационной системы. Типы обеспечивающих подсистем
- •Математическое и программное обеспечение
- •Правовое обеспечение
- •Классификация информационных систем по признаку структурированности задач
- •Понятие структурированности задач
- •Типы информационных систем, используемые
- •Классификация ис по характеру использования информации
- •Классификация ис по сфере применения
- •Классификация ис по степени автоматизации
- •Контрольные вопросы
- •2. Введение в субд
- •2.1. Понятие базы и банка данных
- •2.2. Средства реализации баз данных
- •2.2.1. Программные средства банка данных
- •2.2.2. Языковые средства
- •2.2.3. Технические и организационно-методические средства
- •2.2.4. Требования к банкам данных
- •2.3. Функции субд
- •2.4. Классификация банков данных
- •2.4.1. Классификация баз данных
- •2.4.2. Классификация субд
- •2.4.3. Классификация БнД по экономико-организационным признакам
- •2.5. Концепция централизованного управления
- •Преимущества централизованного управления данными
- •2.6. Трехуровневая архитектура системы баз данных
- •2.7. Пользователи банков данных
- •2.8. Архитектура клиент/сервер
- •Контрольные вопросы
- •3. Модели и типы данных
- •3.1. Иерархическая модель
- •3.2. Сетевая модель
- •3.3. Реляционная модель
- •3.4. Постреляционная модель
- •3.5. Многомерная модель
- •3.6. Типы данных
- •Контрольные вопросы
- •4. Применение Баз данных в корпоративных информационных системах
- •4.1. Корпоративная информационная система
- •Контуром оперативного управления
- •4.2. Контур административного управления
- •4.2.1. Наполнение баз данных на примере модуля «Управление персоналом»
- •4.3. Контур оперативного управления
- •4.3.1. Пример организации модуля «Управление продажами (сбыт)»
- •Базы данных модуля «Автотранспорт»
- •4.4. Контур бухгалтерского учета
- •Контрольные вопросы
- •5. Справочно-правовые базы данных
- •5.1. Общая характеристика справочно-правовых баз
- •5.2. Наиболее популярные юридические базы данных
- •5.2.1. База юсис
- •5.2.2. Информационно-поисковая система "Кодекс"
- •5.2.3. Справочно-правовая система "Гарант"
- •5.2.4. Справочно-правовая система «Консультант Плюс»
- •5.2.5. Программный комплекс "Эталон"
- •Контрольные вопросы
- •6. Проектирование баз данных
- •6.1. Этапы проектирования
- •6.2. Инфологическое моделирование
- •6.2.1. Компоненты инфологической модели Модель «сущность — связь»
- •6.2.2. Классификация бинарных связей
- •6.2.3. Моделирование локальных представлений
- •6.2.4. Объединение моделей локальных представлений
- •6.3. Даталогическое проектирование
- •6.4. Проектирование реляционных баз данных
- •6.5. Нормализация отношений
- •Контрольные вопросы
- •7. Реляционная модель данных
- •Общие понятия
- •7.2. Реляционные объекты данных
- •7.2.1. Основные понятия
- •7.2.2. Фундаментальные свойства отношений
- •7.2.3. Виды отношений
- •Целостность реляционных данных
- •Реляционные операторы
- •7.4.1. Реляционная алгебра
- •Примеры использования реляционной алгебры для выражения словесных запросов в виде формулы
- •Назначение реляционной алгебры
- •Операции расширения и подведения итогов
- •Операторы обновления
- •7.4.2. Реляционное исчисление
- •Контрольные вопросы
- •8. Язык реляционных баз данных sql
- •8.1. Функции и основные возможности
- •8.2. Средства определения схемы
- •8.2.1. Определение таблицы
- •8.2.2. Определение ограничений целостности таблицы
- •8.2.3. Определение представлений
- •8.3. Структура запросов
- •8.3.1. Спецификация курсора
- •8.3.2. Оператор выборки
- •8.3.3. Подзапрос
- •8.3.4 Табличное выражение
- •Раздел where
- •Предикат сравнения
- •Предикат between
- •Предикат in
- •Предикат null
- •Предикат с квантором
- •Предикат exists
- •Раздел group by
- •Раздел having
- •8.4. Агрегатные функции и результаты запросов
- •8.5. Операторы обновления
- •Оператор изменения записей
- •Контрольные вопросы
- •9. Внутренняя организация реляционных субд
- •9.1. Хранение отношений
- •9.2. Индексы
- •9.3. Журнальная информация
- •9.4. Служебная информация
- •Контрольные вопросы
- •10. Настольные субд
- •10.1. Общие сведения о настольных субд
- •10.2. Наиболее популярные настольные субд
- •Контрольные вопросы
- •11. Серверные субд
- •11.1. Характерные черты современных серверных субд
- •Наиболее популярные серверные субд
- •Контрольные вопросы
- •Заключение
- •Корелина Татьяна Валерьевна введение в базы данных
- •394006 Воронеж, ул. 20-летия Октября, 84
Реляционные операторы
7.4.1. Реляционная алгебра
Набор основных алгебраических операций состоит из восьми операций, которые делятся на два класса: теоретико-множественные операции и специальные реляционные операции.
Теоретико-множественные операции
Это объединение, пересечение, вычитание и произведение (расширенное декартово произведение). Первые три операции требуют от операндов совместимости по типу.
Два отношения совместимы по типу, если каждое из них имеет одно и то же множество атрибутов и соответствующие атрибуты определены на одном и том же домене.
Объединения отношений - при объединении двух отношений производится отношение, включающее все кортежи, входящие хотя бы в одно из отношений-операндов.
R1 |
а |
б |
в |
R=R1 U R2 |
а |
б |
в |
|
д |
е |
а |
R = R1 UNION R2 |
д |
е |
а |
|
и |
к |
л |
|
и |
к |
л |
|
|
|
|
|
г |
д |
е |
R2 |
и |
к |
л |
|
|
|
|
|
г |
д |
е |
|
|
|
|
Пересечение отношений – операция пересечения двух отношений (R = R1 INTERSECT R2) производит отношение, включающее все кортежи, входящие в оба отношения-операнды.
R=R1R2 |
и |
к |
л |
Разность отношений - отношение, являющееся разностью двух отношений (R = R1 MINUS R2), включает все кортежи, входящие в отношение – первый операнд; такие, что ни один из них не входит в отношение, являющееся вторым операндом.
R=R1–R2 |
а |
б |
в |
|
д |
е |
а |
Декартово произведение отношений - при выполнении прямого произведения двух отношений производится отношение, кортежи которого являются конкатенацией (сцеплением) кортежей первого и второго операндов.
R=R1R2 |
а |
б |
в |
и |
к |
л |
R = R1 TIMES R2 |
д |
е |
а |
и |
к |
л |
|
и |
к |
л |
и |
к |
л |
|
а |
б |
в |
г |
д |
е |
|
д |
е |
а |
г |
д |
е |
|
и |
к |
л |
г |
д |
е |
Операции объединения, пересечения и декартова произведения ассоциативны и коммутативны. На рис. 7.3 приведены примеры теоретико-множественных операций применительно к базе данных «поставщики-детали».
|
A |
|
|
|
|
B |
|
|
|
|
||||
|
S# |
SNAME |
STATUS |
CITY |
|
S# |
SNAME |
STATUS |
CITY |
|
||||
|
S1 |
Smith |
20 |
London |
|
S1 |
Smith |
20 |
London |
|
||||
|
S4 |
Clark |
20 |
London |
|
S2 |
Jones |
10 |
Paris |
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||
a) |
Объединение |
|
|
|
|
|
|
|
|
|
||||
|
(A UNION B) |
|
|
|
|
S# |
SNAME |
STATUS |
CITY |
|
||||
|
|
|
|
|
|
S1 |
Smith |
20 |
London |
|
||||
|
|
|
|
|
|
S4 |
Clark |
20 |
London |
|
||||
|
|
|
|
|
|
S2 |
Jones |
10 |
Paris |
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||
б) |
Пересечение |
|
|
|
|
S# |
SNAME |
STATUS |
CITY |
|
||||
|
(A INTERSECT B) |
|
|
|
|
S1 |
Smith |
20 |
London |
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||
в) |
Вычитание |
|
|
|
|
г) |
Вычитание |
|
|
|
||||
|
(A MINUS B) |
|
|
|
|
|
(B MINUS A) |
|
|
|
||||
|
S# |
SNAME |
STATUS |
CITY |
|
S# |
SNAME |
STATUS |
CITY |
|
||||
|
S4 |
Clark |
20 |
London |
|
S2 |
Jones |
10 |
Paris |
|
||||
|
|
|
|
|
|
|
|
|
|
|
Рис. 7.3 Примеры теоретико-множественных операций
Специальные реляционные операции
1 Ограничение отношения (выборка) – результатом ограничения отношения по некоторому условию является отношение, включающее кортежи отношения-операнда, удовлетворяющее этому условию:
A WHERE comp,
где A - ограничиваемое отношение,
comp - простое условие сравнения.
Можно использовать операции ограничения, в которых условием ограничения является произвольное булевское выражение, составленное из простых условий с использованием логических связок AND, OR и AND и скобок (рис. 7.4).
2 Проекция отношения - при выполнении проекции отношения на заданный набор его атрибутов производится отношение, кортежи которого производятся путем взятия соответствующих значений из заданных столбцов кортежей отношения-операнда, с исключением дублирующих кортежей (рис. 7.5).
3 Соединение отношений - при соединении двух отношений по некоторому условию образуется результирующее отношение, кортежи которого являются конкатенацией кортежей первого и второго отношений и удовлетворяют этому условию.
|
|
|
|
|
|
|||||
S where city =’London’ |
S# |
SNAME |
STATUS |
CITY |
|
|||||
|
S1 |
Smith |
20 |
London |
|
|||||
|
S4 |
Clark |
20 |
London |
|
|||||
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|||||
P where weight < 14 |
P# |
PNAME |
COLOR |
WEIGHT |
CITY |
|
||||
|
P1 |
Nut |
Red |
12 |
London |
|
||||
|
P5 |
Cam |
Blue |
12 |
Paris |
|
||||
|
|
|
|
|
|
|||||
|
|
|
|
|
||||||
SP where S# = ‘S1’ and P# = ‘P1’ |
S# |
P# |
QTY |
|
||||||
|
S1 |
P1 |
300 |
|
||||||
|
|
|
|
|
Рис. 7.4. Примеры операций выборки
Имеются важные частные случаи соединения – естественное соединение и -соединение. Операция естественного соединения применяется к паре отношения A и B, обладающих (возможно, составным) общим атрибутом c (т.е. атрибутом с одним и тем же именем и определенным на одном и том же домене). Пусть ab обозначает объединение заголовков отношений A и B. Тогда естественное соединение A и B – это спроецированный на ab результат эквисоединения A и B по A.c и B.c (рис. 7.6).
|
|
|
|
S [CITY] |
|
CITY |
|
|
|
London |
|
|
|
Paris |
|
|
|
Athens |
|
|
|
|
|
|
|
|
|
P [COLOR, CITY] |
COLOR |
CITY |
|
|
Red |
London |
|
|
Green |
Paris |
|
|
Blue |
Rome |
|
|
Blue |
Paris |
|
|
|
|
|
|
|
|
|
(S where city = ‘Paris’) [S#] |
|
S# |
|
|
|
S2 |
|
|
|
S3 |
|
Рис. 7.5. Примеры операций проекции
Основной смысл операции естественного соединения - возможность восстановления сложной сущности, декомпозированной по причине требования первой нормальной формы.
R=R1 R2 |
д |
е |
а |
г |
д |
е |
a1(R1)=a2(R2) |
|
|
|
|
|
|
S# |
SNAME |
STATUS |
CITY |
P# |
PNAME |
COLOR |
WEIGHT |
S1 |
Smith |
20 |
London |
P1 |
Nut |
Red |
12 |
S1 |
Smith |
20 |
London |
P4 |
Screw |
Red |
14 |
S1 |
Smith |
20 |
London |
P6 |
Cog |
Red |
19 |
S2 |
Jones |
10 |
Paris |
P2 |
Bolt |
Green |
17 |
S2 |
Jones |
10 |
Paris |
P5 |
Cam |
Blue |
12 |
S3 |
Blake |
30 |
Paris |
P2 |
Bolt |
Green |
17 |
S3 |
Blake |
30 |
Paris |
P5 |
Cam |
Blue |
12 |
S4 |
Clark |
20 |
London |
P1 |
Nut |
Red |
12 |
S4 |
Clark |
20 |
London |
P4 |
Screw |
Red |
14 |
S4 |
Clark |
20 |
London |
P6 |
Cog |
Red |
19 |
Рис. 7.6. Естественное соединение S JOIN P
-соединение предназначается для тех случаев, когда требуется соединить вместе два отношения на основе некоторых условий, отличных от эквивалентности. -соединением отношения А по атрибуту Х с отношением В по атрибуту Y называется результат вычисления выражения (A TIMES B) WHERE X Y, т.е. -соединение – это отношение с тем же заголовком, что и при декартовом произведении отношений А и В, и с телом, содержащим множество кортежей t, таких, что t принадлежит этому декартову произведению и вычисление условия “X Y” дает значение «истина» для этого кортежа. Атрибуты X и Y должны быть определены на одном и том же домене, а операция должна иметь смысл для этого домена. Пример -соединения приведен на рис.7.7.
S# |
SNAME |
STATUS |
CITY |
P# |
PNAME |
COLOR |
WEIGHT |
PCITY |
S2 |
Jones |
10 |
Paris |
P1 |
Nut |
Red |
12 |
London |
S2 |
Jones |
10 |
Paris |
P4 |
Screw |
Red |
14 |
London |
S2 |
Jones |
10 |
Paris |
P6 |
Cog |
Red |
19 |
London |
S3 |
Blake |
30 |
Paris |
P1 |
Bolt |
Red |
12 |
London |
S3 |
Blake |
30 |
Paris |
P4 |
Cam |
Red |
14 |
London |
S3 |
Blake |
30 |
Paris |
P6 |
Bolt |
Red |
19 |
London |
Рис. 7.7. Больше-соединение отношений поставщиков и деталей
по атрибуту города
4 Деление отношений - операция реляционного деления имеет два операнда: бинарное и унарное отношения. Результирующее отношение состоит из одноатрибутных кортежей, включающих значения первого атрибута кортежей первого операнда, таких, что множество значений второго атрибута (при фиксированном значении первого атрибута) совпадает с множеством значений второго операнда (рис. 7.8).
Дополнительно в состав реляционной алгебры включается операция переименования, производящая отношение, тело которого совпадает с телом операнда, но имена атрибутов изменены и операция присваивания, позволяющая сохранить результат вычисления реляционного выражения в существующем отношении БД.
R RENAME NAME1 AS NAME2
Поскольку результатом любой реляционной операции (кроме операции присваивания) является некоторое отношение, можно образовывать реляционные выражения, в которых вместо отношения-операнда некоторой реляционной операции находится вложенное реляционное выражение.
|
|
|
|
|
|
|
|
|
|||||||||||||
DEND |
S# |
P# |
|
.. |
.. |
|
|
|
|||||||||||||
|
S1 |
P1 |
|
S2 |
P1 |
|
|
|
|||||||||||||
|
S1 |
P2 |
|
S2 |
P2 |
|
|
|
|||||||||||||
|
S1 |
P3 |
|
S3 |
P2 |
|
|
|
|||||||||||||
|
S1 |
P4 |
|
S4 |
P2 |
|
|
|
|||||||||||||
|
S1 |
P5 |
|
S4 |
P4 |
|
|
|
|||||||||||||
|
S1 |
P6 |
|
S4 |
P5 |
|
|
|
|||||||||||||
|
.. |
.. |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||
DOR |
P# |
|
DOR |
P# |
|
DOR |
P3 |
|
|||||||||||||
|
P1 |
|
|
P2 |
|
|
P1 |
|
|||||||||||||
|
|
|
|
P4 |
|
|
P2 |
|
|||||||||||||
|
|
|
|
|
|
|
P3 |
|
|||||||||||||
|
|
|
|
|
|
|
P4 |
|
|||||||||||||
|
|
|
|
|
|
|
P5 |
|
|||||||||||||
|
|
|
|
|
|
|
P6 |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
DEND DIVIDEBY DOR |
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||
|
S# |
|
|
S# |
|
|
S# |
|
|||||||||||||
|
S1 |
|
|
S1 |
|
|
S1 |
|
|||||||||||||
|
S2 |
|
|
S4 |
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
Рис. 7.8. Примеры деления