
- •Раздел 1.
- •Основы построения баз данных
- •Самостоятельная работа №1 (6 часов)
- •Тема: Этапы развития баз данных. Языковые средства банка данных. Роль субд.
- •Основные этапы развития баз данных
- •Первый этап — базы данных на больших эвм
- •Второй этап - эпоха персональных компьютеров
- •Третий этап - распределенные базы данных
- •Четвертый этап - перспективы развития систем управления базами данных
- •Языковые средства банка данных
- •Пользователи банков данных
- •Контрольные вопросы
- •Самостоятельная работа №2 (8 часов)
- •Общий обзор средств для работы с базами данных
- •Как связаны друг с другом компоненты для работы с базами данных
- •Назначение bde Administrator
- •Создание псевдонима бд
- •Параметры баз данных типа standard
- •Установки параметров драйвера paradox
- •Установки параметров драйвера interbase
- •Контрольные вопросы
- •Самостоятельная работа №3 (8 часов)
- •Архитектура базы данных. Физическая и логическая независимость
- •Классификация субд
- •Способы разработки и выполнения приложений
- •Контрольные вопросы
- •Самостоятельная работа №4 (8 часов)
- •Классификация моделей данных
- •Основные особенности систем, основанных на инвертированных списках
- •Файловые структуры, используемые для хранения данных в бд
- •Этапы доступа к бд
- •Компоненты модели данных
- •Контрольные вопросы
- •Самостоятельная работа №5 (8 часов)
- •Методы хранения данных и доступа к ним
- •Последовательный метод
- •Прямой метод
- •Индексные методы
- •Индексно-последовательный метод
- •Индексно-произвольный метод
- •Инвертированные списки
- •Контрольные вопросы
- •Раздел 2. Проектирование и использование баз данных самостоятельная работа №6 (8 часов)
- •Этапы проектирования баз данных
- •Внешний уровень — подготовительный этап инфологического проектирования
- •Составные части инфологической модели
- •Требования и подходы к инфологическому проектированию
- •Контрольные вопросы
- •Самостоятельная работа №7 (8 часов)
- •1. Отсутствие кортежей-дубликатов
- •2. Отсутствие упорядоченности кортежей
- •3. Отсутствие упорядоченности атрибутов
- •4. Атомарность значений атрибутов
- •Нормализация - за и против
- •Контрольные вопросы
- •Самостоятельная работа №8 (8 часов)
- •Ссылочная целостность и каскадные воздействия
- •Контрольные вопросы
- •Раздел 3 Структурированный язык запросов sql самостоятельная работа №9 (12 часов)
- •Роль sql
- •Манипулирование реляционными данными
- •Контрольные вопросы
- •Самостоятельная работа №10 (12 часов)
- •Выбор данных с помощью команды select.
- •Объединение таблиц. Использование агрегатных функций
- •Реализация вложенных запросов
- •Модификация данных. Операторы insert, delete, update
- •Контрольные вопросы
- •Список рекомендуемой литературы
Инвертированные списки
Два предыдущих метода ориентировались, в основном, на поиск записей с уникальным значением ключа. Однако нередко возникает задача выбора группы записей по определенным параметрам, каждый из которых не уникален. Более того, записей с каким-то фиксированным значением параметра может быть очень много. Это характерно, например, для библиотечного поиска, когда требуется подобрать книгу с заданным годом издания, автором, издательством и т.п. Для подобных задач существуют специальные методы, наиболее популярный из которых – метод инвертированных списков или инвертированный метод.
Считается, что поиск может проводиться по значениям любых полей (вторичных ключей) или их комбинации. Для каждого вторичного ключа создается индекс. В нем на каждое значение ключа формируется список указателей на записи файла с этим значением. Это не обязательно физическая ссылка, допускается и первичный ключ. Таким образом, инвертированный индекс группируется по именам полей, которые в свою очередь группируются по значениям. При поиске записи с заданным значением ключа выбирается нужный индекс, в нем каким-то способом (например, индексно-произвольным) выбирается статья с этим значением, затем выбирается все список ссылок на записи с искомым значением. Легко видеть, что поиск по комбинации значений полей сводится к выбору соответствующих списков и их пересечению (операция И) или объединению (операция ИЛИ).
Достоинства метода – независимость от объема файла при выборе данных по произвольным значениям ключа, отбор списка записей по сложным условиям без обращения к файлу. Особенно эффективно применение инвертированных списков при выборке данных по совокупности критериев, если атрибуты имеют сравнительно небольшой диапазон значений. Недостаток – большие затраты времени на создание и обновление инвертированных индексов, причем, время зависит от объема данных. Этот метод обычно используется лишь для поиска. Для начальной загрузки данных и обновления используют другие методы.
Эффективность доступа зависит от эффективности поиска в индексе, но в любом случае она ниже 0,5 (доступ к индексу и доступ к записи файла). Для повышения эффективности следует размещать индексы в оперативной памяти.
Эффективность хранения зависит от метода хранения индекса, от числа инвертируемых полей и от множества значений каждого вторичного ключа (от длины инвертированного списка).
Пример
В приведенном примере в информационном файле (правый прямоугольник) размещается список студентов с оценками. Требуется выбрать всех студентов, имеющих одинаковое значение оценки. Левый прямоугольник символизирует индекс, в котором находится единственный вторичный ключ – «оценка». Каждому его значению соответствует список, в котором перечислены соответствующие номера записей информационного файла. Выбор всех двоечников сводится к нахождению в индексе соответствующего значения ключа «оценка» и загрузки записей, указанных в списке. Если нужно найти тех, кто получил «4» или «5», следует найти и объединить соответствующие списки. Подобные действия выполнялись бы, если бы запись содержала еще один вторичный ключ, скажем, предмет. Тогда для выборки тех, кто получил пятерки по предмету «Базы данных», следовало бы в соответствующих индексах найти списки для требуемых значений и взять их пересечение.