Domain
Database Management
Skill Profile
Normalization, denormalization, Star/Snowflake schema, entity modeling
Roles
17
where this skill appears
Levels
5
structured growth path
Mandatory requirements
74
the other 11 optional
Database Management
Data Modeling
3/17/2026
Choose your current level and compare expectations. The items below show what to cover to advance to the next level.
The table shows how skill depth grows from Junior to Principal. Click a row to see details.
| Role | Required | Description |
|---|---|---|
| 1C Developer | Understands 1C:Enterprise data model fundamentals: registers, documents, catalogs, and their relationships. Follows established schema patterns for accounting and ERP data structures. Uses platform metadata to navigate existing data models. | |
| Analytics Engineer | Required | Understands basic data modeling concepts: fact and dimension tables, star schema. Creates simple dbt staging models from team templates. Documents models in YAML files with column descriptions. |
| Backend Developer (C#/.NET) | Required | Designs schemas via EF Core: Entity classes, relationship Navigation Properties, owned types for value objects. Understands normalization. Uses Fluent API for configuration. |
| Backend Developer (Elixir) | Required | Creates basic Ecto schemas with field types and validations through changeset in Elixir projects. Defines has_many, belongs_to and many_to_many associations. Uses embedded_schema for nested structures and cast_assoc for validating associated data. |
| Backend Developer (Go) | Required | Designs simple data schemas for Go services: tables with correct types, foreign keys, basic normalization to 3NF. Describes models via GORM tags or golang-migrate SQL files, understands one-to-many and many-to-many relationships. |
| Backend Developer (Java/Kotlin) | Required | Designs simple data schemas with JPA: Entity, @OneToMany/@ManyToMany relationships, embedded types. Understands normalization. Uses @Enumerated, @Temporal for column typing. |
| Backend Developer (Node.js) | Required | Designs models via Prisma schema: models, relations (1:1, 1:N, M:N), enums. Understands normalization. Uses Prisma relations for type-safe data access. |
| Backend Developer (PHP) | Required | Designs simple schemas: tables, one-to-one, one-to-many, many-to-many relationships. Normalizes to 3NF. Chooses correct data types. Understands when soft delete is needed. |
| Backend Developer (Python) | Required | Creates basic schemas with tables and relationships. Understands 1:1, 1:N, N:M relationships. Applies normalization up to 3NF. Uses proper data types. |
| Backend Developer (Rust) | Required | Designs simple data models for Rust applications, creating struct definitions with derive(sqlx::FromRow) or Diesel schemas. Understands mapping between Rust types and PostgreSQL, uses Option<T> for nullable fields and enum types through sqlx::Type. |
| Backend Developer (Scala) | Required | Creates basic data models for Scala applications: defines case classes for domain entities, maps them to PostgreSQL tables through Doobie or Slick. Understands normalization to 3NF, designs simple table relationships and uses Scala types to express model constraints. |
| BI Analyst | Required | Understands data modeling basics: star and snowflake schemas, fact and dimension tables. Follows team conventions for building BI-optimized data models. Uses existing dimensional models to build accurate reports and dashboards. |
| Data Analyst | Required | Understands relational data modeling fundamentals: normalization, primary/foreign keys, and entity relationships. Follows team patterns for structuring analytical tables. Uses ER diagrams to understand data dependencies for accurate analysis. |
| Data Engineer | Required | Designs data warehouse tables: star schema (fact + dimension), SCD types (Type 1, 2). Creates staging, intermediate and mart layers. Understands normalization and denormalization for analytics. |
| Database Engineer / DBA | Designs simple schemas: normalization up to 3NF, data type selection, constraints (NOT NULL, UNIQUE, FK). Creates ER diagrams for small modules. Understands the difference between OLTP and OLAP modeling. | |
| Fullstack Developer | Creates basic data models for fullstack features: tables with proper types, foreign keys, NOT NULL constraints. Understands the connection between database schema, backend types (TypeScript interfaces) and frontend data structure. | |
| ML Engineer | Understands basic data modeling principles: entities, relationships and normalization. Knows data structures for storing ML metadata: experiments, models, datasets and metrics. |
| Role | Required | Description |
|---|---|---|
| 1C Developer | Independently designs schemas and optimizes queries with Data Modeling and Schema Design. Understands indexing and query execution plans. Uses ORM effectively. | |
| Analytics Engineer | Required | Designs dbt models by layer: staging for raw data cleansing, intermediate for business logic, marts for consumers. Applies dimensional modeling (Kimball) for analytical marts. Implements SCD Type 2 for historical dimensions. |
| Backend Developer (C#/.NET) | Required | Independently designs schemas and optimizes queries for data modeling. Understands indexing and query execution plans. Uses Entity Framework Core effectively. |
| Backend Developer (Elixir) | Required | Independently designs schemas and optimizes queries with data modeling. Understands indexing and query execution plans. Uses Ecto effectively. |
| Backend Developer (Go) | Required | Independently designs schemas and optimizes queries for data modeling. Understands indexing and query execution plans. Uses sqlx/GORM effectively. |
| Backend Developer (Java/Kotlin) | Required | Independently designs schemas and optimizes queries for data modeling. Understands indexing and query execution plans. Uses Hibernate/JPA effectively. |
| Backend Developer (Node.js) | Required | Independently designs schemas and optimizes queries for data modeling. Understands indexing and query execution plans. Uses Prisma/TypeORM effectively. |
| Backend Developer (PHP) | Required | Designs data schemas for business domains: normalization to 3NF, denormalization for performance, polymorphic relationships. Models soft deletes, record versioning, audit logs. Chooses between EAV and JSON columns for flexible attributes. |
| Backend Developer (Python) | Required | Designs schemas for microservices. Applies denormalization for performance. Models polymorphic relationships (STI, MTI). Designs audit trails and soft deletes. Uses JSONB for flexible data. |
| Backend Developer (Rust) | Required | Independently designs schemas and optimizes queries with data modeling and schema design. Understands indexing and query execution plans. Uses diesel/sea-orm effectively. |
| Backend Developer (Scala) | Required | Independently designs schemas and optimizes queries with Data Modeling and Schema Design. Understands indexing and query execution plans. Uses Slick/Doobie effectively. |
| BI Analyst | Required | Independently designs dimensional models for BI reporting. Implements slowly changing dimensions (SCD Type 1/2), conformed dimensions, and aggregate tables. Optimizes data models for dashboard query performance with proper indexing and partitioning. |
| Data Analyst | Required | Independently designs analytical data models with appropriate normalization levels. Implements materialized views and summary tables for recurring analysis patterns. Understands trade-offs between normalized and denormalized schemas for analytical workloads. |
| Data Engineer | Required | Designs dimensional models: Kimball methodology (conformed dimensions, bus matrix), Data Vault (hubs, links, satellites). Applies SCD Type 2 with effective dates. Models semi-structured data. |
| Database Engineer / DBA | Designs production schemas: choosing between normalization and denormalization by workload, partitioning strategy, data archiving. Considers growth patterns when selecting data types and partition keys. | |
| Fullstack Developer | Independently designs schemas and optimizes queries with data modeling and schema design. Understands indexing and query execution plans. Uses Prisma/SQLAlchemy effectively. | |
| ML Engineer | Designs data schemas for ML platform: feature store schema, experiment metadata, model registry and prediction logs. Applies patterns for data and model versioning with lineage tracking. |
| Role | Required | Description |
|---|---|---|
| 1C Developer | Required | Designs database architecture with Data Modeling and Schema Design for high-load systems. Optimizes performance, configures replication and sharding. |
| Analytics Engineer | Required | Designs complex analytical models: wide tables for BI tools, activity schema for event analytics, bridge tables for many-to-many relationships. Optimizes the dbt DAG: eliminates circular dependencies, minimizes compute through proper layering. |
| Backend Developer (C#/.NET) | Required | Designs domain models: DDD Aggregates via EF Core, Value Objects via Owned Types, soft deletes via query filters. Chooses between EF Core and document DB based on context. |
| Backend Developer (Elixir) | Required | Designs complex data models with Ecto for PostgreSQL: polymorphic associations, STI through type field, JSONB columns with Ecto.Type. Implements custom Ecto.Types for domain-specific types, applies Ecto.Changeset for complex business validation with contexts. |
| Backend Developer (Go) | Required | Designs optimal data schemas for Go microservices: denormalization strategies for read-heavy workloads, JSON columns in PostgreSQL, partitioning. Develops domain models through clean architecture with entity and value object separation. |
| Backend Developer (Java/Kotlin) | Required | Designs domain models for Java services: Aggregates in JPA, Value Objects via @Embeddable, soft deletes via @Where, audit via @EntityListeners. Chooses between JPA and documents (MongoDB) based on context. |
| Backend Developer (Node.js) | Required | Designs domain models: DDD aggregates via Prisma, value objects via embedded types, soft deletes via middleware. Chooses relational vs document model based on context. |
| Backend Developer (PHP) | Required | Designs schemas for complex domains: polymorphic relationships, EAV for flexible attributes, temporal data, audit trails. Applies denormalization for production. Models bounded contexts. |
| Backend Developer (Python) | Required | Designs domain models for complex business domains. Applies DDD in modeling. Designs event-sourced storage. Optimizes schema for read-heavy and write-heavy workloads. |
| Backend Developer (Rust) | Required | Develops domain data models for Rust services with separation into persistence and domain layers. Applies newtype patterns for ID types (UserId(Uuid)), JSONB for flexible attributes through serde, and designs normalized schemas considering query patterns. |
| Backend Developer (Scala) | Required | Designs domain data models for Scala services: applies DDD approach with sealed trait ADTs for states, JSONB for flexible structures, temporal tables for auditing. Optimizes schemas considering access patterns, implements efficient serialization through Circe and Doobie codecs. |
| BI Analyst | Required | Designs enterprise-grade dimensional models spanning multiple business domains. Implements Data Vault 2.0 patterns for historical tracking and auditability. Architects semantic layers that bridge physical data models with business-friendly abstractions. |
| Data Analyst | Required | Designs complex analytical data models for cross-domain analysis with optimized query patterns. Implements advanced modeling techniques: bridge tables, factless facts, and accumulating snapshots. Mentors analysts on modeling best practices and schema evolution. |
| Data Engineer | Required | Designs enterprise data models: Data Vault 2.0 for flexibility, Anchor Modeling for high-change environments, wide tables for ClickHouse. Defines layered architecture: raw → staging → curated → mart. |
| Database Engineer / DBA | Required | Designs data models for high-load systems: sharding with data distribution awareness, temporal tables, polymorphic associations. Defines schema evolution strategy: backward compatible changes, expand-and-contract pattern. |
| Fullstack Developer | Required | Designs data models for fullstack applications across the entire stack: normalized database schema, DTO transformation on backend, normalized store on frontend. Applies DDD approach, separates read/write models and optimizes for UI usage patterns. |
| ML Engineer | Develops comprehensive ML platform data model with multi-tenant support, schema evolution and time-travel queries. Designs data contracts between producers and consumers in ML pipelines. |
| Role | Required | Description |
|---|---|---|
| 1C Developer | Required | Defines data strategy at the product level. Establishes Data Modeling and Schema Design standards. Conducts data schema and scaling strategy reviews. |
| Analytics Engineer | Required | Defines data modeling standards for the organization: naming conventions, dbt project layering (staging/intermediate/marts), mandatory tests and documentation. Implements data mesh approaches with domain-oriented models. |
| Backend Developer (C#/.NET) | Required | Defines modeling standards: EF Core conventions, naming strategy, documentation. Reviews models for DDD compliance and performance. |
| Backend Developer (Elixir) | Required | Defines data model architecture for the Elixir platform. Designs bounded contexts through separate Ecto schemas and Phoenix contexts. Implements event sourcing with Commanded/EventStore, defines aggregate and value object modeling standards through embedded_schema. |
| Backend Developer (Go) | Required | Defines data modeling standards for the Go platform: naming conventions, partitioning policies, multi-tenant data strategies. Reviews team data architecture, ensuring consistency across microservices. |
| Backend Developer (Java/Kotlin) | Required | Defines data modeling standards: JPA conventions, naming strategy, schema documentation. Reviews models for DDD compliance and performance implications. |
| Backend Developer (Node.js) | Required | Defines modeling standards: naming conventions, Prisma schema conventions, documentation. Reviews models for DDD compliance and performance impact. |
| Backend Developer (PHP) | Required | Defines data modeling standards: naming conventions, mandatory fields (timestamps, soft deletes), schema versioning approach. Reviews models for new modules. |
| Backend Developer (Python) | Required | Defines data modeling standards for the organization. Designs cross-service data architecture. Implements data governance. Trains the team. |
| Backend Developer (Rust) | Required | Designs data models for Rust microservice platform: bounded contexts with separate schemas, event sourcing through append-only tables. Develops shared domain type libraries (domain-primitives crate) and serialization standards through serde for inter-service exchange. |
| Backend Developer (Scala) | Required | Defines data modeling standards for Scala team: schema design rules, table naming, JSONB vs normalization usage. Reviews domain models for bounded context alignment, implements Event Sourcing models with Akka Persistence for critical aggregates. |
| BI Analyst | Required | Defines data modeling standards for BI organization. Establishes naming conventions, modeling guidelines, and review processes. Coordinates dimensional model governance across teams with conformance rules and shared dimension management. |
| Data Analyst | Required | Defines data modeling standards across analytical teams. Establishes schema design review processes, migration guidelines, and backward compatibility rules. Drives adoption of consistent modeling patterns and shared analytical data marts. |
| Data Engineer | Required | Defines data modeling standards: naming conventions, documentation requirements, review process. Chooses approach (Kimball vs Inmon vs Data Vault) by context. Trains team on modeling best practices. |
| Database Engineer / DBA | Required | Defines data modeling standards: naming conventions, data types per DBMS, partitioning guidelines. Conducts design reviews for critical schemas. Coordinates data modeling practices between product and DBA teams. |
| Fullstack Developer | Required | Defines data modeling architecture for the fullstack platform: single source of truth in database schema, type auto-generation for backend and frontend through Prisma/GraphQL codegen. Establishes naming and model evolution standards for the team. |
| ML Engineer | Defines data modeling standards for organizational ML ecosystem: feature schemas, model signatures, dataset catalogs. Designs unified data model linking experiments, models and production metrics. |
| Role | Required | Description |
|---|---|---|
| 1C Developer | Required | Defines enterprise data modeling strategy for 1C:Enterprise platform ecosystem. Designs cross-system data exchange architectures and master data management patterns. Shapes organizational standards for platform metadata governance and schema evolution. |
| Analytics Engineer | Required | Architects the enterprise data modeling strategy: unified semantic layer via dbt metrics/MetricFlow, data vault for historical storage, domain-driven models. Defines the balance between normalization and denormalization for different consumers. |
| Backend Developer (C#/.NET) | Required | Designs platform data model: bounded context → database mapping, shared entities via domain events, data mesh. Defines schema evolution strategy. |
| Backend Developer (Elixir) | Required | Develops data modeling strategy at the entire organizational level. Defines DDD standards with Ecto contexts and bounded contexts, designs inter-domain integration through events. Implements CQRS with Commanded for complex business domains in the Elixir ecosystem. |
| Backend Developer (Go) | Required | Shapes organizational data modeling strategy: OLTP and OLAP schema design standards, data governance policies, master data. Develops platform tools for visualization and validation of data schemas across all Go services. |
| Backend Developer (Java/Kotlin) | Required | Designs platform data model: bounded context → database mapping, shared entities via domain events, data mesh principles. Defines schema evolution strategy without breaking changes. |
| Backend Developer (Node.js) | Required | Designs platform data model: bounded context → database mapping, shared types via npm packages, event-driven data sync between services. |
| Backend Developer (PHP) | Required | Designs data model at platform level: shared vs isolated databases, data mesh, cross-service data contracts. Defines organizational data model evolution strategy. |
| Backend Developer (Python) | Required | Shapes data architecture strategy. Designs enterprise data model. Defines data mesh principles. |
| Backend Developer (Rust) | Required | Defines organizational data modeling strategy: DDD approaches with aggregate roots as Rust structs, CQRS with projection tables, multi-model storage. Establishes data governance standards, event schema registry and master data management architecture. |
| Backend Developer (Scala) | Required | Makes strategic decisions on platform data architecture: choosing between relational and event-driven models, Schema Registry standards for inter-service communication. Defines Data Mesh approach for Scala microservices, designs data models considering scalability, compliance and analytics requirements. |
| BI Analyst | Required | Defines enterprise data modeling strategy spanning operational and analytical systems. Evaluates modeling methodologies (Kimball, Inmon, Data Vault) and shapes organizational standards. Drives data model governance framework aligned with data mesh principles. |
| Data Analyst | Required | Shapes enterprise analytical data modeling vision and cross-domain schema standards. Drives organizational adoption of modern modeling practices (Activity Schema, One Big Table patterns). Defines long-term data architecture roadmap with modeling methodology choices. |
| Data Engineer | Required | Designs organizational data modeling strategy: domain-driven data models, canonical data model, data mesh domain boundaries. Defines governance for entity resolution and master data management. |
| Database Engineer / DBA | Required | Shapes organizational data modeling strategy: domain-driven data design, data mesh principles, enterprise data model. Defines modeling standards for different DBMSes and use cases, including multi-model approaches. |
| Fullstack Developer | Required | Shapes organizational data modeling strategy: domain-driven design in fullstack context, model versioning, schema evolution without breaking changes. Designs platform for managing data models at scale across multiple products. |
| ML Engineer | Shapes ML platform data management strategy with data mesh approach and domain-driven design. Defines data governance architecture for ML: data quality, privacy, lineage and compliance at organizational scale. |