- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Учреждение образования
- •«Белорусский государственный университет
- •Информатики и радиоэлектроники»
- •Пояснительная записка
- •Содержание дисциплины
- •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 Общие сведения
- •Указания по выбору варианта
- •Практическая часть
2.4.16. Индексирование по комбинации полей
Строить индекс можно на основе комбинации значений двух или более полей. Например, на следующем рисунке изображён индекс по комбинации полей «город» и «статус» (к слову, такие индексы сейчас очень активно используются):
Рисунок 2.4.16.1 – Индексирование по комбинации полей
С помощью такого индекса мы можем ответить на такие вопросы, как «найти всех поставщиков в Париже со статусом 10» за один просмотр индекса.
Если комбинированного индекса не существует, ответ на этот вопрос потребует:
поиска всех поставщиков в Париже;
поиска всех поставщиков со статусом 10;
выделения поставщиков, общих для обоих списков.
Шаги 1 и 2 могут быть выполнены также и в обратном порядке (2, затем 1), поэтому появится задача выбора стратегии (какой шаг выполнять первым).
Такой комбинированный индекс может также служить просто отдельным индексом по полю «город», поскольку элементы для одного города расположены в индексе по крайней мере последовательно.
Тем не менее, если потребуется отдельное индексирование по полю «статус», должен быть обязательно построен отдельный индекс.
2.4.17. Селективный индекс
Бывают ситуации, когда совершенно не обязательно осуществлять доступ через индекс к каждому экземпляру записи индексируемого файла.
В некоторых случаях полезно иметь элементы индекса только для выделенных значений индексируемого поля.
Например, рассмотрим файл «Служащие», в котором 5% служащих освобождено от уплаты налогов и 95% такого освобождения не имеют.
Не имеет смысла предусматривать общий индекс по полю, отражающему факт освобождения от налога.
Но было бы очень полезно иметь индекс, указывающий всех служащих, освобождённых от налога, другими словами, выбрать подмножество множества всех возможных значений и проиндексировать его.
2.4.18. Индексация по методу сжатия
Методы сжатия позволяют сокращать объём памяти, занимаемой данными, путем замены некоторой части данных представлением того, что отличает их от других (последующих и/или предшествующих) данных.
Эти методы могут быть использованы везде, где доступ к данным должен осуществляться последовательно, например, в пределах индекса или в пределах одной «группы» файла, для которого существует неплотный индекс.
Рассмотрим в качестве примера один блок индекса гипотетического файла «Служащие».
Предположим, что первые четыре элемента в этом блоке соответствуют следующим служащим:
ROBERTON
ROBERTSON
ROBERTSTONE
ROBINSON
Допустим, что имена служащих не могут быть длиннее 12-ти символов, так что каждое из этих имён может рассматриваться (в несжатом виде) дополненным справа соответствующим числом пробелов (до длины в 12 символов).
2.4.19. Фронтальное сжатие
Первый метод сжатия, который мы рассмотрим – фронтальное сжатие.
Суть метода состоит в том, что у каждого элемента все первые (фронтальные) символы, совпадающие с соответствующими фронтальными символами предшествующего элемента, замещаются соответствующим счётчиком.
Результатом применения этого метода будет:
0 – ROBERTON****
6 – SON***
7 – TONE*
3 – INSON****
Все завершающие пробелы в дачном случае обозначены *.