第五章数据库完整性

第五章数据库完整性

  • 5.1_数据库完整性概述
    • 5.2_实体完整性
    • 5.2_参照完整性
    • 5.3_用户定义的完整性

5.1_数据库完整性概述

1.数据库的完整性
数据的正确性和相容性


2.数据的完整性和安全性的区别
数据的完整性:防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据
数据的安全性:保护数据库防止恶意的破坏和非法的存取


3.为维护数据库的完整性,DBMS必须

  • 提供定义完整性约束条件的机制
  • 提供完整性检查的方法
  • 违约处理

5.2_实体完整性

实体完整性就是主键的primary key定义

1.提供定义完整性约束条件的机制:

  • 列级约束:create table table_name(id int primary key)–在当前列直接定义primary
  • 表级约束:create table table_name(id int,primary key(id))–在当前表中单独定义primary

2.提供完整性检查的方法和违约处理

  • 检查主码值是否唯一,如果不唯一则拒绝插入或修改
  • 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改

5.2_参照完整性

实体完整性就是外键的foreign key的定义

1.提供定义完整性约束条件的机制:

  • 表级约束:create table table_name(id int,foreign key(id) references table_name(id))–只有表级约束

2.提供完整性检查的方法和违约处理
在这里插入图片描述

5.3_用户定义的完整性

用户定义的完整性就是针对某一具体属性值必须满足的语义要求

1.提供定义完整性约束条件的机制:(CREATE TABLE时定义)

  • 列值非空(NOT NULL)
  • 列值唯一(UNIQUE)
  • 检查列值是否满足一个布尔表达式(CHECK)
    例:CREATE TABLE SC
    (Sno int UNIQUE,
    age int NOT NULL,
    sex char(2),
    check(sex in (‘男’,‘女’) and age > 18)- -性别只能是男或女,年龄大于18
    )

2.提供完整性检查的方法和违约处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KVC/KVO实现原理分析

2019独角兽企业重金招聘Python工程师标准>>> 1. 函数调用(消息)实现分析: 我们看这条语句: [代码]c#/cpp/oc代码: 1 [self.person setValue:"Vincent"forKey:"name"]; 就会被编译器…

英语笔记:写作:Nothing succeeds without a strong will

Nothing succeeds without a strong will 没有坚强的意志将一事无成 There is a widespread humorous saying that “Quitting smoking is theeasiest thing in the world. I’ve done it for hundreds of times.” 1. Funny as itis, the saying ironically reflects the fac…

filterreader_Java FilterReader markSupported()方法与示例

filterreaderFilterReader类markSupported()方法 (FilterReader Class markSupported() method) markSupported() method is available in java.io package. markSupported()方法在java.io包中可用。 markSupported() method is used to check whether this FilterReader strea…

如何设计不宕机的 Redis 高可用服务?

随着业务的不断发展和扩张我们需要更加稳定和高效的 Redis 服务,这是业务发展的必然趋势也是个人能力进阶的最高境界,我们需要一个高可用的 Redis 服务,来支撑和保证业务的正常运行。 我们本文的面试题是,如何设计一个不宕机的 Redis 高可用服务? 典型回答 想要设计一个…

第十章数据库恢复技术

第十章数据库恢复技术 10.1_事务 事务的四个特性:原子性、一致性、隔离性、持续性 10.2_故障的种类 事务内部的故障系统故障介质故障计算机病毒 10.3_恢复的实现技术 转储:动态和静态登记日志文件 10.4_恢复策略 事务故障的恢复:直接…

【SICP练习】22 练习1.28

练习1.28 这道题主要分为三个部分: 1、非平凡平方根,并添加到expmod函数中 2、类似于fermat-test的过程 3、通过已知的素数和非素数来检验 下面我们首先来写出能够在遇到非平凡平方根的时候报错的函数,在这个函数中&…

Oracle笔记:创建表空间、创建用户、授权

--回顾 --1、表空间 create tablespace ts datafile d:\123.dbf size 10m autoextend oncreate temporary tablespace temp_ts tempfile d:\temp123.dbf size 5m autoextend on--2、用户 create user testuser identified by test123 default tablespace ts temporary tablespa…

