Основою бази даних є модель даних. Інформаційно-логічна (інфологіческая) модель предметної області відбиває предметну область у вигляді сукупності інформаційних об'єктів і їх структурних зв'язків.
Інформаційний об'єкт - це опис деякої сутності (явища, реального об'єкта, процесу) у вигляді сукупності логічно пов'язаних реквізитів. Наприклад, інформаційний об'єкт Студент описує деяку сутність - студент. Реквізитний складу цього інформаційного об'єкта, тобто його структура, наступний: № групи. ПІБ, № залікової книжки, Дата народження. Інформаційний об'єкт має безліч реалізацій - примірників.
Приклад інфологічної моделі:
Ріс.133 Приклад зв'язку "Багато-до-багатьох"
Розрізняють моделі даних трьох типів:
Ієрархічна (деревоподібна) модель даних являє собою ієрархію елементів, званих вузлами. Вузол - це сукупність атрибутів даних, що описують інформаційний об'єкт. На самому верхньому рівні є тільки один вузол - корінь. Кожен вузол крім кореня пов'язаний тільки з одним вузлом на більш високому рівні, званим вихідним вузлом для даного вузла. Кожен вузол може бути пов'язаний з одним або декількома вузлами нижчого рівня, званими породженими (підлеглими). Вузли, які не мають породжених, називаються листям. Кількість дерев в базі даних визначається числом кореневих записів. До кожного запису бази даних існує тільки один шлях.
Мережева модель також ґрунтується на поняттях вузол, рівень, зв'язок. Мережева модель даних - це модель, в якій породжений вузол може мати більше одного вихідного вузла. В мережевій структурі будь-який елемент будь-якого рівня може бути пов'язаний з будь-яким іншим елементом.
Реляційна модель даних - це безліч взаємопов'язаних двовимірних таблиць. Кожна таблиця містить відомості про однорідні об'єкти бази даних і має такі властивості:
- кожен елемент таблиці являє собою один елемент даних;
- елементи одного стовпця однорідні;
- кожен стовпець має унікальне ім'я;
- таблиця не містить двох і більше однакових рядків;
- порядок проходження рядків і стовпців довільний.
Такі таблиці називаються реляційними. Дані можуть вилучатись одночасно з декількох таблиць. Це виявляється можливим, якщо встановити між таблицями зв'язку. Таблиці зв'язуються між собою для того, щоб, в кінцевому рахунку, зменшити обсяг БД. Зв'язок кожної пари таблиць забезпечується при наявності в них однакових стовпців.
Реляційні моделі даних.
Рядок реляційної таблиці - називається записом, а стовпці називаються полями. Запис являє собою один екземпляр інформаційного об'єкту. Поле відображає якусь властивість цього об'єкта. Кожне поле характеризується:
Для однозначного визначення кожного запису може використовуватися ключ. Ключ може складатися з одного або декількох полів записи. Якщо ключ складається з кількох полів, він називається складеним. Ключ повинен бути унікальним і однозначно визначати запис. За значенням ключа можна відшукати єдиний запис. Ключі служать також для впорядкування інформації в БД.
Таблиці реляційної БД повинні відповідати вимогам нормалізації відносин. Нормалізація відносин - це формальний апарат обмежень на формування таблиць, який дозволяє усунути дублювання, забезпечує несуперечність збережених в базі даних, зменшує трудовитрати на ведення бази даних.
Нехай створена таблиця Студент. містить наступні поля: № групи, ПІБ, № заліковки, Дата народження, Назва спеціальності, Назва факультету. Така організація зберігання інформації матиме ряд недоліків:
- дублювання інформації (найменування спеціальності і факультету повторюються для кожного студента), отже, збільшиться обсяг БД;
- процедура поновлення інформації в таблиці ускладнюється через необхідність редагування кожного запису таблиці.
Нормалізація таблиць призначена для усунення цих недоліків.
Є три нормальні форми відносин.
Перша нормальна форма. Реляційна таблиця приведена до першої нормальної формі, якщо всі її поля прості (тобто далі неподільні). Так, якщо з таблиці Студент потрібно отримувати відомості по імені студента, то поле ПІБ слід розбити на частини Прізвище, Ім'я, По батькові.
Друга нормальна форма. Реляційна таблиця задана в другій нормальній формі, якщо вона приведена до першої нормальної формі, і кожен неключових поле повністю залежить від будь-якого можливого ключа. Щоб привести таблицю до другої нормальної форми, необхідно визначити функціональну залежність полів. Функціональна залежність полів - це залежність, при якій в екземплярі інформаційного об'єкта певному значенню ключового реквізиту відповідає тільки одне значення описового реквізиту.
Третя нормальна форма. Таблиця знаходиться в третій нормальній формі, якщо вона знаходиться в другій нормальній формі, і відсутня транзитивній залежність полів. Транзитивная залежність спостерігається в тому випадку, коли одне з двох описових полів залежить від ключа, а інше описовий поле залежить від першого описового поля. Наприклад, в таблиці Студент (№ групи, ПІБ, № залікової книжки, Дата народження, Староста) три поля: № залікової книжки, № групи, Староста знаходяться в транзитивної залежності. № групи залежить від № залікової книжки. а Староста залежить від № групи. Для усунення транзитивної залежності необхідно частину полів таблиці Студент перенести в іншу таблицю Група. Таблиці приймуть такий вигляд: Студент (№ групи, ПІБ, № залікової книжки, Дата народження), Група (№ групи, Староста).
Над реляційними таблицями можливі наступні операції:
- Об'єднання таблиць з однаковою структурою. Результат - загальна таблиця: спочатку перша, потім друга (конкатенація).
- Перетин таблиць з однаковою структурою. Результат - вибираються ті записи, які знаходяться в обох таблицях.
- Віднімання таблиць з однаковою структурою. Результат - вибираються ті записи, які не мають в віднімається.
- Вибірка (горизонтальне підмножина). Результат - вибираються записи, що відповідають певним умовам.
- Проекція (вертикальне підмножина). Результат - відношення, що містить частину полів з вихідних таблиць.
- Декартово твір двох таблиць. Записи результуючої таблиці виходять шляхом об'єднання кожного запису першої таблиці з кожним записом іншої таблиці.