डेटा स्केलर होने पर इसका क्या अर्थ है?


78

मुझे नहीं पता कि स्केलर का वास्तव में क्या मतलब है, लेकिन मैं यह देखने की कोशिश कर रहा हूं कि क्या मैं इसके बारे में सही तरीके से सोच रहा हूं। क्या स्केलर मनमानी से संबंधित है जहां डेटा का प्रकार किसी भी प्रकार का हो सकता है, या एक सिस्टम यह जानने में सक्षम नहीं है कि डेटा पहले से क्या है।


मजेदार तथ्य: एक्सएमएल प्लेटफॉर्म मैं अपने दिनों को हाल ही में (एक्सवाईक्यू का उपयोग करके) इन परमाणु मूल्यों को कॉल करना पसंद करता हूं। मुझे लगता है कि यह निकटता से संबंधित है, संदर्भ / खोज शब्दों के लिए टिप्पणी जोड़ रहा है।
चार्ल्स रॉस

जवाबों:


112

शब्द "स्केलर" रैखिक बीजगणित से आता है , जहां इसका उपयोग किसी वेक्टर या मैट्रिक्स से एकल संख्या को अलग करने के लिए किया जाता है। कंप्यूटिंग में अर्थ समान है। यह एक पूर्णांक की तरह एक मान को अलग करता है या एक सरणी की तरह डेटा संरचना से तैरता है। पर्ल में यह अंतर बहुत ही महत्वपूर्ण है, जहां $sigil (जो 's' जैसा दिखता है) का उपयोग स्केलर वैरिएबल और एक @sigil को निरूपित करने के लिए किया जाता है (जो 'a' 'जैसा दिखता है) एक ऐरे को दर्शाता है। इसका तत्व के प्रकार से कोई लेना-देना नहीं है। यह एक संख्या, वर्ण, स्ट्रिंग या ऑब्जेक्ट हो सकता है। स्केलर कहलाने के लिए जो मायने रखता है, वह यह है कि उनमें से एक है।


6
यह एक अच्छा उदाहरण है कि एक ही शब्द का अलग-अलग संदर्भों में अलग-अलग अर्थ हो सकता है। सी या पास्कल जैसी भाषाओं में, अदिश सरल "निर्माण खंड" की तरह प्रकार को संदर्भित करता है intया char, नहीं वस्तुओं की तरह संरचित प्रकार (वहाँ केवल एक ही है, भले ही)।
कालेब

2
मैं यह भी जोड़ूंगा कि सरणियों के अलावा, एक स्केलर एक संरचना या वर्ग जैसी यौगिक डेटा संरचना नहीं है। एक सरणी होने का अंतर एक ही प्रकार के कई तत्व हैं, जबकि एक संरचना मनमाने प्रकार के कई तत्व हैं।

1
इसके अलावा, एक स्ट्रिंग एक गैर-स्केलर मान हो सकता है। पर्ल जैसी भाषाएं इसे एक अदिश के रूप में मानती हैं, लेकिन किसी भी सी-आधारित भाषा में मैं तर्क देता हूं कि यह एक सरणी या वस्तु है।

1
मैं पर्ल पता नहीं है @Karl लेकिन आप स्पष्ट एक क्या है कृपया कर सकते हैं sigil ?
गीक

2
@ Geek, यह एक प्रतीक है जिसे आप एक चर से पहले डालते हैं, जैसे $variableविकिपीडिया पृष्ठ देखें ।
कार्ल ब्वेलफेल्ट

27

स्केलर बस एक वैरिएबल है जो एक अलग मूल्य रखता है । इस चर्चा के प्रयोजनों के लिए, मान लें कि संख्याओं के संग्रह के बजाय एक स्केलर एक एकल संख्या है।

उदाहरण के लिए SQL क्वेरी का परिणाम जो टपल के बजाय एक संख्या देता है, जैसा कि SQLCommand वर्ग में ExecuteScalar () विधि है , जो क्वेरी द्वारा लौटाए गए परिणाम सेट में पहली पंक्ति के पहले कॉलम का मान लौटाता है। इसका उपयोग आम तौर पर एक कुल मूल्य जैसे COUNT या AVERAGE, एक नए रिकॉर्ड की आईडी, या एक क्वेरी द्वारा संसाधित रिकॉर्ड की संख्या प्राप्त करने के लिए किया जाता है।


19

कार्ल बेवेलफेल्ट के शानदार जवाब के लिए एक पूरक महामारी,:

इसके बारे में सोचने का एक सरल तरीका है, "क्या यह एक पैमाने पर हो सकता है?"

एक पूर्णांक एक पैमाने पर हो सकता है।

एक निश्चित आकार का पूर्णांक एक पैमाने पर हो सकता है, जैसे -2147483648 से 2147483647।

एक वास्तविक संख्या एक पैमाने पर हो सकती है।

एक चरित्र, बूलियन, या निश्चित-सटीक दशमलव सभी एक पैमाने पर हो सकते हैं। यहां तक ​​कि एक तार एक पैमाने पर हो सकता है (हम छंटाई में इस तरह का उपयोग करते हैं)।

4. "स्केलर"।

एक डेटाबेस पंक्ति एक पैमाने पर नहीं हो सकती है। एक जटिल संख्या एक पैमाने पर नहीं हो सकती। ईमेल संदेश का प्रतिनिधित्व करने वाली वस्तु पैमाने पर नहीं हो सकती। एक सरणी, वेक्टर या मैट्रिक्स एक पैमाने पर नहीं हो सकता।


10
यदि एक स्ट्रिंग एक पैमाने पर हो सकती है, तो एक सरणी क्यों नहीं? "यह एक पैमाने पर हो सकता है?" सहज परिणाम नहीं देता है, मेरे लिए कम से कम।
VBCPP

2
@VBCPP जहां {1, 2} वाले पैमाने पर {2, 1} बैठता है? पहले और बादमे? अब, दी गई हम एक आदेश लागू कर सकते हैं, लेकिन एक स्पष्ट आदेश नहीं है। यह भी ध्यान में रखें, कि मैं इसके बारे में सोचने के लिए एक आसान तरीका पेश करने की कोशिश कर रहा हूं (कार्ल बेवफेल्डट का जवाब एक अधिक सटीक उत्तर देने में अच्छा काम करता है, और मैं इसे बेहतर बनाने की कोशिश नहीं करूंगा, बस इसे लागू करना होगा)। उस ने कहा, यहाँ संदर्भ का एक तत्व है। संदर्भ के आधार पर एक स्ट्रिंग को स्केलर माना जा सकता है या नहीं; एसक्यूएल में यह एक अच्छे कारण के लिए स्केलर है, सी में यह एक अच्छे कारण के लिए भी नहीं है।
जॉन हैना

7
यह सिर्फ गलत है
एंड्रयू मेडिको

2
मैं असहमत हूं कि यह "सिर्फ गलत" है, जाहिर है, हालांकि मुझे लगता है कि कार्ल बेवफेल्ट को टिक होना चाहिए। यह एक महामारी है जो टिप्पणी करने के लिए बहुत लंबा है, यही बेहतर उत्तर है।
जॉन हैना

2
मुझे लगता है कि "यह सिर्फ गलत है" टिप्पणी इस विचार से आती है कि उत्तर का कोई मतलब नहीं है और @VBCPP के प्रश्न के प्रति आपकी प्रतिक्रिया उसके प्रश्न का उत्तर नहीं देती है। मुझे यकीन है कि महामारी का विचार पसंद है, लेकिन आपको अभी भी इसके महत्व को समझाने की आवश्यकता है, उदाहरण के लिए, एक पूर्णांक एक पैमाने पर। हो सकता है कि टीवी में बिल्ली डालने की बात हो रही हो।
टर्बोलेडेन

10

जैसा कि कंप्यूटिंग में कई शब्दों के साथ होता है; शब्द की उत्पत्ति अधिक भौतिक गुणों से संबंधित है। स्केलर शब्द कंप्यूटिंग में अपेक्षाकृत पुराना है। इसकी परिभाषा इन दिनों कम कठोर है। जब आप कंप्यूटर मेमोरी में डेटा स्टोर करते हैं तो यह डेटा या तो एक एड्रेस (1 बाइट *) में फिट हो सकता है या नहीं। जब यह किया, इसे स्केलर कहा जाता था, जब यह नहीं था इसे एक समग्र कहा जाता था। मुख्य रूप से क्योंकि CPU एक समय में केवल एक पता / डेटा का टुकड़ा (= 1 बाइट) संभाल सकते थे। जैसा कि @Karl Bielefeldt ने कहा है; यह शब्द वास्तव में बीजगणित से लिया गया था।

हम एक स्ट्रिंग को स्ट्रिंग कहते हैं क्योंकि यह एक स्ट्रिंग है। एक चार / एक स्केलर था, जबकि एक स्ट्रिंग है / एक समग्र था। कई पतों में 1 टुकड़ा डेटा (एक डेटा) को संग्रहीत करने से लाइन कुछ हद तक धुंधली हो जाती है। इसे इस तरह से सोचें: जब एक सीपीयू एक निर्देश में डेटम प्रोसेस कर सकता है, तो यह स्केलर था।

इन दिनों एक अदिश राशि कोई भी विलक्षण होती है, और एक विलक्षण मान अलग-अलग भाषाओं में अलग-अलग परिभाषित किया जा सकता है। पूर्णांक, फ्लोट, चार्ट, स्ट्रिंग्स, बूलियन और एनम इन दिनों सबसे अधिक भाग माने जाने वाले स्केलर हैं। सरणी, सूचियाँ, पेड़, वस्तुएं आदि नहीं हैं।

(* मैं कहता हूं कि चीजों को स्पष्ट रखने के लिए 1 बाइट, लेकिन तकनीकी रूप से मैं उन दिनों के बारे में बात कर रहा हूं जब 6 बिट्स आमतौर पर पंच कार्ड पर उपयोग किए जाते थे उदाहरण के लिए और बाद में चुंबकीय स्ट्रिप्स पर)

डिस्क्लेमर: मैं इंटरनेट पर इसका कोई संदर्भ नहीं पा रहा हूं, मुझे स्कूल और पुरानी किताबों से जानकारी मिली, जिनमें से (मुझे लगता है): 1944 से मैथमेटिकल टेबल्स और कंपटीशन के लिए अन्य एड्स। यह कहा जा रहा है, मेरी मेमोरी है यह नहीं हुआ करता था, इसलिए अगर कोई भी मेरे जवाब को संशोधित / पुष्टि या अस्वीकार कर सकता है, तो यह अच्छा होगा।


9

एक स्केलर एक साधारण एकल संख्यात्मक मान है (1, 2/3, 3.14, आदि के रूप में), आमतौर पर एक सरणी, संरचना, वस्तु, जटिल वेक्टर () के विपरीत पूर्णांक, निश्चित बिंदु, या फ्लोट (एकल या डबल)। वास्तविक प्लस काल्पनिक या परिमाण प्लस कोण घटक), उच्च आयामी वेक्टर या मैट्रिक्स (आदि) डेटा प्रकार जिसमें एक से अधिक संख्यात्मक मान होते हैं।

