Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
33
Добавлен:
07.02.2015
Размер:
419.33 Кб
Скачать

Тема 1. Теорія баз даних

План

1.Поняття бази даних (БД).

2.Історія розвитку БД.

3.Класифікація та структура БД.

4.Моделі даних.

1. ПОНЯТТЯ БАЗИ ДАНИХ (БД).

Сучасний світ інформаційних технологій важко уявити без використання баз даних. Практично всі системи в тій чи іншій мірі пов'язані з функціями довготривалого зберігання та обробки даних. Фактично інформація стає фактором, що визначає ефективність будь-якої сфери людської діяльності. Звісно, в такому випадку не можна обійтись без інформаційної моделі виробництва, яка зберігається в базі даних.

Розглянемо основні визначення понять, які часто використовуються в інформаційному забезпеченні і є основоположними.

Термін ―база даних‖ складається з двох слів ―база‖ та ―дані‖. Розглянемо поняття ―База‖.

База – це сукупність певних однотипних об'єктів.

Розглянемо поняття ―дані‖. Дані – це різноманітні факти предметної галузі (описи, анкетні дані, відомості тощо).

Отже, база даних – це сукупність певних даних, які відображають певну предметну галузь.

Проте, не кожну сукупність даних можна назвати базою даних. Наприклад, реферат, художню книгу чи начальний підручник не можна порівняти з базою даних. А, наприклад, бібліотеку чи архів документів – можна. Бібліотека – це база друкованих видань, архів – це база архівних документів. В будь-якому випадку, це база однотипних даних. В першому – друковані видання (там не можуть міститись, наприклад, копії паспортів працівників закладу). В другому – це архівні документи (художню книгу там навряд чи знайдеш)

Основні характеристики БД

Отже, не кожну сукупність даних можна називати базою даних.

Щоб відрізняти БД від простої сукупності даних, варто знати основні характеристики БД.

1.Структурованість, взаємозв’язок даних, незалежність даних від прикладних програм.

Структурованість даних потрібна для того, щоб їх можна було легко знайти. Наприклад, зручно і легко шукати книгу в бібліотеці, користуючись каталогом, адже всі книги описані однаково: назва, автор, рік видання тощо. Така легкість пошуку можлива завдяки тому, що дані в каталозі мають структуру, або інакше кажучи, структуровані.

2.Взаємозв’язок даних

Розглянемо приклад бази комп'ютерної техніки, зокрема відомості про монітори. Кожен монітор описаний за різними характеристиками: номер, назва, колір, роздільна здатність, тощо. Наприклад, користувачу потрібно знати відомості про виробника, які знаходяться окремо. Для цього встановлюють зв‘язок між відповідними полями, в даному випадку зв‘язок за полем виробник. Таким чином в базах даних існує взаємозв'язок між даними.

3. Незалежність даних від прикладних програм.

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

Виходячи з головних характеристик, можна дати таке означення:

Бази даних – це сукупність даних, яким властива структурованість і взаємопов'язаність, а також незалежність від прикладних програм.

Термін база даних почав використовуватись з 1963 року і записувався на англ.мові як data base. В процесі розвитку ОТ ці слова були об'єднані в одне (database). Основний зміст, який покладений в термін "база даних" - це база інформаційної системи. Інструментом опрацювання даних є ЕОМ.

Інформаційна база або база даних являє собою сукупність даних, призначених для сумісного використання.

БД використовують, якщо потрібно регулярно опрацьовувати великі обсяги однорідних даних: списки учнів з їхніми оцінками, списки працівників закладу з їхніми адресами, розклад руху транспорту і т.д.

Основна мета – допомогти людині проводити облік відповідних речей. Більшість з нас може згадати випадки, коли потрібно було

відслідковувати деякі моменти. Наприклад, складати список справ, які потрібно виконати протягом тижня, список продуктів харчування на день або на проведення свята, список книг, які необхідно взяти в бібліотеці тощо.

Приклади БД:

Телефонний довідник.

Каталог книг у бібліотеці.

Розклад руху транспорту.

Анкетні дані працівників закладу.

Каталог комп‘ютерної техніки.

