Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpant / шпант / 18-23.doc
Скачиваний:
17
Добавлен:
15.04.2015
Размер:
675.84 Кб
Скачать

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. Реляционные объекты данных. Домен — это общая совокупность значений, из которой берутся настоящие значения для определенных атрибутов определенного отношения.

  • Домен это именованное множество скалярных значений одного типа.

  • Скалярные значения представляют собой "наименьшую семантическую единицу данных" в том смысле, что они атомарные: у них нет внут­ренней структуры (т.е. они неразложимы) в реляционной модели, а значит, и при рассмотрении в реляционной СУБД.

  • Домены являются общими совокупностями значений, из которых берутся реальные значения атрибутов.

  • Каждый атрибут должен быть определен на единственном домене (или на основе одного домена); это значит, что значения атрибута должны браться из этого домена.

Соседние файлы в папке шпант