“Створення двохвимірних таблиць”
Індекси та ключі
Для зв’язування таблиць у реляційних СУБД використовують ключі. Ключем називають сукупність полів таблиці, значення яких ідентифікують її записи. Первинним ключем називають такий ключ, який однозначно ідентифікує записи таблиці. Іншими словами, значення первинного ключа є унікальним для даної таблиці. Часто первинний ключ складається з одного поля. Наприклад, первинним ключем таблиці Особи має бути поле ТабНомер, і аж ніяк не Прізвище, оскільки записів з однаковим табельним номером не повинно бути. Водночас можна очікувати на записи, де є однакові прізвища.
Впорядкування записів таблиці за значенням ключа називають індексацією, а отриманий образ таблиці – індексом. Взагалі фізично таблиці та індекси можуть зберігатися у різних файлах (як, наприклад, у СУБД MS FoxPro). У MS Access всі обєкти бази даних (у тому числі і індекси) зберігаються в одному файлі.
Для уникнення непотрібних повторювань даних, яке може бути причиною помилок при введені даних, і нераціонального використання дискового простору компютера проектування таблиць завершується їх нормалізацією – процесом зменшення надлишкової інформації [3]. Так, згідно з принципами нормалізації таблицю Особи слід редагувати, замінивши в ній поле Освіта на КодОсвіти (тип даних С, розмір 1), а крім цього ввести ще таблицю Освіта з двома полями КодОсвіти та Освіта, які співпадають з відповідними полями у модифікованій та немодифікованій таблиці Особи . Таблицю Освіта будемо ще називати таблиця-довідник Освіта .
Взагалі таблиці створюються так, щоб задовольнити трьом нормальним формам:
Перша нормальна форма
1.Таблиця не має записів, що повторюються.
2.У таблиці відсутні групи полів, що повторюються.
3.Рядки повинні бути не впорядковані.
4.Стовпчики повинні бути не впорядковані.
Зрозуміло, щоб задовольнити умові 1, кожна таблиця повинна мати первинний ключ.
Друга нормальна форма
1.Таблиця задовольняє умовам першої нормальної форми.
2.Будь-яке неіндексне поле однозначно ідентифікується повним набором індексних полів.
Очевидно, що таблиці, які мають один первинний ключ автоматично задовольняють умові 2.
Третя нормальна форма
1.Таблиця задовольняє умовам другої нормальної форми.
2.Жодне з неіндексних полів таблиці не ідентифікується за допомогою іншого неіндексного поля.
Процес нормалізації таблиць, як правило, супроводжується створенням окремих додаткових таблиць, які повязані між собою з використанням введених первинних ключів. Повертаючись до таблиці Особи, відмітимо, що її первинним ключем буде поле ТабНомер. Очевидно первинним ключем таблиці Освіта буде поле КодОсвіти. Тепер настає черга побудови таблиць: