Зацерковний В.І. та ін. ГІС та бази даних. І бази даних
Скачать 31.1 Mb.
|
13.6. Захист баз даних від несанкціонованого використання ресурсів Забезпечення захисту від несанкціонованого використання ресурсів вимагає застосування засобів моніторингу запитів ресурсів, що підлягають 47 Автентифікáція (з грец. αυθεντικός – реальний або істинний) – процедура встановлення справжності користувача. 422 захисту, і сигналізації при спробі їх незаконного використання. До таких засобів відносяться варіанти захисту від копіювання даних, дослідження додатків, перегляду, модифікації і видалення даних. Рис. 13.6. Приклади несанкціонованого використання ресурсів Для захисту СКБД від несанкціонованого копіювання в додатках можна використовувати прив’язку до апаратної частини, щоб створена копія була непрацездатною на іншому комп’ютері. При несанкціонованому дослідженні додатків застосовуються такі засоби, які не дозволяють або ускладнюють вивчення системи захисту БД. Наприклад, після декількох невдалих спроб підключення до додатка, який має парольний захист, необхідно блокувати подальші спроби підключення до неї або передбачити засоби самоліквідації. Найбільш ефективним засобом захисту даних від перегляду є їх шифрування. Несанкціонований перегляд даних при цьому потребує ви- користання ключа шифрування, підбір якого навіть при сучасному рівні розвитку інформаційних технологій становить складне завдання. Шифрування незамінне для захисту інформації від розкриття її змісту в СКБД, а також при її передачі лініями зв’язку. Шифрування даних здійснюється в темпі надходження інформації і в автономному режимі. Перший спосіб застосовується в системах прийому-передачі інформації, а другий – для засекречування інформації. Поширеним підходом до розв’язку задачі захисту даних від моди- фікації є обчислення контрольних сум і їх порівняння з еталоном. Захистити дані від видалення можна шляхом запобігання несанкці- онованим операціям видалення в СКБД. Для цього цілей необхідно розробляти додаткові програмні засоби, які паралельно з виконанням користувацького додатку відслідковує запити на видалення, що над- ходять, і в разі їх несанкціонованого виконання відмовляють у доступі до даних. Методи забезпечення безпеки баз даних Копіювання даних Дослідження додатків Модифікація даних Видалення даних Перегляд даних 423 13.7. Захист баз даних від некоректного використання ресурсів Захист від некоректного використання ресурсів виконується опера- ційною системою і передбачає виділення клієнтським додаткам ізольова- ної частини оперативної пам’яті та захист системних ділянок зовнішньої пам’яті. Однак більшість розробників ідуть далі і впроваджують різнома- нітні інструменти коректного використання прикладних ресурсів, наприклад, документів, зображень, звукових файлів. 13.8. Захист баз даних за допомогою внесення надлишковості Дуже ефективним способом відновлення БД після збоїв є надмір- ність. Надмірність буває функціональною, інформаційною або структур- ною. Залежно від цілей захисту БД можна використовувати одну з представлених видів надмірності або їх композицію. Функціональна надмірність означає організацію обчислювального процесу, при якому дублюються функції управління, зберігання й обробки інформації. Наприклад, запуск декількох однакових клієнтських додатків у ба- гатозадачній операційній системі є ознакою функціональної надмірності. Інформаційна надмірність використовується для запобігання повній втраті інформації і реалізується шляхом одноразового або періодичного копіювання та архівування найбільш цінної інформації. У разі збою або втрати інформації можна, використовуючи резервну ко- пію, відновити необхідну інформацію, важливим аспектом в даному разі є періодичність. Якщо резервування проводиться часто, то може постати проблема неефективного використання дискового простору, якщо резервування проводиться рідко, то можуть зрости витрати на відновлен- ня інформації, яка накопичилася в БД між моментом останнього збереження і моментом збою. Структурна надмірність означає резервування апаратних ком- понентів обчислювальної системи на різних рівнях: дублювання серверів обробки інформації, дублювання накопичувачів інформації. При резервуванні необхідно в першу чергу забезпечити стабільне та безперебійне живлення обчислювальної системи. 424 ХІV. МОВА СТРУКТУРОВАНИХ ЗАПИТІВ SQL Мова маніпулювання даними (ММД) дозволяє виконувати перед- бачені в системі операції над даними з бази даних, тобто містить набір операторів маніпулювання даними, що дозволяє вибирати, заносити дані, видаляти, модифікувати (редагувати) тощо. В даний час існують численні приклади мов СКБД, що поєднують можливості опису даних і маніпулювання даними в єдиних синтаксичних рамках. Більш того, сучасні СКБД підтримують єдину інтегровану мову, що містить усі необхідні засоби для роботи з базою даних. Це мова SQL (Structured Query Language – структурована мова запитів) і QBE (Quere- By-Example – запити за зразком). 14.1. Загальні відомості про структуровану мову запитів Зростання кількості даних, необхідність їх збереження та обробки призвели до того, що виникла потреба створення мови маніпулювання даними (ММД), яка б могла функціонувати в численних комп’ютерних системах різних видів. Будь-яка ММД повинна надавати користувачу можливості: – створювати БД і таблиці з повним описом їх структури; – виконати основні операції маніпулювання даними, зокрема, вставку, модифікацію і видалення даних з таблиць; – виконувати прості і складні запити, які здійснюють перетворення даних. Усі ММД, що були створені до появи реляційних баз даних і роз- роблені для багатьох СКБД, орієнтувались на операції з даними, які були представлені у вигляді логічних записів файлів. Це вимагало від корис- тувачів ретельного знання організації збереження даних і певних зусиль для вказівки не тільки того, які дані потрібні, але й того, де вони розміщені і як крок за кроком отримати їх. Тому актуальною стала проблема створення універсальної ММД, за допомогою якої користувачі могли б маніпулювати даними незалежно від того, де вони працюють (на персональному комп’ютері, мережевій робочій станції або універсальній ЕОМ. Саме такою мовою, яка з’явилась у результаті розробки реляційної моделі даних, стала мова SQL (Structured Query Language – Мова струк- турованих запитів), яка на даний час отримала широке поширення і фактично перетворилася на стандартну мову реляційних баз даних. 425 SQL веде свою історію з початку 1970-х рр., коли в дослідній лабо- раторії компанії IBM у штаті Каліфорнія була розроблена його перша версія. Перша публікація опису мови відноситься до 1974 р. На той час її назвали SEQUEL (Structured English Query Language – структурована англійська мова запитів). Спочатку вона була реалізована в експери- ментальній реляційній СКБД System/R, проект якої ініціювала в середині 70-х рр. ХХ ст. компанія IBM у дослідній лабораторії в Сан-Хосе. При реалізації наступної версії System/R мова була перейменована в SQL. Дослідний проект System/R був завершений у 1979 р. і підтвердив можливість створення ефективних промислових реляційних СКБД. У 1977 р. невеличка, щойно створена фірма Relational Software розпочала до створення промислової реляційної СКБД на основі SQL. Постачання цієї СКБД, яка отримала назву Oracle, розпочалось у 1979 р. Незабаром і сама фірма була перейменована в Oracle. З того часу вона є найбільшим постачальником реляційних СКБД на базі SQL. У середині 70-х рр. ХХ ст. в дослідній лабораторії Каліфорній- ського університету в Берклі був відкритий проект зі створення реляцій- ної СКБД. У цій лабораторії, як і в компанії IBM, створили експери- ментальну СКБД, що отримала назву Ingress, на якій відпрацьовувались результати наукових досліджень в галузі реляційних баз даних. У 1980 р. частина співробітників цієї лабораторії організували фірму Relational Technology, яка в 1981 р. випустила промислову СКБД Ingress. Первісно ця СКБД використовувала реляційну мову QUEL, однак у 1986 р. була переведена на мову SQL. У 1980 р. компанія IBM на основі досвіду, одержаного при розробці експериментальної System/R, розпочала до створення власної промис- лової СКБД реляційного типу, яка почала постачатись у 1982 р. під назвою SQL/DS. Згодом в компанії був розроблений більш досконалий продукт – DB2, постачання якого розпочалось у 1985 р. Ця СКБД стала стратегічним програмним продуктом компанії IBM. Таким чином, до середини 80-х рр. ХХ ст. SQL стала загально- визнаною мовою реляційних СКБД, а її діалект, що підтримувався СКБД DB2, фактично став стандартом для керування реляційними БД. Стандарт на мову SQL був випущений Американським націо- нальним інститутом стандартів (ANSI) у 1986 р., а в 1987 р. Міжнародна організація стандартів (ISO) прийняла його як міжнародний. Нинішній стандарт SQL відомий під назвою SQL/92. На сучасному етапі ведеться робота над більш сучасним стандартом SQL3. Мова SQL (Structured Query Language – структурована мова запитів) орієнтована на операції з даними, представленими у вигляді логічно взаємопов’язаних сукупностей таблиць. 426 Особливість пропозицій цієї мови полягає в тому, що вони орієнто- вані здебільшого на кінцевий результат обробки даних, а не на процедуру цієї обробки. SQL сама визначає, де знаходяться дані, які індекси і навіть найефективніші послідовності операцій треба використати для їх одержання, при цьому не потрібно вказувати ці деталі в запиті до БД. SQL – мова програмування четвертого покоління, яка максимально наближена до людської мови. Одним із головних завдань SQL є легкість синтаксису мови, вона зрозуміла всім, починаючи від користувачів і закінчуючи адміністра- торами, а її запити читаються як звичайні речення. Словник SQL відносно невеликий, а його команди є слова англій- ською мовою. Зазвичай ключові слова SQL записують прописними літе- рами, щоб відрізнити їх від назв таблиць і стовпчик. Часто для зручності сприйняття інструкції SQL записують у декількох рядках, що допускаєть- ся синтаксичним аналізатором. Для зручності подальших міркувань при опису реляційної моделі даних будемо використовувати табличний варіант термінів: відношення – таблиця, кортеж – рядок, атрибут – стовпчик, оскільки саме така термінологія використовуються при програмуванні баз даних. Реалізація в SQL концепції операцій, орієнтованих на табличне подання даних, дозволила створити компактну мову з невеликим набо- ром пропозицій. Мова SQL може використовуватися як для виконання запитів до даних, так і для побудови прикладних програм. 14.2. Категорії команд SQL Основні категорії команд мови SQL призначені для виконання різноманітних функцій, включаючи побудову об’єктів бази даних і мані- пулювання ними, початкове завантаження даних у таблиці, оновлення і видалення існуючої інформації, виконання запитів до бази даних, управління доступом до неї і її загальне адміністрування. Серед категорій команд мови SQL можна виділити: – мову визначення структур БД; – мову маніпулювання даними; – мову запитів; – мову керування даними; – команди адміністрування даних; – команди керування транзакціями. Мова визначення структур бази даних (Data Definition Language DDL) дозволяє створити і змінювати структуру об’єктів бази даних, наприклад, створювати і видаляти таблиці. Основними командами мови 427 DDL є: CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, ALTER INDEX, DROP INDEX Мова маніпулювання даними (Data Manipulation Language – DML) використовується для маніпулювання інформацією всередині об’єктів реля- ційної бази даних за допомогою трьох основних команд: INSERT , UPDATE , DELETE Мова запитів (Doctrine Query Language – DQL) є найбільш відомою корис- тувачам реляційних баз даних , незважаючи на те, що вона включає тільки одну команду SELECT . Ця команда разом зі своїми численними опціями і пропози- ціями використовується для формування запитів до реляційної бази даних Мова керування даними (Data Control Language – DCL) дозволяє керувати доступом до інформації, що знаходиться всередині БД . Зазвичай, во- на використовується для створення об’єктів, пов’язаних з доступом до даних, а також слугує для контролю над розподілом пріоритетів між користувачами. Команди керування даними – GRANT , REVOKE Команди адміністрування даних дозволяють користувачу здійснювати контроль за виконанням дій та аналізувати операції БД ; вони також можуть виявитися корисними при аналізі продуктивності системи. Примітка. Не треба плутати адміністрування даних з адмініструванням БД , яке є загальним керуванням БД і має на меті використання команд усіх рівнів. Команди керування транзакціями – COMMIT , ROLLBACK , SAVEPOINT , SET TRANSACTION 14.3. Переваги мови SQL Мова SQL є основою багатьох СКБД, оскільки відповідає за фізич- не структурування і запис даних на диск, а також за зчитування даних з диска, дозволяє приймати SQL-запити від інших компонентів СКБД і додатків користувачів. SQL – потужний інструмент, який забезпечує користувачів, програми і обчислювальні системи доступом до інформації, що міститься в реляцій- них БД. Основні переваги мови SQL полягають у наступному: стандартизованість – використання мови SQL у програмах стандартизовано міжнародними організаціями; незалежність від конкретних СКБД – усі поширені СКБД використовують SQL, оскільки реляційну базу даних можна перенести з однієї СКБД на іншу з мінімальними доробками; можливість переносу з однієї обчислювальної системи на іншу – СКБД може бути орієнтована на різні обчислювальні системи, однак додатки, створені за допомогою SQL, припускають використання як для локальних БД, так і для великих багатокористувацьких систем; 428 реляційна основа мови SQL є мовою реляційних БД, тому вона набула популярності тоді, коли одержала широке поширення реляційна модель подання даних. Таблична структура реляційної БД добре зрозуміла, а мова SQL проста для вивчення; можливість створення інтерактивних запитів – SQL забезпечує користувачам практично миттєвий доступ до даних, при цьому в інтерак- тивному режимі можна одержати результат запиту за дуже короткий час без напису складної програми; можливість програмного доступу до БД – мова SQL легко вико- ристовується в додатках, яким необхідно звертатися до БД. Одні й ті ж оператори SQL використовуються як для інтерактивного, так і програм- ного доступу, тому частини програм, що містять звернення до БД, можна спочатку перевірити в інтерактивному режимі, а потім убудовувати в програму; забезпечення різного представлення даних – за допомогою SQL можна представити таку структуру даних, що той або інший користувач буде бачити різні їх представлення. Крім того, дані з різних частин БД можуть бути скомбіновані і представлені у вигляді однієї простої таблиці, а значить, представлення придатні для посилення захисту БД і її настроювання під конкретні вимоги окремих користувачів; можливість динамічної зміни і розширення структури БД – мова SQL дозволяє маніпулювати структурою БД, тим самим забезпечуючи гнучкість з точки зору пристосованості БД до вимог предметної сфери, що змінюються; підтримка архітектури клієнт-сервер. SQL – один з найкращих засобів для реалізації додатків на платформі клієнт-сервер. SQL слугує сполучною ланкою між клієнтською системою, що взаємодіє з користу- вачем, і серверною системою, що керує БД, дозволяючи кожній з них зосереджуватись на виконанні своїх функцій. Мова SQL використовується в інших стандартах і навіть здійснює вплив на розробку інших стандартів як інструмент визначення (наприклад, стандарт Remote Data Access, RDA). Створення мови сприяло не тільки розробці необхідних теоретичних основ, а й підготовці успішно реалізованих технічних рішень. Це безпо- середньо стосується оптимізації запитів, методів розподілу даних і реалі- зації засобів захисту. Почали з’являтися спеціалізовані реалізації мови, призначені для нових ринків: системи керування обробки транзакцій (On- Line Transaction Processing, OLTP) і системи оперативної аналітичної обробки або системи підтримки прийняття рішень (On Line Analytical Processing, OLAP). Вже відомі плани подальших розширень стандарту, які включають підтримку розподіленої обробки, об’єктно орієнтованого програмування, розширень користувачів і мультимедіа. 429 14.4. Базові поняття реляційних баз даних Основними поняттями реляційної БД (РБД) є: відношення, домен, кор- теж, тип даних, атрибут, схема відношення, первинний ключ (рис. 14.1). Рис. 14.1. Схема реляційної бази даних Відношення – фундаментальне поняття реляційної моделі даних. Звичайним представленням відношень є таблиця, заголовком якої є схема відношень, а рядками – кортежі відношення-екземпляра (рис. 14.2). Рис. 14.2. Представлення відношень 430 Імена атрибутів іменують стовпчики цієї таблиці. Тому іноді кажуть "стовпчик таблиці", маючи на увазі атрибут відношення. Примітка. В реляційній теорії баз даних розділяють поняття таблиці і відношення. Наприклад, у відношенні не обумовляються порядок стовпчик, а тільки їх набір. Ще для відношень визначені обмеження типу неможливості містити два абсолютно однакові рядки. Відношення – доволі абстрактний вид об’єкта, а таблиця – його конкретне зображення. Проте в подальшому, для спрощення викладу, будемо вважати ці поняття ідентичними, незважаючи на те, що в теорії баз даних ці поняття різняться. Відношенням R називають підмножину декартового добутку n D D D 2 1 множин 1 ,..., , 2 1 n D D D n не обов’язково різних. Вихідні множини n D D D ..., , 2 1 називаються доменами. Найбільш правильним трактуванням поняття домену є розуміння його як припустимого потенційної безлічі значень даного типу. |