Changes between Version 8 and Version 9 of Normalization


Ignore:
Timestamp:
03/05/22 14:38:53 (3 years ago)
Author:
193113
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Normalization

    v8 v9  
    5555Од горните зависности, може да се воочи дека постојат парцијални функциски зависности од сите атрибути посебно од кандидат клучот. Мора да се разложи во посебни табели за да бидат задоволени правилата за 2 нормална форма. Ќе се креира посебна табела за genre_id и genre_type, посебна табела за person_id и со сите атрибути произлезени од неговите функциски зависности освен discussion_type, посебна табела за movie_id заедно со сите атрибути произлезени од функцискисте зависности освен discussion_type, посебна табела за user_id заедно со сите атрибути произлезени од нивните функциски зависности, посебна табела за user_id и movie_id заедно со movie_reason и movie_stars_rated,  посебна табела за user_id и person_id заедно со person_reason и person_stars_rated, посебна табела за discussion_id и сите атрибути добиени од нивните функциски зависности, посебна табела за discussion_id и reply_id заедно со атрибутите добиени од нивните функциски зависности.
    5656
    57 R,,1,,(genre_id, genre_type)
    58 R,,2,,(person_id, person_fullname, person_type, date_of_birth, person_image_url, person_description)
    59 R,,3,,(movie_id, movie_title, movie_description, movie_image_url, imdb_rating, airing_date)
    60 R,,4,,(username, user_id, user_fullname, password, email)
    61 R,,5,,(user_id, person_id, person_stars_rated, person_reason)
    62 R,,6,,(user_id, movie_id, movie_stars_rated, movie_reason)
    63 R,,7,,(discussion_id, discussion_type, discussion_text, discussion_title, discussion_date, movie_id, person_id)
    64 R,,8,,(discussion_id, reply_id, reply_text, reply_date)
     57R,,1,,(genre_id, genre_type) \\
     58R,,2,,(person_id, person_fullname, person_type, date_of_birth, person_image_url, person_description) \\
     59R,,3,,(movie_id, movie_title, movie_description, movie_image_url, imdb_rating, airing_date) \\
     60R,,4,,(username, user_id, user_fullname, password, email) \\
     61R,,5,,(user_id, person_id, person_stars_rated, person_reason) \\
     62R,,6,,(user_id, movie_id, movie_stars_rated, movie_reason) \\
     63R,,7,,(discussion_id, discussion_type, discussion_text, discussion_title, discussion_date, movie_id, person_id) \\
     64R,,8,,(discussion_id, reply_id, reply_text, reply_date) \\
    6565
    6666Сепак, со овие горе табели, нема да може да има спојување на табелите засегнати со жанрот, а тоа се R3 и R4. Кандидат клучевите на R3 и R4 не повлекуваат функциски зависности кон кандидат клуч на R1, па затоа ќе треба да постојат, уште две посебни табели, во кои кандидат клуч ќе биде соодветни комбинации од кандидат клуч на R1 и R3, како и R1 и R4. Може да постои само R9 или R10 за да спојувањето биде успешно, не постои функциска зависност заведена погоре, но истото нема да резултира со побарувањата на базата од ЕР дијаграмот.
    6767
    68 R,,9,,(genre_id, movie_id)
    69 R,,10,,(genre_id, user_id)
     68R,,9,,(genre_id, movie_id) \\
     69R,,10,,(genre_id, user_id) \\
    7070
    71719 табели се добиваат врз база на функциските зависности.
     
    7373Спојувањето ќе биде успешно и се запазени функциските зависности за 2 нормална форма.
    7474
    75 R,,1,,(genre_id, genre_type) - BCNF поради тоа што genre_id и genre_type се кандидат клучеви, односно супер клучеви, во оваа табела.
    76 R,,2,,(person_id, person_fullname, person_type, date_of_birth, person_image_url, person_description) - BCNF, функциските зависности доаѓаат само од person_id што е кандидат клуч.
    77 R,,3,,(movie_id, movie_title, movie_description, movie_image_url, imdb_rating, airing_date) - BCNF, функциските зависности доаѓаат само од кандидат клучевите.
    78 R,,4,,(username, user_id, user_fullname, password, email) - BCNF, функциските зависности доаѓаат само од кандидат клучевите.
    79 R,,5,,(user_id, person_id, person_stars_rated, person_reason) - BCNF, не постојат нетривијални функциски зависности без да биде вклучен кандидат клучот.
    80 R,,6,,(user_id, movie_id, movie_stars_rated, movie_reason) - BCNF, не постојат нетривијални функциски зависности без да биде вклучен кандидат клучот.
    81 R,,7,,(discussion_id, discussion_type, discussion_text, discussion_title, discussion_date, movie_id, person_id) - 2 нормална форма постојат транзитивни функциски зависности на discussion_id произлезени од movie_id и person_id кои што не се кандидат клучвеи во оваа табела. Мора оваа табела да се разложи на 3 табели.
     75R,,1,,(genre_id, genre_type) - BCNF поради тоа што genre_id и genre_type се кандидат клучеви, односно супер клучеви, во оваа табела. \\
     76R,,2,,(person_id, person_fullname, person_type, date_of_birth, person_image_url, person_description) - BCNF, функциските зависности доаѓаат само од person_id што е кандидат клуч. \\
     77R,,3,,(movie_id, movie_title, movie_description, movie_image_url, imdb_rating, airing_date) - BCNF, функциските зависности доаѓаат само од кандидат клучевите. \\
     78R,,4,,(username, user_id, user_fullname, password, email) - BCNF, функциските зависности доаѓаат само од кандидат клучевите. \\
     79R,,5,,(user_id, person_id, person_stars_rated, person_reason) - BCNF, не постојат нетривијални функциски зависности без да биде вклучен кандидат клучот. \\
     80R,,6,,(user_id, movie_id, movie_stars_rated, movie_reason) - BCNF, не постојат нетривијални функциски зависности без да биде вклучен кандидат клучот. \\
     81R,,7,,(discussion_id, discussion_type, discussion_text, discussion_title, discussion_date, movie_id, person_id) - 2 нормална форма постојат транзитивни функциски зависности на discussion_id произлезени од movie_id и person_id кои што не се кандидат клучвеи во оваа табела. Мора оваа табела да се разложи на 3 табели. \\
     82 
     83R,,71,,(discussion_id, discussion_text, discussion_title, discussion_date, movie_id, person_id) - BCNF, сите функциски зависности потекнуваат од кандидат клуч. \\
     84R,,72,,(movie_id, discussion_type) - BCNF, сите функциски зависности потекнуваат од кандидат клуч. \\
     85R,,73,,(person_id, discussion_type) - BCNF, сите функциски зависности потекнуваат од кандидат клуч. \\
    8286
    83 R,,71,,(discussion_id, discussion_text, discussion_title, discussion_date, movie_id, person_id) - BCNF, сите функциски зависности потекнуваат од кандидат клуч.
    84 R,,72,,(movie_id, discussion_type) - BCNF, сите функциски зависности потекнуваат од кандидат клуч.
    85 R,,73,,(person_id, discussion_type) - BCNF, сите функциски зависности потекнуваат од кандидат клуч.
     87R,,8,,(discussion_id, reply_id, reply_text, reply_date) - BCNF, не постојат нетривијални функциски зависности без да биде вклучен кандидат клучот. \\
    8688
    87 R,,8,,(discussion_id, reply_id, reply_text, reply_date) - BCNF, не постојат нетривијални функциски зависности без да биде вклучен кандидат клучот.
     89Според ова, сите табели се во BCNF, па нормализацијата е во BCNF со 11 табели.  \\
    8890
    8991Дополнително, побарувањата на ЕР дијаграмот не се целосно застапени, односно не постои табела за допаѓања на филмови, табела за допаѓања на дискусии и табела за допаѓања на реплики бидејќи не постојат функциски зависности од погоре. Исто и за креатор на реплика и дискусија, а воедно на филмот неговиот режисер, ќе мора да се во посебни табели, од аспект, повторно на функциските зависности, кои не постојат меѓусебно. Во R14, иако глобално не постои зависност кон person_id, сепак за да се задоволат барањата на ЕР дијаграмот, ќе биде креиарана нова табела која ќе репрезентира режисер на соодветниот филм.
    9092
    91 R,,11,,(user_id, movie_id)
    92 R,,12,,(user_id, discussion_id)
    93 R,,13,,(user_id, discussion_id, reply_id)
    94 R,,14,,(movie_id, person_id)
    95 R,,15,,(user_id, discussion_id)
    96 R,,16,,(user_id, discussion_id, reply_id)
     93R,,11,,(user_id, movie_id) \\
     94R,,12,,(user_id, discussion_id) \\
     95R,,13,,(user_id, discussion_id, reply_id) \\
     96R,,14,,(movie_id, person_id) \\
     97R,,15,,(user_id, discussion_id) \\
     98R,,16,,(user_id, discussion_id, reply_id) \\
    9799
    98100