મુખ્ય સામગ્રી પર જાઓ
ડેટાબેઝ મેનેજમેન્ટ (4331603) - શિયાળા 2024 સોલ્યુશન
  1. સંસાધનો/
  2. અભ્યાસ સામગ્રી/
  3. ઇન્ફોર્મેશન ટેકનોલોજી એન્જિનિયરિંગ/
  4. આઈટી સેમેસ્ટર 3/
  5. ડેટાબેસ મેનેજમેન્ટ (4331603)/

ડેટાબેઝ મેનેજમેન્ટ (4331603) - શિયાળા 2024 સોલ્યુશન

મિલવ ડબગર
લેખક
મિલવ ડબગર
ઇલેક્ટ્રિકલ અને ઇલેક્ટ્રોનિક મેન્યુફેક્ચરિંગ ઉદ્યોગમાં અનુભવી લેક્ચરર. એમ્બેડેડ સિસ્ટમ્સ, ઈમેજ પ્રોસેસિંગ, ડેટા સાયન્સ, મેટલેબ, પાયથન, STM32માં કુશળ. એલ.ડી. કોલેજ ઓફ એન્જિનિયરિંગ - અમદાવાદથી કમ્યુનિકેશન સિસ્ટમ્સ એન્જિનિયરિંગમાં માસ્ટર્સ ડિગ્રી ધરાવતા મજબૂત શિક્ષણ વ્યાવસાયિક.
અનુક્રમણિકા

પ્રશ્ન 1(અ) [3 ગુણ]
#

Three-level ડેટાબેઝ આર્કિટેક્ચરને સમજાવો.

જવાબ:

ટેબલ:

સ્તરવર્ણનહેતુ
External Levelયુઝર વ્યુઝ અને એપ્લિકેશન પ્રોગ્રામ્સવપરાશકર્તાઓ માટે ડેટા abstraction
Conceptual Levelસંપૂર્ણ લોજિકલ સ્ટ્રક્ચરસંસ્થાવ્યાપી ડેટા દૃશ્ય
Internal Levelભૌતિક સ્ટોરેજ વિગતોસ્ટોરેજ અને access methods

ડાયાગ્રામ:

graph LR
    A[External Level] --> B[Conceptual Level]
    B --> C[Internal Level]
    A1[User View 1] --> A
    A2[User View 2] --> A
    A3[User View n] --> A
    C --> D[Physical Storage]
  • External Level: વ્યક્તિગત યુઝર વ્યુઝ અને વિશિષ્ટ એપ્લિકેશન જરૂરિયાતો
  • Conceptual Level: સ્ટોરેજ વિગતો વિના સંપૂર્ણ ડેટાબેઝ schema
  • Internal Level: ભૌતિક સ્ટોરેજ સ્ટ્રક્ચર્સ અને access paths

મેમરી ટ્રીક: “ECI - Every Computer Interface”

પ્રશ્ન 1(બ) [4 ગુણ]
#

ઉદાહરણ સાથે Total Participation અને Partial Participation સમજાવો.

જવાબ:

ટેબલ:

Participation Typeવ્યાખ્યાપ્રતીકઉદાહરણ
Total Participationદરેક entity એ ભાગ લેવો જ જોઈએDouble lineStudent-Course enrollment
Partial Participationકેટલીક entities ભાગ ન પણ લઈ શકેSingle lineEmployee-Department management

ડાયાગ્રામ:

erDiagram
    STUDENT ||--|| ENROLLMENT : "Total (must enroll)"
    EMPLOYEE }|--|| DEPARTMENT : "Partial (may not manage)"
  • Total Participation: તમામ વિદ્યાર્થીઓએ ઓછામાં ઓછા એક કોર્સમાં નોંધણી કરાવવી જ જોઈએ
  • Partial Participation: બધા કર્મચારીઓ department ને manage કરતા નથી
  • Double lines total participation constraints દર્શાવે છે
  • Single lines partial participation relationships બતાવે છે

મેમરી ટ્રીક: “Total = Two lines, Partial = Plain line”

પ્રશ્ન 1(ક) [7 ગુણ]
#

ફાઇલ મેનેજમેન્ટ સિસ્ટમ પર DBMS ના ફાયદા સમજાવો.

જવાબ:

ટેબલ:

ફાયદોFile SystemDBMS
Data Redundancyઉચ્ચ duplicationનિયંત્રિત redundancy
Data Inconsistencyસામાન્ય સમસ્યાડેટા integrity જાળવાઈ રહે
Data Sharingમર્યાદિત sharingConcurrent access સપોર્ટ
સિક્યુરિટીFile-level securityUser-level access control
Backup & RecoveryManual processAutomatic mechanisms
  • ઘટાડેલ ડેટા Redundancy: એપ્લિકેશનોમાં duplicate ડેટા સ્ટોરેજ દૂર કરે છે
  • ડેટા Consistency: તમામ એપ્લિકેશનોમાં સમાન ડેટા સુનિશ્ચિત કરે છે
  • ડેટા Independence: એપ્લિકેશનો ડેટા structure ના ફેરફારોથી સ્વતંત્ર
  • Concurrent Access: અનેક યુઝર્સ એક સાથે ડેટા access કરી શકે છે
  • સિક્યુરિટી કંટ્રોલ: યુઝર authentication અને authorization mechanisms
  • Backup અને Recovery: આપોઆપ ડેટા સુરક્ષા અને પુનઃસ્થાપન
  • ડેટા Integrity: Constraint enforcement ડેટા ગુણવત્તા જાળવે છે

