- •С.В. Никитина. Базы и Банки Данных. – Москва, 2009. – 80 стр.
- •Содержание
- •Глава 1. Назначение и основные компоненты системы баз данных 6
- •Глава 2. Типовая организация современной субд 10
- •Глава 3. Инфологическая модель данных «сущность-связь» 21
- •Глава 4. Ранние подходы к организации бд. Иерархические и сетевые субд. 31
- •Глава 5. Реляционная модель 35
- •Глава 6. Базисные средства манипулирования реляционными данными 40
- •Глава 7. Особенности теоретико-множественных операций реляционной алгебры 45
- •Глава 1. Назначение и основные компоненты системы баз данных Данные и эвм
- •Концепция баз данных
- •Основные функции субд
- •Непосредственное управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация
- •Поддержка языков бд
- •Глава 2. Типовая организация современной субд
- •Классификация пользователей субд
- •Распределение обязанностей в системах с базами данных.
- •Администраторы данных и администраторы баз данных.
- •Администрирование данных и администрирование баз данных.
- •Администрирование данных.
- •Задачи администрирования данных.
- •Администрирование Базы Данных.
- •Задачи администрирования базы данных.
- •Администрирование данных и администрирование базы данных
- •Преимущества централизованного подхода к управлению данными
- •Возможность совместного доступа к данным
- •Сокращение избыточности данных
- •Устранение противоречивости данных (до некоторой степени)
- •Возможность поддержки транзакций
- •Обеспечение целостности данных
- •Организация защиты данных
- •Возможность балансировки противоречивых требований
- •Возможность введения стандартизации
- •Независимость данных
- •Глава 3. Инфологическая модель данных «сущность-связь»
- •Основные понятия
- •Характеристика связей и язык моделирования
- •О первичных и внешних ключах
- •Ограничения целостности
- •Глава 4. Ранние подходы к организации бд. Иерархические и сетевые субд.
- •Иерархические системы
- •Иерархические структуры данных
- •Манипулирование данными
- •Ограничения целостности
- •Сетевые системы
- •Сетевые структуры данных
- •Манипулирование данными
- •Ограничения целостности
- •Достоинства и недостатки ранних субд
- •Глава 5. Реляционная модель Основные понятия реляционных баз данных
- •Тип данных
- •Кортеж, отношение
- •Фундаментальные свойства отношений
- •Отсутствие кортежей-дубликатов
- •Отсутствие упорядоченности кортежей
- •Отсутствие упорядоченности атрибутов
- •Атомарность значений атрибутов
- •Общая характеристика реляционной модели данных
- •Глава 6. Базисные средства манипулирования реляционными данными Реляционная структура данных. Общие понятия реляционного подхода к организации бд. Основные концепции и термины
- •Реляционная алгебра
- •Общая интерпретация реляционных операций
- •Замкнутость реляционной алгебры и операция переименования
- •Глава 7. Особенности теоретико-множественных операций реляционной алгебры Объединение
- •Пересечение
- •Вычитание
- •Произведение
- •Специальные реляционные операции* Выборка
- •Проекция
- •Соединение
- •Деление
- •Ассоциативность и коммутативность
- •Зачем нужна реляционная алгебра
- •Операция расширения
- •Операция обобщения
- •Группирование и разгруппирование
- •Реляционные сравнения
- •Реляционное исчисление.
- •Глава 8. Нормализация данных. 1-я, 2-я, 3-я нормальные формы
- •Функциональная зависимость
- •Вторая нормальная форма
- •Третья нормальная форма
- •Глава 9. Нормализация данных. Нормальные формы более высоких порядков
- •Нормальная форма бойса-кодда
- •Многозначные зависимости. Четвертая нормальная форма
- •Зависимость соединения. Пятая нормальная форма
- •Глава 10. Внутренняя организация реляционных субд Структуры внешней памяти
- •Хранение отношений
- •Индексы
- •Журнальная информация
- •Служебная информация
- •Глава 11. Методы организации индексов
- •Методы поиска по дереву
- •Автоматическое поддержание свойства сбалансированности b-деревьев при выполнении операций занесения и удаления записей *
- •Хэширование
- •Глава 12. Защита бд Обеспечение защиты данных в базе
- •Идентификация пользователя
- •Управление доступом
- •Защита данных при статистической обработке
- •Физическая защита
- •Глава 13. Целостность бд
- •Целостность сущности и ссылок
- •Обеспечение целостности данных
- •Транзакции и целостность баз данных
- •Изолированность пользователей
- •Сериализация транзакций
- •Глава 14. Степень соответствия субд реляционной модели
- •Список литературы по теме курса
- •Кори Майкл Дж., Эбби Майкл, Абрамсон Ян
Соединение
Операция соединения имеет несколько разновидностей. Однако наиболее важным, без сомнения, является естественное соединение, причем настолько важным, что общий термин соединение почти всегда используется для обозначения именно естественного соединения. Далее приводится определение.
Пусть отношения А и В имеют заголовки
{ XI, Х2, ... , Xm, Yl, Y2, ... , Yn }
и
{ Yl, Y2, ... , Yn, Zl, Z2, ... , Zp }
соответственно, т.е. атрибуты Yl, Y2, ... , Yn (и только они) — общие для двух этих отношений, XI, Х2, .... , Xm — остальные атрибуты отношения А и Zl, Z2, ... , Zp - остальные атрибуты отношения В. Далее будем рассматривать выражения {XI, Х2, ... ,Xm}, {Yl, Y2, ... , Yn} и {Zl, Z2, ... , Zp} как три составных атрибута X, Y и Z соответственно. Тогда естественным соединением отношений А и В (что записывается как A JOIN В) называется отношение с заголовком {X, Y, Z} и телом, содержащим множество всех кортежей вида {Х:х, Y:y, Z:z}, таких, для которых в отношении А значение атрибута X равно х, а значение атрибута Y равно у и в отношении В значение атрибута Y равно у, а значение атрибута Z равно z
Пример естественного соединения (естественное соединение S JOIN P по общему атрибуту CITY) приведен на рис. 6.
Рис.10. Естественное соединение S JOIN P.
Замечание. Соединения необязательно выполняются по внешнему ключу и соответствующему первичному ключу, хотя такие соединения весьма распространены и являются важным частным случаем.
Деление
Определение оператора деления. Пусть отношения А и В имеют заголовки { X1, Х2, ... , Хm } и { Yl, Y2, ... , Yn } соответственно (т.е. заголовки отношений А и В не пересекаются). Пусть также отношение С имеет следующий заголовок.
{ XI, Х2, ... , Xm, Yl, Y2, ... , Yn }
(Иначе говоря, заголовок отношения С является объединением заголовков отношений А и В.) Далее будем рассматривать множества { X1, Х2, ... , Хm } и { Yl, Y2, , Yn } как составные атрибуты X и Y соответственно. Тогда результатом деления отношения А на отношение B по отношению С (что записывается как A DIVIDEBY В PER С, где отношение А представляет собой делимое, отношение В — делитель, а отношение С — "посредник") называется отношение с заголовком {X} и телом, содержащим множество всех кортежей вида {Х:х}, таких, что кортеж вида {Х:х, Y:y} принадлежит отношению В для всех кортежей вида {Y:y}, принадлежащих отношению В. Нестрого это можно сформулировать так: результат содержит такие Х-значения из отношения А, для которых соответствующие Y-значения из отношения С включают все Y-значения из отношения В.
На рис. 8 показаны некоторые простые примеры операции деления. В каждом случае делимое (отношение DEND) — это проекция текущего , значения переменной-отношения S по атрибуту S#, посредник (MED) — это проекция текущего значения переменной-отношения SP по атрибутам S# и P#, а три делителя (отношения DOR)— такие, как показано на рисунке. В частности рассмотрим последний пример, в котором делителем является отношение, содержащее номера всех известных в данный момент деталей. В результате, получим номера поставщиков, поставляющих все типы этих деталей. Как видно из примера, оператор DIVIDEBY полезен именно для запросов такого рода. Более того, если запрос на обычном языке включает слово "все" ("определить поставщиков всех типов деталей"), то почти наверняка понадобится использовать операцию деления. Тем не менее, следует отметить, что подобны запросы удобнее записывать в терминах реляционных сравнений.