guo第4章表的存储原理及完整性创建管理.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《guo第4章表的存储原理及完整性创建管理.ppt》由会员分享,可在线阅读,更多相关《guo第4章表的存储原理及完整性创建管理.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 4.1 SQL Server表的类型表的类型 4.2 表的存储原理表的存储原理 4.3 SQL Server数据类型数据类型 4.4 数据表的创建和管理数据表的创建和管理 1计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.1 SQL Server表的类型表的类型 4.1.1 SQL Server
2、的临时表的临时表 4.1.2 SQL Server的系统表的系统表 2计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.1.1 SQL Server的临时表的临时表SQL Server中的数据表分为:中的数据表分为:永久表:创建后一直存储在数据库文件中,直到用户永久表:创建后一直存储在数据库文件中,直到用户删除为止。删除为止。临时表临时表 临时表分两种:临时表分两种:局部临时表:表名用局部临时表:表名用#开头。只能由创建它的用户使用,开头。只能由创建它的用户使用,在该用户连接断开时,它
3、被自动删除。在该用户连接断开时,它被自动删除。全局临时表:表名用全局临时表:表名用#开头。当前所有连接用户都可开头。当前所有连接用户都可以使用,它在最后一个会话结束时被自动删除。以使用,它在最后一个会话结束时被自动删除。系统根据表名前有无系统根据表名前有无#符号确定创建的是临时表还是永符号确定创建的是临时表还是永久表。久表。3计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.2.2 SQL Server的系统表的系统表 一一些些系系统统表表只只存存在在于于mastermaster数数据
4、据库库,它它们们包包含含系系统统级级信信息息。在在SQL SQL Server Server 20002000里里共共有有1818个个表表,在在SQL SQL Server 2005Server 2005里对应里对应2020个视图。个视图。而一些系统表则存在于每一个数据库(包括而一些系统表则存在于每一个数据库(包括mastermaster数据库),它们包含属于这个特定数据库的对象和资数据库),它们包含属于这个特定数据库的对象和资源的相关信息。在源的相关信息。在SQL Server 2000里共有里共有17个表,在个表,在SQL Server 2005里对应里对应22个视图。个视图。注意:注意:
5、不允许使用不允许使用SQLSQL语句直接修改系统表中的内语句直接修改系统表中的内容;不允许编写程序直接访问系统表中的信息;如果容;不允许编写程序直接访问系统表中的信息;如果需要系统表信息,可以通过系统的存储过程和系统提需要系统表信息,可以通过系统的存储过程和系统提供的函数进行。供的函数进行。4计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.2 表的存储原理表的存储原理4.2.1 内部存储概述内部存储概述 4.2.2 SQL ServerSQL Server数据记录结构数据记录结构 5
6、计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.1.1 内部存储概述内部存储概述 表表是有关某个特定实例的数据集合,在关系数据库中处是有关某个特定实例的数据集合,在关系数据库中处于核心地位。于核心地位。创建一个表,就会有一行或多行插入到用来管理这个表创建一个表,就会有一行或多行插入到用来管理这个表的多个系统表里。至少要写信息到的多个系统表里。至少要写信息到sysobjects、sysindexes和和syscolumns这三个系统表里,当新建的表这三个系统表里,当新建的表有外码约束时
7、,相关的信息还会插入到有外码约束时,相关的信息还会插入到sysrefrences系统系统表里。表里。6计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005 Sysobjects主要记录新表的基本信息,如表名、对象主要记录新表的基本信息,如表名、对象ID以以及表的所有者等等。及表的所有者等等。Syscolumns主要记录新表列的信息,如列名、类型和长度主要记录新表列的信息,如列名、类型和长度等。等。Sysindexes系统表记录包含指向新表所使用的存储空间的系统表记录包含指向新表所使用的存储空
8、间的指针和有关新表大小的信息。指针和有关新表大小的信息。sysrefrences系统表里记录参照表的外键信息。系统表里记录参照表的外键信息。例如:创建一个表,它在系统表中的记录信息如下图所示:例如:创建一个表,它在系统表中的记录信息如下图所示:7计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005CREATE TABLE CREATE TABLE 课程表课程表(课号课号 CHAR(6)NOT NULL,CHAR(6)NOT NULL,课名课名 CHAR(20)NOT NULL,CHAR(20
9、)NOT NULL,教材名称教材名称 CHAR(20)NULL,CHAR(20)NULL,编著者编著者 CHAR(10)NULL,CHAR(10)NULL,出版社出版社 CHAR(20)NULL,CHAR(20)NULL,版号版号 CHAR(15)NULL,CHAR(15)NULL,定价定价 MONEY NULLMONEY NULL,PRIMARY KEY(PRIMARY KEY(课号课号)8计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005注意:注意:当一个新表刚创建时,在插入第一行数据
10、之前系统不当一个新表刚创建时,在插入第一行数据之前系统不会立即为其分配存储空间,因此会立即为其分配存储空间,因此Sysindexes表中指示页表中指示页地址和预留存储空间的列将都是地址和预留存储空间的列将都是0值。值。如果在该表上定义了如果在该表上定义了PRIMARY KEY或或UNIQUE约束,约束,而而PRIMARY KEY或或UNIQUE约束的背后是由簇集索约束的背后是由簇集索引支持的,则该表在引支持的,则该表在Sysindexes中对应行的中对应行的indid值为值为1。任何有非簇集索引支持的其他约束在任何有非簇集索引支持的其他约束在Sysindexes表中都表中都有一行,而且该行的有
11、一行,而且该行的indid值在值在2到到250之间。之间。9计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.2.2 数据行(记录)结构数据行(记录)结构 在在 SQL Server 中,数据存储的基本单位是中,数据存储的基本单位是页页。紧跟着页头的就是存储表的真正数据行区域。单个数据紧跟着页头的就是存储表的真正数据行区域。单个数据行的最大长度是行的最大长度是8060字节。字节。数据行不能跨页存储(文本和图像例外)。页内数据行数据行不能跨页存储(文本和图像例外)。页内数据行的多少依赖于
12、表的结构和要存储的数据。的多少依赖于表的结构和要存储的数据。如果一个表的所有列都是定长,那么该表在每一页上存如果一个表的所有列都是定长,那么该表在每一页上存储相同数目的行。储相同数目的行。如果一个表里有变长列,那么该表总是在每一页上存储如果一个表里有变长列,那么该表总是在每一页上存储尽可能多的行。尽可能多的行。10计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20054.2.2 数据行(记录)结构数据行(记录)结构1 1、定长记录、定长记录在在定定长长记记录录里里,每每个个字字段段都都有有固固
13、定定的的长长度度,而而且且字字段段数数也也是是固固定定的的。这这种种记记录录的的字字段段能能够够连连续续存存储储,因因此此在在给给定定记记录录地地址址的的情情况况下下,借借助助系系统统目目录录里里有有关关字字段段的的长长度度信信息息就就能能计计算算出出某某个个特特殊殊字字段的的地址。段的的地址。2 2、变长记录、变长记录对对于于变变长长记记录录来来说说,一一种种可可能能的的记记录录组组织织方方式式就就是是像像定定长长记记录录一一样样连连续续地地存存放放字字段段,字字段段之之间间通通过过分分割割符符隔隔开开。这这种种组组织织方方式式需需要扫描记录才能定位需要访问的字段。要扫描记录才能定位需要访问
14、的字段。另另一一种种方方法法是是在在记记录录开开始始处处预预留留一一些些空空间间作作为为存存放放一一个个整整数数偏偏移移量量数数组组的的空空间间,数数组组中中的的第第I I个个整整数数表表示示记记录录的的第第I I个个字字段段的的其其始始地地址址,当当然然这这个个地地址址是是相相对对于于记记录录的的起起始始地地址址的的。另另外外在在数数组组中中也也存存储储记记录录尾尾部部的的偏偏移移量量,这这个个偏偏移移量量用用来来识识别别最最后后一一个个字字段段的的结束位置。结束位置。11计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数
15、据库 SQL Server 20051 1、SQL ServerSQL Server定长记录的存储定长记录的存储首先来看最简单的情况,记录中所有字段都是定长的。首先来看最简单的情况,记录中所有字段都是定长的。CREATE TABLE FixedCREATE TABLE Fixed(col1 col1 intint NOT NULL NOT NULLcol2 char(5)NOT NULLcol2 char(5)NOT NULLcol3 char(3)NULLcol3 char(3)NULLcol4 float NOT NULLcol4 float NOT NULL)当这个表被创建以后,就有类似
16、下面一个记录被插入到当这个表被创建以后,就有类似下面一个记录被插入到sysindexessysindexes系统表中:系统表中:id name id name indidindid first first minlenminlen2099048 Fixed 0 0 x000000000000 242099048 Fixed 0 0 x000000000000 24而其各个字段则会被插入到而其各个字段则会被插入到syscolumnssyscolumns系统表中:系统表中:name name colidcolid xtypextype length length xoffsetxoffsetcol
17、1 1 56 4 4col1 1 56 4 4col2 2 175 5 8col2 2 175 5 8col3 3 175 3 13col3 3 175 3 13col4 4 62 8 16col4 4 62 8 1612计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20051 1、SQL ServerSQL Server定长记录的存储定长记录的存储当往当往FixedFixed表中插入一个记录数据时,例如:表中插入一个记录数据时,例如:INSERT INTO Fixed VALUES(123,
18、ABCD,NULL,45.5)INSERT INTO Fixed VALUES(123,ABCD,NULL,45.5)FixedFixed表在表在sysindexessysindexes系统表里的内容就会发生变化:系统表里的内容就会发生变化:id name id name indidindid first first minlenminlen2099048 Fixed 0 0 x720000000000 242099048 Fixed 0 0 x720000000000 24这说明在插入了一记录数据之后,这说明在插入了一记录数据之后,SQL ServerSQL Server就为就为FixedF
19、ixed表分配了表分配了一个数据页。一个数据页。FixedFixed表只包含四个定长字段,表只包含四个定长字段,sysindexessysindexes表中表中minlenminlen字段的值表示记录的最小长度,该长度恰好是字段的值表示记录的最小长度,该长度恰好是syscolumnssyscolumns表中表示字段长度的表中表示字段长度的lengthlength的数字之和再加上的数字之和再加上4 4个字节。其中额外个字节。其中额外的的4 4个字节是用于记录字段数目的两个字节和表示字段中个字节是用于记录字段数目的两个字节和表示字段中NULLNULL的字的字节数。节数。13计算机学院计算机学院 郭
20、占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 2005第一个字节是状态位第一个字节是状态位A A,它的值是它的值是0 x100 x10,表示只有位表示只有位4 4是是1 1,其他位,其他位都是都是0 0,因此该记录没有变长字段(如果位,因此该记录没有变长字段(如果位5 5为为1 1说明存在变长字段)说明存在变长字段)。最最后后一一个个字字节节是是NULLNULL位位图图,其其值值4 4意意味味只只有有第第三三位位是是1 1,表表示示第第三三个个字段是字段是NULLNULL。1 1、SQL ServerSQL Serv
21、er定长记录的存储定长记录的存储14计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20052 2、SQL ServerSQL Server变长记录的存储变长记录的存储 CREATE TABLE VariableCREATE TABLE Variable(col1 char(3)NOT NULLcol1 char(3)NOT NULLcol2 varchar(15)NOT NULLcol2 varchar(15)NOT NULLcol3 varchar(5)NULLcol3 varchar(5)
22、NULLcol4 varchar(10)NOT NULLcol4 varchar(10)NOT NULLcol5 col5 smallintsmallint NOT NULL NOT NULL)当这个表被创建以后,就有类似下面一个记录被插入到当这个表被创建以后,就有类似下面一个记录被插入到sysindexessysindexes系统表中:系统表中:id name id name indidindid first first minlenminlen18099105 Variable 0 0 x000000000000 918099105 Variable 0 0 x000000000000 9
23、而其各个字段则会被插入到而其各个字段则会被插入到syscolumnssyscolumns系统表中:系统表中:name name colidcolid xtypextype length length xoffsetxoffsetcol1 1 175 3 4col1 1 175 3 4col2 2 167 15 -1col2 2 167 15 -1col3 3 167 5 -1col3 3 167 5 -1col4 4 167 10 -1col4 4 167 10 -1col5 5 52 2 7col5 5 52 2 715计算机学院计算机学院 郭占龙郭占龙第第4章章 表的存储原理及完整性创建管
24、理表的存储原理及完整性创建管理 大型数据库大型数据库 SQL Server 20052 2、SQL ServerSQL Server变长记录的存储变长记录的存储当往当往VariableVariable表中插入一个记录数据时,例如:表中插入一个记录数据时,例如:INSERT INSERT INTO INTO Variable Variable VALUES(xyz,ABCDe,NULLVALUES(xyz,ABCDe,NULL,123,999)123,999)VariableVariable表在表在sysindexessysindexes系统表里的内容就会发生变化:系统表里的内容就会发生变化:i
25、d name id name indidindid first first minlenminlen18099105 Variable 0 0 x880000000000 918099105 Variable 0 0 x880000000000 9定长字段的数据位于记录中由定长字段的数据位于记录中由syscolumnssyscolumns的的xoffsetxoffset值指定的字节值指定的字节偏移量所在的位置,即偏移量所在的位置,即col1col1起始于字节偏移量起始于字节偏移量4 4的位置,而的位置,而col5col5起起始于字节偏移量始于字节偏移量7 7的位置。的位置。16计算机学院计算机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- guo 存储 原理 完整性 创建 管理
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内