Стандартизація доступу до корпоративної інформації


Розподілені БД

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

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

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

Розбіжності починаються, коли потрібно зберігати дані в декількох вузлах. Щоб зробити розбивку даних, потрібно секціонувати таблиці глобальної схеми на фрагменти. Існує два типи секціонування: горизонтальне й вертикальне. При секціонуванні таблиці по рядках виконується горизонтальне секціонування, при розбивці по стовпцях – вертикальне. Таким чином, архітектура розподіленої БД має містити інформацію про секціонування вихідних таблиць бази даних, що передбачає створення додаткового рівня – фрагментного. Для реалізації й пояснення розподіленої природи бази даних виділяються два рівні: фрагментний і рівень розподіленого подання. Останній показує географічний розподіл даних по робочих станціях, розташування екземпляра кожного фрагмента.

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

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

Різним формам подання знань у БД властивий ряд особливостей.

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

2.Структурованість. Інформаційні одиниці повинні мати гнучку структуру. Для них має виконуватися "принцип матрьошки", тобто рекурсивна вкладеність одних інформаційних одиниць в інші. Кожна інформаційна одиниця може входити до складу будь-якої іншої, і з кожної одиниці можна виділити деякі її складові. Іншими словами, має існувати можливість довільного встановлення між окремими інформаційними одиницями відносин типу "частина – ціле", "рід – вид" або "елемент – клас".

3.Зв’язаність. В інформаційній базі між інформаційними одиницями має бути передбачена можливість встановлення зв’язків різного типу. Насамперед, ці зв’язки можуть характеризувати відносини між інформаційними одиницями. Наприклад, дві або більше інформаційні одиниці можуть бути пов’язані відношенням "одночасно", дві інформаційні одиниці – відношенням "причина – наслідок" або відношенням "бути поруч". Наведені відносини характеризують декларативні знання. Якщо між двома інформаційними одиницями встановлене відношення "аргумент – функція", то він характеризує процедурне знання, пов’язане з обчисленням певних функцій. Існують відносини структуризації, функціональні відносини, каузальні відносини і семантичні відносини. За допомогою перших задаються ієрархії інформаційних одиниць, другі несуть процедурну інформацію, яка дозволяє обчислювати одні інформаційні одиниці через інші, треті задають при-чинно-наслідкові зв’язки, четверті відповідають усім іншим відносинам.

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

4.Семантична метрика. На безлічі інформаційних одиниць у деяких випадках корисно задавати відношення, що характеризує інформаційну близькість інформаційних одиниць, тобто силу асоціативного зв’язку між інформаційними одиницями. Його можна було б назвати відношенням релевантності для інформаційних одиниць. Таке відношення дає можливість виділяти в інформаційній базі деякі типові ситуації (наприклад "придбання", "продаж"). Відношення релевантності при роботі з інформаційними одиницями дозволяє знаходити знання, близькі до вже знайдених.

5.Активність. З моменту появи ЕОМ і поділу інформацій них одиниць, що використовуються у ній, на дані і команди створилася ситуація, при якій дані пасивні, а команди активні. Усі процеси, що відбуваються в ЕОМ, ініціюються командами, а дані використовуються цими командами лише в разі потреби. Для ІС ця ситуація неприйнятна. Як і в людини, в ІС актуалізації тих чи інших дій сприяють знання, що є в системі. Таким чином, виконання програм в ІС має ініціюватися поточним станом інформаційної бази. Поява в базі фактів або опису подій, встановлення зв’язків може стати джерелом активності системи.

Зазначені п’ять особливостей інформаційних одиниць визначають ту межу, за якою дані перетворюються в знання, а бази даних переростають у бази знань (БЗ). Сукупність засобів, що забезпечують роботу зі знаннями, утворюють систему управління базою знань (СУБЗ).

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

Об’єкт – це абстракція множини предметів реального світу, що мають однакові характеристики і закони поведінки. Об’єкт являє собою типовий невизначений екземпляр такої множини. Об’єкти поєднують в класи за загальними характеристиками. Наприклад, у реченні "Будинок є спорудою", "будинок" представляє об’єкт, а "споруда" – клас. Класи позначаються абстрактними іменниками.