Журнал успішності студентів.

2.ІСТОРІЯ РОЗВИТКУ БД

В історії обчислювальної техніки можна прослідкувати розвиток двох основних галузей її використання.

Перша галузь - застосування обчислювальної техніки для виконання числових розрахунків, які занадто довго або взагалі неможливо проводити уручну.

Розвиток цієї галузі сприяв інтенсифікації методів чисельного вирішення складних математичних завдань, появі мов програмування, орієнтованих на зручний запис чисельних алгоритмів, становленню зворотного зв'язку з розробниками нової архітектури ЕОМ.

Характерною особливістю даної галузі застосування обчислювальної техніки є наявність складних алгоритмів обробки, які застосовуються до простих по структурі даних, обсяг яких порівняно невеликий.

Друга галузь, яка безпосередньо стосується нашої теми, - це використання засобів обчислювальної техніки в автоматичних або автоматизованих інформаційних системах. Інформаційна система являє собою програмноапаратний комплекс, що забезпечує виконання таких функцій:

надійне зберігання даних в пам'яті комп'ютера;

виконання специфічних для цього застосування перетворень даних і їх обчислень;

надання користувачам зручного і простого в користуванні інтерфейсу.

Зазвичай такі системи мають справу з великими обсягами даних, що мають достатньо складну структуру.

Класичними прикладами інформаційних систем є банківські системи, автоматизовані системи управління підприємствами, системи резервування авіаційних або залізничних квитків, місць в готелях і т. д.

Друга галузь використання обчислювальної техніки виникла дещо пізніше першої. Це пов'язано з тим, що на початку розвитку обчислювальної техніки можливості комп'ютерів щодо зберігання інформації були дуже обмеженими.

Говорити про надійне і довготривале збереження даних можна тільки за наявності запам'ятовуючих пристроїв, які зберігають дані після вимкнення електричного живлення. Оперативна (основна) пам'ять комп'ютерів цією властивістю не володіє.

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

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

Однак в інформаційних системах сукупність взаємозв'язаних інформаційних об'єктів фактично відображає модель об'єктів реального світу. А потреба користувачів в інформації, що адекватно відображає стан реальних об'єктів, потребує порівняно швидкої реакції системи на їх запити. І в цьому випадку наявність порівняно повільних пристроїв збереження даних, до яких відносяться магнітні стрічки і барабани, було недостатнім.

Можна припустити, що саме вимоги нечислових застосувань викликали появу зйомних магнітних дисків з рухомими головками, що і стало революцією в історії обчислювальної техніки.

Ці пристрої зовнішньої пам'яті характеризувались істотно більшою ємністю, ніж магнітні барабани, забезпечували задовільну швидкість доступу до даних в режимі довільної вибірки, а можливість зміни дискового пакету на пристрої дозволяла мати практично необмежений архів даних.

Зпоявою магнітних дисків почалася історія систем управління даними в зовнішній пам'яті. До цього кожна прикладна програма, якій потрібно було зберігати дані в зовнішній пам'яті, сама визначала розташування кожної порції даних на магнітній стрічці або барабані і виконувала обміни між оперативною пам'яттю і пристроями зовнішньої пам'яті за допомогою програмно-апаратних засобів низького рівня (машинних команд або викликів відповідних програм операційної системи).

Такий режим роботи не дозволяв або дуже утрудняв підтримку довготривалого збереження на одному зовнішньому носії декількох архівів. Крім того, кожній прикладній програмі доводилося вирішувати проблеми іменування частин даних і структуризації даних в зовнішній пам'яті.

Важливим кроком в розвитку саме інформаційних систем став перехід до використання централізованих систем управління файлами.

Зточки зору прикладної програми, файл - це іменована ділянка зовнішньої пам'яті, в яку можна записувати та з якої можна зчитувати дані.

Правила іменування файлів, спосіб доступу до даних, що зберігаються у файлі, і структура цих даних залежать від конкретної системи управління файлами і, можливо, від типу файлу.

Отже, система управління файлами бере на себе розподіл зовнішньої пам'яті, відображення імен файлів у відповідні адреси зовнішньої пам'яті і забезпечення доступу до даних.

