Бази даних: основні відомості та типи даних
Як уже вказувалося в розділі 1, інформація – це об’єкт, який виникає в момент протікання інформаційного процесу цілеспрямованої обробки даних за допомогою адекватних їм методів отримання інформації. Весь інший час вона перебуває у вигляді даних. Властивості методів, а також властивості даних впливають на властивості інформації. Після закінчення інформаційного процесу властивості інформації переносяться на властивості нових даних.
В технології БД під даними розуміють формалізовану і структуровану інформацію. Формалізація проявляється у представлені інформації у певній формі, певній системі умовних позначень, структурування – у впорядкуванні інформації за певними принципами, з визначенням одиниць даних та правил породження складних даних та встановлення зв'язків між ними включно. Як об’єкт інформаційних технологій, дані характеризуються семантикою (зміст та і інтерпретація), синтаксисом (форма представлення) та структурою (елементарні одиниці та складні структури даних, правила їх утворення та взаємодії). Розрізняють фізичну (на фізичному рівні, тобто рівні зберігання на комп’ютерних носіях) та логічну (на логічному рівні, тобто рівні обробки прикладних задач) структури даних. Фізична структура відбиває способи утворення та поєднання одиниць даних на фізичному рівні, які враховують лише синтаксис і структуру даних; логічна - способи визначення та поєднання одиниць даних у групи та встановлення зв'язків між ними на рівні їх сприйняття та застосування, які враховують і семантику даних.
Більшість інформаційних технологій орієнтована на опрацювання великих масивів накопичених даних та висувають наступні вимоги до організації збереження інформації:
підтримка логічно погодженого набору великої кількості фрагментів даних різного типу;
можливість одночасного доступу до цих фрагментів і комбінування інформації з них;
підтримка простих засобів визначення і маніпулювання даними при забезпеченні незалежності за структурою і за даними;
простота управління і програмування, можливість для програміста зосередитися на вимогах користувача, а не апаратної частини, що відповідає загальній тенденції зміщення центру ваги у розробці проектів на вимоги і потреби споживача;
простота структуризації даних за складної структури та великих обсягів інформації;
простота і швидкість доступу до даних та маніпулювання ними (зі вставкою, вилученням, оновленням (зміною) даних включно);
можливість швидкісної реалізації нерегламентованих запитів;
надійність і достовірність збереження даних, що у першу чергу досягається:
1. підтримкою цілісності даних та запобіганням виникненню аномалій даних;
2. відновленням інформації у разі збоїв;
захист інформації при забезпеченні багатокористувацького доступу;
зручний інтерфейс;
можливість представлення даних у зручному для користувача вигляді;
лояльність до користувача, можливість «налагодження» на індивідуальні вимоги конкретного споживача.
Іншими словами, інформаційна система вимагає створення в пам'яті ЕОМ динамічно обновлюваної моделі певної предметної області зовнішнього світу з використанням єдиного сховища - бази даних.
Предметна область представляється множиною фрагментів, наприклад, підприємство - цехами, дирекцією, бухгалтерією і т.д. Кожний фрагмент предметної області характеризується множиною об'єктів і процесів, що використовують об'єкти, а також множиною користувачів з різними поглядами на предметну область. Словосполучення "динамічно обновлювана" означає, що відповідність бази даних поточному стану предметної області забезпечується не періодично, а в режимі реального часу. При цьому ті самі дані можуть бути по-різному представлені відповідно до потреб різних груп користувачів.
На початковому етапі використання обчислювальної техніки для управління інформацією проблеми структуризації даних вирішувалися індивідуально в кожній інформаційній системі. Створювалися необхідні надбудови над файловими системами (бібліотеки програм), подібно тому, як це робиться в компіляторах, редакторах тощо. Оскільки інформаційні системи містять складні структури даних, ці додаткові індивідуальні засоби управління даними були істотною їх частиною і практично повторювалися від однієї системи до іншої. Прагнення виділити й узагальнити спільну частину інформаційних систем, відповідальну за управління складно структурованими даними було першою спонукальною причиною створення систем управління базами даних (СУБД). Стало зрозуміло, що неможливо обійтися загальною бібліотекою програм, що реалізує над стандартною базовою файловою системою більш складні методи збереження даних. Виникла і розвинулася концепція баз даних (БД) і їхніх систем. Ефективне управління даними передбачає нині використання комп'ютерних баз даних (БД) та систем управління ними (СУБД), які забезпечують підтримання інтерфейсу між даними та прикладним програмним забезпеченням, роблячи їх достатньо незалежними одне від одного.
Базу даних можна визначити як сукупність взаємозв'язаних даних, що зберігаються разом та описують якусь предметну область за наявності такої мінімальної надмірності, яка допускає їх використання оптимальним чином для одного або декількох застосувань. Деколи БД тлумачать як «спільно використовуваний набір логічно зв'язаних даних і їхніх описів, призначений для задоволення інформаційних потреб організації» [53, с. 47]. Оскільки БД зберігає не лише дані, але і їхні описи, її іноді називають набором інтегрованих записів із самоописом. Д. Кренке [55, с. 39] так і визначає БД як самодокументоване зібрання інтегрованих записів.
Самодокументованість (self-describing) БД полягає в тому, що вона, на додаток до вихідних даних користувача, містить опис власної структури. Цей опис називають словником даних (data dictionary), каталогом даних (data directory) чи метаданими (metadata). Саме самодокументованість обумовлює незалежність програм від даних: структуру і вміст БД можна визначити шляхом звертання до самої БД. Крім того, зміна структури даних у базі (наприклад, додавання поля до запису) вноситься тільки в словник даних, що різко зменшує кількість супутніх модифікацій програм до тих, які безпосередньо обробляють змінений елемент. У цьому сенсі БД нагадує бібліотеку – крім книг, є каталог з їхнім описом. Словник даних описує дані, що містяться в БД.
Інтегрованість набору записів у БД забезпечується тим, що на стандартну ієрархію даних: біти поєднуються в байти, чи символи; ті групуються в поля; з полів формуються записи; записи поєднуються у файли, - накладається інтегрування на рівні файлів ще трьох елементів: метаданих, індексів і метаданих додатків (рис. 4.1).
|
|
+
Метадані ®
+
Індекси ®
+
Метадані додатків ®
Рис. 4.1. Інтегрування даних та записів в базах даних
У розділі метадані БД містить опис самої себе. Індекси представляють зв'язки між даними і служать для продуктивності роботи додатків. Структура форм для введення і виведення даних і звітів також є частиною структури БД і називається метаданими додатків. Загалом БД містить 4 типи даних: файли даних користувача, метадані, індекси і метадані додатків. Можна сказати, що БД - це інтегрована комп'ютерна структура спільного доступу, у якій розміщаються наступні відомості: дані кінцевих користувачів, тобто дані, що відбивають сферу інтересів кінцевих користувачів; метадані (metadata), чи дані про дані, тобто характеристики і зв'язки даних, за допомогою яких здійснюється інтегрування (об'єднання) даних. Метадані описують властивості даних і сукупність відношень, якими зв'язані дані, що зберігаються в БД.
Підхід БД заснований на тому, що структура даних відокремлюється від додатка, що звертається до даних, і зберігається окремо. Додавання чи зміна структур даних не впливає на роботу додатків, окрім тих, що залежать безпосередньо від змінюваних компонентів. Логічна зв'язність даних забезпечується виділенням у ході відбиття інформаційних потреб користувачів сутностей, атрибутів і зв'язків. Сутність (entity) – це окремий тип об'єкта, який треба представити в БД; атрибут (attribute) – конкретна його властивість, а зв'язок (relationship) – це те, що поєднує кілька сутностей, показує їх взаємний вплив. Логічна структура даних, що зберігаються у БД, відповідає певній моделі представлення даних, яка підтримується СУБД
Іншими словами. база даних - це комп'ютерна структура, у якій зберігається набір логічно зв'язаних даних; це самодокументоване зібрання інтегрованих записів з можливістю доступу до них. У певному сенсі БД являє собою дуже добре організовану електронну картотеку, у якій потужне програмне забезпечення, називане СУБД, дозволяє керувати вмістом цієї картотеки.
База даних являє собою модель, але не певної частини реальності (предметної області), а користувацької моделі (user model) цієї реальності. База даних певної бізнес-системи є моделлю того, як керівники бізнесу уявляють собі свій бізнес, які факти, об'єкти, часові рамки вони вважають важливими. Ступінь деталізації, що повинна бути присутнім у БД, залежить від того, яка інформація необхідна.
БД є динамічною моделлю, тому що реальність і представлення людей про неї змінюються. Тому БД повинна змінюватися відповідно до цих змін. Представленням подій є трансакції: при здійсненні якої-небудь події в БД повинні здійснюватися трансакції шляхом запуску програми для обробки трансакцій і внесення даних для трансакції. Програма потім викликає СУБД для внесення змін у БД і від неї одержує відповідний звіт про це.
Системи БД мають ряд очевидних переваг над файловими системами:
1. інтегрованість даних;
2. менші дублювання і надмірність даних;
3. незалежність програм від даних внаслідок того, що до даних звертається СУБД, а не прикладні програми; опис структури даних та БД міститься у самій БД, у словнику даних (базі метаданих);
4. представлення даних у зручному для користувача виді.
Дані зберігаються в пам'яті ЕОМ у вигляді сукупності нулів і одиниць (бітів), поєднаних у послідовності: байти, слова тощо. Кожній ділянці оперативної пам'яті, що може вмістити один байт чи слово, присвоюється порядковий номер (адреса). Таким чином, базу даних (БД) можна розглядати як іменовану сукупність взаємопов’язаних даних у пам’яті ЕОМ, які об’єднані спільним застосуванням, середовищем зберігання і технологією обробки та відбивають стан об’єктів та/чи процесів і зв’язки між ними у певній предметній області. Дані, що зберігаються у БД, мають певну логічну структуру, яка дає змогу інтерпретувати і опрацьовувати ці дані як інформацію. Цю логічну структуру називають моделлю представлення даних, або просто моделлю даних.
Виходячи із способу представлення і способу обробки на ЕОМ, будь-які дані можуть бути віднесені до одного з двох типів: основного (простого), форма представлення якого визначається архітектурою ЕОМ, чи складного, створеного користувачем для розв'язання конкретних задач. До складних типів даних відносять структуровані та посилальні. Іноді дані розділяють на 3 типи:
· прості;
· структуровані;
· посилальні.
Прості, чи атомарні, типи даних не мають внутрішньої структури. Дані такого типу називають скалярами. До простих відносять логічний, рядковий та чисельний типи даних. Різні мови програмування можуть розширювати й уточнювати цей список, додаючи такі типи як: цілий; дійсний, часовий, дата, грошовий тощо.
Поняття атомарності відносне. Так, рядковий тип даних можна розглядати як одномірний масив символів, а цілий тип даних - як набір бітів, однак при переході на такий низький рівень втрачається семантика (зміст) даних. Якщо рядок, що виражає, наприклад, прізвище співробітника, розкласти в масив символів, то при цьому втратиться зміст такого рядка як єдиного цілого.
Таким чином, дані простого типу - це символи, числа і т.п. елементи, подальше дроблення яких не має сенсу. З елементарних даних формуються структури (складні типи) даних.
Структуровані типи даних призначені для завдання складних структур даних. Структуровані типи даних конструюються з компонентів, які самі можуть мати структуру. Прикладами структурованих типів даних є масиви і записи
Масив - це проста сукупність елементів даних одного типу, засіб оперування групою даних одного типу. Окремий елемент масиву задається індексом. Масив може бути одномірним, двомірним і т.д. Різновидами одномірних масивів перемінної довжини є структури типу кільце, стек, черга і двостороння черга.
Запис - сукупність елементів даних різного типу. У найпростішому випадку запис містить постійну кількість елементів, що називають полями. Сукупність записів однакової структури називається файлом. (Файлом називають також набір даних у зовнішній пам'яті, наприклад, на магнітному диску). Для того, щоб мати можливість витягати з файлу окремі записи, кожному записові присвоюють унікальне ім'я чи номер, що служить її ідентифікатором і розташовується в окремому полі. Цей ідентифікатор називають ключем.
Запис (чи структура) являє собою кортеж декартового добутку певних множин. Дійсно, запис являє собою іменований упорядкований набір елементів ri, кожний з який належить типу Тi. Таким чином, запис:
, (4.1)
є елемент множини
(4.2)
Оголошуючи нові типи записів на основі вже наявних типів, користувач може конструювати як завгодно складні типи даних.
Спільним для структурованих типів даних є те, що вони мають внутрішню структуру, яка використовується на тому ж рівні абстракції, що і самі типи даних. При роботі з масивами чи записами можна маніпулювати ними і як з єдиним цілим (створювати, видаляти, копіювати цілі масиви чи окремі записи), так і поелементно. Працюючи ж із простими типами даних, наприклад з числовими, ми маніпулюємо ними як неподільними цілими об'єктами. Щоб "побачити", що числовий тип даних насправді складний (є набором бітів), потрібно перейти на більш низький рівень абстракції. На рівні програмного коду це буде виглядати як асемблерні вставки в код мовою високого рівня чи використання спеціальних побітових операцій.
Такі структури даних, як масив чи запис займають у пам'яті ЕОМ постійний обсяг, тому їх називають статичними структурами. До статичних структур відноситься також множина. Є ряд структур, що можуть змінювати свою довжину - так називані динамічні структури. До них відносяться дерево, список, посилання.
Посилальний тип даних (вказівники) призначений для забезпечення можливості вказівки на інші дані і призначений для обробки складних структур, що змінюються, наприклад дерев, графів, рекурсивних структур.