DBMS — MCQ Practice

Hindi aur English dono mein practice karo — click karo answer check karne ke liye

📚 2982 Questions 🌐 Hindi + English ✅ Free
भाषा / Language:
2982 questions
1666
EN + हिं Easy
GB What is a phantom read anomaly and what does SERIALIZABLE isolation add beyond REPEATABLE READ to prevent it?
IN फैंटम रीड विसंगति क्या है और इसे रोकने के लिए सीरियलाइज़ेबल आइसोलेशन रिपीटेबल रीड से परे क्या जोड़ता है?
A
Reading ghost records from deleted tables हटाई गई तालिकाओं से भूत रिकॉर्ड पढ़ना
B
A phantom record that exists in the log but not the table एक प्रेत रिकॉर्ड जो लॉग में मौजूद है लेकिन तालिका में नहीं
C
Reading data from a crashed transaction दुर्घटनाग्रस्त लेनदेन से डेटा पढ़ना
D
Within one transaction executing the same range query twice returns different sets of rows because another committed transaction inserted/deleted rows in the query range; SERIALIZABLE adds range locking (predicate locks) or snapshot validation beyond REPEATABLE READ which only locks existing rows एक लेन-देन के भीतर एक ही श्रेणी की क्वेरी को दो बार निष्पादित करने से पंक्तियों के अलग-अलग सेट मिलते हैं क्योंकि किसी अन्य प्रतिबद्ध लेनदेन ने क्वेरी सीमा में पंक्तियों को डाला/हटा दिया है; सीरियलाइज़ेबल रिपीटेबल रीड से परे रेंज लॉकिंग (प्रीडिकेट लॉक्स) या स्नैपशॉट सत्यापन जोड़ता है जो केवल मौजूदा पंक्तियों को लॉक करता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Phantom: T1: SELECT WHERE salary>50K -> 10 rows. T2: INSERT salary=60K, commits. T1: SELECT WHERE salary>50K -> 11 rows (new phantom row). REPEATABLE READ locks existing rows but not gaps. SERIALIZABLE: adds gap locks/predicate locks (prevents insertions in the range) or uses MVCC snapshot that excludes T2s insert.
व्याख्या (हिन्दी) फैंटम: टी1: चयन करें जहां वेतन>50K ->10 पंक्तियाँ। टी2: वेतन डालें=60 हजार, प्रतिबद्ध। टी1: चुनें कि वेतन कहां है> 50K -> 11 पंक्तियाँ (नई प्रेत पंक्ति)। दोहराए जाने योग्य रीड मौजूदा पंक्तियों को लॉक करता है लेकिन अंतराल को नहीं। क्रमबद्ध करने योग्य: गैप लॉक/प्रेडिकेट लॉक जोड़ता है (सीमा में सम्मिलन को रोकता है) या एमवीसीसी स्नैपशॉट का उपयोग करता है जो T2s सम्मिलन को बाहर करता है।
1667
EN + हिं Medium
GB What is the SAVEPOINT mechanism in SQL transactions and how does it work?
IN SQL लेनदेन में SAVEPOINT तंत्र क्या है और यह कैसे काम करता है?
A
A named point within a transaction to which a partial rollback can be made - ROLLBACK TO SAVEPOINT name undoes work done after the savepoint but keeps work done before it allowing partial recovery without rolling back the entire transaction लेनदेन के भीतर एक नामित बिंदु जिस पर आंशिक रोलबैक किया जा सकता है - रोलबैक टू सेवपॉइंट नाम सेवपॉइंट के बाद किए गए कार्य को पूर्ववत करता है लेकिन पूरे लेनदेन को वापस किए बिना आंशिक पुनर्प्राप्ति की अनुमति देने से पहले किए गए कार्य को बनाए रखता है
B
A performance checkpoint in long transactions लंबे लेन-देन में एक प्रदर्शन जांच बिंदु
C
A snapshot of database state at a specific time किसी विशिष्ट समय पर डेटाबेस स्थिति का एक स्नैपशॉट
D
A point where the transaction is automatically committed एक बिंदु जहां लेनदेन स्वचालित रूप से प्रतिबद्ध है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) SAVEPOINT: BEGIN; ...work...; SAVEPOINT sp1; ...more work...; ROLLBACK TO SAVEPOINT sp1; (undoes since sp1); ...try again...; COMMIT (commits everything before sp1 + new work). Useful for: nested error recovery, retry logic, complex multi-step operations where partial success should be preserved.
व्याख्या (हिन्दी) सेवप्वाइंट: शुरू करें; ...काम...; सेवप्वाइंट sp1; ...अधिक काम...; सेवप्वाइंट sp1 पर रोलबैक; (sp1 के बाद से पूर्ववत हो जाता है); ...पुनः प्रयास करें...; प्रतिबद्ध (sp1 + नए कार्य से पहले सब कुछ प्रतिबद्ध करता है)। इसके लिए उपयोगी: नेस्टेड त्रुटि पुनर्प्राप्ति, तर्क पुनः प्रयास करें, जटिल बहु-चरण संचालन जहां आंशिक सफलता को संरक्षित किया जाना चाहिए।
1668
EN + हिं Medium
GB What is the two-phase locking (2PL) protocol and why does it guarantee serializability?
IN दो-चरण लॉकिंग (2PL) प्रोटोकॉल क्या है और यह क्रमबद्धता की गारंटी क्यों देता है?
A
A locking protocol that uses two types of locks (read/write) एक लॉकिंग प्रोटोकॉल जो दो प्रकार के लॉक का उपयोग करता है (पढ़ें/लिखें)
B
A locking protocol with two phases of transactions लेन-देन के दो चरणों वाला एक लॉकिंग प्रोटोकॉल
C
2PL: a transaction must acquire ALL needed locks before releasing ANY lock - Phase 1 (growing phase): acquire locks only no releases. Phase 2 (shrinking phase): release locks only no acquisitions. This guarantees serializability because the lock acquisition order is consistent and creates a serial order 2पीएल: किसी भी लॉक को जारी करने से पहले लेन-देन को सभी आवश्यक लॉक प्राप्त करने होंगे - चरण 1 (बढ़ता चरण): केवल लॉक प्राप्त करें, कोई रिलीज़ नहीं। चरण 2 (सिकुड़ने का चरण): रिलीज़ लॉक केवल कोई अधिग्रहण नहीं। यह क्रमबद्धता की गारंटी देता है क्योंकि लॉक अधिग्रहण क्रम सुसंगत है और एक क्रमबद्ध क्रम बनाता है
D
A locking protocol for two-tier client-server systems दो-स्तरीय क्लाइंट-सर्वर सिस्टम के लिए एक लॉकिंग प्रोटोकॉल
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) 2PL guarantees serializability: the conflict graph of transactions following 2PL is acyclic (no cycles). The lock point (point where transaction switches from growing to shrinking) orders transactions serially. Strict 2PL: hold all locks until commit (prevents cascading rollbacks). Rigorous 2PL: hold all locks until commit/abort.
व्याख्या (हिन्दी) 2PL क्रमबद्धता की गारंटी देता है: 2PL के बाद लेनदेन का संघर्ष ग्राफ चक्रीय (कोई चक्र नहीं) है। लॉक पॉइंट (वह बिंदु जहां लेनदेन बढ़ने से घटने की ओर बढ़ता है) लेनदेन को क्रमबद्ध तरीके से आदेश देता है। सख्त 2PL: कमिट होने तक सभी लॉक को पकड़कर रखें (कैस्केडिंग रोलबैक को रोकता है)। कठोर 2PL: प्रतिबद्धता/निरस्त होने तक सभी ताले दबाए रखें।
1669
EN + हिं Easy
GB What is cascading rollback (cascading abort) and which version of 2PL prevents it?
IN कैस्केडिंग रोलबैक (कैस्केडिंग एबॉर्ट) क्या है और 2PL का कौन सा संस्करण इसे रोकता है?
A
A rollback that deletes data permanently एक रोलबैक जो डेटा को स्थायी रूप से हटा देता है
B
When one transaction rolls back all other transactions that read its uncommitted data must also rollback (cascade) because those reads are now dirty reads - prevented by Strict 2PL (holds write locks until commit so other transactions cannot read uncommitted changes) जब एक लेनदेन उसके अप्रतिबद्ध डेटा को पढ़ने वाले अन्य सभी लेनदेन को वापस रोल करता है, तो उसे भी रोलबैक (कैस्केड) करना होगा क्योंकि वे रीड अब गंदे रीड हैं - स्ट्रिक्ट 2PL द्वारा रोका गया (कमिट होने तक राइट लॉक रखता है ताकि अन्य लेनदेन अप्रतिबद्ध परिवर्तन नहीं पढ़ सकें)
C
Rolling back causes related applications to crash वापस रोल करने से संबंधित एप्लिकेशन क्रैश हो जाते हैं
D
Rolling back one transaction in a distributed environment वितरित वातावरण में एक लेन-देन को वापस लाना
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Cascading rollback: T1 writes X, T2 reads X (dirty read, only if locks are released before commit), T1 aborts -> T2 must also abort. T3 reads from T2 -> T3 must abort too. Chain can be long. Strict 2PL prevents: write locks held until COMMIT, so T2 cannot read X until T1 commits (no dirty reads possible).
व्याख्या (हिन्दी) कैस्केडिंग रोलबैक: T1 एक्स लिखता है, T2 T3, T2 से पढ़ता है -> T3 को भी निरस्त होना चाहिए। चेन लंबी हो सकती है. सख्त 2PL रोकता है: COMMIT तक राइट लॉक को रखा जाता है, इसलिए T2 तब तक X नहीं पढ़ सकता जब तक T1 कमिट नहीं कर देता (कोई गंदा पढ़ना संभव नहीं है)।
1670
EN + हिं Hard
GB What is the difference between optimistic concurrency control (OCC) and pessimistic concurrency control (PCC)?
IN आशावादी समवर्ती नियंत्रण (ओसीसी) और निराशावादी समवर्ती नियंत्रण (पीसीसी) के बीच क्या अंतर है?
A
PCC allows dirty reads; OCC prevents them पीसीसी गंदे पढ़ने की अनुमति देता है; ओसीसी उन्हें रोकता है
B
OCC uses MVCC; PCC uses physical locks ओसीसी एमवीसीसी का उपयोग करता है; पीसीसी भौतिक ताले का उपयोग करता है
C
OCC is always faster; PCC is always safer OCC हमेशा तेज़ होता है; पीसीसी हमेशा सुरक्षित है
D
PCC: locks data when accessed to prevent concurrent modifications (assume conflicts will occur); OCC: no locks during execution validates at commit time for conflicts (assume conflicts are rare) aborts if conflict detected - OCC better for low-contention workloads PCC better for high-contention पीसीसी: समवर्ती संशोधनों को रोकने के लिए एक्सेस किए जाने पर डेटा को लॉक कर देता है (मान लें कि टकराव होगा); ओसीसी: निष्पादन के दौरान कोई लॉक नहीं होने से संघर्ष के लिए प्रतिबद्ध समय पर मान्य होता है (मान लें कि संघर्ष दुर्लभ हैं) यदि संघर्ष का पता चला है तो निरस्त कर दिया जाता है - कम-विवाद वाले कार्यभार के लिए ओसीसी बेहतर है, उच्च-विवाद के लिए पीसीसी बेहतर है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) OCC phases: Read (execute, write to local buffer), Validate (check for conflicts: did any committed transaction write data I read?), Write (apply changes if no conflict). High abort rate if contention is high. PCC: lock-based, waiting vs. aborting. OCC preferred for: read-heavy, low contention, distributed systems.
व्याख्या (हिन्दी) ओसीसी चरण: पढ़ें (निष्पादित करें, स्थानीय बफर पर लिखें), मान्य करें (विरोधों की जांच करें: क्या कोई प्रतिबद्ध लेनदेन मेरे द्वारा पढ़ा गया डेटा लिखता है?), लिखें (यदि कोई विरोध नहीं है तो परिवर्तन लागू करें)। यदि विवाद अधिक है तो गर्भपात की दर अधिक है। पीसीसी: लॉक-आधारित, प्रतीक्षा बनाम निरस्त करना। OCC को इसके लिए प्राथमिकता दी गई: रीड-हैवी, कम सामग्री, वितरित सिस्टम।
1671
EN + हिं Hard
GB What is the timestamp ordering protocol for concurrency control and how does it work?
IN समवर्ती नियंत्रण के लिए टाइमस्टैम्प ऑर्डरिंग प्रोटोकॉल क्या है और यह कैसे काम करता है?
A
A protocol for ordering distributed database commits वितरित डेटाबेस कमिट को ऑर्डर करने के लिए एक प्रोटोकॉल
B
Ordering transactions by network timestamp नेटवर्क टाइमस्टैम्प द्वारा लेनदेन का आदेश देना
C
Ordering commit operations by network time नेटवर्क समय के अनुसार प्रतिबद्ध संचालन का आदेश देना
D
Each transaction receives a timestamp at start; data items track the timestamps of the last read (max_R_TS) and write (max_W_TS); conflicts are resolved using these timestamps: if a younger transaction tries to read data written by an older committed transaction it is allowed; otherwise abort and restart प्रत्येक लेनदेन को शुरुआत में एक टाइमस्टैम्प प्राप्त होता है; डेटा आइटम अंतिम पढ़ने (max_R_TS) और लिखने (max_W_TS) के टाइमस्टैम्प को ट्रैक करते हैं; इन टाइमस्टैम्प का उपयोग करके संघर्षों को हल किया जाता है: यदि कोई युवा लेनदेन पुराने प्रतिबद्ध लेनदेन द्वारा लिखे गए डेटा को पढ़ने की कोशिश करता है तो उसे अनुमति दी जाती है; अन्यथा निरस्त करें और पुनः आरंभ करें
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Timestamp ordering: T wants to read X: if TS(T) < max_W_TS(X) (older T trying to read newer write) -> abort T. T wants to write X: if TS(T) < max_R_TS(X) or TS(T) < max_W_TS(X) -> abort T. Else: proceed and update timestamps. No locks, no deadlocks, but higher abort rate.
व्याख्या (हिन्दी) टाइमस्टैम्प क्रम: T, कोई ताला नहीं, कोई गतिरोध नहीं, लेकिन उच्च गर्भपात दर।
1672
EN + हिं Easy
GB What is the Thomas Write Rule optimization to the basic timestamp ordering protocol?
IN बुनियादी टाइमस्टैम्प ऑर्डरिंग प्रोटोकॉल के लिए थॉमस राइट रूल अनुकूलन क्या है?
A
A rule about writing to tables named Thomas थॉमस नाम की तालिकाओं पर लिखने के बारे में एक नियम
B
An optimization that allows a write operation to be silently ignored (rather than aborting the transaction) when a newer transaction has already written the same data item - since the outdated write would be overwritten by the newer write anyway it is safe to skip एक अनुकूलन जो एक लेखन ऑपरेशन को चुपचाप अनदेखा करने की अनुमति देता है (लेन-देन को निरस्त करने के बजाय) जब एक नए लेनदेन ने पहले से ही वही डेटा आइटम लिखा है - चूंकि पुराने लेखन को नए लेखन द्वारा ओवरराइट किया जाएगा, वैसे भी इसे छोड़ना सुरक्षित है
C
Thomas Jefferson invented this database rule थॉमस जेफरसन ने इस डेटाबेस नियम का आविष्कार किया
D
A rule requiring explicit write acknowledgment स्पष्ट लेखन पावती की आवश्यकता वाला नियम
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Thomas Write Rule: T wants to write X but TS(T) < max_W_TS(X) (another newer T has already written X). Instead of aborting T, skip this write (it is obsolete - the newer write will overwrite it anyway). This increases throughput by avoiding unnecessary aborts. The final result is still correct.
व्याख्या (हिन्दी) थॉमस लिखें नियम: T, X लिखना चाहता है लेकिन TS(T) < max_W_TS(X) (एक और नया T पहले ही X लिख चुका है)। टी को निरस्त करने के बजाय, इस लेखन को छोड़ दें (यह अप्रचलित है - नया लेखन इसे वैसे भी अधिलेखित कर देगा)। यह अनावश्यक रुकावटों से बचकर थ्रूपुट को बढ़ाता है। अंतिम परिणाम अभी भी सही है.
1673
EN + हिं Easy
GB What is a long-running transaction and what problems does it cause in a DBMS?
IN लंबे समय तक चलने वाला लेनदेन क्या है और यह DBMS में क्या समस्याएँ पैदा करता है?
A
A transaction that remains open for an extended period causing: accumulated locks blocking other transactions MVCC undo/version storage growth (old versions cannot be purged) replication lag in logical replication and increased probability of conflict/deadlock एक लेनदेन जो एक विस्तारित अवधि के लिए खुला रहता है, उसके कारण: संचित ताले अन्य लेनदेन को अवरुद्ध कर रहे हैं एमवीसीसी पूर्ववत/संस्करण भंडारण वृद्धि (पुराने संस्करणों को शुद्ध नहीं किया जा सकता है) तार्किक प्रतिकृति में प्रतिकृति अंतराल और संघर्ष/गतिरोध की बढ़ी हुई संभावना
B
A transaction affecting a large number of rows बड़ी संख्या में पंक्तियों को प्रभावित करने वाला लेनदेन
C
A transaction that takes more than 1 second एक लेन-देन जिसमें 1 सेकंड से अधिक समय लगता है
D
A transaction that spans multiple database servers एक लेन-देन जो कई डेटाबेस सर्वरों तक फैला होता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Long transactions problems: (1) Hold locks blocking concurrent access. (2) In PostgreSQL: prevent VACUUM from reclaiming dead rows (table bloat). (3) In MySQL: undo log grows, performance degrades. (4) Logical replication must buffer all changes until transaction commits. Best practice: keep transactions short.
व्याख्या (हिन्दी) लंबे लेन-देन की समस्याएँ: (1) समवर्ती पहुंच को अवरुद्ध करने वाले ताले पकड़ें। (2) PostgreSQL में: VACUUM को मृत पंक्तियों (टेबल ब्लोट) को पुनः प्राप्त करने से रोकें। (3) MySQL में: पूर्ववत लॉग बढ़ता है, प्रदर्शन ख़राब होता है। (4) लेन-देन शुरू होने तक तार्किक प्रतिकृति को सभी परिवर्तनों को बफर करना होगा। सर्वोत्तम अभ्यास: लेन-देन छोटा रखें।
1674
EN + हिं Easy
GB What is transaction chopping (also called transaction splitting) and when is it safe to apply?
IN ट्रांजेक्शन चॉपिंग (जिसे ट्रांजैक्शन स्प्लिटिंग भी कहा जाता है) क्या है और इसे कब लागू करना सुरक्षित है?
A
Chopping SQL statements for performance प्रदर्शन के लिए SQL कथनों को काटना
B
Splitting transactions across multiple databases कई डेटाबेस में लेनदेन को विभाजित करना
C
The technique of dividing a long transaction into smaller sub-transactions to improve concurrency; safe only when: the sub-transactions maintain the same semantic consistency there are no dependencies between the pieces that require atomic execution and the application can handle partial failures समवर्तीता में सुधार के लिए लंबे लेनदेन को छोटे उप-लेनदेन में विभाजित करने की तकनीक; केवल तभी सुरक्षित है जब: उप-लेन-देन समान अर्थपूर्ण स्थिरता बनाए रखता है, उन टुकड़ों के बीच कोई निर्भरता नहीं होती है जिनके लिए परमाणु निष्पादन की आवश्यकता होती है और एप्लिकेशन आंशिक विफलताओं को संभाल सकता है
D
Randomly splitting transactions into smaller pieces लेन-देन को बेतरतीब ढंग से छोटे-छोटे टुकड़ों में बाँटना
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Transaction chopping: safe if (1) each sub-transaction is independently meaningful, (2) failure of one piece does not require undoing prior pieces, (3) no other transaction can see an inconsistent state between pieces. Example: batch processing 1M rows in 1000-row sub-transactions instead of one giant transaction.
व्याख्या (हिन्दी) लेन-देन काटना: सुरक्षित है यदि (1) प्रत्येक उप-लेन-देन स्वतंत्र रूप से सार्थक है, (2) एक टुकड़े की विफलता के लिए पिछले टुकड़ों को पूर्ववत करने की आवश्यकता नहीं है, (3) किसी अन्य लेनदेन में टुकड़ों के बीच असंगत स्थिति नहीं देखी जा सकती है। उदाहरण: एक विशाल लेनदेन के बजाय 1000-पंक्ति उप-लेनदेन में 1M पंक्तियों का बैच प्रसंस्करण।
1675
EN + हिं Easy
GB What is the isolation level READ COMMITTED and what anomalies does it prevent vs allow?
IN अलगाव स्तर रीड कमिटेड क्या है और यह किन विसंगतियों को रोकता है बनाम अनुमति देता है?
A
READ COMMITTED prevents dirty reads (only sees committed data at the time of each statement) but allows non-repeatable reads (re-reading same row can return different committed values) and phantom reads रीड कमिटेड गंदे पढ़ने को रोकता है (प्रत्येक कथन के समय केवल प्रतिबद्ध डेटा देखता है) लेकिन गैर-दोहराए जाने योग्य पढ़ने की अनुमति देता है (एक ही पंक्ति को दोबारा पढ़ने से अलग-अलग प्रतिबद्ध मान वापस आ सकते हैं) और फैंटम रीड
B
Allows all anomalies including dirty reads गंदे पढ़ने सहित सभी विसंगतियों की अनुमति देता है
C
READ COMMITTED is identical to SERIALIZABLE रीड कमिटेड, सीरियलाइज़ेबल के समान है
D
READ COMMITTED prevents all anomalies रीड कमिटेड सभी विसंगतियों को रोकता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) READ COMMITTED: each SQL statement sees a snapshot of committed data at statement start. Dirty reads: prevented (uncommitted changes invisible). Non-repeatable reads: allowed (committed changes between statements visible). Phantom reads: allowed. This is the default in PostgreSQL and Oracle.
व्याख्या (हिन्दी) प्रतिबद्ध पढ़ें: प्रत्येक SQL कथन कथन प्रारंभ में प्रतिबद्ध डेटा का एक स्नैपशॉट देखता है। गंदा पढ़ता है: रोका गया (अप्रतिबद्ध परिवर्तन अदृश्य)। गैर-दोहराने योग्य पाठ: अनुमति (कथनों के बीच प्रतिबद्ध परिवर्तन दृश्यमान)। फैंटम पढ़ता है: अनुमति है। PostgreSQL और Oracle में यह डिफ़ॉल्ट है।
1676
EN + हिं Medium
GB What is the difference between distributed transaction and local transaction and what protocol manages distributed transactions?
IN वितरित लेनदेन और स्थानीय लेनदेन के बीच क्या अंतर है और कौन सा प्रोटोकॉल वितरित लेनदेन का प्रबंधन करता है?
A
A local transaction operates within a single DBMS; a distributed transaction spans multiple separate database instances and requires coordination protocols (typically Two-Phase Commit - 2PC) to ensure atomicity across all participating databases एक स्थानीय लेनदेन एकल DBMS के भीतर संचालित होता है; एक वितरित लेनदेन कई अलग-अलग डेटाबेस उदाहरणों को फैलाता है और सभी भाग लेने वाले डेटाबेस में परमाणुता सुनिश्चित करने के लिए समन्वय प्रोटोकॉल (आमतौर पर दो-चरण प्रतिबद्धता - 2 पीसी) की आवश्यकता होती है
B
Distributed transactions span multiple tables; local transactions use one table वितरित लेनदेन कई तालिकाओं में फैले होते हैं; स्थानीय लेनदेन एक तालिका का उपयोग करते हैं
C
Local transactions do not support ACID; distributed transactions do स्थानीय लेनदेन ACID का समर्थन नहीं करते; वितरित लेनदेन करते हैं
D
Distributed transactions are faster than local transactions वितरित लेनदेन स्थानीय लेनदेन की तुलना में तेज़ होते हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Distributed transaction: UPDATE bank_a.account SET balance -= 1000; UPDATE bank_b.account SET balance += 1000 - across two separate database servers. 2PC coordinator: Phase 1 (PREPARE - each participant votes commit/abort), Phase 2 (COMMIT or ROLLBACK based on all votes). Guarantees atomicity across nodes.
व्याख्या (हिन्दी) वितरित लेनदेन: अद्यतन बैंक_ए.खाता सेट शेष -= 1000; अद्यतन बैंक_बी.खाता सेट शेष += 1000 - दो अलग-अलग डेटाबेस सर्वरों पर। 2पीसी समन्वयक: चरण 1 (तैयारी - प्रत्येक प्रतिभागी वोट करता है/निरस्त करता है), चरण 2 (सभी वोटों के आधार पर प्रतिबद्ध या रोलबैक)। नोड्स में परमाणुता की गारंटी देता है।
1677
EN + हिं Medium
GB What is snapshot isolation (SI) and how does it differ from REPEATABLE READ in terms of anomaly prevention?
IN स्नैपशॉट आइसोलेशन (एसआई) क्या है और विसंगति की रोकथाम के संदर्भ में यह रिपीटेबल रीड से कैसे भिन्न है?
A
They are identical isolation levels वे समान अलगाव स्तर हैं
B
REPEATABLE READ and Snapshot Isolation prevent all anomalies दोहराए जाने योग्य रीड और स्नैपशॉट अलगाव सभी विसंगतियों को रोकता है
C
Snapshot isolation: each transaction reads from a consistent snapshot taken at transaction start preventing dirty reads non-repeatable reads and phantoms but does NOT prevent write skew anomaly. REPEATABLE READ in standard SQL prevents non-repeatable reads; SNAPSHOT adds phantom prevention via MVCC स्नैपशॉट अलगाव: प्रत्येक लेन-देन लेन-देन शुरू होने पर लिए गए एक सुसंगत स्नैपशॉट से पढ़ता है, गंदे रीड, गैर-दोहराए जाने योग्य रीड और फैंटम को रोकता है, लेकिन लिखने में तिरछा विसंगति को नहीं रोकता है। मानक SQL में दोहराए जाने योग्य पठन गैर-दोहराए जाने योग्य पठन को रोकता है; स्नैपशॉट एमवीसीसी के माध्यम से प्रेत रोकथाम जोड़ता है
D
Snapshot isolation is weaker than READ COMMITTED स्नैपशॉट अलगाव रीड कमिटेड की तुलना में कमज़ोर है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Snapshot isolation: reads from fixed snapshot, no blocking on reads. Write conflict: if two concurrent transactions write to the same row, one aborts (first committer wins). Allows write skew: T1 reads A and B and writes A, T2 reads A and B and writes B - both commit even if invariant A+B>0 is violated.
व्याख्या (हिन्दी) स्नैपशॉट अलगाव: निश्चित स्नैपशॉट से पढ़ता है, पढ़ने पर कोई अवरोध नहीं। संघर्ष लिखें: यदि दो समवर्ती लेनदेन एक ही पंक्ति में लिखते हैं, तो एक निरस्त हो जाता है (पहला कमिटर जीतता है)। तिरछा लिखने की अनुमति देता है: T1 A और B पढ़ता है और A लिखता है, T2 A और B पढ़ता है और B लिखता है - दोनों प्रतिबद्ध हैं, भले ही अपरिवर्तनीय A+B>0 का उल्लंघन किया गया हो।
1678
EN + हिं Easy
GB What is the write skew anomaly that snapshot isolation allows but serializable isolation prevents?
IN राइट स्क्यू विसंगति क्या है जो स्नैपशॉट अलगाव की अनुमति देती है लेकिन क्रमबद्ध अलगाव को रोकती है?
A
Overwriting uncommitted data अप्रतिबद्ध डेटा को ओवरराइट करना
B
Writing to the same row simultaneously एक ही पंक्ति में एक साथ लिखना
C
Writing incorrect data to the database डेटाबेस में ग़लत डेटा लिखना
D
Two transactions each read overlapping data make decisions based on it and write to non-overlapping parts collectively violating an integrity constraint that neither individual write would violate - e.g. both doctors check at least one doctor on call both see the other is on call both decide to go off call दो लेन-देन प्रत्येक ओवरलैपिंग डेटा को पढ़ते हैं, उसके आधार पर निर्णय लेते हैं और गैर-ओवरलैपिंग भागों को सामूहिक रूप से एक अखंडता बाधा का उल्लंघन करते हुए लिखते हैं, जिसका कोई भी व्यक्तिगत लेखन उल्लंघन नहीं करेगा - उदाहरण के लिए दोनों डॉक्टर कॉल पर कम से कम एक डॉक्टर की जाँच करते हैं, दोनों देखते हैं कि दूसरा कॉल पर है, दोनों कॉल बंद करने का निर्णय लेते हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Write skew: T1 reads (Alice=on_call, Bob=on_call), decides Alice can go off call. T2 reads same, decides Bob can go off call. Both commit. Result: no one on call (violated constraint). No write conflict (different rows written). Prevented by Serializable but not Snapshot Isolation. Example: hospital scheduling, banking constraints.
व्याख्या (हिन्दी) तिरछा लिखें: T1 पढ़ता है (ऐलिस=ऑन_कॉल, बॉब=ऑन_कॉल), निर्णय लेता है कि ऐलिस कॉल बंद कर सकती है। टी2 वही पढ़ता है, फैसला करता है कि बॉब कॉल बंद कर सकता है। दोनों प्रतिबद्ध हैं. नतीजा: कॉल पर कोई नहीं (बाधा का उल्लंघन)। कोई लेखन विरोध नहीं (अलग-अलग पंक्तियाँ लिखी गईं)। क्रमांकन द्वारा रोका गया लेकिन स्नैपशॉट अलगाव द्वारा नहीं। उदाहरण: अस्पताल का शेड्यूल, बैंकिंग बाधाएँ।
1679
EN + हिं Medium
GB What is the purpose of COMMIT WORK and ROLLBACK WORK statements in SQL transactions and when does an implicit COMMIT occur?
IN SQL लेनदेन में COMMIT WORK और ROLLBACK WORK स्टेटमेंट का उद्देश्य क्या है और एक अंतर्निहित COMMIT कब होती है?
A
These statements are synonymous with SAVEPOINT ये कथन SAVEPOINT का पर्याय हैं
B
ROLLBACK WORK only undoes INSERT operations रोलबैक कार्य केवल INSERT संचालन को पूर्ववत करता है
C
COMMIT WORK makes all transaction changes permanent and releases locks; ROLLBACK WORK undoes all changes and releases locks; implicit COMMIT occurs in most DBMS when: a DDL statement is executed (CREATE ALTER DROP) when a session normally ends or when autocommit is enabled (each statement auto-commits) प्रतिबद्ध कार्य सभी लेन-देन परिवर्तनों को स्थायी बनाता है और लॉक जारी करता है; रोलबैक कार्य सभी परिवर्तनों को पूर्ववत करता है और लॉक जारी करता है; अधिकांश DBMS में अंतर्निहित COMMIT तब होती है जब: एक DDL स्टेटमेंट निष्पादित किया जाता है (CREATE ALTER DROP) जब एक सत्र सामान्य रूप से समाप्त होता है या जब ऑटोकमिट सक्षम होता है (प्रत्येक स्टेटमेंट ऑटो-कमिट होता है)
D
COMMIT WORK only commits the last statement COMMIT WORK केवल अंतिम कथन को प्रतिबद्ध करता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) Implicit COMMIT triggers: (1) DDL statements (MySQL, Oracle auto-commit before and after DDL). (2) Normal session disconnect. (3) AUTOCOMMIT=1 (each statement is its own transaction). Important: in autocommit mode, there is no rollback possible. Always wrap multi-statement operations in explicit BEGIN/START TRANSACTION.
व्याख्या (हिन्दी) अंतर्निहित कमिट ट्रिगर: (1) डीडीएल स्टेटमेंट (MySQL, Oracle DDL से पहले और बाद में ऑटो-कमिट)। (2) सामान्य सत्र डिस्कनेक्ट। (3) ऑटोकॉमिट=1 (प्रत्येक कथन अपना स्वयं का लेनदेन है)। महत्वपूर्ण: ऑटोकमिट मोड में, कोई रोलबैक संभव नहीं है। मल्टी-स्टेटमेंट ऑपरेशंस को हमेशा स्पष्ट BEGIN/START ट्रांजेक्शन में लपेटें।
1680
EN + हिं Hard
GB What is MVCC (Multi-Version Concurrency Control) and how does it allow reads to not block writes?
IN एमवीसीसी (मल्टी-वर्जन कॉन्करेंसी कंट्रोल) क्या है और यह कैसे पढ़ने को लिखने से रोकने की अनुमति देता है?
A
MVCC allows multiple concurrent commits of the same transaction एमवीसीसी एक ही लेनदेन के एकाधिक समवर्ती प्रतिबद्धताओं की अनुमति देता है
B
MVCC is a replication protocol एमवीसीसी एक प्रतिकृति प्रोटोकॉल है
C
MVCC maintains multiple timestamped versions of each row; readers see the latest committed version as of their transaction start time (snapshot) without needing to acquire locks on data; writers create new versions without affecting readers current snapshots - reads and writes proceed concurrently एमवीसीसी प्रत्येक पंक्ति के कई टाइमस्टैम्प्ड संस्करण बनाए रखता है; पाठक डेटा पर लॉक प्राप्त करने की आवश्यकता के बिना नवीनतम प्रतिबद्ध संस्करण को अपने लेनदेन प्रारंभ समय (स्नैपशॉट) के रूप में देखते हैं; लेखक पाठकों के वर्तमान स्नैपशॉट को प्रभावित किए बिना नए संस्करण बनाते हैं - पढ़ना और लिखना एक साथ आगे बढ़ता है
D
MVCC uses multiple versions of locks एमवीसीसी ताले के कई संस्करणों का उपयोग करता है
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English) MVCC: each UPDATE creates a new row version with a commit timestamp; the old version is kept for concurrent readers still using earlier snapshots. Readers: find the latest version with commit_ts <= their_snapshot_ts (no locks needed). Writers: create new versions. Readers and writers never block each other.
व्याख्या (हिन्दी) एमवीसीसी: प्रत्येक अद्यतन एक प्रतिबद्ध टाइमस्टैम्प के साथ एक नया पंक्ति संस्करण बनाता है; पुराने संस्करण को समवर्ती पाठकों के लिए रखा गया है जो अभी भी पहले के स्नैपशॉट का उपयोग कर रहे हैं। पाठक: कमिट_टीएस के साथ नवीनतम संस्करण ढूंढें
1666–1680 of 2982