Конкретні моделі файлів, що використовуються в системі управління файлами, ми розглянемо далі, коли перейдемо до фізичних способів організацій баз даних, а на цьому етапі достатньо знати, що користувачі бачать файл як лінійну послідовність записів і можуть виконати над ним ряд стандартних операцій:

створити файл (необхідного типу і розміру);

відкрити раніше створений файл;

прочитати з файлу деякий запис ( поточну, наступну, попередню, першу, останню) ;

записати у файл на місце поточного запису новий, додати новий

запис в кінець файлу.

Проте, файлові системи не володіли тим набором властивостей, які необхідні для ефективного управління даними. Зокрема, була проблема паралельної роботи великої кількості користувачів з одними і тими ж файлами як в режимі читання, так і зміни.

Тому, виникала необхідність створення окремої системи, яка б забезпечила ефективне управління даними та їх використання. Цей підхід був реалізований в межах нових систем – Системи управління базами даних (СУБД), а самі джерела даних називались базами даних (БД) або банками даних

(БнД).

Етапи розвитку СУБД

Історія розвитку СУБД налічує більше 40 років. Дані опрацьовувались у вигляді списків, пробитих на перфокартах і записаних на магнітних стрічках. Так продовжувалось до 1968 р.

В середині 60-тих років розвиток ОТ, а також потреби суспільства, перш за все, потреби менеджменту, призвели до появи перших комерційних інформаційних систем, які давали змогу зберігати довгий час та опрацьовувати необхідну інформацію, що представляла собою великі масиви даних. Перші комерційні ІС використовувались, перш за все, для ведення бухгалтерії: складання звітів, відомостей, зведень тощо. Як правило, ці системи виконували основні функції з опрацювання документів, в силу чого вони отримали назву систем опрацювання даних.

У1968 р. була введена в експлуатацію перша промислова СУБД система - IMS (фірми IBM).

У1975 році з'явився перший стандарт асоціації по мовах систем обробки даних – Conference of Data System Languages (CODASYL ), який визначив ряд фундаментальних понять в теорії систем баз даних , які й досі є основоположними для мережевої моделі даних.

Уподальший розвиток теорії баз даних великий внесок був зроблений американським математиком Е.Ф. Коддом, який є творцем реляційної моделі даних. В 1970 р. Кодд опублікував статтю, яка містила опис простої моделі даних, відповдно до якої БД складалась з таблиць.

В 1976 р. вперше цю модель було використано у БД Ingres (Каліфорнійський університет в Берклі) та System R (IBM), що були лише дослідними прототипами.

У1981 році Е.Ф.Кодд отримав за створення реляційної моделі і реляційної алгебри престижну премію Тюрінга Американської асоціації з обчислювальної техніки.

1979 рр. поява перших комерційних версій БД Oracle (об‘єктно-реляційна система управління базами даних)

1995 р. DB2 (реляційна система управління базами даних). Цей період характеризується також тим, що використання реляційних БД стає найпопулярнішим, інші типи майже не використовуються.

1992 рр. компанія Microsoft презентує СУБД Access, яка на декілька років витіснила використання інших систем. Частково це пов‘язано було з тим, що система Access була інтегрована в Microsoft Office, який використовували більшість користувачів.

Як відомо, використання мережі Інтернет поширилось в середині 90-их років. Саме цей період варто пов‘язувати з посиленням необхідності використання БД.

2000-ні рр. використання мови XML.

Вцілому розвиток БД можна поділити на 4 основні етапи:

І етап – БД на великих ЕОМ

ІІ етап – БД на ПК

ІІІ етап – розподілені БД

IV етап – мережеві БД

І етап - БД на великих ЕОМ

Перший етап розвитку СУБД пов'язаний з організацією баз даних на великих машинах типу IBM 360/370, EC-ЕОМ і міні-ЕОМ типу PDP11 (фірми

Digital Equipment Corporation – DEC), різних моделях HP (фірми Hewlett Packard).

Бази даних зберігалися в зовнішній пам'яті центральної ЕОМ, користувачами цих баз даних були завдання, що запускались в основному в пакетному режимі.

