1、引:,数据库的设计步骤: 收集、分析数据(需求分析) 建立概念模型(概念设计) 建立逻辑模型(逻辑设计) 关系规范化 1NF 2NF 3NF 创建数据库,第一次抽象,第二次抽象,第7章 数据库的创建和管理 教学内容,基础知识: 数据库结构 数据库类型 创建用户数据库(重点、难点) 管理用户数据库(重点、难点),第7章 数据库的创建和管理 学习目标,认知目标: 了解SQL Server 的数据库文件、事务日志文件 了解SQL Server 2005的数据库类型 了解数据库文件默认的存放目录和数据库名的保存形式 能力目标: 掌握用语句创建、显示、修改、删除数据库的方法(重点) 掌握用图形界面管理数
2、据库的方法,一、数据库结构 1. 数据库对象,SQL Server的数据库 是存放各种对象(表、索引等)的逻辑实体。 数据库对象的含义 SQL Server 2005数据库中的数据在逻辑上被组织成一系列对象,当一个用户连接到数据库后,他所看到的是逻辑对象,而不是物理的数据库文件。,数据库对象的类型:,一、数据库结构 2. 数据库文件,含义 一个数据库保存为1个或多个文件,这些文件称为数据库文件。 类型 主数据文件:存放数据库的启动信息、存放数据 每个数据库必有一个主数据文件。扩展名是.mdf。 次数据文件(辅助数据文件):用于存放数据。 一个数据库可没有或有多个次数据文件。扩展名是.ndf 事
3、务日志文件 事务日志记录了SQL Server所有的事务和由这些事务引起的数据库的变化。其作用:可恢复所有未完成的事务。 每个数据库可有一个或多个日志文件。扩展名是.ldf,一、数据库结构 2. 数据库文件,数据库文件的文件名 默认情况下 主数据文件名为:数据库名.mdf 事务日志文件名为:数据库名_Log.ldf 用户自定义 数据库文件的存放位置 默认情况下,存放在: c:program files Microsoft SQL Server MSSQL.1 MSSQL data 用户自定义,一、数据库结构 3. 文件组,目的 SQL Server允许将多个数据库文件组成一个组。以便于管理和分
4、配数据。 类型 主文件组:包括主数据文件、没有指明组的其它文件 次文件组:用户自定义文件组 数据库文件和文件组必须遵循的规则 一个文件或文件组只能被一个数据库使用 一个文件只能属于一个文件组 日志文件不能属于文件组,一、数据库结构,数 据 库,物理上表现为 数据库文件,数据 文件日志 文件,逻辑上表现为 数据库对象,二、系统数据库,SQL 2005在安装时,会创建5个系统数据库。 Master数据库 是SQL Server系统最重要的数据库,它记录了SQL Server的所有系统信息。包括: 所有的登录信息 系统配置信息 SQL Server的初始化信息 其它系统数据库及用户数据库的相关信息。
5、 Model数据库 用作在 SQL Server 实例上创建的所有数据库的模板 。对 model 库的修改将应用于以后创建的所有数据库。,二、系统数据库,Msdb数据库 是代理服务数据库,为其警报、任务调度和记录操作员的操作提供存储空间。 Tempdb数据库 是一个临时数据库,它为所有的临时表、临时存储过程及其它临时操作提供存储空间。 Resource 数据库 是一个只读数据库。包含SQL Server 2005的系统对象,这些系统对象在物理上保存在Resource 数据库中,但在逻辑上,它们出现在每个数据库的 sys 架构中。 物理文件名为 Mssqlsystemresource.mdf。默
6、认情况下,此文件位于 c: Program Files Microsoft SQL Server MSSQL.1 MSSQL Data Mssqlsystemresource.mdf,三、创建用户数据库 1. 创建数据库的方法,使用界面创建(熟悉) 简单、方便 使用命令创建(掌握) 命令方式、较复杂 但它是兼容语法,一旦学会它,可套用到其它数据库系统中;在程序中执行的某些动作必须使用命令。,三、创建用户数据库 2. 创建数据库前的考虑,先确定数据库的名称 确定所有者(创建数据库的用户将成为该数据库的所有者) 用于存储该数据库的文件和文件组 确定数据库文件存放的位置 估计数据库文件的初始大小(如
7、:3MB) 允许数据库自动增长 允许数据库文件增长的最大值(如:10MB),三、创建用户数据库 3.用界面创建数据库,课堂实例1:在E盘的“班级号”文件夹下,创建一个教学管理数据库 “jxgl”,其中要求: 主文件名默认。初始容量为5MB,最大容量为25MB,增幅为1MB。 次文件名为:jxgl2_data。初始容量为2MB,最大容量为20MB,增幅为10%。 日志文件名默认。初始容量为4MB,最大容量不限制,增幅为2MB。 任务1:在E盘以班级号创建一个文件夹。 任务2:在SSMS中,创建一个名为jxgl的数据库 右击“数据库”图标“新建数据库” 任务3:查看jxgl数据库对象和数据库文件。
8、,三、创建用户数据库 4. 创建数据库命令的使用和分析,用命令创建数据库的格式 CREATE DATABASE 数据库名 ON LOG ON 实例1:创建一个简单数据库。 CREATE DATABSE db1完整的数据库创建命令格式分析,创建一个名为mydb1的数据库,其大小与model的数据库完全相同。,三、创建用户数据库 4. 创建数据库命令的使用和分析,CREATE DATABSE 数据库名 ON PRIMARY ( NAME = 逻辑文件名,FILENAME = 磁盘文件名,SIZE = 初始大小 ,MAXSIZE = 最大容量|unlimited ,FILEGROWTH = 增长量
9、) , n , FILEGROUP () , n LOG ON ( NAME = 逻辑文件名,FILENAME = 磁盘文件名 ,SIZE = 初始大小 ,MAXSIZE = 最大容量|unlimited ,FILEGROWTH = 增长量 ) , n ,主文件组,次文件组,次文件组的 次数据文件,主文件组的 次数据文件n,主数据文件,日志文件n,三、创建用户数据库 4. 创建数据库命令的使用和分析,实例2:分析下列命令的功能。 CREATE DATABSE db2ON PRIMARY ( NAME= db2 ,FILENAME=c:program files Microsoft SQL Se
10、rver MSSQL.1 MSSQLdata db2 .mdf ,SIZE = 3 ,MAXSIZE = 15 ,FILEGROWTH = 10 ),逻辑名:作为SQL Server系统引用文件时的标识符。,物理名:在OS中具体的存储位置及名称。,初始大小 3MB,最大容量 15MB,增长幅度 10MB,主文件组,三、创建用户数据库 4. 创建数据库命令的使用和分析,课堂练习2:请判断下列命令创建的数据库中包含了哪些数据库文件?有几个文件组? CREATE DATABSE sON PRIMARY ( NAME= s, FILENAME=c:program files Microsoft SQL
11、 Server MSSQL.1 MSSQL data s .mdf , SIZE = 4 , MAXSIZE = 10 , FILEGROWTH = 10% ) LOG ON( NAME = s_log, FILENAME= c:program filesMicrosoftSQL Server MSSQL.1 MSSQL data s_log .ldf ,SIZE=1,MAXSIZE=5,FILEGROWTH=1 ),三、创建用户数据库 4. 创建数据库命令的使用和分析,课堂练习3:请判断下列命令创建的数据库中有几个文件组?各组有哪些数据库文件?存放在何处? CREATE DATABSE tO
12、N PRIMARY ( NAME=t,FILENAME=d:t.mdf ,SIZE=4 , MAXSIZE=10 , FILEGROWTH=10% ) ,( NAME=t2,FILENAME=d:t2.ndf ,SIZE=4 , MAXSIZE=10 , FILEGROWTH=10% ),FILEGROUP t_group( NAME=t3, FILENAME=d:t3.ndf ,SIZE=4 , MAXSIZE=10, FILEGROWTH=10% )LOG ON( NAME=t_log, FILENAME=d:t_log.ldf ,SIZE=1,MAXSIZE=5, FILEGROWTH=
13、1 ),四、管理数据库,管理数据库的方法 命令方式(掌握) 对象资源管理器(熟悉) 可从三个方面来管理数据库 显示数据库 修改数据库 删除数据库,四、管理数据库 1. 显示数据库信息,显示数据库的方法 使用sp_helpdb系统存储过程 使用对象资源管理器 命令格式 exec sp_helpdb 数据库名 说明: 省略“数据库名”可选项,可查看服务器中所有数据库的定义信息。 若该语句是一个批(处理)的第一句,那么“EXEC”可以省略。,四、管理数据库 1. 显示数据库信息,实例3:显示服务器中所有数据库的信息。 语句格式:sp_helpdb 实例4:显示数据库d1的信息。 语句格式:sp_he
14、lpdb db1 实例5:在同一个批中,建立一个数据库,并显示该数据库的信息。 语句格式: create database gl exec sp_helpdb gl,语句格式2: create database gl go sp_helpdb gl,GO是一个批的最后一句,四、管理数据库 2. 修改数据库,修改数据库包括 文件组(增加、重命名、删除) 数据文件和事务日志文件(增加、修改、删除) 数据库(重命名、删除、修改),四、管理数据库 2. 修改数据库命令方式,增加文件组 alter database 数据库名add filegroup 文件组名实例6:在数据库db1中增加一个g2文件组:
15、 alter database db1add filegroup g2,四、管理数据库 2. 修改数据库命令方式,删除文件组 alter database 数据库名remove filegroup 文件组名实例7:删除数据库db1中的文件组g3。,删除文件组前必须保证该文件组为空,若其中有文件则应先删除。,alter database db1remove filegroup g3,四、管理数据库 2. 修改数据库命令方式,重命名文件组 alter database 数据库名modify filegroup 文件组名name=新文件组名实例8:将数据库db1中的文件组g2更名为g3。 alter
16、 database db1modify filegroup g2 name=g3,四、管理数据库 2. 修改数据库命令方式,增加数据文件和日志文件 alter database 数据库名add file ,n to filegroup 文件组名 add log file ,n 实例9:在数据库db1中增加如下文件: 在主文件组中增加数据文件data4,初始大小为1MB,最大为5MB,增长幅度为1MB。 在次文件组g1中增加数据文件data5,属性同data4。 增加日志文件log2,属性同data4。,未指明则增加到主文件组 否则,增加到次文件组,四、管理数据库 2. 修改数据库命令方式,al
17、ter database db1add file(name=data4, filename=d:sqldb1_data4.mdf ,size=1, maxsize=5, filegrowth=1)(name=data5, filename=d:sqldb1_data5.ndf ,size=1, maxsize=5, filegrowth=1) to filegroup g1 alter database d1add log file(name=log2, filename=d:sqldb1_log2.ldf,size=1, maxsize=5, filegrowth=1),增加到次文件组g1
18、未指明则增加到主文件组,四、管理数据库 2. 修改数据库命令方式,删除数据文件和日志文件 alter database 数据库名remove file 逻辑文件名 实例10:删除数据库db1中的数据文件data4和日志文件log2。 alter database db1remove file data4 alter database db1remove file log2,四、管理数据库 2. 修改数据库命令方式,修改数据文件和日志文件的属性。 alter database 数据库名modify file 实例11:将数据库db1中的数据文件data2的初始大小改为10MB,最大容量为20MB
19、,增长幅度为10%。 alter database db1modify file(name=data2,size=10, maxsize=20, filegrowth=10%),请注意: 修改文件属性时,不需指定物理文件名。 文件大小不能小于初始容量。,四、管理数据库 2. 修改数据库命令方式,修改数据库名 alter database 数据库名modify name= 新数据库名实例12:将数据库db1的名字修改为gl: alter database db1modify name= gl,四、管理数据库 3. 删除数据库,命令格式 Drop database 数据库名 ,n实例13:删除数据库db1和s。 Drop database db1, s说明:当数据库处于下列情况不能被删除。 当有用户正在数据库使用时。 当数据库正在被恢复时。 当数据库正在参与复制时。,本课小结,SQL Server 2005的数据库包括5个系统数据库。 数据库文件有主数据文件、次数据文件和日志文件。 数据库的文件组分为主文件组和次文件组。 创建和管理数据库的方法有命令方式、对象资源管理器。 管理数据库包括:增加/减少文件和文件组、修改文件名、删除文件和文件组、删除数据库、设置数据库选项。,课余作业布置,P1363、4、5题。,