第章表的存储原理及性创建管理.ppt
- 文档编号:2123422
- 上传时间:2022-10-27
- 格式:PPT
- 页数:45
- 大小:485KB
第章表的存储原理及性创建管理.ppt
《第章表的存储原理及性创建管理.ppt》由会员分享,可在线阅读,更多相关《第章表的存储原理及性创建管理.ppt(45页珍藏版)》请在冰豆网上搜索。
第4章表的存储原理及完整性创建管理4.1SQLServer表的类型表的类型4.2表的存储原理表的存储原理4.3SQLServer数据类型数据类型4.4数据表的创建和管理数据表的创建和管理4.1SQLServer表的类型4.1.1SQLServer的临时表的临时表4.1.2SQLServer的系统表的系统表4.1.1SQLServer的临时表SQLServer中的数据表分为:
中的数据表分为:
永久表:
创建后一直存储在数据库文件中,直到用户永久表:
创建后一直存储在数据库文件中,直到用户删除为止。
删除为止。
临时表分两种:
临时表分两种:
局部临时表:
表名用局部临时表:
表名用#开头。
只能由创建它的用户使用,开头。
只能由创建它的用户使用,在该用户连接断开时,它被自动删除。
在该用户连接断开时,它被自动删除。
全局临时表:
表名用全局临时表:
表名用#开头。
当前所有连接用户都可开头。
当前所有连接用户都可以使用,它在最后一个会话结束时被自动删除。
以使用,它在最后一个会话结束时被自动删除。
系统根据表名前有无系统根据表名前有无#符号确定创建的是临时表还是永符号确定创建的是临时表还是永久表。
久表。
4.1.2SQLServer的系统表和系统视图系系统统表表中中的的数数据据组组成成了了SQLSQLServerServer系系统统利利用用的的数数据据字字典典,系系统统表表记记录录所所有有服服务务器器活活动动的的信信息息,是是维维护护所所有有存存储储在在其其中中的的所所有有对对象象、数数据据类类型型、约约束束、配配置置选选项项等可利用资源的相关信息。
等可利用资源的相关信息。
一些系统表和系统视图只存在于一些系统表和系统视图只存在于mastermaster数据库,它们数据库,它们包含系统级信息。
包含系统级信息。
还有一些系统表则存在于每一个数据库(包括还有一些系统表则存在于每一个数据库(包括mastermaster数据库),它们包含属于这个特定数据库的对象和资数据库),它们包含属于这个特定数据库的对象和资源的相关信息源的相关信息。
注意:
注意:
不允许使用不允许使用SQLSQL语句直接修改系统表中的内容;语句直接修改系统表中的内容;不允许编写程序直接访问系统表中的信息;如果需要不允许编写程序直接访问系统表中的信息;如果需要系统表信息,可以通过系统的存储过程和系统提供的系统表信息,可以通过系统的存储过程和系统提供的函数进行。
函数进行。
4.2表的存储原理4.2.1内部存储概述内部存储概述4.2.2数据行(记录)结构数据行(记录)结构4.2.1内部存储概述表是有关某个特定实例的数据集合,在关系数据库中处表是有关某个特定实例的数据集合,在关系数据库中处于核心地位。
于核心地位。
创建一个表,就会有一行或多行插入到用来管理这个表创建一个表,就会有一行或多行插入到用来管理这个表的多个系统表里。
至少要写信息到的多个系统表里。
至少要写信息到sysobjects、sysindexes和和syscolumns这三个系统表里,当新建的表这三个系统表里,当新建的表有外码约束时,相关的信息还会插入到有外码约束时,相关的信息还会插入到sysrefrences系统系统表里。
表里。
Sysobjects主要记录新表的基本信息,如表名、对象主要记录新表的基本信息,如表名、对象ID以以及表的所有者等等。
及表的所有者等等。
Syscolumns主要记录新表列的信息,如列名、类型和长度主要记录新表列的信息,如列名、类型和长度等。
等。
Sysindexes系统表记录包含指向新表所使用的存储空间的系统表记录包含指向新表所使用的存储空间的指针和有关新表大小的信息。
指针和有关新表大小的信息。
sysrefrences系统表里记录参照表的外键信息。
系统表里记录参照表的外键信息。
例如:
创建一个表,它在系统表中的记录信息如下图所示:
例如:
创建一个表,它在系统表中的记录信息如下图所示:
sysobjectssyscolumnssysindexes注意:
当一个新表刚创建时,在插入第一行数据之前系统不当一个新表刚创建时,在插入第一行数据之前系统不会立即为其分配存储空间,因此会立即为其分配存储空间,因此Sysindexes表中指示页表中指示页地址和预留存储空间的列将都是地址和预留存储空间的列将都是0值。
值。
如果在该表上定义了如果在该表上定义了PRIMARYKEY或或UNIQUE约束,约束,而而PRIMARYKEY或或UNIQUE约束的背后是由簇集索约束的背后是由簇集索引支持的,则该表在引支持的,则该表在Sysindexes中对应行的中对应行的indid值为值为1。
任何有非簇集索引支持的其他约束在任何有非簇集索引支持的其他约束在Sysindexes表中都表中都有一行,而且该行的有一行,而且该行的indid值在值在2到到250之间。
之间。
4.2.2数据行(记录)结构11、定长记录、定长记录在在定定长长记记录录里里,每每个个字字段段都都有有固固定定的的长长度度,而而且且字字段段数数也也是是固固定定的的。
这这种种记记录录的的字字段段能能够够连连续续存存储储,因因此此在在给给定定记记录录地地址址的的情情况况下下,借借助助系系统统目目录录里里有有关关字字段段的的长长度度信信息息就就能能计计算算出出某某个个特特殊殊字字段的的地址。
段的的地址。
22、变长记录、变长记录对对于于变变长长记记录录来来说说,一一种种可可能能的的记记录录组组织织方方式式就就是是像像定定长长记记录录一一样样连连续续地地存存放放字字段段,字字段段之之间间通通过过分分割割符符隔隔开开。
这这种种组组织织方方式式需需要扫描记录才能定位需要访问的字段。
要扫描记录才能定位需要访问的字段。
另另一一种种方方法法是是在在记记录录开开始始处处预预留留一一些些空空间间作作为为存存放放一一个个整整数数偏偏移移量量数数组组的的空空间间,数数组组中中的的第第II个个整整数数表表示示记记录录的的第第II个个字字段段的的其其始始地地址址,当当然然这这个个地地址址是是相相对对于于记记录录的的起起始始地地址址的的。
另另外外在在数数组组中中也也存存储储记记录录尾尾部部的的偏偏移移量量,这这个个偏偏移移量量用用来来识识别别最最后后一一个个字字段段的的结束位置。
结束位置。
1、SQLServer定长记录的存储首先来看最简单的情况,记录中所有字段都是定长的。
首先来看最简单的情况,记录中所有字段都是定长的。
CREATETABLEFixedCREATETABLEFixed(col1intNOTNULLcol1intNOTNULLcol2char(5)NOTNULLcol2char(5)NOTNULLcol3char(3)NULLcol3char(3)NULLcol4floatNOTNULLcol4floatNOTNULL)当这个表被创建以后,就有类似下面一个记录被插入到当这个表被创建以后,就有类似下面一个记录被插入到sysindexessysindexes系统表中:
系统表中:
idnameindidfirstminlenidnameindidfirstminlen2099048Fixed00x000000000000242099048Fixed00x00000000000024而其各个字段则会被插入到而其各个字段则会被插入到syscolumnssyscolumns系统表中:
系统表中:
namecolidxtypelengthxoffsetnamecolidxtypelengthxoffsetcol115644col115644col2217558col2217558col33175313col33175313col4462816col44628161、SQLServer定长记录的存储当往当往FixedFixed表中插入一个记录数据时,例如:
表中插入一个记录数据时,例如:
INSERTINTOFixedVALUES(123,INSERTINTOFixedVALUES(123,ABCDABCD,NULL,45.5),NULL,45.5)FixedFixed表在表在sysindexessysindexes系统表里的内容就会发生变化:
系统表里的内容就会发生变化:
idnameindidfirstminlenidnameindidfirstminlen2099048Fixed00x720000000000242099048Fixed00x72000000000024这说明在插入了一记录数据之后,这说明在插入了一记录数据之后,SQLServerSQLServer就为就为FixedFixed表分配了表分配了一个数据页。
一个数据页。
FixedFixed表只包含四个定长字段,表只包含四个定长字段,sysindexessysindexes表中表中minlenminlen字段的值表示记录的最小长度,该长度恰好是字段的值表示记录的最小长度,该长度恰好是syscolumnssyscolumns表中表示字段长度的表中表示字段长度的lengthlength的数字之和再加上的数字之和再加上44个字节。
其中额外个字节。
其中额外的的44个字节是用于记录字段数目的两个字节和表示字段中个字节是用于记录字段数目的两个字节和表示字段中NULLNULL的字的字节数。
节数。
第一个字节是状态位第一个字节是状态位AA,它的值是,它的值是0x100x10,表示只有位,表示只有位44是是11,其他位,其他位都是都是00,因此该记录没有变长字段(如果位,因此该记录没有变长字段(如果位55为为11说明存在变长字段)说明存在变长字段)。
最最后后一一个个字字节节是是NULLNULL位位图图,其其值值44意意味味只只有有第第三三位位是是11,表表示示第第三三个个字段是字段是NULLNULL。
11、SQLServerSQLServer定长记录的存储定长记录的存储2、SQLServer变长记录的存储CREATETABLEVariableCREATETABLEVariable(col1char(3)NOTNULLcol1char(3)NOTNULLcol2varchar(15)NOTNULLcol2varchar(15)NOTNULLcol3varchar(5)NULLcol3varchar(5)NULLcol4varchar(10)NOTNULLcol4varchar(10)NOTNULLcol5smallintNOTNULLcol5smallintNOTNULL)当这个表被创建以后,就有类似下面一个记录被插入到当这个表被创建以后,就有类似下面一个记录被插入到sysindexessysindexes系统表中:
系统表中:
idnameindidfirstminlenidnameindidfirstminlen18099105Variable00x000000000000918099105Variable00x0000000000009而其各个字段则会被插入到而其各个字段则会被插入到syscolumnssyscolumns系统表中:
系统表中:
namecolidxtypelengthxoffsetnamecolidxtypelengthxoffsetcol1117534col1117534col2216715-1col2216715-1col331675-1col331675-1col4416710-1col4416710-1col555227col5552272、SQLServer变长记录的存储当往当往
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第章表 存储 原理 创建 管理