20762C

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

20762C: Developing SQL Databases

Course Details Elements of this syllabus are subject to change.

Course Code: 20762C About this course


This five-day instructor-led course provides students with the knowledge
Duration: 5 days
and skills to develop a Microsoft SQL Server database. The course focuses
Notes: on teaching individuals how to use SQL Server product features and tools
related to developing a database.
• This course syllabus should be
used to determine whether Audience Profile
the course is appropriate for The primary audience for this course is IT Professionals who want to
the students, based on their become skilled on SQL Server product features and technologies for
current skills and technical implementing a database.
training needs.
• Course content, prices, and
The secondary audiences for this course are individuals who are developers
availability are subject to
change without notice. from other product platforms looking to become skilled in the
• Terms and Conditions apply implementation of a SQL Server database.

At Course Completion
After completing this course, students will be able to:

• Design and Implement Tables.


• Describe advanced table designs
• Ensure Data Integrity through Constraints.
• Describe indexes, including Optimized and Columnstore indexes
• Design and Implement Views.
• Design and Implement Stored Procedures.
• Design and Implement User Defined Functions.
• Respond to data manipulation using triggers.
• Design and Implement In-Memory Tables.
• Implement Managed Code in SQL Server.
• Store and Query XML Data.
• Work with Spatial Data.
• Store and Query Blobs and Text Documents.

Prerequisites
• Basic knowledge of the Microsoft Windows operating system and its
Academy IT Pty Ltd core functionality.
Harmer House • Working knowledge of Transact-SQL.
Level 2, 5 Leigh Street
• Working knowledge of relational databases.
ADELAIDE 5000

Email: [email protected]
Web: www.academyit.com.au

Phone: 08 7324 9800


Brian: 0400 112 083
Table of Contents

Module 1: Introduction to Database After completing this module, you will be able to:
Development
Before beginning to work with Microsoft SQL • Design tables using normalization,
Server in either a development or an primary and foreign keys.
administration role, it is important to understand • Work with identity columns.
the scope of the SQL Server platform. In • Understand built-in and user data types.
particular, it is useful to understand that SQL • Use schemas in your database designs to
Server is not just a database engine—it is a organize data, and manage object
complete platform for managing enterprise data. security.
SQL Server provides a strong data platform for all • Work with computed columns and
sizes of organizations, in addition to a temporary tables.
comprehensive set of tools to make development
easier, and more robust. Module 3: Advanced Table Designs
The physical design of a database can have a
Lessons significant impact on the ability of the database
• Introduction to the SQL Server Platform to meet the storage and performance
• SQL Server Database Development Tasks requirements set out by the stakeholders.
Designing a physical database implementation
After completing this module, you will be able to: includes planning the filegroups, how to use
partitioning to manage large tables, and using
• Describe the SQL Server platform. compression to improve storage and
• Use SQL Server administration tools. performance. Temporal tables are a new feature
in SQL Server and offer a straightforward solution
Module 2: Designing and Implementing Tables to collecting changes to your data.
In a relational database management system
(RDBMS), user and system data is stored in Lessons
tables. Each table consists of a set of rows that • Partitioning Data
describe entities and a set of columns that hold • Compressing Data
the attributes of an entity. For example, a • Temporal Tables
Customer table might have columns such as
CustomerName and CreditLimit, and a row for Lab : Using Advanced Table Designs
each customer. In Microsoft SQL Server data • Partitioning Data
management software tables are contained • Compressing Data
within schemas that are very similar in concept to
folders that contain files in the operating system. After completing this module, you will be able to:
Designing tables is one of the most important
tasks that a database developer undertakes, • Describe the considerations for using
because incorrect table design leads to the partitioned tables in a SQL Server
inability to query the data efficiently. After an database.
appropriate design has been created, it is • Plan for using data compression in a SQL
important to know how to correctly implement Server database.
the design. • Use temporal tables to store and query
changes to your data.
Lessons
• Designing Tables Module 4: Ensuring Data Integrity through
• Data Types Constraints
• Working with Schemas The quality of data in your database largely
• Creating and Altering Tables determines the usefulness and effectiveness of
applications that rely on it—the success or failure
Lab : Designing and Implementing Tables of an organization or a business venture could
• Designing Tables depend on it. Ensuring data integrity is a critical
• Creating Schemas step in maintaining high-quality data. You should
• Creating Tables enforce data integrity at all levels of an
application from first entry or collection through
Table of Contents

