
- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Учреждение образования
- •«Белорусский государственный университет
- •Информатики и радиоэлектроники»
- •Пояснительная записка
- •Содержание дисциплины
- •1. Название тем лекционных занятий, их содержание, объем в часах.
- •2 Перечень тем ипр их наименование и объем в часах
- •3 Перечень тем контрольных работ их наименование и объем в часах
- •4. Курсовая работа, ее характеристика
- •Перечень тем курсовых работ
- •5. Литература
- •5.1 Основная
- •5.2 Дополнительная
- •6. Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •7. Учебно-методическая карта дисциплины
- •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. Многоуровневая структура баз данных
- •Indexed р#
- •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.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
- •InnoDb в MySql 5.1
- •2.7.3. Сетевые структуры
- •3.1.4. Стандарты разработки бд/субд
- •3.1.5. 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.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.4.15. Обратное проектирование бд
- •3.4.16. Итог
- •3.5. Повышение качества бд на стадии проектирования
- •3.5.1. Памятки разработчикам бд
- •3.5.2. Показатели качества бд
- •Практическая часть
- •Указания по выбору варианта
- •Индивидуальные практические работы Индивидуальная практическая работа № 1 Общие сведения
- •Практическая часть
- •Указания по выбору варианта
- •Индивидуальная практическая работа № 2 Общие сведения
- •Указания по выбору варианта
- •Практическая часть
InnoDb в MySql 5.1
полностью поддерживает построковую репликацию003B
исправлено множество недочётов, влияющих на производительность.
2.6.10. Итог
На этом мы заканчиваем рассмотрение готовых решений и переходим к рассмотрению «того, как сделать что-то подобное своими руками» – к описанию механизмов шэширования, ориентированных на базы данных, а также к описанию того, как хранить в бинарных файлах сложные структуры данных.
2.7. Физическое представление древовидных и сетевых структур
2.7.1. Введение
В этой теме мы рассмотрим конкретные алгоритмы хранения сложных (древовидных и сетевых) структур данных в файлах.
2.7.2. Древовидные структуры
Усложнённый двумерный файл
Одним из самых простых способов представления древовидных структур является т.н. «усложнённый двумерный файл».
В простом двумерном файле каждая запись содержит один и тот же набор элементов данных. Такой файл физически может быть представлен последовательно. Однако атрибуты, связанные с одним описываемым объектом, в реальности могут иметь несколько значений.
Рассмотрим рисунок…
Рисунок 2.7.2.1 – Усложнённый двумерный файл
На рисунке представлен файл, в котором хранятся расценки на изделия, а также информация о скидках в зависимости от количества приобретаемых изделий.
Если используются записи переменной длины, то включение в запись нескольких наборов пар «количество-скидка» не представляет трудностей. Однако в случае с записями постоянной длины такое решение не годится.
У разработчика алгоритма хранения имеются три возможности.
Он может зарезервировать в записи место для некоторого количества пар «количество-скидка». В этом случае память будет использоваться неэффективно, поскольку в большинстве записей число значений этого поля будет меньше зарезервированного.
Он может ввести отдельную запись для каждой скидки (фактически – создать дополнительную таблицу, пусть и неявно), а в исходной записи поместить указатель на последовательный набор записей «количество-скидка» в другом файле. В этом случае при обращении к основной записи всегда производится дополнительный поиск на внешнем запоминающем устройстве.
Разработчик может зарезервировать в основной записи место для нескольких значений пар «количество-скидка» и дополнительно ввести запись переполнения для случаев, когда зарезервированного места будет недостаточно.
В современных базах данных для хранения подобных структур используют две отдельных таблицы. Если при работе с БД часто возникает ситуация, когда необходимо «показать все товары со всеми скидками», возможно кэширование всего набора «количества-скидки» в одном поле в сериализованном виде.
Главный и детальный файлы
В системах обработки данных двухуровневые файлы используются часто; например, для банковской системы используются записи счетов клиентов и записи о сделках клиентов.
Эти записи обычно рассматриваются соответственно как главные и детальные записи и изображаются в виде двухуровневого дерева.
Для любого такого файла или для любой пары уровней дерева разработчик имеет возможность выбора степени включения некоторых сегментов нижнего уровня в сегменты верхнего уровня (по первому способу организации усложнённого двумерного файла).
Рисунок 2.7.2.2 – Главный и детальный файлы
Левосписковые структуры
Такие структуры удобно применять для хранения многоуровневых деревьев. В файле хранится, фактически, результат «левого обхода дерева».
Рассмотрим на рисунке…
Рисунок 2.7.2.3 – Левосписковые структуры
Указатели на исходные, порождённые и подобные записи
Ещё одним способом хранения многоуровневых деревьев в последовательных файлах является использование указателей на исходные или порождённые и подобные записи.
Использование указателей только на порождённые записи привело бы к необходимости формировать набор указателей переменной длины.
Рассмотрим на рисунке…
Рисунок 2.7.2.4 – Указатели на исходные записи
Рисунок 2.7.2.5 – Указатели на порождённые и подобные записи
Оптимизация включения и удаления записей
Если древовидная логическая структура данных отображается на последовательно организованные файлы на физических носителях, то необходимы специальные методы для управления включением и удалением записей.
Более оптимальным способом работы с такими данными является отдельное хранение элементов и связей между ними.
Рассмотрим два таких решения.
Справочники деревьев
Справочник – это файл, в котором хранится информация о связях между записями в других файлах.
Справочник обычно имеет небольшой размер и может быть считан в основную память, что позволяет вести поиск с высокой скоростью.
Время и затраты на включение и удаление записей при использовании справочника указателей также меньше, чем при использовании встроенных указателей.
Фактически, справочники представляют собой плотный индекс, позволяющий работать с файлами, записи в которых размещены в произвольном порядке.
Битовые отображения
Битовые отображения позволяют хранить информацию о структуре дерева в предельно компактной форме, а также позволяют ОЧЕНЬ быстро производить поиск с использованием обычных логических операций над бинарными данными.
Рассмотрим пример битового отображения на рисунке…
Рисунок 2.7.2.6 – Битовое отображение