- •Недостатки файловых систем по сравнению с системами баз данных.
- •Понятие системы и информационной системы. Классификация информационных систем.
- •3. По выполняемым функциям и решаемым задачам:
- •4. По масштабу и интеграции компонент:
- •5. По характеру обработки информации на различных уровнях управления предприятием:
- •6. По уровням управления:
- •7. Классификация ис по функциональному признаку:
- •12. Классификация по сфере применения
- •13. По степени распределённости ис отличают:
- •Понятие системы баз данных и ее упрощенная схема.
- •Понятия интегрированности и разделяемости данных, независимости от данных и целостности данных применительно к системам баз данных.
- •Жизненный цикл базы данных. Этапы концептуального, логического и физического проектирования базы данных.
- •Понятия модели и модели данных. Логические модели данных.
- •Иерархическая модель данных, ее достоинства и недостатки.
- •Сетевая модель данных, ее достоинства и недостатки.
- •Реляционная модель данных. Ее отличие от графовых моделей (иерархической и сетевой).
- •Основные понятия реляционной алгебры.
- •Определение сущности в реляционной алгебре. Свойства сущности.(сложный, если честно)
- •Понятия возможного, первичного и альтернативного ключей.
- •Операции реляционной алгебры. Базовые реляционные операции.
- •Теоретико-множественные реляционные операции. Свойства реляционной операции декартова произведения.
- •Специальные реляционные операции.
- •Реляционные операции селекции и проекции.
- •Операция выборки
- •Операция проекции
- •Реляционная операция соединения. Ее разновидности.
- •Реляционная операция естественного соединения и ее свойства. Естественное соединение
- •Реляционная операция деления.
- •Примитивные и не примитивные реляционные операции. Оператор соединения
- •Оператор пересечения
- •Оператор деления
- •21. Типы связей между сущностями.
- •22. Связь между сущностями типа «один ко многим». Свойства внешнего ключа.
- •23. Связь между сущностями типа «многие ко многим». Ее преобразование при переходе к физической модели. Связи "многие ко многим"
- •24.Нормализация данных. Первая нормальная форма.
- •1 Нормальня форма
- •25.Нормализация данных. Вторая нормальная форма.
- •2 Нормальная форма
- •Нормализация данных. Третья нормальная форма и нормальная форма Кодда-Бойса.
- •27.Нормализация данных. Четвертая и пятая нормальные формы.
- •28. Целостность и непротиворечивость данных.
- •29.Основные и дополнительные правила ссылочной целостности.
- •30. Язык sql: основные команды манипулирования данными.
- •31. Язык sql: вставка новой записи в таблицу.
- •32. Язык sql: удаление записей из таблицы.
- •33. Язык sql: использование операторов in, between, like и ключевого слова null в условиях отбора данных.
- •34. Язык sql: обновление записей в таблице.
- •35. Язык sql: выборка данных из таблиц. Использование агрегатных функций и вычисляемых полей.
- •36. Язык sql: группировка строк набора данных.
- •Язык sql: соединение таблиц (внутреннее и внешнее).
- •Язык sql: использование подзапросов.
- •Язык sql: операторы exists, any, all в командах с подзапросом.
- •Язык sql: основные команды определения данных.
- •Язык sql: создание и использование представлений (просмотров) и индексов.
- •Назначение и функции субд.
- •Управление словарем данных и обеспечение безопасности данных в субд.
- •Обеспечение целостности данных в субд.
- •Управление многопользовательским доступом к данным в субд.
- •Управление резервным копированием и восстановлением данных в субд.
- •Механизм тиражирования (репликации) данных в субд.
- •Блочная репликация
- •Физическая репликация
- •Логическая репликация
- •Типы баз данных.
- •Иерархическая база данных, структура иерархических баз данных
- •Сетевая база данных, структура сетевых баз данных
- •Реляционные базы данных, структура реляционных баз данных
- •Особенности реляционных баз данных
- •Распределенные базы данных. Двенадцать правил Дейта для распределенных баз данных.
- •Системы «клиент/сервер».
- •Системы поддержки принятия решений.
- •Классификации
- •Структура
- •Преимущества
- •52. Хранилища данных. Их отличия от операционных баз данных
- •53 Подготовка данных применительно к хранилищам данных
- •54 Магазины (витрины) данных. Банки оперативных данных Красный – в рот я ебал такие вопросы
- •55 Многомерные базы данных. Разработка (извлечение) данных
- •ERwin: сильные и слабые связи между сущностями. Операции прямого и обратного проектирования.
- •Операции прямого и обратного проектирования
- •Sql Server: курсоры и триггеры, их виды, процесс использования.
Язык sql: использование подзапросов.
Подзапрос - очень мощное средство языка SQL. Он позволяет строить сложные иерархии запросов, многократно выполняемые в процессе построения результирующего набора или выполнения одного из операторов изменения данных ( DELETE , INSERT , UPDATE ).
Подзапрос это обычный aql запрос который мы можем использовать в другом нашем основном запросе и их еще часто называют вложенными запросами. С помощью sql можно вкладывать запросы друг в друга.
Условно подзапросы иногда подразделяют на три типа, каждый из которых является сужением предыдущего:
- табличный подзапрос, возвращающий набор строк и столбцов;
- подзапрос строки, возвращающий только одну строку, но, возможно, несколько столбцов (такие подзапросы часто используются во встроенном SQL);
- скалярный подзапрос, возвращающий значение одного столбца в одной строке.
Подзапрос позволяет решать следующие задачи:
- определять набор строк, добавляемый в таблицу на одно выполнение оператора INSERT ;
- определять данные, включаемые в представление, создаваемое оператором CREATE VIEW ;
- определять значения, модифицируемые оператором UPDATE ;
- указывать одно или несколько значений во фразах WHERE и HAVING оператора SELECT ;
- определять во фразе FROM таблицу как результат выполнения подзапроса ;
- применять коррелированные подзапросы. Подзапрос называется коррелированным, если запрос, - содержащийся в предикате, имеет ссылку на значение из таблицы (внешней к данному запросу), которая проверяется посредством данного предиката.
Простым примером использования подзапроса может служить следующий оператор:
SELECT * from tbl1
WHERE f2=(SELECT f2 FROM tbl2
WHERE f1=1);
В данном операторе подзапрос всегда должен возвращать единственное значение, которое будет проверяться в предикате. Если подзапрос вернет более одного значения, то СУБД выдаст сообщение об ошибке выполнения SQL-оператора.В случае если подзапрос не выберет ни одной строки, то предикат будет равен UNKNOWN, что большинством СУБД интерпретируется как FALSE.
Подзапрос может быть указан как в предикате, определяемом фразой WHERE, так и в предикате по группам, определяемом фразой HAVING.
Например:
SELECT avg_f1, COUNT (f2) from tbl1
GROUP BY avg_f1
HAVING avg_f1 >(SELECT f1 FROM tbl1
WHERE f3='a1');
Язык sql: операторы exists, any, all в командах с подзапросом.
.
В случае, если подзапрос возвращает множество результатов, для подобных запросов необходимо использовать соответствующие операторы сравнения:
IN – эквивалетно значению любого элемента из подзапроса
ANY – сравнивает значение со всеми значениями из подзапроса, возвращая true если сравнение верно для любого ОДНОГО значения из списка
ALL – сравнивает значение со всеми значениями из подзапроса, возвращая true если сравнение верно для ВСЕХ значений из списка
Разберем свойства и методы применения каждого из операторов по отдельности.
SELECT *
FROM emp
WHERE job in (SELECT job
FROM emp
WHERE sal > 1000)
Оператор IN – опеспечивает сравнения столбца job со всеми значениями из подзапроса. В результате данного примера выйдет столько строк, сколько будет совпадений столбца со значениями подзапроса.
Оператор ANY, как уже отмечалось ANY сравнивает значение со всеми значениями из подзапроса. При этом зависимости от знака равенства смысл оператора изменяется. Таким образом, если использовать знак равенства вместе с ANY у нас получиться эквивалент оператору IN. При этом если будет применяться знак < и ANY то будет иметь смысл меньше минимального значения из списка. Если же > и ANY то будет иметь смысл больше максимального значения из списка.
Оператор ALL, как уже отмечалось ALL сравнивает значение со всеми значениями из подзапроса. При этом зависимости от знака равенства смысл оператора изменяется. При этом если будет применяться знак < и ALL то будет иметь смысл меньше минимального значения из списка. Если же > и ALL то будет иметь смысл больше максимального значения из списка.
EXISTS
Оператор EXISTS берет подзапрос, как аргумент, и оценивает его как верный, если подзапрос возвращает какие-либо записи и неверный, если тот не делает этого. То есть если наш подзапрос возвращает хотя бы одну строку то - это выражение принимается за истину.
Читателю может показаться что это функция редко используемая - но такое мнение может сложится только при небольшом опыте общения с коллегами из департамента маркетинга. Иногда маркетологи придумывают ужасные условия и хотят тут же получить результат. EXIST поможет вам справиться как и с ужасными условиями так и с быстротой получение результата. Так как использование оператора EXIST увеличивает производительность выполнения отчета.