Лекція 1. Файлові системи, бази даних (БД) та системи управління ними (СУБД) – 4 год Тема 1 Файлові системи Методи збереження данних. Файлові системи Типи і структури даних Поняття даних та їх різновиди Основні типи даних, що зберігаються у ЕОМ Узагальнені моделі та структури даних Еволюція методів та вимог до збереження даних у ЕОМ Файли та файлові системи Поняття файлу з точки зору прикладної програми Структури файлів та файлових систем Іменування файлів Захист файлів Режим багатокористувацького доступу Області застосування файлів Основні недоліки файлових систем з точку зору збереженння та обробки великих інформаційних масивів Типи і структури даних Поняття даних та їх різновиди. Дані та ЕОМ Сприйняття реального світу можна співвіднести з послідовністю різних, хоча іноді і взаємозалежних, явищ. З давніх давен люди намагалися описати ці явища (навіть тоді, коли не могли їх зрозуміти). Такий опис називають даними. Дані – це окремі факти, які характеризують об'єкти, процеси та явища предметної галузі, а також їх властивості. Традиційно фіксація даних здійснюється за допомогою конкретного засобу спілкування (наприклад, за допомогою природної мови чи певних зображень) на конкретному носії (наприклад, камені чи папері). Звичайно дані (факти, явища, події, чи ідеї предмети) і їхня інтерпретація, зміст (семантика) фіксуються спільно, тому що природна мова досить гнучка для представлення одного й другого. Приклад: твердження "Вартість авіаквитка 128". Тут "128" – дане, а "Вартість авіаквитка" – його семантика. При обробці на ЕОМ дані трансформуються, умовно проходячи наступні етапи: Д1 – дані як результат вимірювань і спостережень; Д2 - дані на матеріальних носіях інформації; Д3 - моделі (структури) даних у вигляді діаграм, графіків, функцій; Д4 - дані у комп'ютері на мові описання даних; Д5 – бази даних на машинних носіях інформації. Знання базуються на даних, отриманих емпіричним шляхом. Вони являють собою результат розумової діяльності людини, спрямованої на узагальнення її досвіду, отриманого у результаті практичної діяльності. Знання – це закономірності предметної галузі (принципи, зв'язки, закони), отримані в результаті практичної діяльності і професійного досвіду, які дозволяють спеціалістам ставити і розв'язувати задачі в певних галузях. При обробці на ЕОМ знання трансформуються аналогічно даним у такій послідовності: Z1 – знання у пам'яті людини як результат мислення; Z2 – матеріальні носії знань (підручники, методичні посібники); Z3 – поле знань – умовний опис основних об'єктів предметної галузі, їх атрибутів та закономірностей, що їх пов'язують; Z4 – знання, описані на мовах представлення знань (продукційні мови, семантичні мережі, фрейми); Z5 – база даних на машинних носіях інформації. Часто застосовують наступне визначення знань: Знання - це добре структуровані дані, метадані або дані про дані. Для збереження даних нині переважно застосовують бази даних. Вони характеризуються великим обсягом і відносно невеликою питомою вартістю інформації. Для збереження знань застосовують бази знань, які являють собою менші за обсягом, але значно дорожчі інформаційні масиви. Бази знань становлять основу інтелектуальних та експертних систем. Основні типи даних, що зберігаються у ЕОМ Дані, що зберігаються в пам'яті ЕОМ являють собою сукупність нулів і одиниць (бітів). Біти поєднуються в послідовності: байти, слова і т.д. Кожній ділянці оперативної пам'яті, що може вмістити один байт чи слово, присвоюється порядковий номер (адреса). Виходячи їхнього способу представлення і способу обробки на ЕОМ, будь-які дані можуть бути віднесені до одного з двох типів: основному (простому), форма представлення якого визначається архітектурою ЕОМ, чи складному, створеному користувачем для розв'язання конкретних задач. Іноді дані розділяють на 3 типи: прості; структуровані; посилальні. Прості, чи атомарні, типи даних не мають внутрішньої структури. Дані такого типу називають скалярами. До простих типів даних відносяться наступні типи: Логічний. Строковий (рядковий). Чисельний. Різні мови програмування можуть розширювати й уточнювати цей список, додаючи такі типи як: Цілий Речовинний Дата. Час тощо. Поняття атомарності відносне. Так, рядковий тип даних можна розглядати як одномірний масив символів, а цілий тип даних - як набір бітів, однак при переході на такий низький рівень втрачається семантика (зміст) даних. Якщо рядок, що виражає, наприклад, прізвище співробітника, розкласти в масив символів, то при цьому втратиться зміст такого рядка як єдиного цілого. Таким чином, дані простого типу - це символи, числа і т.п. елементи, подальше дроблення яких не має сенсу. З елементарних даних формуються структури (складні типи) даних. Структурированные типы данных предназначены для задания сложных структур данных. Структурированные типы данных конструируются из составляющих элементов, называемых компонентами, которые, в свою очередь, могут обладать структурой. В качестве структурированных типов данных можно привести следующие типы данных: Массивы Записи (Структуры) Масиви - це проста сукупність елементів даних одного типу, засіб оперування групою даних одного типу. Окремий елемент масиву задається індексом. Масив може бути одномірним, двовимірним і т.д. Різновидами одномірних масивів перемінної довжини є структури типу кільце, стек, черга і двостороння черга. Запис (декартів добуток) - сукупність елементів даних різного типу. У найпростішому випадку запис містить постійну кількість елементів, що називають полями. Сукупність записів однакової структури називається файлом. (Файлом називають також набір даних у зовнішній пам'яті, наприклад, на магнітному диску). Для того, щоб мати можливість витягати з файлу окремі записи, кожному записові присвоюють унікальне ім'я чи номер, що служить її ідентифікатором і розташовується в окремому полі. Цей ідентифікатор називають ключем. Запис (чи структура) являє собою кортеж з деякого декартового добутку множин. Дійсно, запис являє собою іменований упорядкований набір елементів ri, кожний з який належить типу Ni. Таким чином, запис
є елемент множини . . Оголошуючи нові типи записів на основі вже наявних типів, користувач може конструювати як завгодно складні типи даних. Спільним для структурованих типів даних є те, що вони мають внутрішню структуру, використовувану на тім же рівні абстракції, що і самі типи даних. При роботі з масивами чи записами можна маніпулювати ними і як з єдиним цілим (створювати, видаляти, копіювати цілі масиви чи окремі записи), так і поелементно. Працюючи ж із простими типами даних, наприклад з числовими, ми маніпулюємо ними як неподільними цілими об'єктами. Щоб "побачити", що числовий тип даних насправді складний (є набором бітів), потрібно перейти на більш низький рівень абстракції. На рівні програмного коду це буде виглядати як асемблерні вставки в код мовою високого рівня чи використання спеціальних побітових операцій. Такі структури даних, як масив чи запис займають у пам'яті ЕОМ постійний обсяг, тому їх називають статичними структурами. До статичних структур відноситься також множина. Є ряд структур, що можуть змінювати свою довжину - так називані динамічні структури. До них відносяться дерево, список, посилання. Посилальний тип даних (вказівники) призначений для забезпечення можливості вказівки на інші дані і призначений для обробки складних структур, що змінюються, наприклад дерев, графів, рекурсивних структур. Узагальнені моделі та структури даних Існує багато складних типів даних, але дослідження, проведені на великому практичному матеріалі, показали, що серед них можна виділити кілька найбільш загальних. Узагальнені структури називають також моделями даних, тому що вони відбивають представлення користувача про дані реального світу. Модель даних – це інтегрований набір понять для опису даних, зв'язків між ними й обмежень, що накладаються на дані. Будь-яка модель даних повинна містити три компоненти: структура даних - описує точку зору користувача на представлення даних. набір допустимих операцій, виконуваних на структурі даних. Модель даних передбачає, як мінімум, наявність мови визначення даних (МОД, DDL – data definition language), що описує структуру їхнього збереження, і мови маніпулювання даними (ИМД, DML – data manipulation language), що включає операції добування і модифікації даних. обмеження цілісності - механізм підтримки відповідності даних предметної області на основі формально описаних правил. У процес