મેમરી ટ્રીક: “RDCCSBI - Really Don’t Copy, Control, Secure, Backup, Integrate”

પ્રશ્ન 1(ક OR) [7 ગુણ]
#

વિવિધ ડેટા મોડેલ્સની યાદી બનાવો. કોઈપણ બેને ટૂંકમાં સમજાવો.

જવાબ:

ડેટા મોડેલ્સની યાદી:

  • Hierarchical Data Model
  • Network Data Model
  • Relational Data Model
  • Object-Oriented Data Model
  • Entity-Relationship Model

ટેબલ:

મોડેલસ્ટ્રક્ચરફાયદાગેરફાયદા
Relational ModelTables with rows/columnsસરળ, લવચીકPerformance overhead
Network ModelGraph with records/linksકુશળ navigationજટિલ સ્ટ્રક્ચર

Relational Data Model:

  • સ્ટ્રક્ચર: ડેટા tables (relations) માં ગોઠવાયેલો
  • ઘટકો: Tuples (rows), attributes (columns), domains
  • ઓપરેશન્સ: Select, project, join operations ઉપલબ્ધ

Network Data Model:

  • સ્ટ્રક્ચર: Owner-member relationships સાથે graph-based
  • નેવિગેશન: Record types વચ્ચે સ્પષ્ટ links
  • લવચીકતા: Many-to-many relationships કુદરતી રીતે સપોર્ટેડ

મેમરી ટ્રીક: “HNROE - Have Network Relational Object Entity”

પ્રશ્ન 2(અ) [3 ગુણ]
#

મેપિંગ કાર્ડિનાલિટીઝ સમજાવો.

જવાબ:

ટેબલ:

Cardinalityપ્રતીકવર્ણનઉદાહરણ
One-to-One1:1દરેક entity એક બીજા સાથે સંબંધ ધરાવેPerson-Passport
One-to-Many1:Mએક entity અનેક સાથે સંબંધ ધરાવેDepartment-Employee
Many-to-OneM:1અનેક entities એક સાથે સંબંધ ધરાવેStudent-Course
Many-to-ManyM:Nઅનેક entities અનેક સાથે સંબંધStudent-Subject

ડાયાગ્રામ:

