SQL Server(2)SQL Server 2005数据库系统基础
一、 体系架构
Microsoft SQL Server是一个提供了联机事务处理、数据仓库、电子商务应用的数据库和数据分析的平台。
体系架构是描述系统组成要素和要素之间关系的方式。Microsoft SQL Server系统的体系结构是对Microsoft SQL Server的主要组成部分和这些组成部分之间关系的描述。
Microsoft SQL Server 2005系统由4个主要部分组成,这4个部分被称为4个服务,这些服务分别是数据库引擎、分析服务、报表服务和集成服务,这些服务之间相互存在和相互应用。
1.数据库引擎
数据库引擎(SQL Server Database Engine,SSDE)是Microsoft SQL Server 2005系统的核心服务,负责完成业务数据的存储、处理、查询和安全管理。
例如,创建数据库、创建表、执行各种数据查询、访问数据库等操作,都是由数据库引擎完成的。
在大多数情况下,使用数据库系统实际上就是使用数据库引擎。
数据库引擎功能组件:
数据库引擎本身也是一个复杂的系统,它包括了许多功能组件,例如Service Broker、复制、全文搜索、通知服务等。
(1)Service Broker提供了异步通信机制,可以用于存储、传递消息。
(2)复制是指在不同的数据库之间对数据和数据库对象进行复制和分发,保证数据库之间同步和数据一致性的技术。复制经常用于物理位置不同的服务器之间的数据分发,它可以通过局域网、广域网、拨号连接、无线连接和 Internet 分发到不同位置的远程或移动用户。
(3)全文搜索提供了基于关键字的企业级的搜索功能。
(4)通知服务提供了基于通知的开发和部署平台。
2.分析服务
分析服务(SQL Server Analysis Services,SSAS)提供了OLAP和数据挖掘功能,可以支持用户建立数据仓库。
相对OLAP来说,OLTP是由数据库引擎负责完成的。使用SSAS服务,可以设计、创建和管理包含了来自于其他数据源数据的多维结构,通过对多维数据进行多个角度的分析,可以支持管理人员对业务数据的更全面的理解。
另外,通过使用SSAS服务,用户可以完成数据挖掘模型的构造和应用,实现知识发现、表示和管理。
例如,在商品销售信息系统中,可以使用Microsoft SQL Server 2005系统提供的SSAS服务完成对客户的数据挖掘分析,可以发现更多有价值的信息和知识,从而为减少客户流失、提高客户管理水平提供有效的支持。
3。报表服务
报表服务(SQL Server Reporting Services,SSRS)为用户提供了支持Web的企业级的报表功能。
通过使用Microsoft SQL Server 2005系统提供的SSRS服务,用户可以方便地定义和发布满足自己需求的报表。
无论是报表的布局格式,还是报表的数据源,用户都可以轻松地实现。
这种服务极大地便利了企业的管理工作,满足了管理人员高效、规范的管理需求。
例如,在商品销售信息系统中,使用Microsoft SQL Server 2005系统提供的SSRS服务可以方便地生成Word、PDF、Excel等格式的报表。
4。集成服务
集成服务(SQL Server Integration Services,SSIS)是一个数据集成平台,可以完成有关数据的提取、转换、加载等。
例如,对于分析服务来说,数据库引擎是一个重要的数据源,如何将数据源中的数据经过适当地处理加载到分析服务中以便进行各种分析处理,这正是SSIS服务所要解决的问题。
重要的是,SSIS服务可以高效地处理各种各样的数据源,除了Microsoft SQL Server数据之外,还可以处理Oracle、Excel、XML文档、文本文件等数据源中的数据。
二、数据库的类型和特点
Microsoft SQL Server 2005系统提供了两种类型的数据库,即系统数据库和用户数据库。
系统数据库存放Microsoft SQL Server 2005系统的系统级信息。Microsoft SQL Server 2005使用这些系统级信息管理和控制整个数据库服务器系统。
系统数据库:
系统数据库分别是master、model、msdb、Resource和tempdb等数据库。
(1)master数据库是最重要的系统数据库,它记录了SQL Server系统级的所有信息,这些系统级的信息包括登录账户信息、服务器配置信息、数据库文件信息、SQL Server初始化信息等等。
(2)model数据库是一个模板数据库。该数据库存储了可以作为模板的数据库对象和数据。
(3)msdb是与SQLServerAgent服务有关的数据库。该系统数据库记录有关作业、警报、操作员、调度等信息。
(4)tempdb是一个临时数据库,用于存储查询过程中所使用的中间数据或结果。
(5)Resource是一个只读数据库,包含了Microsoft SQL Server 2005系统中的所有信息。
当系统配置允许执行复制并且作为分发服务器时,系统将自动创建distribution系统数据库。
OLTP和OLAP:
OLTP是联机事务处理(online transaction processing)的简称,OLAP是联机分析处理(online analytical processing)的简称。
在OLTP数据库中,数据是按照二维表格的形式来存储的。OLTP数据库的主要作用是降低存储在数据库中的各种信息的冗余度和加快对数据的检索、插入、更新及删除速度。OLTP数据库是当前最为流行的数据库模型。
OLAP数据存储模型与OLTP不同。OLAP数据存储模型的结构是星型结构或雪崩结构,主要作用是提高系统对数据的检索和分析速度。
Microsoft SQL Server是一种典型的OLTP系统,具有OLAP系统的功能。
示例数据库:
AdventureWorks不是系统数据库,而是一个示例OLTP数据库。该数据库存储了某公司的业务数据。用户可以利用该数据库来学习SQL Server的操作,也可以模仿该数据库的结构设计用户自己的数据库。
AdventureWorksDW是一个示例OLAP数据库,用于在线事务分析。用户可以利用该数据库来学习SQL Server的OLAP操作,也可以模仿该数据库的内部结构设计用户自己的OLAP数据库。
三、数据库对象的类型、特点和示例
数据库是数据和数据库对象的容器。数据库对象是指存储、管理和使用数据的不同结构形式。
在Microsoft SQL Server 2005系统中,主要的数据库对象包括数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规则、默认值等。
设计数据库的过程实际上就是设计和实现数据库对象的过程。
数据库对象的特点:
【数据库关系图】节点包含了数据库中的关系图对象。数据库中的关系图对象用来描述数据库中表和表之间的对应关系,是数据库设计的常用方法。
在【表】节点中,包含了数据库中最基本、最重要的对象:表。表实际用来存储系统数据和用户数据,是整个系统的最核心的数据库对象,是其他大多数数据库对象的基础。
在【视图】节点中,包含了数据库中的视图对象。视图是一种虚拟表,用来查看数据库中的一个或多个表。视图是建立在表基础之上的数据库对象,主要以SELECT语句形式存在,是生成数据报表、开发数据库应用程序的重要基础。
在【同义词】节点中,包含了数据库中的同义词对象。这是Microsoft SQL Server 2005系统新增的一种对象。同义词是数据库对象的别名,使用同义词对象可以大大简化对复杂数据库对象名称的引用方式。
图1-3中的【可编程性】节点是一个逻辑组合,它包括存储过程、函数、数据库触发器、程序集、类型、规则、默认值等对象。
在【存储过程】节点中,包含了数据库中存储过程对象的信息。存储过程是指封装了可重用代码的模块或例程。存储过程可以接受输入参数、向客户返回结果和消息、调用Transact-SQL语句并且返回输出参数等。在Microsoft SQL Server 2005系统中,可以使用Transact-SQL语言或CLR语言定义存储过程。
数据库中的函数对象组织在【函数】节点中。函数是接受参数、执行复杂操作并将结果以数值的形式返回的例程。数据库中的函数可以进一步分为表值函数、标量值函数、聚合函数和系统函数等类型。
在【数据库触发器】节点中,包含了数据库中定义的触发器对象。触发器是一种特殊的存储过程,在数据库服务器中发生指定的事件后自动执行。
在【程序集】节点中,包含了数据库中的程序集对象。程序集是在Microsoft SQL Server 2005系统中使用的DDL文件,用于部署用CLR编写的函数、存储过程、触发器、用户定义聚合和用户定义类型等对象。
在【类型】节点中,包含了系统数据类型、用户定义数据类型、用户定义类型和XML架构集合等对象类型。
在【规则】节点中包含了数据库中的规则对象。规则可以限制表中列值的取值范围,以确保输入数据的正确性和质量。实际上,规则是一种向后兼容的、用于执行与CHECK约束相同的功能。
【默认值】节点中包含了数据库中的默认值对象。默认对象也是一种完整性对象,它可以为表中的特定列提供默认值。
【Service Broker】节点中,包含了用来支持异步通信机制的对象,这些对象包括消息类型、约定、队列、服务、路由、远程服务绑定等对象。
AdventureWorks 示例数据库:
AdventureWorks和AdventureWorksDW都是Microsoft SQL Server 2005的示例数据库,这些示例数据库中存储了Adventure Works Cycles公司的业务数据。Adventure Works Cycles公司是SQL Server系统虚拟的一家跨国公司,主要生产金属和复合材料自行车,产品远销北美、欧洲、亚洲等市场。该公司拥有290多名员工和多个活跃在世界各地的地区性销售团队。
AdventureWorks数据库包含了70多个表和5个架构,这些架构分别是HumanResources、Person、Production、Purchasing和Sales
四、管理工具
Microsoft SQL Server 2005系统提供了大量的管理工具。用户借助这些管理工具,可以对系统进行快速、高效的管理。
这些管理工具主要包括Microsoft SQL Server Management Studio、SQL Server配置管理器、SQL Server Profiler、数据库引擎优化顾问,以及大量的命令行实用工具等。
(1)Microsoft SQL Server Management Studio
Microsoft SQL Server Management Studio是Microsoft SQL Server 2005提供的一种集成环境,该工具可以完成访问、配置、控制、管理和开发SQL Server的所有工作。
实际上,Microsoft SQL Server Management Studio将各种图形化工具和多功能的脚本编辑器组合在一起,大大方便了技术人员和数据库管理员对SQL Server系统的各种访问。
可以从程序组中启动该工具。
(2)SQL Server配置管理器
在Microsoft SQL Server 2005系统中,可以通过【计算机管理】工具或【SQL Server配置管理器】查看和控制SQL Server的服务。
(3)SQL Server Profiler
使用SQL Server Profiler工具可以完成系统运行过程的摄录操作。
SQL Server Profiler是用于从服务器中捕获SQL Server 2005事件的工具。这些事件可以是连接服务器、登录系统、执行Transact-SQL语句等操作。
数据库引擎优化顾问
数据库引擎优化顾问(Database Engine Tuning Advisor)工具可以帮助用户分析工作负荷、提出创建高效率索引的建议等功能。
借助数据库引擎优化顾问,用户不必详细了解数据库的结构就可以选择和创建最佳的索引、索引视图、分区等。工作负荷是对要优化的一个或多个数据库执行的一组Transact-SQL语句。
(4)实用工具
在Microsoft SQL Server 2005系统中,不仅提供了大量的图形化工具,还提供了大量的命令行实用工具。
这些命令行实用工具包括bcp、dta、dtexec、dtutil、Microsoft.AnalysisServices. Deployment、nscontrol、osql、profiler90、rs、rsconfig、rskeymgmt、sac、sqlagent90、sqlcmd、SQLdiag、sqlmaint、sqlservr、sqlwb、tablediff等。
(5)sqlcmd实用工具
sqlcmd实用工具可以在命令提示符处输入Transact-SQL语句、系统过程和脚本文件。
实际上,该工具是作为osql实用工具和isql实用工具的替代工具而新增的,它通过OLE DB与服务器进行通信。