2) спостерігалося різке збільшення кількості файлів і додатків. В результаті співробітники відділу обробки даних були не в змозі задовольнити всі потреби за допомогою наявних на той час ресурсів при цьому часто ігнорували питання підтримки функціонування системи: не передбачалися заходи безпеки або цілісності даних, засоби обновлення після збою апаратного і програмного забезпечення були обмеженими або взагалі відсутніми. Доступ до файлів часто обмежувався одним користувачем, тобто н передбачалося спільне використання файлів навіть робітниками одного відділу.
Системи з базами даних
Всі перераховані вище обмеження фалових систем є наслідком двох факторів:
· визначення даних міститься всередині прикладних програм, а не зберігається окремо і незалежно від них.
· Окрім прикладних програм не передбачено жодних інших інструментів доступу до даних та їх обробки.
Для підвищення ефективності роботи необхідно використовувати новий підхід, а саме базу даних і систему керування базами даних, або СКБД.
База даних- це сумісно використовуваний набір логічно зв’язаних даних та опис цих даних, передбачений для задоволення інформаційних потреб організації.
База даних – це єдине, велике сховище даних, яке одноразово визначається, а потім використовується одночасно багатьма користувачами з різних підрозділів. Замість окремих файлів з надлишковими даними, тут всі дані зібрані разом з мінімальною часткою надлишковості. База даних є корпоративним ресурсом і не належить якомусь окремому відділу. Зауважимо, що база даних зберігає не лише робочі записи підприємства, але й їх опис.
З точки зору додатку, файл – це іменована область зовнішньої пам’яті, в яку можна записати і з якої можна зчитати дані.
Система управління файламибере на себе розподілення зовнішньої пам’яті, відображення імен файлів за відповідними адресами у зовнішній пам’яті і забезпечення доступу до даних.
Перша файлова система була розроблена намаганнями фірми IBM для серії комп’ютерів 360. У файлових системах різних операційних систем файл для користувача представляється по-різному. Наприклад користувачі ОС DEC, RSX, VMS, розглядають файл як послідовність записів. Кожен запис – це байтова послідовність постійного або змінного розміру. Записи можна зчитувати або записувати послідовно або позиціонувати файл на запис з вказаним номером.
Деякі файлові системи дозволяють розбивати записи на поля і оголошувати деякі поля ключами запису. В таких системах можна зробити вибірку з файлу за заданим ключем.
Інший підхід, який набув поширення разом з операційною системою UNIX, полягає в тому, що будь-який файл представляється як послідовність байтів. З файлу можливо зчитати вказану кількість байтів, або з початку, або попередньо налаштувавши його на байт з вказаним номером. Аналогічно можливо записати вказане число байт в кінець файлу, або попередньо виконавши позиціонування файлу.
Як захистити файл?
Оскільки файлові системи є спільним сховищем файлів, які в загальному випадку належать різним користувачам, системи керування файлами забезпечують авторизацію доступу до файлів. В загальному вигляді підхід полягає в тому, що по відношенню до кожного зареєстрованого користувача даної обчислювальної системи для кожного наявного файлу вказуються дії, які дозволені або заборонені для даного користувача.
В більшості сучасних систем керування файлами застосовується підхід до захисту файлів, що вперше був реалізований в ОС UNIX. В цій ОС кожному зареєстрованому користувачеві відповідає пара цілочисельних ідентифікаторів: ідентифікатор групи, до якої належить цей користувач, і його власний ідентифікатор в групі. При кожному файлі зберігається повний ідентифікатор користувача, який створив цей файл, і фіксується, які дії з файлом може виконувати його виробник, які дії з файлом доступні для інших користувачів тієї самої групи і що можуть робити з файлом представники інших груп. Ця інформація досить компактна, зусилля потрібні для перевірки помірні, а такий спосіб контролю в більшості випадків виправданим.
Щодо застосування файлових систем
Після екскурсу в історію і можливості систем управління файлами підіб’ємо підсумки. Звичайно, перш за все файли застосовуються для збереження текстової інформації: документів, текстів програм тощо. Такі файли звичайно створюються і модифікуються за допомогою різноманітних текстових редакторів. Структура файлів звичайно дуже проста: це або послідовність записів, що містять рядки тексту, або послідовність байт, серед яких зустрічаються спеціальні символи (наприклад, символи кінця рядка).
Файли з текстами програм є вихідними параметрами компіляторів, які, в свою чергу формують файли, що містять об’єктні модулі. С точки зору файлової системи, об’єктні файли також абсолютно стандартної структурой – послідовність записів або байтів. Система програмування накладає на цю структуру більш складну і специфічну для цієї системи структуру об’єктного модуля. Підкреслимо, що логічна структура об’єктного модуля залищається невідомою для файлової системи, ця структура підтримується програмами системи програмування.
Зауважимо, що у названих випадках цілком достатньо тих засобів захисту файлів і синхронізації паралельного доступу, які забезпечують системи управління файлами.
Іншими словами, файлові системизвичайно забезпечують збереження слабо структурованої інформації, залишаючи подальшу структуризацію прикладним програмам.
Але якщо згадати, що тема нашої лекції стосується все ж таки інформаційних систем, яки головним чином орієнтовані на зберігання, вибір та модифікацію інформації, то ці можливості видаються недостатніми.
Структура інформації звичайно дуже складна, і хоча структури даних різноманітні, між ними часто простежується багато спільного. На початковому етапі обчислювальної техніки проблеми структуризації даних вирішувалися індивідуально у кожній інформаційній системі. Створювалися необхідні бібліотеки програм над файловими системами, подібно тому, як це робиться в компіляторах.
Але, оскільки в інформаційних системах необхідно підтримувати складні структури даних, ці індивідуальні засоби керування даними складали суттєву частину інформаційних систем, практично повторюючись, від однієї системи до іншої. Намагання виділити загальну частину інформаційних систем, відповідальну за керування складно-структурованими даними стало, першою спонукаючою причиною створення СКБД, яка, можливо, могла б представляти деяку загальну бібліотеку програм, доступну кожній інформаційній системі.
Розглянемо це на прикладі. Припустимо, що ми бажаємо реалізувати просту інформаційну систему, яка підтримує облік робітників деякої організації. Схема повинна видавати списки робітників у відповідності з вказаними номерами відділів, підтримувати реєстрацію переведення робітників з одного відділу в інший, прийняття та звільнення з роботи. Для кожного відділу повинна підтримуватися можливість одержання імені керівника цього відділу, загальної чисельності відділу, загальної суми заробітної плати за останній місяць тощо. Для кожного співробітника повинна підтримуватися можливість видачи номера посвідчення за повним іменем співробітника, видачи повного імені по номеру посвідчення, одержання інформації про поточну відповідність посади та розміру зарплатні.
Припустимо, що ми вирішили реалізувати таку інформаційну систему на основі файлової системи і користуватися при цьому одним файлом. Оскільки мінімальною інформаційною одиницею в нашому випадку є співробітник, у файлі містиметься один запис для кожного робітника. Поля таких записів повинні містити повне ім’я робітника (РОБ_ІМ), номер його посвідчення (РОБ_НОМ), розмір зарплатні (РОБ_ЗАРП), номер відділу (РОБ_ВІД_НОМ). Оскільки ми намагаємося обмежитися одним файлом, цей самий запис повинен містити ім¢я керівника відділу (РОБ_ВІД_КЕР).
Для виконання функцій нашої інформаційної системи необхідна можливість багатоключового доступу до цього файлу за унікальними ключами. Ключ – це поле даних, яке однозначно визначає запис у файлі, тобто не дублюються у різних записах. В нашому випадку такими полями є РОБ_ІМ та РОБ_НОМ. Крім того, повинна забезпечуватись можливість вибору всіх записів для робітників з одного відділу (РОБ_ВІД_НОМ), тобто доступ за неунікальним ключем. Для того щоб одержати чисельність відділу або загальний розмір зарплатні, інформаційна система повинна що разу вибирати всі записи про робітників відділу і підраховувати відповідне нове значення.
РОБ_ІМ | РОБ_НОМ | РОБ_ЗАРП | РОБ_ВІД_НОМ | РОБ_ВІД_КЕР |
Таким чином, на прикладі реалізації навіть простої системи на базі файлової, користувач стикається з недоліками традиційних файлових систем, такими як:
- Великі затрати праці програміста (створення достатньо складного долаштування, яке забезпечувалоб багатоключовий доступ до файлів).
- Надлишковість даних (в записах на кожного співробітника вказується ім¢я керівника відділу);
- Слабкий контроль за даними (для здійснення окремої операції чи вибірки потрібно переглядати всі записи у файлі);
- Недостатні можливості керування даними (якщо виникне ситуацію видати інформацію про співробітників з заданою зарплатнею, потрібно буде або повністю переглядати файл, або переоголосити поле РОБ_ЗРП ключовим).
Ситуацію можна виправити, якщо почати підтримувати два багатоключові файли РОБІТНИКИ і ВІДДІЛИ: перший файл міститиме поля РОБ_ІМ РОБ_НОМ РОБ_ЗАРП і РОБ_ВІД_НОМ, а другий – ВІД_НОМ, ВІД_КЕР, РОБ_ЗРП (загальний обсяг зарплатні) та ВІД_РОЗМІР (загальна кількість співробітників у відділі. Тоді, більша частина незручностей, про які йшлося, буде розв¢язана, але після такого переходу інформаційна система буде володіти новими якостями, які наближають її до СКБД – комп¢ютеризована система збереження даних, основне призначення якої зберігати інформацію, надаючи користувачеві можливості її вилучення і модифікації. Під інформацією слід розуміти все, що необхідно для поточної роботи даного користувача або підприємства.