资源描述
*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,第5章-数据库的概念和操作(1),5.1,数据库基本概念,数据库是,SQL Server 2008,存放表和索引等数据库对象的逻辑实体。数据库的存储结构分为,逻辑存储结构,和,物理存储结构,两种。,5.1.1,物理数据库,数据库的物理存储结构指的是保存数据库各种逻辑对象的物理,文件,是,如何,在磁盘上,存储,的,数据库在磁盘上是,以文件为单位,存储的,,SQL Server 2008,将数据库映射为,一组操作系统文件,。数据库中所有的数据和对象都存储在操作系统文件中。,1.SQL Server 2008,的数据库文件的类型,SQL Server 2008,的数据库具有三种类型的文件:,(1),主数据文件:,主数据文件是数据库的起点,指向数据库中的其他文件。,每个数据库,都有且,只有一个,主数据文件。主数据文件的推荐文件扩展名是,.mdf,。,(2),辅助数据文件:,除主数据文件以外,的,所有,其他,数据文件,都是辅助数据文件。某些数据库可能不含有任何辅助数据文件,而有些数据库则含有多个辅助数据文件。辅助数据文件的推荐文件扩展名是,.ndf,。(可无,可有多个),(3),事务日志文件:,日志文件包含着,用于恢复数据库,的所有,日志信息,。,每个数据库,必须,至少有一个,日志文件,当然也可以有多个。,SQL Server 2008,事务日志采用提前写入的方式,即对数据库的修改先写入事务日志中,然后再写入数据库。日志文件的推荐文件扩展名是,.ldf,。,2.,数据库文件组,为了便于管理和分配数据而将文件组织在一起,通常可以为一个数据库创建一个文件组(,File Group,)。,(1),主文件组,(,primary file group,):主文件组包含主要数据库文件和任何没有明确指派给其他文件组的其他文件。数据库的,系统表都包含在主文件组,中。,(2),用户定义文件组,(,user_defined group,):用户定义文件组是在,CREATE DATABASE,或,ALTER DATABASE,语句中,使用,FILEGROUP,关键字指定的文件组。,文件组应用的,规则,:,(1),一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。,(2),主文件组,中包含了所有的系统表。当建立数据库时,主文件组,包括,主数据库文件,和,未指定组的其它文件。,(3),在创建数据库对象时如果没有指定将其放在哪一个文件组中,就会将它放在默认文件组中。如果没有指定默认文件组,则主文件组为默认文件组。,(4),事务日志文件,不属于,任何文件组。,5.1.2,逻辑数据库,数据库是存储数据的容器,即数据库是一个存放数据的表和支持这些数据的存储、检索、安全性和完整性的,逻辑成分,所组成的集合。,组成数据库的逻辑成分称为,数据库对象,,,SQL Server 2008,中的逻辑对象主要包括数据表、视图、同义词、存储过程、函数、触发器、规则,以及用户、角色、架构等。,每个,SQL Server,都包含两种类型的数据库:,系统数据库,和,用户数据库,。,系统数据库,存储有关,SQL Server,的信息,,,SQL Server,使用系统数据库来,管理系统,,例如,下面将要介绍的,master,数据库、,model,数据库、,msdb,数据库和,tempdb,数据库。而用户数据库由用户来建立,例如,教学库数据库。,SQL Server,可以包含一个或多个用户数据库。,1,master,数据库,顾名思义,,master,数据库是,SQL Server 2008,中的主数据库,它是,最重要,的系统数据库,,记录系统中所有系统级的信息。,它,管理,和,控制其他的数据库,实施,同时该数据库还保存了用于,SQL Server,管理的许多系统级信息。,master,数据库,记录所有的登录账户,和,系统配置,,它始终有一个可用的最新,master,数据库备份。,2,model,数据库,model,数据库,为用户,新创建的数据库,提供模板,,它包含了用户数据库中应该,包含的所有系统表的结构。,当用户创建数据库时,系统会自动地把,model,数据库中的内容复制到新建的用户数据库中。用户在系统中新创建的所有数据库的内容,最初都与该模板数据库具有完全相同的内容。,3,msdb,数据库,msdb,数据库供,SQL Server,代理程序调度警报作业,以及,记录操作,时使用。当很多用户在使用一个数据库时,经常会出现多个用户对同一个数据的修改而造成数据不一致的现象,或是用户对某些数据和对象的非法操作等。为了防止上述现象的发生,,SQL Server,中有一套代理程序能够按照系统管理员的设定监控上述现象的发生,及时向系统管理员发出警报。那么当代理程序调度警报作业、记录操作时,系统要用到或实时产生许多相关信息,这些信息一般存储在,msdb,数据库中。,4,tempdb,数据库,使用,SQL Server,系统时,经常会产生一些,临时表,和,临时数据库对象,等,如用户在数据库中修改表的某一行数据时,在修改数据库这一事务没有被提交的情况下,系统内就会有该数据的新、旧版本之分,往往修改后的数据表构成了临时表。所以系统要提供一个空间来存储这些临时对象。,tempdb,数据库保存所有的临时表和临时存储过程。,tempdb,数据库是全局资源,所有连接到系统的用户的临时表和存储过程都被存储在该数据库中。,5.2,数据库的操作,在,SQL Server 2008,中,用户可以自己创建数据库即用户数据库,并且可以对数据库进行修改、删除等操作。,5.2.1,创建数据库,若要创建数据库,必须确定数据库的名称、所有者、大小以及存储该数据库的文件和文件组。,在,SQL Server 2008,中创建数据库主要有两种方式:一是在,SQL Server Management Studio,中使用向导创建数据库,二是通过,查询窗口,执行,T-SQL,语句创建数据库。,1,在,SQL Server Management Studio,中创建数据库,在,SQL Server Management Studio,中创建数据库的过程如下:,(1),启动“,SQL Server Management Studio”,,在对象资源管理器窗口的“数据库”节点上右击,选择快捷菜单中的“新建数据库”命令。,(2),弹出“新建数据库”对话框,在“常规”数据页的“数据库名称”文本框中,输入要创建的数据库的名称。,其中:,SQL Server 2008,的数据库文件拥有两个名称,即,逻辑文件名,和,物理文件名。,(3),在,“常规”数据页,中数据文件“初始大小”处可以设置文件的初始大小(,MB,);单击“自动增长方式”后的按钮可设置自动增长方式和最大文件大小;单击路径后的按钮可设置文件的存放路径。,(4),在,“选项”数据页,中,设置数据库的属性选项。在“文件组”数据页中,增加或删除文件组。,【,例,5-1】,创建数据库“教学库”,主数据文件初始大小为,5MB,,增长方式是按,10%,比例自动增长;日志文件初始为,8MB,,按,1MB,增长(默认是按,10%,比例增长)。两个文件都不限制增长,存储位置都为“,FDATA”,。,2.,使用,T-SQL,语句创建数据库,在,SQL Server 2008,中可以利用,T-SQL,语句创建数据库。,T-SQL,提供的数据库创建语句为,CREATE DATABASE,,其语法格式如下:,CREATE DATABASE database_name,ON,PRIMARY ,n,n ,LOG ON,n,FOR LOAD|FOR ATTACH,:=(,NAME,=logical_file_name,FILENAME,=os_file_name,SIZE,=size,MAXSIZE,=max_size|UNLIMITED,FILEGROWTH,=growth_increment),n,说明:在,T-SQL,语言的命令格式中,用,括起来的内容表示是,可选,的;,n,表示重复前面的内容;用,括起来的内容表示在,实际编写,语句时,用,相应的内容替代,;用,括起来的内容表示是,必选,的;类似,A|B,的格式,表示,A,和,B,只能选择一个,不能同时都选。,【,例,5-2】,使用,CREATE DATABASE,创建一个新的数据库,名称为“,STUDENT1”,,其他所有参数均取默认值。实现的步骤如下:,打开,SQL Server Management Studio,,在窗口上部的工具栏的左侧找到“,新建查询,”按钮,单击“新建查询”。,这里输入下面列出的创建数据库的,T-SQL,语句:,CREATE DATABASE STUDENT1,单击工具栏中的,“,!,执行”,按钮,当系统给出的提示信息为“命令已成功完成”时,说明此数据库创建成功,.,【,例,5-3】,创建数据库名为“,STUDENT2”,的数据库,包含一个主数据文件和一个事务日志文件。主数据文件的逻辑名为“,STUDENT2_DATA”,,操作系统文件名为“,STUDENT2_DATA.MDF”,,初始容量大小为,5M,,最大容量为,20M,,文件的增长量为,20%,。事务日志文件的逻辑文件名为“,STUDENT2_LOG”,,物理文件名为“,STUDENT2_LOG.LDF”,,初始容量大小为,5M,,最大容量为,10M,,文件增长量为,2M,。数据文件与事务日志文件都放在,F,盘根目录。,CREATE DATABASE STUDENT,2,ON,PRIMARY,(NAME=STUDENT2_DATA,FILENAME=F:DATASTUDENT2_DATA.MDF,SIZE=5MB,MAXSIZE=20MB,FILEGROWTH=20%),LOG ON,(NAME=STUDENT2_LOG,FILENAME=F:DATA STUDENT2_LOG.LDF,SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=2MB),【,例,5-4】,创建一个指定多个数据文件和日志文件的数据库。该数据库名称为,STUDENTS,,有,1,个,5MB,和,1,个,10MB,的数据文件和,2,个,5MB,的事务日志文件。数据文件逻辑名称为,STUDENTS1,和,STUDENTS2,,物理文件名为,STUDENTS1.mdf,和,STUDENTS2.ndf,。主文件是,STUDENTS1,,由,PRIMARY,指定,辅助数据文件,STUDENTS2,属于新建文件组,FG1,,两个数据文件的最大大小分别为无限大和,100MB,,增长速度分别为,10%,和,1MB,。事务日志文件的逻辑名为,STUDENTSLOG1,和,STUDENTSLOG2,,物理文件名为,STUDENTSLOG1.ldf,和,STUDENTSLOG2.ldf,,最大大小均为,50MB,,文件增长速度为,1MB,。要求数据库文件和日志文件的物理文件都存放在,E,盘的,DATA,文件夹下。,CREATE DATABASE STUDENTS,ON,(,省略了,PRIMARY,关键字,),(NAME=STUDENTS1,FILENAME=E:DATASTUDENTS1.MDF,SIZE=5,MAXSIZE=unlimited,FILEGROWTH=10%),FILEGROUP,FG1,(,用户自定义文件组,),(NAME=STUDENTS2,FILENAME=E:DATASTUDENTS2.NDF,SIZE=10,MAXSIZE=100,FILEGROWTH=1),LOG ON,(NAME=STUDENTSLOG1,FILENAME=E:DATASTUDENTSLOG1.LDF,SIZE=5,MAXSIZE=50,FILEGROWTH=1),(NAME=STUDENTSLOG2,FILENAME=E:DATASTUDENTSLOG2.LDF,SIZE=5,MAXSIZE=50,FILEGROWTH=1),5.2.2,修改数据库,建好数据库后,可以对其进行修改。修改数据库包括增减数据文件和日志文件、修改文件属性(包括更改文件名和文件大小)、修改数据库选项等。,1.,增加数据库空间,(1),增加已有数据库文件的大小,在,SQL Server Management Studio,的“对象资源管理器”窗口中展开“数据库”右键单击要修改的数据库的名称,在快捷菜单中选择“属性”,打开数据库属性窗口,选择“文件”属性页,修改“初始大小”选项,“自动增长”中的“文件增长”和“最大文件大小”选项。,用,T-SQL,语句增加已有数据库文件的大小,,ALTER,DATABASE,数据库名,MODIFY,FILE,(NAME=,逻辑文件名,SIZE=,文件大小,MAXSIZE=,增长限制,),【,例,5-5】,为,STUDENT2,数据库增加容量,原来数据库文件,STUDENT2_DATA,的初始分配空间为,5M,,现在将,STUDENT2_DATA,的分配空间增加至,20M,。,ALTER,DATABASE,STUDENT2,MODIFY FILE,(NAME=STUDENT2_DATA,SIZE=20MB),(2),增加数据库文件,在,SQL Server Management Studio,中,选择数据库属性窗口中的“文件”属性页,单击“添加”按钮,为新的数据库文件指定逻辑文件名、初始大小、文件增长方式等属性,再单击“确定”按钮即可完成增加数据库文件数目的操作。,用,T-SQL,语句增加数据库文件的数目:,ALTER,DATABASE,数据库名,ADD FILE|ADD LOG FILE,(NAME=,逻辑文件名,FILE=,物理文件名,SIZE=,文件大小,MAXSIZE=,增长限制,),【,例,5-6】,为数据库,STUDENT2,增加数据文件,STUDENT2_DATA1,,初始大小,10M,,最大,50M,,按照,5%,增长。,ALTER DATABASE,STUDENT2,ADD FILE,(NAME=STUDENT2_DATA1,,,FILENAME=F:DATASTUDENT2_DATA1.NDF,SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5%),2.,缩减已有数据库文件的大小,数据库文件大小可以缩减,具体步骤如下:,在,SQL Server Management Studio,的“对象资源管理器”窗口的数据库名上右击,选择快捷菜单中的“任务”“收缩”“数据库”,在出现的“收缩数据库”对话框中,保持默认设置,单击“确定”按钮,数据库收缩完毕。,如果要收缩特定的数据文件或日志文件,选择快捷菜单中的“任务”“收缩”“文件”。,数据库的自动收缩可以在数据库的属性中“选项”选项页面中设置,只要将选项中的“自动收缩”设为“,True”,即可。,注意:为了避免存储空间的浪费,可以进行数据库的手动收缩或设置自动收缩。但是,无论怎么收缩,数据库的大小也,不会小于其初始大小,,所以创建数据库时,初始大小的选择应尽可能合理。,3.,删除数据库文件,在,SQL Server Management Studio,中选择数据库属性窗口中的“文件”属性页,指定要删除的文件,单击“删除”按钮就可以删除对应的文件,从而缩减了数据库的空间。,使用,ALTER DATABASE,的,REMOVE FILE,子句,可以删除指定的文件。语法格式如下:,ALTER DATABASE,数据库名,REMOVE FILE,逻辑文件名,【,例,5-7】,将数据库,STUDENT2,中增加的数据文件,STUDENT2_DATA1,删除。,ALTER DATABASE STUDENT2,REMOVE FILE STUDENT2_DATA1,4.,数据库更名,数据库建好后,可以更改其名称。在重命名数据库之前,应该确保没有用户正在使用该数据库。,常用更名方法有两种:,方法一:在,SQL Server Management Studio,中选中此数据库,右击鼠标,在弹出的快捷菜单中选择“重命名”。,方法二:在查询窗口执行系统存储过程,sp_renamedb,更改数据库的名称。,系统存储过程,sp_renamedb,语法如下:,sp_renamedb dbname=old_name,newname=new_name,【,例,5-8】,将已存在的数据库,STUDENT2,重命名为,STUDENT_BACK,。,sp_renamedb STUDENT2,STUDENT_BACK,5.2.3,删除数据库,不再使用的数据库可以删除,删除数据库的方法有:,(1),使用,SQL Server Management Studio,删除数据库,打开,SQL Server Management Studio,,选择“数据库”,右击要删除的数据库,在弹出的快捷菜单中选择“删除”命令,在随后出现的“删除对象”对话框中单击“确定”按钮,即可完成对指定数据库的删除操作。,(2),使用,T-SQL,中,DROP DATABASE,语句删除数据库,语法格式如下:,DROP DATABASE,数据库名,【,例,5-9】,删除已创建的数据库,STUDENTS,。,DROP DATABASE STUDENTS,说明:,用户,只能,根据自己的权限删除用户数据库;,不能,删除当前正在使用(正打开供用户读写)的数据库;,不能,删除系统数据库(,msdb,、,model,、,master,、,tempdb,)。,此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢,
展开阅读全文