- •2. Перечислите основные функции системы управления базами данных и охарактеризуйте их.
- •Управление данными во внешней памяти;
- •Управление буферами оперативной памяти;
- •Управление транзакциями;
- •Ведение журнала изменений в бд;
- •Поддержка языков бд.
- •Обеспечение целостности и безопасности бд.
- •3. Охарактеризуйте типовую организацию системы управления базами данных.
- •4. Раскройте сущность понятия «модель представления данных». Перечислите и опишите виды моделей данных.
- •6. Перечислите и охарактеризуйте основные виды связей реляционной базы данных. Приведите примеры. Перечислите достоинства связывания таблиц.
- •7. Напишите, как вы понимаете контроль целостности связей. Опишите действие контроля целостности при манипулировании данными в таблицах на примере связи 1:м.
- •Ввод новых записей.
- •16. Опишите функции преобразования символов в строке (lower, upper, initcap), строковые функции (lpad, ltrim, substr, instr, length и др.), функции работы с числами. Приведите примеры.
- •17. Опишите функции преобразования типов данных: cast, convert; и функции агрегирования. Приведите примеры.
- •18. Опишите назначение ключевых слов group by, having, order by оператора select. Приведите примеры использования указанных ключевых слов.
- •19. Вложенный подзапрос. Перечислите и дайте характеристику видам вложенных подзапросов. Приведите примеры. Опишите использование операторов any, all с операторами сравнения.
- •20. Перечислите и охарактеризуйте команды, предназначенные для модификации данных: вставка, обновление, удаление. Приведите примеры.
19. Вложенный подзапрос. Перечислите и дайте характеристику видам вложенных подзапросов. Приведите примеры. Опишите использование операторов any, all с операторами сравнения.
Вложенный подзапрос - это подзапрос, заключенный в круглые скобки и вложенный в WHERE (HAVING) фразу предложения SELECT. Вложенный подзапрос может содержать в своей WHERE (HAVING) фразе другой вложенный подзапрос и т.д.
Назначение вложенных подзапросов состоит в том, чтобы при отборе строк таблицы, сформированной основным запросом, можно было использовать данные из других.
Виды вложенных подзапросов: простые и коррелированные вложенные подзапросы.
Простые вложенные подзапросы обрабатываются системой "снизу вверх". Первым обрабатывается вложенный подзапрос самого нижнего уровня. Множество значений, полученное в результате его выполнения, используется при реализации подзапроса более высокого уровня и т.д.
Коррелированные вложенные подзапросы обрабатываются системой в обратном порядке. Сначала выбирается первая строка рабочей таблицы, сформированной основным запросом, и из нее выбираются значения тех столбцов, которые используются во вложенном подзапросе (вложенных подзапросах). Если эти значения удовлетворяют условиям вложенного подзапроса, то выбранная строка включается в результат. Затем выбирается вторая строка и т.д., пока в результат не будут включены все строки, удовлетворяющие вложенному подзапросу (последовательности вложенных подзапросов).
Они включаются в WHERE (HAVING) фразу с помощью условий IN, EXISTS или одного из условий сравнения ( = | <> | < | <= | > | >= ):
• подзапросы, не возвращающие ни одного или возвращающие несколько значений, начинаются с IN или операторов сравнения и содержат ключевые слова ANY или ALL;
• подзапросы, возвращающие единственное значение, начинаются с оператора сравнения;
• подзапросы, представляющие собой проверку на существование данных, начинаются с EXISTS.
Простые вложенные подзапросы.
Простые вложенные подзапросы используются для представления множества значений, исследование которых должно осуществляться в каком-либо предикате IN. Оператор IN означает равенство любому из значений, полученных во внутреннем запросе.
Например, нужно выдать название поставщиков книг автором которых является Достоевский.
SELECT Название
FROM Поставщики
WHERE Код_поставщика IN
(SELECT DISTINCT Код_поставщика
FROM Книги
WHERE Автор = ‘Достоевский’);
Система выполняет прежде всего вложенный подзапрос. Этот подзапрос выдает множество уникальных кодов поставщиков, которые поставили книги заданного автора. Затем будет выполнен внешний запрос, результатом которого будут название этих поставщиков.
В подобных запросах можно использовать не только оператор IN, но и операторы сравнения (=,<>, <=, <, >= или >), однако, если вложенный подзапрос возвращает более одного значения и не используется оператор IN, будет возникать ошибка.
Коррелированные вложенные подзапросы.
Например, нужно выдать Код_заказа и Дату_заказа заказчика с именем Чайка Д.Л.
SELECT Код_заказа, Дату_заказа
FROM Заказы
WHERE ‘Чайка Д.Л.’ IN
(SELECT Имя
FROM Заказчики
WHERE Код_заказчика = Заказы.Код_заказчика);
Такой подзапрос отличается тем, что вложенный подзапрос не может быть обработан прежде, чем будет обрабатываться внешний подзапрос, поскольку вложенный подзапрос зависит от значения Заказы.Код_заказчика, а оно изменяется по мере того, как система проверяет различные строки таблицы Заказы.
При использовании в подзапросах с операторами сравнения операторы ANY, ALL необходимо учитывать, что: = ANY ‑ равно любому полученному значению. Соответствует логическому оператору OR.
>ANY (>=ANY) ‑ больше, (больше или равно) чем любое полученное число. Эквивалентно > (>=) для самого меньшего полученного числа.
<ANY (<=ANY) ‑ меньше, (меньше или равно) чем любое полученное число. Эквивалент < (<=) для самого большего полученного числа.
=ALL ‑ равно всем полученным значениям.
>ALL (>=ALL) ‑ больше, (больше или равно) чем все полученные числа. Эквивалент > (> =) для самого большего полученного числа.
<ALL (<=ALL) ‑ меньше, (меньше или равно) чем все полученные числа. Эквивалентно < (< =) самого меньшего полученного числа.