4.1 परिचय (Introduction)
किसी भी रिलेशनल (Relational) स्कीमा (Schema) डेटाबेस (Database) को अच्छे ढंग से डिजाइन के लिए, उसे नॉर्मलाइज़ (Normalize) किया जाना आवश्यक होता है।
नॉर्मलाइजेशन (Normalization), एक ऐसी प्रक्रिया है जिसमें दिए गए रिलेशनल (Relational) स्कीम (Schema) डेटाबेस (Database) से डेटा रिडन्डैन्सी (Data Redundancy) एवं एनोमलीज़ (Anomalies) को हर करने के लिए फंक्शनल डिपेन्डेन्सी (Functional Dependency) के कॉन्सेप्ट (Concept) के आधार पर छोटेरिलेशन्स (Relations) में विभाजित किया जाता है। 4.2 फंक्शनल डिपेन्डेन्सी (Functional Dependency)
एक डेटाबेस (Database), सम्बन्धित सूचनाओं अर्थात् रिलेटेड इन्फॉर्मेशन्स (Related Informations) का एक कलेक्शन (Collection) होता है; अतः स्वाभाविक रूप से डेटाबेस में इन्फॉर्मेशन के कुछ आइटम्स (Items) अन्य आइटम्स (Items) पर निर्भर अर्थात् डिपेन्ड (Depend) करते हैं। ये इन्फॉर्मेशन सिंगल-वैल्यूड (Single-Valued) या मल्टी-वैल्यूड (Multi-Valued) हो सकते हैं। उदाहरण के लिए, किसी व्यक्ति का नाम (Name) या उसकी जन्म-तिथि (Date of Birth), सिंगल-वैल्यूड फैक्ट्स (Single-Valued Facts) हैं; जबकि उसकी योग्यता (Qualification) एक मल्टी-वैल्यूड फैक्ट (Multi-Valued Fact) है।
अच्छे डेटाबेस डिज़ाइन (Good Database Design) एवं खराब डेटाबेस डिज़ाइन (Bad Database Design) में विभेद करने में फंक्शनल डिपेन्डेन्सी (Functional Dependency) महत्वपूर्ण भूमिका निभाती है। फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) किसी एन्टिटी (Entity) के एट्रीब्यूट्स (Attributes) के बीच के इन्टररिलेशनशिप्स (Interrelationship) के परिणाम होते हैं, जहां उस एन्टिटी (Entity) को एक रिलेशन (Relation) के द्वारा रिप्रेजेन्ट (Represent) किया जाता है।
फंक्शनल डिपेन्डेन्सी (Functional Dependency) को आसानीपूर्वक समझने के लिए आइए, एक R नामक रिलेशन (Relation) पर विचार करते हैं जिसके दो एट्रीब्यूट्स (Attributes) हैं_X और Y। रिलेशन (Relation), R का Y एट्रीब्यूट (Attribute) X एट्रीब्यूट (Attribute) पर केवल तभी फंक्शनली डिपेन्डेन्ट (Functionally Dependent) होगा, जब X की प्रत्येक वैल्यू से Y की एक से अधिक वैल्यू एसोसिएटेड (Associated) नहीं होगी। दूसरे शब्दों में, एट्रीब्यूट (Attribute) की वैल्यू Y एट्रीब्यूट (Attribute) की वैल्यू का यूनिकली (Uniquely) निर्धारण करती है आर एक से अधिक टयपल्स (Tuples) की वैल्यू, X की वैल्यू के समान होती है तो सभी टयपल्स (Tuples) का एट्रीब्यूट (Attribute) की वैल्यू के समान होगी; अर्थात् यदि R नामक रिलेशन (Relation) में 1 और 2 नामक ट्यूपल्स (Tuples) हैं, जहाँ t1(X) = t2(X) है, तो t(Y) = t,(Y) होगा।
विदित हो कि यह आवश्यक नहीं है कि X और Y एकल एट्रीब्यटस (Attributes) हों। ये रिलशन R के एट्रीब्यूट्स (Attributes) के सबसेट्स (Subsets) भी हो सकते हैं। अतः रिलेशन (Relation) R के X और Y (Attributes) to HEU 42TpaT 75455-HT (Functional Dependency-FD) CT FRIGAR Tal of R.X → R.Y
या X →Y
httributes) हों। ये रिलेशन (Relation) शन (Relation) R के X और Y एट्रीब्यूट्स
नानुसार लिखा जा सकता है
EETE
TAARASIDHA
BHd
25ESTRARIESAHARHAAL
69
यहाँ x → Y का तात्पर्य यह है कि Y, X पर फंक्शनली डिपेन्डेन्ट (Functionally Dependent) है, अर्थात् X, फंक्शनली (Functionally) Y का निर्धारण करता है।
विदित हो कि फंक्शनल डिपेन्डेन्सी (Functional Dependency), एट्रीब्यूट्स (Attributes)–X और Y के मध्य वन-टू-वन रिलेशनशिप (One-to-One Relationship) को इम्प्लाई (Imply) अर्थात् प्रकट नहीं करता है।
फंक्शनल डिपेन्डेन्सी (Functional Dependency) के कॉन्सेप्ट (Concept) को आसानीपूर्वक समझने के लिए आइए, निम्नांकित Fig. 4.01 में दर्शाई गई STUDENT नामक टेबल और Fig. 4.02 में दर्शाई गई डिपेन्डेन्सीज़ (Dependencies) पर विचार करते हैंRegNo Name City CourseCode CourseName Teacher 001
Swati Meerut CS-10 Software Engineering R.S. Agrawal 002 Anand
Baghpat CS-12 Operating System Rajat Rastogi 003 Arti Delhi CS-06 DBMS
Mansi Sharma 004 Manesh | Meerut CS-02 Computer Organization O.P. Mittal
Fig. 4.01 : An Instance of STUDENT Relation
Name
RegNo
City
|
CourseName
CourseNo
Teacher
Fig. 4.02 : Dependencies of STUDENT Relation उपरोक्त Fig. 4.02 में दर्शाई गई डिपेन्डेन्सीज़ (Dependencies) को निम्न प्रकार लिखा जा सकता है
RegNo → Name RegNo → City CourseNo → CourseName
CourseNo → Teacher
यह सम्भव है कि एक से अधिक छात्रों के नाम एक समान हों और एक ही शहर में एक से अधिक छात्र रहते हों। उपरोक्त फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) यह एम्प्लॉई (Imply) अर्थात् प्रकट करती है कि प्रत्येक RegNo के लिए एक और केवल एक ही छात्र का नाम हो सकता है और प्रत्येक CourseNo के लिए एक ही विषय का नाम हो सकता है।
CourseNo → Teacher के लिए डिपेन्डेन्सी (Dependency) यह इम्प्लाई (Imply) अर्थात् प्रकट करती है कि किसी भी विषय के एक से अधिक टीचर (Teacher) नहीं हो सकते हैं।
आइए, अब फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) के परिप्रेक्ष्य में अग्रांकित EMPLOYEE नामक रिलेशन (Relation) पर विचार करते हैं
70
S
डेटाबेस मैनेजमेन्ट सिस्टम
EMPLOYEE (EmpCode, Name, Department, Grade, Age, Salary, Address)
इस रिलेशन (Relation) में निम्नलिखित फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) होल्ड (HI. करती हैFD1 : EmpCode → EmpName
(चूँकि प्रत्येक एम्प्लॉई (Employee) का यूनिक (Unique) एम्प्लॉई कोड (EmpCode) है।) FD2 : EmpCode → Department
(चूँकि एक एम्प्लॉई (Employee) एक ही डिपार्टमेन्ट (Department) में काम कर सकता है।) FD3 : EmpCode, Grade, Age → Salary
(चूँकि एम्प्लॉई (Employee) की सैलरी (Salary) उसके ग्रेड (Grade) एवं उम्र (Age) पर निर्भर करती है।)
ध्यान दें, EmpCode, Salary या Age पर फंक्शनली डिपेन्डेन्ट (Functionally Dependent) नहीं है, क्योंकि एक से अधिक कर्मचारी एक समान उम्र (Age) के हो सकते हैं और उनकी सैलरी (Salary) भी एक समान हो सकती है।
फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) न केवल एट्रीब्यूट्स (Attributes) वरन् दो एन्टिटीज़ (Entities) के मध्य रिलेशनशिप (Relationship) भी विद्यमान हो सकती है।
मान लीजिए, एक एन्टिटी (Entity) की प्राइमरी ‘की’ (Primary Key) P है एवं दूसरे एन्टिटी (Entity) की प्राइमरी ‘की’ (Primary Key) Q है तथा दोनों एन्टिटीज़ (Entities) के बीच में एक रिलेशनशिप (Relationship) है। यदि दोनों के बीच में एक वन-टु-वन रिलेशनशिप (One-to-One Relationship) है तो हमारे पास दो फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) होगी—P →Q एवं Q→ P। यदि यह रिलेशनशिप (Relationship) मेनी-टु-मेनी (Many-to-Many) होंगी तो हमारे पास फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) P Q होगी; परन्तु, Q-P नहीं होगी।
रिलेशनशिप्स (Relationships) के कारण विभिन्न एन्टिटीज़ (Entities) के बीच में फंक्शनल डिपेन्डेन्साज़ (Functional Dependencies) की विद्यमानता (Existence) को प्रमाणित करने के लिए आइए. निम्नांकित Fig. 4.03 में दिए गए E-R डायग्राम पर विचार करते हैं
Reg No
Name
Name
Age
| STUDENT
City CouresNo Course_Name < Registers_in>H COURSE <Teaches
Tenfor
-COURSE
Address Department Fig. 4.03 : E-R Diagram for STUDENT, COURSE and TEACHER Entities
उपरोक्त Fig.4.03 में दर्शाए गए E-R डायग्राम से स्पष्ट है कि इसमें तीन एन्टिटीज (Entities) हैं-STUDEN COURSE और TEACHER | इन तीनों एन्टिटीज़ (Entities) के बीच निम्नलिखित फंक्शनल डिपेन्डेन्सीज़ (Functional Dependencies) विद्यमान हैंगन्टिटीज़ (entities) में FDsCOURSE एन्टिटी
CourseNo – CourseName TEACHER एन्टिटी
Teacher → Department
SARANSIS
71
रिलेशनल डेटाबेस डिजाइन शिप्स (Relationships) में FDs_ Teaches रिलेशनशिप
CourseNo → Teacher
Teacher → CourseNo