- SQL Server 2008中文版项目教程(第3版)
- 宋晓峰 蔺抗洪
- 4036字
- 2025-02-18 03:00:47
任务一 创建“教学管理数据库”
SQL Server 2008提供了两种方式创建数据库。
● 图形化交互方式。
● 命令方式。
图形化交互方式是在【SQL Server Management Studio】的【新建数据库】窗口中定义数据库及其属性。命令方式是在【SQL查询】标签页中编写并执行T-SQL命令来定义数据库属性。不论哪种方式,对数据库基本属性的理解是执行本任务的主要目的。
创建数据库的过程就是定义数据库属性的过程。创建数据库时除了数据库名称外,SQL Server都可以自动设置默认值。但是默认值并不一定能够满足实际项目的需要,必须由数据库管理员(Database Administrator,DBA)分析具体需求,确定符合要求的属性值。描述数据库的属性非常多,对于初学者只需要掌握几个基本属性的含义。
【基础知识】
在介绍数据库的相关基础知识之前,首先讲解一下“数据库”与“实例”的关系。实例是一套完整的服务程序,而数据库是实例的一个重要组成部分。数据库的主要功能是有效地存储数据,实例则提供管理和操作数据的相关程序。一个实例中可以包含多个数据库,实例中既包括用户根据实际需要创建的数据库,也包括每个实例必备的4个系统数据库,如图2-1所示。

图2-1 创建数据库
图2-1所示的4个必备数据库的用途将在以下的知识链接部分详细说明。
1.数据库名称
每一个数据库都有一个唯一标识,这个标识就是数据库的名称。例如,我们要为一个学校创建两个数据库,一个用来管理教学,一个用来管理财务,则可以用“教学管理数据库”和“财务管理数据库”来标识。在中文版SQL Server中可以为数据库定义中文名称,其含义一目了然。
2.数据文件
数据文件,顾名思义是存放数据的文件。我们经常说数据是存储在数据库表里的,其实表只是对数据按含义和逻辑关系作的分类,它并不反映数据的物理存储方式。数据经过有效地排列、压缩之后存储在硬盘的文件中,这种文件的格式不是我们熟悉的Text格式、Word格式或者Excel格式,只有利用专门的数据库工具才能查看这些文件的具体内容。
数据文件有3个基本属性。
(1)数据文件的“逻辑名称”和“操作系统文件名”
每一个数据文件都有一个唯一的标识,这个标识就是数据文件的“逻辑名称”,而“操作系统文件名”是数据文件在硬盘上的所在的文件夹和文件名的统称。例如,要为“教学管理数据库”定义一个名为“Pri_教学管理1”的数据文件,“Pri_教学管理1”就是“逻辑名称”。该数据文件存放在硬盘“D”分区的“教学管理”文件夹下,字符串“D:\教学管理\Pri_教学管理1.mdf”就是它的“操作系统文件名”。
(2)数据文件分类
在SQL Server中数据文件分为以下两类。
● 主要数据文件。
● 次要数据文件。
主要数据文件不仅包括应用数据还包括启动数据库时的必要信息。主要数据文件是必需的,而且一个数据库只能有一个主要数据文件。次要数据文件是可选的,也可以不只一个。这两种文件的“逻辑名称”和“操作系统文件名”都可以由用户自己定义,但它们的扩展名则各不相同,主要数据文件的文件扩展名是“.mdf”,次要数据文件的文件扩展名是“.ndf”。
(3)数据文件大小
数据文件的大小有以下3种表示方式。
● 初始尺寸。
● 最大尺寸。
● 文件增长尺寸。
初始尺寸是创建数据库时指定的文件大小。最大尺寸表示一个数据文件的最大容量,因为硬盘的容量不论有多大毕竟是有限的,数据文件的最大尺寸不能大于硬盘的尺寸,数据文件达到最大尺寸后需要创建新的数据文件。文件增长尺寸是指在数据的存储过程中,当数据文件达到初始尺寸后自动增长的尺度。
3.数据文件组
数据文件通常不只一个,这些文件既可以集中存放在一个硬盘分区上,也可以分布在多个硬盘分区上。如果一个表中的数据分别存放在不同的数据文件中,检索数据时,从多个文件中同时查找,可以提高查询效率。将多个有关联关系的数据文件划分为同一组,称为“数据文件组”,可以简称为“文件组”。
文件组分为“主要文件组”和“用户定义文件组”。包含主要数据文件的文件组称为“主要文件组”,名称必须为“PRIMARY”。由用户自己定义的文件组称为“用户定义文件组”。主要数据文件必须在PRIMARY组中,次要数据文件可以在PRIMARY组中,也可以在“用户定义文件组”中。
4.事务日志文件
为了提高数据库的操作效率,也为了能够在撤销某些错误操作后,使数据库回到错误操作之前的状态,数据库的每一个操作结果不是立即更新到数据文件中,而是将结果暂时存放在一个临时文件中。这个文件就是“事务日志文件”。只有确认了操作结果或事务日志文件达到一定容量后,才将最终结果更新到数据文件中。
事务日志文件也包括“逻辑名称”和“操作系统文件名”,其含义和数据文件的相同。一个数据库可以有多个事务日志文件,也可以存放在硬盘的不同分区上。事务日志的文件扩展名是“.ldf”。
(一)在【数据库属性】对话框中创建数据库
在【数据库属性】对话框中定义数据库属性,操作非常简单,需要定义的属性一目了然,只需要清楚以上基本属性的含义,其余属性采用默认值即可。
【操作目标】
本任务要求为“教学管理实例”创建“教学管理数据库”,其数据文件、文件组和事务日志文件见表2-1。
表2-1 “教学管理数据库”的数据文件和事务日志文件

