ЕКСПЛУАТАЦІЯ Фото

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

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

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

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

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

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

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

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

За описаною вище схемою здійснюється і модифікація послідовного файлу Часто зміни основного файлу відбуваються не при кожному запиті на зміну елементів даних: запити накопичуються в списку і вносяться в основний файл даних за один прийом (рис 89) Список змін звичайно міститься в память ЕОМ, але його можна зберігати і в спеціальному файлі, файлі змін.

Звичайно потрібно, щоб записи основного файлу були відсортовані за значеннями деяких ключових полів, тому найбільш ефективний метод внесення змін передбачає сортування змінюваних елементів даних Внесення списку змін в основний файл у багатьох відношеннях подібно злиттю двох файлів Якщо обидва файли відсортовані, то і результуючий новий основний файл також буде відсортований Існує наступний шлях побудови великого відсортованого файлу з неупорядкованих даних: треба багаторазово вносити відсортовані списки змін, починаючи з порожнього основного файлу

Один з основних методів сортування послідовного файлу використовує злиття декількох (більш ніж двох) файлів, кожен з яких соI тримає багато груп записів Кожна група спочатку здатна поміститися в памяті ЕОМ, де її можна відсортувати внутрішнім чином Цей метод називається багатофазним злиттям більш детально про нього можна дізнатися в книзі Peter Naur Concise Survey of Computer Methods,  випущеної видавництвом Studentliteratur (Лунд, Швеція) в 1974 році

Нерідко досить хорошими виявляються і деякі приватні методи Наприклад, якщо в розпорядженні є тільки два послідовних файлу, кожен на своєму касетному магнітофоні, то для сортування даних у великому файлі придатний наступний метод Частина даних

зчитується з файлу 1 в память ЕОМ і сортується там, а потім виводиться у файл 2 Цей процес повторюється коли буде досягнуто кінець файлу 1, то у файлі 2] знаходитимуться невеликі групи відсортованих (всередині групи) даних Повторіть цей процес, переписавши дані з файлу 2 в файл 1, але використавши при цьому інший розмір робочої області памяті, призначеної для внутрішнього сортування Повторіть ще раз, переписуючи дані з файлу 1 в файл 2 і т д Нехай при перенесенні даних в одному напрямку, скажімо з файлу 1 в файл 2, область памяті для внутрішнього сортування вміщує одне і те ж число записів, наприклад 100, а при перенесенні в зворотномунапрямкучисло сортируемих в памяті записів щоразу змінюється (скажімо, чергується від 51 до 79) В іншому випадку виникає періодичність і повної сортування файлу даних ніколи не відбудеться в результаті він виявиться розбитим на відсортовані відрізки, довжина яких дорівнює добутку розмірів двох областей внутрішнього сортування Продовжуйте процес перенесення даних з однієї стрічки на іншу до тих пір, поки всі дані не будуть відсортовані Це дуже тривалий процес, але врешті-решт він приводить до необхідного результату

Джерело: Уолш Б Програмування на Бейсике: Пер з англ М: Радіо і звязок, 1988 336 с: ил

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*