Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Лекция № 5а Операции над отношениями
Гибкость реляционной базы данных определяется легкостью, с которой можно манипулировать отношениями. Пользователь за терминалом или прикладной программист часто будет работать с отношениями, отличающимися от имеющихся в схеме.
С помощью математического аппарата можно определить различные операторы для манипулирования отношениями с целью получения любых желаемых форм табличного представления данных.
Рис. 5.1.
Домены |
D1 |
D2 |
... |
Dn |
Значения |
d1 |
d2 |
dn |
Рис. 5.2.
В дальнейшем для иллюстраций будем использовать следующие отношения
ORG (O, N, CITY, R)
POST (O, D, Q)
DET(D, DN, U, S)
Здесь первичные ключи отношений подчеркнуты.
Операции обновления отношений.
Теперь, когда у нас имеются отношения, возникает вопрос: как могут отношения изменятся во времени. Для этого используются операции добавления, удаления и изменения кортежей.
Операция добавление.
ADD (r; A1 = d1, A2 =d2, ..., An = dn)
Например для отношения POST оператор добавления может иметь вид:
ADD (POST; 0 =6, D =3, K =100)
Цель операции добавления ясна - добавить описанный кортеж в определенное отношение. Результат операции может быть не согласован с целями операции по следующим причинам:
n добавленный кортеж не соответствует схеме определенного отношения;
n некоторые значения кортежа не принадлежат соответствующим доменам;
n описанный кортеж совпадает по ключу с кортежем, уже находящимся в отношении.
ADD (POST; 0 = MMM, D = 3, Q =5)
Операция удаление выполняется для того, чтобы уничтожить некоторые элементы отношения.
DEL (r; A1 = d1, A2 = d2; ..., An = dn)
Например, для отношения POST может быть реализована операция удаления
DEL (POST; 0 = 6, D = 3, Q = 100)
В действительности нет необходимости задавать так много информации, чтобы однозначно определить кортеж. Достаточно определить значение некоторого ключа. В предыдущем примере запись может быть сокращена следующим образом
DEL (ORG; 0 = 6)
Из отношения будут удален кортеж (6, БББ, Благовещенск, 1200).
Вместо того, чтобы удалять и затем добавлять какой-либо кортеж отношения, можно изменять только часть кортежа:
СН (r; A1 = d1; A2 = d2; ..., An = dn; A1 = e1; A2 = e2; Ap = ep)
Если известен ключ отношения, то запись может быть сокращена:
СН(POST; 0 =3; D = 2; Q = 500)
Операция изменения является наиболее удобной. Тот же результат может быть получен с помощью операции удаления, следующей за операцией добавляя. Таким образом всё изменение ошибки операции удаления и добавления присущи и операции изменения.
Упражнение: определить результат операций:
ADD (ORG; 0 = 3, N = R; CITY = БАКУ; R = 7000)
DEL (POST; 0 = 2; D = 2)
CH (DET; D = 3; V = 4)
Рассмотрим теперь операции, позволяющие формировать отношения, удовлетворяющими данному запросу.
Например, для каждой поставленной детали найти наименование детали D и название всех городов из которых она поставляется.
REZ
D |
CITY |
DN |
1 |
Москва |
|
2 |
Москва |
|
2 |
Хабаровск |
|
2 |
Киев |
|
3 |
Москва |
|
4 |
Хабаровск |
Результат должен быть получен ЭВМ с использованием операций над отношениями.
Рассмотрим здесь три наиболее употребительные операции:
SELECT ( ) - выбирать
PROJECT ( ) - проектировать
JOIN () - соединение.
Выбор - операция над отношениями r, результатом которой является другое отношение, которое представляет собой подмножество кортежей отношений r c определенным значением в выделенном атрибуте.
Например,
W = 0=3 (ORG)
0 |
N |
CITY |
R |
3 |
KKK |
Киев |
12000 |
W1 = 0=1 (POST)
0 |
D |
K |
1 |
1 |
300 |
1 |
2 |
200 |
1 |
3 |
300 |
Оператор проекции - предназначен для выбора подмножества столбцов в отношении. Пусть r отношение со схемой R и Х R, проекция Х( r) есть отношение g со схемой Х, полученное вычеркиванием столбцов соответствующих атрибутов из R \ X и исключением из полученной таблицы повторяющихся строк.
(POST) =
0 |
1 |
2 |
3 |
Соединение отношений r и s соответственно со схемой R и S является отношение q = rs со схемой RS, содержащее кортежи, являющиеся комбинацией кортежа из r и кортежа из s с равными значениями атрибутов из RS.
Например:
POST ORG
представляет собой отношение
0 |
D |
Q |
N |
CITY |
R |
1 |
1 |
300 |
МММ |
Москва |
11000 |
1 |
2 |
200 |
МММ |
Москва |
11000 |
1 |
2 |
300 |
МММ |
Москва |
11000 |
2 |
4 |
400 |
ХХХ |
Хабаровск |
0 |
2 |
2 |
100 |
ХХХ |
Хабаровск |
0 |
3 |
2 |
100 |
ККК |
Киев |
11000 |
Применительно, к сформированному выше запросу имеем следующее выражение для городов, из которых поставлены детали:
N = (( POSTORG) DET)
Упражнение:
С использованием операций манипулирования отношениями написать формулу для реализации запроса «на какие склады, попадают детали, поставленные из Москвы».
Реляционная модель данных и операций реляционной алгебры являются основой для создания программных систем по управлению реляционными базами данных.
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.