Пример просмотра отношения телефонной книги
Рисунок 6.
Пример просмотра отношения телефонной книги для нахождения телефонных номеров всех людей по фамилии Smith.
Вывод просмотра может быть переслан оператору сортировки (sort), который упорядочит кортежи в соответствии с критерием сортировки и удалит дубликаты, если указана соответсвующая опция. SQL определяет несколько агрегатных операций для свертывания атрибутов в одно значение, например, для нахождения суммы, минимума или максимума атрибута, подсчитывания числа различных значений атрибута. Оператор вставки (insert) добавляет кортежи из потока данных в существующее отношение. Операторы изменения
(update) и удаления (delete) модифицируют, удаляют кортежи в отношении при их совпадении с потоком просмотра.
В реляционной модели определяются несколько операторов для комбинирования и сравнения двух или более отношений. В их число входят как обычные операции объединения (union), пересечения (intersection) и взятия разности (difference), так и более экзотичные операции, такие как соединение (join) и деление (division). Мы рассмотрим лишь оператор эквисоединения (equi-join, называемый здесь просто соединением – join). Операция соединения производит композицию двух отношений A и B по какому-либо атрибуту, образуя третье отношение. Для каждого кортежа ta из отношения A соединение находит все кортежи tb в отношении B, значения атрибутов которых равняются значению ta. Для каждой найденной пары кортежей оператор соединения вставляет в выходной поток кортеж, получаемый путем слияния двух исходных кортежей.
В классической статье Кодда показано, что любые виды данных могут быть представлены в реляционном виде, и что перечисленные операции образуют полную систему операций [5]. Сегодня прикладные программы на SQL, как правило, являются комбинациями обычных программ и операторов SQL. Программы взаимодействуют с клиентами, отображают данные и обеспечивают высокоуровневое направление потока данных SQL.
Модель данных SQL была первоначально предложена с целью увеличить продуктивность программистов посредством применения непроцедурного языка баз данных.
Содержание Назад Вперед