एसक्यूएल में, यह समग्र या मिश्रित कुंजी है?


31

SQL के बारे में (कम्प्यूटिंग / डेटाबेस):

जब हमारे पास एक तालिका में दो या अधिक फ़ील्ड होते हैं, जो एक साथ, अपने रिकॉर्ड को विशिष्ट रूप से पहचानते हैं, तो उन्हें कॉल करने का उचित तरीका क्या है? समग्र या यौगिक कुंजी?

मैंने वेब पर देखा है दोनों का उपयोग करता है इसलिए मुझे वास्तव में यकीन नहीं है।


1
इन दोनों गूगल खोज के रुझान की जाँच करें: goo.gl/5u4XdR
igordcard

जवाबों:


32

समग्र कुंजी और यौगिक कुंजी दोनों एक से अधिक विशेषता वाले उम्मीदवार कुंजी का वर्णन करते हैं। रिलेशनल डेटाबेस डिक्शनरी (CJDate) के अनुसार उनका मतलब एक ही है।

ईआर मॉडलिंग में "यौगिक कुंजी" शब्द का एक और अधिक विशिष्ट अर्थ है। इसका मतलब एक कुंजी है जिसका घटक गुण अन्य संस्थाओं में कुंजियों के संदर्भ हैं - अर्थात एक यौगिक कुंजी एक पहचान संबंध बनाती है। अधिकांश उद्देश्यों के लिए, यह एक विशेष रूप से उपयोगी या महत्वपूर्ण अवधारणा नहीं है, इसलिए समग्र / यौगिक को अक्सर विनिमेय माना जाता है। जब तक आप विशेष रूप से किसी यौगिक कुंजी के ईआर मॉडलिंग अवधारणा का उल्लेख नहीं कर रहे हैं, तब तक "समग्र कुंजी" से चिपके रहना संभव है।


3
"ईआर मॉडलिंग में" कंपाउंड कुंजी "शब्द का एक और अधिक विशिष्ट अर्थ है" - ठोस अर्थ लगता है :) लेकिन क्या आपके पास एक उद्धरण है?
onedaywhen

तो एक यौगिक कुंजी आमतौर पर उदाहरण के लिए कई-कई संबंधों के लिए उपयोग की जाने वाली जंक्शन तालिका में पाई जाने वाली कुंजी होगी?
जोश पी

19

मुझे अब भी यकीन नहीं है कि http://en.wikipedia.org/wiki/Compound_key से सलाह क्यों नहीं ली गई। यह बहुत स्पष्ट रूप से बताता है (और सही है):

डेटाबेस डिजाइन में, एक यौगिक कुंजी एक कुंजी है जिसमें 2 या अधिक गुण होते हैं जो विशिष्ट रूप से एक इकाई घटना की पहचान करते हैं। प्रत्येक गुण जो यौगिक कुंजी बनाता है, अपने आप में एक सरल कुंजी है।

यह अक्सर एक संयुक्त कुंजी के साथ भ्रमित होता है, भले ही यह एक ऐसी कुंजी भी होती है जिसमें 2 या अधिक गुण होते हैं जो विशिष्ट रूप से एक इकाई घटना की पहचान करते हैं, कम से कम एक विशेषता जो समग्र कुंजी बनाती है अपने आप में एक सरल कुंजी नहीं है।

एक समग्र कुंजी उन तत्वों से बनी होती है जो विदेशी कुंजी हो सकते हैं या नहीं हो सकते हैं। उदाहरण: लेन-देन विवरण की एक तालिका में, कुंजी है (TransactionId, ItemNumber)। लेन-देन का विवरण लेन-देन की एक उप-समानता है। TransactionId एक विदेशी कुंजी है, जो Transactions टेबल को संदर्भित करता है। आइटमनंबर स्वयं की और कुंजी नहीं है। यह केवल एकल लेन-देन के संदर्भ में एक आइटम की विशिष्ट पहचान करता है।

एक यौगिक कुंजी एक कुंजी है जिसके द्वारा कुंजी का कोई भी हिस्सा एक विदेशी कुंजी है। उदाहरण: एक होटल आरक्षण प्रणाली में, एक आरक्षण परिसर की कुंजी है, (गेस्टआईड, होटलआईड, अराइवलडेट)। GuestId एक अतिथि की पहचान करता है, और मेहमानों की मेज का संदर्भ देता है। HotelId एक होटल की पहचान करता है, और होटल की तालिका का संदर्भ देता है। आगमन तिथि की पहचान करता है। हो सकता है कि वह दिनांक तालिका नहीं हो सकती है जिसे वह संदर्भित करता है, लेकिन यह एक एंटिटी (एक तिथि) की पहचान करता है।

नोट का भी यह फैक्टॉइड है: एक साधारण कुंजी एक कॉलम से बनी एक कुंजी है, जबकि एक कंपोजिट कुंजी दो या अधिक कॉलम से बनी होती है।


