
- •Введение
- •Общая схема банка данных в системе
- •Основные понятия
- •Базы данных
- •Банк данных как система управления основные понятия
- •Банк данных как автоматизированная система
- •Субд с включающим языком
- •Информационные системы
- •Документальные аис основные понятия дескриптор
- •Фактографические аис
- •Основные понятия
- •Основные данные
- •Уровни моделей
- •Классификация моделей
- •Роль подсхемы
- •Этапы проектирования базы данных
- •Архитектура банка данных
- •Последовательность действий при чтении записи
- •Инфологическое проектирование базы данных
- •Модели данных и подъязыки данных
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Реляционные базы данных
- •Алгебра отношений
- •Преимущества реляционных бд
- •Отношения
- •Нормализация отношений
- •Функциональная зависимость
- •Полная функциональная зависимость.
- •Проектирование баз данных.
- •Специальные операции над отношениями
- •Операции над отношениями.
- •Централизация и децентрализация процессов обработки данных.
- •Традиционный набор операций
- •Нормализация отношений
- •Исчисление отношений
- •Вторая и третья нормальные формы.
- •26. Язык запросов sql
- •1 Основы sql
- •Многотабличные запросы на чтение (объединения)
- •Сортировка результатов запроса (предложение order by)
- •Объединение результатов нескольких запросов (union)*
- •Запрос на объединение и сортировка *
- •Многотабличные запросы на чтение (объединения)
- •Простое объединение таблиц (объединение по равенству)
- •Запросы с использованием отношения предок/потомок
- •Объединения с условием для отбора строк
- •Несколько связанных столбцов
- •Запросы на чтение к трем и более таблицам
- •Чтение всех столбцов
- •Самообъединения
- •Псевдонимы таблиц
- •Правила выполнения многотабличных запросов
- •Внешнее объединение таблиц *
- •Итоговые запросы на чтение
- •Агрегатные функции
- •Агрегатные функции в списке возвращаемых столбцов
- •Запросы с группировкой (предложение group by)
- •Несколько столбцов группировки
- •Ограничения на запросы с группировкой
- •Вложенные запросы на чтение
- •Внешние ссылки
- •Вложенные запросы и объединения
- •Связанные вложенные запросы
- •Однострочный оператор insert
- •В интерактивном режиме удобно не включать в оператор insert список столбцов, так как это уменьшает длину оператора. В случае программного
- •Многострочный оператор insert
- •Удаление существующих данных
- •Удаление всех строк
- •Оператор delete с вложенным запросом *
- •Обновление существующих данных
Исчисление отношений
В реляционном исчислении главным средством описания новых отношений исходной структуры является символическое обозначение вида А(х1.y1, x2.y2, …..)В. Оно означает отношение с именем А, полученное в результате проекции кортежей, удовлетворяющих булевскому выражению В, на домены х.у, где хi - имя отношения (исходной структуры), yi – имя домена из этого отношения. Различают квантор существования и квантор всеобщности .
Двоеточие : – «такой, что»
Пример: выражение
А (К.ФИО, К.зарплата) : К.цех = 3 зарплата __1500 задает таблицу (отношение) с именем А с двумя доменами из отношения К (кадры). Первый домен содержит фамилии, имена и отчества рабочих, второй – размер месячной заработной платы. В отношение А включаются только рабочие третьего цеха с размером зарплаты больше 1500 руб.
Вторая и третья нормальные формы.
Если в отношении какой-либо атрибут или группа атрибутов Х полностью определяют другой атрибут (или группу атрибутов) Y , то Y функционально зависит от Х. ( Х соответствует лишь одно значение Y). Атрибут (группа атрибутов) называется полно зависимыми от группы атрибутов Х, если Y функционально зависит только от всего множества Х, а не от какого-либо его собственного подмножества.
Атрибут или группа атрибутов, значение которых однозначно идентифицируют строку таблицы называется возможным ключом отношения.
Атрибут, входящий в состав какого-либо возможного ключа, называется основным (первичным).
Отношение задано во второй нормальной форме, если оно находится в первой нормальной форме и каждый атрибут, не являющийся основным, полно зависит от любого возможного (вообще говоря, составного) ключа в этом отношении.
Если любой такой ключ является простым ключом и Х не зависит функционально от Y или Y – от Z, имеет место неполная транзитивная зависимость Z от Х.
Преобразование 2НФ в третью форму (3НФ) состоит в расщеплении отношения R на два
-
СТАТ и ГОРОД не функционально полно зависят от первичного ключа
-
СТАТ и ГОРОД не являются взаимно независимыми.
Отношение ПЕРВОЕ содержит аномалии:
-
включение (не можем включить поставщика, пока не поставляет детали. Нет поставщика n5 из Афин)
-
удаление (с удалением кортежа о поставке удаляем информацию о поставщике)
-
обновление (значение ГОРОД повторяется многократно).
Заменим отношение ПЕРВОЕ двумя отношениями: ВТОРОЕ и ПОСТАВКА
П # |
СТАТ |
ГОРОД |
n1 |
20 |
Лондон |
n2 |
10 |
Париж |
n3 |
10 |
Париж |
n4 |
20 |
Лондон |
n5 |
30 |
Афины |
ПОСТАВКА
П # |
Д# |
КОЛ |
|
|
|
|
|
|
|
|
|
Отношение ВТОРОЕ и ПОСТАВКА находятся во второй нормальной форме (2НФ).
Отношение R находится во второй нормальной форме, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного ключа. (Атрибут называется неключевым, если он не является составной частью первичного ключа).
Преобразования из 1НФ во 2НФ состоит в замене отношения соответствующими проекциями.
ВТОРОЕ = П1,2, 3 (ПЕРВОЕ)
ПОСАВКА = П1,4,5(ПЕРВОЕ)
ПЕРВОЕ = ВТОРОЕ > < ПОСТАВКА
1=1
Отношение в 1НФ, которое не находится во 2НФ, должно иметь составной первичный ключ. В отношении ВТОРОЕ отсутствует взаимная независимость между неключевыми атрибутами.
П# ГОРОД ГОРОД®СТАТ
Зависимость СТАТ от П# является транзитивной.
П# ®ГОРОД ГОРОД ®СТАТ
Заменим отношение ВТОРОЕ двумя проекциями
ПГ |
П# |
ГОРОД |
ГС |
ГОРОД |
СТАТ |
|
n1 |
Лондон |
|
Афины |
30 |
|
n2 |
Париж |
|
Лондон |
20 |
|
n3 |
Париж |
|
Париж |
10 |
|
n4 |
Лондон |
|
|
|
|
n5 |
Афины |
|
|
|
Устраняется транзитивная зависимость.
Оба отношения находятся в 3НФ.