
- •Поняття баз даних.
- •Реляційні бази даних
- •1.3. Первинні ключі та індекси
- •1.4. Реляційні відношення (зв’язки) між таблицям
- •1.4.1. Відношення "один-до-багатьох"
- •1.4.2. Відношення "один-до-одного"
- •1.4.3. Відношення "багато-до-багатьох"
- •1.4.4. Зв’язки між записами однієї таблиці
- •1.5. Цілісність посилань (referencial integrity)
- •Індекси.
- •Поняття транзакцій
- •Локальні та файл-серверні бази даних
- •Загальний огляд засобів для роботи з базами даних
- •Побудова додатків баз даних в архітектурі "клієнт-сервер"
- •Interbase: деякі технічні характеристики
- •Питання з'єднання з видаленим сервером
- •Приклад бд “Облік товарів на складі”
- •Зміна визначення домена – після create domain (крім типу та not null)
- •Первинний ключ
- •Зовнішній ключ та визначення цілісності посилань
- •Використання генераторів та збережених процедур
- •Знищення таблиці
- •Використання підрядків (containing)
- •Додавання, зміна, видалення записів
- •Оператор insert
- •Явне вказання списку значень
- •Вказання значень за допомогою оператора select
- •Оператор delete
Індекси.
Після задання первинного та вторинного ключів СУБД автоматично будує індекси, як механізми швидкого доступу до даних у таблицях.
Індекси містять впорядковані значення індексних полів і вказівник на запис у таблиці.
Наприклад, нехай є таблиця (рис. 1.11.)
Порядковий № запису |
Дата приходу товару |
Назва товару |
Кількість, кг |
1 |
10.12. 2007 |
Цукор |
10 |
2 |
12.12. 2007 |
Картопля |
50 |
3 |
12.12. 2007 |
Буряк |
20 |
4 |
14.12. 2007 |
Цукор |
50 |
5 |
14.12. 2007 |
Картопля |
10 |
6 |
16.12. 2007 |
Сливи |
4 |
Рис. 1.11. Фізична структура таблиці
З логічної точки зору індекси мають такий вигляд (рис. 1.12):
По даті приходу товару |
По назві товару |
По кількості |
|||
Дата приходу |
№ запису |
Товар |
№ запису |
Кількість |
№ запису |
10.12.2007 |
1 |
Буряк |
3 |
4 |
6 |
12.12.2007 |
2 |
Картопля |
2 |
10 |
1 |
12.12.2007 |
3 |
Картопля |
5 |
10 |
5 |
14.12.2007 |
4 |
Сливи |
6 |
20 |
3 |
14.12.2007 |
5 |
Цукор |
1 |
50 |
2 |
16.12.2007 |
6 |
Цукор |
4 |
50 |
4 |
Рис. 1 12 Логічна структура індексів
Зверніть увагу: значення полів в кожному індексі сортуються за зростанням, що суттєво прискрює пошук потрібних значень. Якщо, наприклад, потрібно вибрати всі записи з назвою товару "Картопля", нема потреби переглядати всю таблицю. Досить знайти в індексі, що побудований на стовпці "Назва товару", перший вказівник на запис, що містить товар "Картопля", і зчитати з таблиці цей запис, а потім повторити те ж для всіх інших вказівників в индексі на записи з товаром "Картопля".
Оскільки значення полів відсортовані, пошук першого вказівника виконується спеціальними методами швидкого пошуку і реалізується значно швидше, ніж якби пошук йшов по невідсортованим полям таблиці (послідовний метод доступу). Такий метод доступу до записів таблиці називається індексно-послідовним, тому що:
пошук йде по індексу, а не по самій таблиці;
доступ починається безпосередньо з першого рядка, що задовільняє умові запиту або його частині;
рядки в індексі, починаючи з першого знайденого запису, переглядаються послідовно.
У тому випадку, якщо в умови запиту входять поля, по яким не побудовано індексів, відшукується інший придатний індекс; якщо такого індекса немає, виконується послідовний перебір записів таблиці БД.