मुख्य सामग्री पर जाएँ

सिलेबस · CS कंप्यूटर विज्ञान और सूचना प्रौद्योगिकी

विषय के सभी टॉपिक
C प्रोग्रामिंग की बुनियाद7
ऐरे और पॉइंटर9
रिकर्शन6
प्रायिकता और सांख्यिकी की बुनियाद9
डेटाबेस सिस्टम की बुनियाद15
रैखिक बीजगणित की बुनियाद6
कंप्यूटर नेटवर्क की बुनियाद9
कलन की बुनियाद6
संगणना सिद्धांत की बुनियाद9
कंपाइलर डिज़ाइन की बुनियाद9
लिंक्ड लिस्ट, स्टैक और क्यू5
ट्री, बाइनरी सर्च ट्री और हीप4
ग्राफ की बुनियाद3
एल्गोरिदम की बुनियाद15
असतत गणित की बुनियाद18
डिजिटल लॉजिक की बुनियाद22
कंप्यूटर संगठन की बुनियाद12
ऑपरेटिंग सिस्टम की बुनियाद15

Relational model, keys और integrity constraints

पाठ 127 / 1797 मिनटमुफ़्त

लक्ष्य और assumptions

Schema तथा instance अलग करें, constraints से candidate keys सिद्ध करें और referential integrity में updates trace करें। Classical relation set है: duplicate tuples तथा row order नहीं। SQL tables में bags और NULL संभव हैं; इन अंतरों को बिना बताए relational theory में न मिलाएँ।

1. Relation schema और instance

Schema R(A,B,C) attributes और उनके domains बताता है। Instance r वर्तमान legal tuples का set है। Degree attributes की संख्या; cardinality tuples की संख्या है। तीन attributes और सात tuples वाली relation की degree 3 तथा cardinality 7 है। Empty relation का भी schema और degree रहता है। Attribute value अपने domain से आना चाहिए; domain केवल primitive type से अधिक नियम दे सकता है, जैसे credits positive integer हो।

Relational tuple attribute names से values की mapping है। दिखाई गई column order presentation है; operations में सही attributes मिलाने चाहिए। Keys और dependencies हर legal instance के नियम हैं, केवल छोटे sample में दिखने वाले patterns नहीं।

2. Superkey, candidate key और primary key

Superkey attributes का ऐसा set है जो हर legal instance में tuple को unique पहचानता है। Candidate key minimal superkey है: कोई attribute हटाने पर guaranteed identification खत्म हो जाती है। Minimal का अर्थ inclusion-minimal है; सभी candidate keys में सबसे कम attributes होना जरूरी नहीं। Primary key चुनी हुई candidate key है; बाकी alternate keys हैं। Candidate key के supersets superkeys होते हैं, लेकिन प्रायः candidate keys नहीं।

हल किया उदाहरण: Student(sid,email,name,dept) में sid और email दोनों student को अलग-अलग unique पहचानते हैं तथा non-null हैं। कोई अन्य identification rule नहीं। {sid} और {email} candidate keys हैं। {sid,name} superkey है लेकिन candidate key नहीं, क्योंकि name हट सकता है। {name,dept} आज unique दिखे तो भी guaranteed key नहीं है।

Enrolment(sid,cid,grade) में हर student–course pair का एक grade मानें। Student केवल एक course लेता है या course में केवल एक student है, ऐसा नियम नहीं। {sid,cid} candidate key है; कोई singleton पर्याप्त नहीं। आगे functional-dependency lessons में keys खोजने का closure algorithm आएगा; केवल attribute names देखकर key न चुनें।

3. Integrity constraints

SQL implementation में entity integrity primary-key components को non-null रखती है। Referential integrity में non-null foreign-key value को allowed referenced key से match करना चाहिए। Composite foreign key के पूरे tuple का corresponding key से match जरूरी है। Referencing table में foreign-key values unique होना जरूरी नहीं। Employee.managerId का Employee.eid को reference करना self-reference का उदाहरण है।

स्पष्ट SQL-जैसा model लें: Department(did PRIMARY KEY), Student(sid PRIMARY KEY, did NOT NULL REFERENCES Department(did))। Department={10,20}; Student={(1,10),(2,10)}। (3,20) insert valid है। (3,30) reference तोड़ता है; (1,20) primary-key uniqueness तोड़ता है; (3,NULL) NOT NULL तोड़ता है। Department बिना students के हो सकता है और कई students department 10 को reference कर सकते हैं।

4. Update का परिणाम policy पर निर्भर है

Student.did अगर Department.did को reference करता है तो department deletion का परिणाम declared action से तय होगा। Immediate NO ACTION में, statement में अन्य changes न हों तो referenced department का deletion fail होता है। CASCADE referencing student rows हटाता है। SET NULL के लिए column nullable होना चाहिए; NULL रखकर NOT NULL बचाया नहीं जा सकता। Referenced key update पर भी उसकी update policy लागू होती है। प्रश्न में न दिया हो तो CASCADE assume न करें। Deferred checks जैसे timing differences इस immediate-check उदाहरण के बाहर हैं।

