Page 110 - 4636
P. 110

клієнт може зробити кілька замовлень, проте кожне замовлення розміщується одним клієнтом. тому в
        замовленні міститься посилання на клієнта.
                зв'язуючі таблиці, які описують відносини типу "багато до багатьох" між двома реальними
        об'єктами,  наприклад,  відношення  між  таблицями  orders  і  books.  Такі  таблиці  часто  асоціюються  з
        деякою реальною транзакцією.

              5.3 Архітектура баз даних для веб-додатків

              Основна робота веб-сервера проілюстрована на рис. 4.8. Ця система складається з двох об'єктів:
        веб-браузера та веб-сервера. Між ними повинен існувати канал зв'язку. Веб-браузер посилає запит на
        сервер,  сервер  відправляє  назад  відповідь.  Така  архітектура  підходить  для  сервера,  що  відсилає
        звичайні статичні сторінки. Архітектура ж сайту, який включає в себе базу даних, дещо складніша.


                                            Запит   Браузер         Веб-сервер

                                            Відповідь

                Рисунок 5.8 – Зв’язок типу клієнт-сервер між веб-браузером та веб-сервером потребує
                                         наявності каналу обміну інформацією

                  12        3             Веб-сервер           Інтерпретатор                  Сервер
                Браузер                                             PHP                       MySQL
                                           6                                            5                                            4

            Рисунок 5.9 - Базова архітектура баз даних для веб-додатків включає в себе веб-браузер, веб-
                                     сервер, інтерпретатор РНР і сервер баз даних

              Типова  транзакція  бази  даних  для  веб-додатків  складається  з  етапів,  позначених  на  рис.  5.9
        цифрами. Ми розглянемо їх на прикладі магазину "Буквофіл ".
              1  Веб-браузер  користувача  відправляє  HTTP-запит  певної  веб-сторінки.  Наприклад,  HTML-
        форма  може  видати  запит  на  пошук  в  магазині  "Буквофіл"  всіх  книг,  написаних  Лорою  Томсон.
        Сторінка з результатами пошуку називається results.php.
              2  Веб-сервер  приймає  запит  на  results.php,  витягує  файл  і  передає  його  на  обробку
        інтерпретатору РНР.
              3  Інтерпретатор  РНР  починає  синтаксичний  аналіз  сценарію.  Сценарій  містить  команду
        підключення до бази даних і виконання запиту (на пошук книг). РНР відкриває з'єднання з сервером
        MySQL і відправляє йому відповідний запит.
              4  Сервер MySQL приймає запит до бази даних, обробляє його, а потім відправляє результати –
        в даному випадку, список книг –  назад інтерпретатору РНР.
              5  Інтерпретатор  PHP  завершує  виконання  сценарію,  що  зазвичай  пов'язане  з  форматуванням
        результатів запиту у вигляді HTML , після чого повертає результати в HTML -форматі веб-серверу.
              6  Веб-сервер пересилає браузеру HTML-сторінку, в якій користувач може переглянути список
        необхідних книг.
              В  основному  процес  залишається  незмінним  незалежно  від  використовуваного  сценарного
        механізму й сервера баз даних. Найчастіше програмне забезпечення веб-сервера, інтерпретатор РНР і
        сервер  баз  даних  функціонують  на  одному  комп'ютері.  У  той  самий  час,  досить  часто  сервер  бази
        даних працює на  іншому  комп'ютері. Це може бути обумовлено міркуваннями безпеки, збільшення


                                                            107
   105   106   107   108   109   110   111   112   113   114   115