sql server 是一个关系数据库管理系统,它最初是由microsoft 、sybase 和ashton-tate三家公司共同开发的,于1988 年推出了第一个os/2 版本。在windows nt 推出后microsoft与sybase 在sql server 的开发上就分道扬镳了,microsoft 将sql server 移植到windows nt系统上专注于开发推广sql server 的windows nt 版本,sybase 则较专注于sql server在unix 操作系统上的应用。
sql server 2000 是microsoft 公司2000年推出的sql server 数据库管理版本。该版本继承了sql server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好,与相关软件集成程度高等优点。可跨越从运行microsoft windows 98 的膝上型电脑到运行microsoft windows 2000 的大型多处理器的服务器等多种平台使用。
下面就sql server 2000的数据存储在物理上和逻辑上的实现方式加以说明。
一、物理存储形式:
物理上,一个数据库有一个或多个磁盘上的一个或多个文件组成。这种物理实现只对数据库管理人员是可见的,而对于用户是透明的。
每个数据库在物理上又分为数据和日志文件,这些数据和日志文件存放一个或多个磁盘上。这些文件不与其它文件共享。
1) 数据文件:
sql server 2000将一个数据文件中的空间分配给表格和索引,每块有64kb空间,叫做“扩展盘区”。有两种类型的扩展盘区:统一扩展盘区和混合扩展盘区。
每个扩展盘区由页面组成。页面是sql server 2000中数据存储的基本单元,每个页面的大小为8kb。通常情况下,每个数据页面上以行的形式存储数据。一行的数据最多达8060字节。数据行上如若有群集索引,则基于群集索引的关键字(如邮政编码等)为顺序组织数据,否则没有特定的顺序。
2) 事务处理日志文件:
事务处理日志文件驻留在与数据文件不同的一个或多个物理文件中,包含一系列日志记录而不是扩展盘区分配的页面。
二、逻辑存储形式:
逻辑上,一个数据库有若干个用户可见的组件组成,如:表格、视图、存储过程等。
其中对象名称及功能如下表所示:
数据库对象
功 能
表格
由数据的列和行组成,格式与工作表相类似。行代表一个唯一的记录,列代表记录中的一个字段。类型定义规定了某个列中可以存放的数据类型。
视图
可以限制某个表格可见的行和列,或者将多个表格数据结合起来,作为一个表格显示。一个视图还可以集中列。
索引
是一种和表格或视图有关的结构,可以加快从表格或视图中获得数据行。表格索引可以是群集的,也可以是非群集的。群集指数据在物理上是基于索引关键字的顺序存放的。
关键字
是众多列中一列或组,它唯一识别一行(主关键字),定义两个表格之间的关系(外关键字),或者用于构建一个索引
用户定义的数据类型
是一种自定义的数据类型,它基于某个预先定义的数据类型。它可以用来建立对程序员更有意义的表结构,有助于确保存放数据的相似类的列都具有相同的数据类型。
存储过程
是一种transact-sql语句,它们被编译成一个执行计划。该过程用于性能优化和控制访问。
约束
定义了有关列中允许的值的规则,是加强数据完整性的标准机制。
默认
规定了当您插入一行,而没有定义列的值时,改列使用的值。
触发器
时存储过程的一个特殊类,用于当对一个表格或视图发出update、insert 或delete语句时,能自动执行。
用户定义的函数
时一个由一条或多条transact-sql语句构成的子例行程序,用于封装代码以便于重用。一个函数可以有最多1024个输入参数。用户定义的函数可以取代视图和存储过程。