कॉलम बनाम फ़ील्ड: क्या मैं इन शर्तों का गलत तरीके से उपयोग कर रहा हूं?


20

मुझे यहां शर्मिंदगी महसूस हो रही है, मैंने हमेशा "कॉलम" और "फ़ील्ड" शब्दों का पूरी तरह से परस्पर उपयोग किया है, जिसने हाल ही में तकनीकी चर्चा में कुछ भ्रम पैदा किया है।

मुझे बताया गया था, हालांकि, यह सही नहीं था, कि यह होना चाहिए (स्प्रेडशीट शब्दावली में प्रत्येक शब्द का अनुवाद करना, डेटा प्रकारों की अनदेखी करना और अन्य सभी सामान जो डेटाबेस को उपयोगी बनाते हैं):

  • डेटाबेस कॉलम: एक स्प्रेडशीट कॉलम की तरह
  • डेटाबेस रिकॉर्ड: एक स्प्रेडशीट पंक्ति की तरह
  • डेटाबेस फ़ील्ड: एक स्प्रेडशीट "सेल" की तरह (एक विशिष्ट पंक्ति का एक विशिष्ट स्तंभ)

क्या यह सही है? मैं शपथ ले सकता था कि स्तंभ और क्षेत्र का उपयोग उससे कहीं अधिक परस्पर रूप से किया जाता है। मैं निश्चित रूप से रहा हूं।

इसलिए हम फ़ील्ड को किसी तालिका में नहीं जोड़ते हैं , हम एक तालिका में कॉलम जोड़ते हैं , और रिकॉर्ड के भीतर डेटा के बारे में बात करते समय फ़ील्ड केवल प्रासंगिक होते हैं?

कॉलम बनाम फ़ील्ड पर अन्य विचार?

संपादित करें: स्पष्ट करने के लिए, वर्तमान संदर्भ MS SQL सर्वर है। SQL सर्वर से पहले मेरी पृष्ठभूमि एमएस एक्सेस थी, जो इन शर्तों के मेरे उपयोग को प्रभावित कर सकती है।


कुछ और संदर्भ के लिए: भ्रम एक अलग SO पोस्ट के टिप्पणी अनुभाग में था: stackoverflow.com/questions/1398453/…
ब्रैडेक


Postgres के साथ इसे अलग करना महत्वपूर्ण है। एक एकल पंक्ति में कई रिकॉर्ड हो सकते हैं। और एक कॉलम में कई फ़ील्ड हो सकते हैं (एक रिकॉर्ड के अंदर)
a_horse_with_no_name

जवाबों:


31

रिलेशनल डेटाबेस सिद्धांत में फ़ील्ड शब्द का उपयोग शामिल नहीं है। डॉ। ईएफ कोडड, जिन्होंने आरडीबीएमएस के लिए सैद्धांतिक आधार प्रदान करने वाले पत्रों की श्रृंखला लिखी है, ने कभी इस शब्द का उपयोग नहीं किया। अगर आप जांचना चाहते हैं तो आप उनके सेमिनल 1970 के पेपर ए रिलेटेड मॉडल ऑफ़ डेटा फॉर बिग शेयरेड डेटा बैंक पढ़ सकते हैं ।

डोमेन, टेबल, एट्रीब्यूट, की और टपल जैसे शब्दों का उपयोग किया जाता है। इसका एक कारण, यह है कि उनके कागजात काफी हद तक संबंधपरक बीजगणित से संबंधित थे, और जिस तरह से एक विशेष कार्यान्वयन एक डेटाबेस में एक तालिका को परिभाषित करेगा, कोडड द्वारा महत्वपूर्ण नहीं माना गया था। वेंडर बाद में मांस निकालेंगे। लोगों को यह भी समझना होगा कि ऐतिहासिक रूप से, आरडीबीएमएस मौजूदा पदानुक्रमित और नेटवर्क डेटाबेस से विकसित हुआ है जो उन्हें भविष्यवाणी करते हैं, और आरडीएमबीएस के आंतरिक कामकाज को अभी भी डेटा संगठन और भंडारण से संबंधित होना चाहिए।