storage. Microsoft SQL Server data management After completing this module, you will be able to:
software provides a range of features to simplify
the job. • Explain core indexing concepts.
• Evaluate which index to use for different
Lessons data types.
• Enforcing Data Integrity • Describe the difference between single
• Implementing Data Domain Integrity and composite column indexes.
• Implementing Entity and Referential
Integrity Module 6: Designing Optimized Index Strategies
Indexes play an important role in enabling SQL
Lab : Using Data Integrity Through Constraints Server to retrieve data from a database quickly
• Add Constraints and efficiently. This module discusses advanced
• Test the Constraints index topics including covering indexes, the
INCLUDE clause, query hints, padding and fill
After completing this module, you will be able to: factor, statistics, using DMOs, the Database
Tuning Advisor, and Query Store.
• Describe the options for enforcing data
integrity, and the levels at which they Lessons
should be applied. • Index Strategies
• Implement domain integrity through • Managing Indexes
options such as check, unique, and • Execution Plans
default constraints. • The Database Engine Tuning Advisor
• Implement referential integrity through • Query Store
primary and foreign key constraints.
Lab : Optimizing Indexes
Module 5: Introduction to Indexes • Using Query Store
An index is a collection of pages associated with a • Heaps and Clustered Indexes
table. Indexes are used to improve the • Creating a Covered Index
performance of queries or enforce uniqueness.
Before learning to implement indexes, it is helpful After completing this module, you will be able to:
to understand how they work, how effective
different data types are when used within • What a covering index is, and when to
indexes, and how indexes can be constructed • The issues involved in managing indexes.
from multiple columns. This module discusses • Actual and estimated execution plans.
table structures that do not have indexes, and • How to use Database Tuning Advisor to
the different index types available in Microsoft improve the performance of queries.
SQL Server. • How to use Query Store to improve query
performance.
Lessons
• Core Indexing Concepts Module 7: Columnstore Indexes
• Data Types and Indexes Introduced in Microsoft SQL Server 2012,
• Heaps, Clustered, and Nonclustered columnstore indexes are used in large data
Indexes warehouse solutions by many organizations. This
• Single Column and Composite Indexes module highlights the benefits of using these
indexes on large datasets; the improvements
Lab : Implementing Indexes made to columnstore indexes in SQL Server 2016;
• Creating a Heap and the considerations needed to use
• Creating a Clustered Index columnstore indexes effectively in your solutions.
• Creating a Covered Index
Lessons
• Introduction to Columnstore Indexes
• Creating Columnstore Indexes
• Working with Columnstore Indexes
Table of Contents

Lab : Using Columnstore Indexes Lessons


• Creating a Columnstore Index • Introduction to Stored Procedures
• Create a Memory Optimized Columnstore • Working with Stored Procedures
Table • Implementing Parameterized Stored
Procedures
After completing this module, you will be able to: • Controlling Execution Context
• Describe columnstore indexes and
Lab : Designing and Implementing Stored
identify suitable scenarios for their use.
Procedures
• Create clustered and nonclustered
• Create Stored procedures
columnstore indexes.
• Create Parameterized Stored procedures
• Describe considerations for using
• Changes Stored Procedure Execution
columnstore indexes.
Context
Module 8: Designing and Implementing Views After completing this module, you will be able to:
This module describes the design and
implementation of views. A view is a special type • Understand what stored procedures are,
of query—one that is stored and can be used in and what benefits they have.
other queries—just like a table. With a view, only • Design, create, and alter stored
the query definition is stored on disk; not the procedures.
result set. The only exception to this is indexed • Control the execution context of stored
views, when the result set is also stored on disk, procedures.
just like a table. Views simplify the design of a • Implement stored procedures that use
database by providing a layer of abstraction, and parameters.
hiding the complexity of table joins. Views are
also a way of securing your data by giving users Module 10: Designing and Implementing User-
permissions to use a view, without giving them Defined Functions
permissions to the underlying objects. This means Functions are routines that you use to
data can be kept private, and can only be viewed encapsulate frequently performed logic. Rather
by appropriate users. than having to repeat the function logic in many
places, code can call the function. This makes
Lessons code more maintainable, and easier to debug. In
• Introduction to Views this module, you will learn to design and
• Creating and Managing Views implement user-defined functions (UDFs) that
• Performance Considerations for Views enforce business rules or data consistency. You
will also learn how to modify and maintain
Lab : Designing and Implementing Views existing functions.
• Creating Standard Views
• Creating an Updateable view Lessons
• Overview of Functions
After completing this module, you will be able to: • Designing and Implementing Scalar
• Understand the role of views in database Functions
design. • Designing and Implementing Table-
• Create and manage views. Valued Functions
• Understand the performance • Considerations for Implementing
considerations with views. Functions
• Alternatives to Functions
Module 9: Designing and Implementing Stored
Procedures Lab : Designing and Implementing User-Defined
This module describes the design and Functions
implementation of stored procedures. • Format Phone numbers
• Modify an Existing Function
Table of Contents

