
- •1.1. Архитектура бд
- •2. Тема 2. Системы управления бд (субд). Выбор систем управления бд. Функции субд.
- •3.1. Жизненный цикл бд. Этапы жц бд.
- •3.1.1. Оценка работы и поддержка б.Д. Производится оценка с точки зрения выполнения требований пользователей. В случае необходимости в систему вносятся изменения.
- •3.1.1.1. Документальные системы
- •3.1.1.2.Обобщенная функциональная структура дипс.
- •3.1.1.3. Коммерческие б.Д.
- •3.1.1.4. Коммерческие базы данных.
- •3.1.1.5. Распределенная обработка данных. Распределенные базы данных
- •3.2. Литература
- •4.1. Уровни.
- •4.2. Этапы проектирования.
- •4.3.Трехуровневая архитектура организации бд
- •4.4. Этапы проектирования: исследование проблемы, этап анализа, проектирование, реализация, внедрение, сопровождение.
- •4.5. Проектирование бд.
- •4.5.1. Этапы проектирования.
- •Тема 5. Средства и методы проектирования бд. Методика диаграмм взаимосвязей между объектами erd-диаграммы. Использование case-технологий при проектировании бд.
- •5.1. Базовые понятия.
- •5.2. Case - приложение eRwin
- •5.2.1. Объекты в eRwin
- •5.2.2. Связь в Erwin
- •6.1. Правила отношений между сущностями. Определение ключей
- •6.2. Нормализация бд. Денормализация бд.
- •Тема 7. Реляционная модель бд. Таблицы. Ограничения целостности данных. Реляционная алгебра. Реляционное исчисление.
- •Тема 8. Организация процессов обработки данных в бд. Обработка транзакций
- •Понятие транзакции.
- •9.1.1. Операторы определения данных ddl
- •9.1.2. Операторы манипулирования данными Data Manipulation Language dml
- •9.1.3. Язык запросов Data Query language (dql)
- •9.1.4. Средства администрирования данных
- •9.1.5. Программный sql
- •9.2. Оператор выборки данных select, использование условий поиска, сортировка результатов запроса. Синтаксис оператора select.
- •C.10. Тема 10. Простые запросы и правила их выполнения. Особенности многотабличных запросов. Объединение таблиц. Использование вложенных запросов
- •10.1. Простые запросы и правила их выполнения
- •10.2. Особенности многотабличных запросов
- •10.3. Объединение таблиц
- •10.4. Использование вложенных запросов
- •Тема 11. Внесение изменений в бд. Добавление информации в бд, удаление данных, изменение существующих данных.
- •C.11.1.Внесение изменений в базу данных
- •Удаление данных
- •11.2. Изменение существующих данных
- •12.1. Специальные аспекты работы с бд. Процедура индексирования.
- •12.2. Триггеры
- •12.2.1. Ключевые слова и параметры
- •12.2.2. Компоненты триггера
- •12.2.3.Типы триггеров.
- •12.2.4.Включение и выключение триггеров.
- •C.12.2.5. Удаление триггера
- •C.12.2.6. Корреляционные имена
- •12.3. Процедуры и функции
- •12.4. Функция
- •12.5.Курсоры.
- •Тема 13. Физическая организация бд на примере Oracle9i. Организация табличных пространств, журналов транзакций. Серверные процессы. Структуры памяти и взаимодействие между процессами.
- •13.1. Архитектура бд.
- •14.1. Системы обработки транзакций oltp и olap - технологий
- •14.2. Хранилища данных. Многомерные хранилища данных
- •14.3. Методы аналитической обработки (olap)
- •14.3.1. Хранилища данных
- •14.3.2. Причины внедрения информационных систем на основе хранилищ данных
- •Литература
- •14.5. Olap в России
- •Тема 15. Основы фракталов. Фрактальная математика. Фрактальные методы в архивации. Управления складами данных
- •15.1. Понятие "фрактал"
- •15.2. Классификация фракталов
- •15.2.1. Геометрические фракталы
- •15.2.2. Алгебраические фракталы
- •C.15.2.3. Стохастические фракталы
- •C.15.3. Системы итерируемых функций
- •15.4. Фрактальное сжатие
- •15.5. История фрактального сжатия
- •15.6. Идея фрактальной архивации
- •15.7. Сравнение с jpeg
- •15.8. Литература
- •Темы рефератов
C.10. Тема 10. Простые запросы и правила их выполнения. Особенности многотабличных запросов. Объединение таблиц. Использование вложенных запросов
Лекции: 2 часа
10.1. Простые запросы и правила их выполнения
Часто возникает необходимость в выборе информации из нескольких таблиц - одним из вариантов осуществления такого вывода является объединение результатов нескольких запросов, выполняющихся независимо друг от друга.
Для размещения нескольких запросов вместе и объединения их вывода используют предложение UNION. Предложение UNION объединяет вывод двух или более SQL запросов в единый набор строк и столбцов. Например, для получения списка всех студентов и преподавателей, фамилии которых заключены между буквами 'К' и 'С', можно воспользоваться запросом:
SELECT SFAM, SIMA, SOTCH FROM STUDENTS
WHERE SFAM BETWEEN 'K' AND 'C' UNION
SELECT TEAM, TIMA, TOTCH FROM TEACHERS WHERE TFAM BETWEEN 'К' AND 'С';
Что заголовки столбцов исключены, потому что ни один из столбцов, выведенных объединением, не был извлечен непосредственно из только одной таблицы, следовательно, все эти столбцы вывода не имеют никаких имен. Обратите внимание на то, что только последний запрос заканчивается точкой с запятой - отсутствие точки с запятой дает понять SQL, что имеется еще один или более запросов.
Когда два или более запроса подвергаются объединению, их столбцы вывода должны быть совместимы для объединения - это означает для каждого запроса необходимость включения одинакового числа столбцов в том же порядке, что и первый, второй, третий, и т. д., и при этом должна присутствовать совместимость типов. Например, символьные поля должны иметь одинаковое число символов. Другое ограничение на совместимость - это когда пустые значения NULL запрещены в любом столбце объединения, тогда эти значения необходимо запретить и для всех соответствующих столбцов в других запросах объединения. Наконец, нельзя использовать агрегатные функции в предложении SELECT запроса в объединении.
Здесь имеется дублирование значений SFAM = Поляков, потому что не указано, чтобы SQL устранил дубликаты. Однако, при использовании UNION в комбинации этого запроса с ему подобным в таблице преподавателей, избыточная информация будет устранена
SELECT SFAM FROM STUDENTS UNION
SELECT TFAM FROM TEACHERS;
Иногда возникает необходимость вставлять константы и выражения в предложения SELECT, используемые с UNION, что является полезной возможностью. Очевидно, что используемые константы и выражения должны встречать совместимые типы данных. Это свойство полезно, например, чтобы отобразить комментарии, указывающие на то, какой запрос вывел данную строку. Модифицируем предыдущий запрос следующим образом:
SELECT 'Студент' SFAM FROM STUDENTS UNION
SELECT 'Преподаватель ' TFAM FROM TEACHERS;
вывод этого запроса следующий:
Студент Гриценко
Студент Котенко
Студент Нагорный
Преподаватель Викулина
Преподаватель Костыркин
Преподаватель Казанко
Возникла необходимость в добавлении дополнительных пробелов в строку 'Студент', чтобы сделать ее совпадающей по длине со строкой 'Преподаватель'.
Теперь необходимо оговорить то, что данные многочисленных запросов будут выводиться в каком-то особом порядке. Для этого можно использовать предложение ORDER BY, чтобы упорядочить вывод из объединения, аналогично тому, как это делается в однотабличных запросах.
Допускается упорядочивать вывод с помощью нескольких полей, одно внутри другого и указывать фразы ASC или DESC для каждого, точно так же, как это делается для одиночных запросов. Необходимо заметить, что номер 2 в предложении ORDER BY указывает, какой столбец из предложения SELECT будет упорядочен, т.к. столбцы объединения - это столбцы вывода, а значит, они не имеют имен и должны определяться по номеру.
Кроме того, при выполнении объединения более чем двух запросов, можно использовать круглые скобки для того, чтобы определить порядок оценки.
Это может принципиально повлиять на результаты запроса, так как объединение осуществляется сначала внутри скобок, а потом - снаружи. Таким способом, например, запросы могут быть скомбинированы для удаления одних дубликатов и оставления других.