Інформаційні системи та бази даних
I. Вступ. Основні поняття.
Поняття інф. системи, б/д - визначення, властивості, етапи розвитку, класифікація; інформаційна модель концептуального рівня.
1.1. Поняття інформаційної системи.
При самому загальному підході інформаційну систему (ІС) можна визначити як сукупність організаційних і технічних засобів для збереження та обробки інформації з метою забезпечення інформаційних потреб користувачів (абонентів). Таке визначення може бути задовільним тільки при самій узагальненій і неформальній точці зору і підлягає подальшому уточненню.
ІС здавна знаходять (в тому чи іншому вигляді) досить широке застосування в життєдіяльності людства. Це пов'язано з тим, що для існування цивілізації необхідним є обмін інформацією - передача знань, як між окремими членами і колективами суспільства, так і між різними поколіннями.
Найдавнішими і найпоширенішими ІС слід вважати бібліотеки. І, дійсно, здавна в бібліотеках збирають книжки (або їх аналоги), зберігають їх, дотримуючись певних правил, створюють каталоги різного призначення для полегшення доступу до книжкового фонду. Видаються спеціальні журнали та довідники, що інформують про нові надходження, ведеться облік видачі.
Ще один приклад. На великому сучасному підприємстві в тому чи іншому вигляді повинна існувати інформаційна система. Для забезпечення якісного управління потрібно знати (можливо з різним ступенем оперативності) об'єм запасів тієї чи іншої сировини, скільки і якої вироблено продукції, скільки споживається електроенергії, який цех що виробляє і що потребує, та багато іншої інформації, яка стосується виробничих питань. Крім цього, профспілкам необхідні відомості про потреби співробітників у соціально-побутовій, медично-оздоровчій сферах, тощо. Для обробки всіх таких даних потрібні певні організаційні і технічні засоби, тобто ІС.
До цього моменту мова йшла про інформаційні системи без врахування способу їх реалізації. Найстаріші ( у моральному і у фізичному розумінні) системи повністю базувалися на ручній праці. Пізніше їм на зміну прийшли різні механічні пристрої для обробки даних (наприклад, для сортування, копіювання, асоціативного пошуку, тощо). Наступним кроком стало впровадження автоматизованих інформаційних систем (АІС), тобто систем, де для забезпечення інформаційних потреб користувачів використовується ЕОМ зі своїми носіями інформації. В наш час - епоху інформаційного вибуху - розроблюється і впроваджується велика кількість самих різноманітних АІСів з дуже широким спектром використання.
1.2. Поняття бази даних.
Зауважимо, що в літературних джерелах існує багато описів поняття бази даних, що зовні значно відрізняються один від одного, акцентуючи увагу на тій чи іншій рисі об'єкта опису, але по своїй суті вони достатньо близькі.
База даних (БД) -- це сукупність взаємозв'язаних даних, що зберігаються разом. Основними та невід'ємними властивостями БД є такі:
- для даних допускається така мінімальна надлишковість, яка сприяє їх оптимальному використанню в одному чи кількох застосуваннях;
- незалежність даних від програм;
- для пошуку та модифікації даних використовуються спільні механізми;
- як правило, у складі БД існують засоби для підтримки її цілісності та захисту від неавторизованого доступу
Прокоментуємо додатково підкреслені слова та вирази у вищенаведеному описі, порівнюючи в основному з близьким попередником БД - файловими системами (ФС).
На відміну від файлових систем БД зорієнтована для підтримки даних для кількох застосувань. На практиці ця властивість інколи порушується. Часом таке порушення можна пояснити тим, що проект вводиться в дію поетапно, і у певний момент дійсно функціонує тільки одне застосування. Іноді відхід від вказаної властивості зумовлений іншими важлими причинами, але, на жаль, не є рідкістю просто помилка у виборі засобів для реалізації проекту і ситуація нагадує відоме прислів'я про стрілянину з гармати по горобцям.
Взаємозв'язаність даних полягає в тому, що доступ до певної групи даних якогось застосування загалом полегшує доступ до інших груп даних цього ж застосування. В умовах орієнтації БД на велику кількість застосувань виникає необхідність у підтримці значного числа різноманітних зв'язків між даними. Саме у розумінні тісного логічного зв'язку використані слова про збереження разом даних. Розглянемо приклад, який ілюструє вказану властивість у порівнянні з простими ФС.
Приклад про міщок з різнокольоровими кульками.Нехай у мішку є багато різнокольорових кульок, і завдання полягає в тому, щоб знайти кульку певного кольору, витягаючи їх по одній з мішка. Якщо операції витягання кульки з мішка повністю незалежні між собою, то цей приклад є аналогом технології роботи у рамках простих ФС з послідовним доступом. Якщо ж припустити, що кульки зв'язані між собою різнокольоровими мотузками, тоді пошук кульки можна пришвидчити, використавши на черговому кроці мотузку потрібного кольору. Цей варіант прикладу є аналогом технології роботи з взаємозв'язаними (мотузками) даними, що характерно для функціонування БД.
Вимога мінімізаціїї надлишковості полягає у мінімальній кількості копій для одних і тих же даних з урахуванням орієнтації на кілька застосувань. Ці надлишкові копії використовуються для підтримки зв'язків між даними. Як приклад, розглянемо відомості, що зберігаються у відділі кадрів деякого підприємства про своїх співробітників. Користувачами цієї інформації виступають адміністрація, профспілкова організація та бухгалтерія підприємства. Адміністрацію цікавлять дані про кваліфікацію, професійний рівень і досвід роботи, профспілки використовують відомості соціально-побутового характеру, а бухгалтерія оброблює ті дані, що потрібні для нарахувань заробітної плати та підрахунку податків, інших нарахувань та відрахувань. Хоча інформація і різнорідна, але все ж має значну спільну частину. Всім користувачам потрібні службовий номер, прізвище, ім'я, по-батькові співробітника, його рік народження, дані про умови праці. Інформація про сімейний стан та склад сім'ї використовується бухгалтерією і профспілками. Якщо для зберігання даних застосувати технологію ФС, то можливі два крайні варіанти: а)незалежні один від одного файли, відсортовані згідно з потребами того чи іншого користувача, передбачають значну надлишковість даних; б)всі дані знаходяться у одному файлі, відсортованому так, як потрібно одному з користувачів (наприклад, адміністрації) - надлишковість при цьому практично відсутня, але зручно працювати тільки одному з користувачів. Концепція БД займає проміжне становище між вищеописаними крайніми позиціями.
Зайва надлишковість має кілька недоліків. По-перше, зберігання кількох копій веде до додаткових витрат пам'яті. По-друге, доводиться виконувати численні операції оновлення для кількох надлишкових копій. Крім того, оскільки різні копії даних можуть відповідати різним стадіям оновлення, то інформація, що зберігається в системі на певний час може стати суперечливою.
Про незалежність даних часто говорять, як про одну з основних властивостей БД. Під цим поняттям розуміється можливість зміни структури даних без зміни програм, що її використовують, а також рівень самоінтерпрето-ваності даних. Міра незалежності даних тісно пов'язана з ступенем необхідної деталізації відомостей про організацію їх зберігання. Проілюструємо цю ситуацію дещо абстрагованим прикладом. Припустимо, що ви збираєтесь переглянути фільм у кінотеатрі, а для того, щоб прибути на місце плануєте скористатись послугами таксі. Поінформованість та досвід водія таксі відповідають мірі незалежності. У одному випадку Вам достатньо вказати лише назву фільму, а все інше зробить водій. У іншому випадку Вам потрібно буде визначити назву кінотеатру. Наступне зниження рівня - це адреса кінотеатру, а ще далі - вказівки по дорозі типу "їхати прямо, звернути наліво, а через 500 метрів - направо і т.п.". Аналогічно і користувачу при підвищенні ступеня незалежності даних треба менше задавати (і знати) "процедурної" інформації щодо доступу до даних. Зауважимо, що певний (хоч і досить низький) рівень незалежності мають сучасні ФС: при доступі до файлу достатньо вказати його ім'я, а інформація про треки та сектори непотрібна, але зміна розміру запису вимагає корекції всіх програм, що звертались до цього файла.
Під цілісністю БД розуміють несуперечливість між собою даних, що в ній зберігаються. Наприклад, для кадрових відомостей рік народження співробітника не може бути більшим року призначення на посаду або поточного року. Щоб запобігти виникненню таких ситуацій при модифікації і поповненнях БД, співвідношення між даними контролюються спеціальними засобами підтримки цілісності БД. Специфікація подібних умов, що накладаються на дані і відслідковуються при будь-яких їх оновленнях, покладаються на спеціальну службу Адміністратора бази даних (АБД), а системи управління базами даних (СУБД) надають інструментальні засоби, які забезпечують службі АБД можливість виконання її функцій.
За критерієм виразової потужності інструментальні засоби специфікації умов цілісності можна підрозділити на такі групи:
1)порівняння поля запису (або атрибута) з константою або з іншим полем цього ж запису; приклад такої умови наводився вище;
2)порівняння поля запису з полем або кількома полями інших записів;3)порівняння поля запису з множиною (підмножиною) значень полів всього файлу або навіть кількох файлів. При порівняннях використовуються відношення належності (неналежності) елемента множині, або застосовуються множинні функції типу суми, кількості, середнього арифметичного, тощо. Приклад такої умови: заробітна плата певного службовця не може більш ніж у 5 разів перевищувати середнє арифметичне від заробітної плати його підлеглих.
Зауважимо також, що вищенаведений поділ на групи має в своїй основі не тільки виразову потужність, а і складність алгоритмів реалізації.
Оскільки однією з основних властивостей БД є орієнтація на широке коло застосувань, то природно передбачити засоби захисту від неавторизованого доступу (навмисного чи ненавмисного) користувачів до даних. З цією метою в БД встановлюється система паролів та ідентифікацій користувачів, а також розподіл даних і користувачів на групи з різноманітними взаємними правами.
1.3. Класифікація АІС.
В науковій літературі існує досить значне розмаїття щодо класифікації АІС. Різні автори в залежності від своїх задач та точок зору виділяють ті чи інші критерії і розподіляють пріоритети між ними. Зупинимось на одному з таких підходів, який на наш погляд, найбільш узгоджується з іншими темами цього курсу. Отже, АІС класифікуються:
1) за призначенням (фактографічні, документальні та змішані);
2) за мовами (замкнуті системи, системи з базовою мовою та змішані);
3) за локалізацією (локальні та розподілені);
4) за схемою додаткової обробки (постобробка та попередня обробка);
5) за структурами даних (ієрархічні, мережаного типу , реляційні).
Розглянемо по черзі і детальніше кожний з критеріїв.
1) за призначенням.
Документальні системи зорієнтовані на обробку та зберігання документа (порівняно великої за розміром послідовності символів), внутрішню структуру якого система (майже) повністю ігнорує, тобто він неподільний (атомарний) з точки зору системи. Споживачем результатів пошуку виступає, як правило, кінцевий користувач.
Фактографічні системи оперують фактами (даними) різних типів, що зв'язані в системі в більш чи менш складні структури. Дані, що є результатом пошуку, можуть стати складовою частиною звітів або використовуються різноманітними обчислювальними процесами.
Змішані системи включають в себе в тих чи інших пропорціях риси обох вищеназваних варіантів. Переважну більшість сучасних систем для ПЕОМ слід віднести до категорії змішаних.
Звичайно, наведені описові характеристики не дають можливості чітко визначитись у випадку класифікації кожної конкретної ІС, але дозволяють зробити перші грубі припущення. Для більш точних класифікаційних оцінок необхідно враховувати додаткові властивості, що відносяться до пошукового процесу, а також до особливостей мов запитів, реалізованих в тій чи іншій системі. Оскільки подальші наші розгляди будуть стосуватися переважно фактографічних систем, тому зараз приділимо більше уваги саме документальним системам.
Дескрипторні або документальні АІС (ДАІС) історично були першими. Спочатку їх мовою була нічим не обмежена природна мова. Перші ДАІС були призначені для пошуку книг та документів у бібліотеках і великих сховищах, тому їх і почали називати документографічними.
Основним елементом інформаційного простору ДАІС була анотація або реферат книги, документа, явища чи об'єкта. Реферат повинен відображувати ті риси, які цікавлять користувача (як правило - людини). В ньому виділяються слова чи слоросполучення, які в сукупності майже однозначно (в ідеалі точно) відповідають повному опису об'єкта, крім того, таких слів повинно бути відносно небагато. Їх називають ключовими словами або дескрипторами. Запит для ДАІС можна зформулювати у вигляді переліку дескрипторів, який на думку користувача характеризує потрібний реферат, а значить, і відповідний об'єкт. Алгоритм формування відповіді послідовно порівнює запит з кожним рефератом і вибирає такі, що пройшли порівняння. В таких системах запит називають пошуковим розпорядженням, а реферат - пощуковим образом.
2) за мовами (замкнуті системи, системи з базовою мовою та змішані);
Системи з базовою мовою передбачають взаємодію користувача з СУБД з середовища якоїсь іншої мови програмування, де і виконуються більшість постпошукових перетворень даних. Такий підхід зручний для розробки різного роду систем як надбудов над СУБД, бо дає можливість створювати високоефективні програми постпошукової обробки даних.
Замкнуті системи самостійно забезпечують користувача всіма необхідними засобами як для локалізації даних, так і для їх постпошукової чи передпошукової обробки. Недоліком таких систем є те, що в них відсутні (або малоефективні) засоби для розробки надбудов – проблемно-орієнтованих комплексів.
Змішані системи передбачають наявність обох можливостей двох попередніх підходів і є найбільш поширеними на сьогодні.
3) за локалізацією (локальні та розподілені);Локальність передбачає розташування всього програмного забезпечення і даних на одному ізольованому комп’ютері, а розподіленість означає розташування системи на мережі комп’ютерів з певною стратегією рознесення даних.
4) за схемою додаткової обробки (постобробка та попередня обробка);
Головним призначенням будь-якої системи баз даних є підтримка функцій локалізації даних, що зберігаються, але дуже важливою властивістю, що може значно підняти інтерфейсний рівень системи, є наявність постобробки даних після їх локалізації в базі даних, чи попередньої обробки.
5) за структурами даних (ієрархічні, мережаного типу , реляційні).
Структури даних, що підтримуються в системі бази даних, - це важливий фактор, що впливає, як на виразову потужність, так і на ефективність функціонування. Для систем з ієрархічною структурою базовою структурою даних є дерево; як правило, вони мають найвищу ефективність функціонування, але виразові можливості їх відносно низькі. Системи з структурами даних типу мережа мають значно кращі виразові можливості, але дещо програють у ефективності функціонування, точніше, від користувача вимагається значно вищий рівень кваліфікації для ефективної експлуатації таких систем. В останні десятиріччя найбільшого розповсюдження (особливо для персональних ЕОМ) зазнали СУБД реляційного типу, для яких характерно щонайпростіша структура даних (плоский файл), але одночасово суттєво підвищений рівень мов маніпулювання даними, що максимально употужнює виразові можливості та знижує ефективність функціонування, тому для таких систем потрібні потужні комп’ютери, і вони значно чутливіші (порівняно з попередниками) до росту об’ємів даних.
1.4. Класифікація запитів.
За складністю запити поділяються на найпростіші, прості та складні. Зауважимо, що множина складних запитів може бути класифікована більш детально. Для класифікації найпростіших запитів введемо основну форму:
А ( O ) = V,
де А - ім'я атрибута або властивості, відносно якої формується запит, O - специфікація об'єкта запиту, V - значення, яке може набути атрибут об'єкта; замість знака "=" може бути використаний будь-який із знаків бінарних предикатів, що визначені для значень даної властивості об'єкта, наприклад: {<, >, =>, ...}. Для ілюстрації запитів на прикладах використаємо таблицю, що відображає торгівельну діяльність деякої фірми: виторги по місяцям у кількох кіосках. Заголовки стовбчиків таблиці будуть такими: № кіоска, виторг за січень, виторг за лютий, .... , виторг за грудень, а рядки будуть заповнені значеннями сум виторгів для певного кіоска за місяць, назва якого вказана в заголовку відповідного стовбчика.
Підставляючи знаки питання у різні місця основної форми, отримаємо всі типи запитів (знак питання буде означати запит до тієї компоненти основної форми, на місці якої він стоїть). Будемо також брати до уваги такі властивості запитів як тип результату (одне значення чи множина) та режим відпрацювання, що характеризується кількістю звернень до зовнішньої пам'яті.
1. А(O)=? - по заданому атрибуту і об'єкту знайти відповідне значення.
Приклад: Який виторг у кіоска № 2 у березні.
Такий запит називають прямим. Його особливості: результатом пошуку завжди є одна клітина таблиці і відповідно одне значення (значення типу невизначено теж є значенням); для режиму відпрацювання такого запиту характерно одне звернення (у кращому випадку) до зовнішньої пам'яті, оскільки можлива пряма адресація потрібного запису.
2. А(?) = V - по заданному атрибуту та значенню знайти множину об'єктів.
Приклад: Які кіоски у березні мали виторг у 2000 грн.
Такий запит називають інвертованим. Його особливості: результатом пошуку є (взагалі кажучи) кілька клітин у стовбчику, що специфікує рядки (об'єкти) таблиці і відповідно множина значень; при відпрацюванні такого запиту потрібно виконати повний перебір записів або завчасно створити відповідні вторинні індекси.
3. ?(О)=V - знайти імена атрибутів, що мають вказане значення по специфікованому об'єкту.
Приклад: У якому місяці виторг кіоска № 2 дорівнював 2000 грн.
Такий запит теж часто називають інвертованим (але у широкому розумінні), оскільки його результатом є множина значень. Однак, він суттєво відрізняється від запиту попереднього типу тим, що діє над одним рядком таблиці, а при його відпрацюванні не потрібен перебір, тому по цій властивості він більше схожий на прямий запит.
Наступна група запитів має в своєму складі по два знаки ?, що у певному розумінні означає комбінування "чистих" попередніх запитів.
4. ?(О)= ? - знайти всі значення по специфікованому об'єкту разом з відповідними іменами атрибутів.
Приклад: Для кіоска № 2 по кожному місяцю знайти значення виторгу.
Результатом запиту є множина пар значень, але по одному рядку таблиці, тобто по одному об'єкту, тому перебір не потрібен.
5. А(?)= ? - знайти всі значення по вказаному атрибуту разом з специфікаціями відповідних об'єктів.Приклад: Знайти значення виторгу за лютий місяць для всіх кіосків.
Результатом запиту є множина пар значень, крім того потрібен перебір рядків таблиці. 6. ?(?) = V - знайти специфікації об'єктів з іменами потрібних атрибутів, де мається вказане значення.
Приклад: Знайти номери кіосків та назви місяців, коли виторг дорівнював 2000 грн.
Результатом запиту є множина пар значень, при відпрацюванні потрібен перебір рядків таблиці. Швидше для повноти розстановки знаків "?", аніж важливості для практики, наведемо останній тип найпростішого запиту.
7. ?(?) = ? - видати всі відомості.
Приклад: Видати всі значення таблиці.
Прості запити можна отримати з найпростіших (а також і простих) за допомогою логічних зв'язок ("або", "і", "ні"). Для побудови складних типів запитів необхідне використання кванторів існування та узагальнення.