After completing this module, you will be able to: Lessons


• Memory-Optimized Tables
• Describe different types of functions. • Natively Compiled Stored Procedures
• Design and implement scalar functions.
• Design and implement table-valued Lab : Using In-Memory Database Capabilities
functions (TVFs). • Using Memory-Optimized Tables
• Describe considerations for implementing • Using Natively Compiled Stored
functions. procedures
• Describe alternatives to functions.
After completing this module, you will be able to:
Module 11: Responding to Data Manipulation
via Triggers • Use memory-optimized tables to improve
Data Manipulation Language (DML) triggers are performance for latch-bound workloads.
powerful tools that you can use to enforce • Use natively compiled stored procedures.
domain, entity, referential data integrity and
business logic. The enforcement of integrity helps Module 13: Implementing Managed Code in SQL
you to build reliable applications. In this module, Server
you will learn what DML triggers are, how they As a SQL Server professional, you are likely to be
enforce data integrity, the different types of asked to create databases that meet business
trigger that are available to you, and how to needs. Most requirements can be met using
define them in your database. Transact-SQL. However, occasionally you may
need additional capabilities that can only be met
Lessons by using common language runtime (CLR) code.
• Designing DML Triggers As functionality is added to SQL Server with each
• Implementing DML Triggers new release, the necessity to use managed code
• Advanced Trigger Concepts decreases. However, there are times when you
might need to create aggregates, stored
Lab : Responding to Data Manipulation by Using procedures, triggers, user-defined functions, or
Triggers user-defined types. You can use any .NET
• Create and Test the Audit Trigger Framework language to develop these objects. In
• Improve the Audit Trigger this module, you will learn how to use CLR
managed code to create user-defined database
After completing this module, you will be able to: objects for SQL Server.

• Design DML triggers Lessons


• Implement DML triggers • Introduction to CLR Integration in SQL
• Explain advanced DML trigger concepts, Server
such as nesting and recursion. • Implementing and Publishing CLR
Assemblies
Module 12: Using In-Memory Tables
Microsoft SQL Server 2014 data management Lab : Implementing Managed Code in SQL Server
software introduced in-memory online • Assessing Proposed CLR Code
transaction processing (OLTP) functionality • Creating a Scalar-Valued CLR Function
features to improve the performance of OLTP • Creating a Table Valued CLR Function
workloads. SQL Server adds several
enhancements, such as the ability to alter a After completing this module, you will be able to:
memory-optimized table without recreating it.
Memory-optimized tables are primarily stored in • Explain the importance of CLR integration
memory, which provides the improved in SQL Server.
performance by reducing hard disk access. • Implement and publish CLR assemblies
Natively compiled stored procedures further using SQL Server Data Tools (SSDT).
improve performance over traditional interpreted
Transact-SQL.
Table of Contents

