湖南师范大学数据库系统及原理第四章.docx
- 文档编号:8711516
- 上传时间:2023-05-14
- 格式:DOCX
- 页数:35
- 大小:60.53KB
湖南师范大学数据库系统及原理第四章.docx
《湖南师范大学数据库系统及原理第四章.docx》由会员分享,可在线阅读,更多相关《湖南师范大学数据库系统及原理第四章.docx(35页珍藏版)》请在冰点文库上搜索。
湖南师范大学数据库系统及原理第四章
第四章第一节
【教学内容】
MicrosoftSQLServer2000系统介绍
【目的要求】
1、了解客户/服务器结构的概念和特点;
2、理解SQLServer2000的体系结构;
3、掌握企业管理和查询分析器工具的使用
【重点难点】客户/服务器体系结构管理和查询分析器工具的使用
【课时】2课时
【教学方法】多媒体演示
【教学过程】
一、SQLServer2000系统概述
SQLServer2000是微软公司最新开发的大型数据库服务器,是一种关系型数据库系统,是基于客户/服务器(Client/Server,简称C/S结构)的关系型数据库管理系统(RelationalDataBaseManagementSystem,简称RDBMS)。
它不但可以满足大型数据处理系统对数据存储量的需求,而且对于小型企业和个人来说,也可以作为管理数据的简易工具。
SQLServer2000可以在多种操作系统上运行,服务器环境可以是WindowsNT、Windows2000Server或Windows9x,客户机环境可以是WindowsNT、Windows2000Server、Windows9x、Windows3x、MS-DOS、第三方平台和Internet浏览器。
SQLServer使用的数据库编程语言是Transact-SQL,其支持最新的SQL标准,并且增加了许多新的功能和特点,使用Transact-SQL可以访问、查询、修改和管理关系型数据库系统。
SQLServer2000的常见版本有4个:
企业版(EnterpriseEdition)、标准版(StandardEdition)、个人版(PersonalEdition)和开发者版(DeveloperEdition)。
二、客户/服务器体系结构
数据库系统的体系结构分为单机系统、集中式系统、分布式系统和客户/服务器系统。
单机数据库系统是由同一台计算机完成所有数据库系统的工作包括存储、处理、管理及使用数据库系统等。
在集中式数据库系统中,客户终端和主机之间传递数据的方式非常简单,一是用户从客户终端键盘键入的信息到主机,二是由主机返回到终端上的字符。
这个时期的计算机的所有资源(数据)都在主机上,所有处理(程序)也在主机上完成。
这种结构的优点是可以实现集中管理,安全性很好。
但这种计算机的费用非常昂贵,并且应用程序和数据库都存放在主机中,没有办法真正划分应用程序的逻辑。
分布式数据库系统由一个概念数据库组成,这个概念数据库的数据存储在网络中多个结点的物理数据库中。
客户/服务器数据库系统的软件按逻辑功能分为客户端软件和服务器端软件,它们运行在各自的结点上,各负其责,协调工作。
三、客户/服务器结构的数据库系统
通常所说的客户(Client)/服务器(server)结构即可以指硬件的结构,也可以指软件的结构。
这里主要指的是后者。
客户/服务器结构的数据库系统中,客户与服务器通过消息传递机制进行对话,客户请求程序首先通过网络协议(如TCP/IP及IPX/SPX等)与服务器程序进行连接,然后将用户的需求某种方式传送给服务器。
服务器针对客户的请求提供数据服务(这些服务包括数据插入、修改和查询等),并将服务结果返回给客户端。
客户端应用程序接收到数据库服务器返回的数据后,分析并呈现给用户。
因此,客户/服务器(C/S)结构的主要特点是客户机与服务器之间的职责明确,客户机主要负责服务请求和数据表示的工作,而服务器主要负责数据处理。
即由客户端发出请求给服务器端,服务器进行相应的处理,然后送回客户端。
客户/服务器消息传递如入4-1所示。
在一个客户/服务器应用中,网络上的信息传输减到最少,因而可以改善系统的性能。
典型客户机/服务器计算的特点:
①服务器负责数据管理及程序处理;
②客户机负责界面描述和界面显示;
③客户机向服务器提出处理要求;
④服务器响应后将处理结果返回客户机;
⑤网络数据传输最小。
客户端开发工具有很多,如VisualC++、VisualBasic、Delphi等,但它们都不是专用的,对于复杂的数据库应用,还是选择专用工具较好。
PowerBuilder就是流行的专用数据库应用开发工具之一,它也是目前市场占有率最高的专用数据库应用开发工具。
四、客户/服务器结构的数据库系统实现技术
客户/服务器结构的数据库系统实现主要依赖以下技术:
1.开放的数据库访问接口。
(1)开放数据库互连ODBC(OpenDataBadeConnectivity)。
(2)OpenClient/OpenServer接口。
2.存储过程(StoredProcedure)。
3.分布数据管理。
五、SQLServer2000的体系结构
SQLServer2000具有不同的系统结构分类,具体可以划分为:
·客户机/服务器体系结构:
主要应用于客户端可视化操作、服务器端功能配置以及客户端和服务器端的通信;
·数据库体系结构:
又划分为数据库逻辑结构和数据库物理结构。
·关系数据库引擎体系结构:
主要应用于服务器端的高级优化,如查询服务器(QueryProcessor)的查询过程、线程和任务的处理、数据在内存的组织和管理等;
·服务器管理体系结构:
主要面向SQLServer2000的数据库管理员(DBA),具体内容包括分布式管理框架、可视化管理工具、数据备份和恢复以及数据复制等。
SQLServer2000的客户/服务器体系结构可以划分为:
客户端组件、服务器端组件和通信组件三部分。
六、SQLServer2000工具程序简介
1.服务管理器(ServiceManager)
服务管理器的功能是启动、停止和暂停SQLServer服务。
如图4-3所示。
图4-3SQLServer服务管理器对话框
2.企业管理器(EnterpriseManager)
企业管理器是SQLServer工具中最重要的一个,是管理服务器和数据库的主要工具。
3.查询分析器(QueryAnalyzer)
查询分析器是用来分析和查询的工具,是SQLServer提供的使用方便、界面友好的Transact-SQL语句编译工具,是SQLServer2000客户端应用程序的重要组成部分。
其主要功能是帮助用户调式SQL程序、测试查询以及管理数据库。
4.客户端网络使用工具(ClientNetworkUtility)
客户端网络实用工具用来安装通信协议和配置客户机/服务器通信参数。
5.服务器网络实用工具(ServerNetworkUtility)
服务器端网络实用程序是安装在服务器端的管理工具,它同安装在客户端的客户端网络实用程序相对应,可以使用它来管理SQLServer服务器为客户端提供的数据存取接口。
6.客户端网络实用工具
使用客户端网络实用程序设置在客户端链接SQLServer时启用和禁用的通信协议、配置服务器别名、显示数据库选项和查看已经安装的网络连接库。
7.导入导出数据
8.联机丛书
七、SQLServer2000的系统数据库及特殊用户
1.系统数据库
SQLServer2000在安装过程中,自动创建了6个数据库:
master、model、msdb、tempdb、pubs和northwind。
其中master、model、msdb和tempdb为系统数据库,它们是运行SQLServer的基础,建立在这4个系统数据库中的表格定义了运行和使用SQLServer的规则。
pubs和northwind为示例数据库,如图4-4所示。
(1)master数据库
master数据库对应的主数据文件是master.mdf,日志文件是masterlog.ldf
(2)model数据库
model数据库对应的主数据文件是model.mdf,日志文件是modellog.ldf
(3)msdb数据库
msdb数据库对应的主数据文件是msdbdata.mdf,日志文件是msdblog.ldf
(4)tempdb数据库
tempdb数据库对应的主数据文件是tempdb.mdf,日志文件是templog.ldf
2.SQLServer2000的示例数据库
SQLServer2000为了帮助用户尽快地掌握SQLServer的使用方法,提供了两个示例数据库:
pubs数据库和Northwind数据库。
(1)pubs数据库示例
pubs数据库对应的主数据文件是pubs.mdf,日志文件是pubs_log.ldf
(2)Northwind数据库示例
Northwind数据库对应的主数据文件是Northwnd.mdf,日志文件是Northwnd.ldf
3.SQLServer的特殊用户
管理和控制SQLServer有3类特殊用户,分别是SA(系统管理员)、DBO(数据库拥有者)和DBOO(数据库对象拥有者)。
(1)系统管理员(SA)
(2)数据库拥有者(DBO)
(3)数据库对象拥有者(DBOO)
八、SQLServer的企业管理器和查询分析器
在SQLServer的日常管理和使用过程中,最常用的是企业管理器和查询分析器。
1.企业管理器(EnterpriseManager)
企业管理器是SQLServer工具中最重要的一个,是管理服务器和数据库的主要工具。
可以从开始菜单命令“开始→程序→MicrosoftSQLServer→企业管理器”打开企业管理器,如图4-5所示。
(1)树状目录窗口
在左边的树状目录中,根节点是“控制面板根目录”,表示它是所有服务器控制面板的根。
企业管理器在默认的情况下,将所有的对象项目都集中在一个主窗口中管理。
(2)内容窗口
企业管理器右边的窗口为内容窗口。
2.查询分析器(QueryAnalyzer)
查询分析器是用来分析和查询的工具,是SQLServer提供的使用方便、界面友好的Transact-SQL语句编译工具,是SQLServer2000客户端应用程序的重要组成部分。
其主要功能是帮助用户调式SQL程序、测试查询以及管理数据库。
(1)启动查询分析器
可以从开始菜单命令“开始→程序→MicrosoftSQLServer→查询分析器”打开查询分析器。
在窗口中需要选择连接的实例以及用于连接的身份验证方式。
可供选择的身份验证方式有两个:
Windows身份验证和SQLServer身份验证。
(2)查询分析器的工作环境
(3)编辑和执行Transact—SQL语句
(4)使用对象浏览器
(5)使用模板
九、创建用户数据库
1.使用企业管理器创建数据库
使用企业管理器创建数据库有两种方法:
第一种是使用创建数据库向导;第二种是在控制面板上选择数据库,然后选择新建数据库菜单命令直接创建用户数据库。
只介绍第二种方法。
如例4-1
2.使用Transact-SQL语句创建数据库
在查询分析器中使用Transact-SQL语句创建新的用户数据库,其语法格式有以下几种形式。
(1)Transact-SQL语句创建数据库一般格式
CREATEDATABASEdatabase_name
[ON[PRIMARY]
[,
[,
]
[LOGON{
[FORLOAD|FORATTCH]
(2)最简单语句格式
CTEATEATABASE数据库名称
在这种情况下,所有的数据库设置都是用系统的默认值。
如例4-2。
十、创建用户数据库表
1.使用企业管理器创建数据库表
2.向表中输入记录
【小结】
本节介绍了SQLServer2000的新特色、客户/服务器体系结构、C/S结构的数据库系统实现技术,这对于了解SQLServer2000系统很有帮助。
并对其中最常用的企业管理器和查询分析器进行了详细介绍,并利用企业管理器、查询分析器示范式地创建了一个学生数据库、学生信息表。
【思考题、作业】
1.在客户/服务器结构中,数据库服务器和客户端计算机是如何分工的?
2.SQLServer的企业管理器和查询分析器的主要功能是什么?
第四章第二节
【教学内容】
Trnasact-SQL介绍
【目的要求】
4、掌握Transact-SQL程序设计的基本概念;
5、掌握基本语法的使用;
【重点难点】SQL中基本语法的使用
【课时】2课时
【教学方法】理论讲授
【教学过程】
一、Transact-SQL简介
SQL是结构化查询语言(StructureQueryLanguage)的英文缩写,它是使用关系模型的数据库应用语言,由IBM在70年代开发出来,作为IBM关系数据库原型SystemR的原型关系语言,实现了关系数据库中的信息检索。
由于Transact-SQL语言直接来源于SQL语言,因此它具有SQL语言的几个特点:
①一体化特点。
Transact-SQL语言集数据定义语言、数据操作语言、数据控制语言和附加语言元素为一体。
②两种使用方式,统一的语法结构。
两种使用方式即联机交互式和嵌入高级语言的使用方式。
③高度非过程化。
Transact-SQL语言一次处理一个记录,对数据提供自动导航;允许用户在高层的数据结构上工作,可操作记录集,而不是对单个记录进行操作;所有的SQL语句接受集合作为输入,返回集合作为输出,并允许一条SQL语句的结果作为另一条SQL语句的输入。
④类似于人的思维习惯,容易理解和掌握。
二、ransact-SQL语法格式
Transact-SQL语句由以下语法元素组成:
·标识符
·数据类型
·函数
·表达式
·运算符
·注释
·关键字
在编写Transact-SQL程序时,常采用不同的书写格式来区分这些语法元素。
这些语法格式约定包括:
1.大写字母:
代表Transact_SQL保留的关键字。
例如下面语句的SELECT和FROM等:
SELECT*FROMtitles
2.小写字母:
表示用户标识符(数据库对象名称等)、表达式等。
如上面语句中的titles标识符。
3.大、小写字母混用:
表示Transact_SQL中可简写的关键字,其中大写部分是必须输入的内容,而小写部分可以省略。
例如:
DUMPTRANsaction语句中的saction部分可以省略。
4.大括号{}:
大括号中的内容为必选参数,其中可包含多个选项,各选项之间用竖线|分隔,用户必须从这些选项中选择使用一项。
例如,在下面BACKUPDATABASE语句中,数据库名称为基本项,用户必须用字符串格式或局部变量格式指定数据库名称:
BACKUPDATABASE{database_name|@database_name_var}
TObackup_devicel[,dump_device2[,…,backup_devicen]]
[WITHoptions]
5.方括号[]:
它所列出的项为可选项,用户可根据需要选择使用。
例如上面语句中在指定备份设备时,除第一个设备外,其余设备均为选项。
6.竖线|:
表示参数之间是“或”的关系,可以从中选择使用一个。
如在上面语句中用户可以用database_name或@database_name_var格式指定数据库名称。
7.省略号“…”:
表示重复前面的语法单元。
8.注释:
注释是指程序中用来说明程序内容的语句,它不执行而且也不参与程序的编译。
在程序中使用注释一个程序员的良好编程习惯,它不但可以帮助他人了解自己编写程序的具体内容,而且还可以便于对程序总体结构的掌握。
可以使用下面两种语法形式表示注释内容。
(1)单行注释
使用两个连字符“--”作为注释的开始标志,到本行行尾即最近的回车结束之间的所有内容为注释信息。
例如:
USEPubs--打开Pubs数据库
GO
--检索Publishers表的数据
SELECT*
FROMPublishers
GO
(2)块注释
块注释的格式为/*……*/,其间的所有内容均为注释信息。
块注释与单行注释不同的是它可以跨越多行,并且可以插入在程序代码中的任何地方。
例如:
USEPubs/*打开Pubs数据库*/
GO
/*检索Publishers
表的数据*/
SELECT*FROMPublishers
GO
三、数据类型、变量和运算符
1.数据类型
Transact-SQL的数据类型分为基本数据类型和用户自定义数据类型两大类。
基本数据类型是指系统提供的数据类型,用户定义数据类型由基本数据类型导出,详细在第五章介绍。
2.标识符
标识符是指用户在SQLServer中定义的服务器、数据库、数据库对象(如表、视图、索引、存储过程、触发器、约束、规则等)、变量等对象名称。
标识符的命名遵守以下命名规则:
(1)标识符长度可以为1到128个字符,不区分大小写。
(2)标识符的第一个字符必须为字母或_、@、#符号。
其中@和#符号具有特殊意义:
当标识符开头为@时,表示它是一局部变量;
标识符首字符为#时,表示一临时数据库对象,对于表或存储过程,名称开头含一个#号时表示为局部临时对象,含两个#号时表示为全局临时对象。
(3)标识符中第一个字符后面的字符可以为字母、数字或#、$、_符号。
(4)缺省情况下,标识符内不允许有空格,也不允许使用关键字等作为标识符,但可以使用引号来定义特殊标识符。
例如:
SETQUOYED_IDENTIFIERON/*允许使用引号定义特殊标识符*/
GO
CREATETABLE“table”
(
column1char(10)notnull
column2smallint(10)notnull
)
3.变量
变量是SQLServer用来在其语句间传递数据的方式之一,它由系统或用户定义并赋值。
SQLServer中变量分局部变量和全局变量两类,其中局部变量是用户自己定义和赋值,全局变量是由系统定义和维护。
下面对这两种变量分别说明:
(1)局部变量
局部变量用DECLARE语句声明,在声明时它初始化为NULL,用户可在与定义它的DECLARE语句的同一批中用SET语句为其赋值。
局部变量只能用在声明该变量的批、存储过程体和触发器。
①局部变量的声明格式为:
DECLARE@variable_namedatatype[,@variable_namedatatype…]
其中:
·@variable_name是所声名的变量名,局部变量遵守SQLServer的标识命名规则,并且其首字符必须为@。
datatype为变量的数据类型。
·在同一个DECLARE语句中可以同时声明多个局部变量,它们相互之间用逗号分隔。
例4-4下面语句声明两个变量@var1和@course_name,它们的数据类型分别为int和char:
DECLARE@var1int,@course_namechar(15)
②局部变量用SET语句赋值,其格式为:
SET@variable_name=expression[,@variable_name=expression…]
其中,表达式是与局部变量的数据类型相匹配的表达式,SET语句的功能是将该表达式的值赋给指定的变量。
除了使用SET语句为局部变量赋值外也可以使用SELECT语句为局部变量赋值。
例4-5下面语句使用常量直接为变量@var1和@var2赋值:
--声明局部变量
DECLARE@var1int,@var2money
--给局部变量赋值
SET@var1=100,@var2=$29.95
例4-6定义一个变量@Max_price,并将其赋值为全体出版物中最高的价格。
USEPUBS
GO
--声明局部变量
DECLATE@Man_Priceint
--将其赋值为图书出版物中价格最大值
SELCET@Max_Price=MAX(price)
FROMTitles
GO
(2)全局变量
SQLServer使用全局变量来记录SQLServer服务器的活动状态。
它是一组由SQLServer事先定义好的变量,这些变量不能由用户参与定义。
因此,用户只能读它,以便了解SQLServer服务器当前的活动状态的信息。
由于全局变量SQLServer系统提供并赋值给变量,用户不能建立全局变量,也不能使用SET语句修改全局变量的值。
全局变量的名字以@@开头。
大多数全局变量的值是报告本次SQLServer启动后发生的系统活动。
通常应该将全局变量的值赋给局部变量,以便保存和处理。
SQLServer提供的全局变量共33个,分为以下两类:
①与当前的SQLServer连接有关的全局变量,与当前的处理相关的全局变量。
如@@rowcount表示最近一个语句影响的记录数。
例4-7在UPDATA语句中使用@@rowcount变量来检测是否存在发生更改记录。
USEPubs
GO
--将图书信息表的计算机书籍价格设置为50元
UPDATETitles
SETprice=50
WHEREtype=‘计算机’
--如果没有发生记录更新,则发生警告信息
IF@@rowcount=0
Print‘警告:
没有发生记录更新!
’/*Print语句将字符串返回给客户端*/
②与系统内部信息有关的全局变量。
如:
@@version表示SQLServer的版本信息。
有关SQLServer其它全局变量及其功能可参看系统帮助。
4.运算符
运算符用来执行列间或变量间的数学运算和比较操作。
SQLServer中,运算符有算术运算符、位运算符、比较运算符和连接运算符等。
(1)算术运算符
运算符用来执行列间或变量间的算术运算,算术运算符包括加(+)、减(-)、乘(*)、除(/)和取模(%)运算等。
算术运算符所操作的数据类型及其含义如4-3表所示。
表4-3算术运算
运算符
含义
可用于数据类型
+
-
*
/
%
加
减
乘
除
取模
int、smallint、tinyint、numeric、decimal、real、money、smallmoney
同上
同上
同上
int、smallint、tinyint
(2)位运算符
位运算符对数据进行按位与(&)、或(|)、异或(^)、求反(~)等运算。
在Tranxact_SQL语句中对整数数据进行位运算时,首先把它们转换为二进制数,然后再进行运算。
操作数的数据类型及其含义如表4-4所示。
表4-4位运算
运算符
含义
可用于数据类型
&
|
^
~
按位与(二元运算)
按位或(二元运算)
按位异或(二元运算)
按位取反(一元运算)
仅用于int、smallint、tinyint
同上
同上
int、smallint、tinyint、bit
(3)比较运算符
比较运算符用来比较两个表达式之间的差别。
SQLServer中的比较运算有:
大于(>)、等于(=)、小于(<)、大于等于(>=)、小于等于(<=)和不等于(<>)等。
比较运算符及其含义如表4-5所示。
表4-5比较运算符
运算符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湖南 师范大学 数据库 系统 原理 第四