读书频道 > 数据库 > SQL Server > SQL权威指南(第4版)
1.3 行与记录
2012-11-28 08:57:06     我来说两句 
收藏    我要投稿   

本文所属图书 > SQL权威指南(第4版)

本书为SQL 名著中文版,兼顾技术与实践,全面细致介绍高级技术,致力于打造SQL 编程专家。本书阐释了数据库设计、优化和操作的各方面内容,提供了成为SQL 编程专业人士所需的技术与技巧、针对新旧挑战性难题的...  立即去当当网订购

行不同于记录。应用程序中定义并使用记录。而行则不然,行由数据库模式定义,而不是应用程序。应用程序中的读写语句将用到字段的名称。数据库模式为行进行命名。同样地,读取字段的物理顺序至关重要。读取a、b、c 字段与读取c、a、b 字段得到的内容是不同的,但在数据库中选择(select)a、b、c 与选择c、a、b 获得的数据是完全一致的。

所有的空文件都很相似,它们都是操作系统中具有名称的目录项,这些空文件存储了 0 B的内容。与它们相比,空表虽然没有数据行,但依然包含列、约束、安全权限以及其他结构。集合理论中空集是一个完全有效的集合,SQL 中这一点与集合理论一致。SQL 的集合模型与标准数学中的集合理论的差异之处在于,集合理论中只有一个空集合,而在SQL 集合模型中,由于每个表都具有不同的数据结构,因此如果某处不能使用集合的非空版本,那么该集合的空集一定也不适用。

同一表中的行还具有以下特点:这些行的数据结构完全相同,在模型中它们表示n 同一类事物o。在文件系统中,记录在长短、数据类型以及结构上都有所不同,而数据流中的标志将告知应用程序如何解析数据。最常见的例子包括Pascal 中的变体记录(variant record ),C 语言的struct 语法以及COBOL的OCCURS 子句。

COBOL语言中的OCCURS 关键字以及Pascal 语言中的VARIANT 记录都包含了一个数值,通
过该数值告诉在程序当前的记录中,子记录结构的重复次数。

C 语言中的联合体(union)虽然不是变体记录,但却可以基于相同的物理内存进行变体映射。例如:

union x { int ival; char j[4];} mystuff;

该语句定义了mystuff 联合体,该联合体既可以是整型(在大多数 C 编译器中是4 字节,不过这段代码是不可移植的),也可以是 4 字节的数组,这取决于是通过mystuff.ival 还是
mystuff.j[0] 调用它。
比这更重要的差异是,文件通常都包含有汇总其他记录子集统计信息的记录,这也称为控
制小计报表(control break report )。没有规定明确同一个文件中的记录需要以什么方式关联起来,
文件只是包含二进制数据的数据流,读取文件的程序负责解释文件内容。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.2 关系表
下一篇:1.4 列与字段
相关文章
图文推荐
3.8 实训项目
3.6 实现数据完整性
3.5.5 外键约束
3.5.3 检查约束
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站