A DBA explains a performance problem: "The query is doing a full table scan — there's no index on the filter column. On a 50-million-row table that's unacceptably slow. I'll add a covering index on (user_id, created_at) to include the columns the SELECT needs." What is a covering index?
A covering index is an index that contains all columns referenced by a query (in both WHERE and SELECT), so the query engine can satisfy the entire query from the index without looking up the actual row (also called "index-only scan"). Example: CREATE INDEX idx_orders_user ON orders(user_id, created_at) INCLUDE (amount, status); — a query for "orders by user X, select created_at/amount/status" is fully served by the index. Database indexing vocabulary: Clustered index — defines the physical order of table data; InnoDB uses the primary key as the clustered index. Non-clustered index — a separate B-tree structure with pointers to the actual row; multiple per table. B-tree index — standard balanced tree index, good for range queries and equality. Hash index — faster for equality lookups, doesn't support range queries. Composite index — index on multiple columns; column order matters — (a,b) supports queries on a or a+b, but not b alone. Index selectivity — higher is better; a boolean column has low selectivity (bad candidate). Index scan vs seek — seek navigates B-tree to a specific entry; scan reads all entries. In conversation: "Adding the covering index dropped the query from 4.2 seconds to 12 milliseconds."
2 / 10
During a database design review, a senior DBA asks: "This table is in first normal form but not third — you have a transitive dependency: the manager_email column depends on manager_id, which depends on employee_id. Extract the manager data to its own table." What is third normal form (3NF)?
Third Normal Form (3NF): a table is in 3NF if it's in 2NF AND no non-key column depends on another non-key column (no transitive dependencies). Normalisation forms: 1NF — atomic values (no repeated groups, no arrays), each row uniquely identified. 2NF — every non-key column depends on the full primary key (not a partial key). Relevant only for composite keys. 3NF — no transitive dependencies (non-key → non-key dependencies). BCNF (Boyce-Codd) — stricter: every determinant must be a candidate key. Why normalise: avoids update anomalies (changing manager email requires updating many rows), insert anomalies (can't add a manager without an employee), delete anomalies (deleting last employee removes manager data). When NOT to normalise: data warehouses often use star schema (intentionally denormalised): one large fact table, surrounding dimension tables. Query performance is better when all needed data is in fewer tables. Denormalisation — deliberately violating normalisation for performance. In conversation: "The product table was in 2NF but violating 3NF — the supplier country depended on supplier_id, not on product_id, so we extracted it to a Suppliers table."
3 / 10
A DBA explains a data integrity concept: "PostgreSQL guarantees ACID properties for every transaction. Even if the server crashes after a COMMIT, the data is durable — it's in the write-ahead log and will survive a restart." What do the letters in ACID stand for, and what does durability mean?
ACID guarantees for database transactions: Atomicity — a transaction is all-or-nothing; either all changes commit or none do (no partial updates). Consistency — a transaction brings the database from one valid state to another; all integrity constraints (foreign keys, CHECK constraints, triggers) are satisfied. Isolation — concurrent transactions see each other as if they ran serially; intermediate state is not visible to others. Isolation levels: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE. Durability — committed transactions are permanently stored and survive crashes. Mechanism: WAL (Write-Ahead Log) — changes are written to a log before being applied to data files; on crash, the log replays uncommitted changes. NoSQL trade-off: many NoSQL databases sacrifice some ACID properties for scalability. MongoDB added transactions; Redis offers transactions; Cassandra offers eventual consistency (BASE: Basically Available, Soft state, Eventually consistent). In conversation: "We switched from eventual consistency to a strongly consistent database — the eventual model was causing user complaints about seeing stale data immediately after saving."
4 / 10
A DBA explains a query execution problem: "The query planner chose a sequential scan over the index — it estimated 60% of rows would match, and below that threshold it's cheaper to scan the table than to follow index pointers. After we refined the query to filter more specifically, the planner chose the index." What is a query planner?
The query planner (or query optimiser) is the database's internal component that, given a SQL query, generates and compares possible execution plans and chooses the estimated cheapest one. Vocabulary for query analysis: EXPLAIN — shows the execution plan the planner chose (in PostgreSQL: EXPLAIN ANALYZE SELECT...). Execution plan — the sequence of operations: table scan, index seek, hash join, sort, etc. Statistics — the planner uses table column statistics (row count, distinct values, histograms) to estimate selectivity. Sequential scan (SeqScan) — reads every row in the table; fast for large fractions of data. Index scan — navigates B-tree, then fetches rows; fast for high selectivity. Bitmap scan — collects a set of matching row IDs via index, then fetches them in page order; good for medium selectivity. Cost estimate — the planner assigns a cost to each operation; the plan with the lowest estimated cost wins. Cardinality estimation errors — if the planner's statistics are stale, it may choose a bad plan. ANALYZE updates statistics. In conversation: "I ran EXPLAIN ANALYZE and the planner was using a nested loop join for a 10-million-row table — I rewrote the JOIN order and it switched to a hash join, 60× faster."
5 / 10
A database administrator presents a high-availability architecture: "We have a primary-replica setup with streaming replication. If the primary goes down, we can promote a replica to primary within 30 seconds using failover automation." What is streaming replication and what does promote a replica mean?
Streaming replication sends WAL (Write-Ahead Log) records from the primary to one or more replica (standby) databases in near-real-time, keeping replicas continuously updated. Promoting a replica means reconfiguring a standby to become a new primary — it starts accepting writes and the old primary (if recovered) must re-join as a replica. High-availability vocabulary: Primary / leader / master — the database that accepts write queries. Replica / standby / secondary — a copy of the primary; typically read-only. Synchronous replication — primary waits for at least one replica to confirm receipt before committing; zero data loss but adds latency. Asynchronous replication — primary commits immediately; replica catches up asynchronously; faster but some data loss risk on failover. Failover — switching traffic to a standby when the primary fails. Switchover — a planned, graceful failover during maintenance. RPO (Recovery Point Objective) — maximum acceptable data loss. RTO (Recovery Time Objective) — maximum acceptable downtime. Tools: Patroni, Pacemaker (PostgreSQL HA), MHA (MySQL). In conversation: "We moved from async to sync replication on the payment database — RPO went from 5 seconds of potential data loss to zero, at the cost of 2ms additional write latency."
6 / 10
Alex (Lead Developer) writes to the Slack channel: 'The application is timing out when processing large CSV imports. I've increased the timeout value in the configuration, but it's still happening.' What does Alex likely mean by increasing the timeout value?
Increasing a timeout value in an application setting signifies that the application will wait longer for a response from a system – in this case, the database. The problem description suggests a delay is occurring during CSV imports, so extending the waiting period addresses that specific issue. Option A, reducing batch size, would address performance differently; options C and D relate to threading or query optimization, not timeout durations.
7 / 10
Sarah (DBA) is reviewing a pull request for a new feature that adds a user profile table. She comments: 'This schema design includes an auto-incrementing primary key column named `user_id`. While functional, it's generally considered best practice to explicitly define the data type and length of this ID, especially considering potential future scaling.' What is Sarah referring to?
Sarah's comment highlights the importance of *primary key constraints* and their proper definition. Explicitly defining the data type (e.g., `INT`, `BIGINT`) and length of a primary key column is crucial for ensuring data integrity, preventing inconsistencies, and supporting future growth. Data normalization and schema evolution are related concepts but not directly what she's criticizing in this specific scenario.
8 / 10
Ben (Senior Developer) is discussing a query performance issue with a junior developer. He says: 'We need to create an index on the `order_date` column in the `orders` table. This will significantly speed up queries that filter orders by date range.' What does Ben mean by 'filtering orders by date range'?
Filtering by date range refers to using a `WHERE` clause in a SQL query to retrieve only those rows where the `order_date` falls within a specified start and end date. This is a common optimization technique for improving query performance when searching for orders based on temporal criteria.
9 / 10
David (DBA) writes in the project standup: 'We're implementing a read replica to offload some of the load from our primary database. If the primary fails, we can quickly switch over to the replica using automated failover procedures.' What is meant by 'automated failover procedures'?
Automated failover procedures describe a system or process designed to detect database outages (primary failure) and automatically switch application traffic to a standby replica without manual intervention. This minimizes downtime and ensures high availability of the database service. The other options represent different backup/recovery strategies, not automatic switching.
10 / 10
Emily (Developer) is reviewing a PR description for a change to the user authentication system. The description states: 'We've implemented password hashing using bcrypt with a salt.' What does 'bcrypt' refer to?
bcrypt is a widely used password hashing algorithm known for its security and resistance to brute-force attacks. It's designed to be computationally expensive, making it much slower for attackers to crack passwords compared to simpler hashing methods. Using bcrypt provides a significantly higher level of security for storing user passwords.
What does the "Database & DBA Vocabulary" vocabulary exercise cover?
This exercise tests real IT vocabulary related to database & dba vocabulary through 10 multiple-choice questions, each built from realistic workplace sentences rather than abstract definitions.
Is this vocabulary exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is completely free — no account, sign-up, or payment required.
How many questions does this exercise have?
This exercise has 10 questions. Each one shows a real-world sentence or scenario with multiple-choice options and an explanation once you answer.
What happens after I answer a question?
You'll see immediate feedback showing whether your answer was correct, along with a short explanation of why — then a button to move to the next question, and a full results screen at the end.
Can I retry the exercise if I get questions wrong?
Yes. Once you reach the results screen, click "Try again" to reset your answers and go through the exercise from the start as many times as you like.
Do I need to create an account to take this exercise?
No account is needed. Your answers are scored in your browser during the session — nothing is saved to a server, so you can jump straight in.
Is my progress saved if I leave the page?
No — progress within an exercise resets if you navigate away or reload. Each exercise is short enough to complete in a few minutes in one sitting.
Are these vocabulary exercises connected to other topics?
Yes — browse the full vocabulary exercises hub to find related modules covering adjacent IT topics and roles.
How is this different from reading a glossary or blog article?
Exercises like this one are active recall drills — you have to choose the correct term or phrasing yourself, which builds retention faster than passively reading a definition.
Where can I find more vocabulary exercises?
Browse the full Vocabulary exercises hub for hundreds of modules covering Agile, DevOps, security, databases, architecture, and more — organised by IT role and skill.