Зацерковний В.І. та ін. ГІС та бази даних. І бази даних
Скачать 31.1 Mb.
|
Рис. 9.1. Дані як частина програм Якщо змінювалась організація даних або тип запам’ятовуючого пристрою, програмісту доводилось заново переписувати програму, що призводило до численних версій одного й того ж файлу, а отже, й до високого ступеня дублювання даних, їх надлишковості. Наступним кроком стало збереження даних в окремих файлах (рис. 9.2). Рис. 9.2. Збереження даних в окремих файлах Прикладні програми самі визначали розташування даних на магніт- ній стрічці чи барабані й здійснювали обмін інформацією між оператив- ною та зовнішньою пам’яттю за допомогою програмно-апаратних засобів 34 Інформаційна система (англ. іnformation system) – сукупність організаційних і технічних засобів для збереження та обробки інформації з метою забезпечення інформаційних потреб користувачів. Код програми Сегмент даних Програма Дані 323 низького рівня (машинних команд або викликів відповідних програм операційної системи). Такий спосіб роботи не дозволяв або дуже ускладнював підтримку на одному зовнішньому носієві кількох архівів інформації, якщо вони мали зберігатися тривалий час. Крім того, для кожної прикладної програми доводилося вирішувати проблеми іменування частин даних та їхньої структуризації в зовнішній пам’яті [89]. Недоліком цих двох підходів була залежність програм від даних: відомості про структуру даних включались до коду програми. При зміні структури даних виникала потреба внесення змін у програмі. Логічним продовженням цієї еволюції є перенесення опису даних до масиву даних (рис. 9.3). Це дозволило забезпечити незалежність даних від програм. Рис. 9.3. Забезпечення незалежності даних від програм Таким чином склалося два підходи до організації інформаційних масивів: – файлова організація інформаційних масивів; – організація інформаційних масивів у вигляді бази даних. 9.1.1. Файлова організація масивів даних Файл – це іменована частина зовнішньої пам’яті, в яку можна записувати і з якої можна зчитувати дані. Файлова організація масивів даних передбачає спеціалізацію та збере- ження інформації, орієнтованої, як правило, на одну прикладну задачу, та забезпечується прикладним програмістом. Така організація дозволяє досяг- нути високої швидкості обробки інформації, але характеризується низкою недоліків. Користувачі бачать файл як лінійну послідовність записів і можуть виконати над ними низку стандартних операцій: • створити файл необхідного типу і розміру; • відкрити раніше створений файл; • зчитати з файлу певний запис (поточний, наступний, попередній, перший, останній); Програма БД Опис даних Дані 324 • записати у файл на місце поточного запису новий, додати новий запис у кінець файлу. В різних файлових системах ці операції можуть різнитись, але загаль- ний зміст їх буде саме таким. Головне – це те, що структура запису файлу відома тільки програмі, яка з ним працює, система керування файлами її не знає. І тому для того, щоб здобути певну інформацію з файлу, необхідно точно знати структуру запису файлу з точністю до біта. Кожна програма, що працює з файлом, повинна містити в собі структуру даних, відповідну структурі цього файлу. Тому при зміні структури файлу потрібно було змі- нювати структуру програми, а це вимагало нової компіляції, тобто процесу перекладу програми у виконувані машинні коди. Така ситуація харак- теризується як залежність програм від даних. Характерна риса файлового підходу – вузька спеціалізація як програм обробки, так і файлів даних, що є причиною великої надлишковості (одні й ті ж елементи даних зберігаються в різних системах). Оскільки керування здійснюється різними особами (групами осіб), відсутня можливість виявити порушення суперечливості збереженої інформації. Розроблені файли для спеціалізованих прикладних програм не можна використовувати для задо- волення запитів користувачів, які перекривають дві і більше предметні сфери. Предметна сфера – частина реального світу, дані з якого відображені в базі даних. Наприклад, як предметну сферу можна обрати бухгалтерію підпри- ємства, відділ кадрів, банк, магазин тощо. Предметна сфера нескінченна і містить як істотно важливі поняття і дані, так і малозначущі або взагалі не значущі дані. Так, якщо як предметну сферу обрати облік товарів на складі, то поняття "накладна" і "рахунок-фактура" є істотно важливими поняттями, а те, що співробітниця, яка приймає накладні, має двох дітей – це для обліку товарів неважливо. Однак з точки зору відділу кадрів дані про наявність дітей є вкрай важливими. Таким чином, важливість даних залежить від вибору предметної сфери. Крім того, файлова організація даних внаслідок відмінностей структу- ри записів і форматів представлення даних не забезпечує виконання багатьох інформаційних запитів навіть у тих випадках, коли всі необхідні елементи даних містяться в наявних файлах. Тому виникає потреба відокре- мити дані від їхнього опису, визначити таку організацію збереження даних з урахуванням існуючих зв’язків між ними, яка б дозволила використовува- ти ці дані одночасно для багатьох додатків (застосувань). Зазначені причини й обумовили появу баз даних. У комп’ютерах першого покоління використовувалися два види при- строїв зовнішньої пам’яті – магнітні стрічки і барабани. Ємність магнітних стрічок була достатньо велика, але за своєю фізичною природою вони мог- ли забезпечити тільки послідовний доступ до даних. Магнітні ж барабани 325 (вони найближчі до сучасних магнітних дисків з фіксованими головками) давали можливість довільного доступу до даних, але мали обмежений об’єм інформації. Ці обмеження не були істотними для суто числових розрахун- ків. Навіть якщо програма й повинна була опрацювати великий об’єм інформації, при програмуванні завжди можна продумати розташування цієї інформації в зовнішній пам’яті так, щоб забезпечити ефективне виконання цієї програми. Однак в ІС потреба користувачів у пошуку інформації вимагає порів- няно швидкої реакції системи на їх запити. Саме вимоги нечисленних застосувань в ІС викликали появу знімних магнітних дисків з рухомими го- ловками, що стало революційною подією в історії обчислювальної техніки. Ці пристрої зовнішньої пам’яті мали істотно більшу ємкість на відміну від магнітних барабанів, забезпечували задовільну швидкість доступу до даних у режимі довільної вибірки, а можливість зміни дискового пакету на пристрої дозволяла мати практично необмежений архів даних. З появою магнітних дисків почалася історія систем керування даними в зовнішній пам’яті. До цього кожна прикладна програма, за допомогою якої потрібно було зберігати дані в зовнішній пам’яті, сама визначала розташування кожної порції даних на магнітній стрічці або барабані і виконувала обмін між оперативною пам’яттю та пристроями зовнішньої пам’яті за допомогою програмно-апаратних засобів низького рівня (машин- них команд або викликів відповідних програм операційної системи). Такий режим роботи не дозволяв або дуже ускладнював підтримку на одному зовнішньому носії декількох архівів довготривалого збереження. Крім того, кожній прикладній програмі доводилося вирішувати проблеми іменування частин даних і структуризації даних у зовнішній пам’яті. Тому важливим кроком у розвитку ІС з’явився перехід до викорис- тання централізованих систем управління файлами. Правила іменування файлів, спосіб доступу до даних, що зберігаються в файлі, структура цих даних залежать від конкретної системи керування файлами і від типу фай- лу. Система керування файлами бере на себе розподіл зовнішньої пам’яті, відображення імен файлів у відповідні адреси в зовнішній пам’яті і забезпечення доступу до даних. Для ІС характерною є наявність великої кількості різних користувачів (програм), кожен з яких має свої специфічні алгоритми обробки інформації, що зберігаються в одних і тих же файлах. 9.1.2. Необхідність розробки СКБД Необхідність розробки СКБД викликана такими причинами: 1. Зміна структури файлу, яка необхідна для однієї програми, вимагає виправлення, перекомпіляції й додаткового налагодження решти програм, що працюють з цим файлом. Це перший істотний недолік файлових систем, 326 який стимулював створення нових систем збереження й керування інфор- мацією. Оскільки файлові системи є загальним сховищем файлів, що нале- жать різним користувачам, системи керування файлами повинні забезпеч- увати авторизацію доступу до файлів. У загальному вигляді підхід полягає в тому, що до кожного зареєстрованого користувача даної обчислювальної системи, для кожного існуючого файлу вказуються дії, які дозволені або заборонені даному користувачеві. 2. Відсутність централізованих методів керування доступом до інформації стала другою причиною розробки СКБД. 3. Третьою причиною стала необхідність забезпечення ефективної паралельної роботи багатьох користувачів з одними й тими ж файлами. В загальному випадку системи керування файлами забезпечували режим багатокористувацького доступу. Якщо операційна система підтримує ба- гатокористувацький режим, цілком реальна ситуація, коли два або більше користувачів одночасно намагаються працювати з одним і тим же файлом. Якщо всі користувачі збираються тільки зчитувати файл, нічого страшного не відбувається. Але якщо хоча б один з них буде змінювати файл, то для коректної роботи цих користувачів потрібна взаємна синхронізація їх дій по відношенню до файлу. В системах керування файлами зазвичай застосовувався такий підхід. В операції відкриття файлу (першій і обов’язковій операції, з якою повинен починатись сеанс роботи з файлом) серед інших параметрів вказувався режим роботи (читання або зміна). Якщо до моменту виконання цієї опера- ції певним користувацьким процесом PR 1 файл був уже відкритий іншим процесом PR 2 в режимі зміни, то залежно від особливостей системи про- цесу PR 1 або повідомлялося про неможливість відкриття файлу або він бло- кувався доти, поки в процесі PR 2 не виконувалась операція закриття файлу. При подібному способі організації одночасна робота декількох користувачів, пов’язаних з модифікацією даних у файлі, або взагалі не буде реалізовуватись, або буде дуже сповільнена. Ці недоліки стимулювали розробників ІС запропонувати новий підхід – створення баз даних. 9.1.3. Бази і банки даних як засіб збереження даних У базах даних сукупність взаємопов’язаних даних, що зберігаються разом, організована таким чином, що їх використання є оптимальним для одного або декількох додатків; дані є незалежними від програм, що вико- ристовують ці дані; для додавання нових або модифікації існуючих даних, а також для пошуку даних у БД застосовують загальний спосіб керування. При цьому дані структуруються таким чином, що забезпечується можли- вість подальшого нарощування додатків. 327 База даних (БД) – структурований, організований набір даних, що описує характеристики певних фізичних чи віртуальних систем. Структурування – це введення угод про способи подання даних. Складно організувати пошук необхідних даних, які зберігаються в неструктурованому вигляді, а впорядкувати подібну інформацію взагалі неможливо. Підхід був реалізований у рамках нових програмних систем, назва- них згодом Системами Керування Базами Даних (СКБД), а самі сховища інформації, які працювали під керуванням даних систем, називалися базами або банками даних (БД і БНД). СКБД – комплекс програмних і мовних засобів, призначених для організації, супроводу та надання доступу до БД користувачам. Примітка. "Базою даних" доволі часто помилково або з метою спрощення називають СКБД. Однак потрібно розрізняти набір даних (тобто БД) та програмне забезпечення, що призначене для організації та супроводження бази даних. Банк даних – це система спеціальним чином організованих даних (баз даних), програмних, технічних, мовних, організаційно-методичних засобів, призначених для забезпечення централізованого накопичення і колективного багатоцільового використання даних. Фактично у будь-якої сучасної СКБД існує аналог, який випускається іншою компанією і який має аналогічну сферу застосування і можливості, будь-який додаток здатний працювати із багатьма форматами подання даних, здійснювати експорт та імпорт даних завдяки наявності великої кількості конвертерів. Серед найбільш яскравих представників СКБД можна відзначити: Lotus Approach, Microsoft Access, Borland dBase, Borland Paradox, Microsoft Visual FoxPro, Microsoft Visual Basic, а також бази даних Microsoft SQL Server і Oracle, що використовуються в додатках, побудованих за техноло- гією "клієнт – сервер". Для порівняння ефективності найвідоміших СКБД зазвичай вико- ристовують такі критерії оцінки: • масштабованість; • продуктивність; • доступність даних; • функціональні можливості сервера; • відкритість; • наявні засоби розробки. Загальноприйнятими також є технології, які дозволяють використо- вувати можливості інших додатків, наприклад, текстових редакторів, пакетів побудови графіків тощо, і вбудовані версії мов високого рівня (найчастіше – діалекти SQL і / або VBA) та засоби візуального програму- вання інтерфейсів розроблюваних додатків. Тому вже не має істотного 328 значення, якою мовою і на основі якого пакету був написаний конкретний додаток та який формат даних у ньому використовується. Більш того, стандартом "де-факто" стала "швидка розробка програм", або RAD (від англ. Rapid Application Development), заснована на широко декларованому в літературі "відкритому підході", тобто можливості використання різних прикладних програм і технологій для розробки більш гнучких та потуж- них систем обробки даних. Тому в одному ряду з "класичними" СКБД все частіше згадуються мови програмування Visual Basic 6.0 і Visual C++, які дозволяють швидко створювати необхідні компоненти додатків, критичні за швидкістю роботи, які важко, а іноді неможливо розробити засобами "класичних" СКБД. Сучасний підхід до керування базами даних перед- бачає також широке використання технології "клієнт – сервер". 9.2. Етапи розвитку систем керування базами даних Історія розвитку СКБД нараховує майже 50 років і починається… з польоту на Місяць. Американська компанія NAA (North American Aviation, зараз "Rockwell International") уклала контракт з урядом США на участь у проекті "Apollo" 35 Оскільки побудова космічного корабля передбачає щонайменше збірку декількох мільйонів деталей, то для цього була створена система керування файлами, яка відслідковувала інформацію про кожну деталь. Проте в ході подальшої перевірки цієї ІС виявилася величезна надмірність файлової системи збереження даних. З’ясувалося, що майже всі дані повторюються в двох і більше файлах. Зіткнувшись із завданням координації замовлень на мільйони деталей, компанія Rockwell у співпраці з IBM у 1968 р. розробила автоматизовану систему замовлень, яка одержала назву IMS (Information Management System – система керування інформацією). Саме вона заклала основу концепції СКБД. Ключовим нововведенням IMS був поділ даних і функцій ділової логіки. Прикладні програмісти отримали можливість працювати з інфор- мацією на логічному рівні, а база даних брала на себе завдання фізичного збереження даних. Подібний розподіл праці привів до різкого стрибка продуктивності роботи компанії. Ще одним винаходом стала мова програмування DL/I (Data Language/I). Це була спеціалізована мова складання нерегламентованих запитів до бази даних. Її поява зробила непотрібним коштовне програ- мування на таких мовах, як COBOL і FORTRAN, популярних на той час. Незважаючи на те, що IMS є першою з комерційних СКБД, вона до сьогодення залишається основною ієрархічною СКБД, що використовується на більшості великих мейнфреймів. У ній реалізована ієрархічна модель 35 Космічна програма США дослідження Місяця. 329 даних, у якій існує тільки один шлях від кореня ієрархії до кожного запису. Така модель стала основою для систем керування даними, вона ж дала поштовх до подальших моделей даних через свою обмеженість. У 1971 р. відбулася конференція з мов обробки даних (Conference on Data Systems Languages, CODASYL), метою якої була розробка стандартів баз даних. Попередньо ця конференція вже стандартизувала мову COBOL. Новий стандарт визначив низку фундаментальних понять в теорії систем баз даних, які і до сьогодення є основоположними для мережевої моделі даних. У мережевій моделі будь-який запис може брати участь у декількох відносинах предок / нащадок. Це дозволяло обходити цілу низку обме- жень ієрархічної моделі. Розробкою мережевої моделі займався Чарльз Бахман (рис. 9.4) – керівник проекту IDS (Integrated Data System – інтегрована система обробки даних) у компанії General Electric. Тим часом науковий співробітник компанії IBM доктор Едгар Кодд (рис. 9.5) працював над епохальним документом для Асоціації виробни- ків обчислювальної техніки (Association for Computing Machinery, ACM). У червні 1970 р. цей документ був опублікований в ACM Journal під назвою "Реляційна модель для великих банків спільно використовуваних даних" ("A Relational Model of Data for Large Shared Data Banks"), який докорінно змінив теорію баз даних і приніс доктору Кодду премію Тю- рінга в 1981 р. Доктор Кодд запропонував реляційну модель, у якій дані можна було вільно описувати в їх природному вигляді без будь-яких обмежень, що накладаються середовищем фізичного збереження. Рис. 9.4. Чарльз Вільям Бахман (англ. Charles William Bachman, 11 грудня 1924 року, Манхеттен (Канзас), США)) – американський вчений у галузі комп’ютерних наук, зокрема розробки баз даних. Лауреат премії Тюрінга, на його честь названа нотація Бахмана в ER-моделі даних |