Tutorials Logic, IN info@tutorialslogic.com
DBMS

Top 50 DBMS Interview Questions

Curated questions covering normalization, ACID properties, transactions, indexing, ER models, SQL, concurrency control, and database design.

01

What is a DBMS?

A Database Management System (DBMS) is software that manages databases - storing, retrieving, and manipulating data while providing security, integrity, and concurrency control. Examples: MySQL, PostgreSQL, Oracle, MongoDB.

02

What is the difference between DBMS and RDBMS?

  • DBMS - stores data as files. No relationship between tables. No ACID guarantees.
  • RDBMS - stores data in related tables. Enforces relationships via foreign keys. Supports ACID transactions. Examples: MySQL, PostgreSQL, Oracle.
03

What are ACID properties?

  • Atomicity - transaction is all-or-nothing. If any part fails, entire transaction rolls back.
  • Consistency - transaction brings database from one valid state to another.
  • Isolation - concurrent transactions execute as if sequential. Intermediate states not visible.
  • Durability - committed transactions persist even after system failure.
04

What is normalization? Explain 1NF, 2NF, and 3NF.

  • 1NF - atomic values, no repeating groups, each tl-row unique.
  • 2NF - in 1NF + no partial dependency (every non-key attribute depends on entire primary key).
  • 3NF - in 2NF + no transitive dependency (non-key attributes depend only on primary key).
  • BCNF - stricter 3NF: every determinant must be a candidate key.
05

What is denormalization?

Denormalization intentionally introduces redundancy to improve read performance. Used for read-heavy workloads, complex JOIN queries, or analytics. Trade-off: faster reads but slower writes and more storage.

06

What is the difference between primary key and foreign key?

  • Primary Key - uniquely identifies each row. Cannot be NULL. Only one per table.
  • Foreign Key - references the primary key of another table. Enforces referential integrity. Can be NULL.
07

What is an ER diagram?

An Entity-Relationship (ER) diagram visually represents the database schema. Components: entities (rectangles), attributes (ovals), relationships (diamonds), cardinality (1:1, 1:N, M:N).

08

What are the different types of SQL commands?

  • DDL - CREATE, ALTER, DROP, TRUNCATE. Defines schema.
  • DML - SELECT, INSERT, UPDATE, DELETE. Manipulates data.
  • DCL - GRANT, REVOKE. Controls access.
  • TCL - COMMIT, ROLLBACK, SAVEPOINT. Manages transactions.
09

What is the difference between DELETE, TRUNCATE, and DROP?

  • DELETE - DML. Removes specific rows. Can be rolled back. Triggers fire.
  • TRUNCATE - DDL. Removes all rows. Cannot be rolled back. Faster. Resets auto-increment.
  • DROP - DDL. Removes entire tl-table including structure. Cannot be rolled back.
10

What are SQL JOINs?

  • INNER JOIN - rows with matching values in both tables.
  • LEFT JOIN - all rows from left + matching from right (NULL if no match).
  • RIGHT JOIN - all rows from right + matching from left.
  • FULL OUTER JOIN - all rows from both tables.
  • CROSS JOIN - Cartesian product.
  • SELF JOIN - tl-table joined with itself.
Example
SELECT u.name, o.total
FROM users u
INNER JOIN orders o ON u.id = o.user_id;

SELECT u.name, o.total
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;
11

What is an index?

An index is a data structure (typically B-tree) that speeds up data retrieval without scanning the entire table. Trade-off: faster SELECT but slower INSERT/UPDATE/DELETE. Create indexes on frequently queried columns, foreign keys, and WHERE/ORDER BY columns.

12

What is the difference between clustered and non-clustered index?

  • Clustered index - physically sorts and stores rows in index order. Only one per table. Primary key is usually the clustered index.
  • Non-clustered index - separate structure with pointers to rows. Multiple allowed per table.
13

What is a transaction?

A transaction is a sequence of operations treated as a single unit. Use BEGIN/COMMIT to save changes, ROLLBACK to undo.

Example
BEGIN TRANSACTION;
  UPDATE accounts SET balance = balance - 500 WHERE id = 1;
  UPDATE accounts SET balance = balance + 500 WHERE id = 2;
COMMIT;
14

What are transaction isolation levels?

  • READ UNCOMMITTED - dirty reads possible.
  • READ COMMITTED - only reads committed data.
  • REPEATABLE READ - same query returns same results within transaction.
  • SERIALIZABLE - highest isolation. Prevents phantom reads.
15

What is a deadlock?

A deadlock occurs when transactions wait for each other to release locks, creating a circular dependency. Resolution: timeout, deadlock detection, or prevention by acquiring locks in consistent order.

16

What is the difference between WHERE and HAVING?

  • WHERE - filters rows before grouping. Cannot use aggregate functions.
  • HAVING - filters groups after GROUP BY. Can use aggregate functions.
Example
SELECT department, COUNT(*) as cnt
FROM employees
WHERE salary > 30000
GROUP BY department
HAVING COUNT(*) > 5;
17

What is a view?

