Архітектури доступу до даних

Насамперед, SQL Server є сервером баз даних Сама по собі СУБД не може задовольнити потреби кінцевого користувача (якщо, звичайно, не розглядати редактор запитів як інтерфейс користувача) Якщо ви мало знайомі з моделлю клієнт / сервер, її потрібно зрозуміти, в іншому випадку буде складно зрозуміти і саму СУБД

Модель баз даних клієнт / сервер

З технічної точки зору термін клієнт / сервер повязаний з двома взаємодіючими процесами Клієнтський процес запитує у серверного процесу якусь службу, яка, в свою чергу, обробляє запит клієнта Клієнтський і серверний процеси можуть бути запущені на різних компютерах або на одному У даному питанні важливо сама взаємодія процесів, а не їх фізичне розміщення

Покоління SQL Server

Рис 31 SQL Server 2005 – більш ніж оновлена ​​версія продукту Враховуючи таке безліч абсолютно нових архітектурних рішень, цю систему можна назвати платформою баз даних третього покоління

Термін клієнт / сервер зачіпає багато аспектів обчислень Файлові сервери, сервери друку і постачальники служб Інтернету (провайдери) – це приклади реалізації моделі клієнт / сервер. Файлові сервери відкривають доступ користувачеві до файлів, сервери друку обробляють запити до принтерів, а провайдери обслуговують запити до служб Інтернету У базах даних архітектури клієнт / сервер сервер баз даних обслуговує запити до бази від клієнтського процесу

Бази даних архітектури клієнт / сервер

На противагу настільним баз даних, таким як Microsoft Access, виконуючим всю роботу на компютері клієнта, бази даних з архітектурою клієнт / сервер подібні бібліотекаря, який приймає запит клієнта, шукає запитану інформацію і повертає фотокопію знайдених матеріалів Вміщені в бібліотеці реальні матеріали ніколи не виходять з поля зору бібліотекаря

У базах даних з архітектурою клієнт / сервер клієнт готує запит на мові SQL (невелике текстове повідомлення) і відсилає його на сервер баз даних, який читає і обробляє його (рис 32) У сервері підтримується система безпеки, індексуються зберігаються матеріали, заносяться і обробляються дані, виконуються серверні програми, і виконується доставка результатів запитів клієнта

Вся робота з базою даних виконується на сервері Якщо клієнт запитує який-небудь набір даних, він підготовляється на сервері, і його копія доставляється клієнту Реальні дані та індекси ніколи не покидають межі сервера Коли клієнт запитує виконання операції вставки, оновлення або видалення, сервер отримує цей запит і сам обробляє його

Рис 32 База даних з архітектурою клієнт / сервер виконує всю роботу на сервері

Клієнт-серверна модель бази даних має низку переваг у порівнянні з настільною моделлю

■ Підвищено достовірність даних, оскільки вони не розкидані по всій мережі і різним додаткам Дані обслуговує тільки один процес

■ Обмеження цілісності даних і бізнес-правила можуть підтримуватися на рівні сервера, в результаті чого вони строго дотримуються

■ Підвищено базопасность даних, оскільки база даних зберігає їх у межах одного сервера Відкрити файл даних, що захищається сервером, набагато складніше, ніж файл на робочій станції

■ Підвищено продуктивність і краще збалансовані робочі станції, оскільки велика частина роботи (обробка бази даних) виконується на сервері, а робочі станції беруть на себе тільки обслуговування інтерфейсу користувача Оскільки серверний процес забезпечує швидкий доступ користувача до файлів даних, а більша частина даних кешуватися в памяті, операції з базою даних виконуються швидше, ніж в багатокористувацької настільної середовищі Сервер баз даних обслуговує всіх користувачів, що працюють з додатками баз даних, таким чином, набагато простіше оцінити вартість встановлюваного сервера

■ Значною мірою скорочуються мережеві потоки У порівнянні з мережевими потоками, створюваними многопользовательскими настільними системами, потоки в архітектурі клієнт / сервер можна порівняти з одиноким мотоциклістом, що мчить по вільній 10-смугової автостраді Без перебільшення Заміна перевантаженої настільної системи базою даних клієнт / сервер здатна скоротити мережеві потоки більше ніж на 95%

■ Зниження мережевих потоків в системах клієнт / сервер призводить до того, що додатки добре працюють навіть в розподіленої середовищі і навіть за наявності повільних сполук Такі маленькі мережеві потоки дозволяють зрівняти в продуктивності локальну мережу зі швидкістю 100 Мбіт / с з модемним підключенням зі швидкістю 56 Кбіт / с для клієнтських додатків, що використовують NET-технології і підключених до бази даних SQL Server