Клас – це множина предметів реального світу, пов’язаних спільністю структури і поведінки.

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

Інформаційний додаток – прикладна програмна підсистема, орієнтована на збір, збереження, пошук і обробку текстової і/або фактографічної інформації. Переважна більшість інформаційних додатків працює в режимі діалогу з користувачем. У загальному випадку типові програмні компоненти інформаційного додатка містять діалогове введення-виведення, логіку діалогу, прикладну логіку обробки даних, логіку управління даними, операції маніпулювання файлами і/або базами даних. Для мережних інформаційних додатків важливим елементом є комунікаційний сервіс, що забезпечує взаємодію вузлів мережі при спільному рішенні інформаційного завдання. Значна частина можливостей додатка закладається в системному програмному забезпеченні, у бібліотеках і конструкціях інструментальних засобів розробки. Однак залишається частина додатка, специфічна для конкретної предметної області. Основними об’єктами розробки є компоненти додатка, що визначають логіку діалогу, а також логіку обробки і управління даними. Крім програмної складової додатка істотну роль відіграє інформаційна складова, яка задає структуру, атрибутику і типізацію даних, а також обмеження цілісності для баз даних. Інформаційна складова тісно пов’язана з логікою управління даними. Саме тому засоби автоматизації проектування додатків надають пріоритет інформаційній моделі, з якої виводиться все інше.

Концептуальна модель зображує об’єкти і їх взаємозв’язки без зазначення способів їх фізичного збереження. Таким чином, концептуальна модель є, власне кажучи, моделлю предметної області. При проектуванні концептуальної моделі всі зусилля розробника мають спрямовуватися в основному на структуризацію даних і виявлення взаємозв’язків між ними без розгляду особливостей реалізації і питань ефективності обробки. Проектування концептуальної моделі ґрунтується на аналізі вирішуваних у компанії завдань щодо обробки даних. Концептуальна модель включає описи об’єктів і їх взаємозв’язків, що викликають інтерес у розглянутій предметній області, і даних, що виявляються в результаті аналізу. Маються на увазі дані, які використовуються як у вже розроблених прикладних програмах, так і в тих, які тільки будуть реалізовані. Для кожного об’єкта характерні властивості, що є в БД. При цьому необхідно враховувати той факт, що при переході від логічної до фізичної моделі даних може відбутися усічення кількості об’єктів. Насправді, як правило, значна кількість даних, необхідних користувачеві, може бути досить легко підрахована в момент виведення інформації. У той же час, у зв’язку зі зміною алгоритмів розрахунку або вихідних величин, деякі розрахункові показники необхідно записувати в БД, щоб гарантовано забезпечити фіксацію їхніх значень. Вибір показників, які обов’язково слід зберігати в БД, досить складний. Рідко можна знайти однозначне вирішення цієї проблеми, і в будь-якому випадку воно потребує ретельного вивчення роботи компанії і аналізу концептуальної моделі.

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

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

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

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

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

2.7.Огляд сучасних систем управління базами даних (СУБД) для КІС

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

За ступенем універсальності розрізняють два класи СУБД: системи загального призначення; спеціалізовані системи.

СУБД загального призначенняце складні програмні комплекси, призначені для виконання всієї сукупності функцій, пов’язаних зі створенням і експлуатацією бази даних інформаційної системи. СУБД загального призначення не орієнтовані на яку-небудь предметну область або на інформаційні потреби якої-небудь групи користувачів. Кожна система такого роду реалізується як програмний продукт, здатний функціонувати на деякій моделі ЕОМ у певній операційній системі і поставляється багатьом користувачам як комерційний виріб. Такі СУБД мають засоби настроювання на роботу з конкретною базою даних. Використання СУБД загального призначення як інструментальні засобів для створення автоматизованих інформаційних систем, заснованих на технології баз даних, дозволяє істотно скорочувати терміни розробки, заощаджувати трудові ресурси. Цим СУБД властиві розвинені функціональні можливості і навіть певна функціональна надмірність.

