Бази даних. Вступний курс
2008 р
Сергій Кузнецовназад зміст вперед
1.1. Вступ
У цій вступній лекції ми, перш за все, обговоримо передумови появи в комп'ютерах пристроїв зовнішньої пам'яті, а також обгрунтуємо принципову важливість для організації інформаційних систем дискових пристроїв з рухомими магнітними головками. Далі будуть розглянуті особливості організації та основне функціональне призначення одного з ключових компонентів сучасних операційних систем - систем управління файлами. Нарешті, в розділі 1.4. Потреби інформаційних систем ми покажемо, чому можливостей файлових систем недостатньо для створення інформаційних програмних систем. Буде продемонстровано, що природні вимоги інформаційних систем до засобів управління даними у зовнішній пам'яті призводять до необхідності наявності систем управління базами даних (СКБД). В ході цього аналізу будуть визначені основні риси, якими повинні володіти СУБД.
1.2. Пристрої зовнішньої пам'яті
У найширшому сенсі інформаційна система являє собою програмний комплекс, функції якого полягають у підтримці надійного зберігання інформації в пам'яті комп'ютера, виконанні специфічних для даного застосування перетворень інформації та / або обчислень, наданні користувачам зручного і легко освоюється інтерфейсу. Зазвичай обсяги даних, з якими доводиться мати справу таким системам, досить великі, а самі дані мають досить складну структуру. Класичними прикладами інформаційних систем є банківські системи, системи резервування авіаційних або залізничних квитків, місць в готелях і т. Д.
Про надійне і довготривале зберігання інформації можна говорити тільки при наявності запам'ятовуючих пристроїв, що зберігають інформацію після виключення електроживлення. Оперативна (основна) пам'ять цією властивістю зазвичай не володіє. У перші десятиліття розвитку обчислювальної техніки використовувалися два види пристроїв зовнішньої пам'яті: магнітні стрічки та магнітні барабани. При цьому ємність магнітних стрічок була досить велика, але за своєю природою вони забезпечували послідовний доступ до даних. Ємність магнітної стрічки пропорційна її довжині. Щоб отримати доступ до необхідної порції даних, потрібно в середньому перемотати половину її довжини. Але чисто механічну операцію перемотування можна виконати дуже швидко. Тому швидкий довільний доступ до даних на магнітній стрічці, очевидно, неможливий.
Магнітний барабан був масивний металевий циліндр з намагніченої зовнішньою поверхнею і нерухомим пакетом магнітних головок. Такі пристрої забезпечували можливість досить швидкого довільного доступу до даних, але дозволяли зберігати порівняно невеликий обсяг даних. Швидкий довільний доступ здійснювався завдяки високій швидкості обертання барабана і наявності окремої головки на кожну доріжку магнітної поверхні; обмеженість обсягу була обумовлена наявністю лише однієї магнітної поверхні.
Зазначені обмеження не дуже істотні для систем чисельних розрахунків. Обговоримо докладніше, які реальні потреби виникають у розробників систем чисельних розрахунків. Перш за все, для отримання необхідних результатів серйозні обчислювальні програми повинні пропрацювати досить довгий час (тижні, місяці і навіть, може бути, роки). Наявність гарантій надійності з боку виробників апаратних комп'ютерних коштів не позбавляє програмістів від необхідності використання програмного збереження часткових результатів обчислень, щоб при виникненні непередбачених збоїв апаратури можна було продовжити виконання розрахунків з деякою контрольної точки. Для збереження проміжних результатів ідеально підходять магнітні стрічки: при виконанні процедури установки контрольної точки дані послідовно скидаються на стрічку, а при необхідності перезапуску від збереженої контрольної точки дані також послідовно з стрічки зчитуються.
Друга традиційна потреба численних програмістів - максимально великий обсяг оперативної пам'яті. Велика оперативна пам'ять потрібно, по-перше, для того, щоб забезпечити програмі швидкий доступ до великої кількості оброблюваних даних. По-друге, складні обчислювальні програми самі можуть мати великий об'єм. Оскільки обсяг реально доступною в ЕОМ оперативної пам'яті завжди був недостатнім для задоволення поточних потреб обчислень, була потрібна швидка зовнішня пам'ять для організації оверлеїв і / або віртуальної пам'яті. Ми не будемо тут вдаватися в деталі організації цих механізмів програмного розширення оперативної пам'яті, але зауважимо, що для цього ідеально підходили магнітні барабани. Вони забезпечують швидкий доступ до зовнішньої пам'яті, а для розширення оперативної пам'яті однієї програми (складні обчислювальні програми, як правило, виконуються на комп'ютері в поодинці) великий обсяг зовнішньої пам'яті не потрібно.
Далі зауважимо, що, навіть якщо програма повинна обробити (або провести) великий обсяг інформації, при програмуванні можна продумати розташування цієї інформації в зовнішній пам'яті, щоб програма працювала як можна швидше. Розвинена підтримка роботи з зовнішньою пам'яттю з боку загальносистемних програмних засобів не обов'язкова, а іноді й шкідлива, оскільки призводить до додаткових накладних витрат апаратних ресурсів.
Однак для інформаційних систем, в яких обсяг постійно збережених даних визначається специфікою бізнес-додатки, а потреба в поточних даних визначається користувачем додатки, одних тільки магнітних барабанів і стрічок недостатньо. Ємність магнітного барабана просто не дозволяє тривалий час зберігати дані великого обсягу. Що ж стосується стрічок, то уявіть собі стан людини, який, стоячи біля квиткової каси, повинен дочекатися повної перемотування магнітної стрічки. Природним вимогам до таких систем є забезпечення високої середньої швидкості виконання операцій при наявності великих обсягів даних.
Саме вимоги до пристроїв зовнішньої пам'яті з боку бізнес-додатків викликали появу пристроїв зовнішньої пам'яті зі знімними пакетами магнітних дисків і рухливими головками читання / запису, що стало революцією в історії обчислювальної техніки. Ці пристрої пам'яті володіли істотно більшою ємністю, ніж магнітні барабани (за рахунок наявності декількох магнітних поверхонь), забезпечували задовільну швидкість доступу до даних в режимі довільної вибірки, а можливість зміни дискового пакету на пристрої дозволяла мати архів даних практично необмеженого обсягу.
Магнітні диски представляють собою пакети магнітних пластин (поверхонь), між якими на одному важелі рухається пакет магнітних головок ( Мал. 1.1 ). Крок руху пакета головок є дискретним, і кожному положенню пакету головок логічно відповідає циліндр пакету магнітних дисків. На кожній поверхні циліндр «висікає» доріжку, так що кожна поверхню містить число доріжок, яка дорівнює кількості циліндрів. При розмітці магнітного диска (спеціальному дії, що передує використання диска) кожна доріжка розмічається на одне і те ж кількість блоків; таким чином, гранична ємність кожного блоку складає одне і те ж число байтів. Для завдання обміну з магнітним диском на рівні апаратури потрібно вказати номер циліндра, номер поверхні, номер блоку на відповідній доріжці і число байтів, яке потрібно записати або прочитати від початку цього блоку.
Мал. 1.1. Груба схема дискового пристрою пам'яті з рухомими головками
При виконанні обміну з диском апаратура виконує три основні дії: підведення головок до потрібного циліндра (позначимо час виконання цієї дії як tпг), пошук на доріжці потрібного блоку (час виконання - tпб) і власне обмін з цим блоком (час виконання - tоб). Тоді, як правило, tпг >> tпб >> tоб, тому що підведення головок - це механічна дія, причому в середньому потрібно перемістити головки на відстань, рівну половині радіуса поверхні, а швидкість пересування головок не може бути занадто великий за фізичними міркуваннями. Пошук блоку на доріжці вимагає прокручування пакету магнітних дисків в середньому на половину довжини зовнішньої окружності; швидкість обертання диска може бути істотно більше швидкості руху головок, але вона теж обмежена законами фізики. Для виконання ж власне читання або запису потрібно прокрутити пакет дисків всього лише на кутову відстань, що відповідає розміру блоку. Таким чином, з усіх цих дій в середньому найбільший час займає перше, і тому суттєву перевагу в сумарному часу обміну при зчитуванні або запису тільки частини блоку отримати практично неможливо.
З появою магнітних дисків почалася історія систем управління даними у зовнішній пам'яті. До цього кожна прикладна програма, якою потрібно було зберігати дані в зовнішній пам'яті, сама визначала розташування кожної порції даних на магнітній стрічці або барабані і виконувала обміни між оперативною і зовнішньою пам'яттю за допомогою програмно-апаратних засобів низького рівня (машинних команд або викликів відповідних програм операційної системи ). Такий режим роботи не дозволяв або дуже утруднював підтримку на одному зовнішньому носії декількох архівів довго тривало зберігається. Крім того, кожній прикладній програмі доводилося вирішувати проблеми іменування частин даних і структуризації даних у зовнішній пам'яті.
назад зміст вперед