一文读懂数据库语言

d052cbd18ebf3974392ac357cce88215.gif

数据库系统提供数据定义语言(Data-Definition Language,DDL)来定义数据库模式,并提供数据操纵语言(Data-Manipulation Language,DML)来表达数据库的查询和更新。而实际上,数据定义和数据操纵语言并不是两种互相分离的语言,相反地,它们仅仅是构成了单一的数据库语言(例如SQL语言)的不同部分。几乎所有的关系数据库系统都使用SQL语言。

01

数据定义语言

数据库模式是通过一系列定义来说明的,这些定义由一种称作数据定义语言的特定语言来表达。DDL也可用于定义数据的其他特征。

通过一系列特定的DDL语句来说明数据库系统所采用的存储结构和访问方式,这种特定的DDL称作数据存储和定义(datastorage and definition)语言。这些语句定义了数据库模式的实现细节,而这些细节对用户来说通常是不可见的。

存储在数据库中的数据值必须满足某些一致性约束。例如,假设大学要求一个系的账户余额必须不能为负值。DDL语言提供了指明这样的约束的工具。每当数据库被更新时,数据库系统都会检查这些约束。通常,约束可以是关于数据库的任意谓词。然而,如果要测试任意谓词,可能代价比较高。因此,数据库系统仅实现可以以最小代价测试的完整性约束。

  • 域约束(domain constraint)。每个属性都必须对应于一个所有可能的取值构成的域(例如,整数型、字符型、日期/时间型)。声明一个属性属于某个具体的域就相当于约束它可以取的值。域约束是完整性约束的最基本形式。每当有新数据项插入数据库中,系统就能方便地进行域约束检测。

  • 引用完整性(referential integrity)。常常有这样的情况,我们希望能确保一个关系中给定属性集上的取值也在另一关系的某一属性集的取值中出现(引用完整性)。例如,每门课程所列出的系必须是大学中实际存在的系。更准确地说,一个course记录中的dept_name值必须出现在department关系中的某个记录的dept_name属性中。数据库的修改有可能会导致引用完整性的破坏。当引用完整性约束被违反时,通常的处理是拒绝执行导致完整性被破坏的操作。

  • 授权(authorization)。我们也许想对用户加以区别,对于不同的用户在数据库中的不同数据值上允许不同的访问类型。这些区别以授权来表达,最常见的是:读权限(read authorization),允许读取数据,但不能修改数据;插入权限(insertauthorization),允许插入新数据,但不允许修改已有数据;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值