A view is a virtual tl-table based on a SELECT query. Does not store data physically. Benefits: simplifies complex queries, provides security, and presents data in a specific format.

Example
CREATE VIEW active_users AS
SELECT id, name, email FROM users WHERE status = "active";
SELECT * FROM active_users;
18

What is a stored procedure?

A stored procedure is a precompiled set of SQL statements stored in the database. Benefits: reusability, reduced network traffic, better performance, and centralized business logic.

Example
DELIMITER //
CREATE PROCEDURE GetUser(IN userId INT)
BEGIN
  SELECT * FROM users WHERE id = userId;
END //
DELIMITER ;
CALL GetUser(1);
19

What is the difference between stored procedure and function?

  • Stored Procedure - can return multiple result sets. Uses OUT parameters. Called with CALL. Can perform DML.
  • Function - must return a single value. Called within SQL expressions. Cannot perform DML in most DBMS.
20

What is a trigger?

A trigger automatically executes in response to INSERT, UPDATE, or DELETE events. Types: BEFORE and AFTER. Used for auditing, enforcing business rules, and maintaining derived data.

Example
CREATE TRIGGER before_update
BEFORE UPDATE ON users
FOR EACH tl-row
BEGIN
  INSERT INTO audit_log(user_id, changed_at) VALUES (OLD.id, NOW());
END;
21

What is the difference between UNION and UNION ALL?

  • UNION - combines result sets and removes duplicates. Slower.
  • UNION ALL - combines result sets keeping all rows. Faster.
22

What are window functions?

Window functions perform calculations across related rows without collapsing them into groups. Common: ROW_NUMBER(), RANK(), DENSE_RANK(), LAG(), LEAD(), SUM() OVER(), AVG() OVER().

Example
SELECT name, salary, department,
  RANK() OVER (PARTITION BY department ORDER BY salary DESC) as dept_rank
FROM employees;
23

What is the difference between optimistic and pessimistic locking?

  • Pessimistic - locks the record when read. Prevents others from modifying. High-conflict scenarios.
  • Optimistic - no lock on read. Checks version at update time. Fails if another transaction modified. Low-conflict scenarios.
24

What is a composite key?

A composite key is a primary key made up of two or more columns. Used when no single column uniquely identifies a row. Example: order_items tl-table with (order_id, product_id) as composite primary key.

25

What is the difference between SQL and NoSQL?

  • SQL - structured, tabular, fixed schema, ACID, vertical scaling. Best for complex queries and relationships.
  • NoSQL - flexible schema (document, key-value, graph, column), horizontal scaling, eventual consistency. Best for large-scale unstructured data.
26

What is a candidate key?

  • Candidate key - minimal set of attributes that uniquely identifies a row. A tl-table can have multiple candidate keys.
  • Primary key - the chosen candidate key. Only one per table. Cannot be NULL.
  • Super key - any set of attributes that uniquely identifies a tl-row (may be non-minimal).
27

What is the difference between a natural join and equi-join?

  • Equi-join - joins on equality of specified columns. Duplicate join columns appear in result.
  • Natural join - automatically joins on all columns with the same name. Duplicate columns removed.
Example
-- Equi-join
SELECT * FROM users u JOIN orders o ON u.id = o.user_id;
-- Natural join
SELECT * FROM users NATURAL JOIN orders;
28

What is the difference between a surrogate key and a natural key?

  • Natural key - derived from actual data (email, SSN). Has business meaning. Can change.
  • Surrogate key - artificial key with no business meaning (auto-increment ID, UUID). Never changes. Preferred for primary keys.
29

What is the difference between a hash index and B-tree index?

  • B-tree - supports range queries, ORDER BY, GROUP BY, and equality. Most versatile. Default in most DBMS.
  • Hash - only supports equality comparisons. Faster for exact lookups but no range queries.
30

What is the difference between a full tl-table scan and index scan?

  • Full tl-table scan (COLLSCAN) - reads every row. O(n). Used when no suitable index exists.
  • Index scan (IXSCAN) - uses index to find rows. O(log n). Much faster for selective queries.
  • Use EXPLAIN to check which scan type is used.
31

What is a correlated subquery?

  • Non-correlated - executes once independently. Result is reused.
  • Correlated - references outer query columns. Executes once per outer row. Can be slow.
Example
-- Non-correlated
SELECT * FROM users WHERE id IN (SELECT user_id FROM orders);
-- Correlated (slow)
SELECT * FROM users u
WHERE (SELECT COUNT(*) FROM orders o WHERE o.user_id = u.id) > 5;
32

What is a materialized view?

  • Regular view - virtual. Query re-executed every access. Always current data.
  • Materialized view - stores query result physically. Must be refreshed. Faster for complex queries.
33

What is the difference between OLTP and OLAP?

  • OLTP - many short concurrent transactions. Normalized schema. Fast writes. Examples: banking, e-commerce.
  • OLAP - complex analytical queries on large datasets. Denormalized (star/snowflake schema). Fast reads. Examples: data warehouses.
34

What is a data warehouse?

