Relational Model और Keys
Relational model
E. F. Codd के दिए relational data model में सारा data tables में रहता है। हर table को relation कहते हैं। Tables common columns से जुड़ती हैं, इसलिए data दोहराया नहीं जाता।
| RollNo | Name | Class | City |
|---|---|---|---|
| 101 | Aarav | XI-A | Jaipur |
| 102 | Sana | XI-A | Lucknow |
| 103 | Kabir | XI-B | Jaipur |
| 104 | Diya | XI-B | Pune |
Relational terms
| Term | आम शब्द | STUDENT में |
|---|---|---|
| Relation | Table | STUDENT |
| Attribute | Column / field | RollNo, Name, Class, City |
| Tuple | Row / record | (102, 'Sana', 'XI-A', 'Lucknow') |
| Domain | Attribute की allowed values का set | Class ∈ {XI-A, XI-B, XI-C} |
| Relation schema | Table का design | STUDENT(RollNo, Name, Class, City) |
| Relation state / instance | अभी मौजूद data | दिखाई गई 4 rows |
Degree और cardinality
Degree
- Attributes (columns) की संख्या
- STUDENT की degree 4
- सिर्फ़ design बदलने पर बदलती है
Cardinality
- Tuples (rows) की संख्या
- STUDENT की cardinality 4
- हर बार rows जुड़ने या हटने पर बदलती है
Relation की properties
- Table में हर attribute का नाम unique होता है।
- Columns और rows का क्रम मायने नहीं रखता।
- कोई दो tuples बिल्कुल एक जैसे नहीं होते।
- हर cell में एक ही (atomic) value — list नहीं।
- एक column की सभी values एक ही domain (same type) से।
Relational database में keys
Key एक attribute (या attributes का set) है जो rows को uniquely पहचानने या tables को जोड़ने में मदद करता है।
Foreign key और relationships
FEE table RollNo रखती है ताकि पता चले fee किसकी है। FEE में RollNo एक foreign key है जो STUDENT की primary key RollNo को refer करती है। Foreign-key value किसी मौजूदा primary-key value से match करे या NULL हो — ऐसे student की fee record नहीं कर सकते जो है ही नहीं। इस नियम को referential integrity कहते हैं।
| ReceiptNo | RollNo | Month | Amount |
|---|---|---|---|
| R1 | 101 | April | 3500 |
| R2 | 102 | April | 3500 |
| R3 | 101 | May | 3500 |
NULL values
NULL का मतलब "value पता नहीं या लागू नहीं"। यह zero या ख़ाली string नहीं है। Example: नया student जिसका phone number अभी पता नहीं। Primary key कभी NULL नहीं हो सकती।
सारांश और practice
- Relation = table; attribute = column; tuple = row; domain = allowed values।
- Degree = columns की संख्या; cardinality = rows की संख्या।
- Candidate keys → एक primary चुनी जाती है (unique, not null); बाकी alternate keys।
- Foreign key child table को parent table की primary key से जोड़ती है।
Table EMPLOYEE(EmpID, Name, Email, Phone, DeptID) में 25 rows हैं। DEPARTMENT(DeptID, DeptName) में 5 rows। 1) EMPLOYEE की degree और cardinality? 2) EMPLOYEE की candidate keys? 3) कौन सा attribute foreign key है?
Answers: 1) degree 5, cardinality 25। 2) EmpID, Email, Phone (अगर हर एक unique हो)। 3) EMPLOYEE में DeptID।
