Введення в бази даних
Останнє, що ми розглянемо в цьому розділі, - це бази даних і роботу з ними. Оскільки левова частка серверних програм працює саме з базами даних, нам ці знання дуже знадобляться. Звичайно, ми не будемо розглядати всі технології баз даних у всіх подробицях, а, як і раніше, обмежимося коротким лікнеп. Ви самі можете пошукати потрібні книги і тексти в Мережі, якщо зацікавитесь цим.
Що таке база даних? Нічого особливого, звичайний файл або група файлів, що містять дані, організовані особливим чином. Якщо база даних складається з безлічі файлів, вона все одно залишається єдиним цілим. Дані, що містяться в базі, обробляються за допомогою особливої програми, званої процесором баз даних. Процесор баз даних може бути як абсолютно окремою програмою, що працює на тому ж комп'ютері, що і використовує дані програма, так і входити в її склад.
Бази даних можуть бути організовані по-різному. Але переважна більшість баз даних, експлуатованих в даний час, є реляційними. Дані в таких базах організовуються у вигляді таблиць. Кожна така база даних може включати в себе одну або декілька таблиць; складні бази даних, як правило, мають багато таблиць, пов'язаних між собою.
Кожна таблиця в свою чергу складається з набору рядків, розділених на осередки, причому в кожному осередку містяться дані певного типу: текст, числа, логічні величини, дати і т. Д. Рядки таблиць баз даних називаються записами, а осередки, на які ділиться кожна запис, - полями. Як вже говорилося, кожне поле має певний тип і обов'язково забезпечено ім'ям, по якому програма, що працює з даними, і здійснює доступ до цього поля.
На рис. 15.1 наведено приклад такої таблиці. Як бачите, ця таблиця має три поля:
- NAME - назва технології створення серверних сторінок, текстовий;
- PRICE - ціна програми-обробника, числове;
- USING - чи підтримується ця технологія в даний час, логічне ( "так-ні").
Крім того, ця таблиця має чотири записи, відповідні технологіям, підтримуваним Dreamweaver MX: ASP, ASP.NET, PHP і ColdFusion.
Дуже часто одне з полів таблиці робиться ключовим. Значення ключового поля використовується для однозначної ідентифікації будь-якому записі. Зрозуміло, ключові поля всіх записів таблиці повинні в цьому випадку містити унікальні значення. Іноді ключове поле називається полем лічильника.
Мал. 15.1. Приклад таблиці, що входить в базу даних
Як отримати доступ до окремого полю, ви вже знаєте, - по його імені. А як отримати доступ до потрібного запису?
Справа в тому, що в один момент часу програма, яка використовує дані бази, може працювати тільки з одним записом, званої поточної. Вона може отримувати дані з полів цього запису і, можливо, змінювати їх. Але щоб отримати дані іншому записі, програма повинна виконати команду переміщення. При цьому процесор баз даних переміщує особливий покажчик поточного запису на потрібну запис, і програма отримує можливість працювати з нею.
Також програма може використовувати пошук потрібного запису по якомусь критерію. Дуже часто такий пошук виконується за значенням ключового поля.
Також програма має можливість додавати нові і видаляти непотрібні записи таблиці. Щоб додати новий запис, програма виконує команду додавання запису і заносить в її поля необхідні дані. Щоб видалити запис, програма спочатку повинна зробити її поточної, а потім виконати команду видалення.
У загальному випадку, послідовність роботи з даними, що містяться в базі, виглядає так:
- Програма відкриває базу даних, виконуючи операцію відкриття. Це необхідна операція, без якої неможливо отримати доступ до бази.
- Програма відкриває потрібну таблицю бази. Після цього процесор повертає їй так званий набір записів (по-англійськи - recordset), з яким і працює програма.
- Програма виконує власне роботу з даними.
- Програма закриває таблицю, після чого процесор прибирає відповідний цій програмі набір записів з пам'яті.
- Програма закриває базу даних, розриваючи всі зв'язки з нею.
Врахуйте, що дві останні операції - закриття таблиці і бази даних -Виконувати так само необхідно, як і відкриття. Справа в тому, що набір записів та інші структури даних, що формуються процесором в пам'яті для програми, яка працює з даними, забирають багато системних ресурсів. Тому, як тільки ви закінчили роботу з таблицею або базою даних, відразу ж закрийте її, щоб звільнити ресурси для інших користувачів.
Останнім часом великої популярность- придбали сервери баз даних. Це звичайні процесори даних, але реалізовані у вигляді серверних програм і працюють на серверних комп'ютерах. Їх переваги перед звичайними процесорами даних:
- вони працюють на серверному комп'ютері, який, як правило, могутніше клієнтського, тому їх продуктивність вище;
- вони забезпечують більшу захищеність даних за рахунок розмежування доступу і деяких інших механізмів;
- вони просто могутніше, в сенсі, підтримують більше різних нововведень, що з'явилися останнім часом.
Щоб отримати доступ до сервера баз даних і самих даних, клієнтська програма посилає йому особливі команди. Для складання таких команд була розроблена мова опису запитів SQL (Structured Query Language -Мова структурованих запитів). За допомогою команд, складених на цій мові, клієнтська програма може відкрити потрібну таблицю, вважати дані, додати, змінити, видалити запис і, в кінцевому рахунку, закрити базу даних, коли потреба в ній відпаде.
Сервери баз даних застосовуються зараз дуже часто, а в Web-програмуванні - майже повсюдно. До найбільш популярних можна віднести Oracle, Microsoft SQL Server, Sybase, потужний IBM DB2, Borland InterBase (в Росії він продається під назвою IBase), що набирає популярність PostgressSQL і безкоштовний сервер MySQL, що поширюється з відкритими вихідними текстами. Останній сервер, до речі, дуже часто використовується в зв'язці з Web-сервером Apache і технологією серверних сторінок РНР.
На цьому розповідь про базах даних і про серверному програмуванні можна вважати закінченим.