Theory
जो spreadsheet बढ़ नहीं सकती
Meera की एक sheet ने उसकी अच्छी सेवा की है, पर यह तनाव में है। Customers, orders, items, suppliers, सब एक साथ ठूँसे हुए। हर बार जब उसका भतीजा नई ज़रूरतों के लिए columns फिर से व्यवस्थित करता है, हर formula और chart टूट जाता है और फिर से बनाना पड़ता है।
यह वह दीवार है जिससे spreadsheets टकराती हैं: data और उसे इस्तेमाल करते programs एक साथ जुड़े हैं, एक बदलो, दूसरा टूटे।
Databases उस जोड़ को तोड़ने के लिए बने। जो गुण यह करता है उसका एक नाम है: data independence। इसीलिए Unit 3 मौजूद है।
Theory
जो डाक का पता कभी नहीं बदलता
आप एक दोस्त को उनके पते पर चिट्ठियाँ भेजते हैं। अपने घर के अंदर वे फ़र्नीचर फिर से लगा सकते हैं (चीज़ें कैसे store होती हैं वह बदलना) या यहाँ तक कि कमरे renovate कर सकते हैं (structure बदलना), और आपकी चिट्ठियाँ फिर भी पहुँचती हैं, आप पता कभी update नहीं करते। Data independence वही स्थिर पता है: applications काम करते रहते हैं जबकि storage और structure उनके नीचे बदलते हैं। Spreadsheet के पास ऐसा कोई buffer नहीं; layout को छुओ और चिट्ठियाँ लौट आती हैं।
Theory
दो किस्में
एक database, data कैसे store होता है और programs उसे कैसे देखते हैं, इनके बीच परतें रखता है, तो एक परत में बदलाव ऊपर तक नहीं फैलता। दो independences निकलती हैं:
- Physical data independence: data भौतिक रूप से कैसे store होता है वह बदलिए (एक index जोड़ो, तेज़ disk पर जाओ, files फिर से व्यवस्थित करो) logical design या programs बदले बिना। आसान वाली।
- Logical data independence: logical structure बदलिए (एक column जोड़ो, एक table को दो में बाँटो) users के views और applications तोड़े बिना। हासिल करना कठिन, क्योंकि programs सीधे logical structure पर टिके होते हैं।
At a glance
दो independences
| Type | क्या बदल सकता है | किससे छिपा |
|---|---|---|
| Physical | Storage: indexes, files, disk | Logical design + programs |
| Logical | Structure: columns/tables जोड़ना/बाँटना | User views + programs |
Quiz
एक DBA database को तेज़ SSDs पर ले जाता है और searches तेज़ करने को एक index जोड़ता है। कोई application code नहीं बदलता। यह कौन सी data independence है?
- Physical data independence, storage बदला पर logical design और programs अछूते
- Logical data independence, structure बदला
- कोई नहीं, कोई भी storage बदलाव programs तोड़ता है
- दोनों समान रूप से ज़रूरी हैं
Show the answer
Physical data independence, storage बदला पर logical design और programs अछूते
Indexes, disks और file organisation physical storage के मामले हैं। इन्हें logical schema या applications को छुए बिना बदलना physical data independence है, हासिल करने की आसान किस्म क्योंकि storage सबसे नीचे की परत पर बैठता है, programs से दूर। Logical independence में tables/columns खुद बदलना शामिल होता।
Think first
Logical कठिन क्यों है?
Physical independence आम तौर पर आसान है; logical independence हासिल करना मशहूर रूप से कठिन है। सोचिए कि एक program data के बारे में असल में क्या 'जानता' है। storage बदलने की तुलना में structure बदलना इसे तोड़ने की ज़्यादा संभावना क्यों रखता है?
Show the answer
Programs सीधे logical structure के विरुद्ध लिखे जाते हैं, वे ख़ास tables और columns का नाम लेते हैं ('items table से price column पढ़ो')। वह structure बदलो और program के references अब मेल न खाएँ। इसके उलट, storage programs जो कभी देखते हैं उसके नीचे है, तो यह आज़ादी से बदल सकता है। Programs इस पर निर्भर हैं कि data क्या है (logical), इस पर नहीं कि वह कहाँ बैठता है (physical), ठीक यही वजह है कि logical independence को बचाना कठिन है।
Watch out
Marks कहाँ कटते हैं
दोनों को बदलना: physical storage बदलाव छिपाता है; logical structure बदलाव छिपाता है। यह भूलना कि logical independence हासिल करना कठिन है (एक पसंदीदा एक-mark बिंदु)। और यह मत कहिए कि एक spreadsheet में data independence है, इसका अभाव ही ठीक वह समस्या है जिसे databases हल करते हैं। Exams इसे 'data independence की दो किस्में हर एक के उदाहरण के साथ परिभाषित करें' के रूप में पूछते हैं।
Theory
पूरे unit का विषय
आगे का हर topic, DBMS components, architecture, models, keys, normalization, दरअसल एक सवाल का जवाब है: हम data को ऐसे कैसे store करें कि यह बढ़ते हुए भरोसेमंद और बदलने लायक बना रहे? Meera की टूटती spreadsheet समस्या-कथन है; database समाधान है, topic-दर-topic खुलता। आगे: वे चार components जो किसी भी database system को बनाते हैं।
Summary
Key takeaways
- Data independence आपको storage या structure बदलने देती है बिना data इस्तेमाल करते programs को तोड़े।
- Physical data independence logical design और programs से STORAGE बदलाव (indexes, files, disk) छिपाती है।
- Logical data independence user views और programs से STRUCTURE बदलाव (columns/tables जोड़ना/बाँटना) छिपाती है।
- Logical independence कठिन है क्योंकि programs सीधे logical structure पर निर्भर हैं।
- यह buffering spreadsheets/files पर databases का एक मुख्य फ़ायदा है।
- याद रखने का hook: डाक का पता स्थिर रहता है जबकि घर अंदर से फिर से व्यवस्थित होता है।