Java类类getClassLoader()方法及示例

类的类getClassLoader()方法 (Class class getClassLoader() method) getClassLoader() method is available in java.lang package. getClassLoader()方法在java.lang包中可用。 getClassLoader() method is used to return the ClassLoader that loads the class or interfac…

小白学算法:买卖股票的最佳时机!

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)本文已收录至 Github《小白学算法》系列:https://github.com/vipstone/algorith今天蚂蚁集团(支付宝…

第十一章并发控制

第十一章并发控制11.1_并发控制概述11.2_封锁11.1_并发控制概述 事务是并发控制的基本单位 并发操作带来的数据不一致性包括丢失修改、不可重复读、读“赃”数据 11.2_封锁 两种封锁协议:排他锁(写锁)和共享锁(读锁&#xff09…

《APUE》第6章笔记

这一章主要介绍了口令文件和组文件的结构和一些围绕这些结构的函数。 口令文件即passwd就是在/etc/passwd中可以查阅。其结构是: 上图四个平台能支持的就用黑点表示。 因为加密口令这一项放在passwd这个人人可读的文件中,可能会有安全问题。所以现在的Li…

Oracle笔记:备份还原

--------------备份还原-------------------- --物理备份 --逻辑备份 1)传统工具: exp导出、imp导入 实质:调用sql指令,导入\导出数据,速度较慢 可以运行在客户端,也可以运行在服务器端, 在cmd窗…

Java DataOutputStream writeByte()方法与示例

DataOutputStream类writeByte()方法 (DataOutputStream Class writeByte() method) writeByte() method is available in java.io package. writeByte()方法在java.io包中可用。 writeByte() method is used to write the given value as one-byte value to the basic stream a…

聊聊近期的感受和10月文章精选!

先来看本月的原创文章汇总,其中算法部分也有少量 9 月份的文章,这样汇总起来大家看起来更方便,目录如下。算法系列小白学算法第1篇:一文详解「栈」和手撸栈的两种方法!小白学算法第2篇:JDK 竟然是这样实现栈…

第六章关系数据理论

第六章关系数据理论6.1_问题的提出(略)6.2_规范化6.2.1_函数依赖6.2.2_码6.2.3_范式6.2.4_2NF6.2.5_3NF6.2.6_BCNF6.2.7_多值依赖6.2.8_4NF6.2.9_规范化小结6.3_Armstrong公理系统6.3.1_函数依赖闭包6.3.2_最小依赖集6.3.3_转换为3NF的保持函数依赖的分解…

Oracle数据字典

--用户信息 select * from dba_users; --角色信息 select * from dba_roles; --权限信息 select * from dba_role_privs;--方案(Schema)是数据库对象的集合,每个用户都对应一个方案。用户是各种对象的所有者, --方案是对象的组织形式。 --用户与方案是一…

Github上的热门iOS开源项目:AFNetworking、MagicalRecord、BlocksKit以及XVim

1. AFNetworking AFNetworking是一个非常受欢迎的轻量级的iOS、Mac OS X网络通信类库。它建立在NSURLConnection、NSOperation以及其技术的基础上,有着精心设计的模块结构和功能丰富的API,让很多网络通信功能的实现变得十分简单。 附件:/c…

队列实现栈的3种方法,全都击败了100%的用户!

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)本文已收录至 Github《小白学算法》系列:https://github.com/vipstone/algorith之前我们讲过《用两个栈实现一个…

Java类类getConstructor()方法及示例

类的类getConstructor()方法 (Class class getConstructor() method) getConstructor() method is available in java.lang package. getConstructor()方法在java.lang包中可用。 getConstructor() method is used to return a Constructor object that reflects the given pub…

where、having、group by、order by、count的使用注意

where、having、group by、order by、count的使用注意1_where、having、group by、order by的顺序2_group by的作用3_where和group by的组合4_group by和having的组合5_where、having、group by的组合使用6_count与group by的组合使用1_where、having、group by、order by的顺序…