Quick Review purpose
This Quick Review is an IT Mastery study companion for candidates preparing for CompTIA DataSys+ V2 (DS0-002) from CompTIA. Use it as a fast final pass before working through topic drills, mock exams, and detailed explanations in the IT Mastery question bank.
Focus on decision-making: DS0-002-style questions often test whether you can choose the safest database design, operation, security control, or troubleshooting step—not just define a term.
Use this review with the current CompTIA exam objectives. Do not rely on memory of older versions or unofficial weightings.
High-yield exam map
| Area | Know cold | Practice focus |
|---|
| Data modeling | Entities, attributes, relationships, keys, normalization, constraints | Read ERD scenarios and choose the best design correction |
| SQL | DDL, DML, DCL, TCL, joins, filtering, aggregation, transactions | Predict query results, identify bad joins, distinguish WHERE vs HAVING |
| Database operations | Backup, restore, migration, patching, monitoring, maintenance | Choose the least risky operational step |
| Performance | Indexes, query plans, statistics, locking, partitioning, capacity | Identify root cause before tuning |
| Security | Least privilege, roles, encryption, masking, auditing, classification | Match controls to risks and data sensitivity |
| Availability and recovery | RPO, RTO, replication, failover, snapshots, restore testing | Select recovery strategy from business requirements |
| Data integration | ETL/ELT, CDC, validation, lineage, data quality | Diagnose pipeline and reporting data issues |
| Governance | Retention, ownership, metadata, access review, lifecycle | Apply policy without inventing requirements |
Exam mindset: what the test is really asking
When a question includes a scenario, identify the primary constraint before choosing an answer.
| Scenario clue | Likely decision point |
|---|
| “Production outage” | Restore service safely; avoid untested changes |
| “Sensitive customer data” | Classification, least privilege, encryption, masking, auditing |
| “Slow report” | Query plan, indexes, statistics, aggregation strategy, warehouse design |
| “Application timeouts” | Locking, blocking, connection pool, long-running query, resource bottleneck |
| “Data inconsistency” | Constraints, transaction boundaries, isolation, ETL validation |
| “Need point-in-time recovery” | Transaction logs or equivalent recovery mechanism |
| “Need near-real-time reporting” | Replication, CDC, streaming, read replica, data pipeline design |
| “Duplicate records” | Keys, unique constraints, deduplication rules, data quality checks |
| “Unauthorized access” | RBAC/ABAC, audit logs, privilege review, account lifecycle |
| “Schema change failed” | Rollback plan, migration testing, version control, change window |
Common exam trap: choosing the most powerful fix instead of the lowest-risk fix that addresses the stated requirement.
Core database concepts
Relational and nonrelational choices
| Data store type | Best fit | Watch for |
|---|
| Relational database | Structured data, ACID transactions, complex joins, referential integrity | Poor design can cause excessive joins or locking |
| Document database | Flexible semi-structured records, changing schemas, nested objects | Duplicated data and weaker relational constraints |
| Key-value store | Simple lookup by key, caching, session data | Limited querying and relationships |
| Column-family / wide-column store | High-scale distributed workloads, sparse data, high write volume | Data model depends heavily on access patterns |
| Graph database | Highly connected data such as relationships, paths, networks | Not ideal for simple tabular reporting |
| Data warehouse | Analytical reporting, historical trends, BI queries | Not optimized for high-volume transactional writes |
| Data lake | Raw or varied data at scale | Requires governance, cataloging, quality controls |
| Cache | Low-latency repeated reads | Stale data, invalidation, consistency risk |
OLTP vs OLAP
| Feature | OLTP | OLAP |
|---|
| Main purpose | Day-to-day transactions | Analysis and reporting |
| Query pattern | Short, frequent reads/writes | Long scans, aggregations, joins |
| Schema style | Normalized | Often dimensional or denormalized |
| Data freshness | Current | Current plus historical |
| Optimization goal | Integrity and fast transactions | Query performance and analytical flexibility |
| Common risk | Locking and contention | Slow scans, stale extracts, inconsistent metrics |
Data modeling quick review
Entities, relationships, and keys
| Concept | Meaning | Exam trap |
|---|
| Entity | Object or concept stored as a table/collection | Do not model every report field as a separate entity |
| Attribute | Property of an entity | Repeating groups suggest poor normalization |
| Primary key | Unique row identifier | Must be stable, unique, and not null |
| Foreign key | References a primary or candidate key | Enforces relationship integrity |
| Candidate key | Attribute set that could uniquely identify a row | Multiple candidate keys may exist |
| Composite key | Key made of multiple columns | Common in junction tables |
| Surrogate key | Artificial identifier, such as an ID number | Does not replace business uniqueness rules |
| Natural key | Real-world unique value | May change or be reused in some domains |
| Unique constraint | Prevents duplicate values | Use for business rules such as unique email when required |
| Check constraint | Enforces allowed values or ranges | Better than relying only on application validation |
| Default constraint | Supplies a value when none is provided | Does not validate all bad input |
Cardinality and optionality
| Relationship | Meaning | Typical implementation |
|---|
| One-to-one | Each row maps to at most one related row | Shared key or unique foreign key |
| One-to-many | One parent has many child rows | Foreign key on child table |
| Many-to-many | Many rows relate to many rows | Junction/bridge table |
| Optional relationship | Related row may not exist | Nullable foreign key or separate optional table |
| Mandatory relationship | Related row must exist | NOT NULL foreign key and referential constraint |
Normalization
| Normal form | Core idea | What it prevents |
|---|
| 1NF | Atomic values; no repeating groups | Multi-value columns and repeating fields |
| 2NF | Non-key attributes depend on the whole key | Partial dependency in composite-key tables |
| 3NF | Non-key attributes depend only on the key | Transitive dependency and update anomalies |
High-yield rule: Normalize to reduce redundancy and protect integrity; denormalize deliberately for performance or reporting after understanding the tradeoff.
Design traps
- Storing comma-separated values in one column instead of using a child table.
- Using free-text fields where a constrained lookup table is required.
- Omitting foreign keys because “the application handles it.”
- Confusing a surrogate primary key with a full uniqueness rule.
- Modeling many-to-many relationships without a junction table.
- Denormalizing transactional tables before measuring the performance need.
- Ignoring delete behavior: cascade, restrict, set null, and soft delete each have consequences.
SQL quick review
SQL categories
| Category | Examples | Purpose |
|---|
| DDL | CREATE, ALTER, DROP, TRUNCATE | Define or change database objects |
| DML | SELECT, INSERT, UPDATE, DELETE, MERGE | Query and modify data |
| DCL | GRANT, REVOKE | Manage permissions |
| TCL | COMMIT, ROLLBACK, SAVEPOINT | Control transactions |
Logical SELECT processing order
Remember the logical order, not the written order:
- FROM and JOIN
- WHERE
- GROUP BY
- HAVING
- SELECT
- DISTINCT
- ORDER BY
- LIMIT / FETCH / TOP, depending on platform
Exam trap: a column alias created in SELECT may not be available to WHERE because WHERE is logically processed earlier.
Join review
| Join type | Result | Common mistake |
|---|
| INNER JOIN | Matching rows only | Accidentally excluding unmatched records |
| LEFT OUTER JOIN | All left rows plus matching right rows | Filtering right-table columns in WHERE can turn it into an inner join |
| RIGHT OUTER JOIN | All right rows plus matching left rows | Usually can be rewritten as LEFT JOIN for clarity |
| FULL OUTER JOIN | All rows from both sides with matches where possible | Misreading NULLs from unmatched sides |
| CROSS JOIN | Cartesian product | Often accidental due to missing join condition |
| SELF JOIN | Table joined to itself | Requires clear aliases |
Filtering, grouping, and NULLs
| Topic | High-yield rule |
|---|
| WHERE | Filters rows before grouping |
| HAVING | Filters groups after aggregation |
| COUNT(*) | Counts rows |
| COUNT(column) | Counts non-NULL values in that column |
| NULL comparison | Use IS NULL or IS NOT NULL, not equals comparison |
| NOT IN with NULL | Can produce unexpected results; understand three-valued logic |
| DISTINCT | Removes duplicates from the selected result set, not from the table |
| UNION | Combines and removes duplicates |
| UNION ALL | Combines without duplicate removal, often faster |
| ORDER BY | Result order is not guaranteed without it |
UPDATE and DELETE safety
Before changing production data, the safest pattern is usually:
- Confirm the target rows with SELECT.
- Use a transaction when supported and appropriate.
- Apply a specific WHERE clause.
- Validate the affected row count.
- Commit only after verification.
- Keep a rollback or restore path.
Common trap: choosing a broad UPDATE or DELETE when the scenario asks for controlled, auditable change.
DROP vs DELETE vs TRUNCATE
| Command | What it does | Exam caution |
|---|
| DELETE | Removes selected rows | WHERE matters; may be logged row by row depending on system |
| TRUNCATE | Removes all rows from a table efficiently | Usually not for selective removal |
| DROP | Removes the object itself | Highest destructive impact |
Transactions and concurrency
ACID
| Property | Meaning | Why it matters |
|---|
| Atomicity | All changes in a transaction succeed or fail together | Prevents partial updates |
| Consistency | Rules and constraints remain valid | Protects data integrity |
| Isolation | Concurrent transactions do not improperly interfere | Prevents inconsistent reads/writes |
| Durability | Committed data survives failure | Supports recovery expectations |
Common concurrency problems
| Problem | Description | Typical mitigation |
|---|
| Dirty read | Reading uncommitted data | Stronger isolation |
| Non-repeatable read | Same row read twice returns different committed values | Stronger isolation or locking strategy |
| Phantom read | Re-running a query returns new or missing rows | Serializable-style controls or range locks |
| Lost update | One update overwrites another | Transactions, locking, optimistic concurrency |
| Deadlock | Transactions wait on each other in a cycle | Consistent access order, shorter transactions, retry logic |
| Blocking | One session waits for another lock | Identify blocker, tune query, reduce transaction duration |
High-yield rule: increasing isolation can improve consistency but may reduce concurrency. The best answer depends on the scenario’s balance between correctness and performance.
Index fundamentals
| Concept | Why it matters |
|---|
| Selectivity | Indexes help most when values narrow the result set significantly |
| Composite index | Column order matters; leftmost leading columns are important |
| Covering index | Includes all needed columns for a query, reducing lookups |
| Clustered organization | Data stored in index order in some systems |
| Nonclustered index | Separate structure pointing to data rows |
| Unique index | Enforces uniqueness and can improve lookup performance |
| Over-indexing | Speeds reads but slows writes and increases maintenance/storage |
| Statistics | Help the optimizer choose an efficient plan |
| SARGable predicate | Search-friendly condition that can use an index effectively |
Common index traps
- Indexing every column “just in case.”
- Adding an index before checking the query plan.
- Ignoring stale statistics.
- Using functions on indexed columns in filters and then wondering why the index is not used.
- Creating a composite index with columns in the wrong order for the query pattern.
- Forgetting write-heavy systems pay a cost for every additional index.
- Assuming partitioning automatically fixes poor query design.
Query tuning decision path
flowchart TD
A[Slow query or workload] --> B[Confirm scope and baseline]
B --> C[Check wait events, locks, CPU, memory, I/O]
C --> D[Review execution plan]
D --> E{Root cause?}
E -->|Bad access path| F[Index, statistics, predicate rewrite]
E -->|Too much data scanned| G[Filter earlier, partition prune, aggregate appropriately]
E -->|Blocking| H[Shorten transactions, tune locks, review isolation]
E -->|Resource saturation| I[Capacity, configuration, workload scheduling]
F --> J[Test change safely]
G --> J
H --> J
I --> J
J --> K[Measure again and document]
Backup, restore, and resilience
RPO and RTO
| Term | Meaning | Scenario clue |
|---|
| RPO | Maximum acceptable data loss | “Can lose no more than 15 minutes of data” |
| RTO | Maximum acceptable downtime | “Must be back online within 1 hour” |
High-yield rule: a backup strategy is not proven until a restore has been tested.
Backup types
| Backup type | Purpose | Tradeoff |
|---|
| Full backup | Complete backup at a point in time | Larger and slower, simpler restore base |
| Incremental backup | Changes since the last backup of any type | Smaller backups, potentially longer restore chain |
| Differential backup | Changes since the last full backup | Larger over time, simpler than many incrementals |
| Transaction/log backup | Supports point-in-time recovery in systems that use logs | Requires proper log management |
| Snapshot | Fast point-in-time image | May depend on underlying storage and is not always a full backup substitute |
Availability patterns
| Pattern | Strength | Watch for |
|---|
| Read replica | Offloads read traffic | Replication lag |
| Synchronous replication | Stronger data consistency | Latency and performance impact |
| Asynchronous replication | Better performance over distance | Possible data loss on failover |
| Clustering | Improves service availability | Complexity and split-brain concerns |
| Failover | Moves service to standby system | Must be tested and documented |
| Geo-redundancy | Regional resilience | Cost, latency, compliance, recovery procedures |
Operational mistakes
- Backing up but never testing restore.
- Restoring over production without confirming scope and authorization.
- Treating snapshots as the only disaster recovery plan.
- Ignoring transaction logs until storage fills.
- Failing over without knowing application connection behavior.
- Forgetting that replicas may replicate bad data or destructive changes.
- Not documenting recovery steps before an incident.
Security and access control
Core security controls
| Control | Purpose | Exam clue |
|---|
| Authentication | Proves identity | Passwords, MFA, federated identity, service accounts |
| Authorization | Grants allowed actions | Roles, privileges, policies |
| Accounting / auditing | Tracks activity | Logs, access reviews, alerts |
| Least privilege | Grants only required access | Excessive admin rights are a red flag |
| Separation of duties | Splits sensitive responsibilities | Prevents one person from controlling all steps |
| Encryption in transit | Protects data moving over networks | TLS or secure channels |
| Encryption at rest | Protects stored data | Database, disk, file, or backup encryption |
| Masking | Hides sensitive values from users | Useful in reports, testing, support |
| Tokenization | Replaces sensitive data with tokens | Reduces exposure of original values |
| Hashing | One-way transformation | Password storage with salt; not reversible encryption |
| Key management | Protects encryption keys | Rotation, access control, separation from data |
Permission model review
| Model | Best fit |
|---|
| RBAC | Access based on job roles such as analyst, developer, DBA |
| ABAC | Access based on attributes such as department, location, data classification |
| Direct user grants | Small or exceptional cases; harder to manage at scale |
| Group-based access | Easier lifecycle management |
| Service account | Application or automated process access; should be scoped and monitored |
High-yield rule: if a user needs access, prefer granting access through an appropriate role or group rather than giving broad direct privileges.
Security traps
- Granting administrative rights to fix a simple read/write permission issue.
- Using shared accounts without accountability.
- Storing secrets in scripts, code repositories, or plain-text configuration files.
- Copying production data to test without masking sensitive fields.
- Encrypting data but leaving keys broadly accessible.
- Logging sensitive data into application or database logs.
- Ignoring failed login spikes, unusual exports, or privilege escalation events.
- Assuming network isolation replaces database-level access control.
Governance, privacy, and lifecycle
Data classification
| Classification idea | Controls to consider |
|---|
| Public | Basic integrity and availability controls |
| Internal | Access control and monitoring |
| Confidential | Stronger authorization, encryption, audit |
| Restricted / sensitive | Strict access, masking, retention, approval workflow |
If a scenario mentions a specific policy, contract, or regulation, apply the requirements given in the question. Do not assume unstated legal rules.
Data lifecycle
| Stage | Key controls |
|---|
| Create / capture | Validation, ownership, source identification |
| Store | Encryption, backup, access control, metadata |
| Use | Least privilege, masking, audit |
| Share | Approved channels, data minimization, contractual controls |
| Archive | Retention, lower-cost storage, retrieval plan |
| Dispose | Secure deletion, retention compliance, documentation |
Data quality dimensions
| Dimension | Question to ask |
|---|
| Accuracy | Does the data reflect reality? |
| Completeness | Are required fields present? |
| Consistency | Do systems agree? |
| Validity | Does data match format and business rules? |
| Timeliness | Is it current enough? |
| Uniqueness | Are duplicates controlled? |
| Integrity | Are relationships and constraints preserved? |
Data integration and analytics
ETL, ELT, and CDC
| Pattern | Description | Best fit |
|---|
| ETL | Extract, transform, then load | Controlled transformation before warehouse load |
| ELT | Extract, load, then transform | Scalable platforms where transformation happens after loading |
| CDC | Captures changes from source systems | Near-real-time synchronization or incremental loads |
| Batch processing | Scheduled grouped processing | Reports, nightly loads, non-urgent workflows |
| Streaming | Continuous event processing | Low-latency updates and monitoring |
| API integration | Application-level data exchange | Controlled service-to-service access |
| File transfer | CSV, JSON, XML, Parquet, etc. | Simple exchange, but needs validation and security |
Data pipeline traps
- No validation at ingestion.
- No idempotency, causing duplicates when a job is retried.
- Schema drift breaking downstream reports.
- No lineage, making errors hard to trace.
- Loading data in the wrong order and violating foreign keys.
- Mixing time zones or date formats without standardization.
- Treating successful job completion as proof of correct data.
- Not reconciling row counts, checksums, or business totals.
Dimensional modeling review
| Term | Meaning |
|---|
| Fact table | Numeric events or measurements, often at a defined grain |
| Dimension table | Descriptive context such as customer, product, time, location |
| Star schema | Fact table connected directly to dimensions |
| Snowflake schema | Dimensions normalized into additional related tables |
| Grain | The level of detail represented by each fact row |
| Slowly changing dimension | Approach for managing dimension values that change over time |
Common trap: building reports from highly normalized OLTP tables when a warehouse or dimensional model would better support analytics.
Database administration and operations
Routine DBA-style tasks
| Task | Why it matters |
|---|
| Monitor health | Detect issues before outages |
| Review logs | Identify errors, failed jobs, access anomalies |
| Manage storage | Prevent growth from causing failure |
| Update statistics | Help optimizer choose better plans |
| Rebuild/reorganize indexes | Address fragmentation where relevant |
| Patch systems | Fix bugs and security issues |
| Manage users and roles | Maintain least privilege |
| Test backups | Validate recoverability |
| Document changes | Support audit, troubleshooting, and rollback |
| Capacity planning | Prepare for growth before performance degrades |
Change management
A safe database change usually includes:
- Business justification.
- Impact assessment.
- Tested migration script.
- Backup or rollback plan.
- Maintenance window when needed.
- Approval and communication.
- Monitoring during and after change.
- Documentation of results.
Exam trap: applying an untested schema change directly to production because it appears simple.
Troubleshooting decision rules
General troubleshooting flow
| Step | What to do |
|---|
| Identify symptoms | Who is affected, when it started, what changed |
| Establish scope | One query, one user, one application, or entire database |
| Check recent changes | Deployments, patches, schema changes, data loads |
| Review metrics | CPU, memory, disk I/O, waits, locks, connections |
| Examine logs | Database, OS, application, security, job scheduler |
| Isolate root cause | Avoid changing multiple variables at once |
| Implement controlled fix | Prefer reversible, tested changes |
| Validate | Confirm user impact and system metrics |
| Document | Record cause, fix, and prevention |
Symptom-to-cause review
| Symptom | Possible causes |
|---|
| Slow query | Missing index, stale statistics, poor join, large scan, blocking |
| Sudden write slowdown | New index, lock contention, disk saturation, trigger, log issue |
| Connection failures | Network, authentication, connection pool, listener/service down |
| Disk full | Data growth, logs, temp space, backups, failed cleanup |
| Deadlocks | Inconsistent object access order, long transactions, missing indexes |
| Report mismatch | ETL failure, stale replica, different filters, duplicate data |
| Permission denied | Missing role, revoked privilege, changed object ownership |
| High CPU | Inefficient query, excessive compilation, parallelism, workload spike |
| High memory pressure | Large sorts, cache pressure, insufficient resources |
| Replication lag | Network latency, large transaction, replica resource bottleneck |
Common DS0-002 candidate mistakes
- Memorizing definitions without practicing scenario decisions.
- Treating every performance issue as an indexing issue.
- Ignoring the difference between authentication and authorization.
- Forgetting that WHERE filters rows and HAVING filters groups.
- Confusing RPO with RTO.
- Assuming backups are valid without restore tests.
- Selecting DROP when the scenario only requires removing rows.
- Granting permissions directly to users instead of roles or groups.
- Missing NULL behavior in SQL questions.
- Choosing denormalization as a first design step.
- Overlooking audit, retention, and classification requirements.
- Forgetting that replication improves availability but does not replace backup.
- Making production changes without rollback planning.
- Failing to distinguish OLTP design from analytical reporting design.
Quick practice plan
Use this review as a checklist before moving into IT Mastery practice.
1. Do targeted topic drills
Start with short topic drills from an original practice questions question bank:
- SQL joins, aggregates, NULLs, and transactions
- Normalization, keys, constraints, and ERD scenarios
- Backup, restore, RPO, and RTO
- Security permissions, encryption, masking, and auditing
- Indexing, query plans, locking, and troubleshooting
- ETL/ELT, data quality, and reporting models
2. Review detailed explanations
For every missed question, write down:
- The clue you missed.
- The wrong assumption you made.
- The rule that would have led to the correct answer.
- Whether the error was knowledge-based or scenario-reading-based.
3. Mix domains
After topic drills, use mixed sets so you practice switching between design, SQL, operations, performance, and security. The real exam can require that kind of context switching.
4. Take timed mock exams
Timed practice helps reveal whether you are over-reading simple questions or rushing through scenario details. Review both missed questions and guessed-correct questions.
Final last-pass checklist
Before exam day, make sure you can confidently answer:
- When should you normalize, and when might denormalization be justified?
- Which SQL command category applies to a given task?
- What changes when an outer join is filtered incorrectly?
- How do NULLs affect comparisons and aggregates?
- What is the difference between DELETE, TRUNCATE, and DROP?
- How do RPO and RTO drive backup and recovery design?
- Why is restore testing essential?
- How do least privilege, roles, masking, and encryption work together?
- How do indexes help, and when can they hurt?
- What symptoms suggest locking, blocking, or deadlocks?
- How do ETL, ELT, CDC, batch, and streaming differ?
- How do data quality, lineage, and governance reduce operational risk?
Practical next step
Choose your weakest DS0-002 area, complete a focused set of topic drills with original practice questions, then review the detailed explanations until you can explain why each wrong option is wrong. After that, move to a mixed mock exam to test readiness across the full CompTIA DataSys+ V2 (DS0-002) skill set.
Continue in IT Mastery
Use this Quick Review as a final concept map, then move into IT Mastery for focused topic drills, mixed practice sets, timed mock exams, and detailed explanations. The practice questions are original IT Mastery practice items; they are not official CompTIA questions, copied live-exam content, or exam dumps.