
- •Введение
- •Общая схема банка данных в системе
- •Основные понятия
- •Базы данных
- •Банк данных как система управления основные понятия
- •Банк данных как автоматизированная система
- •Субд с включающим языком
- •Информационные системы
- •Документальные аис основные понятия дескриптор
- •Фактографические аис
- •Основные понятия
- •Основные данные
- •Уровни моделей
- •Классификация моделей
- •Роль подсхемы
- •Этапы проектирования базы данных
- •Архитектура банка данных
- •Последовательность действий при чтении записи
- •Инфологическое проектирование базы данных
- •Модели данных и подъязыки данных
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Реляционные базы данных
- •Алгебра отношений
- •Преимущества реляционных бд
- •Отношения
- •Нормализация отношений
- •Функциональная зависимость
- •Полная функциональная зависимость.
- •Проектирование баз данных.
- •Специальные операции над отношениями
- •Операции над отношениями.
- •Централизация и децентрализация процессов обработки данных.
- •Традиционный набор операций
- •Нормализация отношений
- •Исчисление отношений
- •Вторая и третья нормальные формы.
- •26. Язык запросов sql
- •1 Основы sql
- •Многотабличные запросы на чтение (объединения)
- •Сортировка результатов запроса (предложение order by)
- •Объединение результатов нескольких запросов (union)*
- •Запрос на объединение и сортировка *
- •Многотабличные запросы на чтение (объединения)
- •Простое объединение таблиц (объединение по равенству)
- •Запросы с использованием отношения предок/потомок
- •Объединения с условием для отбора строк
- •Несколько связанных столбцов
- •Запросы на чтение к трем и более таблицам
- •Чтение всех столбцов
- •Самообъединения
- •Псевдонимы таблиц
- •Правила выполнения многотабличных запросов
- •Внешнее объединение таблиц *
- •Итоговые запросы на чтение
- •Агрегатные функции
- •Агрегатные функции в списке возвращаемых столбцов
- •Запросы с группировкой (предложение group by)
- •Несколько столбцов группировки
- •Ограничения на запросы с группировкой
- •Вложенные запросы на чтение
- •Внешние ссылки
- •Вложенные запросы и объединения
- •Связанные вложенные запросы
- •Однострочный оператор insert
- •В интерактивном режиме удобно не включать в оператор insert список столбцов, так как это уменьшает длину оператора. В случае программного
- •Многострочный оператор insert
- •Удаление существующих данных
- •Удаление всех строк
- •Оператор delete с вложенным запросом *
- •Обновление существующих данных
-
Проектирование баз данных.
Проектирование реляционных баз данных основывается на трех принципах:
- эквивалентных преобразований схемы базы данных.
- уничтожения аномального манипулирования данными
- минимальной избыточности
В общем случае при проектировании ставится задача получения схемы базы дынных, которая эквивалентна и лучше исходной.
В настоящее время известны два подхода к определению понятия эквивалентности схем базы данных: эквивалентность по зависимостям и эквивалентность по данным.
Эквивалентность по зависимостям: схемы содержат одни и те же зависимости: если Г1 и Г2 – множества зависимостей двух схем, то эти схемы эквивалентны по зависимостям, если Г1=Г2
Эквивалентность по данным: требуется, чтобы обе базы данных содержали одни и те же данные: две БД со схемой Si, i=1,k и Tj, j=1,n соответственно содержат одни и те же данные, если S1*S2*…*Sk = T1*T2*…Tn, где * - операция естественного соединения отношений.
Одной из целей проектирования реляционных баз данных является уничтожение аномалий манипулирования данными. 3 НФ, введенная ка…ом, позволяет существенно уменьшить( но не исключить) аномалии манипулирования. 3 НФ сохраняет эквивалентность и по зависимостям, и по данным. Каждая НФ либо теряет эквивалентность по данным или по зависимостям, либо допускает аномалии.
Можно дать два определения избыточности: по зависимостям и по данным.
Система отношений S с множеством зависимостей Г избыточна по зависимостям Гi, если
n n
(UГj) = (UГj)
j=1 j=1 j≠i
Система S избыточна по данным отношения Si, если S1*S2*…*Sk = S1*S2*… Si-1*Si+1*…*Sn.
Для любого отношения существует такая третья НФ, которая не избыточна по функциональным зависимостям.
В связи с двумя подходами к определению эквивалентных преобразований схем БД существует два метода проектирования схем: синтез и декомпозиция.
Синтез предполагает сохранение эквивалентности по зависимостям.
Декомпозиция – сохранение эквивалентности по данным.
В алгоритмах синтеза достижима только 3НФ, при декомпозиции – любые. При синтезе не снимаются полностью аномалии манипулирования. Можно получить минимальную избыточность по функциональным зависимостям, в алг. декомпозиции – по данным.
Обозначим: A,B,C, …… X,Y,Z – множества атрибутов
a,b,c, …….x,y,z – значения атрибутов
U,R,S - отношения.
Объединение множеств атрибутов X и Y обозначается Х*Y.
Пусть X и Y – атрибуты отношения R.
Атрибут Y функционально зависит от атрибута X, если в каждый момент времени каждому значению х соответствует одно значение y.
X Y - Y зависит от X
X
Y
- зависимости нет.
Если X Y и Y ® X, то существует однозначное соответствие.
В каждом отношении имеется определенное множество функциональных зависимостей между атрибутами, причем из одной или нескольких функциональных зависимостей можно вывести другие функциональные зависимости, также присущие этому отношению.
Пример: задано отношение со схемой R ( A1, A2, A3)
A1 |
A2 |
A3 |
12 |
21 |
34 |
17 |
21 |
34 |
11 |
24 |
33 |
13 |
25 |
31 |
15 |
23 |
35 |
14 |
22 |
32 |
В отношении R имеются функциональные зависимости
A1 A2; A2 ® A3 =F
Из анализа отношения очевидно, что в нем, кроме указанных, имеются другие зависимости.
F+= A1 A3; A1A2 ® A3, A1A2A3A1A2, A1A2A1A3
Заданное множество функциональных зависимостей для схемы отношения R ( A1, A2, A3) обозначается через F, а полное множество функциональных зависимостей, которое можно логически получить из множества F, через F+. F С F+
Чтобы строить множество F+ из F , необходимо знать аксиомы вывода одних функциональных зависимостей из других. Аксиомы позволяют вывести полное множество функциональных зависимостей, присущих рассматриваемой схеме отношения R(A1,……An) по заданному множеству функциональных зависимостей.
Аксиома Ф1 (свойство рефлексивности)
Если Х ≤ U, Y ≤ X, Y ≤ X, то имеет место функциональная зависимость X ® Y. Аксиома Ф1 дает тривиальные зависимости Аj ® Ai
Ai Аj ® Аj
Ai Аj AkAeAr ® АjAkAr и т.д.
Аксиома Ф2 (свойство пополнения)
Если Х ≤ U, Y ≤ U, Z ≤U и задана функциональная зависимость X ® Y, которая либо принадлежит множеству F , либо получена из F с использованием правил вывода, то X*Z®Y*Z
Для аксиомы Ф2 несущественно, перекрываются ли множества X,Y,Z или нет. Используя это правило можно любые атрибуты множества U подставлять одновременно в правую и в левую часть выражения функциональной зависимости, при этом функциональная зависимость сохраняется.
R:
A1
A2
A3
A4
A5
и
б
а
в
з
д
и
л
г
з
е
б
м
н
ж
в
к
а
с
х |
F=A1 ®A2 A2 ®A3 A3 ®A4 A4 ®A5 |
Выберем в качестве произвольных множеств атрибутов X,Y и Zследующие множества:
X= A1 Z= A4, A5
Y= A3
Кортежи отношения R
-
XZ
YZ
< и в з >
< а в з >
< д г з >
< л г з >
< е н ш >
< м н ш >
< в с х >
< а е х >
Приходим к выводу, что существует функциональная зависимость A1 A4 A5® A3 A4 A5 - выполняется свойство пополнения.
Аксиома Ф3 (свойство транзитивности)
Х ≤ U, Y ≤ U, Z ≤ U. Заданы зависимости X {A1 A4 A5} X ® Y, Y ® Z, которые либо принадлежат множеству F , либо получены из F с помощью правил вывода. Следует X ® Z .
Из инфологического проектирования известно, что помимо функциональных существуют многозначные зависимости X Y.
Для того чтобы убедиться, что конкретную взаимосвязь Y (X) можно рассматривать как многозначную зависимость, необходимо выполнить проверку ограничения. Оно состоит в следующем:
Если в отношении R имеет место зависимость X Y, то для двух произвольных кортежей t и s таких, что tx=sx, обязательно отношение содержит кортежи U и V, удовлетворяющие условиям
-
U X = V X = t X = s X
-
U Y = t Y
U [R-X-Y] = s [R-X-Y]
-
V Y = V Y
V [R-X-Y] = V [ R-X-Y]
Задано исходное положение R:
X Y Z
а в с Проверим, существует ли многозначная зависимость Y Z По значению их компонентов формируем кортежи U и V
В отношении R выберем произвольные кортежи t,s, для которых значение атрибута t Y = s Y .
а в д
е ж з
ж в с
ж в д
t : <а, в, с>
s : <ж, в, д>
-
U Y = V Y = t Y = s Y= в
-
U Z = t Z =c
U [R-Y-Z] = s [ R-Y-Z ]= uX=s X=ш
-
V Z = sZ=д
V [ R-Y-Z ] = t [ R-Y-Z ] =VX =t X = а
В отношении должны быть кортежи <ш, в, с> <а, в, д>, что и имеет место в отношении R. Следовательно имеет место многозначная зависимость.
Для многозначных зависимостей существуют также аксиомы вывода:
М1 (аксиома дополнения)
Если имеется набор атрибутов Х ≤ U, Y ≤ U и имеет место многозначная зависимость X Y, то имеет место также X (U-X-Y)
М2 (аксиома пополнения)
Х ≤ U, Y ≤ U, V ≤ W, X Y, отсюда WX VY
М3 (аксиома транзитивности)
Х ≤ U, Y ≤ U, X Y, Y Z : X Z - Y,
Кроме того, существуют аксиомы, связывающие функциональные и многозначные зависимости:
ФМ1
Если Х ≤ U, Y ≤ U и существует X ® Y, то X Y
ФМ2 Если Х ≤ U, Y ≤ U, Z ≤ U, Z ≤ U, W ≤ U, причем W ∩ Y = и X Y, WZ, то имеет место X Z.
Система аксиом Ф1-Ф3,М1-М3, ФМ1-2 обладает свойством полноты и надежности.
Свойство полноты означает, что при использовании этих правил можно по заданному множеству исходных зависимостей F= F1, F2, …… Fх построить все зависимости, принадлежащие множеству F+.
Свойство надежности означает, что используя эти правила вывода, можно вычислить только зависимости Fj F+.
A – множество всех номеров поставщиков
B – множество всех номеров деталей
A*B – п1 д1 кардинальное число
… … S*6 = 30
п1 д6
п2 д1 мощность (степень)
… … n + m
п2 д6
п3 д1
… …
п5 д6