erDiagram
    PERSON ||--|| PASSPORT : "1:1"
    DEPARTMENT ||--o{ EMPLOYEE : "1:M"
    STUDENT }o--|| COURSE : "M:1"
    STUDENT }|--|{ SUBJECT : "M:N"
  • Cardinality constraints relationship participation limits વ્યાખ્યાયિત કરે છે
  • Maximum cardinality associations ની ઉપરી મર્યાદા સ્પષ્ટ કરે છે
  • ડેટાબેઝ ડિઝાઈન અને relationship modeling માં મદદ કરે છે

મેમરી ટ્રીક: “OMOM - One, One-Many, One-Many, Many-Many”

પ્રશ્ન 2(બ) [4 ગુણ]
#

Relational Algebra માં આઉટર જોઇન ઑપરેશન સમજાવો.

જવાબ:

ટેબલ:

Join Typeપ્રતીકપરિણામNULL Handling
Left Outer Joinબધા left + મેચિંગ rightઅનમેચ્ડ right માટે NULLs
Right Outer Joinબધા right + મેચિંગ leftઅનમેચ્ડ left માટે NULLs
Full Outer Joinબંને tables માંથી બધાઅનમેચ્ડ માટે NULLs

ઉદાહરણ:

EMPLOYEE ⟕ DEPARTMENT
- બધા employees શામેલ કરે છે
- Department વિના employees માટે NULL values
  • અનમેચ્ડ tuples ને સાચવે છે સ્પષ્ટ કરેલ relation(s) માંથી
  • NULL values ગુમ થયેલ attribute values ભરે છે
  • ત્રણ પ્રકાર: Left, Right, અને Full outer joins
  • અધૂરા ડેટા relationships ની reporting માટે ઉપયોગી

મેમરી ટ્રીક: “LRF - Left Right Full outer joins”

પ્રશ્ન 2(ક) [7 ગુણ]
#

Specialization અને Generalization ની concept ના ઉદાહરણ સાથે સમજાવો.

જવાબ:

ટેબલ:

Conceptદિશાપ્રક્રિયાઉદાહરણ
SpecializationTop-Downસામાન્યથી વિશિષ્ટVehicle → Car, Truck
GeneralizationBottom-Upવિશિષ્ટથી સામાન્યCar, Truck → Vehicle

ડાયાગ્રામ:

erDiagram
    VEHICLE {
        int vehicle_id
        string make
        string model
    }
    CAR {
        int doors
        string fuel_type
    }
    TRUCK {
        int payload
        string truck_type
    }
    
    VEHICLE ||--|| CAR : "ISA"
    VEHICLE ||--|| TRUCK : "ISA"

Specialization:

  • પ્રક્રિયા: Superclass માંથી subclasses બનાવવી
  • વારસો: Subclasses બધા superclass attributes વારસામાં મેળવે છે
  • વધારાના attributes: Subclasses ને વિશિષ્ટ ગુણધર્મો હોય છે

Generalization:

  • પ્રક્રિયા: સામાન્ય subclass features માંથી superclass બનાવવું
  • અમૂર્તીકરણ: સામાન્ય attributes અને relationships ઓળખે છે
  • સરળીકરણ: Hierarchy દ્વારા જટિલતા ઘટાડે છે

મેમરી ટ્રીક: “SG-TD-BU - Specialization General-To-Detail, Bottom-Up”

પ્રશ્ન 2(અ OR) [3 ગુણ]
#

Relational Algebra માં keys ના વિવિધ પ્રકારો સમજાવો.

જવાબ:

ટેબલ:

Key Typeવ્યાખ્યાઅનન્યતાઉદાહરણ
Super Keyકોઈપણ attribute set જે uniquely identifies કરેહા{ID, Name, Phone}
Candidate KeyMinimal super keyહા{ID}, {Email}
Primary Keyપસંદ કરેલ candidate keyહા{StudentID}
Foreign KeyPrimary key ને reference કરે છેના{DeptID} references Dept
  • Super Key: Tuples ને uniquely identifies કરે છે, વધારાના attributes હોઈ શકે
  • Candidate Key: Redundant attributes વિના minimal super key
  • Primary Key: Entity identification માટે પસંદ કરેલ candidate key
  • Foreign Key: Tables વચ્ચે referential integrity સ્થાપિત કરે છે

મેમરી ટ્રીક: “SCPF - Super Candidate Primary Foreign”

પ્રશ્ન 2(બ OR) [4 ગુણ]
#

યોગ્ય ઉદાહરણ સાથે ER-ડાયાગ્રામમાં attributes ના પ્રકારો સમજાવો.

જવાબ:

ટેબલ:

Attribute Typeપ્રતીકવર્ણનઉદાહરણ
SimpleOvalવિભાજિત કરી શકાતા નથીAge, Name
CompositeOval with sub-ovalsવિભાજિત કરી શકાય છેAddress (Street, City)
DerivedDashed ovalબીજા attributes માંથી ગણતરીAge from Birth_Date
Multi-valuedDouble ovalઅનેક valuesPhone_Numbers

ડાયાગ્રામ:

::|SPAthNdroAadengmreeeeet_sNso|C::itySCMDiouemmlrpptiloives-eivdtaelued
  • Simple attributes atomic અને અવિભાજ્ય છે
  • Composite attributes ને અર્થપૂર્ણ ઉપ-ભાગો હોય છે
  • Derived attributes અન્ય attribute values માંથી computed છે
  • Multi-valued attributes entity દીઠ અનેક values સ્ટોર કરે છે

મેમરી ટ્રીક: “SCDM - Simple Composite Derived Multi-valued”

પ્રશ્ન 2(ક OR) [7 ગુણ]
#

SELECT, PROJECT, UNION અને SET-INTERSECTION ઓપરેશનને યોગ્ય ઉદાહરણ સાથે સમજાવો.

જવાબ:

ટેબલ:

Operationપ્રતીકહેતુઉદાહરણ
SELECTσRows filter કરવાσ(salary > 50000)(Employee)
PROJECTπColumns પસંદ કરવાπ(name, age)(Employee)
UNIONRelations જોડવાR ∪ S
INTERSECTIONસામાન્ય tuplesR ∩ S

ઉદાહરણો:

SELECT Operation:

σ(age > 25)(STUDENT)
- 25 વર્ષથી વધુ ઉંમરના students return કરે

PROJECT Operation:

π(name, course)(STUDENT)  
- ફક્ત name અને course columns return કરે

UNION Operation:

SCIENCE_STUDENTS ∪ ARTS_STUDENTS
- બંને streams ના students જોડે છે

INTERSECTION Operation:

MALE_STUDENTS ∩ SPORTS_STUDENTS
- સ્પોર્ટ્સ રમતા પુરુષ વિદ્યાર્થીઓ return કરે

મેમરી ટ્રીક: “SPUI - Select Project Union Intersection”

પ્રશ્ન 3(અ) [3 ગુણ]
#

Primary Key અને Foreign Key constraint ને અલગ કરો.

જવાબ:

ટેબલ:

પાસુંPrimary KeyForeign Key
હેતુUnique identificationReferential integrity
NULL Valuesમંજૂર નથીમંજૂર છે
અનન્યતાUnique હોવી જ જોઈએDuplicate હોઈ શકે
Table દીઠ સંખ્યાફક્ત એકઅનેક મંજૂર
  • Primary Key: Table ની અંદર entity integrity સુનિશ્ચિત કરે છે
  • Foreign Key: Tables વચ્ચે referential integrity જાળવે છે
  • અનન્યતા: Primary keys unique, foreign keys repeat થઈ શકે
  • NULL handling: Primary keys ક્યારેય NULL નથી, foreign keys NULL હોઈ શકે

મેમરી ટ્રીક: “PU-FN - Primary Unique, Foreign Nullable”

પ્રશ્ન 3(બ) [4 ગુણ]
#

DUAL table અને SYSDATE ઉદાહરણ સાથે સમજાવો.

જવાબ:

ટેબલ:

ઘટકપ્રકારહેતુઉદાહરણ
DUALVirtual tableExpressions ટેસ્ટ કરવાSELECT 2+3 FROM DUAL
SYSDATESystem functionવર્તમાન date/timeSELECT SYSDATE FROM DUAL

DUAL Table:

  • Virtual table એક row અને એક column સાથે
  • ટેસ્ટિંગ માટે વપરાય છે expressions અને functions
  • Oracle-specific pseudo table

SYSDATE Function:

  • વર્તમાન return કરે છે system date અને time
  • આપોઆપ અપડેટ system clock સાથે
  • Date/time operations સપોર્ટેડ

ઉદાહરણો:

SELECT SYSDATE FROM DUAL;
SELECT SYSDATE + 30 FROM DUAL;  -- 30 દિવસ પછી

મેમરી ટ્રીક: “DT-ST - DUAL Testing, SYSDATE Time”

પ્રશ્ન 3(ક) [7 ગુણ]
#

વિવિધ numeric function નો ઉપયોગ કરવા માટે SQL પ્રશ્નો લખો:

જવાબ:

ટેબલ:

FunctionહેતુSQL Queryપરિણામ
TRUNCInteger valueSELECT TRUNC(125.25) FROM DUAL;125
ABSAbsolute valueSELECT ABS(-15) FROM DUAL;15
CEILCeiling valueSELECT CEIL(55.65) FROM DUAL;56
FLOORFloor valueSELECT FLOOR(100.2) FROM DUAL;100

SQL Queries:

-- (a) 125.25 નું integer મૂલ્ય દર્શાવો
SELECT TRUNC(125.25) FROM DUAL;

-- (b) (-15) નું absolute મૂલ્ય દર્શાવો
SELECT ABS(-15) FROM DUAL;

-- (c) 55.65 ની ceil ની કિંમત દર્શાવો
SELECT CEIL(55.65) FROM DUAL;

-- (d) 100.2 નું floor મૂલ્ય દર્શાવો
SELECT FLOOR(100.2) FROM DUAL;

-- (e) 16 નું વર્ગમૂળ દર્શાવો
SELECT SQRT(16) FROM DUAL;

-- (f) e³ ની કિંમત બતાવો
SELECT EXP(3) FROM DUAL;

-- (g) 12 raised to 6 દર્શાવો
SELECT POWER(12, 6) FROM DUAL;

-- (h) 24 મોડ 2 નું પરિણામ દર્શાવો
SELECT MOD(24, 2) FROM DUAL;

-- (i) sign(-25), sign(25), sign(0) નું આઉટપુટ બતાવો
SELECT SIGN(-25), SIGN(25), SIGN(0) FROM DUAL;

મેમરી ટ્રીક: “TACFSEPM - TRUNC ABS CEIL FLOOR SQRT EXP POWER MOD”

પ્રશ્ન 3(અ OR) [3 ગુણ]
#

યોગ્ય ઉદાહરણ સાથે Unique અને Check સમજાવો.

જવાબ:

ટેબલ:

ConstraintહેતુDuplicatesઉદાહરણ
UNIQUEDuplicates અટકાવવામંજૂર નથીEmail address
CHECKડેટા validate કરવાValue restrictionsAge > 0

ઉદાહરણો:

-- UNIQUE Constraint
CREATE TABLE Student (
    email VARCHAR(50) UNIQUE,
    phone VARCHAR(15) UNIQUE
);

-- CHECK Constraint  
CREATE TABLE Employee (
    age NUMBER CHECK (age >= 18),
    salary NUMBER CHECK (salary > 0)
);
  • UNIQUE constraint column માં duplicate values અટકાવે છે
  • CHECK constraint specified conditions વિરુદ્ધ ડેટા validate કરે છે
  • અનેક constraints single column પર લાગુ કરી શકાય

મેમરી ટ્રીક: “UC-DV - Unique no Copy, Check Validates”

પ્રશ્ન 3(બ OR) [4 ગુણ]
#

PL/SQL બ્લોકની રચના સમજાવો.

જવાબ:

ટેબલ:

વિભાગજરૂરીહેતુઉદાહરણ
DECLAREવૈકલ્પિકVariable declarationsvar_name VARCHAR2(20);
BEGINફરજિયાતExecutable statementsSELECT … INTO var;
EXCEPTIONવૈકલ્પિકError handlingWHEN OTHERS THEN …
ENDફરજિયાતBlock terminationEND;

ડાયાગ્રામ:

DECLARE
    -- Variable declarations
BEGIN  
    -- Executable statements
EXCEPTION
    -- Error handling
END;
  • DECLARE section: Variable અને cursor declarations
  • BEGIN-END: ફરજિયાત executable section
  • EXCEPTION section: Error handling routines
  • Nested blocks: PL/SQL blocks nested થઈ શકે છે

મેમરી ટ્રીક: “DBE-E - Declare Begin Exception End”

પ્રશ્ન 3(ક OR) [7 ગુણ]
#

નીચેના tables ના પ્રમાણે પ્રશ્નો હલ કરો:

જવાબ:

I) PRIMARY KEY તરીકે branchId સાથે બ્રાન્ચ ટેબલ બનાવો:

