- •Поняття баз даних.
- •Реляційні бази даних
- •1.3. Первинні ключі та індекси
- •1.4. Реляційні відношення (зв’язки) між таблицям
- •1.4.1. Відношення "один-до-багатьох"
- •1.4.2. Відношення "один-до-одного"
- •1.4.3. Відношення "багато-до-багатьох"
- •1.4.4. Зв’язки між записами однієї таблиці
- •1.5. Цілісність посилань (referencial integrity)
- •Індекси.
- •Поняття транзакцій
- •Локальні та файл-серверні бази даних
- •Загальний огляд засобів для роботи з базами даних
- •Побудова додатків баз даних в архітектурі "клієнт-сервер"
- •Interbase: деякі технічні характеристики
- •Питання з'єднання з видаленим сервером
- •Приклад бд “Облік товарів на складі”
- •Зміна визначення домена – після create domain (крім типу та not null)
- •Первинний ключ
- •Зовнішній ключ та визначення цілісності посилань
- •Використання генераторів та збережених процедур
- •Знищення таблиці
- •Використання підрядків (containing)
- •Додавання, зміна, видалення записів
- •Оператор insert
- •Явне вказання списку значень
- •Вказання значень за допомогою оператора select
- •Оператор delete
1.4. Реляційні відношення (зв’язки) між таблицям
1.4.1. Відношення "один-до-багатьох"
Таблиця “Товари”
Товар |
Од. вим.
|
Ціна од. |
Цукор |
кг |
4 |
Макарони |
кг |
5 |
Сіль |
кг |
1 |
Живчик |
бут. 2 л. |
5 |
Таблиця “Відпуск товарів”
Товар |
Дата |
Кількість (од.) |
Цукор |
10.02.07 |
100 |
Цукор |
12.02.07 |
200 |
Цукор |
14.02.07 |
50 |
Макарони |
11.02.07 |
100 |
Макарони |
12.02.07 |
50 |
Живчик |
10.02.07 |
200 |
Живчик |
12.02.07 |
300 |
Рис. 1.3 Зв’язок “один-до-багатьох”
Як видн из рис. 1.3, одному запису з батьківської таблиці "Товари" може відповідати декілька записів у дочірній таблиці "Відпуск товарів". Зверність увагу на дієслово може: воно означає, що така можливість - потенційна і що у батьківській таблиці можуь бути записи, для яких у цей момент немає записів у дочірній таблиці (наприклад, товар "Сіль").
Тому розрізняють два різновиди зв’язку "один-до-багатьох" - у першому випадку висувається жорстка вимога – кожному запису в батьківській таблиці повинні відповідати записи в дочірній; у другому випадку така вимога не є жорсткою і маємо на увазі (як у наведеному прикладі), що деякі записи в батьківській таблиці можуть не мати пов’язаних з ними записів у дочірній таблиці.
Зв’язок "один-до-багатьох" є найпоширенішим для реляційних баз даних. Він дозволяє моделювати ієрархії даних.
1.4.2. Відношення "один-до-одного"
Відношення "один-до-одного" має місце, коли одному запису в батьківській таблиці відповідає один запис у дочірній таблиці (рис. 1.4.).
Таблиця “Співробітники”
№ |
П.І.Б
|
Посада |
Відділ |
1 |
Іваненко І.І. |
Інженер |
10 |
2 |
Петренко П.П. |
Бухгалтер |
20 |
3 |
Василенко В.В. |
Виконроб |
10 |
... |
... |
... |
... |
Таблиця “Інформація про співробітників”
№ |
Рік нар. |
Кількість дітей |
... |
1 |
1960 |
3 |
... |
2 |
1962 |
1 |
... |
3 |
1970 |
2 |
.... |
... |
|
|
... |
Рис. 1.4 Зв’язок “один-до-одного”
Дане відношення трапляється значно рідше, аніж відношення "один-до-багатьох". Його використовують, якщо не бажають, щоб таблиця БД "переповнювалась" другорядною інформацією. Зв’язок "один-до-одного" веде до того, що для читання пов’язаної інформації в декількох таблицях доводиться виконувати декілька операцій читання замість однієї, коли дані зберігаються в одній таблиці. Окрім того, бази даних, до складу яких входять таблиці зі зв’язком "один-до-одного", не можуть вважатися повністю нормалізованими (о нормалізації див. нижче).
Так як і зв’язок “один-до-багатьох” зв’язок "один-до-одного" може бути жорстким і нежорстким.
