|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Бази даних. Основні відомостіРозвиток комп¢ютерних технологій, пов¢язаних із збереженням та обробкою даних, призвело до появи наприкінці 60-х років спеціалізованого програмного забезпечення, що отримало назву систем управління базами даних (СУБД) – Data Base Management Systems – DBMS. СУБД дозволяють структурувати, систематизувати та організувати дані для їх для подальшої комп¢ютерної обробки та збереження. Саме СУБД виступають в якості основи практично будь-якої інформаційної системи. Взагалі СУБД можна визначити як систему управління даними, що володіє наступними властивостями: · підтримка логічно узгодженого набору файлів; · забезпечення мови маніпулювання даними; · відновлення інформації після різного роду аварій; · забезпечення паралельної роботи декількох користувачів. Основні функції СУБД. К основним функціям, що повинні виконувати системи управління базами даних, звичайно відносять наступні: · безпосередньо управління даними в зовнішній пам¢яті; · управління буферами оперативної пам¢яті; · управління транзакціями; · протоколювання; · підтримка мов баз даних. Безпосередньо управління даними в зовнішній пам¢яті. Функція безпосередньо управління даними в зовнішній пам¢яті включає забезпечення необхідних структур зовнішньої пам¢яті (постійних запам¢ятаючих пристріїв – як правило, магнітних дисків) як для збереження даних, що безпосередньо входять до БД, так і для службових цілей, наприклад для прискорення доступу до даних (звичайно для цього використовують індекси). Причому, користувачам БД не потрібно знати, чи використовує СУБД файлову систему та як організовані файли[8]. В залежності від способу реалізації СУБД може або використовувати можливості існуючих файлових систем, або працювати з обладнанням зовнішньої пам¢яті на низькому рівні. Управління буферами оперативної пам¢яті. Обсяги інформації, що зберігається в базі даних під керуванням СУБД, звичайно досить великі і практично перевищують доступний обсяг оперативної пам¢яті комп¢ютера. При цьому час доступу до даних, що зберігаються в оперативній пам¢яті, суттєво менш, ніж до даних, що зберігаються на обладнанні зовнішньої пам¢яті. Очевидно, якщо при звертанні до будь-якого елементу даних буде виконуватися обмін із зовнішньою пам¢ятю, то вся система буде працювати зі швидкістю обладнання зовнішньої пам¢яті. Збільшення швидкості обміну даними можна досягти використовуючи буферизацію даних в оперативній пам¢яті. При цьому, якщо операційна система виконує загальносистемну буферизацію (як у випадку ОС UNIX), цього недостатньо для цілей СУБД, яка володіє значно більшою інформацією про корисність буферизації той чи іншої частини БД. Тому в СУБД звичайно підтримує свій власний набір буферів оперативної пам¢яті з власним механізмом заміни буферів. Управління транзакціями. Транзакцією називають послідовність операцій над базою даних, що розглядаються СУБД як єдине ціле. Якщо всі операції з успіхом виконані, то транзакція також вважається виконаною, і СУБД фіксує (СООММІТ) всі зміни даних, що виконані цією транзакцією. Якщо ж хоча б одна операція завершена невдачею, то транзакція вважається невиконаною і виконується відкат (ROLLBACK) – відміна всіх змін даних, що відбулися в ході виконання транзакції, і повернення БД до стану перед початком виконання транзакції. Управління транзакціями потрібно для підтримки логічної цілісності бази даних. Підтримка механізма транзакцій є обов¢язковою вимогою навіть для однокористувацьких, а тим більш для багатокористувацьких СУБД. Той факт, що кожна транзакція починається при цілісному стану БД і повинна залишити цей стан цілісності після свого завершення, робить дуже вдалим використання поняття транзакції як одиниці активності користувача по відношенню до бази даних. При відповідному управлінні транзакціями, що паралельно виконуються, з боку СУБД кожен користувач може відчувати себе єдиним користувачем БД. Журнализація. Одним із основних вимог до СУБД є надійність збереження даних в зовнішній пам¢яті. Під надійністю збереження даних розуміють можливість СУБД відновити останній узгоджений стан БД після будь-якого апаратного чи програмного збою. Апаратні збої поділяють на два види: · м¢які збої, що пов¢язані з раптовими зупинками комп¢ютеру. Звично є слідством раптового відключення живлення чи “зависанням” операційної системи; · жорсткі збої, що характеризуються втратою інформації на носіях зовнішньої пам¢яті. Програмні збої виникають внаслідок помилок у програмах. Причому такі помилки можуть бути, як в самій СУБД, що може призвести до аварійної зупинки її роботи, так і прикладній програмі. Перший випадок можна розглядати різновидність м¢якого апаратного збою, в другому випадку незавершеною залишається лише одна (остання) транзакція. У будь-якому випадку для відновлення інформації в базі даних потрібно мати деяку додаткову інформацію, тобто для забезпечення надійності збереження даних потрібна надмірність даних. Причому та частина інформації, що використовується для відновлення останнього стану БД, повинна зберігатися особливо надійно. Найбільш поширеним методом підтримки такої надмірності є ведення журналу змін бази даних, який представляє собою особливу частину бази даних, що недоступна користувачам СУБД і яку підтримують з особливою ретельністю (іноді використовують дві копії журналу, розташованих на різних фізичних дисках), в яку поступають записи про всі зміни основної частини бази даних. В різноманітних СУБД зміни БД журналізуються на різних рівнях: іноді запис в журналі відповідає деякій логічній операції зміни БД, іноді – мінімальній внутрішній операції модифікації сторінки зовнішньої пам¢яті, або застосовуються обидва підходу. В усяких випадках притримуються стратегії “попереджувального” запису в журнал (так званого протоколу Write Ahead Log – WAL). Можна зробити висновок, що ця стратегія заключається у тому, щоб запис про зміни будь-якого об¢єкту бази даних повинна бути занесена в журнал ще до того, як буде виконано і зафіксовано зміну цього об¢єкту. Якщо в СУБД коректно дотримується протокол WAL, то за допомогою журналу можна вирішити всі проблеми відновлення БД після будь-якого збою. Для відновлення БД після жорстокого збою використовують журнал та архівну копію бази даних. Архівна копія – це повна копія бази даних до моменту заповнення журналу (хоча є багато трактувань значення архівної копії). Для цього потрібно щоб при жорсткому збою журнал не пропав, тобто він повинен бути розміщений на іншому фізичному носії. В реальних умовах процес відновлення БД з архівної копії після жорсткого збою є досить тривалим процесом, тому для більш скорішого відновлення роботи інформаційних систем в критичних умовах використовують так звані “тіньові сервери” (shadow server), які дозволяють створювати безперебійні он-лайнові інформаційні системи. Підтримка мов баз даних. Для роботи з інформацією, що зберігається у базі даних, використовують спеціальні мови, які носять загальну назву мов баз даних. Частіше виділяють дві мови: · мову визначення схем даних (Schema Definition Language – SDL), що служить головним чином для визначення логічної структури бази даних; · мову маніпулювання даними (Data Manipulation Language - DML), яка являє собою набір операторів маніпулювання даними, тобто операторів, що дозволяють заносити дані в базу, а також видаляти, модифікувати чи вибирати існуючі дані. Декілька різних спеціалізованих мов баз даних підтримувалися лише в ранніх СУБД. В сучасних СУБД підтримується єдина інтегрована мова, що містить всі необхідні засоби для роботи з базами даних, розпочинаючи з її створення, забезпечуючи базовий інтерфейс для користувача. Стандартною мовою, що найбільш розповсюджена в останні роки для реляційних БД є мова SQL (Structured Query Language). Мова SQL містить в собі спеціальні засоби визначення обмежень цілісності бази даних, що зберігаються в спеціальних таблицях –каталогах, тому збереження цілісності виконується на мовному рівні – при компіляції операторів модифікації БД компілятор SQL на основі обмежень цілісності, що зберігаються в базі, генерує відповідний програмний код. Спеціальні оператори мови SQL дозволяють визначати так звані представлення бази даних, що фактично є зберігаємими в БД запитами (результатами будь-якого SQL -запиту до реляційної БД є таблиця) з поіменованими стовпцями, що називають полями. Для користувача його представлення БД є такою ж таблицею, як будь-яка базова таблиця, що зберігає в БД інформацію, але за допомогою представлень можна обмежити чи, навпаки, розширити видимість даних для конкретного користувача. Підтримка представлень також виконується на мовному рівні. Зрештою, авторизація доступу до об¢єктів бази даних виконується на основі спеціального набору операторів SQL. Ідея складається в тому, що для виконання операторів SQL різного виду користувач повинен володіти повними повноваженнями. До їх числа входять повноваження на передачу всіх або частини повноважень іншим користувачам. Повноваження користувачів також описуються в спеціальних таблицях-каталогах, контроль повноважень підтримується на мовному рівні.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |