Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

shpant / шпант / 15-18

.docx
Скачиваний:
14
Добавлен:
15.04.2015
Размер:
229.49 Кб
Скачать

15. Теоретические основы системы БД

Основой современной технологии баз данных, является реляционная модель. Реляционная система управления базами данных (или просто реляционная система) — это такая система, в которой, выполняются как минимум два условия.

Данные воспринимаются пользователем как таблицы (и никак иначе).

Простой пример реляционной базы данных отделов и служащих.

В распоряжении пользователя имеются операторы (например, для выборки данных), которые генерируют новые таблицы из старых и среди которых, по крайней мере, есть операторы SELECT (также известный как RESTRICT), PROJECT и JOIN

  • Операция SELECT (или RESTRICT) предназначена для извлечения определенных строк из таблицы.

  • Операция PROJECT предназначена для извлечения определенных столбцов из таблицы.

  • Операция JOIN предназначена для соединения двух таблиц на основе общих значений в общих столбцах.

  • Реляционное свойство замкнутости. Результат каждой из трех приведённых операций это еще одна таблица.

  • Результатом операции является объект того же рода, что и объект, над которым производилась операция — а именно таблица.

  • Над результатом реляционной операции можно вновь проделать какую-либо другую реляционную операцию. Например, можно выбрать столбцы (операция PROJECT) из соединенной (операция JOIN) таблицы или соединить два результата операции SELECT и т.д.

  • Можно использовать вложенные выражения, т.е. выражения, в которых операнды представлены выражениями, а не простыми именами таблиц.

Реляционные объекты данных

16. Реляционная модель.

Основой современной технологии баз данных, является реляционная модель; именно эта основа делает область технологии баз данных наукой.

В реляционной модели рассматриваются три аспекта данных:

  • структура данных (объекты данных);

  • целостность данных;

  • обработка данных (операторы).

Реляционная модель делится на три части, в которых рассматриваются соответственно объекты, целостность и операторы.

Оптимизация

  • Реляционные операции, такие как SELECT, PROJECT и JOIN, выполняются на уровне множеств.

  • Реляционные языки, такие как SQL, часто называют непроцедурными, так как пользователь указывает, что делать, а не как делать, т.е. пользователь говорит, что ему нужно, без указания процедуры получения результата.

  • Процесс "навигации" по хранимой базе данных для удовлетворения пользовательского запроса выполняется системой автоматически, а не пользователем вручную.

  • Поэтому реляционные системы иногда называют системами автоматической навигации.

  • В не реляционных системах за навигацию по базе данных в основном несет ответственность пользователь.

  • Ответственность за то, как выполняется автоматическая навигация, несет очень важный компонент СУБД— оптимизатор.

  • Работа оптимизатора заключается в том, чтобы для каждого запроса пользователя выбрать самый эффективный способ выполнения этого запроса.

Каталог

  • Каждая СУБД должна обеспечивать функцию каталога, или словаря.

  • Каталог размещается там, где сохраняются различные схемы (внешние, концептуальные, внутренние) и все, что относится к отображениям (внешнее-концептуальное, концептуальное-внутреннее).

  • Каталог содержит детальную информацию (иногда называемую дескрипторами), касающуюся различных объектов, которые имеют значение для самой системы.

Пример объектов: таблицы, индексы, правила целостности, правила безопасности и т.д.

  • Информация дескриптора необходима для обеспечения правильной работы системы.

  • Пример 1.

Оптимизатор использует информацию каталога об индексах, а также другую информацию, чтобы определиться, каким образом выполнить запрос пользователя.

  • Пример 2.

Подсистема безопасности использует информацию каталога о пользователях и правилах безопасности, чтобы разрешить (или отказать) запросу первоочередное выполнение.

  • Каталог сам состоит из таблиц (точнее, системных таблиц, названных так для отличия от обычных пользовательских).

  • Пользователь может обращаться к каталогу так же, как к своим данным.

  • Пример.

  • В каталоге обычно содержатся системные таблицы TABLES и COLUMNS, назначение которых— описание известных системе таблиц и столбцов этих таблиц.

  • Для базы данных отделов и служащих таблицы TABLES и COLUMNS могут схематически выглядеть:

Каталог базы данных отделов и служащих (изображен схематически)

  • Пример 1.

Пользователю базы данных отделов и служащих необходимо узнать, какие именно столбцы содержит таблица DEPT. Тогда необходимое выражение будет выглядеть следующим образом:

( columns where tabname = 'dept' ) [ colname ]

