《第3章数据库及表的操作剖析》由会员分享,可在线阅读,更多相关《第3章数据库及表的操作剖析(84页珍藏版)》请在金锄头文库上搜索。
1、第3章 数据库及表的操作,3.1 数据库简介 3.2 创建及修改数据库 3.3 管理数据库表 3.4 数据完整性规则,第3章数据库及表的操作,3.1 数据库简介,SQL Server 2005的数据库包含表、视图、索引存储过程和触发器等对象。数据库提供对这些对象的管理。在对象资源管理器中,展开数据库树状菜单,可以看到当前系统中所建立的数据库,操作如图3.1所示。,图3.1 数据库逻辑组成,3.1 数据库简介,SQL Server 2005包含以下系统数据库: 1master库 2model库 3msdb库 4temp库,3.1 数据库简介,master库,在SQL Server 2005中,m
2、aster库用来记录与数据库有关的系统信息,包括登陆信息、系统配置、数据库错误信息、SQL Server初始化信息和系统中其他系统数据库和用户数据库的相关信息,包括其主文件的存放位置等。因此在master库内不能建立索引,而且对于master库的任何修改都可能影响到系统的运行。,3.1 数据库简介,model库,Model数据库是SQL Server 2005中的模板数据库,Model数据库包含有19个系统表和一些视图,其中包含的各个系统表为每个用户数据库所共享。创建一个用户数据库时,系统会将Model数据库中的内容复制到新建的数据库中去,可以说,任何由用户创建的数据库其实就是model库的副
3、本。,3.1 数据库简介,msdb数据库供SQL Server代理程序调度警报和作业以及记录各种操作,同时存储了所有备份历史。SQL Server Agent可能会使用这个库。,msdb库,3.1 数据库简介,Tempdb数据库用作系统的临时存储空间,其主要作用有:存储用户建立的临时表和临时存储过程;存储用户说明的全局变量值;为数据排序创建临时表;存储用户利用游标说明所筛选出来的数据。当退出SQL Server时,用户在Tempdb数据库中建立的所有对象都将被删除。每次SQL Server启动时Tempdb数据库都将被重建,回复到系统设定的初始状态,所以永远不要在tempdb数据库建立需要永久
4、保存的表。,temp库,3.2 创建及修改数据库,1文件与文件组 在SQL Server中数据库是由数据库文件和事务日志文件组成的。一个数据库至少应包含一个数据库文件和一个事务日志文件。,3.2.1 创建数据库,3.2 创建及修改数据库,(1)数据库文件 数据库文件是存放数据库数据和数据库对象的文件。一个数据库可以有一个或多个数据库文件,一个数据库文件只属于一个数据库。当有多个数据库文件时,有一个文件被定义为主数据库文件,扩展名为mdf,它用来存储数据库的启动信息,主文件还用于存储部分或全部数据,每个数据库只能有一个主数据库文件。其他数据库文件被称为次数据库文件,扩展名为ndf,用来存储那些不
5、能存储在主数据库文件中的数据。如果主数据库文件足够大,能够容纳数据库中的所有数据,则该数据库不需要次数据库文件。但有些数据库可能非常大,因此需要多个次数据库文件,或可在不同的硬盘中存储次数据库文件,这样可以同时对几个硬盘做数据存取,提高了数据处理的效率。对于服务器型的计算机尤为有用。,3.2 创建及修改数据库,(2)事务日志文件 事务日志文件包含用于恢复数据库的日志信息。一个数据库可以有一个或多个事务日志文件。 SQL Server中采用提前写方式的事务,即对数据库的修改先写入事务日志中,再写入数据库。其具体操作是,系统先将更改操作写入事务日志中,再更改存储在计算机缓存中的数据,为了提高执行效
6、率,此更改不会立即写到硬盘中的数据库,而是由系统以固定的时间间隔将更改过的数据批量写入硬盘。SQL Server有个特点,它在执行数据更改时会设置一个开始点和一个结束点,如果尚未到达结束点就因某种原因使操作中断,则在SQL Server重新启动时会自动恢复已修改的数据,使其返回未被修改的状态。由此可见,当数据库破坏时可以用事务日志恢复数据库内容。,3.2 创建及修改数据库,(3)文件组 文件组是将多个数据库文件集合起来形成的一个整体。每个文件组有一个组名。与数据库文件一样,文件组也分为主文件组和次文件组。一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。主文件组中包含了所有的系
7、统表。当建立数据库时,主文件组包括主数据库文件和未指定组的其他文件。在次文件组中可以指定一个默认文件组,那么在创建数据库对象时如果没有指定将其放在哪一个文件组中,就会将它放在默认文件组中。如果没有指定默认文件组,则主文件组为默认文件组。但事务日志文件不属于任何文件组。,3.2 创建及修改数据库,2创建数据库 【例3.1】在对象资源管理器中建立ShowDB数据库,3.2 创建及修改数据库, 登陆到Microsoft SQL Server Management Studio。 在对象资源管理器中的数据库项上单击右键,选择“新建数据库(N)”, 在选择“新建数据库(N)”选项后,会出现新建数据库窗口
8、。用户需要输入新建数据库所需的各项参数,如数据库名称、所有者和文件路径等,如果用户不需要更改指定特殊的文件路径,可以使用系统地默认值。,3.2 创建及修改数据库, 系统默认的数据文件大小为3M,但当存入大量数据,使数据文件超过初始设定值时,系统将按照“自动增长”一栏中设定的数值对数据文件的规模进行扩大。所以如果数据量较大,且一次写入的数据很多,则可以考虑对“自动增长”一项进行修改。 默认情况下,系统自动地使用指定的数据库名作为前缀创建主数据库文件和日志文件,例如:Show_DB.mdf和Show_DB _Log.ldf。,3.2 创建及修改数据库, 默认情况下,系统认为数据库文件只有一个,且名
9、称为用户指定的数据库名。但如果日常的数据量非常大,以致可能超过某一个硬盘分区的容量,此时,需要建立辅助数据库文件,将数据保存在不同的硬盘分区的不同数据文件中,以减轻某一个硬盘分区的压力。在“新建数据库窗口”中点击“添加”按钮,为新建的辅助数据库文件命名,如Show_DB 1.mdf 。,3.2 创建及修改数据库, 如果要修改文件的分组,可以点击文件组栏,在下拉菜单中选择合适的分组。 在“新建数据库窗口”中,选项页可以设置排序规则、恢复模式、兼容级别、恢复选项、游标选项、杂项、状态选项和自动选项等 。 在“新建数据库窗口”的“文件组选”选项页中,可以设置或添加数据库文件和文件组的属性和默认值。
10、当所有参数设置完毕后,点击“确定”按钮,就可以创建所定义的数据库。,3.2 创建及修改数据库,1修改数据库选项 【例3.2】修改ShowDB数据库的各项设置。,3.2.2 修改数据库,3.2 创建及修改数据库, 登陆到Microsoft SQL Server Management Studio,在要修改的数据库名上单击鼠标左键,在弹出的快捷菜单上选择“属性”一项。 在弹出的数据库属性窗口中,列出了该数据库之前的所有设置参数。 在数据库属性窗口左侧的选项页中,列出了可以修改和设置的一些选项。如果需要为数据库添加新的辅助数据库文,可以选择“文件”项。在该页中参数设置方式与建立数据库时的相关操作相同
11、。,3.2 创建及修改数据库, 当需要修改文件组信息时,可以选择“文件组”选项进行设置。如图3.13所示。该页中参数设置方式与建立数据库时的相关操作相同 点击“选项页”中的“选项”一栏,可以对数据库的排序规则、恢复模式、兼容级别、恢复、游标、杂项、状态和自动选项等进行重新设置 选项页中的“权限”选项可以显示当前数据库的使用权限。,3.2 创建及修改数据库, 选项页中的“扩展属性”选项中,可以添加文本,输入掩码和格式规则等,作为数据库对象或库本身的属性。 选项页中的“事务日志传送”选项可以查看当前数据库的日志传送配置信息,以供用户设置事务日志备份、辅助数据库和监视服务器。,3.2 创建及修改数据
12、库,2收缩分配给数据库的数据或事务日志空间 登陆到Microsoft SQL Server Management Studio,展开要修改的数据库所在的服务器实例。 展开“数据库”菜单,右键单击要收缩大小的数据库,指向“任务”选项,在弹出的二级菜单中选择“收缩”,然后单击“数据库”命令,打开“收缩数据库”对话框,进行相应的设置。,3.2 创建及修改数据库,3附加新数据库或分离未使用的数据库 SQL Server 2005为使用者提供了数据库的分离和附加功能,使用户能方便的将自己所建立的数据库移至其他的服务器。这里以Show_DB为例,说明附加新数据库和分离未使用的数据库的操作过程。,3.2 创
13、建及修改数据库,(1)分离数据库 分离数据库是指将某一个库从SQL Server实例中删除,但仍然将数据文件保留在计算机硬盘上。可以将这些保留文件附加到其他SQL Server实例中,甚至包括分离该数据库的服务器。 【例3.3】将Show_DB数据库从服务器分离出去。,3.2 创建及修改数据库, 登陆到Microsoft SQL Server Management Studio,展开要修改的数据库所在的服务器实例。 展开“数据库”菜单,右击Show_DB,选择“任务”中的“分离(D).”命令,打开“分离数据库”对话框。 可以根据具体情况,选择“删除连接”、“更新统计信息”和“保留全文目录”选项
14、。 点击“确定”按钮,将Show_DB从SQL Server中分离出来。 此时,回到Microsoft SQL Server Management Studio,可以从对象资源管理器中看到,Show_DB数据库已经从数据库树形菜单中消失了。,3.2 创建及修改数据库,(2)附加数据库 当将某个数据库从服务器上分离出去之后,或者需要在服务器上运行别的数据库中已建立的数据库,需要进行附加数据库的操作,而不能仅仅将数据库的文件复制到SQL Server的数据目录。附加数据库的过程如例3.4所示。 【例3.4】将例3.3中分离出去的数据库Show_DB用附加数据库的方式添加到数据库服务器内。,3.2
15、创建及修改数据库, 登陆到Microsoft SQL Server Management Studio,右键点击“数据库”,选择“附加(A).”命令,打开“附加数据库”对话框 点击“要附加的数据库”一栏下的“添加”按钮,弹出“定位数据库文件”对话框,如图3.20所示。在对话框中选择要附加的数据库文件(一般是.mdf文件),点击“确定”。 在选择了要附加的数据库文件后,在“附加数据库”对话框中会出现该数据库的文件信息。点击“确定”按钮,将Show_DB数据库附加到SQL Server中。,3.2 创建及修改数据库,当某一个数据库设计不当或用户不再使用时,可以将该数据库从服务器上删除,以释放其所占
16、用的资源。删除数据库一定要慎重,因为删除数据库后,与此数据库有关联的数据库文件和事务日志文件都会被删除,存储在系统数据库中的关于该数据库的所有信息也会被删除。 【例3.5】删除数据库Show_DB,3.2.3 删除数据库,3.2 创建及修改数据库, 登陆到Microsoft SQL Server Management Studio,展开“数据库”菜单,右键单击要删除的数据库,选择“删除(D).”命令。 在弹出的“删除对象”窗口中,对删除操作进行设置,包括“删除数据库备份和还原历史记录信息”及“关闭现有连接”选项。然后点击“确定”按钮。当系统显示成功后,Show_DB数据库便从“数据库”菜单下消失了。,3.3 管理数据库表,表是包含数据库中所有数据的数据库对象。在使用数据库的过程中,接触最多的就是数据库中的表。表是数据存储的地方,是数据库中最重要的部分。在SQL Server 2005中,数据通常存储在永久表中。表存