When to use Composite Primary Key?

When to Use Composite Primary Key: कई Tables ऐसे होते हैं, जिनमें कोई भी एसा Single Column नहीं होता है, जिसमें Values का Duplication ना हो।

उदाहरण के लिए यदि हम Order Lines के Table को देखें, तो चूंकि एक Order में एक से ज्यादा Items Appear हो सकते हैं, इसलिए Order Numbers भी एक से ज्यादा बार Repeat होता है, इसी तरह से एक ही Item एक से ज्यादा Order पर Appear हो सकता है, इसलिए Item Number भी एक से ज्यादा बार Repeat होता है, जैसाकि हम निम्न Table में देख सकते हैं। इसलिए इस Table का कोई भी एक Single Column Primary Key की तरह Use नहीं किया जा सकता।

OrderID ItemID Quantity
10999 1122 1
10999 2211 3
10999 1002 1
10990 1122 2
10990 2211 4
10993 1122 1
10993 1100 2
10995 1100 1

फिर भी यदि हम Order Number व Item Number को Combined Form में Use करें, तो ये किसी Row या Record को Uniquely Identify कर सकते हैं। जब किसी Table में दो या दो से ज्यादा Columns को Combined रूप से Primary Key के रूप में Use करके किसी Record या Row को Uniquely Identify करते हैं, तो इस Columns के Group को Composite Key कहा जाता है।

हालांकि यदि हम चाहें तो इस Table के तीनों ही Columns को Combined Form में Use करके किसी Record या Row को Uniquely Identify कर सकते हैं, लेकिन इस Table में किसी Record को Uniquely Identify करने के लिए केवल Order Number व Item Number का Combination ही पर्याप्त है, इसलिए इस Composite Key में Quantity Column को Add करने की जरूरत नहीं है। जब हम Composite Key का प्रयोग करके किसी Record को Uniquely Identify करना चाहते हैं, तब हमें सरलता के लिए कुछ बातों को ध्यान में रखना चाहिए, जिससे Database Design में किसी तरह की कोई परेशानी पैदा ना हो। ये बातें निम्नानुसार हैं:

  • एक Composite Primary Key में जहां तक सम्भव हो, कम से कम Columns का प्रयोग करना चाहिए। यानी यदि दो Columns के Group से Table के हर Record को Uniquely Identify किया जा सकता है, तो तीन Columns को मिलाकर Primary Key नहीं बनाना चाहिए।
  • जहां तक सम्भव हो, Composite Primary Keys को Meaningless रखना चाहिए।

हम Relations भी Create कर सकते हैं, जिसके सभी Columns को मिलाकर एक Key बना लिया गया हो। उदाहरण के लिए हम एक Library Card Catalog को लेते हैं। किसी Library में जितनी भी Books होती हैं, उन सभी Books का एक Unique ISBN (International Standard Book Number) होता है।

किसी Library Catalog में सभी ISBN Number की Book के साथ एक Subject Heading या विषय को Associate किया गया होता है और हर Book के साथ एक Subject Heading या विषय को Associate किया गया होता है। इस तरह से एक Book व उसके Subject Heading के बीच Many To Many की Relationship Create हो जाती है। इस Relationship को हम निम्नानुसार Represent कर सकते हैं:

SubjectCatalog (ISBNSubjectHeading)

इस Relationship को Create करने के लिए हमें केवल हर Subject Heading को एक Book Identifier के साथ एक Pair के रूप में Specify करना होता है। इस स्थिति में इस Table के दोनों Columns Primary Key के हिस्से बन जाते हैं। हम देख सकते हैं कि इस Table के सभी Fields को Composite Primary Key के रूप में Use कर लिया गया है।

इस तरह की Relationship से Database के Design में कोई Problem नहीं होती है। वास्तव में जब भी किसी Database में कोई Composite Entity होता है, जिसमें कोई Relationship Data नहीं होता, तब इस प्रकार की Relationships को Define करने पर Design सम्बंधित किसी प्रकार की कोई समस्या पैदा नहीं होती है। इस प्रकार के Composite Entity को सामान्यतया Many To Many की Relationship को Represent करने के लिए बनाया जाता है। (When to Use Composite Primary Key)

Oracle 8i/9i SQL/PLSQL in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Oracle 8i/9i SQL/PLSQL in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Oracle 8i/9i SQL/PLSQL in Hindi | Page: 587 | Format: PDF

BUY NOW GET DEMO REVIEWS