4
jcolebrand: "एक यौगिक कुंजी एक कुंजी है जिसके द्वारा कुंजी का कोई भी भाग रिकॉर्ड की पहचान कर सकता है।" यह गलत है। परिभाषा के अनुसार एक चाबी को इरेड्यूबल (एक न्यूनतम सुपरकी) होना चाहिए। यदि केवल कुछ विशेषताओं को विशिष्ट रूप से टपल की पहचान करना आवश्यक है, तो परिभाषा के अनुसार यह एक सुपरकी है और एक कुंजी नहीं है।
nvogel

a) मैं विकिपीडिया पेज को उद्धृत कर रहा था। b) मैं इससे सहमत हूं। यौगिक कुंजी का कोई भी हिस्सा अपने आप में एक साधारण कुंजी है। मुझे कोई आपत्ति नहीं है अगर आप भी इसे एक सुपरकीट कहते हैं। मुझे विश्वास नहीं है कि सभी यौगिक कुंजी सुपरकी हो सकती हैं, हालांकि। एर्गो, मैं विकिपीडिया लेख में क्या है, और मैं जिस परिभाषा को उद्धृत करता हूं, उसके द्वारा खड़ा हूं। मैं जा सकता हूं और अपनी प्रकाशित हार्डकवर डेटाबेस डिज़ाइन बुक को प्राप्त कर सकता हूं यदि वह आपको अधिक खुश कर देगा।
jcolebrand

2
मुझे लगता है कि आप प्रासंगिक बिंदु से चूक गए, हालांकि यह है कि एक यौगिक कुंजी अन्य संस्थाओं से कुंजी से बना है । एक कुंजी का एक उचित सबसेट संभवतः एक कुंजी नहीं हो सकता है। जैसा कि मुझे यकीन है कि आप जानते हैं, एक कुंजी न्यूनतम होना आवश्यक है (जिस तालिका के भीतर यह एक कुंजी है) - इसलिए यदि आप इसमें से किसी भी विशेषता को हटाते हैं तो यह एक कुंजी नहीं होगी।
21

2
"कुंजी" "उम्मीदवार कुंजी" के लिए छोटा है। उम्मीदवार कुंजी की पाठ्यपुस्तक की परिभाषा हमेशा "न्यूनतम सुपरकी" रही है। संदर्भ: दिनांक का शब्दकोश pg17 या ऐलिस बुक यदि आप किसी कुंजी की परिभाषा के बारे में किसी भी संदेह में हैं।
21

1
विकिपीडिया पृष्ठ पर " यौगिक कुंजी " और " कंपसाइट कुंजी " की परिभाषाएं 13 जुलाई 2014 को बदल दी गई थीं, और अब इस उत्तर में परिभाषाओं से मेल नहीं खाती हैं। (मैंने परिभाषाएँ नहीं
बदलीं

3

अंग्रेजी में यह "कम्पोजिट की" है। उदाहरण के लिए, MSDN वेबसाइट पर एक नज़र डालें (कोई भी खोज जिसमें "sql संयुक्त कुंजी" होगा)।

http://www.google.com/search?q=sql+composite+key+site:msdn.microsoft.com

यह मानते हुए कि प्रश्न संबंधपरक डेटाबेस से संबंधित है, मैंने विकिपीडिया में "तटस्थ" परिभाषा की खोज की :

एक संयुक्त कुंजी एक मेज के भीतर दो या अधिक विशेषताओं से बना एक कुंजी है जो (एक साथ) एक रिकॉर्ड को विशिष्ट रूप से पहचानती है


1
कोई स्रोत नहीं, कोई संदर्भ नहीं, कोई लिंक नहीं, कुछ भी नहीं ... बुरा जवाब।


google.com/search?q=sql+composite+key+definition बस आपको SQL Compite Keys के बारे में बात करने वाली साइटों के एक झुंड में लाएगी
हेममे

1
इसलिए होगा यौगिक कुंजी के लिए एक Google खोज
jcolebrand

3
: यह वैज्ञानिक है googlefight.com/...
Hemme

3

एक संयुक्त कुंजी एक इकाई घटना को विशिष्ट रूप से पहचानने के लिए एक से अधिक विशेषताओं से युक्त होती है। यह एक या एक से अधिक विशेषताओं में एक यौगिक कुंजी से भिन्न होता है, जो कुंजी बनाते हैं, अपने आप में सरल कुंजी नहीं हैं।

उदाहरण के लिए, आपके पास अपना सीडी संग्रह रखने वाला एक डेटाबेस है। संस्थाओं में से एक को ट्रैक कहा जाता है, जो एक सीडी पर पटरियों का विवरण रखता है। इसमें CD नाम, ट्रैक नंबर की एक संयुक्त कुंजी है।


2

यह मुझे लगता है जैसे एक संयुक्त कुंजी एक सुपरसेट है जिसमें यौगिक कुंजी शामिल हैं। यदि हम स्वीकार करते हैं कि एक संयुक्त कुंजी एक से अधिक विशेषताओं (किसी भी प्रकार की) से बनी है, और एक यौगिक कुंजी एक से अधिक सरल कुंजी से बनी है। एक यौगिक कुंजी एक विशिष्ट अर्थ के साथ संयुक्त कुंजी का एक प्रकार है, लेकिन शब्द "समग्र" कुंजी हमेशा उपयोग करने के लिए उपयुक्त है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.