- •Базы данных. Сетевая модель.
- •Реляционная модель.
- •Функции над подмножествами.
- •Декартовое произведение множеств.
- •О тношение порядка
- •Функциональное
- •Отношение в степени 3
- •Транзитивное замыкание отношений.
- •Лекция №3 Базовые понятия реляционной модели данных. Общая характеристика рбд.
- •Отношение атрибуты и кортежи отношений
- •Реляционная алгебра
- •Отношения совместимые по типу.
- •Специальные реляционные операторы. Выборка селекция или ограничение.
- •Оператор Проекция.
- •Соединение.
- •Операция деления.
- •Зависимые реляционные операторы.
- •Запросы выразимые средствами реляционных алгебр. Целостность реляционных данных.
- •Парадоксы:
- •Потенциальные ключи.
- •Замечания:
- •Операции нарушающие целостность по ссылкам.
- •Реляционный способ доступа к данным. Основные сведения о языке sql. Выборка данных:
- •Логические операторы
- •Операторы объединения
- •Упорядочение данных.
- •Продажи данных. Группировка данных
- •Выборка данных их нескольких таблиц
- •Группировка
- •Подзапросы
Оператор Проекция.
Проекция отношения А по атрибутам х,у,z…где каждый атрибут принадлежит отношения А называется отношением с заголовком х,у,z и телом содержащим множество картежей вида (х,у,z), таких для которых в отношении А найдутся картежи со значением атрибута Х равного х, У=у и Z=z.
Синтаксис:
А[x,y,z]
Даёт вертикальный срез отношения в котором удалены все возникшие при таком срезе дубликаты картежей.
Пример:
№ |
Наименование |
Город |
1 |
Иванов |
Уфа |
2 |
Петров |
москва |
3 |
Сидоров |
москва |
4 |
Сидоров |
Челябинск |
А[город поставщика] будет иметь вид:
Город |
Уфа |
москва |
москва |
Челябинск |
Соединение.
Разновидности:
Общая операция соединения. Соединением отношения А и В по условию с, называется отношением вида ( A TIMES B) where c, где
С-логическое выражение в которое могут входить атрибуты отношения А и В или скалярные выражения.
Операция соединения-это р-т последовательного применения операции декартового произведения и выборки.
Тетта-соединение.Пусть отношение А содержит атрибут х, отношение В содержит атрибут у. А тетта – один из операторов сравнения, тогда тетта соединение отношения А по атрибуту х с отношение В по атрибуту у, называется отношением (А Times B) where x «тетта» у.
Пример:
-
№
Наименование
Статус
1
Макаров
4
2
Маринкин
1
3
Черкасов
2
Отношение детали:
-
№
Наименование
Статус
1
Болт
3
2
гайка
2
3
винт
1
Вопрос:какие поставщики имеют право поставлять какие детали?
Ответ: A[x>=y]B.А само отношение будет выглядеть
-
№поставщика
Наименование Поставщика
Статус поставщика
№детали
Наименование детали
Статус детали
1
макаров
4
1
болт
3
1
макаров
4
2
Гайка
2
1
макаров
4
3
Винт
1
2
маринкин
1
3
Винт
1
3
черкасов
2
2
Гайка
2
3
черкасов
2
3
винт
1
Экви-соединение. Частичный случай тетта-соединиения, поэтому А[x=y]B. Пример: отношение Р
-
№поставщика
Наименование поставщика
1
Макаров
2
Маринкин
3
черкасов
Отношение D
-
№ детали
Наименование детали
1
Болт
2
Гайка
3
Винт
Отношение PD
-
№ поставщика
№ детали
Кол-во
1
1
100
1
2
200
1
3
300
2
1
150
2
2
250
3
1
1000
Какие детали поставляются какими поставщиками записываются в след виде:
P[N-пост=N-пост]
(P rename n-пост as nпост 1)
[N пост 1=n пост 2]
(pdrename nпост as n пост 2)
№ пост |
наименование |
№ пост 2 |
№ детали |
количество |
1 |
макаров |
1 |
1 |
100 |
1 |
макаров |
1 |
2 |
200 |
1 |
макаров |
1 |
1 |
300 |
2 |
маринкин |
2 |
1 |
150 |
2 |
маринкин |
2 |
2 |
250 |
3 |
Черкасов |
3 |
1 |
1000 |
Естественное. Пусть даны отношения А с атрибутами (А1 а2 аn x1 x2 xn) и В(X1 X2 Xn b1 b2 bn)
Естественным отношением А и В называется отношение с заголовком (А1 А2 Аn x1 x2 xn b1 b2 bn
И телом(a1 a2 an x1 x2 xn b1 b2 bn)
(a1 a2 an x1 x2 xn)принадлежит А и (x1 x2 xn b1 b2 bn)принадл В
Аjoin B
Естественное соединение проходит по всем одинаковым полям. Оно эквивалентно след последовательности раляционных операций:
Переименовать одинаковые имена
Выполнить декартовое произведение отношений
Выполнить выборку по совпадающим атрибутам имеющим одинаковые имена
Выполнить проекцию удалив повторяющие атрибуты
Переименовать атрибуты вернув им первоначальные имена
Можно выполнить последовательное естественное соединение нескольких отношений:
(A join B) join C= a join(Bjoin C)=a join B join C
Пример:
P join PD join D
№ |
Имя поставщика |
№ детали |
Наименование детали |
Кол-во |
1 |
Макаров |
1 |
Болт |
100 |
1 |
Макаров |
2 |
Гайка |
200 |
1 |
Макаров |
3 |
Винт |
300 |
2 |
Маринкин |
1 |
Болт |
150 |
2 |
Маринкин |
2 |
Гайка |
250 |
3 |
черкасов |
1 |
болт |
1000 |
