Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД - ответы госы.doc
Скачиваний:
52
Добавлен:
11.05.2015
Размер:
238.08 Кб
Скачать
  1. Выборка данных. Основные предложения команды select.

Обязательные:

SELECT <список полей>

FROM <источник данных>

Необязательные:

WHERE <условия выборки>

GROUP BY <условия группировки>

HAVING <условия фильтрации групп>

LIMIT <количество>

ORDER BY <условие сортировки>

Count – количество; min, max; avg – среднее значение; sum – сумма.

Пример:

SELECT f1, f2

FROM t1

WHERE f3 >10

Выбирает из таблицы те строки, в которых значение атрибута f3>10 и выводит для этих строк только атрибуты f1, f2.

SELECT count(*)

FROM t1

WHERE f3 >10

Возвращает количество строк, удовлетворяющих заданному условию.

  1. Последовательность обработки предложений команды select.

  • Первым всегда обрабатывается предложение FROM. Оно описывает источник данных – набор таблиц, содержащих запрашиваемые данные. В результате обработки в рабочем буфере системы создается неименованная временная таблица, которую мы будем называть далее F-таблицей. С концептуальной точки зрения она представляет собой расширенное прямое произведение таблиц, указанных после ключевого слова FROM.

  • Необязательные предложения WHERE, GROUP BY, HAVING, если они использованы в команде, обрабатываются в указанном порядке после предложения FROM. В результате обработки в рабочих буферах системы создаются неименованные временные таблицы, которые мы будем называть W-, G- и H-таблицами соответственно. Каждая из них является преобразованием таблицы предыдущего уровня.

  • W-таблица содержит только те строки F-таблицы, на которых предикат предложения WHERE принял значение TRUE.

  • G-таблица представляет собой F- или W-таблицу, строки которой собраны в группы с одинаковыми наборами значений в столбцах, указанных после ключевого слова GROUP BY.

  • H-таблица включает только такие группы строк из G-таблицы, на которых предикат предложения HAVING принял значение TRUE.

  • Выходная таблица запроса является результатом обработки предложения SELECT. В простейшем случае её можно представлять себе как реляционную проекцию F-, W-, G- или H-таблицы на столбцы, указанные после ключевого слова. На самом деле это неточно, так как элементами целевого списка запроса могут быть не только имена столбцов источника, но и выражения, агрегатные функции и т.п.

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

  • В процессе обработки оператора SELECT никаких изменений в физической базе данных не происходит. Система манипулирует копиями базовых таблиц в своих рабочих буферах.

  1. Понятие транзакции. Свойства транзакций.

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

Свойства транзакций (ACID):

  1. Atomicity – атомарность – все транзакции являются атомарными, то есть либо выполняются все обновления в транзакции, либо ни одного.

  2. Consistency – согласованность – транзакции переводят БД из одного непротиворечивого состояния в другое без обязательной поддержки непротиворечивости в промежуточных точках.

  3. Isolation – изолированность – на логическом уровне транзакции изолированы одна от другой. Это означает, что если будет запущено несколько параллельно работающих транзакций, результаты любой операции обновления, выполняемые отдельной транзакцией, будут скрыты от других транзакций до тех пор, пока она не будет зафиксирована. Различные СУБД поддерживают различные уровни изолированности.

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