/ / Життя і системи управління базами даних

Життя і системи управління базами даних

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

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

При навчанні професії програміста в числііншого вивчається і система управління базами даних Access. Строго кажучи, ця СУБД сама безглузда, оскільки не надає справжньої потужності повноцінних серверів: при одночасній роботі кількох людей з однією базою даних починаються блокування фрагментів інформації, а то й цілих таблиць, при великих обсягах даних з'являються збої в роботі і так далі. Залишається загадкою, для чого взагалі включений Access в систему освіти, адже професійні програмісти з ним працювати не будуть, а всі інші взагалі не бажають знати, чим одні системи управління базами даних відрізняються від інших. Краще б замість Access'а студентам давали навички роботи з PostgreSQL і MySQL, попутно пояснюючи відмінності між ними. Правда, обидві цих СУБД працюють лише як сервера, тобто для створення повноцінної бази даних доведеться розробляти ще й клієнтську програму - те, з чим будуть працювати вже кінцеві користувачі. Але цим шляхом йде все професійне програмування, і не варто винаходити свій власний велосипед.

А що взагалі включає в себе поняттяпрофесійної системи управління базами даних? По-перше - можливість працювати з дуже великими масивами інформації (електронний каталог великого книжкового магазину може налічувати мільйони описів, по кожному з яких можна дізнатися ціну, кількість доступних примірників і на яких складах вони знаходяться); по-друге - робота з багатьма користувачами одночасно, кожен з яких отримує актуальну інформацію (іншими словами, два продавці не зможуть продати різним клієнтам єдиний екземпляр якоїсь рідкісної книги). Третій параметр - інформація захищена від випадкового псування в випадках, коли її зміна почалося, але не було коректно завершено. Гіпотетично можна уявити таку ситуацію: магазин отримує оплату за безготівковим переказом, кошти списуються з рахунку покупця і далі повинні бути зараховані на рахунок магазину, але через збій друга частина операції не було виконане. Грамотна СУБД обидві частини операції виконує в рамках однієї транзакції, яка або повністю підтверджується (в разі, коли все пройшло гладко), або повністю скасовується (при будь-якому збої). На рівні покупця це дає впевненість, що якщо з його рахунку кошти списані, то на рахунок магазину вони гарантовано надійшли.