SQL Server 2005 is a huge release for the SQL Server team—and for the industry in general—that heralds a new era in the development of database applications. Over the next few months, I'll look at some of the more exciting and industry-altering features of SQL Server 2005. I'll also occasionally pontificate about how you can use SQL Server 2005's enhanced features to develop "data-based" applications. But first, I want to look back on the history of storing and using data. It's always good to learn from the past, as long as you don't get stuck there.
To understand the revolutionary changes coming in SQL Server 2005, it helps to look at how databases have evolved. People have always stored data, but when we developed technology to store data electronically, we quickly realized that what makes computer systems so important isn't just the ability to keep data. The ways we retrieve and manipulate that data are also vital.
When computers first became prevalent, companies used large mainframe systems with dumb terminals as the client stations. These systems offered enterprise-level power and storage, and the mainframe performed all the application work. But such systems offered little user functionality and no offline support. When PCs hit the industry, users suddenly had powerful applications that stored data on client machines. Products such as Microsoft Access opened the power of databases to all users.
The PC model was liberating, but the complexity of accessing and synchronizing local data with enterprise data meant that the enterprise servers became dumb data stores, whereas the client applications did all the data manipulation. Because of the amount of data moving between server and client, this model led to high bandwidth usage and low utilization of the powerful central servers. More advanced client-server systems moved much of the data manipulation back to the server so that only the results the client required moved across the network. The main drawback of these systems was that you needed a direct network connection to access enterprise data.
The Internet gave people new ways to interact with enterprise data. Applications that ran within a Web browser let you access enterprise data from anywhere in the world. Applications resided in a central location—typically a middle tier—and the browser acted as a simple display mechanism for the application data. Although this model solved the problem of accessing enterprise data without a direct network connection, browser functionality was somewhat limited, and business logic and much of the data manipulation moved from the database into the middle tier. The entire model felt similar to the abandoned mainframe/dumb-terminal scenario.
Recent models use the Internet as a transport layer and retain the n-tier model for business logic and most data manipulation while utilizing smart-client applications to provide the presentation layer and advanced functionality. This model lets users work from anywhere in the world, but still uses the database mostly as a dumb data store rather than an application-architecture tool.
SQL Server 2005 blurs the traditional boundaries of the n-tier application model and releases the power of the database server as a key component in the application architecture. CLR integration lets you move your complex, middle-tier, data-manipulation code back into the database, so that working with data-intensive business logic is more efficient and less of a drain on resources. SQL Server 2005 also introduces innovations such as native Web Services and XML support, which let you use your SQL Server as an integral part of your service-oriented architecture (SOA). SQL Server can now be more than just a database engine, thanks to functionality such as Service Broker, which provides a reliable asynchronous messaging service; Reporting Services, which provides a true enterprise-reporting solution; and Integration Services, which provides a mechanism for gathering, investigating, integrating, and publishing data from disparate data sources. SQL Server 2005 will be an integral part of your development toolset, providing the means to easily implement the complex functionality in today's applications.
Over the next few months, I'll explore many of these great features and talk about ways to use SQL Server outside the traditional database world. In the meantime, you can read the latest technical information about SQL Server 2005 at http://msdn.microsoft.com/sql/2005.