A data warehouse is a centralized repository for structured data from multiple sources, optimized for analytical queries. Uses ETL (Extract, Transform, Load) processes. Common schemas: star schema and snowflake schema.

35

What is the difference between star schema and snowflake schema?

  • Star schema - fact tl-table at center connected directly to dimension tables. Denormalized. Simpler queries. Faster.
  • Snowflake schema - dimension tables are normalized into multiple related tables. More complex queries. Less storage.
36

What is database sharding?

Sharding distributes data across multiple database servers (shards) based on a shard key. Each shard holds a subset of the data. Enables horizontal scaling. Challenges: cross-shard queries, rebalancing, and consistency.

37

What is database replication?

  • Master-slave replication - master handles writes, slaves handle reads. Improves read scalability.
  • Master-master replication - both nodes handle writes. Requires conflict resolution.
  • Synchronous - waits for replica confirmation. Slower but consistent.
  • Asynchronous - does not wait. Faster but may have replication lag.
38

What is the CAP theorem?

  • CAP theorem - distributed system can only guarantee two of: Consistency, Availability, Partition tolerance.
  • CA - consistent and available but not partition-tolerant (traditional RDBMS).
  • CP - consistent and partition-tolerant but not always available (MongoDB, HBase).
  • AP - available and partition-tolerant but eventually consistent (Cassandra, DynamoDB).
39

What is the difference between a B-tree and B+ tree index?

  • B-tree - stores data in both internal and leaf nodes. Faster for single-key lookups.
  • B+ tree - stores data only in leaf nodes. Leaf nodes linked for efficient range scans. Used by most RDBMS (MySQL InnoDB, PostgreSQL).
40

What is a covering index?

  • Regular index - contains only indexed columns. DBMS must do a second lookup to fetch other columns.
  • Covering index - contains all columns needed by a query. No second lookup needed. Faster for specific queries.
Example
-- Covering index for: SELECT name, email FROM users WHERE age > 25
CREATE INDEX idx_covering ON users(age, name, email);
-- All needed columns in index - no tl-table lookup!
41

What is the difference between a check constraint and a trigger for validation?

  • CHECK constraint - declarative. Enforced by DBMS automatically. Simpler. Cannot reference other tables.
  • Trigger - procedural. More flexible. Can reference other tables. More overhead.
Example
CREATE tl-table products (
  price DECIMAL(10,2) CHECK (price > 0),
  stock INT CHECK (stock >= 0)
);
42

What is the difference between shared lock and exclusive lock?

  • Shared lock (S lock) - multiple transactions can hold simultaneously. Used for reads.
  • Exclusive lock (X lock) - only one transaction can hold. Used for writes. Blocks all other locks.
43

What is the difference between horizontal and vertical database scaling?

  • Vertical scaling - adding more CPU/RAM/storage to a single server. Limited by hardware ceiling.
  • Horizontal scaling - adding more database servers. Requires sharding or replication. More complex but unlimited scaling.
44

What is the difference between a schema migration and data migration?

  • Schema migration - changes to database structure (adding columns, creating tables). Managed with Flyway or Liquibase.
  • Data migration - moving or transforming data from one format/location to another. Often done with ETL processes.
45

What is the difference between a graph database and relational database?

  • Relational - data in tables. Relationships via JOINs. Efficient for structured data.
  • Graph database (Neo4j) - data as nodes and edges. Relationships are first-class citizens. Efficient for highly connected data (social networks, recommendations).
46

What is the difference between a sequence and auto-increment?

  • AUTO_INCREMENT (MySQL) - automatically generates unique integers for a column. Table-specific.
  • SEQUENCE (PostgreSQL, Oracle) - a database object generating unique numbers. Can be shared across tables. More flexible.
Example
-- MySQL
CREATE tl-table users (id INT AUTO_INCREMENT PRIMARY KEY);
-- PostgreSQL
CREATE SEQUENCE user_id_seq;
CREATE tl-table users (id INT DEFAULT nextval('user_id_seq') PRIMARY KEY);
47

What is the difference between eventual consistency and strong consistency?

  • Strong consistency - all reads reflect the most recent write. All nodes see same data. Slower.
  • Eventual consistency - reads may return stale data temporarily. Nodes eventually converge. Faster, more available.
48

What is the difference between a primary replica and secondary replica?

  • Primary replica - receives all write operations. Source of truth.
  • Secondary replica - receives replicated data from primary. Handles reads. Provides failover.
  • Replication lag - delay between write on primary and its appearance on secondary.
49

What is the difference between OLTP and HTAP?

  • OLTP - optimized for transactional workloads (INSERT, UPDATE, DELETE).
  • HTAP (Hybrid Transactional/Analytical Processing) - handles both transactional and analytical workloads in the same system. Examples: TiDB, SingleStore.
50

What is the difference between a relational model and document model?

  • Relational - data in tables with fixed schemas. Relationships via foreign keys. Strong consistency. SQL queries.
  • Document - data as self-contained documents (JSON/BSON). Flexible schema. Embedded relationships. Better for hierarchical data.

Ready to Level Up Your Skills?

Explore 500+ free tutorials across 20+ languages and frameworks.