Файловi системи i бази даних. Потреби iнформацiйних систем

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

?мацiйних системах необхiдно пiдтримувати складнi структури даних, цi iндивiдуальнi засоби керування даними складали суттСФву частину iнформацiйних систем, практично повторюючись, вiд однiСФi системи до iншоi. Намагання видiлити загальну частину iнформацiйних систем, вiдповiдальну за керування складно-структурованими даними стало, першою спонукаючою причиною створення СКБД, яка, можливо, могла б представляти деяку загальну бiблiотеку програм, доступну кожнiй iнформацiйнiй системi.

Розглянемо це на прикладi. Припустимо, що ми бажаСФмо реалiзувати просту iнформацiйну систему, яка пiдтримуСФ облiк робiтникiв деякоi органiзацii. Схема повинна видавати списки робiтникiв у вiдповiдностi з вказаними номерами вiддiлiв, пiдтримувати реСФстрацiю переведення робiтникiв з одного вiддiлу в iнший, прийняття та звiльнення з роботи. Для кожного вiддiлу повинна пiдтримуватися можливiсть одержання iменi керiвника цього вiддiлу, загальноi чисельностi вiддiлу, загальноi суми заробiтноi плати за останнiй мiсяць тощо. Для кожного спiвробiтника повинна пiдтримуватися можливiсть видачи номера посвiдчення за повним iменем спiвробiтника, видачи повного iменi по номеру посвiдчення, одержання iнформацii про поточну вiдповiднiсть посади та розмiру зарплатнi.

Припустимо, що ми вирiшили реалiзувати таку iнформацiйну систему на основi файловоi системи i користуватися при цьому одним файлом. Оскiльки мiнiмальною iнформацiйною одиницею в нашому випадку СФ спiвробiтник, у файлi мiстиметься один запис для кожного робiтника. Поля таких записiв повиннi мiстити повне iмя робiтника (РОБ_РЖМ), номер його посвiдчення (РОБ_НОМ), розмiр зарплатнi (РОБ_ЗАРП), номер вiддiлу (РОБ_ВРЖД_НОМ). Оскiльки ми намагаСФмося обмежитися одним файлом, цей самий запис повинен мiстити iмя керiвника вiддiлу (РОБ_ВРЖД_КЕР).

Для виконання функцiй нашоi iнформацiйноi системи необхiдна можливiсть багатоключового доступу до цього файлу за унiкальними ключами. Ключ це поле даних, яке однозначно визначаСФ запис у файлi, тобто не дублюються у рiзних записах. В нашому випадку такими полями СФ РОБ_РЖМ та РОБ_НОМ. Крiм того, повинна забезпечуватись можливiсть вибору всiх записiв для робiтникiв з одного вiддiлу (РОБ_ВРЖД_НОМ), тобто доступ за неунiкальним ключем. Для того щоб одержати чисельнiсть вiддiлу або загальний розмiр зарплатнi, iнформацiйна система повинна що разу вибирати всi записи про робiтникiв вiддiлу i пiдраховувати вiдповiдне нове значення.

РОБ_РЖМРОБ_НОМРОБ_ЗАРПРОБ_ВРЖД_НОМРОБ_ВРЖД_КЕР

Таким чином, на прикладi реалiзацii навiть простоi системи на базi файловоi, користувач стикаСФться з недолiками традицiйних файлових систем, такими як:

  1. Великi затрати працi програмiста (створення достатньо складного долаштування, яке забезпечувалоб багатоключовий доступ до файлiв).
  2. Надлишковiсть даних (в записах на кожного спiвробiтника вказуСФться iмя керiвника вiддiлу);
  3. Слабкий контроль за даними (для здiйснення окремоi операцii чи вибiрки потрiбно переглядати всi записи у файлi);
  4. Недостатнi можливостi керування даними (якщо виникне ситуацiю видати iнформацiю про спiвробiтникiв з заданою зарплатнею, потрiбно буде або повнiстю переглядати файл, або переоголосити поле РОБ_ЗРП ключовим).

Ситуацiю можна виправити, якщо почати пiдтримувати два багатоключовi файли РОБРЖТНИКИ i ВРЖДДРЖЛИ: перший файл мiститиме поля РОБ_РЖМ РОБ_НОМ РОБ_ЗАРП i РОБ_ВРЖД_НОМ, а другий ВРЖД_НОМ, ВРЖД_КЕР, РОБ_ЗРП (загальний обсяг зарплатнi) та ВРЖД_РОЗМРЖР (загальна кiлькiсть спiвробiтникiв у вiддiлi. Тодi, бiльша частина незручностей, про якi йшлося, буде розвязана, але пiсля такого переходу iнформацiйна система буде володiти новими якостями, якi наближають ii до СКБД компютеризована система збереження даних, основне призначення якоi зберiгати iнформацiю, надаючи користувачевi можливостi ii вилучення i модифiкацii. Пiд iнформацiСФю слiд розумiти все, що необхiдно для поточноi роботи даного користувача або пiдприСФмства.

РОБРЖТНИКИ:

РОБ_РЖМРОБ_НОМРОБ_ЗАРПРОБ_ВРЖД_НОМ

ВРЖДДРЖЛИ:

ВРЖД_НОМВРЖД_КЕРРОБ_ЗАРП

Перш за все система повинна знати, що вона працюСФ з двома iнформацiйно звязаними файлами, iй необхiдно знати структуру i змiст кожного поля (наприклад, що РОБ_ВРЖД_НОМ в файлi РОБРЖТНИКИ i ВРЖД_НОМ в файлi ВРЖДДРЖЛИ означають одне i те саме), а також розумiти, що змiни у першому файлi повиннi викликати змiни i в другом, щоб загальний змiст був узгоджений. Наприклад, якщо на роботу приймуть нового робiтника, необхiдно додати запис у файл РОБРЖТНИКИ, а також вiдповiдним чином змiнити поле ВРЖД_ЗРП i ВРЖД_РОЗМРЖР у файлi ВРЖДДРЖЛИ.

Узгодженiсть даних СФ ключовим поняттям баз даних. Дiйсно, якщо iнформацiйна система пiдтримуСФ узгоджене збереження iнформацii в декiлькох файлах, можна казати, що вона пiдтримуСФ базу даних множина взаСФмоповязаних елементарних груп даних, якi можуть оброблятися однiСФю чи кiлькома прикладними системами. Якщо деяка допомiжна система керування даними дозволяСФ працювати з декiлькома файлами, забезпечуючи iх узгодженiсть, ii можна назвати системою керування базами даних. ОднiСФi лише узгодженостi даних в декiлькох файлах не дозволяСФ обiйтися однiСФю лише бiблiотекою функцiй: така система повинна володiти деякими власними даними (мета-даними) i навiть знаннями, якi визначають цiлiснiсть даних.

Але це ще не все, що вимагаСФться вiд СКБД. По-перше, навiть у нашому прикладi незручно реалiзовувати такi запити, як тАЭнадати загальну чисельнiсть вiд