【操作步骤】
STEP 1 启动【SQL Server Management Studio】程序,展开【教学管理实例】节点。在【数据库】子节点上单击鼠标右键,弹出快捷菜单,如图2-2所示。

图2-2 输入“教学管理数据库”
STEP 2 单击【新建数据库】菜单项,打开【新建数据库】对话框。在【数据库名称】文本框中输入“教学管理数据库”,如图2-3所示。

图2-3 输入数据库名称
STEP 3 单击按钮,在【数据库文件】列表框中添加一条数据文件记录。在新增加的记录的【文件组】栏位,展开下拉列表框,点击“<新文件组>”。在显示的【教学管理数据库的新建文件组】对话框中,在【名称】文本框中输入“UserFleGrp1”,如图2-4所示。点击
按钮返回【新建数据库】对话框,并按照“表2-1”中的内容输入和修改数据文件和事务日志文件的逻辑文件名和初始大小。

图2-4 新建文件组
STEP 4 在“Pri_教学管理1”记录行中,单击按钮,显示【更改Pri_教学管理1的自动增长设置】对话框。选中【启用自动增长】复选框,选中【文件增长】选项组中的【按MB(M)】单选按钮,并在其后的数值框中输入“5”,选中【最大文件大小】选项组中的【限制文件增长(MB)(R)】单选按钮,并在其后的数值框中输入“60”,如图2-5所示。

图2-5 设置自动增长方式
STEP 5 单击按钮退出【更改Pri_教学管理1的自动增长设置】对话框。按照同样方式设置“Snd_教学管理1”和“LF_教学管理1”的自动增长方式和最大文件限制。
STEP 6 在【数据库文件】列表框中,为各个数据文件和事务日志文件输入“表2-1”所示的操作系统文件名,即【路径】和【文件名】栏位,如图2-6所示。

图2-6 设置操作系统文件名
STEP 7 单击按钮,创建“教学管理数据库”。创建成功后在【对象资源管理器】中,在【教学管理实例】节点的【数据库】节点下自动增加了【教学管理数据库】子节点,以及【教学管理数据库】的【数据库关系图】、【表】、【视图】和【可编程性】等子节点,如图2-7所示。

