The official exam description for Designing Database Solutions for Microsoft SQL Server 2012 was pretty thorough but has an additional annotated list of changes covering the Server 2014 additions made in April 2014.

At the time of writing there is no consolidated list, very few study links, no training kit or book, and no official MeasureUp or Transcender practice exams, which makes preparation difficult.

So here’s a consolidated list of objectives and I’ll add study links for each subject as I find them. Note that I haven’t sat the test yet so the guide is just that, a guide not a definitive list.

1. Design a Database Structure (20-30%)

Design for business requirements

  • Business to data translations
  • identify which SQL Server components to use to support business requirements
  • design a normalization area
  • de-normalize a database by using SQL Server features, including materialization using indexed views, distributed partitioned views, filtered and non-key column indexes, and snapshots

Design physical database and object placement

  • design a physical database, including file placement, FILESTREAM, FILETABLE, file groups, and RAID
  • configure system database settings

Design a table and index partitioning strategy

  • Develop optimal strategy for indexing
  • data distribution
  • archiving
  • design columnstore indexes
  • design XML indexes

Design a migration, consolidation, and upgrade strategy

  • upgrade with minimal downtime
  • design a cross-cluster migration
  • plan a database deployment, including Windows PowerShell, Server Core, and contained databases
  • migrate to SQL Azure
  • migrate query plans
  • design a migration strategy using Distributed Replay Controller
  • design a SQL Server virtualization strategy

Design SQL Server instances

  • Spec out hardware for new instances
  • design an instance
  • design SQL to use only certain CPUs (affinity masks, etc.)
  • design clustered instances including Microsoft Distributed Transaction Control (MSDTC)
  • memory allocation
  • design installation strategies, including sysprep, slipstream, and SMB file server
  • define cross db ownership chaining

Design backup and recovery

  • design a backup strategy based on business needs, including differential, file, log, striped, and Windows Azure Blob Storage Service
  • design a database snapshot strategy
  • design appropriate recovery models
  • design a system database backup strategy
  • recover Tail-Log backups

2. Design databases and database objects (30-35%)

Design a database model

  • design a logical schema
  • design a data access and data layer architecture
  • design a database schema
  • design a security architecture
  • design a cross-server instance database model, including linked servers, security, providers, distributed transactions, distributed partitioned views, and Service Broker

Design tables

  • design tables appropriately, including physical tables, temp tables, temp table variables, common table expressions, columnstore indexes, user defined table types, FILESTREAM, FILETABLE, and In-Memory OLTP
  • design views and table valued functions
  • design a compression strategy, including row and page
  • select an appropriate data type
  • design computed columns

Design for concurrency

  • develop a strategy to maximize concurrency
  • define a locking and concurrency strategy
  • design a transaction isolation strategy, including server database and session
  • design triggers for concurrency

Design T-SQL stored procedures

  • create stored procedures
  • design a data access strategy using stored procedures
  • design appropriate stored procedure parameters, including input, output, and Table Valued
  • design error handling
  • design an In-Memory OLTP strategy for stored procedures

Design a management automation strategy

  • Create a data archiving solution
  • create jobs to ensure good server health as DBCC Checkdb, statistics updates
  • improve database maintenance (DB index, backup, etc.) with custom script that executes some task only on when some values are overpassed (defragment/rebuild index)
  • design automation and auditing (jobs, alerts, operators, SSIS, CDC, auditing, DDL triggers)
  • automate (setup, maintenance, monitoring) across multiple databases and multiple instances
  • data flow and batch processing: testing load on database plus different stages
  • design automation and auditing, including Windows PowerShell
  • deploy to different environments, including development, staging, and production

Design for implicit and explicit transactions

  • Manage transactions
  • use transactions in code
  • ensure data integrity by using transactions
  • trycatch
  • commit
  • throw
  • design for implicit and explicit transactions

3. Design database security (15-20%)

Design an application strategy to support security

  • Design security
  • implement schemas and schema security
  • design maintenance (SQL logins vs. integrated authentication, permissions, mirroring issues, etc.)
  • use appropriate mechanisms to enforce security roles, signed stored procedures, etc.
  • encryption
  • contained logins
  • design security, including EXECUTE AS and credentials

Design database, schema, and object security permissions

  • Design a database schema that meets security requirements
  • schema ownership
  • ownership chaining
  • cross database chaining
  • design queries and stored procedures that use multiple schemas

Design instance-level security configurations

  • Implement separation of duties using different login roles
  • design/implement a data safety strategy that meets the requirements of the installation
  • choosing authentication type, logon triggers, regulatory requirements
  • transparent data encryption
  • Data Description Language (DDL) triggers
  • choose an authentication type, including certificates
  • implement data encryption, including database master key and configuration
  • define a secure service account

4. Design a troubleshooting and optimization solution (24%)

Design a maintenance strategy for database servers

  • design maintenance plans
  • design index maintenance, including rebuild, defragmentation, statistics, online rebuilds, offline rebuilds, and thresholds
  • maintain physical and logical consistency (DBCC)
  • manage database files, including LDF, MDF, In-Memory OLTP, and garbage collection
  • define a retention policy

Troubleshoot and resolve concurrency issues

  • Examine deadlocking issues using the SQL server logs using trace flags
  • design reporting database infrastructure (replicated databases)
  • monitor via DMV or other MS product
  • diagnose blocking, live locking and deadlocking
  • diagnose waits
  • performance detection with built in DMVs
  • know what affects performance
  • use Extended Events
  • implement query hints to increase concurrency

Design and implement a high availability solution

  • Understand the traditional failover clustering solution
  • configure failover clustering
  • design readable mirrors
  • create a highly available configuration with low RTO
  • design and ensure uptime to relevant TOS/RLAs (includes monitoring, patching, etc.)
  • design and implement a replication architecture
  • design and implement a database mirroring architecture
  • implement a mirroring solution, including AlwaysOn and Availability Groups
  • design geographical fault-tolerance using Windows Azure SQL Database

Design a solution to monitor performance and concurrency

  • Identify performance monitor counters to monitor
  • monitor for performance and bottlenecks, including Wait Stats
  • design a top consumer queries monitoring and review strategy
  • monitor for missing statistics and create them when needed

Design a monitoring solution at the instance level

  • Design auditing strategies including XE, Profiler, Perfmon, and DMV usage
  • set up file and table growth monitoring
  • collect performance indicators and counters
  • content management systems
  • policies
  • design auditing strategies, including Event traces, SQL Audit, event-based maintenance
  • create jobs to monitor server health
  • audit using Windows Logs