आम उपयोग में, और आप आसानी से इस बस Googling का एक सा करके सत्यापित कर सकते हैं, फील्ड्स और स्तंभों हैं एक ही बात।

PC डेटाबेस जैसे DBase, एक्सेस और फिल्म निर्माता आमतौर पर "कॉलम" के बजाय "फ़ील्ड" का उपयोग करते हैं। "गुण" एक और शब्द है जिसका इस्तेमाल परस्पर किया जा सकता है।

उदाहरण के लिए, यहां टेबल पर " फ़ील्ड " जोड़ने पर एमएस एक्सेस मैनुअल का लिंक दिया गया है । यह देखना स्पष्ट है कि एमएस एक्सेस में एक "फ़ील्ड" एक "कॉलम" के बराबर है।

वही Dbase और फिल्म निर्माता प्रो के लिए है।

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

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

उस कहा के साथ, परियोजनाओं और टीमों को अक्सर भ्रम की स्थिति से बचने के लिए परियोजना के भीतर विशेष शब्दावली का उपयोग कैसे करना है, इसकी समझ के लिए काम करना पड़ता है।

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


हाँ, प्लेटफ़ॉर्म प्रासंगिक हो सकता है, मुझे यकीन है कि विभिन्न डेवलपर्स वास्तव में शर्तों को थोड़ा अलग तरीके से उपयोग कर सकते हैं। मेरे विशिष्ट मामले में, यह MS SQL सर्वर है, यदि यह मायने रखता है।
ब्रैडेक

जो सेल्को जैसे लोग असहमत हैं कि फ़ील्ड और कॉलम एक ही चीज़ हैं।
a_horse_with_no_name

3
मैं आरडीबीएमएस अभ्यास में रुचि रखने वाले किसी के लिए जो की किताबें सुझाऊंगा। कई बार उनसे मिलने के बाद, यह मुझे आश्चर्यचकित नहीं करता है कि वे अलग-अलग चीजों का मतलब करने के लिए क्षेत्र के उपयोग के कारण होने वाले भ्रम से बचने के पक्ष में सख्ती से करेंगे। यह शब्द के इतिहास को नहीं बदलता है, और तथ्य यह है कि लोगों ने डेटाबेस में कॉलम के लिए "फ़ील्ड" का उपयोग किया है जो लोगों को पीसी डेटाबेस शब्दावली को अपनाने से रोकने के लिए उनकी खोज से पहले है।
14:05

कभी-कभी एक ही विक्रेता शब्दावली में एक भ्रम ला सकता है। उदाहरण के लिए, Microsoft ने यहां कहा "एक स्तंभ एक तालिका में लंबवत संरेखित कोशिकाओं का संग्रह है। एक क्षेत्र एक तत्व है जिसमें जानकारी का एक टुकड़ा संग्रहीत किया जाता है, जैसे कि प्राप्त क्षेत्र। आमतौर पर, तालिका में एक स्तंभ में मान होते हैं। एक अकेला मैदान। " बेशक, यहां संदर्भ आउटलुक है, हालांकि लोग इस तरह के बयान से काफी आसानी से प्रभावित हो सकते हैं। msdn.microsoft.com/en-us/library/office/ff866450.aspx
ड्रमस्टैना

8

पुरानी SQL: 92fields डेटाटाइम आइटम के घटकों के रूप में संदर्भित होती है :

"डेडटाइम आइटम में फ़ील्ड", उन क्षेत्रों को निर्दिष्ट करता है जो दिनांक समय मान बना सकते हैं; एक डेटाइम मान उन फ़ील्ड्स के सबसेट से बना होता है

यहाँ के क्षेत्र वर्ष, महीने और इसी तरह के हैं ... और यह शब्द fieldबाकी दस्तावेज़ों में कोई अन्य अर्थ नहीं है।

नई SQL: 2003 मानक में यह है:

