第7章数据库和表的创建和管理1.ppt
第7章 数据库和表的创建和管理,河北工程大学 信电学院 崔冬,数据库原理与SQL Server 2005应用,SQL Server 2005,第7-1章 数据库创建和管理,SQL Server 2005数据库概述,1,创建数据库,2,查看或修改数据库,3,删除数据库,4,SQL Server 2005,7.1 SQL Server 2005数据库概述,数据库的定义 数据库(database)是对象的容器,以操作系统文件的形式存储在磁盘上。它不仅可以存储数据,而且能够使数据存储和检索以安全可靠的方式进行。一般包含关系图、表、视图、存储过程、用户、角色、规则、默认、用户自定义数据类型和用户自定义函数等对象。,SQL Server 2005,7.1 SQL Server 2005数据库概述,系 统 数 据 库,实 例 数 据 库,用 户 数 据 库,SQL Server 2005数据库,SQL Server 2005,7.1 SQL Server 2005数据库概述,系统数据库 Master数据库 记录 SQL Server 2005实例的所有系统级信息,定期备份,不能直接修改。Tempdb数据库 用于保存临时对象或中间结果集以供稍后的处理,SQL Server 2005关闭后该数据库清空。Model数据库用作 SQL Server 2005实例上创建所有数据库的模板。,SQL Server 2005,7.1 SQL Server 2005数据库概述,Msdb数据库 用于 SQL Server 2005代理计划警报和作业,是SQL Server的一个Windows服务。Resource数据库 一个只读数据库,包含 SQL Server 2005包括的系统对象。系统对象在物理上保留在 Resource 数据库中,但在逻辑上显示在每个数据库的 sys 架构中。,SQL Server 2005,7.1 SQL Server 2005数据库概述,示例数据库 AdventureWorks/AdventureWorks DW是SQL Server 2005中的示例数据库(如果在安装过程中选择安装了的话)。此数据库基于一个生产公司,以简单、易于理解的方式来展示SQL Server 2005的新功能。用户数据库 用户根据数据库设计创建的数据库。,SQL Server 2005,7.1 SQL Server 2005数据库概述,数据库文件 数据库的内模式(物理存储结构)。数据库在磁盘上是以文件为单位存储的,由数据文件和事务日志文件组成。主数据文件(.mdf)主数据文件包含数据库的启动信息,并指向数据库中的其他文件;存储用户数据和对象;每个数据库有且仅有一个主数据文件。,SQL Server 2005,7.1 SQL Server 2005数据库概述,次数据文件(.ndf)也称辅助数据文件,存储主数据文件未存储的其他数据和对象;可用于将数据分散到多个磁盘上。如果数据库超过了单个 Windows 文件的最大大小,可以使用次数据文件,这样数据库就能继续增长;可以没有也可以有多个;名字尽量与主数据文件名相同。事务日志文件(.ldf)保存用于恢复数据库的日志信息;每个数据库至少有一个日志文件,也可以有多个。,SQL Server 2005,7.1 SQL Server 2005数据库概述,数据库文件组 为了便于分配和管理,SQL Server 2005允许将多个文件(不同的磁盘)归纳为同一组,并赋予此组一个名称;与数据库文件一样,文件组也分为主文件组(Primary File Group)和次文件组(Secondary File Group);主文件组包含系统表和主数据文件,是默认的数据文件组。,SQL Server 2005,7.2 创建数据库,SQL Server 2005,7.2.1 使用SSMS创建数据库,在【对象资源管理器】窗口中,右击“数据库”文件夹,从弹出的快捷菜单中选择“新建数据库”选项,如下图所示。,SQL Server 2005,7.2.1 使用SSMS创建数据库,在窗口中根据提示输入该数据库的相关内容,如数据库名称、所有者、文件初始大小、自动增长值和保存路径等。例如:创建教务管理数据库。数据库名称EDUC;主数据文件保存路径E:教务管理数据文件;主数据文件初始大小为3MB,最大尺寸为10MB,增长速度为10%;日志文件保存路径F:教务管理日志文件;日志文件的初始大小为1MB,最大尺寸为2MB,增长速度为10%。,SQL Server 2005,7.2.1 使用SSMS创建数据库,注意:数据文件应该尽量不保存在系统盘上并与日志文件保存在不同的磁盘区域。数据库名称:可以使用字母、数字、下划线或短线。所有者:数据库的所有者可以是任何具有创建数据库权限的登录名。例如:选择其为账户,该账户是当前登录到SQL Server上的账户。忽略“使用全文索引”复选框:如果想让数据库具有能搜索特定的词或短语的列,则选中此选项。,SQL Server 2005,7.2.1 使用SSMS创建数据库,文件名(窗口右侧没显示出的部分):用于存储数据库中数据的物理文件的名称,默认情况下,SQL Server用数据库名称加上_Data后缀来创建物理文件名。例如:EDUC_Data数据库文件逻辑名称:引用文件时使用。文件类型:显示文件是数据文件,还是日志文件,数据文件用来存放数据,而日志文件用来存放对数据所做操作的记录。文件组:为数据库中的文件指定文件组,主文件组(PRIMARY)或任一辅助文件组(SECONDARY)。所有数据库都必须有一个主文件组。初始大小:数据库的初始大小至少是MODEL数据库的大小。,SQL Server 2005,7.2.1 使用SSMS创建数据库,自动增长:SQL Server是否能在数据库到达其初始大小极限时自动应对。默认是“不限制文件增长”,其好处是可以不必过分担心数据库的维护,但如果一段“危险”的代码引起了数据的无限循环,硬盘可能会被填满。因此,当一个数据库系统要应用到生产环境中时,应设置“限制文件增长(MB)”选项以防止出现上述的情形。可以创建次数据文件来分担主数据文件的增长。,SQL Server 2005,7.2.1 使用SSMS创建数据库,例如:文件按10%的比例增长,限制最大文件大小为10MB。,SQL Server 2005,7.2.1 使用SSMS创建数据库,数据库文件存放的物理位置,默认的路径是C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLData。单击右边带有省略号()的命令按钮,打开一个资源管理器风格的对话框,可以在该对话框中更改数据库文件的位置。,SQL Server 2005,7.2.1 使用SSMS创建数据库,文件类型选项为“日志”的行与为“数据”的行所包含的信息差不多,只有一两处很小的不同。“文件名”是通过在数据库名称后面加_log后缀而得到的;不能修改“文件组”列。可以定义多个日志文件。若填满了事务日志,会因为日志满而导致SQL Server停止处理,因此将不能处理更多的信息。指定多个日志位置则可以避免这种情况。在大型生产系统中采用故障转移日志文件是可取的。,SQL Server 2005,7.2.1 使用SSMS创建数据库,在选项页框中,如下图所示,可设置数据库的排序规则,恢复模式,兼容级别以及其他一些选项的设置。,SQL Server 2005,7.2.1 使用SSMS创建数据库,在文件组页框中,如下图所示,可设置或添加数据库文件和文件组的属性,如是否只读,是否为默认值等。,SQL Server 2005,7.2.1 使用SSMS创建数据库,单击【确定】按钮,系统开始创建数据库,创建成功后,当回到SSMS中的对象资源管理器时,刷新其中的内容,在【对象资源管理器】的【数据库】节点中就会显示新创建的数据库EDUC。,SQL Server 2005,7.2.2 使用T-SQL语句创建数据库,语法格式:CREATE DATABASE database_name ON PRIMARY,n,n LOG ON,n FOR RESTORE:=(NAME=logical_file_name,FILENAME=os_file_name,SIZE=size,MAXSIZE=max_size|UNLIMITED,FILEGROWTH=growth_increment),n:=FILEGROUP filegroup_name,n,SQL Server 2005,7.2.2 使用T-SQL语句创建数据库,各参数说明如下:database_name:数据库的名称,最长为128个字符。PRIMARY:该选项是一个关键字,指定主文件组中的文件。LOG ON:指明事务日志文件的明确定义。NAME:指定数据库的逻辑名称,这是在SQL Server系统中使用的名称,是数据库在SQL Server中的标识符。FILENAME:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和NAME的逻辑名称一一对应。,SQL Server 2005,7.2.2 使用T-SQL语句创建数据库,SIZE:指定数据库的初始容量大小,至少为模板Model数据库大小。MAXSIZE:指定操作系统文件可以增长到的最大尺寸。如果没有指定,则文件可以不断增长直到充满磁盘。FILEGROWTH:指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。,SQL Server 2005,7.2.2 使用T-SQL语句创建数据库,例7-1:创建了一个Test数据库,该数据库的主数据文件逻辑名称为Test_data,物理文件名为Test.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为Test_log,物理文件名为Test.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为1MB。,SQL Server 2005,7.2.2 使用T-SQL语句创建数据库,CREATE DATABASE test ON PRIMARY-建立主数据文件(NAME=Test_data,-逻辑文件名 FILENAME=E:test.mdf,-物理文件路径和名字 SIZE=10240KB,-初始大小 MAXSIZE=UNLIMITED,-最大尺寸为无限大 FILEGROWTH=10%)-增长速度为%LOG ON(NAME=test_log,-建立日志文件 FILENAME=F:test.ldf,-物理文件路径和名字 SIZE=1024KB,MAXSIZE=5120KB,FILEGROWTH=1024KB),SQL Server 2005,7.2.2 使用T-SQL语句创建数据库,例7-2:创建图书管理数据库Library。CREATE DATABASE Library On(NAME=Library,FILENAME=E:Library _data.mdf,SIZE=3,MAXSIZE=10,FILEGROWTH=10%)LOG ON(NAME=Library_log,FILENAME=F:Library _log.ldf,SIZE=1,MAXSIZE=2,FILEGROWTH=10%),SQL Server 2005,7.3查看或修改数据库,使用SSMS查看或修改数据库 右击所要修改的数据库,从弹出的快捷菜单中选择“属性”选项,出现如下图所示的数据库属性设置对话框。可以看到,修改或查看数据库属性时,属性页框比创建数据库时多了两个,即选项和权限页框。可以分别在常规、文件、文件组、选项和权限对话框里根据要求来查看或修改数据库的相应设置。,SQL Server 2005,7.3查看或修改数据库,SQL Server 2005,7.3查看或修改数据库,使用T-SQL语句修改数据库 语法格式:Alter database databasename add file,n to filegroup filegroupname|add log file,n|remove file logical_file_name with delete|modify file|modify name=new_databasename|add filegroup filegroup_name|remove filegroup filegroup_name|modify filegroup filegroup_name filegroup_property|name=new_filegroup_name,SQL Server 2005,7.3查看或修改数据库,例7-3:将两个数据文件和一个事务日志文件添加到test数据库中。ALTER DATABASE Test ADD FILE-添加两个次数据文件(NAME=Test1,FILENAME=E:test1.ndf,SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=5MB),(NAME=Test2,FILENAME=E:test2.ndf,SIZE=3MB,MAXSIZE=10MB,FILEGROWTH=1MB)GO,SQL Server 2005,7.3查看或修改数据库,ALTER DATABASE Test ADD LOG FILE(NAME=testlog1,-添加一个次日志文件FILENAME=F:testlog1.ldf,SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=5MB)GO,SQL Server 2005,7.3查看或修改数据库,例7-4:添加文件组EDUC_Group。ALTER DATABASE EDUCADD FILEGROUP EDUC_Group 例7-5:将一个新的数据文件EDUC_data2添加到EDUC数据库的EDUC_Group文件组。ALTER DATABASE LibraryADD FILE-添加次数据文件(NAME=Library2,FILENAME=E:图书管理数据Library_data2.ndf)to filegroup Library_group,SQL Server 2005,7.4删除数据库,使用Management Studio删除数据库 在【对象资源管理器】窗口中,在目标数据库上单击鼠标右键,弹出快捷菜单,选择【删除】命令。出现【删除对象】对话框,确认是否为目标数据库,并通过选择复选框决定是否要删除备份以及关闭已存在的数据库连接,如图所示。单击【确定】按钮,完成数据库删除操作。,SQL Server 2005,7.4删除数据库,SQL Server 2005,7.4删除数据库,使用T-SQL语句删除数据库 可以从master数据库中执行sp_helpdb以查看数据库列表。用户只能根据自己的权限删除用户数据库,不能除去当前正在使用(正打开供用户读写)的数据库,更无法除去系统数据库(msdb、model、master、tempdb)。删除数据库意味着将删除数据库中的所有对象,包括表、视图、索引等。如果数据库没有备份,则不能恢复。DROP语句可以从SQL Server中一次删除一个或多个数据库。语法格式:DROP DATABASE database_name,n 例7-6删除创建的数据库Test。DROP DATABASE Test,河北工程大学 信电学院 崔冬,Thank You!,