Relational Database Model को Edgar (E. F.) Codd ने Develop किया था। 1960 के दशक में Dr. Codd Existing Data Models पर काम कर रहे थे। अपने अनुभव के आधार पर उन्होंने पाया कि जितने भी Data Models उस समय प्रचलित थे, वे सभी काफी जटिल व अप्राकृतिक तरीकों से Data को Model करते थे। चूंकि वे एक गणितज्ञ थे, इसलिए उन्होंने विभिन्न प्रकार के Relations को Set Theory के आधार पर Mathematical Form में Develop करना शुरू किया और अपने Concept को और Extend करके उन्होंने Relational Database Model Develop किया और 1970 में लोगों के सामने लाया।
Mathematical Set Theory में Rows (Tuple) व Columns (Attributes) से बनी एक Table को एक Relation के रूप में Define किया जाता है। Relation को दूसरे शब्दों में हम Table भी कह सकते हैं। ये Definition केवल इस बात को Specify करता है कि किसी Table के हर Column में क्या Store किया जाएगा, लेकिन उसमें Actual Data को Specify नहीं किया जाता है। जब हम इस Table में Data के Rows Include करते हैं, तब हमें उस Relation का एक Instance प्राप्त होता है। उदाहरण के लिए हम किसी Student के Relation को निम्नानुसार Represent कर सकते हैं:
SrNo | Name | FName | City | Dist. | Class | DOB | DOA |
001 | Rahul | Mohan Lal | Falna | Pali | 10 | 10-02-1982 | 15-7-1987 |
002 | Rohit | Sohan Lal | Bali | Pali | 09 | 11-12-1983 | 05-7-1987 |
003 | Krishna | Gopal | Desuri | Pali | 08 | 20-03-1981 | 10-7-1987 |
004 | Madhav | Ram La l | Falna | Pali | 10 | 30-2-1982 | 01-7-1987 |
005 | Achyut | Nand Lal | Desuri | Pali | 07 | 12-12-1986 | 13-7-1987 |
006 | Manohar | Rohan Lal | Bali | Pali | 10 | 10-11-1982 | 15-7-1987 |
पहली नजर में ये Relation एक Flat File या किसी Spreadsheet के Rectangular Portion की तरह ही दिखाई देता है। लेकिन जब हम इस Table को Set Theory के आधार पर एक Relation के रूप में देखते हैं, तब इस Relation के कुछ बहुत ही Specific Characteristics हमें दिखाई देते हैं। Set Theory के आधार पर देखने पर इस Relation का हर Column DBMS में Store किए जाने वाले Constraints को Represent करता है।
जब हम Set Theory के आधार पर किसी Relation के एक Column की Characteristics को देखते हैं, तब हमें एक Column की निम्न Characteristics होती हैं:
- एक Table में हर Column का एक Unique नाम होता है।
किसी एक ही Relation Schema में दो या दो से अधिक Tables में एक ही नाम के Columns हो सकते हैं, लेकिन किसी एक ही Table में एक ही नाम के दो Column नहीं हो सकते हैं। जब समान नाम का कोई Column एक से ज्यादा Tables में Appear होता है और समान नाम के Columns को Hold करने वाले Tables जब समान Data Manipulation Operation के लिए Use किए जाते हैं, तब हमें उन समान नाम के Columns को Particular Table से Access करने के लिए उनके Tables के नाम को उपसर्ग के रूप में Columns के नाम से पहले Use करना पडता है और Columns के नाम को Table के नाम से एक Dot या Period द्वारा जोडना पडता है। जैसेः
Customers.CustID
Students.StudID
- एक Column हमेंशा सिर्फ एक ही Domain के मान को Store करता है।
किसी Table में जिस Column को जिस Type का मान Store करने के लिए Define किया जाता है, वह Column केवल उसी मान को Store करता है। उदाहरण के लिए किसी Student Table में Student का नाम Store करने के लिए जिस Column को Define किया गया है, वह Column केवल नाम Store करने के लिए ही Use किया जा सकता है, जबकि जो Column Roll Number Store करने के लिए Define किया गया है, उसमें केवल Roll Number ही Store किया जा सकता है।
यानी हर Column में किसी एक निश्चित Domain के मान को ही Store किया जा सकता है। परिणामस्वरूप Relations को Column Homogeneous कहा जाता है। साथ ही Table का हर Column किसी ना किसी Domain Constraint से Associated होता है। हमारे DBMS के आधार पर Domain Constraint Data Type की तरह ही Simple होता है, जैसे कि Integers, Characters, Date आदि। इसके अलावा हमारा DBMS इस बात की भी सुविधा देता है कि हम हमारी जरूरत के आधार पर नया Domain भी Create कर सकते हैं और उसे अपनी Table के किसी Column के साथ Attach कर सकते हैं।
Columns की तरह ही Rows की भी किसी Relation में अपनी कुछ Special Properties या Characteristics होती हैं। ये Characteristics निम्नानुसार हैं:
- एक Row के विभिन्न Column में हम सिर्फ और सिर्फ एक ही मान को Store कर सकते हैं। यानी किसी Row का हर Column Single-Valued होता है। और
- एक Relation में हर एक Record Unique होता है। यानी एक Relation में एक Row का दुबारा Duplication नहीं हो सकता। किसी Relation के हर Record को Unique बनाने के लिए DBMS स्वयं ही हर ROW के साथ Unique Constraint को Enforce नहीं करता है, बल्कि इस सुविधा को हम Primary Key द्वारा प्राप्त करते हैं।
Primary Key किसी Table के किसी Column या Columns का Combination होता है, जिसे उस Table या Relation के किसी Record या Row को Uniquely Identify करने के लिए Define किया जाता है। जैसे ही किसी Relation में कोई Unique Primary Key को किसी विशिष्ट Column या Columns के Combination के साथ Set कर दिया जाता है, वैसे ही ये निश्चित हो जाता है, कि उस Table का हर Record या Row Unique होगा।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Oracle 8i/9i SQL/PLSQL in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Oracle 8i/9i SQL/PLSQL in Hindi | Page: 587 | Format: PDF