Elements of this syllabus
are subject to change.
This five-day course
provides students with the technical skills required to program a database by
using Microsoft SQL Server 2000.
This course is designed for
those who are responsible for implementing database objects and programming
SQL Server databases by using Transact-SQL.
After completing this
course, students will be able to:
|
• |
Describe the elements of
SQL Server 2000. |
|
• |
Describe the conceptual
basis of programming in Transact-SQL. |
|
• |
Create and manage
databases and their related components. |
|
• |
Implement data integrity
by using the IDENTITY column property, constraints, defaults, rules, and
unique identifiers. |
|
• |
Plan for the use of
indexes. |
|
• |
Create and maintain indexes. |
|
• |
Create, use, and maintain
data views. |
|
• |
Design, create, and use
stored procedures. |
|
• |
Implement user-defined functions. |
|
• |
Create and implement triggers. |
|
• |
Program across multiple
servers by using distributed queries, distributed transactions, and
partitioned views. |
|
• |
Optimize query performance. |
|
• |
Analyze queries. |
|
• |
Manage transactions and
locks to ensure data concurrency and recoverability. |
Before attending this
course, students must have:
|
• |
Experience using the
Microsoft Windows Server 2003 operating system to: |
.Connect clients running
Microsoft Windows-based operating systems to networks and the Internet
.Configure the Windows
environment
.Create and manage user
accounts
.Manage access to resources
by using groups
.Configure and manage disks
and partitions, including disk striping and mirroring
.Manage data by using NT
file system (NTFS)
.Implement Windows server
and client security
.Optimize performance in
Windows operating systems
For students who do not
meet these prerequisites, the following courses provide the necessary knowledge
and skills:
.Course 2274: Managing a
Microsoft Windows Server 2003 Environment.
.Course 2275: Maintaining a Microsoft Windows Server 2003 Environment.
|
• |
An understanding of basic
relational database concepts, including: |
.Logical and physical
database design
.Data integrity concepts
.Relationships between
tables and columns (primary key and foreign key, one-to-one, one-to-many,
many-to-many)
.How data is stored in
tables (rows and columns).
|
• |
Knowledge of basic
Transact-SQL syntax (SELECT, UPDATE, and INSERT statements) |
For students who do not
meet these prerequisites, the following course provides the necessary knowledge
and skills:
.Course 2071A, Querying
Microsoft SQL Server 2000 with Transact-SQL
|
• |
Familiarity with the role
of the database administrator |
No Microsoft Certification
exams are associated with this course currently.
The student kit includes a
comprehensive workbook and other necessary materials for this class.
Module 1: Overview of
Programming SQL Server
This module provides
students with an overview of enterprise-level application architecture and of
Transact-SQL as a programming language. Transact-SQL is a data definition,
manipulation, and control language. Students are assumed to be familiar with
ANSI-SQL and basic programming concepts, such as functions, operators, variables,
and control-of-flow statements. Students will also learn the different ways to
execute Transact-SQL.
Lessons
|
• |
Introducing SQL Server Databases |
|
• |
Working With SQL Server
Programming Tools |
|
• |
Understanding Transact-SQL Elements |
|
• |
Programming Language Elements |
|
• |
Executing Transact-SQL Statements |
Lab: Overview of Transact-SQL
After completing this
module, students will be able to:
|
• |
Describe SQL Server databases. |
|
• |
Describe the primary
SQL Server 2000 programming tools. |
|
• |
Explain the difference
between the two primary programming tools in SQL Server. |
|
• |
Describe the basic
elements of Transact-SQL. |
|
• |
Describe the use of local
variables, operators, functions, control-of-flow statements, and comments. |
|
• |
Describe the various ways
to execute Transact-SQL statements. |
Module 2: Creating and
Managing Databases
This module describes how
to create a database, set database options, create filegroups, and manage a
database and the transaction log. It reviews disk space allocation and how the
transaction log records data modifications.
Lessons
|
• |
Defining Databases |
|
• |
Using Filegroups |
|
• |
Managing Databases |
Lab: Creating and Managing Databases
After completing this
module, students will be able to
|
• |
Create a database. |
|
• |
Work with filegroups. |
|
• |
Manage a database. |
Module 3: Creating Data
Types and Tables
This module describes how
to create data types and tables and generate Transact-SQL scripts containing
statements that create a database and its objects.
Lessons
|
• |
Working with Data Types |
|
• |
Working with Tables |
|
• |
Generating Column Values |
|
• |
Generating Scripts |
Lab: Creating Data Types
and Tables
After completing this
module, students will be able to:
|
• |
Create and drop
user-defined data types. |
|
• |
Create and drop user
tables. |
|
• |
Generate column values. |
|
• |
Generate a script. |
Module 4: Implementing Data Integrity
This module shows how
centrally-managed data integrity is a benefit of relational databases. Beginning
with an introduction to data integrity concepts, including the methods
available for enforcing data integrity, the module then introduces a section on
constraints, the key method of ensuring data integrity. The module discusses
the creation, implementation, and disabling of constraints and discusses how defaults
and rules are an alternate way to enforce data integrity. The module
concludes by comparing different data integrity methods.
Lessons
|
• |
Introducing Data Integrity |
|
• |
Defining Constraints |
|
• |
Understanding Constraint Types |
|
• |
Disabling Constraints |
|
• |
Using Defaults and Rules |
|
• |
Deciding Which
Enforcement Method to Use |
Lab: Implementing Data
Integrity
After completing this
module, students will be able to
|
• |
Describe the types of
data integrity. |
|
• |
Describe the methods to
enforce data integrity. |
|
• |
Determine which
constraint to use, and create constraints. |
|
• |
Define and use DEFAULT,
CHECK, PRIMARY KEY, UNIQUE, and FOREIGN KEY constraints. |
|
• |
Disable constraints. |
|
• |
Describe and use defaults
and rules. |
|
• |
Determine which
data-integrity enforcement methods to use. |
Module 5: Planning
Indexes
This module provides
students with an overview of planning indexes. It explains how database
performance can be improved with indexes; how clustered and nonclustered
indexes are stored in SQL Server and how SQL Server retrieves rows by
using indexes; and explores how SQL Server maintains indexes. The module
concludes with guidelines for deciding which columns to index.
Lessons
|
• |
Introducing Indexes |
|
• |
Understanding Index Architecture |
|
• |
Retrieving Stored Data
with SQL Server |
|
• |
Maintaining Index and
Heap Structures in SQL Server |
|
• |
Deciding Which Columns to
Index |
Lab: Determining the
Indexes of a Table
After completing this
module, students will be able to
|
• |
Describe why and when to
use an index. |
|
• |
Describe how
SQL Server uses clustered and nonclustered indexes. |
|
• |
Describe how
SQL Server index architecture facilitates the retrieval of data. |
|
• |
Describe how
SQL Server maintains indexes and heaps. |
|
• |
Describe the importance
of selectivity, density, and distribution of data when deciding which columns
to index. |
Module 6: Creating and
Maintaining Indexes
This module provides
students with an overview of using the CREATE INDEX options to create and
maintain indexes. It describes how maintenance procedures physically change the
indexes; discusses maintenance tools; describes the use of statistics in
SQL Server; and describes ways to verify that indexes are used and whether
they perform optimally. The module concludes with a discussion of when to use
the Index Tuning Wizard.
Lessons
|
• |
Creating Indexes |
|
• |
Understanding Index Creation Options |
|
• |
Maintaining Indexes |
Lab: Creating and Maintaining Indexes
|
• |
Introducing Statistics |
|
• |
Using the Index Tuning
Wizard |
Lab: Viewing Index
Statistics
After completing this
module, students will be able to
|
• |
Create indexes and
indexed views with unique or composite characteristics. |
|
• |
Use the CREATE INDEX
options. |
|
• |
Describe how to maintain
indexes over time. |
|
• |
Describe how the query
optimizer creates, stores, maintains, and uses statistics to optimize
queries. |
|
• |
Query the sysindexes
system table. |
|
• |
Describe how the Index
Tuning Wizard works and when to use it. |
|
• |
Describe performance
considerations that affect creating and maintaining indexes. |
Module 7: Implementing
Views
This module defines views
and their advantages, showing how views provide the ability to store a
predefined query as an object in the database for later use. Views also offer a
convenient way to hide sensitive data and the complexities of a database design
and to provide a set of information without requiring the user to write or
execute Transact-SQL statements. The module describes creating views and
provides examples of how to include computed columns and built-in functions in
the view definitions. The module then covers restrictions on modifying data
through views. The last section discusses how views can improve
performance.
Lessons
|
• |
Introducing Views |
|
• |
Defining and Using Views |
|
• |
Using Views to Optimize Performance |
Lab: Implementing Views
After completing this module, students will be able to
|
• |
Describe the concept of a view. |
|
• |
List the advantages of views. |
|
• |
Define a view by using the CREATE VIEW statement. |
|
• |
Modify data through views. |
|
• |
Optimize performance by using views. |
Module 8: Implementing Stored Procedures
This module describes how to use stored procedures to improve application design
and performance by encapsulating business rules. It discusses ways to process
common queries and data modifications, and provides numerous examples and
demonstrations of stored procedures.
Lessons
|
• |
Introducing Stored Procedures |
|
• |
Creating, Modifying, Dropping, and ExecutingStored Procedures |
Lab: Creating Stored Procedures
|
• |
Using Parameters in Stored Procedures |
|
• |
Handling Error Messages |
|
• |
Working with Stored Procedures |
Lab: Creating Stored Procedures Using Parameters
After completing this module, students will be able to
|
• |
Describe how a stored procedure is processed. |
|
• |
Create, execute, modify, and drop a stored procedure. |
|
• |
Create stored procedures that accept parameters. |
|
• |
Create custom error messages. |
|
• |
Use dynamic SQL in stored procedures. |
|
• |
Execute extended stored procedures. |
Module 9: Implementing User-Defined Functions
This module discusses the implementation of user-defined functions. It
explains the three types of user-defined functions and the general syntax for
creating and altering them, and provides an example of each type.
Lessons
|
• |
Introducing User-Defined Functions |
|
• |
Implementing User-Defined Functions |
Lab: Creating User-Defined Functions
After completing this module, students will be able to
|
• |
Describe the three types of user-defined functions. |
|
• |
Create and alter user-defined functions. |
|
• |
Create each of the three types of user-defined functions. |
Module 10: Implementing Triggers
This module shows that triggers are useful tools for database implementers who
want certain actions to be performed whenever data is inserted, updated, or
deleted from a specific table. Triggers are especially useful tools for
cascading changes throughout other tables in the database while preserving
complex referential integrity.
Lessons
|
• |
Introducing Triggers |
|
• |
Creating, Altering, and Dropping Triggers |
|
• |
Working with Triggers |
|
• |
Implementing Triggers |
Lab: Creating Triggers
After completing this module, students will be able to
|
• |
Create a trigger. |
|
• |
Drop a trigger. |
|
• |
Alter a trigger. |
|
• |
Evaluate the performance considerations that affect using triggers. |
Module 11: Programming Across Multiple Servers
This module provides students with information on how to design security for
a multi-server environment. It also explains the construction of distributed
queries, distributed transactions, and partitioned views.
Lessons
|
• |
Introducing Distributed Queries |
|
• |
Setting Up a Linked Server Environment |
|
• |
Working with Linked Servers |
|
• |
Using Partitioned Views |
Lab: Using Distributed Data
After completing this module, students will be able to
|
• |
Describe distributed queries. |
|
• |
Write ad hoc queries that access data that is stored on a remote computer
running Microsoft SQL Server 2000 or in an object linking and embedding
database (OLE DB) data source. |
|
• |
Set up a linked server environment to access data that is stored on a
remote computer running SQL Server 2000 or in an OLE DB data source. |
|
• |
Write queries that access data from a linked server. |
|
• |
Execute stored procedures on a remote server or linked server. |
|
• |
Manage distributed transactions. |
|
• |
Use distributed transactions to modify distributed data. |
|
• |
Use partitioned views to increase performance. |
Module 12: Optimizing Query Performance
This module provides students with an in-depth look at how the query
optimizer works, how to obtain query plan information, and how to implement
indexing strategies.
Lessons
|
• |
Introducing the Query Optimizer |
|
• |
Tuning Performance Using SQL Utilities |
|
• |
Using an Index to Cover a Query |
|
• |
Overriding the Query Optimizer |
|
• |
Understanding Indexing Strategies and Guidelines |
Lab: Optimizing Query Performance
After completing this module, students will be able to
|
• |
Explain the role of the query optimizer and how it works to ensure that
queries are optimized. |
|
• |
Use various methods for obtaining execution plan information so that
students can determine how the query optimizer processed a query and can
validate that the most efficient execution plan was generated. |
|
• |
Create indexes that cover queries. |
|
• |
Identify indexing strategies that reduce page reads. |
|
• |
Evaluate when to override the query optimizer. |
Module 13: Performing Advance Query Analysis
This module describes how the query optimizer evaluates and processes
queries that contain the AND operator, the OR operator, and join operations.
Lessons
|
• |
Analyzing Queries That Use the AND and OR Operator |
|
• |
Analyzing Queries That Use Join Operations |
Lab: Analyzing Queries
That Use the AND and OR Operators
Lab: Analyzing Queries
That Use Different Join Strategies
After completing this
module, students will be able to
|
• |
Analyze the performance
gain of writing efficient queries while creating useful indexes for queries
that contain the AND logical operator. |
|
• |
Analyze the performance gain of writing efficient queries while creating
useful indexes for queries that contain the OR logical operator. |
|
• |
Evaluate how the query optimizer uses different join strategies for query
optimization. |
Module 14: Managing Transactions and Locks
This module discusses how transactions and locks ensure transaction
integrity to accommodate multiple users. The module continues with a discussion
of how transactions are executed and rolled back. A short animation helps to
convey how transaction processing works. The module next describes how
SQL Server locks maintain data consistency and concurrency. The module
then introduces resources that can be locked, the different types of locks, and
lock compatibility. A discussion follows on SQL Server dynamic locking
based on schema and query. The final section describes locking options,
discusses deadlocks, and explains how to display information on active locks.
Lessons
|
• |
Introducing Transactions and Locks |
|
• |
Managing Transactions |
|
• |
Understanding SQL Server Locking Architecture |
|
• |
Managing Locks |
Lab: Managing Transactions and Locks
After completing this module, students will be able to
|
• |
Describe transaction processing. |
|
• |
Execute, cancel, or roll back a transaction. |
|
• |
Identify locking concurrency issues. |
|
• |
Identify resource items that can be locked and the types of locks. |
|
• |
Describe lock compatibility. |
|
• |
Describe how SQL Server uses dynamic locking. |
|
• |
Set locking options and display locking information. |