
- •1. Поняття про бази даних та системи управління базами даних
- •2. Моделі баз даних
- •3. Реляційні бази даних
- •4. Ключі та індекси
- •5. Зв’язок між таблицями
- •6. Методи і способи доступу до даних
- •7. Робота з sql Server
- •8. Опис мови sql
- •9. Типи даних в sql
- •10. Визначення даних засобами sql
- •11. Відбір даних із таблиць засобами sql
- •12. Створення та використання таблиць бд засобами sql Server Enterprise Manager
- •13. Відбір даних із таблиць за допомогою графічних інструментів sql Server
- •Список літератури
3. Реляційні бази даних
Реляційна база даних представляється користувачу як сукупність таблиць. Всі таблиці складаються з рядка заголовків стовпців і однієї чи більше рядків значень даних під цими заголовками. Ці стовпці і рядки повинні мати наступні властивості:
будь-якому стовпцю таблиці присвоєне ім'я, що повинне бути унікальним для цієї таблиці;
стовпці таблиці упорядковуються зліва направо, тобто стовпець 1, стовпець 2, ..., стовпець n. З математичної точки зору це твердження некоректне, тому що в реляційній системі стовпці не упорядковані. Однак з погляду користувача, порядок, у якому визначені імена стовпців, стає порядком, у якому повинні вводитися в них дані, якщо не випереджати при введенні кожне значення ім'ям відповідного стовпця;
рядки таблиці не упорядковані (їх послідовність визначається лише послідовністю введення в таблицю);
у полі на перетині рядка і стовпця будь-якої таблиці завжди може бути тільки одне значення даних і ніколи не повинно бути декількох значень (правда, це "атомарне" значення може бути досить об'ємним);
усім рядкам таблиці відповідає та сама кількість стовпців, хоча у визначених стовпцях будь-який рядок може містити порожні значення (NULL-значення), тобто може не мати значень для цих стовпців;
усі рядки таблиці обов'язково відрізняються один від одного хоча б одним значенням, що дозволяє однозначно ідентифікувати будь-який рядок такої таблиці;
при виконанні операцій з таблицею її рядка і стовпці можна обробляти в будь-якому порядку безвідносно до їхнього інформаційного змісту.
База даних, яка складається з таких таблиць, називається реляційною, тому що відношення relatіon - це просто математичний термін для позначення неупорядкованої сукупності однотипних записів або таблиць визначеного специфічного вигляду.
Реляційні системи беруть свій початок у математичній теорії множин. Вони були запропоновані наприкінці 1968 року доктором Э.Ф.Коддом з фірми ІBM, який першим усвідомив, що можна використовувати математику для надання надійної основи і строгості області керування базами даних.
Нечіткість багатьох термінів, які використовуються у сфері обробки даних, змусила Кодда відмовитися від них і придумати нові або дати більш точні визначення існуючим. Так, він не міг використовувати широко розповсюджений термін "запис", який у різних ситуаціях може означати екземпляр запису, або тип записів, запис у стилі Кобола (яка допускає групи, які повторюються), логічний запис або фізичний запис, збережений запис або віртуальний запис і т.д. Замість цього він використовував термін "кортеж довжини n" або просто "кортеж", якому дав точне визначення. У літературі можна докладно ознайомитися з термінологією реляційних баз даних, а тут ми будемо використовувати неформальні їх еквіваленти:
таблиця для відношення,
рядок або запис для кортежу,
стовпець або поле для атрибуту.
4. Ключі та індекси
У правильно побудованій реляційній базі даних у кожній таблиці є один чи кілька стовпців, значення в яких у всіх рядках різні. Цей стовпець називається первинним ключем таблиці. Простий ключ складається з одного поля, а складений – з кількох полів. Поля, за якими побудований ключ, називаються ключовими. В таблиці може бути визначений тільки один ключ. Ключ забезпечує:
однозначну ідентифікацію записів таблиці;
застереження повторення значень ключа;
прискорення виконання запитів до БД;
встановлення зв’язку між окремими таблицями БД.
Ключ також називають первинним ключем або первинним (головним) індексом. Інформація про ключ може зберігатися в окремому файлі або разом з даними таблиці.
Таблиці різних форматів мають свої особливості побудови ключів. Разом з тим існують і загальні правила, суть яких полягає в наступному.
Ключ повинен бути унікальним. У складеного ключа значення окремих полів (але не всіх одночасно) можуть повторюватися.
Ключ повинен бут достатнім і ненадлишковим, тобто не містити поля, які можна знищити без порушення унікальності ключа.
В склад ключа не можуть входити поля деяких типів, наприклад, графічне поле або поле коментаря.
Індекс, як і ключ, будується за полями таблиці, однак він може допускати повторне значення полів, що його утворюють, в цьому заключається його основна відмінність від ключа. Поля, за якими побудований індекс, називають індексними. Простий індекс складається з одного поля, а складений (складний) – з кількох полів. Створення індекса називають індексуванням таблиці. Використання індекса забезпечує:
збільшення швидкості доступу (пошуку) до даних;
сортування записів;
встановлення зв’язку між окремими таблицями БД.
Як і ключ, індекс являє собою своєрідний заголовок таблиці, перегляд якого виконується перед зверненням до її записів. Таким чином, використання індекса підвищує швидкість доступу до даних в таблиці за рахунок того, що доступ виконується не послідовним, а індексно-послідовним методом.
Сортування полягає у впорядкуванні записів за полем або за групою полів в порядку зростання або зменшення їх значень. Індекс служить для сортування таблиць за індексними полями.
Для однієї таблиці можна створити декілька індексів. В будь-який момент часу один з них можна зробити поточним, тобто активним. Ключові поля зазвичай автоматично індексуються.
Таким чином, використання ключів та індексів дозволяє: однозначно ідентифікувати записи, виконувати сортування таблиць, прискорювати операції пошуку в таблицях, встановлювати зв’язки між окремими таблицями БД, використовувати обмеження зсилочної цілісності.