2010-02-06 8 views
6

मैं इस विषय के माध्यम से गया और यह लिंक एक ही समय में काफी उपयोगी और सरल पाया। Storing matrices in a relational database लेकिन तुम मुझे जानते तरीके के रूप मेंमैट्रिक्स और डेटाबेस

A B C D 
E F G H 
I J K L 

[A B C D E F G H I J K L] 

उल्लेख किया है, तो कृपया कर सकते हैं सबसे अच्छा और डेटाबेस में मैट्रिक्स तत्वों को संग्रहीत करने का सरल या यहाँ तक कि विश्वसनीय तरीका है। इसके अलावा मुझे दो matrices गुणा करने और ऑपरेशन गतिशील बनाने की जरूरत है। तो क्या डेटा का भंडारण इस कार्य के लिए कोई समस्या पैदा करेगा?

उत्तर

0

डेटाबेस में मैट्रिक्स तत्वों को संग्रहीत करने का सबसे अच्छा और सरल या भरोसेमंद तरीका है। इसके अलावा मुझे दो matrices गुणा करने और ऑपरेशन गतिशील बनाने की जरूरत है। तो क्या डेटा का भंडारण इस कार्य के लिए कोई समस्या पैदा करेगा?

मैं कहूंगा कि दोनों दृष्टिकोण वैध हैं, लेकिन दूसरा आपके द्वारा लिखे गए अनुसार पर्याप्त नहीं है। 1 डी सरणी के रूप में मैट्रिक्स को संग्रहीत करने के लिए आपको प्रत्येक तत्व की पंक्तियों या पंक्तियों (पंक्ति, कॉल) इंडेक्स की लंबाई जैसी कुछ अन्य जानकारी होनी चाहिए। यह आम तौर पर स्पैर मैट्रिक्स के लिए किया जाता है, जहां विकर्ण के दोनों तरफ क्लस्टर किए गए मूल्यों के आस-पास शून्यों के बहुत सारे शून्य होते हैं।

एक डेटाबेस में मैट्रिक्स दो अलग-अलग बातें बने और स्मृति में उस पर काम कर रहे हैं।

गुणा करने की आवश्यकता जैसे कार्य (पंक्ति, कर्नल) इंडेक्स। एक 2 डी सरणी के रूप में मैट्रिक्स को संग्रहीत करना मतलब है कि आपके पास उन्हें होगा, इसलिए कोई अन्य जानकारी की आवश्यकता नहीं है। 1 डी सरणी को भी इस जानकारी की आवश्यकता है, इसलिए आपको इसे आपूर्ति करना होगा।

लाभ स्पैस मैट्रिक्स के लिए 1 डी सरणी में स्विंग करता है। आपको उस मामले में बैंडविड्थ के बाहर शून्य मानों को स्टोर करने की आवश्यकता नहीं है, लेकिन आपके ऑपरेशन जैसे अतिरिक्त और गुणा कोड के लिए अधिक जटिल हो जाते हैं।

0

मुझे लगता है कि यह काफी है कि कैसे आप अपने आवेदन में मैट्रिक्स का उपयोग करना चाहते पर निर्भर करता है।

, केवल एक ही आवेदन के लिए दृढ़ता के लिए डीबी है गति महत्वपूर्ण है, और आकार पहले से ज्ञात नहीं जा सकता है? अपनी खुद की धारावाहिक योजना बनाएं, और बाइनरी ब्लॉब को सहेजें।

अनुप्रयोगों के बीच में साझा करने, पहले से ज्ञात नहीं आकार के साथ के लिए डीबी है? अल्पविराम सीमांकित सूची का प्रयोग करें।

आप डेटा अखंडता, प्रकार सुरक्षा के साथ संबंध है, और व्यक्तिगत कोशिकाओं क्वेरी करने के लिए चाहते हैं? फिर (पंक्ति, कॉल, सेल मान) स्कीमा का उपयोग करें।

क्या आप जानते हैं कि आपके matrices निश्चित आकार के हैं और अपेक्षाकृत छोटे हैं, उदाहरण के लिए 4X4 रूपांतरण matrices, और आपके पास डीबी में जो भी तत्व है, उसके साथ 1 से 1 संबंध होगा? फिर आप वास्तव में लाइन में रखे, अपनी मेज में 16 पंक्तियां हो सकती है।

अपने उपयोग के मामलों और प्रयोग के बारे में सोचें!

1

PostgreSQL में आप वास्तव में, बहुआयामी सरणियों है अपने स्वयं के प्रकार को परिभाषित करने और उन प्रकार पर अपने खुद के कार्यों को परिभाषित कर सकते हैं। उदाहरण के लिए एक बस कर सकता है:

CREATE TABLE tictactoe (
    squares integer[3][3] 
); 

कैसे अपने खुद के प्रकार बनाने के लिए पर जानकारी के लिए The PostgreSQL manual देखें।

संबंधित मुद्दे