Module 14: Storing and Querying XML Data in Module 15: Storing and Querying Spatial Data in
SQL Server SQL Server
XML provides rules for encoding documents in a This module describes spatial data and how this
machine-readable form. It has become a widely data can be implemented within SQL Server.
adopted standard for representing data
structures, rather than sending unstructured Lessons
documents. Servers that are running Microsoft • Introduction to Spatial Data
SQL Server data management software often • Working with SQL Server Spatial Data
need to use XML to interchange data with other Types
systems; many SQL Server tools provide an XML- • Using Spatial Data in Applications
based interface. SQL Server offers extensive
handling of XML, both for storage and querying. Lab : Working with SQL Server Spatial Data
This module introduces XML, shows how to store • Become Familiar with the Geometry Data
XML data within SQL Server, and shows how to Type
query the XML data. The ability to query XML • Add Spatial Data to an Existing Table
data directly avoids the need to extract data into • Find Nearby Locations
a relational format before executing Structured
Query Language (SQL) queries. To effectively After completing this module, you will be able to:
process XML, you need to be able to query XML
• Describe how spatial data can be stored
data in several ways: returning existing relational
in SQL Server
data as XML, and querying data that is already
XML. • Use basic methods of the GEOMETRY and
GEOGRAPHY data types
Lessons • Query databases containing spatial data
• Introduction to XML and XML Schemas
Module 16: Storing and Querying BLOBs and
• Storing XML Data and Schemas in SQL
Text Documents in SQL Server
Server
Traditionally, databases have been used to store
• Implementing the XML Data Type
information in the form of simple values—such as
• Using the Transact-SQL FOR XML
integers, dates, and strings—that contrast with
Statement
more complex data formats, such as documents,
• Getting Started with XQuery
spreadsheets, image files, and video files. As the
• Shredding XML systems that databases support have become
more complex, administrators have found it
Lab : Storing and Querying XML Data in SQL
necessary to integrate this more complex file
Server
data with the structured data in database tables.
• Determining when to use XML
For example, in a product database, it can be
• Testing XML Data Storage in Variables
helpful to associate a product record with the
• Using XML Schemas service manual or instructional videos for that
• Using FOR XML Queries product. SQL Server provides several ways to
• Creating a Stored Procedure to Return integrate these files—that are often known as
XML Binary Large Objects (BLOBs)—and enable their
content to be indexed and included in search
After completing this module, you will be able to:
results. In this module, you will learn how to
• Describe XML and XML schemas. design and optimize a database that includes
• Store XML data and associated XML BLOBs.
schemas in SQL Server
Lessons
• Implement XML indexes within SQL
Server. • Considerations for BLOB Data
• Use the Transact-SQL FOR XML • Working with FILESTREAM
statement. • Using Full-Text Search
• Work with basic XQuery queries.
Table of Contents

Lab : Storing and Querying BLOBs and Text first two lessons look at SQL Server Extended
Documents in SQL Server Events, a flexible, lightweight event-handling
• Enabling and Using FILESTREAM Columns system built into the Microsoft SQL Server
• Enabling and Using File Tables Database Engine. These lessons focus on the
• Using a Full-Text Index architectural concepts, troubleshooting strategies
and usage scenarios.
After completing this module, you will be able to:
Lessons
• Describe the considerations for designing • Extended Events
databases that incorporate BLOB data. • Working with extended Events
• Describe the benefits and design • Live Query Statistics
considerations for using FILESTREAM to • Optimize Database File Configuration
store BLOB data on a Windows file • Metrics
system.
• Describe the benefits of using full-text Lab : Monitoring, Tracing, and Baselining
indexing and Semantic Search, and • Collecting and Analyzing Data Using
explain how to use these features to Extended Events
search SQL Server data, including • Implementing Baseline Methodology
unstructured data
After completing this module, you will be able to:
Module 17: SQL Server Concurrency
This module explains how to name, declare, • Understand Extended Events and how to
assign values to, and use variables. It also use them.
describes how to store data in an array. • Work with Extended Events.
Concurrency control is a critical feature of • Understand Live Query Statistics.
multiuser database systems; it allows data to • Optimize the file configuration of your
remain consistent when many users are databases.
modifying data at the same time. This module • Use DMVs and Performance Monitor to
covers the implementation of concurrency in create baselines and gather performance
Microsoft SQL Server. You will learn about how metrics.
SQL Server implements concurrency controls, and
the different ways you can configure and work
with concurrency settings.

Lessons
• Concurrency and Transactions
• Locking Internals

Lab : SQL Server Concurrency


• Implement Snapshot Isolation
• Implement Partition Level Locking

After completing this module, you will be able to:

• Describe concurrency and transactions in


SQL Server.
• Describe SQL Server locking.

Module 18: Performance and Monitoring


This module explains how to name, declare,
assign values to, and use variables. It also
describes how to store data in an array. This
module looks at how to measure and monitor the
performance of your SQL Server databases. The