Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Домен - некоторое множество элементов. Например, D={d1, d2, ..., dn}, где di-числа; это может быть множество каких - то допустимых значений которые может принимать объект, по некоторому свойству; множество {0;1} - множество целых чисел и т.д.
Декартовое произведение доменов D1, D2, ..., Dk обозначается D=D1´D2´...´Dk.
Декартовым произведением D доменов D1, D2, ..., Dk называется множество всех кортежей (dj1, dj2, ..., djk) длины k, таких, что dj1ÎD1, dj2ÎD2, ..., djkÎDk. Элемент декартова произведения dj= (dj1, dj2, ..., djk) называется кортежем.
Например определены два домена D1={0,1} и D2={a,b,c} тогда D=D1´D2 есть множество {(0,a), (0,b), (0,c), (1,a), (1,b), (1,c)}
Отношением R на доменах D1, D2, ..., Dk называется подмножество декартова произведения D1´D2´...´Dk. (RÍ D1´D2´...´Dk.). Поскольку отношение есть множество, то в нем не должны встречаться одинаковые кортежи и порядок кортежей несущественен. Для представления отношений удобны таблицы.
Работа с реляционной БД сводится к работе с отношениями. Для получения информации из отношений необходим язык манипулирования данными, выполняющий соответствующие операции над отношениями. В основном работа с БД сводится к реализации запросов, поэтому наиболее важной частью языка манипулирования данными является раздел формирования запросов. (Часто язык манипулирования данными называют языком запросов.) Остальные функции реляционного языка манипулирования данными достаточно просты и связаны с включениями, удалением и модификацией кортежей.
Запросы в общем случае представляют собой произвольные функции над отношениями. Часто для формирования запросов используют развитые языки высокого уровня.
Вся языки запросов для реляционных моделей можно разбить на два класса:
1. Алгебраические языки, позволяющие выражать запросы средствами специализированных операторов.
2. Языки исчисления предиката, которому должны удовлетворять требуемые картежи (домены). Языки этого класса делятся на два типа в зависимости от того, какие объекты являются переменными - картежи или домены.
Таким образом, для формулирования запросов разработаны три абстрактных теоретических языка:
1) реляционная алгебра;
2) реляционное исчисление с переменными - картежами;
3) реляционное исчисление с переменными - доменами.
Эти абстрактные языки запросов в рассмотренном ниже виде не реализованы на какой - либо СУБД. Они были предложены Коддом для представления минимальных возможностей языка запросов. Реальные же языка поддерживают языки высокого уровня и обеспечивают дополнительные потребности пользователей (арифметических операции, присваивание, печать и т.д.).
По совей выразительности все три языка оказались эквивалентны между собой.
Реляционная алгебра.
При определении операций реляционной алгебры предполагается, что порядок столбцов в отношении фиксирован, а сами отношения конечны (это не противоречит теории БД, так как каждому атрибуту можно дать уникальное имя, что зафиксирует столбцы).
Основные операции реляционной алгебры:
1. Объединение отношение R1 и R2:R=R1ÈR2. Операция применяется только к отношениям одинаковой арности. Отношение R имеет ту же арность.
Пример:
R1 |
a |
b |
c |
R2 |
b |
g |
a |
d |
a |
f |
d |
a |
f |
||
c |
b |
d |
R= R1ÈR2 |
a |
b |
c |
d |
a |
f |
|
c |
b |
d |
|
b |
g |
a |
2. Разность отношений R1 и R2: R=R1-R2 . Разностью отношений называется множество кортежей, принадлежащих R!, но не принадлежащих R2. Отношения R1, R2 должны быть одинаковой арности, так же и результат R.
Пример:
R=R1-R2 |
a |
b |
c |
c |
b |
d |
3. Декартово произведение отношений R1 и R2 : R=R1´R2 . Если отношение R1 имеет арность k1, отношение R2 имеет арность k2, то декартово произведение и представляет собой множество кортежей арности (k1+k2), причем первые k1 элементов образуют кортеж из отношения R1, а последние k2 - из отношения R2:
R=R1´R2 |
a |
b |
c |
b |
g |
a |
a |
b |
c |
d |
a |
f |
|
d |
a |
f |
b |
g |
a |
|
d |
a |
f |
d |
a |
f |
|
c |
b |
d |
b |
g |
a |
|
c |
b |
d |
d |
a |
f |
4. Проекция отношения R1 на компоненты i1, i2, ..., ir: R=pi1, i2,..., ir (R1), где i1, i2, ..., ir - номера столбцов отношения R1. Существо этой операции заключается в том, что из отношения R1 выбирают указанные столбцы и компануются в указанном порядке.
Пример:
R=p3,1(R1) |
c |
d |
f |
d |
|
d |
c |
Из каждого кортежа отношения R1 выбираются значения первого и третьего столбца и компанубтся в порядку (3,1). Если у отношения столбцы поименованы, то вместо номеров следует писать имена соответствующих атрибутов. Например для схемы отношения R (A,B,C,D) операцию p3,1(R) следует записать pC,A(R).
5. Селекция отношения R1 по формуле F: R=sF(R1), где F - формула, которая состоит из операндов (номеров столбцов или их имен), логических операторов ( - не) ,операторов сравнения (<,>,=,).Также в формуле могут быть использованы скобки. Результатом операции является множество картежей, таких
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.