Бази даних, приклади
Проста база створюється без моделі. Основні поняття даних і зв’язку невеликі, функціонал дуже простий. Наприклад, для вищого навчального закладу необхідні:
- таблиця викладачів;
- таблиця груп (ключ і номер групи);
- загальна таблиця студентів (використовуються ключі груп).
Декан бажає знати успішність по викладачах. Таблиця викладачів має поля:
- прізвище;
- ім’я;
- по батькові;
- номер курованої групи.
Таблиця студентів має поля:
- прізвище;
- ім’я;
- по батькові;
- дата народження;
- середній бал (з усіх предметів);
- номер групи.
Варіантів вибірки може бути як мінімум два: через ім’я викладача можна вийти на номер групи і подивитися всіх студентів і їх середні бали або прізвища викладача та прізвища студента можна подивитися середній бал останнього.
Навіть у такому простому варіанті гарантовані проблеми і доведеться щось міняти. Ситуація: викладач захворів, місяць його заміщує інший, значить, курирує дві групи. Передбачено лише одне поле під одним номером групи в таблиці викладачів.
Для вирішення проблеми потрібно додавати дублююче полі. А якщо два захворіють, то додавати три поля. Так таблиця викладачів починає рости на порожньому місці.
Є ще один варіант: замінити цифрове поле ключа групи на символьне. Тоді доведеться щоразу при вибірці перетворювати рядок у послідовність ключів, і один sql-запит перетвориться на кілька.
Більш перспективний приклад – не робити таблиці, а зробити об’єкти. Тоді викладач – це об’єкт, і у нього може бути кілька своїх підшефних груп. Але це завжди один об’єкт. У об’єкта викладач є унікальний ключ, але може бути кілька своїх підшефних груп. У групи є також унікальний ключ. У студента теж.
Всі три позиції не тільки доступні в межах поставленої задачі, але і можуть розвиватися далі.