- •6.050604 "Енергомашинобудування"
- •Основні поняття баз даних (бд). Моделі бд.
- •Моделі даних
- •Скбд для пк і їх призначення
- •Термінологія і структура даних в скбд
- •Типи файлів
- •Сруктура команд скбд
- •Команди установок
- •Створення файлу бд
- •3. Команди роботи з бд
- •3.1. Команди відкриття та закриття файлу бд
- •3.2. Команда доповнення бази даних записами
- •3.3. Команди редагування даних
- •3.4. Команди переміщення в бд
- •3.5. Команди перегляду записів
- •3.6. Команди вилучення записів
- •3.7. Команда вставлення записів.
- •3.8. Команда заміни даних
- •4. Упорядкування записів в бд
- •4.1. Сортування бд
- •4.2. Індексування баз даних.
- •Відкриття індексних файлів
- •Керування індексами.
- •Пошук потрібних записів
- •5.1. Фільтрація записів.
- •5.2. Пошук окремого запису в базі даних
- •Прискорений пошук
- •6. Обробка записів бази даних
- •Обчислення підсумків
- •Обчислення середніх значень
- •7. Створення командних файлів
- •Завдання для самостійної роботи.
- •Створити бд заданої структури.
- •Лабораторна робота №1 Тема: Створення файлу бази даних.
- •Лабораторна робота №2 Тема: Створення командних файлів для упорядкування та обробки записів бд
- •Лабораторна робота №3 Тема: Створення командних файлів для пошуку потрібних записів в бд
- •Література
4.2. Індексування баз даних.
Індексування БД суттєво прискорює пошук інформації в базі. Як і сортування, індексування забезпечує можливість доступу до записів БД у порядку зростання (спадання) значень ключового поля, але на відміну від сортування не змінює порядок фізичного розміщення записів початкової бази на магнітному диску.
Процес індексування полягає в тому, що для основної БД створюється додатковий індексний файл, записи якого містять одне, так зване, ключове поле. В цьому ключовому полі записуються номера записів, які визначають порядок зчитування даних основної бази.
Головна перевага індексування – майже незалежність часу пошуку від розміру БД.
Один файл БД може бути проіндексований по декілька полям і мати будь-яке число індексів (індексних файлів), яке обмежено тільки дисковою пам’яттю комп’ютера. Індексні файли містять інформацію про розташування записів файлу БД в алфавітному, хронологічному або числовому порядку для тих полів, по яким виконується індексування.
Індексійні файли займають певне місце на диску. Розмір індексного файлу можно порівняти з розміром дискового простору, який займає поле бази даних, но в якому проведено індексування.
У FoxPro можна створювати два типии індексних файлів:
- Звичайний індексний файл. Він має розширення IDX і містить один індексний ключ. Його звуть також одноіндексним файлом.
- Мультііндексний файл з розширенням CDX. Такий файл може зберігати зразу ж декілька індексних виразів і являє собою поєднання декілька простих індексних файлів.
Мультііндексні файли можуть бути двох типів:
- структурний мультііндексний файл з ім'ям, співпадаючим з іменем БД;
- звичайний індексний файл з довільним ім'ям.
Розглянемо створення тільки одноіндексних файлів. Щоб проіндексувати файл треба використати команду:
INDEX ON <вир.> TO < IDX – файл > [FOR < умова >]
<вир.> - індексний ключ вираз. Його довжина може досягати 100 символів для IDX – файлів. Ключ означає ім'я поля, по якому треба упорядкувати файл. Ключ може складатись з декілька полів. Для індексування по декілька символьним полям, значення цих полів з'єднуються за допомогою операції конкатенації (зчеплення), яка позначається знаком + (плюс).
FOR < умова > - ця опція встановлює режим відбору в індекс тільки тих записів бази даних, які відповідають заданій < умові >. Такий діючий як фільтр, індексний файл забезпечує включно швидкий доступ до потрібних даних.
Індексування на відміну від сортування не змінює порядок слідування записів у вихідній базі даних. У результаті індексування створюється додатковий файл з іменем, що задається в опції TO.
Розглянемо приклади.
Упорядкувати базу даних RETING.DBF за зростанням оцінок з вищої математики. Для цього треба створити індексний файл по полю ВМ1. Надамо йому ім'я RETBM1.IDX ( розширення .IDX можна не указувати):
USE RETING
INDEX ON BM1 TO RETBM1.IDX
LIST NZAL, BM1
Ці команди спочатку відкривають базу даних RETING.DBF, а потім створюють індексний файл RETBM1.IDX по ключовому полю BM1 командою INDEX ON BM1 TO RETBM1.IDX.
Індексний файл RETBM1.IDX містить значення ключового поля BM1 активної бази даних, що розташовані за зростанням
Команда LIST NZAL, BM1 виводить записи на екран у відповідності з індексним файлом:
Рис 4.2
Розглянемо приклад індексування бази даних по декільком символьним полям.
Упорядкувати базу даних SPISOK.DBF використовуючи зчеплення (конкатенація) трьох символьних полів PRIZV, NAME, POBAT: PRIZV+NAME+POBAT. Результатом зчеплення є приєднання послідовності символів другого поля до послідовності символів першого поля і потім приєднання до одержаної послідовності символів значення третього поля.. Надамо індексному файлу ім'я SP_PRIZV.IDX:
USE SPISOK
INDEX ON PRIZV+NAME+POBAT TO SP_PRIZV.IDX
LIST NGRUP, PRIZV, NAME, POBAT
Індексний файл містить значення зчеплення PRIZV+NAME+POBAT активної бази даних, що розташовані за зростанням. Команда LIST NGRUP, PRIZV, NAME, POBAT виводить записи у відповідності з індексним файлом:
Р
ис
4.3
Як бачимо, використання зчеплення PRIZV+NAME+POBAT надало можливість упорядкувати записи спочатку за прізвищем, при однаковому прізвищі – за іменем, і при однаковому імені – за значенням по батькові.
