
- •1. Введение в курс
- •1.1. Введение в базы данных, содержание и цели курса, основные понятия
- •1.1.1. О чём этот курс
- •1.1.2. Основные определения
- •1.1.3. Способы организации знаний в базах знаний
- •1.1.4. Применение баз знаний
- •1.1.5. Виды моделей баз данных
- •2. Теория баз данных
- •2.1. История развития представлений о базах данных
- •2.1.1. Области применения вычислительной техники
- •2.1.2. Базы данных и информационные системы
- •2.1.3. История развития баз данных
- •2.1.4. Этапы развития баз данных
- •2.2. Основные термины и определения теории бд, виды бд и их отличия
- •2.2.1. Классификация бд
- •2.3. Реляционные бд, понятие сущности и связи
- •2.3.1. Общие определения
- •2.3.2. Факты о реляционной модели данных
- •2.3.3. Достоинства реляционной модели данных
- •2.3.4. Недостатки реляционной модели данных
- •2.3.5. Целостность бд
- •2.3.6. Отношения
- •2.3.7. Кортежи и отношения
- •2.3.8. Связи
- •2.3.9. Ключи отношений
- •2.3.10. Ссылочная целостность
- •2.3.11. Консистентность данных
- •2.4. Многоуровневая архитектура баз данных, понятие физического и логического уровней баз данных
- •2.4.1. Определения
- •2.4.2. Многоуровневая структура баз данных
- •2.4.3. Постоянная и переменная длина записи
- •2.4.4. Способы представления данных
- •2.4.5. Простейший вариант – плоский файл
- •2.4.6. Факторизация по значениям поля
- •2.4.7. Индексирование по полям
- •2.4.8. Комбинация простых представлений
- •2.4.9. Использование цепочек указателей
- •2.4.10. Многосписочные структуры
- •2.4.11. Инвертированная организация
- •2.4.12. Иерархическая организация
- •2.4.14. Промежуточный итог
- •2.4.15. Методы индексирования
- •2.4.16. Индексирование по комбинации полей
- •2.4.17. Селективный индекс
- •2.4.18. Индексация по методу сжатия
- •2.4.19. Фронтальное сжатие
- •2.4.20. Сжатие окончания
- •2.4.21. Символьные указатели
- •2.4.23. Индексно-последовательная организация
- •2.4.24. Сбалансированные деревья
- •2.4.25. Ведение файла
- •2.4.26. Хэширование
- •2.4.28. Итог
- •2.5. Алгоритмы хэширования
- •2.5.1. Введение
- •2.5.2. Хэширование
- •2.5.2. Факторы эффективности хэширования
- •2.5.3. Размер участка памяти
- •2.5.4. Плотность заполнения
- •2.5.5. Алгоритмы хэширования
- •2.5.6. Размещение записей в области переполнения
- •2.5.7. Итог
- •2.6. Механизмы обработки и хранения данных в бд
- •2.6.1. Введение
- •2.6.2. Механизмы обработки и хранения данных в ms-sql 6.0-6.5
- •2.6.3. Механизмы обработки и хранения данных в ms-sql 7.0 и более поздних версиях
- •2.6.4. Метод доступа isam
- •2.6.5. Метод доспута MyIsam
- •2.6.6. Метод доступа vsam
- •2.6.7. Включение записей в *sam-файлы
- •2.6.8. Размещение индексов для *sam-файлов
- •2.6.9. Метод доступа InnoDb
- •2.6.10. Итог
- •2.7. Физическое представление древовидных и сетевых структур
- •2.7.1. Введение
- •2.7.2. Древовидные структуры
- •2.7.3. Сетевые структуры
- •2.7.4. Итог
- •3.1.4. Стандарты разработки бд/субд
- •3.1.5. Sql и его стандарты
- •Часть 1 – sql/Структура (sql/Framework) – определяет общие требования соответствия и фундаментальные понятия sql.
- •3.1.6. Использование методологии idef1x
- •3.1.7. Пример логической и физической схемы в ErWin
- •3.1.8. Минимальный набор стандартных таблиц
- •3.1.8. Итог
- •3.2. Средства автоматизированного проектирования бд
- •3.2.1. Введение
- •3.2.2. Case-технологии
- •3.2.3. Достоинства case-технологий
- •3.2.4. Промежуточные выводы и определения
- •3.2.5. Методологии структурного моделирования
- •3.2.6. Методология sadt (idef0)
- •3.2.7. Методологии информационного моделирования
- •3.2.8. Нотация Чена
- •3.2.9. Нотация Мартина
- •3.2.10. Нотация ide1x
- •3.2.11. Нотация Баркера
- •3.2.12. Язык информационного моделирования
- •3.2.13. Case-средства
- •3.2.14. Процесс создания модели бд в ErWin
- •3.2.15. Процесс создания модели бд в Sparx ea
- •3.2.16. Итог
- •3.3. Особенности проектирования бд на логическом и физическом уровнях
- •3.3.1. Введение
- •3.3.2. Модель бд
- •3.3.4. Банки данных
- •3.3.5. Модели данных
- •3.3.6. Этапы проектирования бд
- •3.3.7. Проектирование бд: внешний уровень
- •3.3.8. Проектирование бд: инфологический уровень
- •3.3.9. Проектирование бд: даталогический уровень
- •3.3.10. Уровни sql
- •3.3.11. Проектирование бд: физический уровень
- •3.3.12. Итог
- •3.4. Прямое и обратное проектирование бд
- •3.4.1. Введение
- •3.4.2. Понятие нормализации
- •3.4.3. Требования нормализации
- •3.4.4. Примеры аномалий
- •3.4.5. Нормальные формы
- •3.4.6. Зависимости
- •3.4.6. Первая нормальная форма
- •3.4.7. Вторая нормальная форма
- •3.4.8. Третья нормальная форма
- •3.4.9. Нормальная форма Бойса-Кодда
- •3.4.10. Четвёртая нормальная форма
- •3.4.11. Пятая нормальная форма
- •3.4.12. Доменно-ключевая нормальная форма
- •3.4.13. Ещё раз, кратко, все нормальные формы
- •3.4.14. Ещё раз, кратко, в ErWin
- •3.5.2. Показатели качества бд
- •3.5.3. Итог
2.6.4. Метод доступа isam
ISAM (indexed sequential access method, индексно-последовательный метод доступа).
В методе доступа ISAM записи группируются так, чтобы они могли располагаться на отдельных дорожках цилиндров модуля дисков, и одна дорожка на каждом цилиндре отводится для индексов, указывающих на записи, расположенные на данном цилиндре.
Если необходимо включить новые записи в уже созданный файл, эти записи включаются в область переполнения.
При этом на дорожке, содержащей индексы, создаются указатели как на основную область (область первоначальных данных), так и на область переполнения.
Область переполнения может располагаться на дорожке того же цилиндра, на котором находятся первоначальные данные, в которые вносятся новые данные, переполняющие основную область.
С другой стороны, допускается расположение области переполнения за пределами этого цилиндра.
Если основная область и область переполнения расположены на одном цилиндре, доступ к записям ускоряется, так как нет необходимости перемещения головок чтения-записи с одного цилиндра на другой.
Обычно в каждом цилиндре отводится одна дорожка под область переполнения.
Однако при включении новых записей дорожка области переполнения может заполниться до отказа, причем это может произойти очень быстро.
Поэтому в системах, в которых применяется метод доступа ISAM, используется как область переполнения цилиндра, так и независимая область переполнения.
Если область переполнения цилиндра заполнена до отказа, то для новых записей отводится дорожка из независимой области переполнения.
Метод ISAM допускает многоуровневое (плотное или неплотное) индексирование. См. предыдущую тему данного курса.
Сейчас – рисунки…
Рисунок 2.6.4.1 – Области переполнения в конце цилиндров
Рисунок 2.6.4.2 – Независимая область переполнения
2.6.5. Метод доспута MyIsam
MyISAM – подсистема низкого уровня (метод доступа) в MySQL.
Метод основан на коде метода ISAM и обладает в сравнении с ним большим количеством полезных дополнений.
MyISAM-таблицы оптимизированы для использования в веб-ориентированных приложениях, где преобладают простые запросы на чтение.
Во многом это связано с отсутствием поддержки транзакций и внешних ключей.
Однако при модификации и добавлении записей вся таблица кратковременно блокируется, что может привести к серьёзным задержкам при большой нагрузке.
Таблицы MyISAM являются платформенно-независимыми. Табличные файлы можно перемещать между компьютерами разных архитектур и разными операционными системами без всякого преобразования.
Для этого MySQL хранит все числа с плавающей запятой в формате IEEE, а все целые числа – в формате с прямым порядком следования байтов.
Индексные файлы имеют расширение .MYI (MYIndex). Файлы с расширением .MYD (MYData) содержат данные, а с расширением .frm – схему таблицы.
Если индексный файл по какой-то причине теряется, программа перестраивает индексы, используя информацию из frm-файла.
По умолчанию в каждой таблице может быть не более тридцати двух индексов, но это значение можно повысить до шестидесяти четырех.
Индексы создаются в виде двоичных деревьев.
Разрешается индексировать столбцы типа BLOB и TEXT, а также столбцы, допускающие значения NULL.
В таблицах MyISAM могут быть фиксированные и динамические записи. Выбор между фиксированным и динамическим форматом диктуется определениями столбцов.
Недостатки MyISAM
отсутствие самовосстановления по журналу при сбоях;
отсутствие блокировок областей меньших, чем целые таблицы, что приводит к отсутствию масштабируемости, т.е. к сильной деградации производительности с повышением нагрузки;
отсутствие средств резервного копирования (утилита mysqldump является не инструментом резервного копирования, а инструментом экспорта в текст);
слабая реализация сортировки (MyISAM сортирует данные слиянием, с использованием qsort для первоначально сливаемых небольших регионов, что требует неоптимального по дисковому вводу/выводу создания на каждую операцию сортировки 2 временных файлов.
Данные недостатки проявляются в заметной степени на нагрузке порядка полутысячи клиентов, исполняющих сложные запросы по базе данных размером в 2-4 Гб.