- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Учреждение образования
- •«Белорусский государственный университет
- •Информатики и радиоэлектроники»
- •Пояснительная записка
- •Содержание дисциплины
- •1. Название тем лекционных занятий, их содержание, объем в часах.
- •2 Перечень тем ипр их наименование и объем в часах
- •3 Перечень тем контрольных работ их наименование и объем в часах
- •4. Курсовая работа, ее характеристика
- •Перечень тем курсовых работ
- •5. Литература
- •5.1 Основная
- •5.2 Дополнительная
- •6. Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •7. Учебно-методическая карта дисциплины
- •1.1.2. Классификация субд
- •1.2. Субд начального уровня – MySql
- •1.2.1. Введение в MySql
- •1.2.2. Подготовка к работе с MySql
- •1.2.3. Создание базы данных, основы работы с таблицами MySql
- •1.2.4. Типы данных столбцов MySql
- •1.2.5. Работа с таблицами MySql
- •1.2.6. Логические операторы MySql
- •1.2.7. Команды обработки данных MySql
- •1.2.8. Математические функции MySql
- •1.2.9. Работа с датой и временем в MySql
- •1.2.10. Работа со строками в MySql
- •1.2.11. Дополнительные функции MySql
- •1.3. Субд корпоративного уровня – ms sql Server
- •1.3.1. Общая теория запросов sql
- •1.3.2. Имена в sql
- •1.3.3. Типы данных
- •1.3.4. Константы
- •1.3.5. Выражения
- •1.3.6. Встроенные функции
- •1.3.7. Отсутствующие значения (значения null)
- •1.3.8. Простые запросы sql на выборку данных
- •1.3.9. Предложение select
- •1.3.10. Предложение from
- •1.3.11. Вычисляемые столбцы
- •1.3.12. Выборка всех столбцов (инструкция select *)
- •1.3.13. Повторяющиеся строки (предикат distinct)
- •1.3.14. Отбор строк (предложение where)
- •1.3.15. Условия отбора
- •1.3.16. Составные условия отбора (операторы and, or и not)
- •1.3.17. Сортировка результатов запроса (предложение order by)
- •1.3.18. Правила выполнения однотабличных запросов
- •1.3.19. Сложные запросы
- •1.3.20. Запросы на объединение и повторяющиеся строки
- •1.3.21. Запросы на объединение и сортировка
- •1.3.22. Вложенные запросы на объединение
- •1.3.23. Многотабличные запросы на выборку
- •1.3.24. Запросы с использованием отношения предок/потомок
- •1.3.25. Запросы на выборку к трём и более таблицам
- •1.3.26. Объединение таблиц по неравенству
- •1.3.27. Особенности многотабличных запросов
- •1.3.28. Самообъединения
- •1.3.29. Производительность при обработке многотабличных запросов
- •1.3.30. Умножение таблиц
- •1.3.31. Правила выполнения многотабличных запросов на выборку
- •1.3.32. Внешнее объединение таблиц
- •1.3.33. Левое и правое внешние объединения
- •1.4. Способы взаимодействия программных средств в субд
- •1.4.1. Доступ к базе данных на стороне сервера
- •1.4.2. Доступ к базе данных на стороне клиента
- •1.5. Современные тенденции развития субд
- •1.5.1. Введение
- •1.5.2. Как предсказать тенденции развития субд
- •1.5.3. Эволюционный подход
- •1.5.4. Тенденции развития
- •1. Виртуализация ресурсов и grid-технологии
- •2. Встраивание Information Life Cycle Management (ilm) в субд
- •3. Самоуправление, самодиагностика, самолечение
- •4. Real Application Testing – механизмы промышленного тестирования версий и изменений
- •5. Совершенствование архитектур максимальной доступности
- •6. Включение измерения времени в субд
- •7. Поддержка новых типов данных (xml, rfid, Semantic Web, геном, медицина, быстрые lob и т.Д.)
- •8. Умные механизмы сжатия и дедублирования
- •9. Совершенствование методов защиты данных
- •11. Облачные вычисления (Cloud computing)
- •12. Машины баз данных
- •2.1.2. Администрирование ms sql Server
- •2.2. Повышение надёжности баз данных
- •2.2.1. Обеспечение сохранности данных в MySql
- •2.2.2. Обеспечеие сохранности данных в ms sql Server
- •2.3. Повышение производительности баз данных
- •2.3.1. Повышение производительности MySql
- •2.3.2. Повышение производительности ms sql Server
- •2.4. Повышение безопасности бд
- •2.4.1. Безопасность MySql
- •2.4.2. Безопасность ms sql Server
- •2.5. Модернизация бд в процессе эксплуатации
- •2.5.1. Расширение возможностей MySql
- •2.5.2. Распределённые базы данных
- •Указания по выбору варианта
- •Курсовое проектирование Методические указания по выполнению
- •Цель проектирования
- •Теоретические положения Основные понятия баз данных
- •Этапы проектирования базы данных
- •Модели данных
- •Нормальные формы отношений
- •Задания к выполнению курсового проекта
- •Указания по выбору варианта
- •Правила оформления выполненных заданий
- •Пример проектирования базы данных
1.3.7. Отсутствующие значения (значения null)
Поскольку база данных представляет собой модель реального мира, отдельные элементы данных в ней неминуемо будут отсутствовать или подходить не для всех сущностей.
Например, в столбце QUOTA таблицы SALESREPS содержатся плановые объёмы продаж для каждого служащего. Однако для одного из новых служащих план ещё не был утверждён, соответствующая информация в базе данных отсутствует. Конечно, в столбец QUOTA для нового служащего можно ввести значение 0, однако это исказит ситуацию. План служащего не равен нулю, а пока просто неизвестен.
Аналогично, столбец MANAGER в таблице SALESREPS для каждого служащего содержит идентификатор его менеджера. Однако Сэм Кларк (Sam Clark), вице-президент по торговым операциям, не подчиняется никому из отдела сбыта. К нему этот столбец не относится. И, опять же, можно ввести в столбец MANAGER для вице-президента число 0 или 9999, но ни одно из них не будет настоящим идентификатором начальника Сэма Кларка. Для этой строки не подходит ни одно число.
SQL поддерживает обработку отсутствующих данных с помощью понятия “отсутствующее значение”. Это значение показывает, что в конкретной строке определённый элемент данных отсутствует, или что столбец вообще не подходит для этой строки. Говорят, что значение такого элемента данных равно NULL. Однако NULL не является значением данных, как 0, 483.00 или "Sam Clark". Напротив, это признак, показывающий, что точное значение данных неизвестно или отсутствует. На рисунке показано содержимое таблицы SALESREPS. Обратите внимание на то, что в столбцах QUOTA и REP_OFFICE для Тома Снайдера (Tom Snyder) и в столбце MANAGER ДЛЯ Сэма Кларка (Sam Clark) содержатся значения NULL.
Таблица – SALESREPS
EMPL_ NUM |
NAME |
AGE |
REP_OFFICE |
TITLE |
HIRE_DATE |
MANAGER |
QUOTA |
SALES |
105 |
Bill Adams |
37 |
13 |
Sales Rep |
12-FEB-88 |
104 |
$350,000 00 |
$367,911 00 |
109 |
Mary Jones |
31 |
11 |
Sales Rep |
12-OCT-89 |
106 |
$300,000 00 |
$392,725 00 |
102 |
Sue Smith |
48 |
21 |
Sales Rep |
10-DEC-86 |
108 |
$350,000 00 |
$474,050 00 |
106 |
Sam Clark |
52 |
11 |
VP Sales |
14-JUN-88 |
NULL |
$275,000 00 |
$299,912 00 |
104 |
Bob Smith |
33 |
12 |
Sales Mgr |
19-MAY-87 |
106 |
$200,000 00 |
$142,594 00 |
101 |
Dan Roberts |
45 |
12 |
Sales Rep |
20-OCT-86 |
104 |
$300,000 00 |
$305,673 00 |
110 |
Tom Snyder |
41 |
NULL |
Sales Rep |
13-JAN-90 |
101 |
NULL |
$75,985 00 |
108 |
Larry Fitch |
62 |
21 |
Sales Mgr |
12-OCT-89 |
106 |
$350,004 00 |
$361,865 00 |
103 |
Paul Cruz |
29 |
12 |
Sales Rep |
01-MAR-87 |
104 |
$275,000 00 |
$286,775 00 |
107 |
Nancy Angelli |
49 |
22 |
Sales Rep |
14-N0V-98 |
108 |
$300,010 00 |
$186,042 00 |
Во многих ситуациях значения NULL требуют от СУБД отдельной обработки. Например, если пользователь просит вычислить сумму по столбцу QUOTA, что СУБД должна делать со значениями NULL при вычислении суммы? Ответ на подобные вопросы даёт набор правил обработки значений NULL в различных инструкциях и предложениях SQL. Из-за необходимости включения таких правил в синтаксис языка SQL многие теоретики реляционных баз данных считают, что значения NULL не следует использовать. Другие, в том числе доктор Кодд, отстаивают использование значений NULL двух видов, означающих "неизвестно" и "неприменимо".
Независимо от теоретических споров, значения NULL стали частью стандарта ANSI/ISO и реализованы почти во всех коммерческих СУБД.