- •Базы данных. Сетевая модель.
- •Реляционная модель.
- •Функции над подмножествами.
- •Декартовое произведение множеств.
- •О тношение порядка
- •Функциональное
- •Отношение в степени 3
- •Транзитивное замыкание отношений.
- •Лекция №3 Базовые понятия реляционной модели данных. Общая характеристика рбд.
- •Отношение атрибуты и кортежи отношений
- •Реляционная алгебра
- •Отношения совместимые по типу.
- •Специальные реляционные операторы. Выборка селекция или ограничение.
- •Оператор Проекция.
- •Соединение.
- •Операция деления.
- •Зависимые реляционные операторы.
- •Запросы выразимые средствами реляционных алгебр. Целостность реляционных данных.
- •Парадоксы:
- •Потенциальные ключи.
- •Замечания:
- •Операции нарушающие целостность по ссылкам.
- •Реляционный способ доступа к данным. Основные сведения о языке sql. Выборка данных:
- •Логические операторы
- •Операторы объединения
- •Упорядочение данных.
- •Продажи данных. Группировка данных
- •Выборка данных их нескольких таблиц
- •Группировка
- •Подзапросы
Операция деления.
Пусть даны отношения А(Х1 Х2 Хн У1 У2 Ун) и отношение В (У1 У2 Ун)
Деление отношения А на В называется отношением с заголовком (х1 х2 хн) и телом содержащим но-во кортежей (х1 х2 хн) т.ч. для всех кортежей у1 у2 ун принадлеж В в отношении А найдётся кортеж (х1 х2 хн у1 у2 ун). Отношение А называют делимым, отношение В называют делителем.
Синтаксис: А devidby b. В формулировке вопроса всегда есть всё и все.
Пример: вопрос: Какие поставщики поставляют все детали??
В качестве делимого возмём проэкцию X=PD[N_пост, N_дет]
№ пост |
№дет |
1 |
1 |
1 |
2 |
1 |
3 |
2 |
1 |
2 |
2 |
3 |
1 |
Y=D[Nдет]
N пост |
1 |
2 |
3 |
X devide by y
Проверочная
Получить имена поставщиков которые пост по крайней мере 1 гайку.
1й способ((((D where наим детали=гайка)join DP))jon P)[имя поставщика]
2ой способ(((d join Dp)join P)where наименование D =гайка)[наименование поставщика]
2)Поучить имена поставщиков поставляющих все детали
((DP [N_D, N_P] devideby D[D_N])join P)[наим пост]
Получить имена поставщиков не пост деталь номер 2
T1-имена пост (табл)
Т1=Р[N_P]
T2=P join PD
T3= T2 where N_D=2
T4=T3 [N_P]
T5=T1 minus T4
T6 T5 join P
T7=t6[имя]
((P[N_пост]minus ((P join DP)where N_D=2)[N_пост])join P)[наим_пост]
Лекция
Зависимые реляционные операторы.
Оператор соединения. Определяется через операторы декартового произведения и выборки. Для оператора естественного соединения добавляется оператор проекции.
Оператор пересечения. Выражается через вычитание следующим образом:
A INTERSECT B= AMINUS(A MINUS B)
Оператор деления выражается через операторы вычитания, декартовы произведения и проекции.
A DEVIDEBY B=A [X]minus((A[x] times B) minus A)[x]
Примитивные реляционные операторы.
К ним относятся: объединение, вычитание, декартово произведение, выборки и проекции, потому что их нельзя выразить через другие операторы.
….-это единственный оператор который …
Оператор проекции-оператор который уменьшает число атрибутов.
Оператор выборки позволяет производить сравнение по атрибутам отношения.
Оператор объединения и вычитания.
Запросы выразимые средствами реляционных алгебр. Целостность реляционных данных.
Целостность сущности.
Целостность внешних ключей (сылок).
Null-значение. Это некий маркер, показывающий что значение пока неизвестно.
Трёхзначная логика.
T-истина
F-ложь
U-неизвестно
Таьлица «И»
-
and
f
t
U
F
F
F
F
t
F
T
U
U
F
U
u
Таблица or «или»
-
Or
F
T
U
F
F
T
U
T
T
T
T
U
U
T
u
Таблица not
-
Not
f
t
t
f
u
u