
- •3.2. Реляционные системы
- •Язык sql и реляционные операции.
- •Сравнения, ограниченные доменом
- •Домены и определение данных
- •Значения отношений
- •Определение данных
- •Свойства отношений
- •Виды отношений
- •Потенциальные ключи
- •Первичные и альтернативные ключи
- •22. Внешние ключи. Определение и свойства. Синтаксис для указания внешнего ключа. Ссылочная целостность.
- •Ссылочная целостность
- •23. Правила внешних ключей. Расширенный синтаксис задания внешнего ключа
18. Язык SQL. Операции определения данных. Реляционные операции с данными Примеры 1) определения табл. DEPT и EMP (БД ОиС). 2) Выполнения реляционных операций SELECT, PROJECT, JOIN средствами SQL.
Основой современной технологии баз данных, является реляционная модель; именно эта основа делает область технологии баз данных наукой.
В реляционной модели рассматриваются три аспекта данных:
структура данных (объекты данных);
целостность данных;
обработка данных (операторы).
Реляционная модель имеет свою специальную терминологию.
3.2. Реляционные системы
Реляционная система управления базами данных (или просто реляционная система) — это такая система, в которой, выполняются как минимум два условия.
Данные воспринимаются пользователем как таблицы (и никак иначе).
Простой пример реляционной базы данных отделов и служащих.
В распоряжении пользователя имеются операторы (например, для выборки данных), которые генерируют новые таблицы из старых и среди которых, по крайней мере, есть операторы SELECT (также известный как RESTRICT), PROJECT и JOIN
Операция SELECT (или RESTRICT) предназначена для извлечения определенных строк из таблицы.
Операция PROJECT предназначена для извлечения определенных столбцов из таблицы.
Операция JOIN предназначена для соединения двух таблиц на основе общих значений в общих столбцах.
Комментарии к операции JOIN.
В таблицах DEPT и ЕМР есть общий столбец DEPT#, а следовательно, эти таблицы можно соединить на основе общих значений в этом столбце.
Строка таблицы DEPT соединяется со строкой таблицы ЕМР, образуется более длинная строка, когда у этих двух строк общее значение поля DEPT#.
Например, следующие строки таблиц DEPT и ЕМР
(названия столбцов приведены для наглядности) можно соединить в результирующую строку
(так как в общем столбце у этих строк одно и то же значение D1). Общий результат состоит из множества всех таких соединенных строк.
Столбец DEPT# в каждой результирующей строке встречается один раз, а не два.
Поскольку в таблице ЕМР нет значения D3 в поле DEPT# (т.е. нет служащих, работающих в отделе D3), то нет и результирующих строк со значением D3 в этом поле, хотя и есть строка со значением D3 в таблице DEPT.
Реляционное свойство замкнутости. Результат каждой из трех приведённых операций — это еще одна таблица.
Результатом операции является таблица.
Над результатом реляционной операции можно вновь проделать какую-либо другую реляционную операцию. Например, можно выбрать столбцы из соединенной таблицы или соединить два результата операции SELECT и т.д.
Можно использовать вложенные выражения, т.е. выражения, в которых операнды представлены выражениями, а не простыми именами таблиц.
Замечание 1.
Результатом каждой операции является таблица с концептуальной точки зрения.
На практике, как правило, система весьма упорно пытается не материализовать полностью промежуточные
Реляционные операции применяются сразу ко всему множеству строк.
Такая возможность обработки множества— главная отличительная характеристика реляционных систем
Язык sql и реляционные операции.
Примеры операций SELECT, PROJECT и JOIN сформулированные на языке SQL
Замечание.
Пример операции соединения иллюстрирует использование точки, которая иногда необходима в уточненных именах SQL для "устранения неоднозначности" ссылок на столбцы. (Если бы использовались неуточненные имена, т.е. предложение WHERE было бы записано в виде "WHERE DEPT# = DEPT#", то две ссылки DEPT# порождали бы неоднозначность, т.е. было бы неясно, к какому случаю относится ссылка — к DEPT.DEPT# или к EMP.DEPT#.)
Оператор SELECT языка SQL и операция SELECT реляционной модели — это не одно и то же!
Язык SQL поддерживает все три реляционные операции — SELECT, PROJECT и JOIN (и даже больше)— в операторе SELECT.
19. Реляционные объекты данных. Домен — это общая совокупность значений, из которой берутся настоящие значения для определенных атрибутов определенного отношения.
Домен это именованное множество скалярных значений одного типа.
Скалярные значения представляют собой "наименьшую семантическую единицу данных" в том смысле, что они атомарные: у них нет внутренней структуры (т.е. они неразложимы) в реляционной модели, а значит, и при рассмотрении в реляционной СУБД.
Домены являются общими совокупностями значений, из которых берутся реальные значения атрибутов.
Каждый атрибут должен быть определен на единственном домене (или на основе одного домена); это значит, что значения атрибута должны браться из этого домена.