
- •1. Реализация баз данных
- •1.1. Обзор существующих систем управления базами данных
- •1.1.1. Основные функции субд
- •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. Совершенствование методов защиты данных
- •10. In-memory субд реального времени как кэш для коммерческих субд
- •11. Облачные вычисления (Cloud computing)
- •12. Машины баз данных
- •1.5.5. Заключение
- •2. Эксплуатация баз данных
- •2.1. Настройка и администрирование субд
- •2.1.1. Администрирование MySql
- •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. Распределённые базы данных
Министерство образования Республики Беларусь
Учреждение образования
"Белорусский государственный университет
информатики и радиоэлектроники"
Факультет компьютерных систем и сетей
Кафедра программного обеспечения информационных технологий
УЧЕБНОЕ ПОСОБИЕ
по курсу "Базы данных" (часть 2)
Автор: Куликов Святослав Святославович,
доцент кафедры ПОИТ
Минск 2009
Содержание
1. Реализация баз данных 3
1.1. Обзор существующих систем управления базами данных 3
1.1.1. Основные функции СУБД 3
1.1.2. Классификация СУБД 4
1.2. СУБД начального уровня – MySQL 5
1.2.1. Введение в MySQL 5
1.2.2. Подготовка к работе с MySQL 8
1.2.3. Создание базы данных, основы работы с таблицами MySQL 14
1.2.4. Типы данных столбцов MySQL 22
1.2.5. Работа с таблицами MySQL 38
1.2.6. Логические операторы MySQL 48
1.2.7. Команды обработки данных MySQL 58
1.2.8. Математические функции MySQL 63
1.2.9. Работа с датой и временем в MySQL 82
1.2.10. Работа со строками в MySQL 86
1.2.11. Дополнительные функции MySQL 96
1.3. СУБД корпоративного уровня – MS SQL Server 107
1.3.1. Общая теория запросов SQL 107
1.3.2. Имена в SQL 111
1.3.3. Типы данных 113
1.3.4. Константы 117
1.3.5. Выражения 120
1.3.6. Встроенные функции 121
1.3.7. Отсутствующие значения (значения NULL) 123
1.3.8. Простые запросы SQL на выборку данных 125
1.3.9. Предложение SELECT 127
1.3.10. Предложение FROM 127
1.3.11. Вычисляемые столбцы 131
1.3.12. Выборка всех столбцов (инструкция SELECT *) 131
1.3.13. Повторяющиеся строки (предикат DISTINCT) 132
1.3.14. Отбор строк (предложение WHERE) 133
1.3.15. Условия отбора 135
1.3.16. Составные условия отбора (операторы AND, OR и NOT) 142
1.3.17. Сортировка результатов запроса (предложение ORDER BY) 143
1.3.18. Правила выполнения однотабличных запросов 145
1.3.19. Сложные запросы 146
1.3.20. Запросы на объединение и повторяющиеся строки 147
1.3.21. Запросы на объединение и сортировка 148
1.3.22. Вложенные запросы на объединение 148
1.3.23. Многотабличные запросы на выборку 149
1.3.24. Запросы с использованием отношения предок/потомок 151
1.3.25. Запросы на выборку к трём и более таблицам 154
1.3.26. Объединение таблиц по неравенству 155
1.3.27. Особенности многотабличных запросов 156
1.3.28. Самообъединения 157
1.3.29. Производительность при обработке многотабличных запросов 160
1.3.30. Умножение таблиц 161
1.3.31. Правила выполнения многотабличных запросов на выборку 162
1.3.32. Внешнее объединение таблиц 163
1.3.33. Левое и правое внешние объединения 166
1.4. Способы взаимодействия программных средств в СУБД 176
1.4.1. Доступ к базе данных на стороне сервера 176
1.4.2. Доступ к базе данных на стороне клиента 177
1.5. Современные тенденции развития СУБД 179
1.5.1. Введение 179
1.5.2. Как предсказать тенденции развития СУБД 179
1.5.3. Эволюционный подход 180
1.5.4. Тенденции развития 183
1.5.5. Заключение 197
2. Эксплуатация баз данных 197
2.1. Настройка и администрирование СУБД 197
2.1.1. Администрирование MySQL 197
2.1.2. Администрирование MS SQL Server 225
2.2. Повышение надёжности баз данных 253
2.2.1. Обеспечение сохранности данных в MySQL 253
2.2.2. Обеспечеие сохранности данных в MS SQL Server 258
2.3. Повышение производительности баз данных 262
2.3.1. Повышение производительности MySQL 262
2.3.2. Повышение производительности MS SQL Server 274
2.4. Повышение безопасности БД 278
2.4.1. Безопасность MySQL 278
2.4.2. Безопасность MS SQL Server 295
2.5. Модернизация БД в процессе эксплуатации 314
2.5.1. Расширение возможностей MySQL 314
2.5.2. Распределённые базы данных 323
1. Реализация баз данных
1.1. Обзор существующих систем управления базами данных
1.1.1. Основные функции субд
Основные функции СУБД:
управление данными во внешней памяти (на дисках);
управление данными в оперативной памяти с использованием дискового кэша;
журнализация изменений, резервное копирование и восстановление базы данных после сбоев;
поддержка языков БД (язык определения данных, язык манипулирования данными).
Обычно современная СУБД содержит следующие компоненты:
ядро, которое отвечает за управление данными во внешней и оперативной памяти и журнализацию;
процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода;
подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД;
а также сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы.
1.1.2. Классификация субд
По типу управляемой базы данных СУБД разделяются на:
Иерархические.
Сетевые.
Реляционные.
Объектно-реляционные.
Объектно-ориентированные.
По архитектуре организации хранения данных:
локальные СУБД (все части локальной СУБД размещаются на одном компьютере);
распределённые СУБД (части СУБД могут размещаться на двух и более компьютерах).
По способу доступа к БД:
Файл-серверные. В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. Ядро СУБД располагается на каждом клиентском компьютере. Доступ к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на ЦП сервера, а недостатком - высокая загрузка локальной сети. На данный момент файл-серверные СУБД считаются устаревшими. Примеры: Microsoft Access, Borland Paradox.
Клиент-серверные. Такие СУБД состоят из клиентской части (которая входит в состав прикладной программы) и сервера (см. Клиент-сервер). Клиент-серверные СУБД, в отличие от файл-серверных, обеспечивают разграничение доступа между пользователями и мало загружают сеть и клиентские машины. Сервер является внешней по отношению к клиенту программой, и по надобности его можно заменить другим. Недостаток клиент-серверных СУБД в самом факте существования сервера (что плохо для локальных программ - в них удобнее встраиваемые СУБД) и больших вычислительных ресурсах, потребляемых сервером. Примеры: Firebird, Interbase, IBM DB2, MS SQL Server, Sybase, Oracle, PostgreSQL, MySQL.
Встраиваемые. Встраиваемая СУБД - библиотека, которая позволяет унифицированным образом хранить большие объёмы данных на локальной машине. Доступ к данным может происходить через SQL либо через особые функции СУБД. Встраиваемые СУБД быстрее обычных клиент-серверных и не требуют установки сервера, поэтому востребованы в локальном ПО, которое имеет дело с большими объёмами данных (например, геоинформационные системы). Примеры: OpenEdge, SQLite, BerkeleyDB, один из вариантов Firebird, один из вариантов MySQL, Sav Zigzag, Microsoft SQL Server Compact.