हालांकि, ध्यान दें कि एक बहुत ही जटिल डेटा प्रकार का प्रकार जिसे चपटा भी किया जा सकता है और कंप्यूटर मेमोरी के 8-बिट बाइट्स में प्रतिनिधित्व किया जा सकता है, को एक एकल बहुत लंबे / बड़े बाइनरी स्केलर नंबर के रूप में भी दर्शाया जा सकता है। ट्यूरिंग ने केवल एक स्केलर नंबर के रूप में पूरे कंप्यूटर प्रोग्राम का प्रतिनिधित्व करने के लिए इस तकनीक का उपयोग किया।


यह गैरकानूनी संख्या और अवैध अपराधों जैसी अवधारणाओं की अनुमति देता है - "अवैध" कार्यक्रमों का संख्यात्मक प्रतिनिधित्व।
एंड्रयू

एक स्केलर का संख्यात्मक होना जरूरी नहीं है। एक स्ट्रिंग, बूलियन या दिनांक / समय भी एक अदिश राशि है।
david.pfx

तो क्या होगा अगर मैं कई स्केलर के क्षेत्रों के आधार पर एक तारीख जटिल वर्ग बनाता हूं (उदाहरण के लिए महीने के लिए एक इंट , एक वर्ष और एक दिन के लिए)?
पियरे अरलाउड

