विभिन्न प्रकार की कारें एक सामान्य समस्या का एक उदाहरण हैं जो डेटा मॉडलिंग में बार-बार सतहों पर होती हैं। इसे ईआर मॉडलिंग में "सामान्यीकरण / विशेषज्ञता" और ऑब्जेक्ट मॉडलिंग में "सुपरक्लास / सबक्लास" कहा जाता है।
ऑब्जेक्ट मॉडलर समस्या को आसानी से हल करने के लिए ऑब्जेक्ट मॉडल में निर्मित विरासत सुविधाओं का उपयोग करता है। उपवर्ग बस सुपरक्लास का विस्तार करते हैं।
रिलेशनल मॉडलर को एक समस्या का सामना करना पड़ता है। लाभ के अनुकरण के लिए तालिकाओं को कैसे डिजाइन किया जाए?
सरलतम तकनीक को सिंगल टेबल इनहेरिटेंस कहा जाता है । सभी प्रकार की कारों के बारे में डेटा कारों के लिए एक ही तालिका में वर्गीकृत किया गया है। एक कॉलम, car_type है, जो एक ही प्रकार की सभी कारों को एक साथ जोड़ते हैं। कोई भी कार एक से अधिक प्रकार की नहीं हो सकती। यदि कोई स्तंभ इलेक्ट्रिक कारों के लिए अप्रासंगिक है, तो उसे इलेक्ट्रिक कारों से संबंधित पंक्तियों में NULL छोड़ दिया जाएगा ।
यह सरल समाधान छोटे और सरल मामलों के लिए अच्छी तरह से काम करता है। बहुत सारे NULL की उपस्थिति स्टोरेज ओवरहेड में एक छोटा सा और अतिरिक्त ओवरहेड के लिए थोड़ा सा जोड़ता है। यदि ऊलजलूल स्तम्भों पर बूलियन परीक्षण किया जाता है, तो डेवलपर को SQL तीन-मूल्यवान तर्क सीखना पड़ सकता है । यह पहली बार में चकरा देने वाला हो सकता है, लेकिन किसी को इसकी आदत होती है।
एक और तकनीक है, जिसे क्लास टेबल इनहेरिटेंस कहा जाता है । इस डिज़ाइन में, उन सभी के लिए एक संयुक्त टेबल, कार के अलावा गैस_कार, इलेक्ट्रिक_कार और हाइब्रिड_कार के लिए अलग-अलग टेबल हैं। जब आप एक विशिष्ट प्रकार की कार के बारे में सभी डेटा चाहते हैं, तो आप उपयुक्त विशेष तालिका के साथ कार तालिका में शामिल होते हैं। इस डिज़ाइन में कम NULL हैं, लेकिन आप अधिक जुड़ाव करते हैं। यह तकनीक बड़े और अधिक जटिल मामलों में बेहतर काम करती है।
एक तीसरी तकनीक है जिसे साझा प्राथमिक कुंजी कहा जाता है। इस तकनीक का उपयोग अक्सर कक्षा तालिका विरासत के साथ संयोजन में किया जाता है। उपवर्गों के लिए विशेष तालिकाओं में उनकी प्राथमिक कुंजी, कार तालिका में संबंधित प्रविष्टि की प्राथमिक कुंजी की एक प्रति होती है। इस आईडी कॉलम को प्राथमिक कुंजी और विदेशी कुंजी दोनों घोषित किया जा सकता है।
इसमें थोड़ी अतिरिक्त प्रोग्रामिंग शामिल है जब नई कारों को जोड़ा जाना है, लेकिन यह जुड़ावों को सरल, आसान और तेज बनाता है।
सुपरक्लास और उपवर्ग वास्तविक दुनिया में हर समय होते हैं। डरो मत। लेकिन प्रदर्शन के लिए अपने प्रारंभिक डिजाइन का परीक्षण करें। यदि आपका पहला प्रयास सरल और सरल है, तो आप इसे गति देने के लिए ट्विक कर पाएंगे।