कॉलम, फ़ील्ड, और विशेषताएँ

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

और बादमें:

एक फ़ील्ड F का वर्णन फ़ील्ड विवरणक द्वारा किया जाता है। फ़ील्ड डिस्क्रिप्टर में शामिल हैं:
- फ़ील्ड का नाम।
- घोषित प्रकार के F का डेटा टाइप डिस्क्रिप्टर
- पंक्ति प्रकार के भीतर F की क्रमिक स्थिति जो बस इसमें समाहित है।

स्तंभ के साथ यह विपरीत, जिसे इस प्रकार परिभाषित किया गया है:

एक कॉलम सी एक कॉलम डिस्क्रिप्टर द्वारा वर्णित है। कॉलम डिस्क्रिप्टर में शामिल हैं:
- कॉलम का नाम।
- क्या कॉलम का नाम कार्यान्वयन-निर्भर नाम है।
- यदि स्तंभ किसी डोमेन पर आधारित है, तो उस डोमेन का नाम; अन्यथा, सी के घोषित प्रकार के डेटा टाइप डिस्क्रिप्टर
- सी का मान, यदि कोई हो,
- सी की अशक्तता विशेषता
- तालिका के भीतर सी की क्रमिक स्थिति जिसमें यह शामिल है।
... (और अधिक)

तब बाद में फिर से, जब तालिकाओं का परिचय:

एक तालिका एक या अधिक कॉलम वाली पंक्तियों का एक संग्रह है। एक पंक्ति एक पंक्ति प्रकार का एक मूल्य है। एक ही तालिका की प्रत्येक पंक्ति में समान पंक्ति होती है। किसी तालिका में प्रत्येक पंक्ति के i-th फ़ील्ड का मान तालिका में उस पंक्ति के i-th स्तंभ का मान है । पंक्ति डेटा की सबसे छोटी इकाई है जिसे तालिका में डाला जा सकता है और तालिका से हटाया जा सकता है।

(जोर मेरा)। यह आपके द्वारा प्रश्न में लिखे गए समर्थन का प्रतीत होता है: एक विशिष्ट पंक्ति का एक विशिष्ट स्तंभ


6

और कितने देवदूत पिन के सिर के चारों ओर नृत्य कर सकते हैं?

जिस व्यक्ति ने आपको सही किया वह खुद ही सही हो सकता है।

  • सारणी = संबंध

  • रो = टुपल

  • स्तम्भ = गुण

  • डोमेन = डेटा प्रकार

यहां रिलेशनल डेटाबेस पर विकिपीडिया प्रविष्टि देखें ।

मैंने एक एयरलाइन के लिए काम किया और शब्द "उड़ान" का उपयोग तीन अलग-अलग तरीकों से किया जा सकता है, इस पर निर्भर करता है कि आप पायलट / फ्लाइट-अटेंडेंट, इंजीनियर या मार्केटिंग से बात कर रहे थे।

  • पायलट / परिचारक: एक "उड़ान" बेस से और पीछे (यानी दो टेक-ऑफ और दो लैंडिंग) थी,
  • इंजीनियर: एक टेक-ऑफ और एक लैंडिंग, परीक्षण, मरम्मत, प्रशिक्षण (यानी एक ही हवाई अड्डे पर वापस एक हवाई अड्डे) या एक "पैर", यानी एक हवाई अड्डे से दूसरे में हो सकता है - क्या "नागरिकों" को आम तौर पर एक उड़ान कहेंगे, जैसा कि "मैं कल अपनी उड़ान घर पकड़ रहा हूँ"),

  • विपणन: एक अनुबंध के संदर्भ में एक दिए गए हवाई अड्डे के लिए "से" "उड़ानों" की छह महीने (आमतौर पर ऑन-सीजन या ऑफ-सीज़न) श्रृंखला।

