- •Введение в базы данных
- •Отношения между прикладными программами и субд
- •Системы обработки баз данных
- •История баз данных
- •Организационный контекст
- •Реляционная модель
- •Коммерческие субд для микрокомпьютеров
- •Клиент-серверные приложения баз данных
- •Базы данных с использованием Интернет-технологий
- •Распределенные базы данных
- •Объектно-ориентированные субд
- •Банк данных
- •Основные понятия и определения
- •Пользователи банков данных
- •База данных
- •Архитектура базы данных. Физическая и логическая независимость
- •Схемы и отображения
- •Независимость от данных
- •Система управления базами данных – субд
- •Процесс прохождения пользовательского запроса
- •Введение в разработку баз данных
- •Метаданные
- •Индексы
- •Метаданные приложений
- •Подсистема средств проектирования
- •Подсистема обработки
- •Ядро субд
- •Создание базы данных
- •Процесс разработки базы данных
- •Моделирование данных
- •Функции субд
- •Модели данных
- •Объектные или инфологические модели данных
- •Модели данных на основе записей или даталогические
- •Реляционная модель данных
- •Преподаватели
- •Сетевая модель данных
- •. Физические модели данных
- •Концептуальное моделирование
- •Реляционная модель
- •Структура реляционных данных
- •Кортежи
- •Внешний ключ
- •Альтернативная терминология
- •Математические отношения
- •Отношения в базе данных
- •Реляционные ключи
- •Реляционная целостность
- •Целостность сущностей
- •Ссылочная целостность
- •Реляционные языки
- •Реляционная алгебра
- •Учебный проект DreamHome
- •Реляционная алгебра (продолжение)
- •Выборка (или ограничение)
- •Проекция
- •Декартово произведение
- •Объединение
- •Разность
- •Операции соединения
- •Tema-соединение (θ-join)
- •Естественное соединение
- •Внешнее соединение
- •Полусоединение
- •Пересечение
- •Деление
- •Другие языки
- •Примеры применения реляционной алгебры
- •Обзор жизненного цикла информационных систем
- •Жизненный цикл приложения баз данных
- •Проектирование базы данных
- •Проектирование баз данных на основе восходящего подхода (Метод нормализации или декомпозиции)
- •Цель нормализации
- •Проблемы, вызываемые использованием единственного отношения (аномалии обновления)
- •Проблема вставки
- •Проблема обновления
- •Проблемы удаления
- •Функциональные зависимости
- •Процесс нормализации
- •Декомпозиция без потерь и функциональные зависимости
- •Первая нормальная форма (1 нф) (из Коннолли)
- •Вторая нормальная форма (2нф)
- •Третья нормальная форма (знф)
- •Нормальная форма Бойса-Кодда (нфбк)
- •4 И 5 нормальные формы (4нф и 5нф)
- •Пример нормализации
- •. Другая декомпозиция отношения консультант
- •Некоторые комментарии к декомпозиционному алгоритму проектирования
- •Некоторые модификации алгоритма проектирования Избыточные функциональные зависимости
- •Транзитивные зависимости
- •Добавление атрибутов в фз
- •Правила вывода
- •Алгоритм проектирования бд методом декомпозиции (восходящий метод)
- •Проверка отношений на завершающей фазе их проектирования
- •Задачи к текущему материалу
- •Пример аномалий для 2нф
- •Нормальная форма Бойса—Кодда (нфбк) с примером аномалий для 3 формы
- •Язык sql
- •Запрос одиночной таблицы
- •Проектирование в sql
- •Выборка в sql
- •Сортировка
- •Встроенные функции sql
- •Встроенные функции и группировка
- •Запрос нескольких таблиц
- •Вложенные запросы
- •Соединение с помощью sql
- •Сравнение вложенного запроса и соединения
- •Внешнее соединение
- •Операторы exists и not exists
- •Изменение данных
- •Insert into запись
- •Insert into запись
- •Insert into третьекурсник
- •Удаление данных
- •Модификация данных
- •Запрос на sql с exist и not exist (реализация реляционной операции Деления)
- •Операция внешнего соединения таблиц в access (Мои замечания)
- •Псевдонимы столбцов и таблиц
- •Уточнения запроса
- •Теоретико-множественные операции
- •Декартово произведение наборов записей
- •Объединение наборов записей (union)
- •Пересечение наборов записей (intersect)
- •Intersect corresponding (id_компонента, Тип_компонента)
- •Вычитание наборов записей (except)
- •Операции соединения
- •Естественное соединение (natural join)
- •Условное соединение (join... On)
- •Соединение по именам столбцов (join... Using)
- •Внешние соединения
- •Левое соединение {left outer join)
- •Правое соединение {right outer join)
- •Внешнее соединение Преподаватель-Изучение-Предмет. Создание в access. Пример
- •Операторы exists и not exists
- •Низходящее проектирование бд на основе er-модели Модель «сущность—связь» и ее варианты
- •Реализация низходящего проектирования бд на основе er-модели
- •Типы сущностей
- •Способы представления сущностей на диаграмме
- •Атрибуты
- •Типы связей
- •Представление связей на диаграммах
- •Атрибуты связей
- •. Структурные ограничения
- •Показатель кардинальности
- •Степень участия
- •Примеры er-проектирования
- •Модель «сущность—связь» в другом рассмотрении
- •Элементы модели «сущность—связь»
- •Сущности
- •Атрибуты
- •Идентификаторы
- •Три типа бинарных связей
- •Диаграммы «сущность—связь»
- •Изображение атрибутов в диаграммах «сущность—связь»
- •Слабые сущности
- •Представление многозначных атрибутов при помощи слабых сущностей
- •Подтипы сущностей
- •Пример er-диаграммы
- •Документирование делового регламента
- •Модель «сущность—связь» и case-средства
- •Диаграммы «сущность—связь» в стиле uml
- •Сущности и связи в uml
- •Представление слабых сущностей
- •Представление подтипов
- •Конструкции ооп, введенные языком uml
- •Роль uml в базах данных на сегодняшний день
- •Примеры
- •Вопросы группы I
- •Вопросы группы II
- •Литература по курсу «базы и банки данных»
Tema-соединение (θ-join)
R
F
S
- операция
тета-соединения определяет отношение,
которое содержит кортежи из декартового
произведения отношений R
и S,
удовлетворяющие предикату F.
Предикат F
имеет вид R.ai
θ
S.bi
где вместо θ
может
быть указан один из операторов
сравнения (
<, <=, >, >=, = или
~= ).
(~= значит
не равно).
Обозначение тета-соединения можно переписать на основе базовых операций выборки и декартового произведения так, как показано ниже
Так же, как и в случае с декартовым произведением, степенью тета-соединения называется сумма степеней операндов-отношений R и S. Если предикат F содержит только оператор равенства (=), то соединение называется соединением по эквивалентности (equi-join). Еще раз обратимся к запросу, описанному в примере 3.3.
Пример 3.6. Операция соединения по эквивалентности
Создайте список всех арендаторов, которые осматривали объект недвижимости, с указанием их имен и сделанных ими комментариев
В примере 3.3 для получения этого списка использовались операции декартового произведения и выборки. Однако тот же самый результат можно получить с помощью операции соединения по эквивалентности.
Результат этих операции показан в табл. 3.12.
Естественное соединение
R
S
- естественным
соединением называется соединение по
эквивалентности двух отношений R
и S,
выполненное по всем общим атрибутам х,
из результатов которого исключается
по одному экземпляру каждого общего
атрибута.
Степенью естественного соединения называется сумма степеней операндов-отношений R и S минус количество атрибутов х.
Пример 3.7. Операция естественного соединения
Создайте список всех арендаторов, которые осматривали объекты недвижимости, с указанием их имен и сделанных ими комментариев
В примере 3.6 для составления этого списка использовалось соединение по эквивалентности, но в нем присутствовало два атрибута Rno. Для удаления одного из этих атрибутов можно воспользоваться операцией естественного соединения
Результат этих операций показан в табл. 3.15
Таблица 3.15. Естественное соединение сокращенного варианта отношений Renter и Viewing (использованы только некоторые атрибуты)
Rno |
FName |
LName |
Pno |
Comment |
CR76 |
John |
Kay |
PG4 |
Too remote (Слишком далеко) |
CR56 |
Aline |
Stewart |
PA14 |
Too small (Слишком мала) |
CR56 |
Aline |
Stewart |
PG4 |
|
CR56 |
Aline |
Stewart |
PG36 |
|
CR62 |
Mary |
Tregear |
PA14 |
No dining room (Нет отдельной столовой) |
Внешнее соединение
Зачастую при соединении двух отношений кортеж из одного отношения не находит соответствующего кортежа в другом отношении. Иначе говоря, в столбцах соединения оказываются несовпадающие значения. Может потребоваться, чтобы строка из одного отношения была представлена в результате соединения, даже если в другом отношении нет совпадающего значения. Эта цель может быть достигнута с помощью внешнего соединения.
R
S
- левым
внешним
соединением называется соединение, при
котором кортежи отношения R,
не имеющие совпадающих значений в общих
столбцах отношения S,
также включаются в результирующее
отношение.
Для обозначения отсутствующих значений во втором отношении используется определитель NULL. Внешнее соединение становится все более распространенным в реляционных СУБД, к тому же в настоящее время оно является оператором, включенным в новый стандарт SQL. Преимуществом внешнего соединения является то, что при таком соединении сохраняется исходная информация, т.е. внешнее соединение сохраняет кортежи, которые были бы утрачены при использовании других типов соединения.
Пример 3.8. Левое внешнее соединение
Создайте отчет о ходе проведения осмотров объектов недвижимости.
В данном случае необходимо создать отношение, состоящее как из перечня осмотренных клиентами объектов недвижимости (с приведением их комментариев по этому поводу), так и перечня объектов недвижимости, которые еще не осматривались. Это можно сделать с помощью следующего внешнего соединения.
Результат этой операции показан в табл. 3.16.
Таблица 3.16. Внешнее соединение отношений Property for Rent и Viewing
Pno |
Sreet |
City |
Rno |
Date |
Comment |
PA14 |
16 Holhead |
Aberdeen |
CR56 |
24-May-98 |
Too small (Слишком мала) |
PA14 |
16 Holhead |
Aberdeen |
CR62 |
14-May-98 |
No Dining room (Нет отдельной столовой) |
PL94 |
6 Argyll St |
London |
NULL |
NULL |
NULL |
PG4 |
6 Lawrence St |
Glasgow |
CR76 |
20-Ap»-98 |
Too remote (Слишком далеко) |
PG4 |
6 Lawrence St |
Glasgow |
CR56 |
26-May-98 |
|
PG36 |
2 Manor Rd |
Glasgow |
CR56 |
28-Apr-98 |
|
Строго говоря, в примере 3.8 показано левое (естественное) внешнее соединение, поскольку в результирующем отношении содержатся все кортежи левого отношения. Существует также правое внешнее соединение, называемое так потому, что в результирующем отношении содержатся все кортежи правого отношения. Кроме того, существует и полное внешнее соединение, в результирующее отношение которого помещаются все кортежи из обоих отношений и в котором для обозначения несовпадающих значений кортежей используются определители NULL.
