Course audit report

Database Concepts and Design

Done Role: Data Engineer 2 Findings Relational Database Fundamentals — Design, Sql, Internals
Auditor Done Market Fit Done Topics Done
Run another role
2 findings · 1 medium 1 low
Outdated Week 10 - Database Views and Authorization_.pdf page 9

What the slide says

Strong password policies prevent unauthorized user access: ... Implement password expiration and lockout mechanisms

Primary source ✓ Source checked

pages.nist.gov

Verifiers and CSPs SHALL NOT require subscribers to change passwords periodically.

What to learn instead

Drop the periodic password-expiration recommendation. Per NIST SP 800-63B (current revision -4, August 2025), verifiers SHALL force a password change only if there is evidence the authenticator has been compromised. Pair long passwords (≥15 chars), screening against breach corpus blocklists, salted+hashed storage with a memory-hard KDF, rate-limiting on failed attempts, and phishing-resistant MFA (e.g., WebAuthn/FIDO2) instead of forced rotation.

Outdated Week 10 - Database Views and Authorization_.pdf page 9

What the slide says

Use complex passwords and multi-factor authentication (MFA).

Primary source ✓ Source checked

pages.nist.gov

Other composition requirements for passwords SHALL NOT be imposed.

What to learn instead

Drop 'complex passwords' guidance based on character-class composition rules (mixed case, digits, symbols). Per NIST SP 800-63B-4 §3.1.1, composition rules SHALL NOT be imposed; instead require a 15-character minimum (8 with MFA), allow up to 64+ characters including spaces and Unicode, screen prospective passwords against a blocklist of breached/common passwords, and keep the MFA recommendation.

No in-scope gaps: this single-node relational-fundamentals curriculum teaches the one ml_data skill it shares with the market (SQL) thoroughly, while every other ≥30%-demanded skill — Python and the pandas/numpy/scikit-learn/pytorch/tensorflow/hugging-face stack, git/docker/kubernetes/aws, and the distributed/NoSQL data layer (bigquery, snowflake, spark, vector databases, dbt, airflow, ray) — is excluded by Rule 3 (cross-domain) or by the course's depth bound (which explicitly rules out distributed databases and NoSQL engines), so there is no partially-covered topic to extend.

No extendable gaps for this role

Stale only flags gaps that the course already partially covers. It won't push you toward Kubernetes when you're sitting in a Unicode course. For ml_data, every high-frequency market demand is in a different area from what this course actually teaches.

Try a different target role on the run page, or run Stale on a course whose subject area overlaps the role you're aiming for.