图2-7 “教学管理数据库”及其子节点
【知识链接】
在“教学管理实例”创建成功后,SQL Server自动为其创建了4个系统数据库。每一个实例都拥有4个系统数据库用于存储基本信息。系统数据库既不能修改也不能删除。初学者只要了解它们的功能就行了;在对SQL Server有了更深的理解之后再去研究它们。下面简要介绍它们的功能。
(1)master
master数据库记录实例的系统级信息,如登录账户、链接服务器等系统配置。master数据库还记录所有其他数据库是否存在及这些数据库文件的位置。另外,master还记录实例的初始化信息。因此,如果master数据库不可用,则实例无法启动。创建用户自定义的数据库时必须在master数据库下创建。
(2)model
model数据库用作在实例上创建的所有数据库的模板。
(3)msdb
msdb数据库由SQL Server Agent管理警报方案和作业调度。
(4)tempdb
tempdb是连接到实例的所有用户都可用的全局资源,它保存所有临时表和临时存储过程。每次启动SQL Server时,都要重新创建tempdb,以便保证该数据库总是空的。在断开连接时会自动删除临时表和存储过程。
(二)用create database语句创建数据库
通过对本节的执行,读者应掌握create database的基本语法,并能够在今后的学习工作中熟练使用。
【基础知识】
(1)T-SQL介绍
结构化查询语言(Structured Query Language,SQL)是目前使用最广泛的数据库标准查询语言。SQL首先由IBM公司开发,后来被许多数据库管理软件公司接受而成为了行业内的一个标准。现在最新的标准是SQL99。
SQL是一种类似于英语的描述语言,易于理解。通常将SQL分为以下两个基本类型。
● DDL(Data Definition Language)。
● DML(Data Manipulation Language)。
DDL用于定义、修改数据库对象,包括create(创建)、alter(修改)和drop(删除)命令。DML用于检索、更新表中的记录,包括insert(添加)、delete(删除)、update(修改)和select(查询)命令。
SQL是目前使用广泛的数据库管理软件(SQL Server、Oracle、DB2、Sybase等)的语言标准。Transact-SQL(简称T-SQL)是Microsoft公司在标准SQL的基础上创建的符合SQL Server特点的数据库访问语言,一直以来就是SQL Server的开发、管理工具。
(2)create database的语法
create database的语法虽然复杂,但实质还是对属性的定义。为了方便读者理解,把语句分解成几个有序的项目,每一个项目对应一个属性,并且与本示例结合,给出对应的项目,见表2-2。将各项目按顺序组合起来就形成一个完整的create database语句。
表2-2 create database的语法规则

需要注意以下3点规则。
● 创建数据库时必须在master数据库下创建。
● 主要文件组和次要文件组之间必须用“,”隔开。
● 同一文件组的各个文件的属性用“( )”括起来,文件之间用“,”隔开。
【操作目标】
本节要求用create database创建“教学管理数据库”,数据库的属性见表2-1。
【操作步骤】
STEP 1 启动【SQL Server Management Studio】程序,点击快捷按钮,在【SQL查询】标签页中输入表2-2所示的“本示例语句”列的语句。单击工具栏上的
按钮,执行create database语句。执行成功后系统提示成功信息,如图2-8所示。

图2-8 用create database创建数据库
STEP 2 在【对象资源管理器】窗口中,刷新并展开【教学管理实例】节点的【数据库】子节点,会看到存在一个名为“教学管理数据库”的子节点。
请读者注意,因为不是通过交互方式创建的数据库,所以在create database执行成功后,【数据库】节点下面不会自动出现【教学管理数据库】子节点,需要对【数据库】节点刷新后才能看到。后面的操作中,每一个通过T-SQL语句创建、修改的数据库对象都要通过刷新来查看结果。