Ролі в архітектурі клієнт / сервер

У клієнт-серверної конфігурації бази даних кожна зі сторін грає конкретну роль Якщо не впорядкувати ці ролі, то продуктивність і цілісність програми клієнт-серверної бази даних істотно знизяться

Сервер баз даних відповідає за наступне:

■ обробка запитів на вилучення і модифікацію даних

■ інтенсивна обробка даних

■ підтримання всіх правил і обмежень бази даних

■ підтримку безпеки бази даних

Клієнтський процес відповідає за наступне:

■ подання даних користувачеві в зрозумілому і зручному форматі

■ забезпечення інтерфейсу користувача всілякими інструментами, даними і звітами

■ відправку запитів серверу

Клієнт-серверні реалізації працюють найкраще, коли строго підтримується рівень абстракції даних Це означає, що будь-який запит на доступ до даних пропускається через збережені процедури рівня абстракції даних Недбалі клієнт-серверні моделі, що дозволяють додаткам або звітів безпосередньо звертатися до таблиць бази даних, нежиттєздатні, оскільки база даних не буде розширюваною Внесення змін в таку схему бази даних торкнеться така безліч інших обєктів, що інформаційний відділ просто злякається такої роботи і вважатиме за краще залишити застарілу модель

Багаторівнева архітектура

Часто в клієнт-серверних додатках баз даних, крім клієнтського і серверного, задіяні додаткові процеси Для обслуговування підключень і реалізації біз-нес-логіки часто використовуються процеси середнього рівня

Середній рівень, обслуговуючий підключення, може виявитися корисним, оскільки безліч користувачів зможуть отримати переваги за все від декількох відкритих підключень до сервера баз даних Однак цей тип підключення впливає на спосіб аутентифікації сервером баз даних окремих користувачів Це слід взяти до уваги при формуванні плану забезпечення безпеки бази даних

Якщо доступно більше одного сервера, то обєкт загального підключення полегшує перемикання користувачів між серверами А і Б, якщо перший раптово виявиться недоступним Обєкт підключення стає єдиною точкою, яка здатна автоматично виявити таку ситуацію і переключитися на другий сервер Цей тип рішення добре працює при дзеркальному відображенні баз даних

Приміщення бізнес-правил і рівня абстракції даних на логічний рівень має сенс для полегшення розробки та обслуговування Основне питання зводиться до того, де саме розмістити цей логічний рівень Деякі розробники доводять, що логічний середній рівень повинен розміщуватися на власному сервері в середовищі NET, окремо від сервера баз даних Я з цим не згоден з двох причин

■ Бізнес-правила і обмеження бази даних повинні підтримуватися сервером баз даних на фізичному рівні, щоб їх не міг обійти жоден процес або додаток

■ Програмування бізнес-правил на сервері баз даних надає програмам більш швидкий доступ до класифікаторів бази даних, що підвищує продуктивність

Єдиним недоліком програмування бізнес-правил на сервері є необхідність вивчення розробниками серверного програмування і те, що додатку бази даних важче звязуватися з іншими продуктами підтримки баз даних

Архітектура, орієнтована на служби

Архітектура, орієнтована на служби (SOA), є альтернативою клієнт-сервер-ної архітектурі Замість програмування прикладного інтерфейсу клієнт / сервер між декількома системами, SOA використовує стандартні виклики HTTP і XML, дозволяючи безлічі систем взаємодіяти з одного, використовуючи один і той же інтерфейс

Архітектура SOA може виявитися корисною на великих підприємствах з кількома особливо великими системами, але за таку масштабованість доводиться платити Дані проходять кілька рівнів, і при цьому виконується їх перетворення Інтерфейс кінцевого користувача, що використовує SOA, буде відчувати брак продуктивності в порівнянні з прямим підключенням в архітектурі клієнт / сервер з використанням бібліотеки ADONET

Мені зустрічалися організації, які розбивали програми, призначені для роботи з даними середнього розміру, на кілька маленьких і використовували SOA для організації взаємодії між ними Це можна порівняти з катастрофою Просто смішно використовувати виклики Web-служб для перевірки зовнішніх ключів

Коли ж краще використовувати Web-служби SOA Вони більше підходять як вторинної методу доступу до даних для полегшення взаємодії з іншими особливо великими системами За винятком цих випадків намагайтеся не використовувати SOA

Розгортання сховищ даних SOA із застосуванням SQL Server 2005 полегшується при використанні нових функцій кінцевих точок HTTP Більш докладно це питання ми обговоримо в розділі 32

Джерело: Нільсен, Пол Microsoft SQL Server 2005 Біблія користувача : Пер з англ – М: ООО ІД Вільямс , 2008 – 1232 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*