CREATE TABLE BRANCH (
    branchid VARCHAR2(10) PRIMARY KEY,
    branchname VARCHAR2(50) NOT NULL,
    address VARCHAR2(100)
);

II) EMPLOYEE ટેબલને પ્રાથમિક કી તરીકે empid સાથે બનાવો:

CREATE TABLE EMPLOYEE (
    empid VARCHAR2(10) PRIMARY KEY,
    name VARCHAR2(50) NOT NULL,
    post VARCHAR2(30),
    gender CHAR(1) CHECK (gender IN ('M', 'F')),
    birthdate DATE,
    salary NUMBER(10,2),
    branchid VARCHAR2(10),
    FOREIGN KEY (branchid) REFERENCES BRANCH(branchid)
);

III) અમદાવાદ શાખામાં કામ કરતા તમામ કર્મચારીઓને શોધો:

SELECT e.* FROM EMPLOYEE e, BRANCH b 
WHERE e.branchid = b.branchid 
AND b.branchname = 'Ahmedabad';

IV) 1998 માં જન્મેલા તમામ કર્મચારીઓને શોધો:

SELECT * FROM EMPLOYEE 
WHERE EXTRACT(YEAR FROM birthdate) = 1998;

V) 5000 થી વધુ પગાર ધરાવતા તમામ મહિલા કર્મચારીઓને શોધો:

SELECT * FROM EMPLOYEE 
WHERE gender = 'F' AND salary > 5000;

VI) અજય જ્યાં કામ કરે છે તે શાખાનું સરનામું શોધો:

SELECT b.address FROM EMPLOYEE e, BRANCH b
WHERE e.branchid = b.branchid 
AND e.name = 'Ajay';

મેમરી ટ્રીક: “CBEFFA - Create Branch Employee Find Female Address”

પ્રશ્ન 4(અ) [3 ગુણ]
#

યોગ્ય ઉદાહરણ સાથે રેફરન્શિયલ ઇન્ટિગ્રિટી સમજાવો.

જવાબ:

ટેબલ:

પાસુંવર્ણનઉદાહરણ
વ્યાખ્યાForeign key એ વર્તમાન primary key ને reference કરવી જ જોઈએEmployee.deptid → Department.deptid
હેતુડેટા consistency જાળવવીOrphan records અટકાવવા
ક્રિયાઓCASCADE, SET NULL, RESTRICTON DELETE CASCADE

ડાયાગ્રામ:

erDiagram
    DEPARTMENT {
        int deptid PK
        string deptname
    }
    EMPLOYEE {
        int empid PK
        string name
        int deptid FK
    }
    DEPARTMENT ||--o{ EMPLOYEE : "references"
  • રેફરન્શિયલ ઇન્ટિગ્રિટી સુનિશ્ચિત કરે છે કે foreign key values referenced table માં અસ્તિત્વ ધરાવે
  • Orphan records constraint enforcement દ્વારા અટકાવાય છે
  • Cascade operations updates/deletes દરમિયાન consistency જાળવે છે

મેમરી ટ્રીક: “RIO - Referential Integrity prevents Orphans”

પ્રશ્ન 4(બ) [4 ગુણ]
#

આંશિક અને સંપૂર્ણ Functional Dependency ને અલગ કરો.

જવાબ:

ટેબલ:

Dependency Typeવ્યાખ્યાઉદાહરણજરૂરિયાત
PartialComposite key ના ભાગ પર આધાર(StudentID, CourseID) → StudentNameComposite primary key
Fullસંપૂર્ણ key પર આધાર(StudentID, CourseID) → GradeComplete key needed

ઉદાહરણો:

Partial Functional Dependency:

(StudentID, CourseID) → StudentName
StudentName ફક્ત StudentID પર આધાર રાખે છે, CourseID પર નહીં

Full Functional Dependency:

(StudentID, CourseID) → Grade  
Grade બંને StudentID અને CourseID પર આધાર રાખે છે
  • Partial dependency ડેટા redundancy અને anomalies ઉત્પન્ન કરે છે
  • Full dependency યોગ્ય normalization માટે જરૂરી છે
  • 2NF partial functional dependencies દૂર કરે છે

મેમરી ટ્રીક: “PF-CF - Partial Few, Complete Full”

પ્રશ્ન 4(ક) [7 ગુણ]
#

ઉદાહરણ સાથે તૃતીય Normal Form સમજાવો.

જવાબ:

3rd Normal Form જરૂરિયાતો:

  1. 2NF માં હોવું જ જોઈએ
  2. Transitive dependencies ન હોવી જોઈએ
  3. Non-key attributes ફક્ત primary key પર આધાર રાખવા જોઈએ

3NF પહેલાંનું ટેબલ:

StudentIDStudentNameCourseIDCourseNameInstructorIDInstructorName
S1JohnC1MathI1Dr. Smith
S2JaneC1MathI1Dr. Smith

સમસ્યાઓ:

  • Transitive dependency: StudentID → CourseID → InstructorName
  • Update anomaly: Instructor name બદલવા માટે અનેક updates જરૂરી
  • Delete anomaly: Student દૂર કરવાથી instructor information ખોવાઈ શકે

3NF સોલ્યુશન:

STUDENT ટેબલ:

StudentIDStudentNameCourseID
S1JohnC1
S2JaneC1

COURSE ટેબલ:

CourseIDCourseNameInstructorID
C1MathI1

INSTRUCTOR ટેબલ:

InstructorIDInstructorName
I1Dr. Smith

મેમરી ટ્રીક: “3NF-NT - 3rd Normal Form No Transitives”

પ્રશ્ન 4(અ OR) [3 ગુણ]
#

નોર્મલાઇઝેશનનું મહત્વ સમજાવો.

જવાબ:

ટેબલ:

ફાયદોહલ થતી સમસ્યાપરિણામ
Redundancy ઘટાડવીDuplicate dataStorage efficiency
Anomalies દૂર કરવીUpdate/Insert/Delete issuesData consistency
Integrity સુધારવીData inconsistencyવિશ્વસનીય માહિતી
  • ડેટા redundancy ઘટાડવી યોગ્ય table decomposition દ્વારા
  • Update anomalies દૂર કરવી duplicate information દૂર કરીને
  • Storage space ઓપ્ટિમાઇઝ કરવી normalized structure દ્વારા
  • ડેટા integrity જાળવવી referential constraints સાથે
  • Maintenance સરળ બનાવવી logical table organization સાથે

મેમરી ટ્રીક: “RESIM - Redundancy Eliminated, Storage Improved, Maintenance”

પ્રશ્ન 4(બ OR) [4 ગુણ]
#

પ્રાઇમ એટ્રિબ્યુટ્સ અને નોન-પ્રાઇમ એટ્રિબ્યુટ્સને અલગ કરો.

જવાબ:

ટેબલ:

Attribute Typeવ્યાખ્યાભૂમિકાઉદાહરણ
PrimeCandidate key નો ભાગKey formationStudentID, CourseID
Non-Primeકોઈપણ candidate key નો ભાગ નથીData storageStudentName, Grade

ઉદાહરણ:

ENROLLMENT (StudentID, CourseID, Grade, Semester)
Candidate Key: (StudentID, CourseID)

Prime Attributes: StudentID, CourseID
Non-Prime Attributes: Grade, Semester
  • Prime attributes candidate key formation માં ભાગ લે છે
  • Non-Prime attributes વધારાની entity information પ્રદાન કરે છે
  • Functional dependencies આ વચ્ચે normal forms નક્કી કરે છે
  • 2NF જરૂરી છે non-prime પર prime ની કોઈ partial dependencies ન હોવી

મેમરી ટ્રીક: “PN-KD - Prime in Key, Non-prime for Data”

પ્રશ્ન 4(ક OR) [7 ગુણ]
#

2nd Normal Form ઉદાહરણ સાથે સમજાવો.

જવાબ:

2nd Normal Form જરૂરિયાતો:

  1. 1NF માં હોવું જ જોઈએ
  2. Partial functional dependencies ન હોવી જોઈએ
  3. બધા non-key attributes primary key પર સંપૂર્ણ આધાર રાખવા જોઈએ

2NF પહેલાંનું ટેબલ:

StudentIDCourseIDStudentNameCourseNameGrade
S1C1JohnMathA
S1C2JohnPhysicsB
S2C1JaneMathA

સમસ્યાઓ:

  • Partial Dependencies: StudentID → StudentName, CourseID → CourseName
  • Update Anomaly: Student name બદલવા માટે અનેક updates જરૂરી
  • Insert Anomaly: Student enrollment વિના course ઉમેરી શકાતો નથી

2NF સોલ્યુશન:

STUDENT ટેબલ:

StudentIDStudentName
S1John
S2Jane

COURSE ટેબલ:

CourseIDCourseName
C1Math
C2Physics

ENROLLMENT ટેબલ:

StudentIDCourseIDGrade
S1C1A
S1C2B
S2C1A

મેમરી ટ્રીક: “2NF-FD - 2nd Normal Form Full Dependencies”

પ્રશ્ન 5(અ) [3 ગુણ]
#

ટ્રાન્ઝેક્શન સ્ટેટ્સને યોગ્ય ડાયાગ્રામ સાથે સમજાવો.

જવાબ:

ડાયાગ્રામ:

stateDiagram-v2
		direction LR
    [*] --> Active
    Active --> Partially_Committed : commit
    Active --> Failed : abort/error
    Partially_Committed --> Committed : write complete
    Partially_Committed --> Failed : write failure
    Failed --> Aborted : rollback
    Committed --> [*]
    Aborted --> [*]

ટેબલ:

સ્થિતિવર્ણનઆગળની સ્થિતિ
Activeટ્રાન્ઝેક્શન execute થઈ રહ્યું છેPartially Committed/Failed
Partially Committedછેલ્લું statement execute થયુંCommitted/Failed
Committedટ્રાન્ઝેક્શન સફળEnd
Failedસામાન્ય રીતે આગળ વધી શકતું નથીAborted
Abortedટ્રાન્ઝેક્શન rolled backEnd
  • Active state: ટ્રાન્ઝેક્શન હાલમાં operations execute કરી રહ્યું છે
  • Partially committed: બધા operations execute થયા, commit ની રાહ જોઈ રહ્યું છે
  • Failed state: error આવી, ટ્રાન્ઝેક્શન ચાલુ રાખી શકતું નથી

મેમરી ટ્રીક: “APCFA - Active Partial Commit Fail Abort”

પ્રશ્ન 5(બ) [4 ગુણ]
#

કોઈપણ બે DDL commands ને યોગ્ય ઉદાહરણ સાથે સમજાવો.

જવાબ:

ટેબલ:

કમાન્ડહેતુSyntaxઉદાહરણ
CREATEડેટાબેઝ ઓબ્જેક્ટ્સ બનાવવાCREATE TABLECREATE TABLE Student(…)
ALTERવર્તમાન ઓબ્જેક્ટ્સ modify કરવાALTER TABLEALTER TABLE Student ADD…

CREATE કમાન્ડ:

CREATE TABLE EMPLOYEE (
    empid NUMBER(5) PRIMARY KEY,
    name VARCHAR2(50) NOT NULL,
    salary NUMBER(10,2),
    deptid NUMBER(3)
);

ALTER કમાન્ડ:

-- નવો column ઉમેરવો
ALTER TABLE EMPLOYEE ADD phone VARCHAR2(15);

-- વર્તમાન column modify કરવો
ALTER TABLE EMPLOYEE MODIFY name VARCHAR2(100);

-- Column drop કરવો
ALTER TABLE EMPLOYEE DROP COLUMN phone;
  • CREATE નવા ડેટાબેઝ structures સ્થાપિત કરે છે
  • ALTER વર્તમાન table definitions modify કરે છે
  • DDL commands changes ને auto-commit કરે છે
  • Schema changes ડેટા structure ને કાયમી અસર કરે છે

મેમરી ટ્રીક: “CA-NM - CREATE Adds, ALTER Modifies”

પ્રશ્ન 5(ક) [7 ગુણ]
#

ACID ગુણધર્મો વિગતવાર સમજાવો.

જવાબ:

ટેબલ:

ગુણધર્મવ્યાખ્યાહેતુઉદાહરણ
Atomicityબધું અથવા કંઈ નહીં executionટ્રાન્ઝેક્શન integrityBank transfer
Consistencyડેટાબેઝ valid રહે છેડેટા integrityBalance constraints
IsolationConcurrent execution independenceConcurrency controlઅલગ transactions
DurabilityCommitted changes કાયમીRecovery guaranteePower failure survival

Atomicity:

  • બધા operations ટ્રાન્ઝેક્શનમાં સંપૂર્ણ execute થાય અથવા બિલકુલ ન થાય
  • Rollback mechanism failure પર partial changes undo કરે છે
  • ઉદાહરણ: Bank transfer માં debit અને credit બંને operations જરૂરી

Consistency:

  • ડેટાબેઝ state ટ્રાન્ઝેક્શન પહેલાં અને પછી valid રહે છે
  • Integrity constraints execution દરમિયાન જાળવાય છે
  • ઉદાહરણ: Account balance ક્યારેય negative નથી થતું

Isolation:

  • Concurrent transactions એકબીજા સાથે interference કરતા નથી
  • Locking mechanisms interference અટકાવે છે
  • ઉદાહરણ: બે યુઝર્સ એક સાથે same account update કરી રહ્યા છે

Durability:

  • Committed changes system failures પછી પણ ટકે છે
  • Write-ahead logging recovery capability સુનિશ્ચિત કરે છે
  • ઉદાહરણ: Commit પછી power outage થતાં પણ ટ્રાન્ઝેક્શન ટકે છે

મેમરી ટ્રીક: “ACID - Atomicity Consistency Isolation Durability”

પ્રશ્ન 5(અ OR) [3 ગુણ]
#

two phase લોકિંગ ટેકનિક શું છે?

જવાબ:

ટેબલ:

ફેઝક્રિયાવર્ણનLock Operations
Growing PhaseLocks મેળવવાટ્રાન્ઝેક્શન જરૂરી locks મેળવે છેફક્ત LOCK
Shrinking PhaseLocks છોડવાટ્રાન્ઝેક્શન locks એક પછી એક છોડે છેફક્ત UNLOCK

ડાયાગ્રામ:

NumberGPrhooafwsTieiLnmogecksShPrhianskeing
  • બે ફેઝ: Growing (lock acquisition) અને Shrinking (lock release)
  • કોઈ lock upgrades પ્રથમ unlock operation પછી મંજૂર નથી
  • Deadlocks અટકાવે છે જ્યારે યોગ્ય રીતે implemented હોય
  • Serializability guarantee concurrent transactions માટે

મેમરી ટ્રીક: “2PL-GS - Two Phase Locking Growing Shrinking”

પ્રશ્ન 5(બ OR) [4 ગુણ]
#

કોઈપણ બે DML આદેશોને યોગ્ય ઉદાહરણ સાથે સમજાવો.

જવાબ:

ટેબલ:

કમાન્ડહેતુSyntaxઉદાહરણ
INSERTનવા records ઉમેરવાINSERT INTOINSERT INTO Student VALUES…
UPDATEવર્તમાન records modify કરવાUPDATE SETUPDATE Student SET name=…

INSERT કમાન્ડ:

-- Single record insert કરવો
INSERT INTO EMPLOYEE (empid, name, salary, deptid)
VALUES (101, 'John Smith', 50000, 10);

-- Multiple records insert કરવા
INSERT INTO EMPLOYEE 
VALUES (102, 'Jane Doe', 45000, 20),
       (103, 'Bob Wilson', 55000, 10);

UPDATE કમાન્ડ:

-- Single record update કરવો
UPDATE EMPLOYEE 
SET salary = 60000 
WHERE empid = 101;

-- Multiple records update કરવા
UPDATE EMPLOYEE 
SET salary = salary * 1.10 
WHERE deptid = 10;
  • INSERT table માં નવા rows ઉમેરે છે
  • UPDATE વર્તમાન row values modify કરે છે
  • WHERE clause update conditions સ્પષ્ટ કરે છે
  • DML commands explicit commit જરૂરી છે

મેમરી ટ્રીક: “IU-AM - INSERT Adds, UPDATE Modifies”

પ્રશ્ન 5(ક OR) [7 ગુણ]
#

concurrency control ની સમસ્યાઓની યાદી બનાવો અને કોઈપણ બેને વિગતવાર સમજાવો.

જવાબ:

Concurrency Control સમસ્યાઓ:

  1. Lost Update Problem
  2. Dirty Read Problem
  3. Unrepeatable Read Problem
  4. Phantom Read Problem
  5. Inconsistent Analysis Problem

ટેબલ:

સમસ્યાવર્ણનઉકેલ
Lost Updateએક ટ્રાન્ઝેક્શન બીજાના changes overwrite કરે છેLocking mechanisms
Dirty ReadUncommitted data વાંચવોRead committed isolation

Lost Update સમસ્યા:

  • સ્થિતિ: બે ટ્રાન્ઝેક્શન same data વાંચે છે, modify કરે છે, અને પાછું લખે છે
  • ઉદાહરણ:
    • T1 account balance વાંચે છે: $1000
    • T2 account balance વાંચે છે: $1000
    • T1 $100 ઉમેરે છે, $1100 લખે છે
    • T2 $50 બાદ કરે છે, $950 લખે છે
    • પરિણામ: T1 નું update ખોવાઈ ગયું, અંતિમ balance ખોટું

Dirty Read સમસ્યા:

  • સ્થિતિ: ટ્રાન્ઝેક્શન બીજા uncommitted ટ્રાન્ઝેક્શન દ્વારા modified ડેટા વાંચે છે
  • ઉદાહરણ:
    • T1 account balance $1000 થી $1500 કરે છે
    • T2 balance $1500 તરીકે વાંચે છે (uncommitted data)
    • T1 fail થાય છે અને $1000 પર rollback કરે છે
    • પરિણામ: T2 એ calculations માટે ખોટો ડેટા વાપર્યો

ઉકેલો:

  • Locking protocols: Same data ને simultaneous access અટકાવે છે
  • Isolation levels: Uncommitted changes ની visibility control કરે છે
  • Timestamp ordering: Timestamps ના આધારે transactions ને order કરે છે
  • Multi-version concurrency: અનેક ડેટા versions જાળવે છે

મેમરી ટ્રીક: “LDUI - Lost Dirty Unrepeatable Inconsistent”