What the curriculum actually teaches (19 skills)
  • SQL DDL (CREATE TABLE with typed columns and constraints) · Week 8 - Basic Query
    Week 8, Page 5: 'CREATE statement — Main SQL command for data definition'; Week 10 page shows 'CREATE TABLE employees ( name VARCHAR(50), ...)'.
  • SQL SELECT-FROM-WHERE basic retrieval · Week 8 - Basic Query
    Week 8, Page 7: 'Basic form of the SELECT statement: SELECT <attribute list> FROM <table list> WHERE <condition>;'
  • SQL JOINs (INNER / EQUIJOIN / NATURAL / OUTER) · Week 9 - Complex Query, Week 11 - Relational Algebra
    Week 9, Page 4: 'Nested queries, joined tables, and outer joins (in the FROM clause), aggregate functions, and grouping'; Week 11 covers EQUIJOIN, NATURAL JOIN, THETA JOIN.
  • SQL aggregate functions and GROUP BY / HAVING · Week 9 - Complex Query, Week 10 - Database Views and Authorization
    Week 10 view example: 'SELECT S.ID, S.Name, Count(*) AS Num ... GROUP BY S.ID, S.Name'; Week 9 lists 'aggregate functions, and grouping' as in-scope.
  • SQL nested subqueries and IN comparison · Week 9 - Complex Query
    Week 9, Page 8: 'Nested queries — Complete select-from-where blocks within WHERE clause of another query ... Comparison operator IN'.
  • SQL NULL handling / three-valued logic (IS NULL) · Week 9 - Complex Query
    Week 9, Page 5–7: 'SQL uses a three-valued logic: TRUE, FALSE, and UNKNOWN ... IS or IS NOT NULL'.
  • SQL views (CREATE VIEW, view updatability rules) · Week 10 - Database Views and Authorization
    Week 10: 'CREATE VIEW OwnDept AS SELECT Name, Phone FROM Employee WHERE Department = (SELECT Department FROM Employee WHERE name = USER)'.
  • SQL authorization with GRANT / REVOKE and privileges · Week 10 - Database Views and Authorization
    Week 10: 'GRANT <privileges> ON <object> TO <users> [WITH GRANT OPTION]' covering SELECT, INSERT, UPDATE, DELETE privileges; REVOKE syntax also taught.
  • Triggers (concept and intent) · Week 1 - Introduction to Database Concepts, Week 9 - Complex Query
    Week 1 lists 'Trigger' as a constraint mechanism; Week 9 chapter title: 'More SQL: Complex Queries, Triggers, Views, and Schema Modification'.
  • ER conceptual modeling (entities, attributes, relationships, cardinality) · Week 4 _ 5 - Data Modeling Using different types
    Week 4/5 chapter is 'Data Modeling Using different types' covering entity sets, attributes, relationship types, and cardinality constraints.
  • EER modeling (specialization, generalization, inheritance) · Week 6 - Enhanced Entity-Relationship _EER_ Model
    Week 6 chapter title: 'Enhanced Entity-Relationship (EER) Model' covering specialization/generalization hierarchies.
  • Conceptual-to-logical schema mapping (ER → relations) · Week 7 - Mapping Conceptual Design into logical Design
    Week 7 chapter title: 'Mapping Conceptual Design into logical Design'.
  • Relational algebra (σ, π, ⋈, ∪, ∩, −, ×, ÷) · Week 11 - Relational Algebra
    Week 11, Page 3: 'UNION (∪), INTERSECTION (∩), DIFFERENCE (or MINUS, –) ... JOIN (several variations of JOIN exist)'; full chapter covers SELECT σ, PROJECT π, JOIN ⨝, DIVISION ÷, CARTESIAN PRODUCT ×.
  • Functional dependencies and normalization (1NF, 2NF, 3NF, BCNF) · Week 12 - Normalization
    Week 12 covers UNF → 1NF → 2NF (partial deps: 'CourseID → Instructor (Partial dependency)') → 3NF (transitive deps) → BCNF ('A relation schema R is in Boyce-Codd Normal Form (BCNF) if whenever an FD X → A holds in R, then X is a super key of R').
  • File organization (heap / ordered-sequential / hashed) · Week 13 - File Organization
    Week 13 enumerates: '1. Unordered or Heap files. 2. Ordered or sequential files. 3. Hash files.' with operations and trade-offs for each.
  • External hashing and collision handling (linear probing, chaining, extendible hashing) · Week 13 - File Organization
    Week 13: 'Hashing for disk files is called External Hashing ... h(K)=K mod M ... Open Addressing — Linear Probing ... Chaining ... extendible hashing — directories ... reducing the need for a separate overflow area'.
  • Indexing (primary, clustering, secondary, multilevel, B+-tree concept) · Week 14 - Physical Database Design Index
    Week 14, Page 3: 'Primary Indexes ... Clustering Indexes ... Secondary Indexes ... Multilevel Indexes ... Tree Data Structures (Multilevel Indexes, B+-Trees)'; dense vs sparse, blocking factor calculations included.
  • Transaction concept and ACID basics (conceptual) · Week 1 - Introduction to Database Concepts, Week 2 - Database System Concepts and Architecture
    Week 1, Page 9: 'Transaction — May cause some data to be read and some data to be written'; Week 2 covers multi-user transaction processing concepts: 'Each transaction appears to execute in isolation ... Either all the database operations in a transaction are executed or [none]'.
  • Brief survey mentions of OLAP / data warehouses / NoSQL / distributed DBMSs (single slides only, not developed) · Week 1 - Introduction to Database Concepts, Week 2 - Database System Concepts and Architecture
    Week 1, Page 4: 'Data warehouses and online analytical processing (OLAP) systems'; Week 2, Page 6: 'Self-Describing Data Models ... Examples include XML, key-value stores and some NOSQL systems'; Week 2, Page 31: 'Variations of Distributed DBMSs (DDBMSs)'.

No prescriptions issued. The Market-fit agent surfaced zero in-scope gaps (gap_count: 0) for this single-node relational-fundamentals course against the ml_data role. The one skill the curriculum and the market share — SQL — is already taught thoroughly across Week 8 (Basic Query), Week 9 (Complex Query), Week 10 (Views/Authorization), and Week 11 (Relational Algebra), and every other ≥30%-demanded ml_data skill (Python, pandas, NumPy, scikit-learn, PyTorch, TensorFlow, Hugging Face, git, Docker, Kubernetes, AWS, dbt, Airflow, Spark, Ray, BigQuery, Snowflake, vector databases, RAG) is either a cross-domain language/tooling concern or sits beyond the course's stated depth bound (which explicitly excludes distributed databases, NoSQL engines, query-optimizer internals, and concurrency-control algorithms).

Honest zero. Per Rule 1, prescriptions must extend a partially-covered topic; the Market-fit gap list is empty, so there is nothing to extend. Per Rule 3, padding with topics like 'add pandas labs' or 'introduce vector databases' would violate the depth bound (single-node relational fundamentals) and the course intent (ER/EER → SQL → normalization → file org/indexing). The correct curricular response is to leave this course as-is for its stated scope and address the ml_data market gap (Python data stack, distributed/lakehouse SQL engines, ML frameworks, MLOps tooling) in dedicated downstream courses, not by stretching a fundamentals course past its depth bound. The two Auditor findings on Week 10 password guidance are authorization-hygiene fixes, not ml_data market gaps, and are out of this agent's remit.