17. Базовые таблицы и представления.

  • Из данного множества таблиц, таких как DEPT и ЕМР, реляционные выражения позволяют получить множество других, например путем соединения двух таблиц.

  • Исходные (данные) таблицы называются базовыми таблицами (БТ);

  • Таблицы, полученные из БТ путем выполнения каких-либо реляционных выражений, называются производными таблицами (ПТ)

  • БТ существуют независимо, в то время как ПТ зависят от базовых.

Производная таблица — это такая таблица, которая определяется в терминах других таблиц и, в конечном счете, в терминах базовых таблиц, а базовая таблица— это такая таблица, которая не является производной.

  • Реляционные системы в первую очередь предоставляют средства для создания базовых таблиц.

  • Базовые таблицы должны быть именованными (т.е. их имена указываются в операторах создания).

  • Большинство производных таблиц, наоборот, неименованные.

  • Реляционные системы обычно поддерживают один определенный вид производных таблиц, называемый представлением, которое имеет имя.

Представление — это именованная таблица, которая, в отличие от базовой, не может существовать сама по себе, а определяется в терминах одной или нескольких именованных таблиц (базовых таблиц или других представлений).

  • Пример. инструкцию

create view topemps as ( емр where salary > 33k ) [ emp#, ename, salary ] ;

можно использовать для определения представления TOPEMPS.

  • Замечание 1.

Когда эта инструкция выполняется, выражение, следующее за ключевым словом as и фактически определяющее представление, не вычисляется, а просто "запоминается" системой (обычно путем сохранения в каталоге под указанным именем TOPEMPS).

  • Замечание 2

Для пользователя это теперь такая же реальная таблица базы данных с именем TOPEMPS, со строками и столбцами.

Имя TOPEMPS обозначает виртуальную таблицу, т.е. таблицу, которая была бы результатом, если бы выражение, определяющее представление, было на самом деле вычислено.

TOPEMPS как представление базовой таблицы ЕМР (незатемненные участки)

(Представление — это просто "окно" в основной таблице ЕМР.)

  • Любые изменения в основной таблице будут автоматически и немедленно видны через такое "окно" (конечно, если эти изменения относятся к незатемненной части таблицы ЕМР);

  • Изменения в TOPEMPS будут автоматически и немедленно применены к реальной таблице ЕМР и, следовательно, будут видны через "окно".

18. Язык SQL.

Реляционная система управления базами данных (или просто реляционная система) — это такая система, в которой, выполняются как минимум два условия.Данные воспринимаются пользователем как таблицы (и никак иначе). Простой пример реляционной базы данных отделов и служащих.

В распоряжении пользователя имеются операторы (например, для выборки данных), которые генерируют новые таблицы из старых и среди которых, по крайней мере, есть операторы SELECT (также известный как RESTRICT), PROJECT и JOIN

Примеры операций SELECT, PROJECT и JOIN сформулированные на языке SQL

  • Замечание.

Пример операции соединения иллюстрирует использование точки, которая иногда необходима в уточненных именах SQL для "устранения неоднозначности" ссылок на столбцы. (Если бы использовались неуточненные имена, т.е. предложение WHERE было бы записано в виде "WHERE DEPT# = DEPT#", то две ссылки DEPT# порождали бы неоднозначность, т.е. было бы неясно, к какому случаю относится ссылка — к DEPT.DEPT# или к EMP.DEPT#.)

Оператор SELECT языка SQL и операция SELECT реляционной модели — это не одно и то же!

Язык SQL поддерживает все три реляционные операции — SELECT, PROJECT и JOIN (и даже больше)— в операторе SELECT.

  • Комментарии к операции JOIN.

В таблицах DEPT и ЕМР есть общий столбец DEPT#, а следовательно, эти таблицы можно соединить на основе общих значений в этом столбце.

Строка таблицы DEPT соединяется со строкой таблицы ЕМР, при этом образуется более длинная строка, но это происходит тогда и только тогда, когда у этих двух строк общее значение поля DEPT#.

Например, следующие строки таблиц DEPT и ЕМР

(названия столбцов приведены для наглядности) можно соединить в результирующую строку

(так как в общем столбце у этих строк одно и то же значение D1). Общий результат состоит из множества всех таких соединенных строк.

- Столбец DEPT# в каждой результирующей строке встречается один раз, а не два.

- Поскольку в таблице ЕМР нет значения D3 в поле DEPT# (т.е. нет служащих, работающих в отделе D3), то нет и результирующих строк со значением D3 в этом поле, хотя и есть строка со значением D3 в таблице DEPT.

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