
- •Оглавление
- •Раздел 4. Проектирование реляционных баз данных. 113
- •Раздел 5. Определение структур данных и обслуживание баз данных. 114
- •Введение
- •Раздел 1. Основы теории баз данных Тема 1: Базы данных и информационные системы. Основные понятия.
- •Понятия базы данных и информационные системы.
- •Архитектура информационной системы.
- •Понятия базы данных и информационные системы.
- •Архитектура информационной системы.
- •Тема 2: Банки данных. Системы управления базами данных.
- •Банки данных. Основные компоненты системы.
- •Классификация субд.
- •Банки данных. Основные компоненты системы.
- •Классификация субд.
- •Раздел 2. Реляционная алгебра Тема1: Реляционная алгебра. Классические операции теории множеств.
- •Тема 2: Специальные операции теории множеств.
- •Раздел 3. Модели данных. Тема 1: Классические модели данных.
- •Сетевая модель представления данных.
- •Реляционная модель представления данных.
- •Элементы реляционной модели
- •Тема 2: Связывание таблиц. Целостность связей.
- •Основные виды связи таблиц.
- •Контроль целостности связей.
- •Характеристика видов связей
- •Раздел 4. Проектирование реляционных баз данных. Тема 1: Основные принципы проектирования баз данных.
- •2. Избыточное дублирование данных и аномалии
- •3. Формирование исходного отношения.
- •Тема 2: Метод нормальных форм
- •2. Выявление зависимостей между атрибутами
- •3. Нормальные формы
- •Тема 3: Метод сущность-связь. Этапы проектирования.
- •2.Этапы проектирования
- •3.Пример проектирования бд учебной части.
- •Тема 4: Правила формирования отношений.
- •2. Формирование отношений для связи 1:м
- •3. Формирование отношений для связи м:м
- •Раздел 5. Определение структур данных и обслуживание баз данных. Тема 1: Среда sql*Plus.
- •Функции.
- •2. Основные типы данных
- •3. Арифметические выражения
- •4. Операторы сравнения
- •5. Обработка неопределенных значений
- •6. Функции
- •7. Форматные модели
- •Тема 2: Структуры данных. Создание таблиц.
- •Создание таблиц.
- •3. Создание таблиц
- •Тема 3: Изменение таблиц и ограничений
- •Добавление и изменение столбца.
- •Изменение ограничений.
- •Удаление таблицы. Изменение имени таблицы и добавление комментариев.
- •Тема 4: Операции с ограничениями.
- •Тема 5: Манипулирование данными.
- •1. Вставка новых строк в таблицу
- •2. Копирование строк из другой таблицы
- •3. Обновление строк в таблице
- •4. Удаление строк из таблицы
- •Тема 6: Команда запроса данных. Простой запрос.
- •Тема 7: Сложные запросы.
- •Использование функций для работы с датами при организации запроса.
- •Тема 8: Группировка строк в запросе
- •2. Группы внутри групп.
- •3. Предложение having.
- •Тема 9: Подзапросы.
- •Подзапрос. Его назначение и синтаксис.
- •Однострочные и многострочные подзапросы.
- •Подзапрос. Его назначение и синтаксис.
- •2.Однострочные и многострочные подзапросы.
- •Тема 10: Выборка данных из нескольких таблиц.
- •2. Псевдонимы таблиц.
- •3. Дополнительные условия поиска.
- •4. Внешние соединения.
- •Select таблица.Столбец, таблица.Столбец
- •Тема 11: Создание, изменение и удаление последовательностей.
- •Создание последовательности.
- •2. Изменение и удаление последовательности.
- •3. Генерация значений последовательности.
- •Тема 12: Создание, изменение и удаление представлений.
- •Представления. Создание представлений.
- •Изменение и удаление представлений.
- •Представления. Создание представлений.
- •Изменение и удаление представлений.
- •Тема 13: «Индексы»
- •Понятие индекса. Необходимость использования.
- •Создание и удаление индексов.
- •1. Понятие индекса. Необходимость использования.
- •2. Создание и удаление индексов.
- •Тема 14: «Создание отчетов»
- •2. Форматирование number колонок.
- •3. Оформление Отчета пробелами и итоговыми строками.
- •4. Вычисление итоговых строк при изменении значения колонки.
- •5. Определение заголовков.
- •6. Установка размеров страницы
- •7. Сохранение и Печать Результатов Запроса
- •Тема 15: Управление транзакциями
- •Практикум Раздел 3. Реляционная алгебра.
- •Раздел 4. Проектирование реляционных баз данных.
- •Раздел 5. Определение структур данных и обслуживание баз данных.
- •Библиографический список
2. Псевдонимы таблиц.
Для различения одноименных столбцов из разных таблиц используются префиксы в виде имен таблиц. Использование префиксов в виде имен таблиц увеличивает производительность запроса. Одноименные столбцы из разных таблиц можно различать по их псевдонимам. Для разрешения ситуации, когда имена таблиц громоздки или совпадают, также используют псевдонимы таблиц.
Пример 2: Вывод наименования клиента, номера региона и названия региона для всех клиентов. Используются псевдонимы столбцов, а для упрощения ссылок на таблицы – псевдонимы таблиц.
SELECT K. name “Наимен клиента”, R.id_region “Номер региона”, R. name “Назван региона”
FROM klienti K, region R
WHERE R.id_region = K.id_region;
3. Дополнительные условия поиска.
Помимо соединения в предложении WHERE можно задавать и другие критерии для ограничения получаемых в запросе строк. Поскольку соединение необходимо для подбора соответствий, дополнительное условие добавляется с помощью оператора AND.
Пример 3: Вывод номера отдела и названия отдела сотрудника, в котором работает Кошкина Н.
SELECT E.fam_cotr, E.id_otdel, S .name_otdel
FROM Emp E, Sveden S
WHERE E.id_otdel = S.id_otdel AND INITCAP(E.fam_cotr = ‘Кошкина’);
Пример 4: Вывод фамилии, названия региона и процента комиссионных всех служащих, получающих комиссионные.
SELECT E.fam_cotr , R. name “Назван региона”, S.commission_pct
FROM Emp E, region R, sdelki S
WHERE E.id_cotr = R.id_cotr
AND R.id_cotr = S.id
AND S.commission_pct>0;
4. Внешние соединения.
Внешнее соединение используется для выборки строк, не удовлетворяющих обычным условиям соединения. Оператором внешнего соединения является знак плюс, заключенный в скобки (+). Этот оператор указывается с той стороны, где нет значения, по которому можно было бы произвести соединение.
Синтаксис
Select таблица.Столбец, таблица.Столбец
FROM таблица1, таблица2
WHERE таблица1.столбец1 = таблица2.столбец2(+);
где:
таблица1.столбец1 = таблица2.столбец2 - условие, соединяющее таблицы (или задающее их отношение)
(+) - символ внешнего соединения; может использоваться на любой стороне условия в предложении WHERE. (+) указывается после имени таблицы, в которой нет соответствующих строк
Оператор внешнего соединения может использоваться только на одной стороне выражения, там, где недостаточно информации. Он возвращает строки таблицы, для которых в другой таблице нет соответствующей строки.
Условие, предполагающее внешнее соединение, не может использовать оператор IN и быть связанным с другими условиями с помощью оператора OR.
Пример 5: Вывод для каждого клиента его наименования, а также фамилии и идентификационного номера торгового представителя. В список включаются наименования даже тех клиентов, которые не имеют торгового представителя.
SELECT K.name, K id_klient, P.name_predstav
FROM Klienti K, Predstav P
WHERE K.id_klient = P.id_predstav (+);
Соединение таблицы с собой.
Рекурсивное соединение возникает в том случае, когда строки таблицы соединяются со строками этой же самой таблицы. При этом в предложении FROM наличие двух таблиц имитируется путем использования двух различных псевдонимов таблицы.
Пример 6: Вывод имен сотрудников и их менеджеров.
SELECT worker.last_name|| ‘works for’|| manager.last_name
FROM s_emp worker, s_emp manager
WHERE worker.manager_id==manager.id;