<!
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, ini al-scale=1.0">
< tle>DBMS Comprehensive Quiz - 60 Ques ons</ tle>
<style>
*{
margin: 0;
padding: 0;
box-sizing: border-box;
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
color: #333;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
.container {
max-width: 900px;
margin: 0 auto;
padding: 20px;
.header {
text-align: center;
background: white;
padding: 30px;
border-radius: 15px;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
margin-bo om: 30px;
.header h1 {
color: #2c3e50;
margin-bo om: 10px;
font-size: 2.5em;
.header p {
color: #7f8c8d;
font-size: 1.1em;
.quiz-info {
background: white;
padding: 20px;
border-radius: 10px;
margin-bo om: 20px;
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
.quiz-info h3 {
color: #2c3e50;
margin-bo om: 15px;
.info-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
.info-item {
background: #f8f9fa;
padding: 15px;
border-radius: 8px;
text-align: center;
border-le : 4px solid #3498db;
.ques on-container {
background: white;
margin-bo om: 25px;
padding: 25px;
border-radius: 12px;
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
transi on: transform 0.2s ease;
.ques on-container:hover {
transform: translateY(-2px);
.ques on-header {
display: flex;
jus fy-content: space-between;
align-items: center;
margin-bo om: 15px;
padding-bo om: 10px;
border-bo om: 2px solid #ecf0f1;
.ques on-number {
background: #3498db;
color: white;
padding: 8px 15px;
border-radius: 20px;
font-weight: bold;
.ques on-type {
background: #e74c3c;
color: white;
padding: 5px 12px;
border-radius: 15px;
font-size: 0.9em;
}
.ques on-type.fill-blank {
background: #f39c12;
.ques on-text {
font-size: 1.1em;
margin-bo om: 20px;
color: #2c3e50;
line-height: 1.8;
.op ons {
display: grid;
gap: 12px;
.op on {
display: flex;
align-items: center;
padding: 12px 15px;
background: #f8f9fa;
border: 2px solid #e9ecef;
border-radius: 8px;
cursor: pointer;
transi on: all 0.3s ease;
.op on:hover {
background: #e3f2fd;
border-color: #2196f3;
.op on input[type="radio"] {
margin-right: 12px;
transform: scale(1.2);
.fill-blank-input {
width: 100%;
padding: 12px;
border: 2px solid #ddd;
border-radius: 8px;
font-size: 1em;
transi on: border-color 0.3s ease;
.fill-blank-input:focus {
outline: none;
border-color: #3498db;
box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);
.submit-sec on {
text-align: center;
margin-top: 40px;
padding: 30px;
background: white;
border-radius: 15px;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
.submit-btn {
background: linear-gradient(45deg, #3498db, #2980b9);
color: white;
padding: 15px 40px;
border: none;
border-radius: 25px;
font-size: 1.2em;
font-weight: bold;
cursor: pointer;
transi on: all 0.3s ease;
box-shadow: 0 5px 15px rgba(52, 152, 219, 0.3);
.submit-btn:hover {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(52, 152, 219, 0.4);
.results {
background: white;
padding: 30px;
border-radius: 15px;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
margin-top: 30px;
display: none;
.score-display {
text-align: center;
margin-bo om: 30px;
.score-circle {
width: 150px;
height: 150px;
border-radius: 50%;
margin: 0 auto 20px;
display: flex;
align-items: center;
jus fy-content: center;
font-size: 2em;
font-weight: bold;
color: white;
.detailed-results {
margin-top: 30px;
.result-item {
padding: 15px;
margin-bo om: 15px;
border-radius: 8px;
border-le : 4px solid #ddd;
.result-item.correct {
background: #d4edda;
border-le -color: #28a745;
.result-item.incorrect {
background: #f8d7da;
border-le -color: #dc3545;
.progress-bar {
width: 100%;
height: 6px;
background: #ecf0f1;
border-radius: 3px;
margin-bo om: 20px;
overflow: hidden;
.progress-fill {
height: 100%;
background: linear-gradient(45deg, #3498db, #2980b9);
width: 0%;
transi on: width 0.5s ease;
@media (max-width: 768px) {
.container {
padding: 10px;
.header h1 {
font-size: 2em;
.ques on-header {
flex-direc on: column;
gap: 10px;
.info-grid {
grid-template-columns: 1fr;
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1> DBMS Comprehensive Quiz</h1>
<p>Test your knowledge across all 4 units with 60 comprehensive ques ons</p>
</div>
<div class="quiz-info">
<h3>Quiz Informa on</h3>
<div class="info-grid">
<div class="info-item">
<strong>Total Ques ons</strong><br>
60 Ques ons
</div>
<div class="info-item">
<strong>Ques on Types</strong><br>
MCQ & Fill-in-blanks
</div>
<div class="info-item">
<strong>Coverage</strong><br>
All 4 Units
</div>
<div class="info-item">
<strong>Time</strong><br>
No Time Limit
</div>
</div>
</div>
<div class="progress-bar">
<div class="progress-fill" id="progressFill"></div>
</div>
<form id="quizForm">
<!-- Unit 1: Introduc on to DBMS (15 ques ons) -->
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q1</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which of the following is NOT a characteris c of the
database approach?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q1" value="a">
Self-describing nature of a database system
</label>
<label class="op on">
<input type="radio" name="q1" value="b">
Insula on between programs and data
</label>
<label class="op on">
<input type="radio" name="q1" value="c">
Data redundancy and inconsistency
</label>
<label class="op on">
<input type="radio" name="q1" value="d">
Support for mul ple views of data
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q2</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">The __________ are the people who work to maintain
the database system environment but are not ac vely interested in the database
contents.</div>
<input type="text" name="q2" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q3</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which actor on the scene is responsible for defining the
conceptual and internal schemas?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q3" value="a">
Database Administrator (DBA)
</label>
<label class="op on">
<input type="radio" name="q3" value="b">
Database Designer
</label>
<label class="op on">
<input type="radio" name="q3" value="c">
End User
</label>
<label class="op on">
<input type="radio" name="q3" value="d">
System Analyst
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q4</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">What is the main advantage of using DBMS approach
over file systems?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q4" value="a">
Reduced storage cost
</label>
<label class="op on">
<input type="radio" name="q4" value="b">
Controlling redundancy and inconsistency
</label>
<label class="op on">
<input type="radio" name="q4" value="c">
Faster processing speed
</label>
<label class="op on">
<input type="radio" name="q4" value="d">
Simpler programming
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q5</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">The __________ model uses a collec on of tables to
represent both data and rela onships among those data.</div>
<input type="text" name="q5" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q6</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">In the three-schema architecture, which schema
describes the structure of the whole database?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q6" value="a">
External Schema
</label>
<label class="op on">
<input type="radio" name="q6" value="b">
Conceptual Schema
</label>
<label class="op on">
<input type="radio" name="q6" value="c">
Internal Schema
</label>
<label class="op on">
<input type="radio" name="q6" value="d">
Physical Schema
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q7</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Physical data independence refers to:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q7" value="a">
Immunity of external schemas to changes in conceptual schema
</label>
<label class="op on">
<input type="radio" name="q7" value="b">
Immunity of conceptual schema to changes in internal schema
</label>
<label class="op on">
<input type="radio" name="q7" value="c">
Immunity of applica ons to changes in storage structure
</label>
<label class="op on">
<input type="radio" name="q7" value="d">
Both b and c
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q8</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">__________ is a language used by the DBA and
database designers to define both schemas.</div>
<input type="text" name="q8" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q9</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">In client-server architecture, where does the DBMS
so ware reside?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q9" value="a">
Client machine only
</label>
<label class="op on">
<input type="radio" name="q9" value="b">
Server machine only
</label>
<label class="op on">
<input type="radio" name="q9" value="c">
Both client and server machines
</label>
<label class="op on">
<input type="radio" name="q9" value="d">
Network infrastructure
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q10</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which of the following is an example of a hierarchical
data model?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q10" value="a">
IMS (Informa on Management System)
</label>
<label class="op on">
<input type="radio" name="q10" value="b">
Oracle
</label>
<label class="op on">
<input type="radio" name="q10" value="c">
MongoDB
</label>
<label class="op on">
<input type="radio" name="q10" value="d">
MySQL
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q11</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">The __________ describes how data is stored physically
on storage media.</div>
<input type="text" name="q11" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q12</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Database instances refer to:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q12" value="a">
The actual data stored in the database at a par cular moment
</label>
<label class="op on">
<input type="radio" name="q12" value="b">
The overall design of the database
</label>
<label class="op on">
<input type="radio" name="q12" value="c">
The database management system so ware
</label>
<label class="op on">
<input type="radio" name="q12" value="d">
The database schema defini on
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q13</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which database language is used for querying and
upda ng the database?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q13" value="a">
DDL (Data Defini on Language)
</label>
<label class="op on">
<input type="radio" name="q13" value="b">
DML (Data Manipula on Language)
</label>
<label class="op on">
<input type="radio" name="q13" value="c">
DCL (Data Control Language)
</label>
<label class="op on">
<input type="radio" name="q13" value="d">
TCL (Transac on Control Language)
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q14</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">__________ users access the database through
applica on programs without being aware of the DBMS.</div>
<input type="text" name="q14" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q15</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">In centralized database architecture, all database
processing is done at:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q15" value="a">
Mul ple distributed loca ons
</label>
<label class="op on">
<input type="radio" name="q15" value="b">
Client worksta ons
</label>
<label class="op on">
<input type="radio" name="q15" value="c">
A single central loca on
</label>
<label class="op on">
<input type="radio" name="q15" value="d">
Network nodes
</label>
</div>
</div>
<!-- Unit 2: En ty-Rela onship Model (15 ques ons) -->
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q16</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">In ER model, a rela onship between two en ty sets is
called:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q16" value="a">
Binary rela onship
</label>
<label class="op on">
<input type="radio" name="q16" value="b">
Unary rela onship
</label>
<label class="op on">
<input type="radio" name="q16" value="c">
Ternary rela onship
</label>
<label class="op on">
<input type="radio" name="q16" value="d">
Complex rela onship
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q17</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">An __________ is a thing or object in the real world that
is dis nguishable from other objects.</div>
<input type="text" name="q17" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q18</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which type of a ribute can be divided into smaller
subparts?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q18" value="a">
Simple a ribute
</label>
<label class="op on">
<input type="radio" name="q18" value="b">
Composite a ribute
</label>
<label class="op on">
<input type="radio" name="q18" value="c">
Derived a ribute
</label>
<label class="op on">
<input type="radio" name="q18" value="d">
Mul -valued a ribute
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q19</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">A key that consists of more than one a ribute is
called:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q19" value="a">
Simple key
</label>
<label class="op on">
<input type="radio" name="q19" value="b">
Composite key
</label>
<label class="op on">
<input type="radio" name="q19" value="c">
Foreign key
</label>
<label class="op on">
<input type="radio" name="q19" value="d">
Candidate key
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q20</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">A __________ rela onship exists when each en ty in
the rela onship set is associated with exactly one en ty in the other set.</div>
<input type="text" name="q20" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q21</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">In ER diagrams, en es are represented by:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q21" value="a">
Rectangles
</label>
<label class="op on">
<input type="radio" name="q21" value="b">
Diamonds
</label>
<label class="op on">
<input type="radio" name="q21" value="c">
Ellipses
</label>
<label class="op on">
<input type="radio" name="q21" value="d">
Circles
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q22</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">What is a weak en ty type?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q22" value="a">
An en ty that has no a ributes
</label>
<label class="op on">
<input type="radio" name="q22" value="b">
An en ty that cannot exist without another en ty
</label>
<label class="op on">
<input type="radio" name="q22" value="c">
An en ty with only one rela onship
</label>
<label class="op on">
<input type="radio" name="q22" value="d">
An en ty with weak constraints
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q23</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">In ER diagrams, rela onships are represented by
__________ shapes.</div>
<input type="text" name="q23" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q24</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">The role of an en ty set in a rela onship set is
called:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q24" value="a">
En ty role
</label>
<label class="op on">
<input type="radio" name="q24" value="b">
Rela onship role
</label>
<label class="op on">
<input type="radio" name="q24" value="c">
Par cipa on role
</label>
<label class="op on">
<input type="radio" name="q24" value="d">
Structural role
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q25</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which constraint specifies the number of rela onship
instances an en ty can par cipate in?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q25" value="a">
Cardinality constraint
</label>
<label class="op on">
<input type="radio" name="q25" value="b">
Par cipa on constraint
</label>
<label class="op on">
<input type="radio" name="q25" value="c">
Domain constraint
</label>
<label class="op on">
<input type="radio" name="q25" value="d">
Referen al constraint
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q26</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">A __________ a ribute can have mul ple values for a
single en ty.</div>
<input type="text" name="q26" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q27</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">In a many-to-many rela onship, how many en es from
each set can be related?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q27" value="a">
One en ty from each set
</label>
<label class="op on">
<input type="radio" name="q27" value="b">
Mul ple en es from one set, one from another
</label>
<label class="op on">
<input type="radio" name="q27" value="c">
Mul ple en es from both sets
</label>
<label class="op on">
<input type="radio" name="q27" value="d">
No en es can be related
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q28</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">What does total par cipa on mean in ER model?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q28" value="a">
Some en es par cipate in the rela onship
</label>
<label class="op on">
<input type="radio" name="q28" value="b">
All en es must par cipate in the rela onship
</label>
<label class="op on">
<input type="radio" name="q28" value="c">
No en es par cipate in the rela onship
</label>
<label class="op on">
<input type="radio" name="q28" value="d">
Only key en es par cipate
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q29</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">A __________ a ribute is one whose value can be
derived from other a ributes.</div>
<input type="text" name="q29" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q30</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">In ER diagrams, a ributes are represented by:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q30" value="a">
Rectangles
</label>
<label class="op on">
<input type="radio" name="q30" value="b">
Diamonds
</label>
<label class="op on">
<input type="radio" name="q30" value="c">
Ellipses
</label>
<label class="op on">
<input type="radio" name="q30" value="d">
Lines
</label>
</div>
</div>
<!-- Unit 3: SQL and Aggregate Func ons (10 ques ons) -->
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q31</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which SQL statement is used to create a new
table?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q31" value="a">
CREATE TABLE
</label>
<label class="op on">
<input type="radio" name="q31" value="b">
MAKE TABLE
</label>
<label class="op on">
<input type="radio" name="q31" value="c">
NEW TABLE
</label>
<label class="op on">
<input type="radio" name="q31" value="d">
ADD TABLE
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q32</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">The __________ constraint ensures that a column
cannot have NULL values.</div>
<input type="text" name="q32" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q33</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which SQL data type is used to store variable-length
character strings?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q33" value="a">
CHAR
</label>
<label class="op on">
<input type="radio" name="q33" value="b">
VARCHAR
</label>
<label class="op on">
<input type="radio" name="q33" value="c">
TEXT
</label>
<label class="op on">
<input type="radio" name="q33" value="d">
STRING
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q34</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which SQL clause is used to filter rows based on a
condi on?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q34" value="a">
SELECT
</label>
<label class="op on">
<input type="radio" name="q34" value="b">
FROM
</label>
<label class="op on">
<input type="radio" name="q34" value="c">
WHERE
</label>
<label class="op on">
<input type="radio" name="q34" value="d">
ORDER BY
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q35</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">The __________ statement is used to add new rows to a
table.</div>
<input type="text" name="q35" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q36</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which aggregate func on calculates the total number of
rows?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q36" value="a">
SUM()
</label>
<label class="op on">
<input type="radio" name="q36" value="b">
COUNT()
</label>
<label class="op on">
<input type="radio" name="q36" value="c">
AVG()
</label>
<label class="op on">
<input type="radio" name="q36" value="d">
MAX()
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q37</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">The UPDATE statement is used to:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q37" value="a">
Add new rows to a table
</label>
<label class="op on">
<input type="radio" name="q37" value="b">
Modify exis ng rows in a table
</label>
<label class="op on">
<input type="radio" name="q37" value="c">
Delete rows from a table
</label>
<label class="op on">
<input type="radio" name="q37" value="d">
Create a new table
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q38</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">The __________ func on returns the average value of a
numeric column.</div>
<input type="text" name="q38" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q39</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which constraint ensures that values in a column are
unique?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q39" value="a">
PRIMARY KEY
</label>
<label class="op on">
<input type="radio" name="q39" value="b">
FOREIGN KEY
</label>
<label class="op on">
<input type="radio" name="q39" value="c">
UNIQUE
</label>
<label class="op on">
<input type="radio" name="q39" value="d">
CHECK
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q40</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">The DELETE statement is used to:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q40" value="a">
Remove columns from a table
</label>
<label class="op on">
<input type="radio" name="q40" value="b">
Remove rows from a table
</label>
<label class="op on">
<input type="radio" name="q40" value="c">
Remove a table from database
</label>
<label class="op on">
<input type="radio" name="q40" value="d">
Remove a database
</label>
</div>
</div>
<!-- Unit 4: Func onal Dependencies and Transac on Processing (20 ques ons) -->
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q41</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">A func onal dependency X → Y means:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q41" value="a">
X is func onally dependent on Y
</label>
<label class="op on">
<input type="radio" name="q41" value="b">
Y is func onally dependent on X
</label>
<label class="op on">
<input type="radio" name="q41" value="c">
X and Y are independent
</label>
<label class="op on">
<input type="radio" name="q41" value="d">
X and Y are equivalent
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q42</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">__________ is the process of organizing data in a
database to reduce redundancy and dependency.</div>
<input type="text" name="q42" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q43</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">First Normal Form (1NF) requires:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q43" value="a">
All a ributes must be atomic
</label>
<label class="op on">
<input type="radio" name="q43" value="b">
No par al dependencies
</label>
<label class="op on">
<input type="radio" name="q43" value="c">
No transi ve dependencies
</label>
<label class="op on">
<input type="radio" name="q43" value="d">
All of the above
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q44</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Second Normal Form (2NF) eliminates:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q44" value="a">
Mul -valued dependencies
</label>
<label class="op on">
<input type="radio" name="q44" value="b">
Par al dependencies
</label>
<label class="op on">
<input type="radio" name="q44" value="c">
Transi ve dependencies
</label>
<label class="op on">
<input type="radio" name="q44" value="d">
Join dependencies
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q45</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">A rela on is in __________ if it is in 2NF and has no
transi ve dependencies.</div>
<input type="text" name="q45" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q46</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which of the following is NOT an informal design
guideline for rela onal schemas?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q46" value="a">
Make sure that a ributes in a rela on have clear seman cs
</label>
<label class="op on">
<input type="radio" name="q46" value="b">
Reduce redundant informa on in tuples
</label>
<label class="op on">
<input type="radio" name="q46" value="c">
Reduce NULL values in tuples
</label>
<label class="op on">
<input type="radio" name="q46" value="d">
Maximize the number of rela ons
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q47</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">A transac on is defined as:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q47" value="a">
A single database opera on
</label>
<label class="op on">
<input type="radio" name="q47" value="b">
A logical unit of database processing
</label>
<label class="op on">
<input type="radio" name="q47" value="c">
A physical unit of storage
</label>
<label class="op on">
<input type="radio" name="q47" value="d">
A database schema
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q48</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">The __________ property ensures that either all
opera ons of a transac on are executed or none are executed.</div>
<input type="text" name="q48" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q49</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which ACID property ensures that the database remains
in a consistent state?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q49" value="a">
Atomicity
</label>
<label class="op on">
<input type="radio" name="q49" value="b">
Consistency
</label>
<label class="op on">
<input type="radio" name="q49" value="c">
Isola on
</label>
<label class="op on">
<input type="radio" name="q49" value="d">
Durability
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q50</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">The Isola on property of transac ons ensures:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q50" value="a">
Transac ons are executed atomically
</label>
<label class="op on">
<input type="radio" name="q50" value="b">
Transac ons do not interfere with each other
</label>
<label class="op on">
<input type="radio" name="q50" value="c">
Changes are permanent a er commit
</label>
<label class="op on">
<input type="radio" name="q50" value="d">
Database remains consistent
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q51</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">__________ ensures that once a transac on commits,
its effects are permanently stored in the database.</div>
<input type="text" name="q51" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q52</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">A par al dependency occurs when:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q52" value="a">
A non-key a ribute depends on part of a composite primary key
</label>
<label class="op on">
<input type="radio" name="q52" value="b">
A non-key a ribute depends on another non-key a ribute
</label>
<label class="op on">
<input type="radio" name="q52" value="c">
A key a ribute depends on a non-key a ribute
</label>
<label class="op on">
<input type="radio" name="q52" value="d">
All a ributes depend on the primary key
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q53</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Transi ve dependency occurs when:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q53" value="a">
A → B and B → C, then A → C
</label>
<label class="op on">
<input type="radio" name="q53" value="b">
A → B and C → B
</label>
<label class="op on">
<input type="radio" name="q53" value="c">
A → B and A → C
</label>
<label class="op on">
<input type="radio" name="q53" value="d">
A→A
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q54</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">A __________ is a set of a ributes that can uniquely
iden fy a tuple in a rela on.</div>
<input type="text" name="q54" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q55</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which normal form is considered sufficient for most
prac cal database applica ons?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q55" value="a">
1NF
</label>
<label class="op on">
<input type="radio" name="q55" value="b">
2NF
</label>
<label class="op on">
<input type="radio" name="q55" value="c">
3NF
</label>
<label class="op on">
<input type="radio" name="q55" value="d">
BCNF
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q56</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Transac on states include all of the following
EXCEPT:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q56" value="a">
Ac ve
</label>
<label class="op on">
<input type="radio" name="q56" value="b">
Par ally Commi ed
</label>
<label class="op on">
<input type="radio" name="q56" value="c">
Suspended
</label>
<label class="op on">
<input type="radio" name="q56" value="d">
Commi ed
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q57</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">A __________ key is chosen from candidate keys to
uniquely iden fy tuples in a rela on.</div>
<input type="text" name="q57" class="fill-blank-input" placeholder="Enter your
answer">
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q58</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Decomposi on of rela ons should preserve:</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q58" value="a">
Func onal dependencies only
</label>
<label class="op on">
<input type="radio" name="q58" value="b">
Lossless join property only
</label>
<label class="op on">
<input type="radio" name="q58" value="c">
Both func onal dependencies and lossless join
</label>
<label class="op on">
<input type="radio" name="q58" value="d">
Neither func onal dependencies nor lossless join
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q59</span>
<span class="ques on-type">MCQ</span>
</div>
<div class="ques on-text">Which of the following is a transac on opera on?</div>
<div class="op ons">
<label class="op on">
<input type="radio" name="q59" value="a">
Begin Transac on
</label>
<label class="op on">
<input type="radio" name="q59" value="b">
Commit
</label>
<label class="op on">
<input type="radio" name="q59" value="c">
Rollback
</label>
<label class="op on">
<input type="radio" name="q59" value="d">
All of the above
</label>
</div>
</div>
<div class="ques on-container">
<div class="ques on-header">
<span class="ques on-number">Q60</span>
<span class="ques on-type fill-blank">Fill Blank</span>
</div>
<div class="ques on-text">__________ anomalies occur when we try to insert data
into a poorly designed rela on.</div>
<input type="text" name="q60" class="fill-blank-input" placeholder="Enter your
answer">
</div>
</form>
<div class="submit-sec on">
<bu on type="bu on" class="submit-btn" onclick="submitQuiz()">
Submit Quiz & Get Results
</bu on>
</div>
<div id="results" class="results">
<div class="score-display">
<div id="scoreCircle" class="score-circle">
<span id="scoreText">0%</span>
</div>
<h2 id="scoreTitle">Quiz Results</h2>
<p id="scoreDescrip on"></p>
</div>
<div id="detailedResults" class="detailed-results"></div>
</div>
</div>
<script>
// Correct answers
const correctAnswers = {
q1: 'c', // Data redundancy and inconsistency is NOT a characteris c
q2: 'workers behind the scene',
q3: 'a', // Database Administrator (DBA)
q4: 'b', // Controlling redundancy and inconsistency
q5: 'rela onal',
q6: 'b', // Conceptual Schema
q7: 'd', // Both b and c
q8: 'ddl', // Data Defini on Language
q9: 'b', // Server machine only
q10: 'a', // IMS (Informa on Management System)
q11: 'internal schema',
q12: 'a', // The actual data stored in the database at a par cular moment
q13: 'b', // DML (Data Manipula on Language)
q14: 'naive',
q15: 'c', // A single central loca on
q16: 'a', // Binary rela onship
q17: 'en ty',
q18: 'b', // Composite a ribute
q19: 'b', // Composite key
q20: 'one-to-one',
q21: 'a', // Rectangles
q22: 'b', // An en ty that cannot exist without another en ty
q23: 'diamond',
q24: 'c', // Par cipa on role
q25: 'a', // Cardinality constraint
q26: 'mul -valued',
q27: 'c', // Mul ple en es from both sets
q28: 'b', // All en es must par cipate in the rela onship
q29: 'derived',
q30: 'c', // Ellipses
q31: 'a', // CREATE TABLE
q32: 'not null',
q33: 'b', // VARCHAR
q34: 'c', // WHERE
q35: 'insert',
q36: 'b', // COUNT()
q37: 'b', // Modify exis ng rows in a table
q38: 'avg',
q39: 'c', // UNIQUE
q40: 'b', // Remove rows from a table
q41: 'b', // Y is func onally dependent on X
q42: 'normaliza on',
q43: 'a', // All a ributes must be atomic
q44: 'b', // Par al dependencies
q45: '3nf',
q46: 'd', // Maximize the number of rela ons
q47: 'b', // A logical unit of database processing
q48: 'atomicity',
q49: 'b', // Consistency
q50: 'b', // Transac ons do not interfere with each other
q51: 'durability',
q52: 'a', // A non-key a ribute depends on part of a composite primary key
q53: 'a', // A → B and B → C, then A → C
q54: 'candidate key',
q55: 'c', // 3NF
q56: 'c', // Suspended
q57: 'primary',
q58: 'c', // Both func onal dependencies and lossless join
q59: 'd', // All of the above
q60: 'inser on'
};
// Update progress as user answers ques ons
func on updateProgress() {
const form = document.getElementById('quizForm');
const formData = new FormData(form);
const totalQues ons = 60;
let answeredQues ons = 0;
for (let i = 1; i <= totalQues ons; i++) {
const answer = formData.get(`q${i}`);
if (answer && answer.trim() !== '') {
answeredQues ons++;
}
const progress = (answeredQues ons / totalQues ons) * 100;
document.getElementById('progressFill').style.width = progress + '%';
// Add event listeners to track progress
document.addEventListener('DOMContentLoaded', func on() {
const form = document.getElementById('quizForm');
form.addEventListener('change', updateProgress);
form.addEventListener('input', updateProgress);
});
func on submitQuiz() {
const form = document.getElementById('quizForm');
const formData = new FormData(form);
let score = 0;
let totalQues ons = 60;
let results = [];
// Calculate score
for (let i = 1; i <= totalQues ons; i++) {
const userAnswer = formData.get(`q${i}`);
const correctAnswer = correctAnswers[`q${i}`];
let isCorrect = false;
if (typeof correctAnswer === 'string') {
// For fill-in-the-blank ques ons, check if answer contains correct keywords
if (userAnswer &&
userAnswer.toLowerCase().trim().includes(correctAnswer.toLowerCase())) {
isCorrect = true;
score++;
} else {
// For MCQ ques ons
if (userAnswer === correctAnswer) {
isCorrect = true;
score++;
results.push({
ques on: i,
userAnswer: userAnswer || 'Not answered',
correctAnswer: correctAnswer,
isCorrect: isCorrect
});
// Calculate percentage
const percentage = Math.round((score / totalQues ons) * 100);
// Display results
displayResults(score, totalQues ons, percentage, results);
// Scroll to results
document.getElementById('results').scrollIntoView({ behavior: 'smooth' });
func on displayResults(score, total, percentage, results) {
const resultsDiv = document.getElementById('results');
const scoreCircle = document.getElementById('scoreCircle');
const scoreText = document.getElementById('scoreText');
const scoreTitle = document.getElementById('scoreTitle');
const scoreDescrip on = document.getElementById('scoreDescrip on');
const detailedResults = document.getElementById('detailedResults');
// Show results
resultsDiv.style.display = 'block';
// Update score display
scoreText.textContent = percentage + '%';
scoreTitle.textContent = `You scored ${score} out of ${total}`;
// Set color and descrip on based on performance
if (percentage >= 90) {
scoreCircle.style.background = 'linear-gradient(45deg, #27ae60, #2ecc71)';
scoreDescrip on.textContent = 'Excellent! Outstanding knowledge of DBMS
concepts!';
} else if (percentage >= 80) {
scoreCircle.style.background = 'linear-gradient(45deg, #f39c12, #e67e22)';
scoreDescrip on.textContent = 'Very Good! Strong understanding of database
concepts.';
} else if (percentage >= 70) {
scoreCircle.style.background = 'linear-gradient(45deg, #3498db, #2980b9)';
scoreDescrip on.textContent = 'Good! You have a solid founda on in DBMS.';
} else if (percentage >= 60) {
scoreCircle.style.background = 'linear-gradient(45deg, #9b59b6, #8e44ad)';
scoreDescrip on.textContent = 'Fair! Consider reviewing the topics more
thoroughly.';
} else {
scoreCircle.style.background = 'linear-gradient(45deg, #e74c3c, #c0392b)';
scoreDescrip on.textContent = 'Needs Improvement! Please review all units
carefully.';
// Display detailed results
let detailedHTML = '<h3>Detailed Results</h3>';
// Group results by units
const units = [
{ name: 'Unit 1: Introduc on to DBMS', start: 1, end: 15 },
{ name: 'Unit 2: En ty-Rela onship Model', start: 16, end: 30 },
{ name: 'Unit 3: SQL and Aggregate Func ons', start: 31, end: 40 },
{ name: 'Unit 4: Func onal Dependencies and Transac on Processing', start: 41,
end: 60 }
];
units.forEach(unit => {
let unitScore = 0;
let unitTotal = unit.end - unit.start + 1;
detailedHTML += `<h4>${unit.name}</h4>`;
for (let i = unit.start; i <= unit.end; i++) {
const result = results[i - 1];
if (result.isCorrect) unitScore++;
const resultClass = result.isCorrect ? 'correct' : 'incorrect';
const icon = result.isCorrect ? ' ':' ';
detailedHTML += `
<div class="result-item ${resultClass}">
<strong>Q${i} ${icon}</strong><br>
Your answer: ${result.userAnswer}<br>
${!result.isCorrect ? `Correct answer: ${result.correctAnswer}` : ''}
</div>
`;
const unitPercentage = Math.round((unitScore / unitTotal) * 100);
detailedHTML += `<p><strong>Unit Score: ${unitScore}/${unitTotal}
(${unitPercentage}%)</strong></p><hr>`;
});
detailedResults.innerHTML = detailedHTML;
// Auto-save func onality (op onal)
func on saveProgress() {
const form = document.getElementById('quizForm');
const formData = new FormData(form);
const progress = {};
for (let i = 1; i <= 60; i++) {
const answer = formData.get(`q${i}`);
if (answer) {
progress[`q${i}`] = answer;
localStorage.setItem('dbmsQuizProgress', JSON.stringify(progress));
// Load saved progress
func on loadProgress() {
const saved = localStorage.getItem('dbmsQuizProgress');
if (saved) {
const progress = JSON.parse(saved);
Object.keys(progress).forEach(key => {
const input = document.querySelector(`[name="${key}"]`);
if (input) {
if (input.type === 'radio') {
const radioBu on =
document.querySelector(`[name="${key}"][value="${progress[key]}"]`);
if (radioBu on) radioBu on.checked = true;
} else {
input.value = progress[key];
}
});
updateProgress();
// Load progress on page load
document.addEventListener('DOMContentLoaded', loadProgress);
// Save progress periodically
setInterval(saveProgress, 30000); // Save every 30 seconds
</script>
</body>
</html>