
- •1. Архитектура базы данных. Физическая и логическая независимость (трехуровневая модель ansi).
- •2. Описать процесс прохождения пользовательского запроса.
- •3. Модели данных.
- •4. Пользователи баз данных. Основные функции группы администратора бд.
- •3. Задание ограничений целостности при описании структуры бд и процедур обработки бд:
- •4. Первоначальная загрузка и ведение бд:
- •5. Защита данных:
- •5. Перечислить классы субд. Какие возможности обеспечивает использование профессиональных субд.
- •6. Этапы разработки аис.
- •I стадия – предпроектное обследование:
- •II стадия – проектирование:
- •III стадия – ввод системы в действие:
- •7. Режимы работы с базой данных.
- •8. Архитектура клиент-сервер: структура типового интерактивного приложения.
- •10. Реляционная алгебра. Теоретико-множественные операции реляционной алгебры. Основные операции.
- •11. Реляционная алгебра. Специальные операции.
- •12. Язык sql. История развития sql. Структура sql. Типы данных.
- •Структура sql.
- •Типы данных.
- •13. Операторы описания данных (ddl).
- •14. Операторы манипулирования данными (dml).
- •15. Язык запросов dql. Оператор выбора select.
- •16. Предикаты раздела where.
- •17. Null-значения, трехзначная логика.
- •18. Агрегатные функции в операторе выбора. Вложенные запросы.
- •19. Этапы жизненного цикла ис. Этапы проектирования бд.
- •20. Системный анализ предметной области.
- •21. Инфологическое моделирование. Er - модель.
- •22. Алгоритм перехода от er к реляционной модели данных.
- •23. Даталогическое проектирование, корректная схема бд.
- •25. Последовательность нормальных форм. Их свойства. Первая нормальная форма (1нф), вторая нормальная форма (2нф).
- •26. Третья нормальная форма (3нф).
- •27. Сурбд Oracle. Конфигурации Oracle. Архитектура Oracle (физический и логический уровень).
- •28. Субд Oracle. Табличные пространства. Сегменты, экстенты и блоки данных.
- •29. Объекты бд Oracle. Создание таблиц. Типы данных. Пользовательские типы данных.
- •30. Субд Oracle. Создание индексов.
- •31. Субд Oracle. Создание представлений.
- •32. Субд Oracle. Создание последовательностей.
- •33. Субд Oracle. Определенные пользователем типы данных. Создание синонимов.
- •Создание синонимов.
- •34. Субд Oracle. Создание ограничений.
- •35. Субд Oracle. Создание табличных пространств.
- •36. Основные понятия и конструкции pl/sql. Архитектура pl/sql.
- •37. Поддерживаемый набор символов pl/sql. Арифметические операторы и операторы отношения.
- •38. Структура программы и переменные pl/sql.
- •39. Pl/sql. Условные операторы if.
- •40. Pl/sql. Циклы.
- •41. Pl/sql. Курсоры. Курсорный цикл for.
- •42. Pl/sql. Хранимые процедуры.
- •43. Pl/sql. Функции.
- •44. Pl/sql. Триггеры.
17. Null-значения, трехзначная логика.
Кратко:
В SQL используется трехзначная логика, т.е. результат логического выражения может принимать три значения – истина (True), ложь (False) и неизвестно (NULL).
Если значение в ячейке отсутствует (ячейка пуста, не заполнена), то говорят, что значение в этой ячейке есть NULL.
Следует четко понимать, что NULL – это не ноль, это вообще не значение, это отсутствие всякого значения.
NULL в Системах управления базами данных (СУБД) — специальное значение (псевдозначение), которое может быть записано в поле таблицы базы данных (БД). NULL соответствует понятию «пустое поле», то есть «поле, не содержащее никакого значения». Введено для того, чтобы различать в полях БД пустые (визуально не отображаемые) значения (например, строку нулевой длины) и отсутствующие значения (когда в поле не записано вообще никакого значения, даже пустого).
NULL означает отсутствие, неизвестность информации. Значение NULL не является значением в полном смысле слова: по определению оно означает отсутствие значения и может иметь тип NULL или иметь любой другой тип (CREATE TABLE new_tab AS (SELECT NULL) - специальный тип null, CREATE TABLE new_table AS (SELECT 10+NULL) - тип integer). Поэтому NULL не равно ни логическому значению FALSE, ни пустой строке, ни нулю. При сравнении NULL с любым значением будет получен результат NULL, а не FALSE и не 0. Более того, NULL не равно NULL!
18. Агрегатные функции в операторе выбора. Вложенные запросы.
Применение агрегатных функций и вложенных запросов в SELECT.
В SQL добавлены дополнительные функции, которые позволяют вычислять обобщенные групповые значения. Для применения агрегатных функций предполагается предварительная операция группировки. При группировке все множество кортежей отношения разбивается на группы, в которых собираются кортежи, имеющие одинаковые значения атрибутов, которые заданы в списке группировки.
Агрегатные функции используются подобно именам полей в операторе SELECT, но с одним исключением: они берут имя поля как аргумент. С функциями SUM и AVG могут использоваться только числовые поля. С функциями COUNT, MAX и MIN могут использоваться как числовые, так и символьные поля.
!!! Нельзя использовать агрегатные функции в предложении WHERE, потому что предикаты оцениваются в терминах одиночной строки, а агрегатные функции — в терминах групп строк.
Предложение GROUP BY позволяет определять подмножество значений в особом поле в терминах другого поля и применять функцию агрегата к подмножеству. Это дает возможность объединять поля и агрегатные функции в едином предложении SELECT. Агрегатные функции могут применяться как в выражении вывода результатов строки SELECT, так и в выражении условия обработки сформированных групп HAVING. В этом случае каждая агрегатная функция вычисляется для каждой выделенной группы.
Вложенные запросы.
С помощью SQL можно вкладывать запросы внутрь друг друга. Обычно внутренний запрос генерирует значение, которое проверяется в предикате внешнего запроса (в предложении WHERE или HAVING), определяющего, верно оно или нет. Совместно с подзапросом можно использовать предикат EXISTS, который возвращает истину, если вывод подзапроса не пуст.
Предикат EXISTS (SubQuery) истинен, когда подзапрос SubQuery не пуст, то есть содержит хотя бы один кортеж, в противном случае предикат EXISTS ложен.
Предикат NOT EXISTS обратно — истинен только тогда, когда подзапрос SubQuery пуст.
В стандарте SQL92 операторы сравнения расширены до многократных сравнений с использованием ключевых слов ANY и ALL. Это расширение используется при сравнении значения определенного столбца со столбцом данных, возвращаемым вложенным запросом.
ANY в любом предикате сравнения, означает, что предикат будет истинен, если хотя бы для одного значения из подзапроса предикат сравнения истинен. ALL требует, чтобы предикат сравнения был бы истинен при сравнении со всеми строками подзапроса.