स्प्रेडशीट सादृश्य 99.99% मामलों के लिए पर्याप्त से अधिक है, यहां तक ​​कि तकनीकी रूप से तकनीकी भाषण में (जब तक कि कोई संबंधपरक बीजगणित का प्रोफेसर नहीं है)। क्या जिस व्यक्ति ने आपको सही किया है वह "जिसे" सही ढंग से शब्द का उपयोग करता है 99.99% लोग नहीं करते हैं और यह वास्तव में मायने नहीं रखता है।


2

मैं आम तौर पर "फ़ील्ड" और "कॉलम" का परस्पर उपयोग करता हूं, हाल ही में "कॉलम" की ओर झुकाव। हालांकि मैंने "डेटा" को इंगित करने के लिए अकेले "फ़ील्ड" शब्द नहीं सुना है। मैंने "फ़ील्ड" या "कॉलम" को इंगित करने के लिए "विशेषता" शब्द भी नहीं सुना है। एक कॉलम / फ़ील्ड में विशेषताएँ हैं, उदाहरण के लिए FieldInfo क्लास के माध्यम से सुलभ।

मेरा मानना ​​है कि "कॉलम" केवल शब्दावली का विकास है। डेस्कटॉप DBs (xBASE, MSAccess) आमतौर पर "फ़ील्ड" का उपयोग करते हैं। M204 "फ़ील्ड" का उपयोग करता है। इस "फ़ील्ड" शब्दावली को MSOffice xml और अन्य में ले जाया गया था। Oracle के लिए डॉक्स (यह मुझे कोई और लिंक, सॉरी पोस्ट नहीं करने देगा) और MSSQL का उपयोग "फ़ील्ड" और "कॉलम" इंटरचेंजहैब भर में करता है। Sybase (अब एक SAP कंपनी) मुख्य रूप से "कॉलम" का उपयोग करता है, लेकिन कभी-कभी अपने प्रलेखन में "फ़ील्ड"।

जब तक आपका कार्यसमूह एक शब्द पर सहमत होता है, तब तक कोई फर्क नहीं पड़ता कि कौन सा है। यह एक "किसी अन्य नाम से गुलाब" सिंड्रोम है।


1
आपने "विशेषता", "टपल", "संबंध" शब्द नहीं सुने (या पढ़े ) नहीं हैं ?
ypercube y

@ypercube: शायद दिन-प्रतिदिन के विकास के संदर्भ में GDD का मतलब है।
बजे

2

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

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

खेतों को प्राप्त करने वाला तर्क कुछ ऐसा है जो समय के साथ बदल सकता है। उदाहरण के लिए, एक कर्मचारी सुसान जोन्स के रूप में काम पर रखा जाता है और उसे स्टोर # 101 में बिक्री क्लर्क के रूप में 12/01/2010 को काम पर रखा गया था जो बिल एंडरसन को स्टोर मैनेजर के रूप में रिपोर्ट करता है। यह एक प्रगतिशील कंपनी होने के नाते उन्हें प्रत्येक कर्मचारी को एक संरक्षक भी सौंपा गया है। सुज़ैन की मेंटर मैरी फिलिप्स हैं। मैरी फिलिप्स एक स्टोर मैनेजर है, लेकिन वह उस दुकान के लिए एक क्षेत्रीय प्रबंधक भी है जिसमें सुसान काम करता है। 11/10/2011 को सुसान को स्टोर मैनेजर के रूप में पदोन्नत किया गया था। हमें नहीं पता कि बिल का क्या हुआ लेकिन सुसान अब स्टोर मैनेजर है।

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

हम आकाओं के लिए कर्मचारी संख्या के साथ संरक्षक की एक तालिका है और कर्मचारी वे संरक्षक संबंध की शुरुआत और अंत का वर्णन करने के साथ साथ तारीखों का उल्लेख कर रहे हैं।

हमारे पास क्षेत्र के लिए एक नाम है जिसमें क्षेत्र और एक निर्दिष्ट प्रबंधक संख्या है।

हमारे पास पता, विवरण, क्षेत्र और प्रबंधक संख्या के साथ स्थानों की एक और तालिका है।

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

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