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

21.Фізична організація баз даних: склад та структура, фізичне збереження даних у базі даних, багаторівнева організація пам’яті, кешування.

Ф.О. складається з 3 складових: організація інформаційних масивів;організація пошукових структур (індексів);огранізація обміну інформації в системі.

Організація інформаційних масивів:

1.послідовна (записи послідовно)

2.організація у вигляді двосполученого списку

Є показник на попередній та наступний запис.

3.організація у вигляді зв»язаних блокыв записів

Читання і запис інф. Виконується блоками,вони мають фіксовану довжину ,блоки ще наз. Сторінками.

Вилучення інформ. Розрізняють:фізичне- фізично вилучається з ввнчестера;логічне- передбачає ,що фізично інф .залиш. на вінчестері ,а логічно до неї не можна отримати доступ.

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

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

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

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

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

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

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

Відповідно виникають наступні різновиди об'єктів у зовнішній пам'яті бази даних:

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

2. керуючі структури - індекси, створювані з ініціативи користувача (адміністратора) або верхнього рівня системи з міркувань підвищення ефективності виконання запитів і звичайно автоматично підтримувані нижнім рівнем системи;

3. журнальна інформація, підтримувана для задоволення потреби в надійному зберіганні даних;

4. службова інформація, підтримувана для задоволення внутрішніх потреб нижнього рівня системи (наприклад, інформація про вільну пам'ять).

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

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

До основних характеристик цієї організації можна віднести наступні:

1. Кожен кортеж має унікальний ідентифікатор (tid), не змінюваним під час всього існування кортежу.

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

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

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

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

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

6. Розповсюдженим способом підвищення ефективності СУБД є кластеризація відношення за значеннями одного або декількох стовпців. Корисним для оптимізації з’єднань є спільна кластеризація декількох відносин.

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

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

Хеш. Загальною ідеєю методів хешування є застосування до значення ключа деякої функції згортки (хеш-функції), що виробляє значення меншого розміру. Згортка значення ключа потім використається для доступу до запису. У найпростішому, класичному випадку, згортка ключа використається як адреса в таблиці, що містить ключі й записи. Основною вимогою до хеш-функції є рівномірний розподіл значення згортки. При виникненні колізій (та сама згортка для декількох значень ключа) утворяться ланцюжки переповнення. Головним обмеженням цього методу є фіксований розмір таблиці. Якщо таблиця заповнена занадто сильно або переповнена,то виникне занадто багато ланцюжків переповнення й головна перевага хешування - доступ до запису майже завжди за одне звертання до таблиці - буде втрачено. Розширення таблиці вимагає її повної переробки на основі нової хеш-функції (зі значенням згортки більшого розміру).

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]