हल किया trace: immediate NO ACTION में Department={10,20}, Student={(1,10),(2,10)}। Department 20 हट सकता है, क्योंकि उसे कोई reference नहीं करता। Department 10 नहीं हटेगा, क्योंकि students 1 और 2 उसे reference करते हैं। पहले वे students हटाकर फिर department 10 हटाना valid है। DELETE CASCADE होता तो parent delete से वे student rows स्वतः हटते।

5. Guarantee और accidental data

Rows (A,B)={(1,x),(2,y)} में दोनों columns अभी unique हैं। इससे भविष्य के हर legal state के लिए कोई declared key सिद्ध नहीं होती। लेकिन समान A और अलग B वाली दो rows मिलें तो उस instance में A key होने का दावा गलत है। Instance universal constraint को गलत साबित कर सकता है; छोटा example सामान्यतः business rule स्थापित नहीं कर सकता।

सावधानियाँ

  • Degree columns है, cardinality rows; दोनों key size से अलग हैं।
  • Candidate-key minimality attribute हटाकर जाँचें; केवल sizes की तुलना न करें।
  • Foreign key अपनी relation की key होना जरूरी नहीं और खुद NOT NULL नहीं लगाती।
  • Composite foreign key joint reference है, अलग parent rows से independent matches नहीं।
  • SQL UNIQUE और NULL के नियम सावधानी से पढ़ें; हर nullable UNIQUE को classical candidate key न मानें।

मौलिक अभ्यास: छह single-correct MCQ

ये मौलिक शिक्षण प्रश्न हैं, पिछले वर्षों के प्रश्न नहीं। ठीक एक उत्तर चुनें।

P01. Relation में 4 attributes और 9 tuples हैं। Degree और cardinality?

A. (9,4) B. (4,9) C. (4,4) D. (9,9)

उत्तर: B

A: इसमें rows और attributes उलटे हैं।

B: Degree attributes और cardinality tuples गिनती है।

C: Cardinality नौ है, चार नहीं।

D: Degree चार है, नौ नहीं।

P02. अगर {A} candidate key है तो {A,B} के बारे में क्या सही है?

A. यह superkey नहीं B. यह हमेशा candidate key है C. यह superkey है, candidate key नहीं D. यह schema में हो नहीं सकता

उत्तर: C

A: Attributes जोड़ने से uniqueness रहती है।

B: A, B के बिना भी tuple को पहचानता है, इसलिए {A,B} minimal नहीं है।

C: Tuples पहचानता है लेकिन B हट सकता है।

D: ऐसा schema restriction नहीं है।

P03. कई Student rows में समान valid department foreign key है। यह क्या है?

A. हमेशा primary-key violation B. हमेशा foreign-key violation C. अतिरिक्त constraint न रोके तो allowed D. Department न हो तभी allowed

उत्तर: C

A: Foreign-key column को primary key नहीं कहा गया।

B: Existing parent को repeated references legal हैं।

C: Foreign key referencing column की uniqueness नहीं लगाती।

D: Non-null reference के लिए department मौजूद होना चाहिए।

P04. Immediate NO ACTION में student द्वारा referenced department हटाने पर क्या होगा?

A. Student स्वतः हटेगा B. Referential-integrity check fail होगा C. Foreign key शून्य होगी D. Department rename होगा

उत्तर: B

A: इसके लिए DELETE CASCADE चाहिए।

B: बचा reference parent के बिना होगा।

C: NO ACTION default value नहीं बनाता।

D: Rename policy नहीं दी गई।

P05. R(A,B) के observed instance में A key होने को कौन गलत सिद्ध करता है?

A. दो rows (1,x), (2,x) B. दो rows (1,x), (1,y), x≠y C. शून्य rows D. एक row (1,x)

उत्तर: B

A: A values अलग हैं; A uniqueness नहीं टूटती।

B: अलग tuples का A समान है।

C: Empty instance uniqueness नहीं तोड़ता।

D: एक row uniqueness नहीं तोड़ती।

P06. Composite foreign key (X,Y), parent key (A,B) को reference करती है। Parent rows (1,2),(3,4) हैं। कौन match करता है?

A. (1,4) B. (3,2) C. (1,2) D. (2,1)

उत्तर: C

A: Components अलग मौजूद हैं, लेकिन pair नहीं।

B: पूरा pair मौजूद नहीं।

C: पूरा corresponding parent key मौजूद है।

D: Attribute correspondence महत्वपूर्ण है; उलटा pair match नहीं।

स्रोत और दायरा

यह 2026 course के बताए भाग का पाठ है, पूरे Databases syllabus की समाप्ति नहीं। सभी गणनात्मक उदाहरण और प्रश्न मौलिक हैं। 2027 की पूर्णता का दावा नहीं।

प्रगति सहेजने के लिए साइन इन करें। साइन इन