1
@ david.pfx: वर्णों के एक सरणी के रूप में देखा जाने वाला एक स्ट्रिंग स्केलर नहीं है।
MSalters

1
@MSalters: बेशक, और बिट्स की एक सरणी के रूप में देखा गया एक पूर्णांक भी नहीं है। एकल अपरिवर्तनीय अनाम मान के रूप में संग्रहीत और पुनर्प्राप्त की जा सकने वाली कोई भी चीज़ एक अदिश राशि है और अधिकांश भाषाएं आपको स्ट्रिंग, दिनांक, जटिल, बिंदु आदि के साथ ऐसा करने की अनुमति देती हैं, भले ही उन्हें अन्य तरीकों से भी देखा जा सकता हो।
david.pfx

1

स्केलर शब्द लैटिन शब्द स्केलारिस से निकला है, जो कि स्कैला का एक विशेषण रूप है ("सीढ़ी" के लिए लैटिन)। अंग्रेजी शब्द "स्केल" भी स्कैला से आता है। स्रोत

स्केलर एक वैरिएबल है जो एक अलग मूल्य रखता है।

उदाहरण के लिए:

स्केलर वेरिएबल : कहें कि आप विभिन्न छात्रों के नामों को वेरिएबल्स के एक समूह के रूप में दर्शाने की कोशिश कर रहे हैं। प्रत्येक वैयक्तिक चर अनुसरण के अनुसार एक अदिश चर है

NAME01="Zara"
NAME02="Qadir"
NAME03="Mahnaz"
NAME04="Ayan"
NAME05="Daisy"

स्केलर फ़ंक्शंस : SQL स्केलर फ़ंक्शन इनपुट मूल्य के आधार पर एक एकल मान लौटाते हैं।

UCASE() - Converts a field to upper case
LCASE() - Converts a field to lower case
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.