数据如何存储在SQL Server中?

时间:2009-05-14 18:20:34

标签: sql sql-server-2008

如何将数据存储在SQL Server中?

6 个答案:

答案 0 :(得分:22)

这个维基百科article描述得相当好。

以下是与数据存储相关的子集:

  

数据存储的主要单位   数据存储是一个数据库,它是一个   带有类型的表的集合   列。 SQL Server支持不同   数据类型,包括主要类型   例如Integer,Float,Decimal,Char   (包括字符串),Varchar   (可变长度字符串),   二进制(用于非结构化的blob)   数据),文本(用于文本数据)之间   其他。它还允许用户定义   要定义的复合类型(UDT)   和使用。 SQL Server也使服务器   统计数据可用作虚拟表   和视图(称为动态管理   观点或DMV)。数据库也可以   包含其他对象,包括视图,   存储过程,索引和   约束,除了表格,   以及事务日志。一个SQL   服务器数据库可以包含最大值   231个对象,可以跨越多个   具有最大文件的操作系统级文件   大小为220 TB。中的数据   数据库存储在主数据中   扩展名为.mdf的文件。   辅助数据文件,标识为   .ndf扩展名,用于存储   可选元数据。日志文件是   用.ldf标识   扩展

     

分配给数据库的存储空间   分为顺序编号   页面,每个大小为8 KB。一页是   SQL Server的I / O基本单元   操作。页面标有a   存储元数据的96字节标头   关于包括页面的页面   数字,页面类型,自由空间   页面和对象的ID   拥有它。页面类型定义数据   包含在页面中 - 存储在中的数据   数据库,索引,分配图   它包含有关如何的信息   页面分配给表和   索引,更改持有的地图   有关所做更改的信息   自上次备份以来的其他页面或   记录或包含大型数据类型   如图像或文字。而页面是   I / O操作的基本单元,   空间实际上是按照管理的   由8页组成的范围。一个   数据库对象可以跨越所有8   范围内的页面(“统一范围”)   或分享最多7个   对象(“混合范围”)。一排   数据库表不能超过   一页,因此限制为8 KB   尺寸。但是,如果数据超过8   KB和行包含Varchar或   Varbinary数据,那些数据   列被移动到新页面(或   可能是一系列页面,称为   分配单位)并替换为   指向数据的指针。

     

对于表的物理存储,它   行分为一系列   分区(编号为1到n)。该   分区大小是用户定义的;通过   默认所有行都在一个单独的行中   划分。表格分为   多个分区以便传播   群集上的数据库。排成一行   每个分区都存储在其中   B树或堆结构。如果表   有一个关联的索引允许快速   检索行,存储行   根据他们的指数按顺序排列   值,用B树提供   指数。数据位于叶子节点中   叶子和其他节点存储   叶数据的索引值   可从各个节点到达。   如果索引是非聚集的,则   行不按照排序   索引键。索引视图有   与索引相同的存储结构   表。没有索引的表是   存储在无序堆结构中。   堆和B树都可以跨越   多个分配单位。

答案 1 :(得分:10)

SQL Server数据存储在数据文件中,默认情况下,该文件具有.MDF扩展名。日志(.LDF)文件是SQL Server用于记录针对SQL Server实例执行的事务的顺序文件(稍后将详细介绍实例)。使用SIMPLE恢复模型时,日志文件(.LDF文件)会自动截断,但在使用BULK LOGGED或FULL恢复时则不会截断。

实例允许在一台计算机上安装多个SQL Server。如果实例是无名的,则它是默认实例。命名实例也是可能的。例如:

MACHINENAME< - 默认实例只是机器名称 MACHINENAME \ Test< - 这是这台机器上的“测试”实例

您可以使用SQL Server Management Studio(从SQL Server 2005开始)或Enterprise Manager(SQL Server 2000及更早版本)等工具与实例&实例下的数据库。

所有实例(从SQL Server 2005开始)都将具有隐藏的资源数据库,以及master,model,msdb和temp数据库。这些数据库是“系统”数据库。

不确定您还在寻找什么。希望有所帮助。

编辑: 哦,是的,物理上,“数据文件”中的数据(默认情况下为.MDF文件)是在SQL Server中称为“页面”的结构中构建的。日志文件(.LDF文件)中的数据按顺序存储。在企业中,数据和日志文件有时会分割在不同的物理硬盘驱动器上,以实现更好的磁盘I / O.或硬件RAID用于此目的。

EDIT2: 忘了提到文件组。使用文件组,您可以设计逻辑数据库模式,使该模式的元素在物理上分离,通常用于跨不同的硬盘驱动器分配物理数据库。例如,您可以拥有数据文件组,索引文件组和图像文件组(对于二进制图像)。

答案 2 :(得分:7)

我推荐“Microsoft SQL Server 2008 Internals”这本书 - 实际上Kalen Delaney对内部的任何内容都很好,IMO。

答案 3 :(得分:2)

SQL Server是Relational Database Management System

  

关系数据库管理   system(RDBMS)是一个数据库   基于的管理系统(DBMS)   关于引入的关系模型   作者:E。F. Codd。最受欢迎的广告   和当前的开源数据库   使用是基于关系模型。

     

RDBMS的简短定义可能是   DBMS,其中数据存储在   表格的形式和关系   其中数据也存储在   表的形式。

答案 4 :(得分:1)

您可以尽可能地深入了解这一点,但对于SQL Server 2008,Files and Filegroups Architecture - MSDN是对基本数据库体系结构的一个很好的概述。

如果您需要有关SQL Server 2008如何存储数据的更详细信息,MSDN站点将是一个宝贵的资源。

答案 5 :(得分:-4)

什么是RDBMS?

RDBMS代表关系数据库管理系统。 RDBMS数据在数据库表,字段和记录中构建。每个RDBMS表都包含数据库表行。每个数据库表行包含一个或多个数据库表字段。

RDBMS将数据存储到表的集合中,这些表可能与公共字段(数据库表列)相关。 RDBMS还提供关系运算符来操作存储在数据库表中的数据。大多数RDBMS使用SQL作为数据库查询语言。

Edgar Codd介绍了关系数据库模型。许多现代DBMS不符合Codd对RDBMS的定义,但仍然认为它们仍然是RDBMS。

最流行的RDBMS是MS SQL Server,DB2,Oracle和MySQL。 Source