- •Содержание
- •Введение
- •1.1. Основные понятия
- •1.2. Компоненты БнД
- •1.3. Классификация БнД и бд
- •1.4. Этапы проектирования бд
- •2.1. Необходимость инфологического моделирования
- •1.5. Взаимосвязь этапов проектирования бд
- •Вопросы для самоконтроля
- •Раздел 2. Проектирование баз данных. Тема 2. Инфологическое моделирование (начало)
- •2.1.1. Виды ограничений целостности
- •2.1.2. Причины, приводящие к нарушению ограничений целостности
- •2.2. Описание объектов и их свойств
- •Тема 3. Инфологическое моделирование (окончание)
- •3.1. Описание связей между объектами.
- •3. 2. Описание сложных объектов
- •Вопросы для самоконтроля
- •Тема 4. Даталогическое проектирование
- •4.1. Общие сведения
- •4.2. Подход к даталогическому проектированию
- •4.3. Определение состава бд
- •4.4. Разновидности даталогических моделей
- •Вопросы для самоконтроля
- •Тема 5. Реляционная даталогическая модель базы данных
- •5.1. Основные понятия
- •5.2. Цели проектирования рбд
- •Возможность хранения всех необходимых данных в бд;
- •Исключение избыточности данных;
- •Сведение числа хранимых в бд отношений к минимуму;
- •5.2.1. Возможность хранения всех необходимых данных в бд
- •5.2.2. Исключение избыточности данных
- •5.2.3. Сведение числа хранимых в бд отношений к минимуму
- •5.2.4. Нормализация отношений
- •Вопросы для самоконтроля
- •Тема 6. Метод проектирования реляционной базы данных на основе илм
- •Вопросы для самоконтроля
- •Тема 7. Пример проектирования реляционной базы данных на основе илм
- •7.1. Описание объектов и связей между ними
- •7.2. Лингвистические отношения
- •7.3. Алгоритмические связи показателей
- •7.4. Описание информационных потребностей пользователей
- •7.5. Ограничения целостности
- •7.6. Определение состава бд
- •7.7. Определение отношений, включаемых в бд
- •7.8. Описание логической структуры бд на языке субд (схема бд)
- •7.9. Сравнение спроектированной рбд с однотабличной бд
- •Вопросы для самоконтроля
- •Раздел 3. Описание информационных потребностей пользователей базы данных. Тема 8. Информационные потребности пользователей базы данных.
- •8.1. Типы и языки запросов
- •8.2. Реляционная алгебра (алгебра отношений)
- •8.2.1. Проекция
- •8.2.2. Выборка
- •8.2.3. Соединение
- •8.2.8. Деление
- •8.3. Примеры запросов на реляционном языке
- •Вопросы для самоконтроля
- •Раздел 4. Использование языка sql для работы с базами данных. Тема 9. Структурированный язык запросов sql
- •9.1. Стандарт и разновидности языка sql
- •9.2. Краткое введение в sql
- •Тема 10. Основные элементы языка sql. Использование языка sql для выборки данных
- •10.1. Оператор select
- •Тема 11. Отбор строк из таблиц. Условия поиска строк
- •Вопросы для самоконтроля
- •Тема 12. Сортировка таблиц
- •Тема 13. Использование псевдонимов для обозначения таблиц базы данных. Самосоединение таблиц. Итоговые запросы и агрегатные функции
- •Вопросы для самоконтроля
- •Тема 14. Запросы с группировкой
- •Тема 15. Вложенные запросы
- •Вопросы для самоконтроля
- •Тема 16. Изменение данных в базе данных
- •16.1. Корректировка таблиц бд
- •16.2. Создание объектов бд
- •16.3. Создание представлений
- •Вопросы для самоконтроля
- •Рекомендуемая литература
Вопросы для самоконтроля
Для чего предназначено предложение SELECT оператора SELECT?
Для чего предназначено предложение FROM оператора SELECT?
Для чего предназначено предложение WHERE оператора SELECT?
Тема 12. Сортировка таблиц
Информация, получаемая в результате выполнения запроса, может быть упорядочена с помощью фразы
ORDER BY <имя столбца><целое>[ASCDESC] [,<имя столбца><целое>[ASCDESC]...]
Вместо имени столбца может записываться целое число, которое задает номер столбца в таблице, считая слева направо.
Если столбцы вычисляемые или являются результатом операции UNION, то вместо имени столбца должен использоваться номер столбца.
Параметр ASCDESC означает вид сортировки (по возрастаниюпо убыванию соответственно). По умолчанию принимается значение ASC.
Если во фразе ORDER BY задается список полей, то это означает упорядочение по составному ключу. Фраза ORDER BY соответствует операции SORT. Столбцы, перечисленные во фразе ORDER BY, должны присутствовать во фразе SELECT.
Тема 13. Использование псевдонимов для обозначения таблиц базы данных. Самосоединение таблиц. Итоговые запросы и агрегатные функции
Вместо длинных имен таблиц в запросах можно использовать их псевдонимы, которые задаются в фразе FROM оператора SELECT:
FROM <имя таблицы> [<псевдоним>] [,<имя таблицы> [<псевдоним>]…]
В качестве псевдонима используется последовательность символов, соответствующая правилам записи имен на языке SQL.
Псевдоним удобно использовать также для обозначения копии таблицы при записи запроса. Например, определить пары жителей, получающих одинаковые доходы, можно соединив по равенству значений в столбце SumD копию А и копию В таблицы PERSON:
SELECT A.Fio,B.Fio FROM person A, person B WHERE A.SumD=B.SumD
Такой прием называется самосоединением таблиц.
Во многих запросах к базе данных не требуется той степени детализации, как в ранее рассмотренных запросах. Например, во всех запросах, перечисленных ниже, требуется узнать всего одно или несколько значений, которые подытоживают информацию, хранящуюся в базе данных:
Какова сумма общих доходов, получаемых всеми жителями?
Каковы минимальный и максимальный размеры общий доходов?
Каков средний размер общего дохода?
Запросы такого типа (итоговые запросы) создаются с помощью агрегатных функций и фраз GROUP BY и HAVING оператора SELECT.
Агрегатные функции предназначены для подведения итогов по информации, хранящейся в базе данных. Агрегатная функция принимает в качестве аргумента какой-либо столбец данных целиком, а возвращает одно значение, которое определенным образом подытоживает этот столбец.
Имеется шесть агрегатных функций, которые позволяют получать различные виды итоговой информации:
функция SUM( ) вычисляет сумму всех значений, содержащихся в столбце;
функция AVG( ) вычисляет среднее всех значений, содержащихся в столбце;
функция MIN( ) находит наименьшее среди всех значений, содержащихся в столбце;
функция MAX( ) находит наибольшее среди всех значений, содержащихся в столбце;
функция COUNT( ) подсчитывает количество значений, содержащихся в столбце;
функция COUNT(*) подсчитывает количество строк в таблице результатов запроса.
Например, получить ответы на запросы, перечисленные выше, можно оператором
SELECT SUM(SumD), MIN(SumD), MAX(SumD), AVG(SumD) FROM person
