Злившись стовпців TransRelational

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

Почнемо з прикладу, в якому застосовується тільки один файл Розглянемо відношення специфікації матеріалів MMQ, показане на рис А 14 (це – варіант рис 46 з глави 4) Спочатку визначимо, що станеться в цьому прикладі без злилися стовпців, потім розглянемо, як зміниться ситуація після переходу до використання методу злиття стовпців Таким чином, на рис А15 показаний можливий варіант файлу, відповідний відношенню на рис А 14, на рис А 16 приведена відповідна стисла таблиця значень полів, а на рис А 17 – відповідна краща таблиця реконструкції

Рис А 14 Ставлення специфікації матеріалів MMQ

записів

Рис А15 Файл для відносини специфікації матеріалів, показаного на рис А 14

Тепер перейдемо до вивчення способу, в якому застосовуються злилися стовпці Знову повернувшись до аналізу відносини MMQ (рис А14), можна переконатися в тому, що атрибути MAJOR_P # і MINOR_P # відносяться до одного і того ж типу це означає, що поля MAJOR_P # і MINOR_P # відповідного файлу також відносяться до одного і того ж типу Тому їх можна поставити у відповідність одного й того ж стовпцю таблиці значень полів На рис А 18 показано, що при цьому відбувається З даного опису випливає наведені нижче висновки

1 Виконано злиття стовпців MAJOR_P # і MINOR_P # В ОДИН стовпець Цей стовпець містить всі значення полів (тобто номера деталей), які перш перебували або в стовпці MAJOR_P #, або в стовпці MINOR_P # тієї таблиці, якою вона була до злиття Після злиття дублікати були видалені

Рис А 16 Стиснута таблиця значень полів для файлу, наведеного на рис А 15

Рис А 17 Таблиця реконструкції записів для файлу, наведеного на рис А 15

Рис А18 Наведена на рис А 16 таблиця значень полів після злиття перших двох стовпців

2 Тому кожна клітинка в злившись стовпці містить єдиний номер деталі разом з двома діапазонами рядків Перший діапазон рядків показує, в яких рядках незжатої таблиці значень полів відповідний номер деталі присутній в якості номера основний деталі, а другий діапазон показує, в яких рядках цієї незжатої таблиці значень полів відповідний номер деталі присутній в якості номера додаткової деталі Ці діапазони рядків є по суті тими ж, як і в попередній версії таблиці значень полів, якщо не рахувати того, що серед них іноді зявляється спеціальний порожній діапазон рядків [:] , Який використовується, якщо зазначений номер деталі взагалі не присутня в

відповідному стовпці незжатої таблиці значень полів (наприклад, pi ніколи не зявляється в якості номера додаткової деталі)

3 У цій злилася таблиці злилися стовпцем є стовпець 1, а стовпець QTY стає стовпцем 2 (тепер в кінцевому підсумку ця таблиця має тільки два стіл-БЦА, а не три) Стовпець 2 (стовпець QTY) є таким же, яким він був на рис А 16

4 Таблиця реконструкції записів залишається неізменной4 Але тепер стовпчики 1 і 2 цієї таблиці обидва відповідають стовпцю 1 (злившись стовпцю) таблиці значень полів стовпець 1 відноситься до першого діапазону рядків у цьому злившись стовпці, а стовпець 2 – до другого Стовпець 3 таблиці реконструкції записів тепер відноситься до колонку 2 таблиці значень полів

Ця ідея злиття стовпців дозволяє досягти багатьох переваг але в даному розділі буде описано тільки одне з них Воно стосується операцій зєднання Припустимо, що необхідно зєднати ставлення MMQ з самим собою, зіставляючи номери додаткових деталей з першої копії (У тому вигляді, яка вона є) даного відносини з номерами основних деталей з другої копії. У такому випадку досить виконати єдиний прохід по злилася таблиці значень полів, щоб дізнатися, які кортежі з якими зєднуються Наприклад, рядок 3 цієї таблиці (яка містить номер деталі РЗ) показує Діапазон рядків з номерами додаткових деталей, рівний [2: 31, а з номерами основних деталей – Рівний [7:8] З цього безпосередньо випливає, що і другий, і третій кортежі з першої копії відносини MMQ обидва зєднуються до сьомим і восьмим кортежами з другої копії. І аналогічні зауваження відносяться до всіх інших рядках цієї злилася таблиці значень полів Тому фактично зєднання по методу сортування-злиття може бути отримано без виполненія5 сортування (як було зазначено вище у цьому додатку) і навіть взагалі без злиття

Примітка Безумовно, ні в одному відношенні немає такого поняття, як друга кортеж, третій кортеж або i-й кортеж для будь-якого значення i кортежі у відношенні не впорядковані Під цією сумнівною формулюванням маються на увазі наведені нижче угоди

■ Припустимо, що F1 – файл, реконструйований з таблиці значень полів, наведеної на рис А18, шляхом обробки стовпця MAJOR_P # таблиці реконструкції записів на рис А17 в послідовності зверху вниз Тоді першої копією відносини MMQ є файл Fl, a i-м кортежем цієї копії – унікальний кортеж відносини MMQ, який відповідає i-й записи файлу F1

■ Аналогічним чином, припустимо, що F2 – це файл, реконструйований з таблиці значень полів, наведеної на рис А18, шляхом обробки стовпця MINOR_P # таблиці реконструкції записів на рис А17 в послідовності зверху вниз Тоді другий копією відносини MMQ є файл F2, а i-м кортежем цієї копії є унікальний кортеж відносини MMQ, який відповідає i-й запису файлу F2

На завершення даного розділу ще раз підкреслимо те, що метод злиття стовпців може застосовуватися не тільки до одного, а й до декількох файлів Наприклад, у випадку відносини постачальників і деталей можна було б передбачити тільки одну таблицю значень полів (піддану і злиття, і стисненню) для всієї бази даних, і в цій таблиці передбачити один стовпець для номерів постачальників (із змінних відносини S і SP), один для номерів деталей (з змінних відносини SP і Р), один для назв міст (з змінних відносини S і Р) і тд Насправді, модель TR дозволяє включати в таблицю значень полів такі значення, які в даний момент фактично не перебувають ні в одному з відносин бази даних, тому TR може розглядатися в повному розумінні цього слова як доменно-орієнтоване подання всієї бази даних Додаткова інформація на цю тему приведена в [А1]

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

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

Джерело: Дейт К Дж, Введення в системи баз даних, 8-е видання: Пер з англ – М: Видавничий дім «Вільямс», 2005 – 1328 с: Ил – Парал тит англ

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


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

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

Ваш отзыв

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

*

*