Индексирование таблиц базы данных
Индекс (или индексно-последовательный файл) – представляет собой структуру данных, полученную путем выбора данных отдельных полей таблицы и их упорядочивания. Основная цель создания индекса - увеличение скорости доступа к данным.
Индекс в самом общем смысле представляет собой упорядоченную таблицу следующего вида:
Значение индексируемого поля (группы полей)
| Номер блока, номер записи или значение первичного ключа
| При этом таблица упорядочена (отсортирована) по значению ключа.
Пример 1
Предположим, таблица «Контрагенты» содержит большое количество записей. Необходимо ускорить поиск по полю «Наименование контрагента». Для этого построим индекс по этому полю:
Наименование контрагента
| Номер записи в таблице «Контрагенты»
| ООО «Альфа»
|
| ООО «Гамма»
|
| ООО «Омега»
|
|
Из таблицы видно, что она упорядочена по значению индексируемого поля в алфавитном порядке. Теперь, зная наименование организации, можно быстро[2] найти запись в таблице «Контрагенты» по ее номеру.
Пример 2. Предположим, имеется таблица «Состав накладной» с полями «Код накладной», «Код товара», «Количество», «Цена», «Сумма» с ключом («Код накладной», «Код товара»). Необходимо ускорить поиск записей по полю «Код товара».
Для ускорения поиска по какому-либо полю или группе полей необходимо:
- скопировать значения индексируемых полей вместе с первичным ключом в отдельную таблицу;
- упорядочить (отсортировать) таблицу по индексируемым полям.
В результате, несмотря на то, что в исходной таблице записи хранятся в несортированном по данному полю виде, мы можем использовать эффективный метод «деления пополам» для поиска нужной записи или группы записей в упорядоченной индексной таблице, а затем по значению ключа быстро найти запись в основной таблице.
Предположим, имеется таблица из 15 полей с длиной записи каждого поля по 15 символов и количеством записей 1 000 000. Тогда размер этой таблицы будет составлять 15 х 15 х 1 000 000 = 225 000 000 символов. Для того, чтобы найти запись или группу записей в этой таблице необходимо будет просмотреть всю таблицу от начала до конца. Можно сразу отметить, что такой поиск будет слишком медленным для того, чтобы его использовать на практике.
ПРИМЕЧАНИЕ: стрелками на рисунке отражены связи между записями индексной таблицы и записями таблицы базы данных.
Для ускорения поиска используют две технологии: технология поиска по бинарному дереву (B-tree -от Binary Tree)технология поиска с использованием инвертированных списков. Бинарное дерево и инвертированный список являются наиболее распространенными способами организации индексной информации.
Бинарное дерево обычно используется для повышения скорости поиска записи по первичному ключу и применяется только для поиска одной записи.
Инвертированный список используется для поиска по вторичному ключу. При этом возможен поиск группы записей, удовлетворяющих некоторому условию.
В настоящей работе мы не будем рассматривать эти технологии в связи с теоретическим характером материала и направляем заинтересовавшихся к дополнительной литературе по этому вопросу [5].
В Ассеss 2002, как и во многих других СУБД, при создании первичного ключа таблицы создается индексная структура – бинарное дерево. Бинарное дерево будет создано автоматически.
Создадим вторичный индекс для таблицы «Накладная1» для ускорения поиска по полям «Код контрагента» и «Дата операции».
Для этого необходимо выполнить следующую последовательность действий:
1. Открыть таблицу «Накладная1» в режиме конструктора.
2. Выполнить команду Вид → Индексы.
Как видно из рисунка, таблица «Накладная1» уже имеет три индекса: «PrimaryKey», «Код накладной» и «Номер накладной». Эти индексы были автоматически созданы Access 2002 при создании первичного ключа и схемы данных. Для каждого из трех ключей создается отдельная индексная структура – индексная таблица или группа таблиц. Для первичного индекса (PrimaryKey) создается B-дерево.
Индекс «Код накладной» является простыми, т.к. индексируемая часть состоит из одного поля (поля «Код накладной»). Индекс, состоящий из пар значений полей («Код контрагента» и «Дата операции») будет составным. В этом случае, индексируется пара значений: сначала поле «КодКонтрагента», затем уже в рамках выполненной сортировки записей, т.е. в рамках одного контрагента, делается сортировка по второму полю индекса – полю «Дата операции».
3. Добавим в диалог «Индексы» две строки как показано на следующем рисунке:
Как видно из рисунка индекс «Индекс2» состоит из двух полей («Код контрагента» и «Дата операции»), при этом индексная информация в этих полях упорядочивается по возрастанию.
4. Выполнить команду Файл → Сохранить для сохранения изменений в индексах таблицы.
ВНИМАНИЕ! Создание большого числа индексов может существенно замедлить операции добавления и изменения данных. Это происходит в связи с тем, что кроме изменения в самой таблице СУБД необходимо сделать изменения во всех индексных структурах. Поэтому индекс необходимо создавать только для тех полей, по которым поиск происходит чаще всего. Только в этом случае можно ожидать увеличения скорости выполнения операций поиска данных.
è
| Порядок выполнения работы
|
1. Изучить теоретический материал, разбирая все представленные в нем примеры решения типовых задач.
2. Создать базу данных Access 2002.
3. На основе предоставленного в варианте задания описания базы данных создать таблицы. Имена создаваемых таблиц должны совпадать с именами таблиц (сущностей), указанных в варианте задания.
4. В каждой таблице создать поля. Имена создаваемых полей и их типы данных должны соответствовать представленному в варианте описанию.
5. Создать связи между таблицами в соответствии с вариантом задания. При этом для каждой связи установить поддержку обеспечения целостности данных.
6. Создать поля подстановки в таблицах, где это необходимо.
7. Проверить схему базы данных: убедиться в том, что на схеме отражены все таблицы и связи между ними.
1. Дайте определение терминам: СУБД, среда программирования, база данных, приложение базы данных.
2. Что такое объекты базы данных? Перечислите виды объектов базы данных Access 2002.
3. Опишите интерфейс среды Access 2002.
4. Дайте определение понятиям: таблица базы данных, ключевое поле, индексное поле, индекс. Для чего применяются индексы?
5. Опишите процесс создания таблиц базы данных в режиме конструктора.
6. Перечислите основные типы данных, применяемые в таблицах Access 2002, и опишите их назначение.
7. Что такое «свойство поля базы данных»? Опишите основные свойства полей и их назначения.
8. Как создать первичный ключ таблицы?
9. Опишите технологию создания полей подстановки. Зачем необходимо создавать поля подстановки?
10. Раскройте понятие связи между таблицами, виды связей, технология создания связи между таблицами. Зачем необходимо связывать таблицы?
11. Для чего применяется каскадное обновление и каскадное удаление записей? Приведите примеры. Как установить каскадное удаление?
12. Опишите технологию создания индексов в таблице базы данных.
&
| Дополнительная литература
|
1. Робинсон С. Microsoft Access 2000: учебный курс. – СПб.: Питер, 2000.
2. Баркер С.Ф. Профессиональное программирование в Microsoft Access 2002.: Пер. с англ. – М.: «Издательский дом «Вильямс», 2002. – 992 с.
3. В. Пасько. Access 97 (русифицированная версия) – К.: BHV, 1998.
4. Новалис C. Access 97. Руководство по макроязыку и VBA.
5. Карпова Т.С. Базы данных: модели, разработка, реализация. – СПб.: Питер, 2001.
Даны фрагменты таблиц баз данных. Создать базу данных и заполнить данными. Там где требуется, создать поля подстановки для удобства заполнения таблиц.
Поставщики
Код поставщика
| Наименование поставщика
| Адрес
| Телефон
| Ф.И.О. директора
|
| ООО «Омега»
| г. Москва, проспект Вернадского, 44, корп. 2
| 434-22-66
| Иванов И.И.
|
| ЗАО «ПромСтройМаш»
| г. Псков
| 53-72-41
| Тимофеев И.А.
|
| ЗАО «ПродОптТорг»
| г. Подольск
| 3-36-41
| Серегин П.А.
|
| ОАО «АвтоМир»
| г. Зеленоград
| 55-22-44
| Николаев К.С.
|
Группы товаров
Код группы товара
| Наименование группы товара
|
| Автомобили
|
| Продукты питания
|
| Бытовая химия
|
| Строительные материалы
|
| Автооборудование
|
Товары
Код товара
| Наименование товара
| Единица измерения
| Код группы товара
|
| ВАЗ-21010
| шт.
|
|
| ВАЗ-21099
| шт.
|
|
| Мука
| тн
|
|
| Кирпич
| тыс. шт.
|
|
| Порошок стиральный
| кг
|
|
| Насос автомобильный
| шт.
|
|
| Масло растительное
| л
|
|
Поступление товара
Дата операции
| Код поставщика
| Код товара
| Количество
| Цена, руб.
| Сумма,
руб.
| 03.01.2004
|
|
|
| 155 000
| 1 550 000
| 06.01.2004
|
|
|
| 190 000
| 950 000
| 10.01.2004
|
|
|
| 3 000
| 300 000
| 16.01.2004
|
|
|
| 2 000
| 28 000
| 20.01.2004
|
|
|
|
| 30 000
| 21.01.2004
|
|
|
|
| 20 000
| 30.01.2004
|
|
|
|
| 24 000
|
Продажа товара
Дата операции
| Код товара
| Количество
| Цена, руб.
| Сумма, руб.
| 05.01.2004
|
|
| 190 000
| 570 000
| 09.01.2004
|
|
| 220 000
| 440 000
| 20.01.2004
|
|
| 3 000
| 30 000
| 24.01.2004
|
|
|
| 20 000
| 26.01.2004
|
|
|
| 28 000
| 30.01.2004
|
|
| 3 600
| 151 200
| 31.01.2004
|
|
|
| 32 000
| Вариант 2
|
| 1 - 2 ч.
| | | | | | | | | |
Упрощенная даталогическая модель автоматизируемой предметной области «складские операции» представлена в виде детализированной ER-диаграммы. Создать базу данных на основе представленной диаграммы.
Рис. 5.1.ДетализированнаяER-диаграмма (даталогическая модель)
Даны фрагменты таблиц баз данных. Создать базу данных и заполнить данными. Там где требуется, создать поля подстановки для удобства заполнения таблиц.
Покупатели
Код покупателя
| Наименование покупателя
| Адрес
| Телефон
|
| ООО «Магазин №2»
| Владикавказская, 28
| 44-50-63
|
| Магазин «Электротовары»
| Иристонская, 44
| 74-55-65
|
| Магазин «Все для дома»
| пр. Коста, 178, корп. 2
| 53-22-54
|
| ОАО «БытТехника»
| пр. Мира, 15
| 51-42-51
|
Товары
Код товара
| Наименование товара
| Единица измерения
|
| Минеральная вода
| бут.
|
| Масло растительное
| л
|
| Мука
| тн
|
| Лампочка
| шт.
|
| Порошок стиральный
| кг
|
| Кафель 20х20
| м2
|
| Стиральная машина
| шт.
|
Заказ
Код заказа
| Дата заказа
| Код покупателя
|
| 05.01.2004
|
|
| 10.01.2004
|
|
| 14.01.2004
|
|
| 19.01.2004
|
|
| 22.01.2004
|
|
Состав заказа
Код заказа
| Код товара
| Количество
| Цена,
руб.
| Сумма,
руб.
|
|
|
|
|
|
|
|
|
| 5 000
|
|
|
|
| 10 000
|
|
|
|
| 10 000
|
|
|
|
| 150 000
|
|
|
|
| 12 000
|
|
|
|
| 320 000
|
|
|
|
| 20 000
|
|
|
|
| 10 000
|
|
|
|
| 2 000
|
|
|
|
| 1 000
|
|
|
|
| 6 000
|
Отгрузка
Код отгрузки
| Дата отгрузки
| Код покупателя
|
| 09.01.2004
|
|
| 17.01.2004
|
|
| 20.01.2004
|
|
| 25.01.2004
|
|
| 30.01.2004
|
|
Состав отгрузки
Код отгрузки
| Код товара
| Количество
| Цена,
руб.
| Сумма,
руб.
|
|
|
|
|
|
|
|
|
| 5 000
|
|
|
|
| 6 000
|
|
|
|
| 10 000
|
|
|
|
| 150 000
|
|
|
|
| 12 000
|
|
|
|
| 320 000
|
|
|
|
| 20 000
|
|
|
|
| 10 000
|
|
|
|
| 1 000
|
|
|
|
|
|
|
|
|
| 5 400
|
Оплата товара
Код оплаты
| Дата о платы
| Код покупателя
| Сумма,
руб.
|
| 05.01.2004
|
| 15 600
|
| 10.01.2004
|
| 150 000
|
| 14.01.2004
|
| 300 000
|
| 19.01.2004
|
| 18 000
|
| 22.01.2004
|
| 16 000
|
Модель «Фирма по производству пластиковых окон». Даны фрагменты таблиц базы данных. Создать базу данных и заполнить данными, приведенными в таблицах. Там где требуется, создать поля подстановки для удобства заполнения таблиц.
Материалы
Код
материала
| Код группы материала
| Наименование материала
| Ед.
|
|
| П001 Мех. соед. универсальный
| шт.
|
|
| П002 Петля на ств.средн.12/20-9
| шт.
|
|
| П003 Защелка дверная
| шт.
|
|
| П004 Петля рамы верхняя
| шт.
|
|
| П005 Ножницы на раме 310-610 прав.
| шт.
|
|
| П006 Фальцевый вкладыш (шир.)
| шт.
|
|
| П007 Ответная планка
| шт.
|
|
| П008 Уплотнение в коробку (ПРУ-05.022)
| м
|
|
| П009 Коробка 60 мм,(бел./т.дуб)
| м
|
|
| П010 Импост коробки 83мм,(т.дуб/бел.)
| м
|
|
| П011 Подставочный профиль,бел.
| м
|
|
| П012 Соединительный профиль-3,бел.
| м
|
|
| Ф001 Предохранит.ошиб.откр. А2100
| шт.
|
|
| Ф002 Шпингалет отк.,нижн.
| шт.
|
|
| Ф003 Осн.пов.привод DF3 Gr.80 MV (601-800) TS
| шт.
|
|
| Ф004 Передача углов. BS S-ES Gr.70 (ср.зап.)
| шт.
|
|
| Ф005 Опора нижн.петли KF(d=6*24/3) TS
| шт.
|
|
| Ф006 Ножницы 7 Gr.50 (801-1030)
| шт.
|
|
| Ф007 Ножницы 7-DF TS
| шт.
|
|
| Ф008 Опора верхн.петли KF d=6*12 DH TS
| шт.
|
|
| Ф009 Нижняя петля на ств.KF (d=6*16/36)
| шт.
|
|
| Ф010 Запор VSО ( для шт.ств.-шпинг.)
| шт.
|
|
| Ф011 Передача промежут.Gr.230
| шт.
|
|
| Ф012 Ручка окон.,бел.
| шт.
|
Поставщики
Код поставщика
| Наименование поставщика
| Адрес
| Телефон
|
| Поставщик 1
| г. Москва
| 959-55-55
|
| Поставщик 2
| г. Ростов
| 14-55-65
|
| Поставщик 3
| г. Краснодар
| 76-85-44
|
| Поставщик 4
| г. Майкоп
| 3-50-50
|
Клиенты
Код поставщика
| Наименование клиента
| Адрес
| Телефон
|
| Поставщик 1
| ул. Иристонская, 22
| 74-55-44
|
| Поставщик 2
| ул. Ленина, 40, кв. 30
| 43-55-44
|
| Поставщик 3
| ул. Кирова 40, кв. 150
| 72-55-33
|
| Поставщик 4
| ул. Маркова, 20
| 44-55-66
|
Поступление материалов
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|