找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3384|回复: 0

几个数据库的相关概念 |hongdi

[复制链接]
发表于 2011-12-17 10:05:07 | 显示全部楼层 |阅读模式
一、数据库的几个关键概念
数据库:用于存储特定格式的关系数据总集
文件:用于存放由数据构成的表
文件组:用于将多个文件组织起来进行管理
架构:用于管理数据表等对象的命名
快照:用于建立数据库的快速还原点,方便测试和故障恢复

数据库文件组成:
主数据文件:默认扩展名为.mdf
辅助数据文件:默认扩展名为.ndf(一个数据库可以创建多个.ndf文件)
事务日志文件:默认扩展名为.ldf(记录对数据库的所有操作,但不包含所操作的数据)
所有的数据文件和日志文件默认位置在C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data(其中n是标识已安装的SQL Server实例名称_实例名)
注意:应当将所有的数据和对象存储在.ndf文件中,而.mdf文件只负责存储数据目录,这样可以有效的避免访问时的磁盘争用。

SQL SERVER的两种存储结构:
页:用于数据存储的连续的磁盘空间块,大小8KB,每页的开头是96字节的标头,用于存储有关页的系统信息,包括页码、页类型、页的可用空间以及拥有该页的对象的分配单元ID
区间:8个连续的物理页面,大小64KB
(较小的表(<64KB)与其他数据库对象共享区间)
特点:
行不能跨越页面:页的单个行中的最大数据量和开销是 8,060 字节 (8 KB)。

(两个例外:1:对于 varchar、nvarchar、varbinary、sql_variant 或 CLR 用户定义类型的列,单个列的长度仍然必须在 8000 字节(8060-96<8000B)的限制之内。只有它们的合并长度可以超过表的 8060 字节的行限制。2:当表中的所有固定列和可变列的行的总大小超过限制的 8,060 字节时,SQL Server 将从最大长度的列开始动态将一个或多个可变长度列移动到 ROW_OVERFLOW_DATA 分配单元中的页。每当插入或更新操作将行的总大小增大到超过限制的 8,060 字节时,将会执行此操作。将列移动到 ROW_OVERFLOW_DATA 分配单元中的页后,将在 IN_ROW_DATA 分配单元中的原始页上维护 24 字节的指针。如果后续操作减小了行的大小,SQL Server 会动态将列移回到原始数据页。)
表和索引以区间的形式存储

SQL Server中的每个数据库的信息都记录在master数据库的sysdatabases和sysaltfiles表中。

“排序规则”是指数据的排序次序原则,用以确定进行数据排序时数据值的具体位置。不同的规则将数据以不同顺序进行排序,这取决于排序规则是否区分大小写、特殊字符的排序规则等。

描述事务的特性ACID:
原子性(Atomictity).事务中定义的所有操作要么全部完成,要么全都不完成。
一致性(Consistency).事务总是使数据处于一致的状态
隔离性(Isolation).事务运行时与其他数据库活动隔离;其他并发进行的数据库活动对该事务没有影响。
持久性(Durability).当事务提交后,结果将存储在持久存储设施中,并且在系统故障后依然存在。

执行单条的SQL语句,其实是SQLServer暗地里使用事务来完成——隐式事务。如果是作为一个单元执行的多条语句则使用的事务称为——显式事务。

SQL Server在执行磁盘修改时,并且在这些修改写入数据库之前,将他们记录到事物日志上。
步骤:
1、应用程序发出数据修改指令
2、执行修改时,查找缓存是否存在修改时所影响的数据页,如果不存在则将这些页从磁盘载入缓冲区中一边修改,如果存在则直接修改。
3、在进行修改时,日志将记录修改数据的每条语句(任何更改都应在数据库中被修改之前先记录到日志中,并写入磁盘。此类型的日志成为预写日志)
4、[检查点进程]按照递归方式,将所有[已完成事务中的数据]写入磁盘的数据库中
5、如果系统出现故障,则[自动恢复进程]将使用事务日志[前滚]所有已提交的事物,并回滚任何未完成的事务。
事务日志在自动恢复期间使用[事物标记](如:begin transaction...commit transaction)来确定事物的起止点。数据也将在[检查点进程]开始写入磁盘。
若要提高性能,建议将事务日志文件放置在与数据文件分开的物理磁盘上。这将减少磁盘争用,并且可以使一组驱动器磁头在[其他磁头从数据文件中读取数据]的同时,将事务记录到事务日志中。由于事务可立即写入磁盘,无需等待数据读操作的完成,因此更新数据的速度将非常快。同时由于日志文件是顺序写入的,因此如果日志存储在一个专用磁盘中,则磁盘磁头将保留在正确的位置以便于下一次写操作,而不用再次浪费时间移动磁头,因此,可以提高写事务日志的速度。 作者:hongdi 发表于2011-12-16 20:51:48 原文链接
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-4-26 22:03 , Processed in 0.014121 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表