При побудові складних баз даних одного файлу даних буває недостатньо. Допустимо, нам необхідно сформувати базу даних котра містить список студентів факультету із назвами груп у яких вони вчаться. Якщо усю інформацію зберігати в одному файлі то багато даних буде дублюватися (назва групи повторюється для кожного її студента у відповідному записі). Така організація бази даних має очевидні недоліки:
· При збільшенні (зменшенні) групи на одного студента необхідно добавити новий запис в базу даних.
· При зміні назви групи (а це відбувається кожного року) необхідно скоректувати усі записи котрі відповідають студентам даної групи.
· Зберігається велика кількість інформації котра дублюється, за рахунок цього сповільнюється робота програми, збільшується імовірність появи помилок.
У цьому випадку більш ефективними є бази даних побудованих на реляційній моделі. Вона полягає в тому, що для кожного набору створюється свій файл (таблиця). У нашому випадку, це файл студентів і файл назв груп. У файлі студентів дані про групу вказуються у вигляді посилання на номер запису файлу назв груп. Цим номером однозначно визначається запис у файлі назв груп. Номер запису називають первинним ключем. Програми управління базами даних можуть назначати такий номер автоматично, наприклад, при вводі запису просто нумерують його. Якщо у файлі студентів задається посилання на назву групи то для однозначної відповідності достатньо знання первинного ключа. При допомозі ключа встановлюється відношення (реляція) між двома файлами.
Переваги такої структури бази наступні:
· Централізоване зберігання назв груп та даних про студентів.
· Менші затрати на ввід та корекцію інформації.
· Вища швидкість доступу внаслідок зменшення затрат пам’яті.
Первинний ключ є по суті індексом котрий полегшує пошук інформації всередині великих наборів даних. Індекси полегшують пошук всередині великих наборів даних а також дають змогу значно пришвидшити процес сортування (впорядкування) інформації бо тоді сортуються (переставляються ) не самі записи а спеціально створений індексний файл в якому є тільки первинні ключі і номери записів. Сортування проходить тільки по індексу, самі записи залишаються невпорядкованими.
Поряд з первинним, файл може містити і вторинний індекс. Сортування можна зробити по первинному індексу ( наприклад, вибрати студентів певної групи ) а потім по вторинному ( наприклад, впорядкувати список згідно алфавіту).
Надійність такої бази даних забезпечується так званою перевіркою цілісності даних. Наприклад, якщо у файлі імен студентів є посилання на певний запис файлу імен груп Access не дозволить викинути цей запис з файлу імен груп. При спробі викинути любий запис з файлу Access проглядає базу даних на наявність посилання на цей запис із інших записів зв’язаних файлів. Така перевірка має зміст при наявності коректних зв’язків між файлами.
У сучасних базах даних може існувати велика кількість взаємопов’язаних файлів. Тому розробка структури бази даних шляхом розбиття інформаційної бази на окремі файли із своїми взаємозв’язками є важкою неоднозначною задачею яка не піддається повній формалізації. Вирішення цієї задачі є предметом спеціальної теорії реляційних баз даних. Коротко ця теорія буде розглядатись в наступних лекціях.