- •А рхитектура базы данных. Физическая и логическая независимость (трехуровневая модель ansi)
- •Пользователи баз данных. Основные функции группы администратора бд
- •Описание процесса прохождения пользовательского запроса
- •Перечислить классы субд. Какие возможности обеспечивает использование профессиональных субд
- •Этапы разработки аис
- •Модели данных
- •Режимы работы с базой данных
- •Архитектура клиент-сервер: структура типового интерактивного приложения
- •Инфологическое моделирование. Er - модель.
- •Системный анализ предметной области
- •Этапы жизненного цикла ис. Этапы проектирования бд
- •Алгоритм перехода от er к реляционной модели данных.
- •Даталогическое проектирование, корректная схема бд.
- •Последовательность нормальных форм. Их свойства. Первая нормальная форма (1нф), вторая нормальная форма (2нф)
- •Третья нормальная форма (3нф), нормальная форма Бойса-Кодда (бк нф)
- •Сурбд Oracle. Конфигурации Oracle. Архитектура Oracle (физический и логический уровень)
- •Субд Oracle. Табличные пространства. Сегменты, экстенты и блоки данных.
- •Объекты бд Oracle. Создание таблиц. Типы данных. Пользовательские типы данных
- •Субд Oracle. Создание индексов.
- •Субд Oracle. Создание представлений
- •Субд Oracle. Создание последовательностей
- •Субд Oracle. Определенные пользователем типы данных. Создание синонимов
- •Субд Oracle. Создание ограничений
- •Субд Oracle. Создание табличных пространств
- •Реляционная алгебра. Теоретико-множественные операции реляционной алгебры. Основные операции
- •Реляционная алгебра. Специальные операции.
- •Язык sql. История развития sql. Структура sql. Типы данных.
- •Операторы описания данных (ddl).
- •Операторы манипулирования данными (dml)
- •Основные понятия и конструкции pl/sql. Архитектура pl/sql
- •Язык запросов dql. Оператор выбора select.
- •Агрегатные функции в операторе выбора. Вложенные запросы.
- •Поддерживаемый набор символов pl/sql. Арифметические операторы и операторы отношения
- •Предикаты раздела where
- •Структура программы и переменные pl/sql
- •Null-значения, трехзначная логика
- •Pl/sql. Условные операторы if
- •Pl/sql. Циклы
- •Pl/sql. Курсоры. Курсорный цикл for.
- •Pl/sql. Хранимые процедуры
- •Pl/sql. Функции
- •Pl/sql. Триггеры
Агрегатные функции в операторе выбора. Вложенные запросы.
Агрегатные функции - позволяют вычислять обобщенные групповые значения с необходимой предварительной группировкой.
При группировке все множество кортежей отношения разбивается на группы, в которых собираются кортежи, имеющие одинаковые значения атрибутов, которые заданы в списке группировки. Агрегатные функции вычисляют одиночное значение для всей группы таблицы.
COUNT – количество строк или непустых полей (числовые и символьные поля)
SUM – сумма выбранных значений поля (числовые поля)
AVG – среднеарифметические выбранных значений поля (числовые поля)
MIN/MAX – наименьшее/наибольшее выбранных значений поля (числовые и символьные поля)
SELECT id_topic, COUNT(id_topic) FROM posts
GROUP BY id_topic
HAVING COUNT(id_topic) > 2;
Кроме того, агрегатные функции можно использовать без группировки, тогда все отношение рассматривается как одна группа, для которое вычисляется значение.
SELECT COUNT(id_topic) FROM posts;
Мы не можем использовать агрегатные функции в предложении WHERE, потому что предикаты оцениваются в терминах одиночной строки, а агрегатные функции — в терминах групп строк.
Вложенные запросы.
С помощью SQL можно вкладывать запросы друг друга. Обычно внутренний запрос генерирует значение, которое проверяется в предикате внешнего запроса (в предложении where или having), определяющего, верно оно или нет. Совместно с подзапросом можно использовать предикат EXISTS, который возвращает истину, если вывод подзапроса не пуст.
R1 = (ФИО, Дисциплина, Оценка); R2 = (ФИО, Группа); R3 = (Группы, Дисциплина )
Список тех, кто сдал все положенные экзамены (вложенный – сколько надо экзаменов, внешний – сколько сдал): SELECT ФИО FROM R1 WHERE Оценка > 2 GROUP BY ФИО
HAVING COUNT (*) = (SELECT COUNT (*) FROM R2, R3
WHERE R2.Группa = R3.Группа AND ФИО = R1.ФИО)
В стандарте SQL92 операторы сравнения расширены до многократных сравнений с использованием ключевых слов ANY и ALL. Это расширение используется при сравнении значения определенного столбца со столбцом данных, возвращаемым вложенным запросом.
ANY - предикат будет истинен, если хотя бы для одного значения из подзапроса предикат сравнения истинен.
ALL - предикат сравнения был бы истинен при сравнении со всеми строками подзапроса.
Например, найдем студентов, которые сдали все экзамены на оценку не ниже чем «хорошо». Работаем с той же базой «Сессия», но добавим к ней еще одно отношение R4, которое характеризует сдачу лабораторных работ в течение семестра:
Select R1.ФИО From R1 Where 4 > = All (Select Rl.Оценка From Rl as R11 Where R1.Фио = R11.Фио)
Поддерживаемый набор символов pl/sql. Арифметические операторы и операторы отношения
В PL/SQL действует соглашение, что все символы приводятся к верхнему регистру, поэтому эти объявления одинаковы:
A int;
a int;
Запрещено использовать зарезервированные системой имена встроенных функций и пакетов. (например, нельзя создать таблицу с именем TABLE). В конце оператора ставится точка с запятой, либо слеш.
Операторы — это синтаксические конструкции языка, которые предназначены для выполнения определенных действий.
Арифметические: +… - … * … / … ** (возведение в степень)
Операторы отношения: = … < … > … <= … >= ….< > / != / ~= / ^= (неравно)