- •Недостатки файловых систем по сравнению с системами баз данных.
- •Понятие системы и информационной системы. Классификация информационных систем.
- •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: курсоры и триггеры, их виды, процесс использования.
36. Язык sql: группировка строк набора данных.
Создание групп (GROUP BY)
Группы создаются с помощью предложения GROUP BY оператора SELECT. Рассмотрим на примере.
SELECT Product, SUM(Quantity) AS Product_num FROM Sumproduct GROUP BY Product
Данным запросом мы извлекли информацию о количестве реализованной продукции в каждом месяце. Оператор SELECT приказывает вывести два столбца Product - название продукта и Product_num - расчетное поле, которое мы создали для отображения количества реализованной продукции (формула поля SUM (Quantity)). Предложение GROUP BY указывает СУБД сгруппировать данные по столбцу Product. Стоит также отметить, что GROUP BY должен идти после предложения WHERE и перед ORDER BY.
2. Фильтрующие группы (HAVING)
Так же, как мы фильтровали строки в таблице, мы можем осуществлять фильтрацию по сгруппированным данным. Для этого в SQL существует оператор HAVING. Возьмем предыдущий пример и добавим фильтрацию по группам.
SELECT Product, SUM(Quantity) AS Product_num FROM Sumproduct GROUP BY Product HAVING SUM(Quantity)>4000
Видим, что после того, как была посчитана количество реализованного товара в разрезе каждого продукта, СУБД "отсекла" те продукты, которых было реализовано меньше 4000 шт.
Как видим, оператор HAVING очень похож на оператора WHERE, однако между собой они имеют существенное отличие: WHERE фильтрует данные до того, как они будут сгруппированы, а HAVING - осуществляет фильтрацию после группировки. Таким образом, строки, которые были изъяты предложением WHERE НЕ будут включены в группу. Итак, операторы WHERE и HAVING могут использоваться в одном предложении. Рассмотрим пример:
SELECT Product, SUM(Quantity) AS Product_num FROM Sumproduct WHERE Product<>'Skis Long' GROUP BY Product HAVING SUM(Quantity)>4000
3. Группировка и сортировка
Как и при обычной выборке данных, мы можем сортировать группы после группировки оператором HAVING. Для этого мы можем использовать уже знакомый нам оператор ORDER BY. В данной ситуации его применения аналогичное предыдущим примерам. К примеру:
SELECT Product, SUM(Quantity) AS Product_num FROM Sumproduct GROUP BY Product HAVING SUM(Quantity)>3000 ORDER BY SUM(Quantity)
или просто укажем номер поля по порядку, по которому хотим сортировать:
SELECT Product, SUM(Quantity) AS Product_num FROM Sumproduct GROUP BY Product HAVING SUM(Quantity)>3000 ORDER BY 2
Видим, что для сортировки сводных результатов нам нужно просто прописать предложения с ORDER BY после оператора HAVING. Однако есть один нюанс. СУБД Access не поддерживает сортировку групп по псевдонимами колонок, то есть в нашем примере, чтобы сортировать значения, мы не сможем в конце запроса прописать ORDER BY Product_num .
Язык sql: соединение таблиц (внутреннее и внешнее).
Внутреннее (естественное) соединение таблиц
Таким способом можно соединять только таблицы, имеющие общие столбцы. При выполнении данной операции соединяются (склеиваются) только строки, имеющие общие значения в столбце связи. Как правило, таким способом соединяются таблицы, связанные отношением «один-ко-многим», а в качестве столбцов связи используются первичный ключ главной таблицы и внешний ключ подчиненной. Таким образом, те строки главной таблицы, для которых нет связанных строк в подчиненной таблице, при внутреннем соединении вообще не попадут в результат запроса.
Работа с внешним соединением таблиц (запрос OUTER JOIN)
а)выборка из декартового произведения
Начнем с примеров. Пусть требуется вывести фамилии всех студентов и их оценки. Текст запроса будет выглядеть так:
SELECT students.namest, marks.mark
FROM students, marks
WHERE students.cod_st=marks.cod_st
б)операция соединения [INNER] JOIN
Тот же самый запрос, соединяющий студентов с их оценками, будет записан несколько по-другому:
SELECT students .name st, marks.mark
FROM students JOIN marks ON students.cod_st=marks.cod_st
Внешнее соединение таблиц (операция OUTER JOIN)
При внешнем соединении, в отличие от внутреннего, в результат выборки попадают не только все связанные строки обеих таблиц, но и строки одной из таблиц (или обеих), для которых нет связанных в другой таблице. Недостающим значениям столбцов другой таблицы при этом присваивается значение NULL.
Три вида внешних соединений:
LEFT [OUTER] JOIN - левое внешнее соединение
RIGHT [OUTER] JOIN - правое внешнее соединение
FULL [OUTER] JOIN - полное внешнее соединение.
INNER JOIN : возвращает строки, когда есть совпадение в обеих таблицах. LEFT JOIN : возвращает все строки из левой таблицы, даже если в правой таблице нет совпадений.
RIGHT JOIN : возвращает все строки из правой таблицы, даже если в левой таблице нет совпадений.
Полный JOIN : он объединяет результаты как левого, так и правого внешних соединений.