1.4.2 数据定义语言
数据库模式是通过一系列定义来说明的,这些定义由一种称作数据定义语言(DDL)的特殊语言来表达。DDL也可用于定义数据的其他特征。
数据库系统所使用的存储结构和访问方式是通过一系列特别的DDL语句来说明的,这种特殊的DDL称作数据存储定义(data storage and definition)语言。这些语句定义了数据库模式的实现细节,而这些细节对用户来说通常是不可见的。
存储在数据库中的数据值必须满足某些一致性约束(consistency constraint)。例如,假设一个账户的余额不能低于100美元。DDL语言提供了指定这种约束的工具。每当数据库被更新时,数据库系统都会检查这些约束。通常,约束可以是关于数据库的任意谓词。然而,如果要测试任意谓词,可能代价比较高。因此,数据库系统专注于可以以最小代价测试的完整性约束。
域约束(domain constraint)。每个属性都必须对应于由所有可能的取值构成的一个域(例如,整数型,字符型,日期/时间型)。声明一种属性属于某种具体的域就相当于约束它可以取的值。域约束是完整性约束的最基本形式。每当有新数据项插入到数据库中,系统就能方便地进行域约束检测。
参照完整性(referential integrity)。我们常常希望,一个关系中给定属性集上的取值也在另一关系的某一属性集的取值中出现(参照完整性)。数据库的修改会导致参照完整性的破坏。当违反了参照完整性约束时,通常的处理方式是拒绝执行导致完整性被破坏的操作。断言(assertion)。一个断言就是数据库总是需要满足的任一条件。域约束和参照完整性约束是断言的特殊形式。然而,还有许多约束不能仅用这几种特殊形式表达。例如,“每笔贷款的客户中至少有一人账户余额不小于1000.00美元”,必须表达成一个断言。断言创建以后,系统会检测其有效性。如果断言有效,则以后只有不破坏断言的数据库更新才被允许。
授权(authorization)。我们也许想对用户加以区别,对于不同的用户,在数据库中的不同数据值上允许不同的访问类型。这些区别以授权来表达,最常见的是:读授权(read auˉthorization),允许读取数据,但不能修改数据;插入授权(insert authorization),允许插入新数据,但不允许修改已有数据;更新授权(update authorization),允许修改数据,但不能删除数据;删除授权(delete authorization),允许删除数据。我们可以赋予用户所有的权限,或者没有或部分拥有这些权限。
正如其他任何程序设计语言一样,DDL以一些指令(语句)作为输入,生成一些输出。DDL的输出放在数据字典(data dictionary)中,数据字典包含了元数据(metadata),元数据是关于数据的数据。可把数据字典看作一种特殊的表,这种表只能由数据库系统本身(不是普通用户)来访问和修改。在读取和修改实际的数据前,数据库系统先要参考数据字典。
| 回书目 上一节 |
|
· 第六章 你能帮我吗?.. · Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. |
· 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. |
|
||||
| · NAC安全访问控制 · 网络布线测试仪器 · Windows Server 2008专.. · Windows远程桌面应用 · 网络故障排除宝典 · 运营商封堵ADSL共享 中.. · 解析35岁技术人的价值.. · 世纪枭雄比尔盖茨的王.. |
· 主流品牌防火墙配置 · ASP.NET开发教程 · 超级计算机TOP500专题 · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 程序员如何成长? · C#技术开发指南 · 虚拟化技术还有点“虚” |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||