Інтерактивний режим доступу забезпечувався за допомогою консольних терміналів, які не володіли власними обчислювальними ресурсами (процесором, зовнішньою пам'яттю) і служили тільки пристроями введення-виведення для центральної ЕОМ. Програми доступу до БД створювались на різних мовах і запускалися як звичайні числові програми.

Потужні операційні системи забезпечували можливість умовно паралельного виконання всього безлічі завдань. Ці системи можна було віднести до систем розподіленого доступу, тому що база даних була централізованою, зберігалася на пристроях зовнішньої пам'яті однієї центральної ЕОМ, а доступ до неї підтримувався від багатьох користувачів - завдань.

Всі СУБД базуються на потужних мультипрограмних ОС (MVS, SVM, RTE, OSRV, RSX, UNIX), тому в основному підтримується робота з централізованою БД в режимі розподіленого доступу.

Функції управління розподілом ресурсів в основному здійснюються ОС. Підтримуються мови низького рівня маніпулювання даними, орієнтовані

на навігаційні методи доступу до даних. Значна роль відводиться адмініструванню даних. Проводяться серйозні роботи щодо обгрунтування і формалізації реляційної моделі даних. Створена перша система ( System R), що реалізовує ідеологію реляційної моделі даних.

Проводяться теоретичні роботи щодо оптимізації запитів і управлінню розподіленим доступом до централізованої БД, було введено поняття транзакції.

Результати наукових досліджень відкрито обговорюються у пресі, йде потужний потік загальнодоступних публікацій, що стосуються всіх аспектів теорії і практики баз даних, і результати теоретичних досліджень активно впроваджуються в комерційні СУБД.

ІІ етап – БД на ПК

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

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

Однак доступність ПК змусила користувачів з різних галузей знань, які раніше не застосовували ОТ в своїй діяльності, звернутися до них.

Зростаючий попит на розвинені зручні програми обробки даних примушував постачальників програмного забезпечення поставляти все нові

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

Але і в цей період з'являлися любителі, які всупереч здоровому глузду розробляли власні СУБД, використовуючи стандартні мови програмування.

Це була проблема, тому що подальший розвиток показав, що перенести дані з нестандартних форматів в нові СУБД було набагато важче, а в деяких випадках вимагало таких трудовитрат, що легше було б все розробити наново, але дані все одно треба було переносити на нову більш перспективну СУБД.

І це теж було результатом недооцінки тих функцій, які повинна була виконувати СУБД.

Всі СУБД були розраховані на створення БД в основному з монопольним доступом. Комп'ютер персональний, він не був приєднаний до мережі і БД на ньому створювалася для роботи одного користувача. У рідкісних випадках передбачалася послідовна робота декількох користувачів, наприклад, спочатку оператор, який вводив бухгалтерські документ, а потім головний бухгалтер, який визначав відповідність первинним документам.

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

Увсіх настільних СУБД підтримувався тільки зовнішній рівень представлення реляційної моделі, тобто тільки зовнішній табличний вигляд структур даних.

При наявності високорівневих мов маніпулювання даними типу реляційної алгебри і SQL в настільних СУБД підтримувалися низькорівневі мови маніпулювання даними на рівні окремих рядків таблиць.

Унастільних СУБД були відсутні засоби підтримки посилальної і структурної цілісності бази даних. Ці функції повинні були виконувати додатки, але простота засобів розробки додатків іноді не дозволяла це зробити, і в цьому випадку ці функції повинні були виконуватися користувачем, вимагаючи від нього додаткового контролю при введенні і зміні даних, що зберігаються в БД.

Наявність монопольного режиму роботи фактично призвело до виродження функцій адміністрування БД і, у зв'язку з цим, - до відсутності інструментальних засобів адміністрування БД.

І, нарешті, остання і зараз вельми позитивна особливість - це порівняно мінімальні вимоги до апаратного забезпечення з боку настільних СУБД.

Яскраві представники СУБД цього етапу - дуже широко використовувалися до недавнього часу СУБД Dbase (Dbase III+, Dbase IV), FохРrо, Сliрреr, Раrаdох.

ІІІ етап – розподілені БД

Добре відомо, що історія розвивається по спіралі, тому після процесу «персоналізації» почався зворотний процес - інтеграція.

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

Успішне рішення цих завдань приводить до появи розподілених баз даних, що зберігають всі переваги настільних СУБД і, в той же час, дозволяють організувати паралельну обробку даних і підтримку цілісності БД.

Практично всі сучасні СУБД забезпечують підтримку повної реляційної моделі, а саме:

структурна цілісність - допустимими є тільки дані, представлені у вигляді відношень реляційної моделі;

мовна цілісність, тобто мови маніпулювання даними високого рівня ( в основному SQL) ;

посилальна (ссылочная) цілісність контролю за дотриманням посилальної цілісності протягом всього часу функціонування

системи, і гарантій неможливості з боку СУБД порушити ці обмеження.

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

Необхідність підтримки багатокористувацької роботи з базою даних і можливість децентралізованого зберігання даних зажадали розвитку засобів адміністрування БД з реалізацією загальної концепції засобів захисту даних.

Потреба в нових реалізаціях викликала створення серйозних теоретичних труднощів щодо оптимізації реалізацій розподілених БД і роботі з розподіленими транзакціями і запитами з впровадженням отриманих результатів в комерційні СУБД.

Для того щоб не втратити клієнтів, які раніше працювали на настільних СУБД, практично всі сучасні СУБД мають засоби підключення клієнтських

додатків, розроблених з використанням настільних СУБД, і засоби експорту даних з форматів настільних СУБД ІІ етапу розвитку СУБД.

Саме до цього етапу можна віднести розробку ряду стандартів в рамках мов опису та маніпулювання даними починаючи з SQL89, SQL92, SQL99 і технологій щодо обміну даними між різними СУБД, до яких можна віднести і протокол ODBC (Open DataBase Connectivity), запропонований фірмою

Microsoft.

Саме до цього етапу можна віднести початок робіт, пов'язаних з концепцією об'єктно-орієнтованих БД - ООБД.

Представниками СУБД, що належать належать до ІІІ етапу, можна вважати MS Access і всі сучасні сервери баз даних Oracle7.3, Oracle 8.4, MS SQL6.5, MS SQL7.0, System 10, System 11, Informix, DB2, SQL Base і інші сучасні сервери баз даних, яких зараз налічується кілька десятків.

IV етап – мережеві БД

Цей етап характеризується появою нової технології доступу до даних - Інтранет.

Основна відмінність цього підходу від технології ―клієнт-сервер‖ полягає в тому, що відпадає необхідність використання спеціалізованого клієнтського програмного забезпечення.

Для роботи з віддаленою базою даних використовується стандартний браузер і для кінцевого користувача процес звернення до даних відбувається аналогічно використанню сервісів мережі Інтернет.

При цьому вбудований в завантажені користувачем HTML-сторінки код, написаний зазвичай на мові PHP, Java, Javascript, Perl і інших, відстежує всі дії користувача і транслює їх у низькорівневі SQL-запити до бази даних, виконуючи, таким чином, ту роботу, якою в технології клієнт-сервер займається клієнтська програма.

Зручність даного підходу призвело до того, що він став використовуватися не тільки для віддаленого доступу до баз даних, але і для користувачів локальної мережі підприємства.

Прості завдання обробки даних, не пов'язані зі складними алгоритмами, що потребують узгодженої зміни даних в багатьох взаємозв'язаних об'єктах, досить просто і ефективно можуть бути побудовані за даною архітектурою.

У цьому випадку для підключення нового користувача до можливості використовувати БД не потрібна установка додаткового клієнтського програмного забезпечення.

Однак алгоритмічно складні завдання рекомендується реалізовувати в архітектурі «клієнт-сервер» з розробкою спеціального клієнтського програмного забезпечення.

3.КЛАСИФІКАЦІЯ ТА СТРУКТУРА БАЗ ДАНИХ

За середовищем зберігання (жорсткий диск, оперативна пам‘ять, флеш-

Соседние файлы в папке Інформатика та ІКТ_pdf