ПОБУДОВА ФУНКЦІОНАЛЬНИХ ЗАЛЕЖНОСТЕЙ ДЛЯ ОБРАНОЇ ПО

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
РТ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Бази даних та знань

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ, НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ІСМ Лабораторна робота №3 на тему: ПОБУДОВА ФУНКЦІОНАЛЬНИХ ЗАЛЕЖНОСТЕЙ ДЛЯ ОБРАНОЇ ПО З курсу: «Теорія систем баз даних та знань» Мета роботи Вивчення застосування звичайних булевих операцій над множинами до відношень. Визначення трьох спеціальних операторів над відношеннями: вибору, проекції і з’єднання. Оператори об’єднання, перетину, різниці, активного доповнення, вибірки, натурального зєднання, ділення, перейменування і -з’єднання разом з постійними і регулярниим відношеннями відносяться до реляційної алгебри. Нарешті, аналізуються дві операції, що не належать алгебрі, але іноді корисні при реалізації бази даних, а саме: оператор розщеплення та оператор фактор. Теоретичні відомості Функціональна залежність є узагальненням поняттям ключа. Не строго кажучи, F-залежність має місце тоді, коли значення кортежу на одній множині атрибутів єдиним чином визначають ці значення на іншій множині атрибутів. Нехай r – відношення зі схемою R, X та Y – підмножини. Відношення r задовольняє функціональні залежності X ( Y, якщо  має не більше одного кортежу для кожного Х – значення х. Один із способів інтерпретувати ей вираз – розглянути два кортежі  та в r. Якщо то . В F-залежності X ( Y підмножина Х називається лівою частиною, відповідно Y – правою. Алгоритм SATISFIES. Цей алгоритм перевіряє, чи задовольняє відношення r F-залежності X ( Y. Вхід: відношення r та F-залежність X ( Y. Вихід: істина, якщо r задовольняє X ( Y, хибність – в іншому випадку. SATISFIES (r, X ( Y); Відсортуємо відношення за – стовпцями так, щоб зібрати кортеж з рівними – значення разом. Якщо кожна сукупність кортежів з рівними – значеннями має також рівні – значеннями, то на виході отримуємо істину, в іншому випадку хибність. Застосування аксіом виведення. Множина функціональних залежностей, що застосовуються до відношення r(R), кінцева, так як існує тільки кінцеве число підмножин множини R. Таким чином, завжди можна знайти всі F – залежності, яким r задовольняє, перебравши всі можливі з допомогою алгоритма SATISFIES. Проте цей підхід потребує більшої кількості часу. Якщо відомі деякі F-залежності з F, тоді здебільшого можна вивести решта. Множина F-залежностей породжує F-залежність X ( Y(позначення: F |( X ( Y), якщо кожне відношення, що задовольняє всім залежностям в F, задовольняє також залежності X ( Y. Аксіома виведення – це правило, яке встановлює, що якщо відношення задовольняє визначеним F – залежностям, тоді воно повинно задовольняти і деяким іншим F – залежностям. Тепер введемо шість аксіом виведення для F-залежностей. В їх формулюваннях використовуються позначення r для відношення на R і W, X, Y і Z – для підмножин R. F1. Рефлексивність: X ( X. F2: Поповнення: X ( Y породжує XZ ( Y. F3: Адитивність:X ( Y i X ( Z породжує X ( YZ. F4: Проективність: X ( YZ породжує X ( Y. F5: Транзитивність: X ( Y i Y ( Z породжує X ( Z. F6: Псевдотранзитивність: X ( Y i YZ ( W породжує XZ (W. Аксіоми F1, F2 і F6 складають повну підмножину для F1-F6. Аксіоми F1, F2 i F6також є незалежними: жодна з цих аксіом не може бути отримана з двох інших. Ці три аксіоми називаються іноді аксіомами Армстронга, хоча вони не дуже схожі на вихідну аксіому Армстронга (проте ця назва узвичаєна). Нехай F – множина F-залежностей для відношення r (R). Замикання F, що позначається, F - це найменша множина, що містить F, така, що при застосуванні до неї аксіом Армстронга не можна одержати жодної F-залежності не приналежної F. Оскільки F повинно бути завжди, то можна обчислити його, починаються з F шляхом застосування F1, F2 і F6 і додавання отриманих Р-залежностей до F доти, поки не перестануть утворюватися нові залежності. Замикання F залежить від схеми R. Якщо R = AB, то F завжди будуть містити B ( B. Коли R не визначене явно, передбачається, що існує множина всіх символів атрибутів, використовуваних у F – залежностях із F. З множини F можна вивести F-залежність X ( Y, якщо X ( Y належить F, тому що аксіоми виведення породжують тільки функціональні залежності, то F спричиняє за собою X ( Y, якщо X ( Y виводиться з F. Опис виконаної роботи Визначення функціональних залежностей: Для таблиці «Учасник»: {ім’я} -> {рік народження, машина} Для таблиці «Змагання» : {назва} -> {дата, місце знаходження} Для таблиці «Організування» : Немає ФЗ Для таблиці «Організатор» : Немає ФЗ Для таблиці «Час на колі» : {учасник, номер кола, категорія} -> {час} Для таблиці «Категорія» : {назва, змагання} -> {траса, час} Для таблиці «Траса»: Немає ФЗ Слід зазначити, що в визначенні функціональних залежностей не враховувався ключовий атрибут «Ід» (який присутній у всіх відношеннях), оскільки даний атрибут визначає усі інші для всіх відношень. Візьмемо відношення «Змагання», і перевіримо, чи виконується функціональна залежність {Ім’я}->{Розташування}. Відношення показане на рис. 1. /= Рис. 1. Відношення «Змагання» Для цього використаю написану програму, текст якої: Клас Cortege (кортеж): package first; public class Cortege { public int id; public String name; public String date; public String situated; public Cortege(int id, String name,String date, String situated) { this.id = id; this.name = name; this.date = date; this.situated = situated; } } Клас Main: package first; import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<Cortege> al = new ArrayList<Cortege>(); al.add(new Cortege(1," Loeb ","29/12/86"," Citroen C4")); al.add(new Cortege(1,"Solberg ","29/12/89"," Subaru Impreza")); int n = al.size(); boolean result = true; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(i!=j) { if(al.get(i).name.equals(al.get(j).name)) { if(!al.get(i).situated.equals(al.get(j).situated) ) { result = false; } } } } } System.out.println("Func. dependence - " + result); } } Результат виконання програми : Func. dependence – true Висновок На даній лабораторній роботі я ознайомився з побудовою множини функціональних залежностей як способом зменшення надлишковості даних і підвищення їх надійності, також я склав програму для перевірки функціональної залежності для конкретного прикладу, та побудував замикання.
Антиботан аватар за замовчуванням

20.05.2013 22:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!