2000中的数据存储形式(二)

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

SQLServer是一个关系管理系统,它最初是由Microsoft、和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。在WindowsNT推出后Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上专注于开发推广SQLServer的WindowsNT版本,Sybase则较专注于SQLServer在UNIX上的应用。

 

SQLServer2000是Microsoft公司2000年推出的SQLServer数据库管理版本。该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好,与相关集成程度高等优点。可跨越从运行Microsoft的膝上型电脑到运行Microsoft的大型多处理器的服务器等多种平台使用。

 

下面就SQLServer2000的数据存储在物理上和逻辑上的实现方式加以说明。

 

一、物理存储形式:

 

物理上,一个数据库有一个或多个磁盘上的一个或多个文件组成。这种物理实现只对数据库管理人员是可见的,而对于用户是透明的。

每个数据库在物理上又分为数据和日志文件,这些数据和日志文件存放一个或多个磁盘上。这些文件不与其它文件共享。

1) 数据文件:

SQLServer2000将一个数据文件中的空间分配给表格和索引,每块有64kb空间,叫做“扩展盘区”。有两种类型的扩展盘区:统一扩展盘区和混合扩展盘区。

每个扩展盘区由页面组成。页面是SQLServer2000中数据存储的基本单元,每个页面的大小为8kb。通常情况下,每个数据页面上以行的形式存储数据。一行的数据最多达8060字节。数据行上如若有群集索引,则基于群集索引的关键字(如邮政编码等)为顺序组织数据,否则没有特定的顺序。

2) 事务处理日志文件:

事务处理日志文件驻留在与数据文件不同的一个或多个物理文件中,包含一系列日志记录而不是扩展盘区分配的页面。

 

二、逻辑存储形式:

 

逻辑上,一个数据库有若干个用户可见的组件组成,如:表格、视图、存储过程等。

其中对象名称及功能如下表所示:

数据库对象

功        能

表格

由数据的列和行组成,格式与工作表相类似。行代表一个唯一的记录,列代表记录中的一个字段。类型定义规定了某个列中可以存放的数据类型。

视图

可以限制某个表格可见的行和列,或者将多个表格数据结合起来,作为一个表格显示。一个视图还可以集中列。

索引

是一种和表格或视图有关的结构,可以加快从表格或视图中获得数据行。表格索引可以是群集的,也可以是非群集的。群集指数据在物理上是基于索引关键字的顺序存放的。

关键字

是众多列中一列或组,它唯一识别一行(主关键字),定义两个表格之间的关系(外关键字),或者用于构建一个索引

用户定义的数据类型

是一种自定义的数据类型,它基于某个预先定义的数据类型。它可以用来建立对程序员更有意义的表结构,有助于确保存放数据的相似类的列都具有相同的数据类型。

存储过程

是一种Transact-SQL语句,它们被编译成一个执行计划。该过程用于性能优化和控制访问。

约束

定义了有关列中允许的值的规则,是加强数据完整性的标准机制。

 

默认

规定了当您插入一行,而没有定义列的值时,改列使用的值。

触发器

时存储过程的一个特殊类,用于当对一个表格或视图发出update、insert或delete语句时,能自动执行。

用户定义的函数

时一个由一条或多条transact-sql语句构成的子例行程序,用于封装代码以便于重用。一个函数可以有最多1024个输入参数。用户定义的函数可以取代视图和存储过程。
                                           参考sqlserver2000书籍
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
阅读更多
个人分类: 数据库
想对作者说点什么? 我来说一句

共用体中数据存储形式

2009年10月25日 678B 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