资源预览内容
第1页 / 共94页
第2页 / 共94页
第3页 / 共94页
第4页 / 共94页
第5页 / 共94页
第6页 / 共94页
第7页 / 共94页
第8页 / 共94页
第9页 / 共94页
第10页 / 共94页
亲,该文档总共94页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第九章 SQL Server数据库基础,本章要点,客户/服务器体系结构 SQL Server 2000应用环境概述 Transact-SQL程序设计 存储过程 触发器,9.1 客户/服务器体系结构,从技术角度看,客户/服务器结构本身是一个非常简单的概念。它是将计算机应用的大任务分解成多个子任务,由多台计算机协同完成。 客户机接收客户的数据和处理要求,执行相应程序,把其中的服务请求发给服务器,即向服务器提出对某种信息或数据的服务请求,系统将选择最适宜完成该任务的服务器完成处理,服务器将结果作为服务响应返回客户。 在这一过程中,多任务之间存在多种交互关系,即“服务请求/服务响应”关系。因此客户/服务器不应理解为是一种硬件结构,而是一种计算(处理)模式。,9.1 客户/服务器体系结构,客户/服务器具有以下几个特征: 服务 位置透明性 可扩展性,9.2 SOL Server 2000 应用环境概述,SQL Server是一个关系数据库管理系统,最初由Microsoft,Sybase和Ashton-Tate三家公司联合开发的,于1988年推出了第一个OS/2版本。后来,Ashton-Tate公司退出了SQL Server的开发。而在Windows NT推出后,Microsoft与Sybase在SQL Server的开发上就分道扬镳了,Microsoft将SQL Server移植到 Windows NT系统上,专注于开发推广SQL Server的Windows NT版本;Sybase则较专注于SQL Server在UNIX操作系统上的应用。1996年,Microsoft推出了SQL Server 6.5版本,1998年,SQL Server 7.0版本和用户见面;我们介绍的SQL Server 2000是Microsoft公司2000推出的最新版本。,9.2 SOL Server 2000 应用环境概述,Microsoft SQL Server 2000包括四个常见版本: 企业版(Enterprise Edition) 标准版(Standard Edition) 个人版(Personal Edition) 开发者版(Developer Edition) 此外,SQL Server 2000还有Desktop Engine(桌面引擎)和在Windows CE设备上进行数据存储的Windows CE版,用户可以根据实际情况选择所要安装的SQL Server 2000版本。,SQL Server 2000有以下特点: 真正的客户机/服务器体系结构。 图形化用户界面,使系统管理和数据库管理更加直观,简单。 丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。 与Windows操作系统完全集成,利用Windows操作系统的许多功能,如发送和接收信息,管理登陆安全性等。SQL Server也可以很好地与Microsoft Office产品集成 具有很好的伸缩性,同一个数据库引擎可以在不同的平台上使用,从运行Windows98的便携式电脑到运行Windows 2000 数据中心版的大型多处理服务器。 支持Web技术,使用户能够很容易地将数据库中的数据发布到Web页面上。 提供数据仓库功能。,9.2.1 SQL Server 2000 软件架构,9.2.2 SQL Server数据库组成,每个SQL服务器都有两种类型的数据库:系统数据库(System Database)和用户数据库(User Database), 如图9.2所示。系统数据库一般用于存储SQL Server的系统信息,SQL Server用系统数据库来操作和管理系统。用户数据库是用户所创建的数据库。,9.2.2 SQL Server数据库组成,系统数据库和用户数据库在结构上完全相同。Microsoft SQL Server数据库有两种主要的结构:物理结构和逻辑结构。数据库的物理存储结构是讨论数据库文件是如何在磁盘上存储的,数据库的逻辑存储结构指的是数据库是由哪些性质的信息组成。图9.3中的Table就是组成数据库的逻辑成分,而物理实现部分的mdf文件构成了数据库的物理结构。,物理结构是指实际存储的数据,其构架包括文件,文件组,页,盘区等。文件包括数据库文件和事物日志文件,SQL Server的数据和日志文件可以放置在FAT或NTFS文件系统中,但不能放在压缩文件系统中。,物理结构,图9.3 Microsoft SQL Server数据库结构简化示意图, 页和盘区,页是基本存储单位,大小为8KB/页。页包含了数据本身以及数据的物理存放位置的信息。每页的开始96字节就是用于存储系统信息的,如页大小,剩余空间大小和该页所属对象的ID。 在SQL Server 2000 数据库系统中,页的类型有8种,如表9.1所示。 表9.1 SQL Server 2000页的类型,表9.1 SQL Server 2000页的类型,在数据页上,数据行紧接着页首按顺序放置。在页尾有一个行偏表。在行偏表中,页面上的每一行都有一个条目,每个条目记录那一行的第一个字节与页首的距离。行偏移的条目序列与页中行的序列相反,见图9.4。在SQL Server中,行不能跨页。,数据页结构,盘区,首页数据1数据2可用空间123数据3图9.4 Microsoft SQL Server数据页的结构 盘区是为表和索引分配存储空间的基本单元,大小为8个相邻的页,即64KB。为了使空间指派更有效。SQL Server 2000对只含少量数据的表不分配完整的盘区。SQL Server 2000有两种类型的盘区:统一扩展盘区,由单个对象所有,8页全部只能由拥有该盘区的对象使用;混合扩展盘区,最多可由8个对象共享。 通常从混合扩展盘区中向新表或新索引分配页。当表或索引增长到8页时,就变成统一扩展盘区,如果在现有表上创建索引,并且该表包含的行足以在索引中生成8页,则对该索引的所有分配都在统一扩展盘区内进行。,数据库文件(Database File)是存放数据库和数据库对象的文件。一个数据库可以有一个或多个数据库文件,一个数据库文件只属于一个数据库。当有多个数据库文件时,有一个文件被定义为主数据库文件(Primary Database File),扩展名为.mdf,它用来存储数据库的启动信息和部分或全部信息。一个数据库只能有一个主数据库文件。其他数据库文件被称为次数据库文件(Secondary Database File),扩展名为.ndf ,用来存储主文件没存储的其他数据。在数据庞大时,次数据库文件可以帮助存储数据。, 数据库文件,采用多个数据库文件来存储数据的优点体现在: 数据库文件可以不断扩充而不受操作系统文件大小的限制。 可以将数据库文件存储在不同的硬盘中,这样可以同时对几个硬盘做数据存取,提高了数据处理的效率,这对于服务型的计算机尤为有用。 事务日志文件 事务日志文件(Transaction Log File)是用来记录数据库更新情况的文件,扩展名.ldf。例如,使用INSERT,UPDATE,DELETE等对数据库进行更改的操作都会记录在此文件中,而如SELECT等对数据库内容不会有影响的操作则不会记录在案。一个数据库可以有一个或多个事务日志文件。 SQL Server中采用“提前写日志( Write-Ahead Logging)”方式,即对数据库的修改先写入事务日志中,再写入数据库。, 数据库文件,为了便于分配和管理,SQL Server允许将多个文件归纳为一组,并赋予此组一个名称,这就是文件组(File Group),文件组是将多个数据库文件集合起来形成的一个整体。每个文件组有一个组名。一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。 与数据库文件一样,文件组也分为主文件组和次文件组,主文件中包含了所有的系统表。当建立数据库时,主文件组包括主数据库文件和未明确指定组的其他文件。文件组中可以指定一个缺省文件组,那么在创建数据库文件时,如果没有指定将其放在哪一个文件组中,就会将它放在缺省文件组中。如果没有指定缺省文件组,则主文件组为缺省文件组。 只有数据文件才能作为文件组的成员,日志文件不能作为文件组的成员。,(3) 文件组,逻辑结构对应存储数据的抽象表示。SQL Server的数据库不仅仅是数据的存储,所有与数据处理操作相关的信息都存储在数据库中,是一个存放数据的表和支持这些数据的存储、检索、安全性和完整性的逻辑成分所组成的集合。组成数据库的所有逻辑成分称为数据库的对象,如:关系图、表、视图、存储过程、用户、角色、规则、默认值、用户自定义数据类型和用户自定义函数等。 SQL Server的对象名可以是对象的全名(完全限定名),也可以是对象的省略名(部分限定名)。完全限定名包含四个标识符:服务器名,数据库名,所有者名和数据库对象名,顺序如下:服务器名、数据库名、所有者名、数据库对象名(Server.database.owner.object),包含全部这四部分的对象名叫做全名。,逻辑结构, 表结构和视图, 数据类型,SQL Server 2000的数据类型分为系统数据类型与自定义数据类型。 系统数据类型如表9.3(详见教材)所示,只有字符与二进制数据类型需要指定长度,其他如整型,日期时间,浮点数据类型,定义时不用指定长度,即长度是默认值。 自定义数据类型是建立在SQL Server系统数据类型基础上的。需要指定该类型的名称,建立在其上的系统数据类型及是否允许为空。, 存储过程,存储过程是一组编译在单个执行计划中的Transat-SQL语句。可以从客户端应用程序,或从其他存储过程和触发器来调用它。 存储过程帮助在不同的应用程序之间实现一致的逻辑。在一个存储过程中,可以设计,编码和测试执行某个常用任务所需的SQL语句和逻辑。之后,每个需要执行该任务的应用程序只须执行此存储过程即可。将业务逻辑编入单个存储过程还提供了单个控制点,以确保业务规则正确执行。 存储过程还可以提高性能。许多任务以一系列SQL语句来执行。对前面SQL语句的结果所应用的条件逻辑决定后面执行的SQL语句。如果将这些SQL语句和条件逻辑写入一个存储过程,它们就成为服务器上一个执行计划的一部分,所有工作都可以在服务器上完成。 应用程序不必传输存储过程中的所有SQL语句:它们只需传输包含过程名和参数值的EXECUTE或CALL语句。, 用户自定义函数,在SQL Server 2000 中,用户可以创建自定义函数。在SQL Server 2000中用户自定义函数是作为一个数据库对象来管理的。可以使用企业管理器或Transat-SQL命令来创建,修改,删除。, 约束,规则,默认值和触发器,表中列的属性除了包含数据类型和长度外,还有一些重要的信息,共同维护数据完整性。用于维护数据完整性的对象包括:约束,规则,默认值和触发器。其中,约束在第三章有简单的介绍。 规则是一个向后兼容的功能,用于执行一些与CHECK约束相同的功能。CHECK约束是用来限制列值的首选标准方法。CHECK约束比规则更简明,一个列只能应用一个规则,但可以应用多个CHECK约束。CHECK约束作为CREATE TABLE语句的一部分进行指定,而规则以单独的对象创建,然后绑定到列上。,如果在插入行时没有指定列的值,那么将使用默认值。默认值可以是任何取值为常量的对象,例如,常量,内置函数和数学表达式。 在Microsoft SQL Server 2000 中,触发器是一类特殊的存储过程,被定义为在表或视图发出UPDATE,INSERT或DELETE语句时自动执行。触发器是功能强大的工具,使每个站点可以在有数据修改时自动强制执行其业务规则。触发器可以扩展SQL Server约束,默认值和规则的完整性逻辑检查,但只要约束和默认值提供了全部所需的功能,就应使用约束和默认值。在9.5节将详细介绍触发器。,企业管理器 查询分析器 服务管理器(Server Ma
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号