- •Введение в базы данных
- •Отношения между прикладными программами и субд
- •Системы обработки баз данных
- •История баз данных
- •Организационный контекст
- •Реляционная модель
- •Коммерческие субд для микрокомпьютеров
- •Клиент-серверные приложения баз данных
- •Базы данных с использованием Интернет-технологий
- •Распределенные базы данных
- •Объектно-ориентированные субд
- •Банк данных
- •Основные понятия и определения
- •Пользователи банков данных
- •База данных
- •Архитектура базы данных. Физическая и логическая независимость
- •Схемы и отображения
- •Независимость от данных
- •Система управления базами данных – субд
- •Процесс прохождения пользовательского запроса
- •Введение в разработку баз данных
- •Метаданные
- •Индексы
- •Метаданные приложений
- •Подсистема средств проектирования
- •Подсистема обработки
- •Ядро субд
- •Создание базы данных
- •Процесс разработки базы данных
- •Моделирование данных
- •Функции субд
- •Модели данных
- •Объектные или инфологические модели данных
- •Модели данных на основе записей или даталогические
- •Реляционная модель данных
- •Преподаватели
- •Сетевая модель данных
- •. Физические модели данных
- •Концептуальное моделирование
- •Реляционная модель
- •Структура реляционных данных
- •Кортежи
- •Внешний ключ
- •Альтернативная терминология
- •Математические отношения
- •Отношения в базе данных
- •Реляционные ключи
- •Реляционная целостность
- •Целостность сущностей
- •Ссылочная целостность
- •Реляционные языки
- •Реляционная алгебра
- •Учебный проект 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
- •Литература по курсу «базы и банки данных»
Выборка (или ограничение)
σ предикат (R) - операция выборки работает с одним отношением R и определяет результирующее отношение, которое содержит только те кортежи (строки) отношения R, которые удовлетворяют заданному условию (предикату).
Пример 3.1. Составьте список всех сотрудников с зарплатой, превышающей 10000 фунтов стерлингов
σsalary >10000(Staff)
Здесь исходным отношением является отношение Staff, а предикатом выражение salary>10000.
Таблица 3.9. Результат выполнения операции выборки из отношения Staff кортежей с атрибутом salary > 10000 фунтов стерлингов |
Sno FName LName |
Address |
Tel.No |
Positron Sex DOB |
Salary |
NIN Bno |
SL21 John White |
19 Taylor St, Cranford, London |
0171-884. 5112 |
Manager M 1-Oct-45 |
30000 |
WK442 B5 011В |
SG37 Ann Beech |
81 George St. Glasgow PA1 2JR |
0141-848-3345 |
Snr Asst F 10-Nov-60 |
12000 |
WL432 ВЗ 514С |
SG14 David Ford |
63Ashby St. Partick, Glasgow G11 |
0141-339-2177 |
Deputy M 24-Mar-58 |
18000 |
WL220 ВЗ 658D |
SG5 Susan Brand |
5Gt Western Rd Glasgow G12 |
0141-334-2001 |
Manager F 3-Jun-40 |
24000 |
WK588 ВЗ 932Е |
Проекция
Патр 1,…,атр n (R) - операция проекции работает с одним отношением R и определяет новое отношение, содержащее вертикальное подмножество отношения R, создаваемое посредством извлечения значений указанных атрибутов и исключения из результата строк дубликатов.
Пример 3.2. Создайте ведомость зарплаты всех сотрудников компании с указанием атрибутов Sno, FName, LName и Salary.
Пsno, fname, lname, salary(Staff)
Таблица 3.10. Проекция отношения Staff no атрибутам Sno, FName, Lname и Salary |
|||
Sno |
FName |
LName |
Salary |
SL21 |
John |
White |
30000 |
SG37 |
Ann |
Beech |
12000 |
SG14 |
David |
Ford |
18000 |
SA9 |
Mary |
Howe |
9000 |
SG5 |
Susan |
Brand |
24000 |
SL41 |
Julie |
Lee |
9000 |
В этом примере операция проекции определяет новое отношение, которое будет содержать только атрибуты Sno, FName, LName и Salary отношения Staff, размещенные в указанном порядке.
Декартово произведение
RxS - операция декартового произведения определяет новое отношение, ко торое является результатом конкатенации (т.е. сцепления) каждого кортежа из отношения R с каждым кортежем из отношения S.
Операторы выборки и проекции извлекают информацию только из одного отношения. Очевидно, возможно возникновение таких ситуаций, когда нужна некоторая комбинация данных из нескольких отношений. Оператор декартового произведения умножает два отношения, что в результате приводит к созданию другого отношения, состоящего из всех возможных пар кортежей обоих отношений. Следовательно, если одно отношение имеет I кортежей и N атрибутов, а другое — J кортежей и М атрибутов, то отношение с их декартовым произведением будет содержать (IхJ) кортежей и (N+M) атрибутов. Исходные отношения могут содержать атрибуты с одинаковыми именами. В таком случае имена атрибутов будут содержать названия отношений в виде префиксов для обеспечения уникальности имен атрибутов в отношении, полученном как результат выполнения операции декартового произведения.
Пример 3.3. Создайте список всех арендаторов, которые осматривали объекты недвижимости, с указанием сделанных ими комментариев
(Пrno, fname,
lname(Renter))x(Пrno, pno,
comment(Viewing))
Таблица 3.11. Декартово произведение сокращенного варианта отношений Renter и Viewing (использованы только некоторые атрибуты)
|
|||||
Renter. Rno |
FName |
LName |
Viewing. Rno |
Pno |
Comment |
CR76 |
John |
Kay |
CR56 |
PA14 |
Too small (Слишком мала) |
CR76 |
John |
Kay |
CR76 |
PG4 |
Too remote (Слишком далеко) |
CR76 |
John |
Kay |
CR56 |
PG4 |
|
CR76 |
John |
Kay |
CR62 |
PA14 |
No Dining room (Нет отдельной столовой) |
CR76 |
John |
Kay |
CR56 |
PG36 |
|
CR56 |
Aline |
Stewart |
CR56 |
PA14 |
Too small (Слишком мала) |
CR56 |
Aline |
Stewart |
CR76 |
PG4 |
Too remote (Слишком далеко) |
CR56 |
Aline |
Stewart |
CR56 |
PG4 |
|
CR56 |
Aline |
Stewart |
CR62 |
PA14 |
No Dining room (Нет отдельной столовой) |
CR56 |
Aline |
Stewart |
CR56 |
PG36 |
|
CR74 |
Mike |
Ritchie |
CR56 |
PA14 |
Too small (Слишком мала) |
CR74 |
Mike |
Ritchie |
CR76 |
PG4 |
Too remote (Слишком далеко) |
CR74 |
Mike |
Ritchie |
CR56 |
PG4 |
|
CR74 |
Mike |
Ritchie |
CR62 |
PA14 |
No Dining room (Нет отдельной столовой) |
CR74 |
Mike |
Ritchie |
CR56 |
PG36 |
|
CR62 |
Mary |
Tregear |
CR56 |
PA14 |
Too small (Слишком мала) |
CR62 |
Mary |
Tregear |
CR76 |
PG4 |
Too remote (Слишком далеко) |
CR62 |
Mary |
Tregear |
CR56 |
PG4 |
|
CR62 |
Mary |
Tregear |
CR62 |
PA14 |
No Dining room (Нет отдельной столовой) |
CR62 |
Mary |
Tregear |
CR56 |
PG36 |
|
В таком виде это отношение содержит больше информации, чем необходимо.
Для получения искомого списка необходимо для этого отношения произвести операцию выборки с извлечением тех кортежей, для которых выполняется равенство атрибутов Rno из отношений Renter и Viewing, т.е. Renter.Rno=Viewing.Rno. Полностью эта операция выглядит так:
σ Renter.Rno=Viewing.Rno ((Пrno, fname, lname(Renter))x(Пrno, pno, comment(Viewing)))
Результат в таблице 3.12.
Таблица 3.12. Ограниченное декартово произведение сокращенного варианта отношений Renter и Viewinq (использованы только некоторые атрибуты)
Renter. Rno |
FName |
LName |
Viewing. Rno |
Pno |
Comment |
CR76 |
John |
Kay |
CR76 |
PG4 |
Too remote (Слишком далеко) |
CR56 |
Aline |
Stewart |
CR56 |
PA14 |
Too small (Слишком мала) |
CR56 |
Aline |
Stewart |
CR56 |
PG4 |
|
CR56 |
Aline |
Stewart |
CR56 |
PG36 |
|
CR62 |
Mary |
Tregear |
CR62 |
PA14 |
No dining room (Нет отдельной сто- |
|
|
|
|
|
ловой) |
