Проектування баз даних
43


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

5.5. ОПЕРАЦІЇ АКТУАЛІЗАЦІЇ БАЗИ ДАНИХ

Операції актуалізації — це внесення відповідних змін до файлів бази даних відповідно до тих змін, що відбуваються в предметній області, яку вона відображує. Після внесення таких змін інформація в базі даних стає актуальною, тобто відображує реальний стан її об'єктів. До операцій актуа­лізації належать операції: дозаписування, заміни та вилучення.

У ході виконання цих операцій потрібно дотримуватися таких вимог:

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

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

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

ураховувати те, що деякі файли можуть мати дозвіл лише на дозапису­вання й бути захищеними від змін і вилучення даних;

для систем з підвищеними вимогами до безпеки інформації необхідно реєструвати всі зміни у відповідних файлах коректур.

При проектуванні технологічних операцій актуалізації бази даних нео­бхідно обміркувати питання внесення змін по кожному файлу окремо і обг­рунтувати, які види коректур допустимі для кожного з них, коли як і хто їх виконуватиме. Слід мати на увазі, що база даних — це завжди сукупність зв'язаних між собою файлів. Тому при внесенні змін необхідно враховувати ці зв'язки. Необхідно пам'ятати про те, що коли з об'єктного відношення вилучається запис з первинним ключем, то це вилучення можливе лише в тому разі, якщо цей ключ не має відповідних записів в інших зв'язаних з ним файлах. І, навпаки, коли це відношення поповнюється новим записом, необхідно перш ніж виконувати цю операцію, перевірити унікальність ключа цього запису, і лише після підтвердження його унікальності система виконає дозаписування. Ця перевірка необхідна для збереження посилкової цілісності бази даних.

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

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

Зміни у файли бази даних може вносити не лише адміністратор, а н прикладні програми. При внесенні змін у базу даних прикладними програ­мами також необхідно знати обмеження, які накладаються СУБД. Деякі СУБД не дозволяють змінювати ключові поля. У dBase-системах дозволена зміна ключових полей і полів індексації. Але такий режим внесення змін небажаний, оскільки помилки в прикладній програмі або недостатньо ква­ліфікований рівень її розробки можуть призвести по порушення цілісності. Тому для усунення таких ситуацій внесення змін прикладними програмами в ключові поля має бути заблоковане.                  :

Потрібно також досить уважно вносити зміни в індексні поля. Якщо файл відкритий разом з його індексними файлами, то внесення змін в основний файл виконується автоматично і в індексних файлах. Але навіть якщо зміни в індексні файли у СУБД вносяться коректно, слід пам'ятати, що підтримуван­ня багатьох індексних файлів відкритими значно уповільнює обробку.

ПИТАННЯ ДЛЯ САМОПЕРЕВІРКИ.

1. Перелічіть і схарактеризуйте обмеження цілісності, які накладають­ся на атрибути бази даних.

2. Перелічіть і схарактеризуйте обмеження цілісності, які накладають­ся на файли бази даних.

3. Перелічить і схарактеризуйте обмеження цілісності, які накладають­ся на зв'язки між файлами бази даних.

4. Які вимоги висуваються до виконання операції завантажування да­них у базу даних?

5. Суть операції конвертації та випадки її застосування.

6. Схарактеризуйте можливі випадки руйнування файлів бази даних і дії щодо її відновлення.

7. Схарактеризуйте операції реорганізації і реструктуризації та випад­ки їх застосування.

8. Які є обмеження в базі даних на операції внесення змін у файли бази даних?