第1章SQLServer2005关系数据库简介1.1关系数据库1.1.1关系模型的基本概念1.1.2关系模型的性质1.1.3关系数据库完整性1.1.4关系数据库的规范化1.1.1关系模型的基本概念•数据库技术是作为数据处理的一门技术而发展起来的,所研究的问题就是如何科学地组织和存储数据,如何高效地获取和处理数据。•在数据库中用数据模型来抽象、表示和处理现实世界中的数据。数据库即是模拟现实世界中某应用环境(一个企业、单位或部门)所涉及的数据的集合,它不仅要反映数据本身的内容,而且要反映数据之间的联系。•最常用的数据模型有层次模型(HierarchicalModel)、网状模型(NetworkModel)和关系模型(RelationalModel)。•关系模型就是用二维表格结构来表示实体及实体之间联系的模型。1.1.1关系模型的基本概念•关系(Relation):一个关系对应一张二维表,每个关系有一个关系名。在SQLServer中,一个关系就是一个表文件。•元组(Tuple):二维表中水平方向的一行,有时也叫做一条记录。•属性(Attribute):表格中的一列,相当于记录中的一个字段。•关键字(Key):可唯一标识元组的属性或属性集,也称为关系键或主码。•域(Domain):属性的取值范围,如性别的域是(男,女)。•分量:每一行对应的列的属性值,即元组中的一个属性值。•关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,……属性n)。1.1.2关系模型的性质(1)关系中不允许出现相同的元组。因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。(2)关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。因为集合中的元素是无序的,所以作为集合元素的元组也是无序的。根据关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。(3)关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。(4)同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。(5)关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。(6)关系中每一分量必须是不可分的数据项,或者说所有属性值都是原子的,是一个确定的值,而不是值的集合。1.1.3关系数据库完整性1、实体完整性(EntityIntegrity)•实体完整性是指主关系键的值不能为空或部分为空。2、参照完整性(Referentialintegrity)•如果关系R2的外部关系键X与关系R1的主关系键相符,则X的每个值或者等于R1中主关系键的某一个值,或者取空值。3、域完整性•域完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。1.1.4关系数据库的规范化•第一范式(1NF):元组中每一个分量都必须是不可分割的数据项•第二范式(2NF):不仅满足第一范式,而且所有非主属性完全依赖于其主码•第三范式(3NF):不仅满足第二范式,而且它的任可一个非主属性都不传递于任何主关键字1.2SQLServer2005的新特点1、增强的通知服务。2、增强的报表服务。3、新增ServiceBroker技术。4、增强的数据引擎。5、增强的数据访问接口。6、增强的分析服务。7、增强的集成服务。8、增强的数据复制服务。9、改进的开发工具。1.3SQLServer2005的安装和配置1.3.1SQLServer2005环境需求1.3.2SQLServer2005的安装1.3.3SQLServer升级1.3.4SQLServer2005系统数据库简介1.3.1SQLServer2005环境需求1.硬件需求(1)显示器:VGA或者分辨率至少在1,024x768像素之上的显示器。(2)点触式设备:鼠标或者兼容的点触式设备。(3)CD或者DVD驱动器。1.3.1SQLServer2005环境需求1.硬件需求(4)处理器型号,速度及内存需求。SQLServer2005不同的版本其对处理器型号,速度及内存的需求是不同的,如下表SQLServer2005版本处理器型号处理器速度内存(RAM)SQLServer2005企业版(EnterpriseEdition)SQLServer2005开发者版(DeveloperEdition)SQLServer2005标准版(StandardEdition)SQLServer2005工作组版(WorkgroupEdition)PentiumIII及其兼容处理器,或者更高型号。至少600MHz,推荐1GHz或更高。至少512MB,推荐1GB或更大。SQLServer2005简化版(ExpressEdition)PentiumIII及其兼容处理器,或者更高型号。至少600MHz,推荐1GHz或更高。至少192MB,推荐512MB或更大1.3.1SQLServer2005环境需求1.硬件需求(5)硬盘空间需求。实际的硬件需求取决于你的系统配置以及你所选择安装的SQLServer2005服务和组件。如下表服务和组件硬盘需求数据库引擎及数据文件,复制,全文搜索等150MB分析服务及数据文件35KB报表服务和报表管理器40MB通知服务引擎组件,客户端组件以及规则组件5MB集成服务9MB客户端组件12MB管理工具70MB开发工具20MBSQLServer联机图书以及移动联机图书15MB范例以及范例数据库390MB1.3.1SQLServer2005环境需求2.软件需求(1)浏览器软件。在装SQLServer2005之前,需安装MicrosoftInternetExplorer6.0SP1或者其升级版本。因为微软控制台以及HTML帮助都需要此软件。(2)IIS软件。在装SQLServer2005之前,需安装IIS5.0及其后续版本,以支持SQLServer2005的报表服务。(3)ASP.NET2.0。当安装报表服务时,SQLServer2005安装程序会检查ASP.NET是否已安装到本机上。(4)还需要安装以下软件:MicrosoftWindows.NETFramework2.0;MicrosoftSQLServerNativeClient;MicrosoftSQLServerSetupsupportfiles。1.3.1SQLServer2005环境需求2.软件需求(5)下表列出常见的操作系统是否支持运行SQLServer2005的各种不同版本。企业版开发版标准版工作组版简化版Windows2000不支持不支持不支持不支持不支持Windows2000ProfessionalEditionSP4不支持支持支持支持支持Windows2000ServerSP4支持支持支持支持支持Windows2000AdvancedServerSP4支持支持支持支持支持Windows2000DatacenterEditionSP4支持支持支持支持支持WindowsXPHomeEditionSP2不支持支持不支持不支持支持WindowsXPProfessionalEditionSP2不支持支持支持支持支持Windows2003ServerSP1支持支持支持支持支持Windows2003EnterpriseEditionSP1支持支持支持支持支持1.3.2SQLServer2005的安装•SQLServer2005的安装过程与其它MicrosoftWindows系列产品类似。用户可根据向导提示,选择需要的选项一步一步地完成。1.3.3SQLServer升级•可以将SQLServer2000ServicePack3(SP3)或更高版本的实例以及SQLServer7.0SP4或更高版本的实例直接升级到SQLServer2005。通过安装程序可以完成大多数升级操作;但是,某些组件支持或要求需要在在运行安装程序后迁移应用程序或解决方案。•在运行安装程序以升级到SQLServer2005之前,应该首先检查系统要求和升级要求。检查系统要求和升级要求之后,运行SQLServer升级顾问以分析SQLServer2000和SQLServer7.0的实例。升级顾问针对您的安装生成问题列表,必须在升级之前或之后解决这些问题。SQLServer安装程序将检测阻止升级到SQLServer2005遇到的问题,但不会列出可能影响应用程序的问题。1.3.4SQLServer2005系统数据库简介SQLServer2005有4个系统数据库,它们分别为Master、Model、Msdb、Tempdb。(1)Master数据库是SQLServer系统最重要的数据库,它记录了SQLServer系统的所有系统信息。这些系统信息包括所有的登录信息、系统设置信息、SQLServer的初始化信息和其他系统数据库及用户数据库的相关信息。因此,如果master数据库不可用,则SQLServer无法启动。在SQLServer2005中,系统对象不再存储在master数据库中,而是存储在Resource数据库中。(2)model数据库用作在SQLServer实例上创建的所有数据库的模板。因为每次启动SQLServer时都会创建tempdb,所以model数据库必须始终存在于SQLServer系统中。当发出CREATEDATABASE(创建数据库)语句时,将通过复制model数据库中的内容来创建数据库的第一部分,然后用空页填充新数据库的剩余部分。如果修改model数据库,之后创建的所有数据库都将继承这些修改。例如,可以设置权限或数据库选项或者添加对象,例如,表、函数或存储过程。1.3.4SQLServer2005系统数据库简介(3)Msdb数据库是代理服务数据库,为其报警、任务调度和记录操作员的操作提供存储空间。(4)Tempdb是一个临时数据库,它为所有的临时表、临时存储过程及其他临时操作提供存储空间。Tempdb数据库由整个系统的所有数据库使用,不管用户使用哪个数据库,他们所建立的所有临时表和存储过程都存储在tempdb上。SQLServer每次启动时,tempdb数据库被重新建立。当用户与SQLServer断开连接时,其临时表和存储过程自动被删除。1.4SQLServer2005工具和实用程序1.4.1SQLServer2005管理平台1.4.2商业智能开发平台(BusinessIntelligenceDevelopmentStudio)1.4.3SQLServer分析器1.4.4数据库引擎优化顾问1.4.5AnalysisServices1.4.6SQLServer配置管理器1.4.7SQLServer文档和教程1.4.1SQLServer2005管理平台•SQLServer2005管理平台(SQLServerManagementStudio)包含了SQLServer2000企业管理器(EnterpriseManager),以及查询分析器(QueryAnalyzer)等方面的功能。此外,SQLServer2005管理平台还提供了一种环境,用于管理AnalysisServices(分析服务)、IntegrationServices(集成服务)、ReportingServices(报表服务)和XQuery。1.4.1SQLServer2005管理平台图SQLServer管理平台界面1.4.1SQLServer2005管理平台图SQLServer2005查询分析器界面1.4.2商业智能开发平台•SQLServer商业智能开发平台(BusinessIntelligenceDevelopmentStudio)是一个集成的环境,用于开发商业智能构造(如多维数据集、数据源、报告和IntegrationServices软件包),如下图所示。1.4.3SQLServer分析器•SQLServer分析器(Profiler)是一个图形化的管理工具,用于监督、记录和检查SQL