Спеціалізовані СУБД створюються в деяких випадках за неможливості або недоцільності використання СУБД загального призначення.

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

СУБД першого покоління мали ряд істотних недоліків: відсутність стандарту зовнішніх інтерфейсів і забезпечення сумісності з прикладними програмами. Однак ці СУБД виявилися досить довговічними – розроблене на їх основі програмне забезпечення використовується і сьогодні, і великі ЕОМ (mainframe) містять величезні масиви актуальної інформації. Розробка реляційної теорії підштовхнула до створення наступного класу СУБД.

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

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

Системи управління базами даних можна поділити на 5 груп.

1. За використовуваною мовою спілкування:

– замкнені (ті, які мають власні самостійні мови спілкування користувачів із БД; вони забезпечують безпосереднє спілкування із системою в режимі діалогу, дозволяють працювати без програмістів);

– відкриті (у яких для спілкування з БД використовується мова програмування, "розширена" операторами мови маніпулювання даними (ММД); у цьому випадку необхідна присутність кваліфікованого програміста).

2. За кількістю підтримуваних СУБД рівнів моделей даних:

– одно-, дво-, трирівневі системи. Теоретично обґрунтований вибір трирівневої архітектури даних, однак на практиці СУБД для персональних ЕОМ часто поєднують концептуальний і внутрішній рівні подання.

3. За виконуваними функціями:

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

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

4. За сферою застосування:

– універсальні (які налаштовуються на будь-яку предметну область шляхом створення відповідної БД і прикладних програм);

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

5. За режимами роботи:

– пакетні;

– з використанням телеобробки.

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

Розглянемо основні характеристики деяких СУБД – лідерів на ринку програм, призначених як для розробників інформаційних систем, так і для кінцевих користувачів. У розглянуту групу програмних продуктів увійшли:

MS Access. Входить до складу найбільш популярного пакета Microsoft Office. Основні переваги: знайомий багатьом кінцевим користувачам і має високу стійкість даних, простий в освоєнні, може використовуватися непрофесійним програмістом, дозволяє готувати звіти з баз даних різних форматів. Призначений для створення звітів довільної форми на підставі різних даних і розробки некомерційних додатків.

Access Basic. Містить функції забезпечення зв’язку за протоколом OLE 2.0, що дозволяють керувати об’єктами з інших прикладних програм, сумісних з OLE 2.0. Крім того, ця мова дозволяє створювати об’єкти баз даних (запити, таблиці), змінювати структуру бази даних і створювати індекси безпосередньо з прикладної програми.

Visual Basic – це універсальна об’єктно-орієнтована мова програмування, діалекти якої вбудовані в Access, Visual FoxPro. Переваги – універсальність, можливість створення компонентів OLE, невисокі вимоги до апаратних ресурсів ЕОМ. Застосовується для створення додатків середньої потужності, не пов’язаних з великою інтенсивністю обробки даних, для розробки компонентів OLE, інтеграції компонентів Microsoft Office.

FoxPro (for Dos і for Windows) поставляються з додатковими бібліотеками, що забезпечують доступ до SQL-баз даних, здатних працювати разом із системою ODBC, але ця можливість менш інтегрована, ніж засоби первинного введення інформації в Access і Paradox for Windows.

Visual FoxPro відрізняється високою швидкістю, має вбудовану об’єктно-орієнтовану мову програмування з використанням xBase і SQL, діалекти яких вбудовані в багатьох СУБД. Має високий рівень об’єктної моделі. При використанні в обчислювальних мережах забезпечує як монопольний, так і роздільний доступ користувачів до даних. Застосовується для додатків масштабу підприємства для роботи на різних платформах: Windows 95/ 98/2000, Macintosh.

SQL Server – сервер баз даних, реалізує підхід "клієнт-сервер" і взаємодіє з зазначеними пакетами. Головні переваги: високий ступінь захисту даних, потужні засоби обробки даних, висока продуктивність. Сфера застосування: збереження великих обсягів даних, збереження високоцінних даних або даних, що потребують дотримання режиму таємності.

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