sql server 2008 R2 Data-tier Application 提供新的数据库升级方法
数据库的升级总是比应用程序的升级要困难。应用程序升级不外乎就是完整的覆盖文件。而数据库的升级不能简单的做文件整体覆盖,而必须考虑用户数据的存在,保证用户数据是完整性和可用性。
以往我们升级数据库的方法可以简称为Create then Alter 。这个方法常常有两个文件构成,一个为Create.sql,一个是Alter.sql .Create.sql 建立1.0的数据库(包括模式和数据),Alter.sql 可以在任何版本的用户数据库上运行,然后把这个数据库升级到最新版本。整个alter.sql内,必须详细的说明从1.0以来到最新版本的全部变化——需要小心编写这个文件——做很多的检查来适应不同版本的数据库,并且不能破坏任何用户数据。
比如说我们做了一个应用,1.0 版本中有一个表
CREATE TABLE [dbo].[Person]
(
id int NOT NULL,
name int NOT NULL
)
在版本2.0的时候,需要为Person表添加一个新的字段,email。
那么我们必须在Alter.sql内添加一个过程语句。表明从1.0的数据库模式 如何变成2.0的模式:
Alter table Person Add Column email varchar(50) null;
就是说,开发者必须自己用过程的方法,告诉sql server,数据库模式如何一步步的从1.0 到2.0 的。
这样的变化非常的多,多年的经验说明,数据库版本的升级可以新增表,删除表,填写数据,修改字段名称,字段类型,约束等等。其间的繁琐冗长,可以想得到。
sql server 2008 R2 DAC提供了新的升级方法。
DAC的定义:A Data-tier Application (DAC) is an entity that contains all of the database and instance objects that are required to support an application, like stored procedures, tables, views, logins, etc.(DAC 是一个实体,内含全部数据库和实例的对象,比如存储过程,表,视图,登录帐号等等)
这个定义很准确,但是不容易看出应用的范围。我的个人看法可以简而言之:DAC 提供了数据库的声明型的升级,而不是过程型升级。
同样以Person为例。DAC的做法,就是直接说明新的模式如下:
CREATE TABLE [dbo].[Person]
(
id int NOT NULL,
name int NOT NULL,
email varchar(50) null
)
然后 ,由DAC 自动比较新老模式的差异,自动升级模式和迁移。假设要升级的数据库为 People ,那么具体过程如下:
_ 以新的模式定义文件,创建一个新的数据库,比如 people_new
_ 拷贝 People 的数据到 people_new
_ 老数据库 People 改名(新名称和现有数据库不能重复)
_ people_new 改名为people。
这样整个升级完成。
声明型升级相比过程型升级的好处就是开发者只要说明新版本的模式是怎样的就行了,而不必担心如何做,以及怎样迁移数据。
DAC相当的程度上做到了声明型升级。使用 Data-Tier Application,开发者只需要为新的版本编译出新的dacpac包文件,DBA 定位到现存的DAC然后选择升级功能,升级向导会比对新老版本差异,然后自动确定需要升级的操作。
DAC模式是有限定的。以字段的调整为例,修改字段的类型、约束,新增字段,删除字段都可以自动的完成数据的迁移。
“修改字段名称”这样的数据库模式升级是无法自动迁移数据的。而必须自己编写脚本来完成—— 因为和删除一个字段然后在新增一个字段无法区别。
Visual Studio 2010 可以提供 DAC应用 开发的支持。开发工程的模板为 Data-tier Application 。
本文强调了两种数据库升级方法的思想差异和DAC模式的限定。具体操作方面的内容和我的文章参考的内容,可以从以下资源获得(没有指明URL,因为你可以自己搜索):
1. SQL Server 2008 R2 Update for Developers Training Kit@microsoft. 非常翔实,具体而容易操作。有PPT,Video,动手试验三方面的内容构成。
2. SQL Server 2008 R2数据管理新纪元@it168。初步的,新特性级别的描述,容易阅读。
3. 主数据管理和实施 @developerworks。原来我们的基本信息诸如商品,科目,仓库等是有一个统一的名字,叫做主数据!
4. Is SQL Server 2008 R2 For You? 从2000,2005,2008的不同的用户角度分析R2带来的新特性。
5.Master Data Management and Customer Data Integration Data Warehousing Folks Don’t Get It。没有仔细看。
6. Why SQL Server 2008 R2 Matters to Small Business。没有仔细看。
7. Why Upgrading to SQL Server 2008 R2 Is Not a Given。没有仔细看。
8. SQL Server 2008 R2 August CTP Available Today。新特性,概览以下就行。
9.Frequently Asked Questions: SQL Server 2008 R2。新特性,概览以下就行。
10. SQL Server 2008 R2: The DAC Pack。较有看法的文章。
11.SQL Server 2008 R2: Into the Clouds。较有看法的文章。
分享到:
相关推荐
根据提供的信息,我们可以详细地探讨SQL Server 2008 R2的重要知识点和技术细节。以下是对各个主题的深入解析: ### SQL Server 2008 R2基础知识 #### 初识微软SQL Server 2008 R2 SQL Server 2008 R2是微软发布的...
另外,Data-tier Application (DAC) 是一项新特性,允许开发者打包和部署数据库应用,简化了数据库管理。 绿色版的SQL2008 R2通常包含了所有必要的文件,但不含安装程序,用户可以直接解压到指定目录运行。为了启动...
SQL Server是一种广泛使用的关系型数据库管理系统,由微软公司开发,主要负责存储、处理和管理数据。在本文件中,我们重点关注SQL Server 2005版本。 **6.1 SQL Server 2005系统结构** SQL Server 2005的系统结构...
### SQL Server 2008 R2中文教程 #### SQL Server 2008 R2基础知识 ...通过深入了解这些功能和技术细节,不仅可以帮助DBA更好地管理和优化SQL Server 2008 R2数据库,还能为企业提供更加强大的数据管理和分析能力。
4. 数据存储层(Data Storage Tier):通常是数据库系统,如MySQL、Oracle、SQL Server等,存储应用程序所需的数据。 在N-tier架构中,Stateless和Stateful对象的角色: Stateless对象不保留任何会话状态信息,...
- SQL Server 2008 R2 Data-Tier Application Framework - SQL Server 2008 R2 Data-Tier Application Project - SQL Server 2008 R2 Management Objects - SQL Server 2008 R2 Management Objects (x64) - SQL...
此版本增加了对新特性如FILESTREAM、Policy-Based Management、Data-Tier Application Framework (DAC) 和 FILETABLE的支持。此外,它还增强了安全性,包括集成Windows身份验证、加密连接和改进的审计功能。 3. **...
- SQL Server 2008 R2是SQL Server 2008的增强版,增加了许多新特性和改进,提高了数据管理和分析的能力。 - Developer Edition是针对开发和测试场景的,允许无限制的并发用户,并包含所有企业版特性,但不能用于...
此外,数据层应用(Data-tier Application, DAC)是一个新的管理单元,提供了一个基于应用程序的界面,用于管理SQL Server实例中的数据层对象。 在SQL Server 2008 R2中,通用控制点(Utility Control Point, UCP)...
9. **Data-tier Application(DAC)**:DAC是一种独立于数据库实例的数据库应用程序组件,简化了数据库的部署、版本管理和升级过程。 10. **SQL Server Management Studio (SSMS)**:直观的图形化界面工具,用于...
三层架构(Three-Tier ...通过学习和实践"Three-Tier-Architecture-Application",开发者可以掌握如何在Windows环境中使用C#实现高效、灵活的软件结构,这对于提升个人技能和解决实际项目问题具有很高的价值。
综上所述,SQL Server 2008 R2是一个功能强大且全面的数据库管理系统,不仅为初学者提供了友好的入门环境,也为高级用户提供了丰富的高级特性。通过对上述知识点的详细了解,不仅可以帮助用户更好地理解和掌握SQL ...
Dapper不提供复杂的实体映射或自动化事务管理,而是提供了一种简单的方式来映射数据库查询结果到.NET对象,以及将对象的属性映射到SQL参数。这种设计使得Dapper在性能上优于许多其他ORM框架,特别是在大数据量操作时...
Teamcenter Rich Client 2-Tier是一款由Siemens提供的一款集成化产品生命周期管理(PLM)软件解决方案,它支持用户通过一个功能丰富的界面来访问核心的Teamcenter功能。本文档将详细介绍如何在Windows平台上安装...
根据提供的文件信息,我们可以深入探讨有关“QSL-Tier电路图”的相关知识点。由于描述部分重复了标题内容,我们主要依据标题与标签来构建详细的知识点解析。 ### QSL-Tier电路图概述 #### 一、QSL-Tier电路图简介 ...
双边随机前沿模型,SFA,Two-tier Stochastic Frontie r Model:视频讲解+程序命令源代码是基于Kumbhakar的Two-tie r Stochastic Frontier理论 双边随机前沿模型,SFA,Two -tier Stochastic Frontier Model:视频讲解...
沿模型,SFA,Two-tier Stochastic Frontier Mod el:案例数据+命令+程序命令源代码+案例文章****面板改进版*** *--- --------Panel SFA 一般化设定----------------- * * y[it] = a + x[it]B + v[it] - u [it] (1...
### N层架构(N-Tier Architecture)介绍与详解 #### 核心概念解析 **N层架构**是一种软件设计模式,旨在将应用程序的不同组件分布在不同的物理机器或逻辑层上,以此来提高系统的可扩展性、可维护性和灵活性。这种...
This is a full 3-tier dababase application which includes a activex dll project(business objects) and a standard exe(UI).
此外,还有SQL Server Profiler用于性能分析和调试,以及Data-tier Application Framework (DACFx)进行数据库部署。 七、实战项目 教程可能包含实际项目案例,让你有机会将所学知识应用到实践中,例如开发一个简单...