- •Лекція 7 «технологія клієнт-сервер»
- •1. Основні поняття
- •2. Реляційні бази даних
- •3. Реляційні зв'язки між таблицями баз даних
- •Відношення «один-до-багатьох»
- •Відношення «один-до-одного»
- •Відношення «багато-до-багатьох»
- •4. Стандарт і реалізація мови sql
- •5. Введення в технологію клієнт-сервер
- •6. Роль сервера. Класифікація серверів
- •Класифікація стандартних серверів
- •1. Універсальні сервери
- •2. Файл-сервери
- •3. Сервери доступу до даних
- •4. Сервери віддаленого доступу
- •5. Сервери розподілу ресурсів
- •7. Типи команд sql
- •9. Проблеми технології «клієнт-сервер»
Відношення «один-до-багатьох»
Відношення «один-до-багатьох» має місце, коли одного запису батьківської таблиці може відповідати кілька записів дочірньої. Зв'язок «один-до-багатьох» іноді називають зв'язком "багато-до-одного". І в тім, і в іншому випадку сутність зв'язку між таблицями залишається незмінною. Зв'язок «один-до-багатьох» є найпоширенішою для реляційних баз даних. Вона дозволяє моделювати також ієрархічні структури даних.
Відношення «один-до-одного»
Відношення «один-до-одного» має місце, коли одного запису в батьківській таблиці відповідає один запис у дочірній. Це відношення зустрічається набагато рідше, ніж відношення «один-до-багатьох». Його використають, якщо не хочуть, щоб таблиця БД "розпухала" від другорядної інформації, однак для читання зв'язаної інформації в декількох таблицях доводиться робити ряд операцій читання замість однієї, коли дані зберігаються в одній таблиці.
Відношення «багато-до-багатьох»
Відношення «багато-до-багатьох» застосовується в наступних випадках:
одного запису в батьківській таблиці відповідає більше одному запису в дочірній;
одного запису в дочірній таблиці відповідає більше одному запису в батьківській.
Усякий зв'язок «багато-до-багатьох» у реляційній базі даних необхідно замінити на зв'язок «один-до-багатьох» (одну або більше) за допомогою введення додаткових таблиць.
4. Стандарт і реалізація мови sql
Ріст кількості даних, необхідність їхнього зберігання й обробки привели до того, що виникла потреба в створенні стандартної мови баз даних, що міг би функціонувати в численних комп'ютерних системах різних видів. Дійсно, з його допомогою користувачі можуть маніпулювати даними незалежно від того, чи працюють вони на персональному комп'ютері, мережної робочої станції або універсальної ЕОМ.
Однією з мов, що з'явилися в результаті розробки реляційної моделі даних, є мова SQL (Structured Query Language), що у цей час одержала дуже широке поширення й фактично перетворився в стандартну мову реляційних баз даних. Стандарт на мову SQL був випущений Американським національним інститутом стандартів (ANSI) в 1986 р., а в 1987 р. Міжнародна організація стандартів (ISO) прийняла його в якості міжнародного. Нинішній стандарт SQL відомий за назвою SQL/92.
З використанням будь-яких стандартів зв'язані не тільки численні й цілком очевидні переваги, але й певні недоліки. Насамперед, стандарти направляють у певне русло розвиток відповідної індустрії; у випадку мови SQL наявність твердих основних принципів приводить, в остаточному підсумку, до сумісності його різних реалізацій і сприяє як підвищенню переносимости програмного забезпечення й баз даних у цілому, так й універсальності роботи адміністраторів баз даних. З іншого боку, стандарти обмежують гнучкість і функціональні можливості конкретної реалізації.
Під реалізацією мови SQL розуміється програмний продукт SQL відповідного виробника. Для розширення функціональних можливостей багато розроблювачів, що дотримуються прийнятих стандартів, додають до стандартної мови SQL різні розширення. Слід зазначити, що стандарти жадають від будь-якої закінченої реалізації мови SQL наявності певних характеристик і загалом відбивають основні тенденції, які не тільки приводять до сумісності між всіма конкуруючими реалізаціями, але й сприяють підвищенню значимості програмістів SQL і користувачів реляційних баз даних на сучасному ринку програмного забезпечення.
Всі конкретні реалізації мови трохи відрізняються одна від одної. В інтересах самих же виробників гарантувати, щоб їхня реалізація відповідала сучасним стандартам ANSI у частині переносимости й зручності роботи користувачів. Проте кожна реалізація SQL містить удосконалення, що відповідають вимогам того або іншого сервера баз даних. Ці вдосконалення або розширення мови SQL являють собою додаткові команди й опції, що є додаваннями до стандартного пакета й доступні в даній конкретній реалізації.
У цей час мова SQL підтримується багатьма десятками СУБД різних типів, розроблених для найрізноманітніших обчислювальних платформ, починаючи від персональних комп'ютерів і закінчуючи мейнфреймами.
Всі мови маніпулювання даними, створені для багатьох СУБД до появи реляційних баз даних, були орієнтовані на операції з даними, представленими у вигляді логічних записів файлів. Зрозуміло, це жадало від користувача детального знання організації зберігання даних і серйозних зусиль для вказівки того, які дані необхідні, де вони розміщаються і як їх одержати.
Розглянута мова SQL орієнтована на операції з даними, представленими у вигляді логічно взаємозалежних сукупностей таблиць-відносин. Найважливіша особливість його структур – орієнтація на кінцевий результат обробки даних, а не на процедуру цієї обробки. Мова SQL сама визначає, де перебувають дані, індекси й навіть які найбільш ефективні послідовності операцій варто використати для одержання результату, а тому вказувати ці деталі в запиті до бази даних не потрібно.
