डेटाबेस डिज़ाइन
Lis Sulmont
Curriculum Manager
$$

$$

लक्ष्य: Vancouver में 2018 की Q4 में बिकी Octavia E. Butler की सभी किताबों की quantity निकालें
SELECT SUM(quantity) FROM fact_booksales
-- शहर पाने के लिए जॉइन
INNER JOIN dim_store_star on fact_booksales.store_id = dim_store_star.store_id
-- लेखक पाने के लिए जॉइन
INNER JOIN dim_book_star on fact_booksales.book_id = dim_book_star.book_id
-- वर्ष और क्वार्टर पाने के लिए जॉइन
INNER JOIN dim_time_star on fact_booksales.time_id = dim_time_star.time_id
WHERE
dim_store_star.city = 'Vancouver' AND dim_book_star.author = 'Octavia E. Butler' AND
dim_time_star.year = 2018 AND dim_time_star.quarter = 4;
7600
कुल 3 joins
SELECT
SUM(fact_booksales.quantity)
FROM
fact_booksales
-- शहर पाने के लिए जॉइन
INNER JOIN dim_store_sf ON fact_booksales.store_id = dim_store_sf.store_id
INNER JOIN dim_city_sf ON dim_store_sf.city_id = dim_city_sf.city_id
-- लेखक पाने के लिए जॉइन
INNER JOIN dim_book_sf ON fact_booksales.book_id = dim_book_sf.book_id
INNER JOIN dim_author_sf ON dim_book_sf.author_id = dim_author_sf.author_id
-- वर्ष और क्वार्टर पाने के लिए जॉइन
INNER JOIN dim_time_sf ON fact_booksales.time_id = dim_time_sf.time_id
INNER JOIN dim_month_sf ON dim_time_sf.month_id = dim_month_sf.month_id
INNER JOIN dim_quarter_sf ON dim_month_sf.quarter_id = dim_quarter_sf.quarter_id
INNER JOIN dim_year_sf ON dim_quarter_sf.year_id = dim_year_sf.year_id
WHERE
dim_city_sf.city = `Vancouver`
AND
dim_author_sf.author = `Octavia E. Butler`
AND
dim_year_sf.year = 2018 AND dim_quarter_sf.quarter = 4;
sum
7600
कुल 8 joins
तो, हम डेटाबेस को नॉर्मलाइज़ क्यों करना चाहेंगे?

डीनॉर्मलाइज़्ड डेटाबेस data redundancy सक्षम करते हैं

नॉर्मलाइज़ेशन data redundancy हटाता है
$$
रेफरेंशियल इंटेग्रिटी के कारण नामकरण नियम मानने होते हैं, जैसे 'California', न कि 'CA' या 'california'
कम data redundancy = बदलने के लिए कम रिकॉर्ड
छोटी टेबल्स को बढ़ाना बड़ी टेबल्स से आसान होता है
नॉर्मलाइज़ेशन data redundancy हटाता है: स्टोरेज बचेगा
बेहतर डेटा इंटेग्रिटी: डेटा सटीक और सुसंगत
e.g., ऑपरेशनल डेटाबेस
आम तौर पर बहुत नॉर्मलाइज़्ड
e.g., डेटा वेयरहाउस
आम तौर पर कम नॉर्मलाइज़्ड
डेटाबेस डिज़ाइन