完整性约束

完整性约束

保证授权用户对数据库做修改时不会破坏数据一致性。

1、域约束

每个属性都必须对应于一个所有可能的取值构成的域。

create domain account-number char(10)
 constraint account-type-test
  check(value in ("Checking","Saving"))
2、参照完整性

一个关系中给定属性集上的取值也在另一个关系的某一属性集的取值中出现,这一条件称为参照完整性。

3、断言

create assertion sum-constraint check
 (not exists(select * from branch
  where(select sum(amount) from loan
   where loan.branch-name=branch.branch-name
   >=(select sum(amount) from account
   where account.branch-name=branch.branch-name)))
如果断言复杂,则检测会带来相当大的开销。

4、触发器

define trigger overdraft on update of account T
 (if new T.balance<0
  then (insert into loan values
     (T.branch-name,T.account-number,-new T.balance)
    insert into borrower
     (select customer-name,account-number
     from depositor
     where T.account-number=depositor.account-number)
   update account S
   set S.balance=0
   where S.account-number=T.account-number))
5、函数依赖

a) 用于指明合法关系集上的约束。这样就可以只考虑满足给定函数依赖集的那些关系。如果希望只局限于模式R上满足函数依赖集F的关系,我们说R上F成立。

b) 用于检测关系是否在给定函数依赖集上合法。如果关系r在函数依赖集F上合法,则称r满足函数依赖集F。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值