1.文件的逻辑结构
文件的逻辑结构是用户组织文件时可见的结构,即用户所观察到的文件组织形式。文件的逻辑结构是用户可以直接处理的数据及其结构,它独立于物理特性,又称为文件组织。
文件的逻辑结构按形式分为有结构的记录式文件和无结构的流式文件。
(1)有结构的记录式文件
有结构的记录式文件由若干记录构成。记录可按顺序编号,对文件的访问按记录号进行;也可为每个记录指定一个或一组数据项作为键,然后按键进行访问。
(2)无结构的流式文件
流式文件是指由字符流构成的文件。流式文件内的数据不组成记录,只是一串字节。对流式文件的存取需要指定起始字节和字节数。
其中记录式文件可分为:
1)顺序文件,它是由一系列记录按某种顺序排列形成的文件,其中的记录通常是定长记录,具有较快的查找速度。
2)索引文件,它为每个文件建立一个索引表,并在索引表中为每条记录建立一个表项。索引表本身是一个定长记录文件,可以实现直接存取。
3)索引顺序文件,它要为文件建立一张所以表,在索引表中,为每一组记录中的首记录设置一表项,其中含有记录的键值和指向该记录的指针。
2.文件的物理结构
文件的物理结构也称为文件的存储结构,它是指文件在外部存储时的组织结构。文件的物理结构通常划分为大小相等的物理块,也称为物理记录。它是文件分配及传输信息的基本单位。物理记录的大小与物理设备有关,与逻辑记录的大小无关。一个物理块的大小与磁盘空间存储块的大小相等。
常见的文件物理结构有:
(1)顺序结构,是最简单的一种文件物理结构。它将一个逻辑上连续的文件信息依次存放在外存连续的物理块中,即所谓的逻辑上连续,物理上也连续。有点:管理简单、存取速度快、适合顺序访问;缺点:动态增加文件的长度难度大。
(2)链接结构,将文件存放在外存的若干物理块中,不要求这些物理块一定连续。其中每一个物理块中设置有一个指针,用于指向下一个物理块的位置,从而使得存放同一个文件的物理块链接在一起。优点:文件的长度可以动态增长,增加和删除记录容易,外存的利用率高;缺点:随机访问效率低。
(3)索引结构,将文件存放在外存的若干物理块中,并为每个文件建立一个索引表,索引表中的每个表项存放文件信息的逻辑块号与之对应的物理块号。优点:既适合顺序访问,又适合随机访问,应用范围广泛;缺点:当文件的记录很多时,索引表就会很庞大,从而占用较多的存储资源。
3.数据元素的表示
在存储系统中,对于一个元组的各个具体属性值是用不同字段(称为数据项)表示的。数据项是最基本的数据元素,存储系统通常会简单地给它分配若干合适的字节序列。
4.SQL server数据库的存储结构
(1)数据库文件,一个数据库至少应该包含一个数据库文件和一个日志文件。
1)数据文件。数据文件包含数据和对象,例如表、索引、存储过程和视图。数据文件又分为主数据文件和辅助数据文件。
主数据文件:主数据文件是数据库的起点,指向数据库中的其他文件。每个数据库都有一个主数据文件。主数据文件的推荐文件扩展名是.mdf。
辅助数据文件:除主数据文件以外的所有其他数据文件都是辅助数据文件。
2)日志文件。日志文件包含用于恢复数据库的所有日志信息。每个数据库必须至少有一个日志文件,也可以有多个,文件扩展名为.ldf。
(2)数据库文件组
为了便于分配和管理,SQL server允许将多个文件归纳为同一组,并赋予此组一个名称,这就是文件组。数据库文件组不是根据数据库的物理存储位置来区分,而是根据数据文件内要存储的对象来区分。
1)文件组类型。
主文件组:主文件组包含主数据文件和任何没有明确分配给其他文件组的其他文件。
用户定义文件组:用户定义文件组是通过在create database或alter database语句中使用filegroup关键字指定的任意文件组。
一个数据库只有一个文件组,这个主文件在数据库建立时就已经存在。
2)文件组的数据存储方式。文件组数据的存储方式是平均分配,即分散存放于各个数据文件中,同时使用所有的数据文件,而不是依次写到一个数据文件中,等数据文件填满后再写到另一个数据文件。
注意:
①日志文件不包括在文件组内。日志空间与数据空间分开管理。
②一个文件不可以是多个文件组的成员。
③每个数据库中均有一个文件组被指定为默认文件组。