Переваги підходу, що передбачає використання бази даних

Розглянемо переваги використання баз даних, пов'язані з наявністю централізованого управління.

■ Можливість спільного доступу до даних

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

словами, вимоги нових додатків з доступу до даних можуть бути задоволені без необхідності додавання нових даних в базу.

■ Скорочення надмірності даних

У системах, що не використовують бази даних, кожен додаток має свої файли. Це часто призводить до надмірності даних, що зберігаються і, отже, до нераціонального використання простору вторинної пам'яті. Наприклад, і додаток, пов'язане з обліком персоналу, і додаток, пов'язане з урахуванням результатів навчання службовців, можуть мати власні файли з відомчої інформацією про службовців. Але як зазначено в розділі 1.2, ці два файли можна об'єднати з усуненням надлишкової (повторюваної) інформації, за умови, що адміністратор даних знає про те, які дані потрібні для кожної програми, тобто на підприємстві здійснюється необхідне загальне управління.

Примітка. В даному випадку ми не маємо на увазі, що надмірність даних може або повинна бути усунена повністю. Іноді вагомі практичні або технічні причини вимагають наявності декількох копій даних, що зберігаються. Однак така надмірність повинна суворо контролюватися, тобто враховуватися в процесі експлуатації СУБД. Крім того, в подібному випадку повинна бути передбачена можливість розповсюдження оновлень (подробиці наводяться нижче).

■ Пошук та усунення суперечливості даних (до деякої міри)

Насправді це випливає з попереднього пункту. Візьмемо приклад з життя. Нехай службовець з табельною номером ЕЗ, що працює у відділі з номером D8, представлений двома різними записами в базі даних. Припустимо, що в СУБД не враховано це дублювання (тобто надмірність даних не контролюється). Тоді рано чи пізно обов'язково виникне ситуація, при якій ці два записи перестануть бути узгодженими, після того як одна з них буде змінена, а інша - ні. В цьому випадку база даних стане суперечливою. Ясно, що суперечлива база даних буде надавати користувачеві неправильну, суперечливу інформацію.

Також очевидно, що якщо який-небудь факт представлений тільки одним записом (тобто надмірність відсутня), то протиріччя виключені. Протиріч можна також уникнути, якщо надмірність не виключається, а контролюється (і це відповідним чином передбачено в СУБД). Тоді СУБД зможе гарантувати, що з точки зору користувача база даних ніколи не буде суперечливою. Дана гарантія забезпечується тим, що якщо оновлення вноситься в одну запис, то воно автоматично буде поширено на всі інші. Такий процес називається розповсюдженням оновлень (propagating updates).

■ Можливість підтримки транзакцій

Транзакція (transaction) - це логічна одиниця роботи (точніше, логічна одиниця роботи бази даних), зазвичай включає кілька операцій бази даних (зокрема, кілька операцій модифікації даних). Стандартний приклад - переклад деякої суми грошей з рахунку А на рахунок В. Очевидно, що в даному випадку необхідні два зміни: списання деякої суми з рахунку

А та зарахування її на рахунок В. Якщо користувач вкаже, що обидва зміни входять в одну і ту ж транзакцію, то система зможе реально гарантувати, що або будуть виконані обидва ці зміни, або не буде виконана жодна з них, якщо до завершення процесу внесення змін в системі відбудеться збій (скажімо, через перерви в подачі електроенергії).

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

Забезпечення цілісності даних

Завдання забезпечення цілісності полягає в гарантованій підтримці правильності даних в базі (наскільки це можливо). Протиріччя між двома записами, що представляють один "факт", є прикладом втрати цілісності даних (див. Обговорення цього питання вище в даному розділі). Звичайно, ця конкретна проблема може виникнути лише при наявності надмірності в збережених даних. Але навіть якщо надмірність відсутня, база даних може містити неправильну інформацію. Наприклад, в базі даних може бути вказано, що співробітник відпрацював 400 робочих годин на тиждень замість 40, або зафіксована його приналежність до відділу, якого не існує. Централізоване управління базою даних дозволяє уникнути подібних проблем (наскільки це взагалі можливо). Для цього адміністратор даних визначає (а адміністратор бази даних реалізує) обмеження цілісності (integrity constraints), які будуть застосовуватися при будь-якій спробі внести будь-які зміни в відповідні дані.

Відзначимо також, що цілісність даних для багатокористувацьких систем баз даних навіть більш важлива, ніж для середовища з "приватними файлами", причому саме з тієї причини, що така база даних підтримує спільний доступ. При відсутності належного контролю один користувач цілком може неправильно оновити дані, від чого постраждають багато інших користувачів. Слід також сказати, що в більшості існуючих комерційних СУБД підтримка обмежень цілісності розвинена слабо, хоча в даний час в цьому напрямку спостерігаються деякі поліпшення. Доводиться констатувати той сумний факт, що, як буде показано в розділі 9, обмеження цілісності мають значно більш фундаментальне і важливе значення, ніж це зазвичай визнається на поточний момент.

Організація захисту даних

Завдяки повному контролю над базою даних адміністратор бази даних (безумовно, відповідно до вказівок адміністратора даних) може забезпечити доступ до неї тільки через певні канали. Для цієї мети можуть встановлюватися обмеження захисту (security constraints), або правила, які будуть контролюватися при будь-якій спробі доступу до конфіденційних даних. можна встановити

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

Можливість узгодження суперечливих вимог

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

Можливість введення стандартизації

Завдяки централізованому управлінню базою даних адміністратор бази даних (за вказівкою адміністратора даних) може забезпечити дотримання всіх необхідних стандартів, що регламентують подання даних в системі. Стандарти можуть бути приватними, корпоративними, відомчими, промисловими, національними та міжнародними. Стандартизація представлення даних найбільш важлива з точки зору обміну даними та їх пересилання між системами. (Найбільшу актуальність це питання набуває в разі розподілених систем, мова про які піде в главах 2, 21 і 27.) Крім того, стандарти іменування і документування даних важливі як щодо їх спільного використання, так і по відношенню до їх опису.

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