第 4章 SQL Server数据库基础
?客户 /服务器体系结构
?Microsoft SQL Server基础
?Transact-SQL简介
客户 / 服务器体系结构
客户 /服务器体系结构是一种合理配置客
户端和服务器端应用负载、充分利用系统资
源、使系统服务效率更高的一种应用体系结
构。
应用体系结构的划分
?集中式结构
?文件服务器结构
?客户 /服务器结构
?三层客户 /服务器结构
集中式结构
文件服务器结构
客户 /服务器结构
三层客户 /服务器结构
文件服务器 与 客户 /服务器 的数据库操作
?文件服务器结构在服务器端存储数据,在
客户端完成数据操作和处理。
?文件服务器 数据库操作举例
?客户 /服务器结构在服务器存储数据,在服
务器和客户端完成数据操作和处理。
?客户 /服务器 的数据库操作
文件服务器结构中的数据库操作
查询表格
30000条记录的表格
客户 /服务器结构中的数据库操作
SQL请求
返回一条记录
客户 /服务器结构的特点
客户端和服务器端的分工与合作可以利用
较低的费用实现较高的性能,使整个系统达到
最高的效率。
客户端与服务器端的分工
? 把客户端称作前台,把服务器端称作后台,从中
也可以看出前台(客户端)是面向客户的,而后
台(服务器)是面向应用或操作的。
? 前台客户端的工作包括管理用户接口或界面、采
集数据、向后台服务器端发出请求等。
? 后台服务器则负责管理共享外设、存取共享数据、
响应前台客户端的请求并回送结果等工作。
? 客户端的应用程序和数据一般是不同的用户自己
专用的,而服务器的功能和数据是所有的用户共
享的。
数据库服务器
?由于数据库服务器不仅仅是管理共享资源,它还要
分担一些应用逻辑,要完成来自客户端的一些处理
请求。为此,对用于服务器的计算机就提出了较高
的技术要求。数据库服务器应该是:
?高性能的主机
?内存和大容量磁盘阵列等服务器技术
?操作系统应具备开放性、可扩充性,并最好支持
多 CPU结构
?支持多种网络协议
三层客户 /服务器结构
为了更好地将应用处理逻辑独立和封装起
来,人们在传统的两层客户 /服务器结构的基础
上又提出了三层甚至多层的概念,即引入了一
个应用服务器层,目的是提高开发效率、程序
质量和运行效率,降低维护成本。
三层结构的优点
?可重复使用。
?性能改善。
?易于管理。
?易于维护。
Microsoft SQL Server基础
Microsoft SQL Server是一个高性能的, 多用
户的关系型数据库管理系统, 它是专为客户 /服务
器计算环境设计的, 是当前最流行的数据库服务
器系统之一, 它提供的内置数据复制功能, 强大
的管理工具和开放式的系统体系结构为基于事务
的企业级信息管理方案提供了一个卓越的平台 。
Microsoft SQL Server基础
SQL Server的数据库结构
系统数据库的作用
SQL Server的企业管理器简介
SQL Server的查询分析器简介
建立数据库
SQL Server的数据库结构
每个 SQL Server实例包括四个系统数据库( master,model、
tempdb和 msdb)以及一个或多个用户数据库。
数据库是建立在操作系统文件上的,SQL Server在发出
CREATE DATABASE命令建立数据库时,会同时发出建立操作
系统文件、申请物理存储空间的请求;当 CREATE DATABASE
命令成功执行后,在物理上和逻辑上都建立了一个新的数据库;
然后就可以在数据库中建立各种用户所需要的逻辑组件,如基
本表、视图等。
系统数据库的作用
?master数据库
?tempdb数据库
?model 数据库
?msdb数据库
tempdb数据库
tempdb数据库用于保存所有的临时表和临时存
储过程,它还可以满足任何其它的临时存储要求,
例如存储 SQL Server生成的工作表。 tempdb数据库
是全局资源,所有连接到系统的用户的临时表和存
储过程都存储在该数据库中。 tempdb数据库在 SQL
Server每次启动时都重新创建,因此该数据库在系
统启动时总是干净的。
master数据库
master数据库用于存储 SQL Server系统的所有
系统级信息,包括所有的其它数据库(如建立的用
户数据库)的信息(包括数据库的设置、对应的操
作系统文件名称和位置等)、所有数据库注册用户
的信息以及系统配置设置等。
model数据库
model数据库是一个模板数据库,当使用
CREATE DATABASE命令建立新的数据库时,
新数据库的第一部分总是通过复制 model数据
库中的内容创建,剩余部分由空页填充。由于
SQL Server每次启动时都要创建 tempdb数据库,
所以 model数据库必须一直存在于 SQL Server系
统中。
msdb数据库
msdb数据库用于 SQL Server代理程序调度报警
和作业等系统操作。
SQL Server企业管理器
Microsoft SQL Server的企业管理器( Enterprise
Manager)是管理 SQL Server的“企业”工具,它提
供一种交互界面的方式对 SQL Server进行全面的管理,
如可以建立数据库、可以进行数据库备份和恢复、可
以进行安全管理等。
SQL Server企业管理器的功能包括:
?定义 SQL Server实例组;
?将未注册的服务器注册到组中;
?为每个已注册的服务器配置所有 SQL Server选项;
?在每个已注册的服务器中创建并管理所有 SQL
Server数据库, 对象, 登录, 用户和权限;
?在每个已注册的服务器上 定义并执行所有 SQL
Server管理任务 ;
?可以调用 SQL查询分析器, 交互地设计并测试
SQL语句, 批处理和脚本;
?可以调用为 SQL Server定义的各种向导等 。
SQL Server管理任务可以包括:
?启动, 停止 SQL Server服务管理器;
?建立, 维护 SQL Server数据库;
?在 SQL Server数据库中建立对象, 用户, 分配权
限;
?数据库的备份和恢复;
?安全管理;
?数据库数据的转换及导入, 导出;
?复制的管理;
?其它服务和管理 。
SQL Server查询分析器
?SQL Server查询分析器是交互执行 SQL命令
的一种图形工具,通过它可以交互地完成
对数据库的各种操作。
SQL Server查询分析器可以完成的操作
? 输入查询或其它 SQL命令并执行它们 (, 查询, 窗口 ) ;
? 使用预定义脚本快速创建常用数据库对象 ( 通过模板 ) ;
? 快速复制现有数据库对象 ( 对象浏览器脚本功能 ) ;
? 在参数未知的情况下执行存储过程 ( 对象浏览器过程执行功能 ) ;
? 调试存储过程 ( T-SQL调试程序 ) ;
? 调试查询性能问题 ( 显示执行计划, 显示服务器跟踪, 显示客户统计,
索引优化向导 ) ;
? 在数据库内定位对象 ( 对象搜索功能 ), 或查看和使用对象 ( 对象浏
览器 ) ;
? 交互快速插入, 更新或删除表中的行 ( 通过, 打开表, 窗口 ) ;
? 为常用查询创建键盘快捷方式 ( 自定义查询快捷方式功能 ) ;
? 向, 工具, 菜单添加常用命令 ( 自定义, 工具, 菜单功能 ) 。
建立数据库
?在建立用户逻辑组件之前(如基本表)必须首先建立数据
库。而建立数据库时完成的最实质任务是向操作系统申请
用来存储数据库数据的物理磁盘存储空间。这些存储空间
以操作系统文件的方式体现,它们的相关信息将存储在
master数据库及其系统表中。
?存储数据库数据的操作系统文件可以分为三类
?建立 SQL Server数据库可以在企业管理器中以图形界面的
方式交互完成,或者从企业管理器中启动“创建数据库向
导”完成数据库的建立,也可以在查询分析器中用命令完
成。
?CREATE DATABASE命令常用格式
三类存储文件
?主文件:存储数据库的启动信息和系统表, 主文件也可以
用来存储用户数据 。 每个数据库都包含一个主文件 。
?次文件:保存所有主文件中容纳不下的数据 。 如果主文件
大到足以容纳数据库中的所有数据, 这时候可以没有次文
件 。 而如果数据库非常大, 也可以有多个次文件 。 使用多
个独立磁盘驱动器上的次文件, 还可以将一个数据库中的
数据分布在多个物理磁盘上 。
?事务日志文件:用来保存恢复数据库的日志信息 。 每个数
据库必须至少有一个事务日志文件 ( 尽管可以有多个 ) 。
CREATE DATABASE命令常用格式
建立数据库的命令是 CREATE DATABASE。在 SQL Server中
建立数据库需要指定数据库的名称,由 SQL Server使用的数据库
逻辑名,建立在磁盘上的操作系统文件名,以及数据库规模、
文件组和日志等有关信息。常用命令格式如下:
CREATE DATABASE database_name
ON
<filespec> [,<filespec>,..,]
[,FILEGROUP filegroup_name <filespec> [,<filespec>,..,] ]
[LOG ON <filespec> [,<filespec>,..,] ]
CREATE DATABASE命令常用格式
?要建立的数据库的名称,数据库名称必须唯一,并且符合
标识符的规则; database_name最多可以包含 128个字符。
CREATE DATABASE database_name
ON
<filespec> [,<filespec>,..,]
[,FILEGROUP filegroup_name <filespec> [,<filespec>,..,] ]
[LOG ON <filespec> [,<filespec>,..,] ]
CREATE DATABASE命令常用格式
?指定用来存储数据库的操作系统文件(存储在磁盘上的数
据文件),该关键字后跟以逗号分隔的 <filespec>项列表。
CREATE DATABASE database_name
ON
<filespec> [,<filespec>,..,]
[,FILEGROUP filegroup_name <filespec> [,<filespec>,..,] ]
[LOG ON <filespec> [,<filespec>,..,] ]
CREATE DATABASE命令常用格式
?用于定义对应的操作系统文件的属性。包括:
?[PRIMARY]
?(NAME = logical_file_name,
?FILENAME = 'os_file_name'
?[,SIZE = size]
?[,MAXSIZE = {max_size | UNLIMITED}]
?[,FILEGROWTH = growth_increment])
CREATE DATABASE database_name
ON
<filespec> [,<filespec>,..,]
[,FILEGROUP filegroup_name <filespec> [,<filespec>,..,] ]
[LOG ON <filespec> [,<filespec>,..,] ]
CREATE DATABASE命令常用格式
? 为数据库指定主文件。一个
数据库只能有一个主文件,
如果没有指定 PRIMARY,那
么 CREATE DATABASE语句
中列出的第一个文件将成为
主文件。
?用于定义对应的操作系统文件的属性。包括:
?[PRIMARY]
?(NAME = logical_file_name,
?FILENAME = 'os_file_name'
?[,SIZE = size]
?[,MAXSIZE = {max_size | UNLIMITED}]
?[,FILEGROWTH = growth_increment])
CREATE DATABASE database_name
ON
<filespec> [,<filespec>,..,]
[,FILEGROUP filegroup_name <filespec> [,<filespec>,..,] ]
[LOG ON <filespec> [,<filespec>,..,] ]
CREATE DATABASE命令常用格式
? 为定义的操作系统文件指定
逻辑名称 logical_file_name,
该名称将由 SQL Server管理和
引用。 logical_file_name在数
据库中必须唯一,并且符合
标识符的规则。
?用于定义对应的操作系统文件的属性。包括:
?[PRIMARY]
?(NAME = logical_file_name,
?FILENAME = 'os_file_name'
?[,SIZE = size]
?[,MAXSIZE = {max_size | UNLIMITED}]
?[,FILEGROWTH = growth_increment])
CREATE DATABASE database_name
ON
<filespec> [,<filespec>,..,]
[,FILEGROUP filegroup_name <filespec> [,<filespec>,..,] ]
[LOG ON <filespec> [,<filespec>,..,] ]
CREATE DATABASE命令常用格式
? 指定要建立的操作系统文件
名 ‘ os_file_name’,其中包
含完整的路径名和文件名,
并且不能指定压缩文件系统
中的目录。
?用于定义对应的操作系统文件的属性。包括:
?[PRIMARY]
?(NAME = logical_file_name,
?FILENAME = 'os_file_name'
?[,SIZE = size]
?[,MAXSIZE = {max_size | UNLIMITED}]
?[,FILEGROWTH = growth_increment])
CREATE DATABASE database_name
ON
<filespec> [,<filespec>,..,]
[,FILEGROUP filegroup_name <filespec> [,<filespec>,..,] ]
[LOG ON <filespec> [,<filespec>,..,] ]
CREATE DATABASE命令常用格式
? 指定所创建的操作系统文件的
大小( size),size的单位可以
是 KB(千字节),MB(兆字
节),GB(千兆字节)或 TB
(兆兆字节),默认是 MB。
?用于定义对应的操作系统文件的属性。包括:
?[PRIMARY]
?(NAME = logical_file_name,
?FILENAME = 'os_file_name'
?[,SIZE = size]
?[,MAXSIZE = {max_size | UNLIMITED}]
?[,FILEGROWTH = growth_increment])
CREATE DATABASE database_name
ON
<filespec> [,<filespec>,..,]
[,FILEGROUP filegroup_name <filespec> [,<filespec>,..,] ]
[LOG ON <filespec> [,<filespec>,..,] ]
CREATE DATABASE命令常用格式
? 指定定义的操作系统
文件可以增长到的最
大尺寸( max_size)。
?用于定义对应的操作系统文件的属性。包括:
?[PRIMARY]
?(NAME = logical_file_name,
?FILENAME = 'os_file_name'
?[,SIZE = size]
?[,MAXSIZE = {max_size | UNLIMITED}]
?[,FILEGROWTH = growth_increment])
CREATE DATABASE database_name
ON
<filespec> [,<filespec>,..,]
[,FILEGROUP filegroup_name <filespec> [,<filespec>,..,] ]
[LOG ON <filespec> [,<filespec>,..,] ]
CREATE DATABASE命令常用格式
? 指定定义的操作系统
文件的增长增量,该
项设置的结果不能超
过 MAXSIZE设置。
?用于定义对应的操作系统文件的属性。包括:
?[PRIMARY]
?(NAME = logical_file_name,
?FILENAME = 'os_file_name'
?[,SIZE = size]
?[,MAXSIZE = {max_size | UNLIMITED}]
?[,FILEGROWTH = growth_increment])
CREATE DATABASE database_name
ON
<filespec> [,<filespec>,..,]
[,FILEGROUP filegroup_name <filespec> [,<filespec>,..,] ]
[LOG ON <filespec> [,<filespec>,..,] ]
CREATE DATABASE命令常用格式
?用于定义用户文件组,filegroup_name是组名称,后续的
<filespec>项列表给出该组的文件描述。利用文件组可以
将指定的逻辑组件存储到指定的物理文件(在建立基本表
的 CREATE TABLE命令中有对文件组的引用)。
CREATE DATABASE database_name
ON
<filespec> [,<filespec>,..,]
[,FILEGROUP filegroup_name <filespec> [,<filespec>,..,] ]
[LOG ON <filespec> [,<filespec>,..,] ]
CREATE DATABASE命令常用格式
?指定用来存储数据库日志的操作系统文件(日志文件),
该关键字后跟以逗号分隔的 <filespec>项列表。
?如果没有指定 LOG ON,将自动创建一个日志文件,该文
件使用系统生成的名称,大小为数据库中所有数据文件大
小总和的 25%。
CREATE DATABASE database_name
ON
<filespec> [,<filespec>,..,]
[,FILEGROUP filegroup_name <filespec> [,<filespec>,..,] ]
[LOG ON <filespec> [,<filespec>,..,] ]
建立数据库的例子 1
? 建立一个“订货”数据库,数据主文件的初始大小为 10MB,最大为
50MB,增量为 5MB;日志文件的初始大小为 5MB,最大为 25MB,
增量为 5MB。
CREATE DATABASE 订货
ON
( NAME = order_dat,
FILENAME = 'c:\mssql\data\orderdat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = order_log,
FILENAME = 'd:\mssql\log\orderlog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
建立数据库的例子 2
? 建立一个“订货管理”数
据库,数据主文件的初始
大小为 10MB,最大为
50MB,增量为 5MB;另
外建立一个数据次文件初
始大小也为 10MB,最大
为 50MB,增量为 5MB;
日志文件的初始大小为
5MB,最大为 25MB,增
量为 5MB。
CREATE DATABASE 订货管理
ON
PRIMARY
( NAME = orderman_dat,
FILENAME = 'c:\mssql\data\orderman.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
FILEGROUP 仓库
( NAME = warehouse,
FILENAME = 'e:\mssql\data\wh.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = orderman_log,
FILENAME = 'd:\mssql\log\orderman.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
Transact-SQL简介
?变量、数据类型与表达式
?函数
?流程控制和输入输出命令
【 本章小节 】
?客户 /服务器结构的概念和特点
?SQL Server的数据库结构
?SQL Server数据库的建立
?Transact-SQL