数据库的----实体完整性、引用完整性和相关解释

一、实体完整性:

候选键:唯一,允许不填

主键: 唯一,必填,排序 每个表只能有一个主键。

自增长:必须是数字。系统自动增长的。

默认值:如果不填就用默认值填充,如果填了就用填写的值保存。

非空约束:不能不填。

二、引用完整性:

外键:至少两个表,一般两个表(主表、从表)

主表:用来约束别人的表

从表:受约束的表

主从表只对指定的两个表有意义。

三、知识解释:

1、什么是主键、外键:

关系型数据库中的一条记录有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。
比如:
学生表(学号、姓名、性别、班级)
期中每个学生的学号是唯一的,学号就是一个主键
课程表(课程编号、课程名、学分)
其中课程编号是唯一的,课程编号就是一个主键
成绩表(学号、课程号、成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以学号和课程号的属性组是一个主键。
成绩单中的学号不是成绩单的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键
同理成绩表中的课程号是课程表的外键
定义主键和外键主要是为了维护关系数据库的完整性,总结一下:
(1)主键是能确定一条记录的唯一标识,比如,一条记录包括身份证号是主键。
(2)外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。
比如,A表中的一个字段,是B表的主键,那他就可以是A的外键。
2、主键、外键和索引的区别
主键、外键和索引的区别?
主键外键索引
定义:唯一标识一条记录,不能有重复的,不允许为空表的外键是另一表的主键,外键可以有重复的,可以是空值该字段没有重复值,但可以有一个空值
作用:用来保证数据完整性用来和其他表建立联系用的是提高查询排序的速度
个数:主键只能有一个一个表可以有多个外键一个表可以有多个惟一索引

3、什么是候选键?

候选键是不允许重复取值的属性,比如一个学生表,有学号,身份证号码等,那么候选键就有2个:
(学号),(身份证号码),但一个表只能有一个主键(主码),可以有多个候选键。

时间: 2024-10-13 00:21:54

数据库的----实体完整性、引用完整性和相关解释的相关文章

摩托罗拉SE955 One Discrete Length,Two Discrete Lengths,Length Within Range 相关解释

motorola scanner datasheet相关解释(以下通过Simple Serial Interface(SSI)进行设置,非扫描官方datasheet的设置条码): One Discrete Length:一个单独的条码长度,就是扫描头设置以后,只支持指定的一个长度的条码,发送格式:指定的条码长度作为长度参数1的值,长度参数2的值设置为0x00即可(比如设置interleaved 2 of 5 类型的只支持14位的条码,发送的参数为:0x16 14 0x17 00  注:0x16为

Java中对象、对象引用、堆、栈、值传递以及引用传递的详细解释

Java中对象.对象引用.堆.栈.值传递以及引用传递的详细解释 1.对象和对象引用的区别: (1).对象: 万物皆对象.对象是类的实例.在Java中new是用来在堆上创建对象用的.一个对象可以被多个引用所指向. (2).对象引用: 类似于C++中的地址.通过对象引用可以找到对象.一个引用可以指向多个对象.操纵的标识符实际上是指向对象的引用. 就像:对象存放在屋子里,对象的引用就相当于屋子的钥匙. 2.值传递和引用传递的区别: (1).值传递:传递的是值的拷贝.也就是说传递后就不互相关了. (2)

motorola scanner datasheet相关解释 One Discrete Length, Two Discrete Lengths,Length Within Range

以下通过Simple Serial Interface进行设置,非扫描官方datasheet的设置条码. One Discrete Length:一个单独的条码长度,就是扫描头设置以后,只支持指定的一个长度的条码,发送格式:指定的条码长度作为长度参数1的值,长度参数2的值设置为0x00即可(比如设置interleaved 2 of 5 类型的只支持14位的条码,发送的参数为:0x16 14 0x17 00  注:0x16为长度参数1,0x17为长度参数2). Two Discrete Lengt

如何使用JDBC Request跨数据库查询后引用查询的结果作为下一个JDBC Request的入参

[前言] 今天来给大家介绍下如何使用JDBC Request跨数据库查询后引用查询的结果作为下一个JDBC Request的入参! 因为我现在所测的系统模块中部分表在不同的数据库中,所以在用JDBC Request查询数据的时候遇到了这么一个跨数据库查询的问题,现在我就来说下我今天使用的办法,希望有不足之处大家多多指导下! 1.首先我们点击测试计划添加配置元件->JDBC Connection Configuration 2.然后我们新建一个线程组A,在线程组A下新建一个JDBC Request

查看数据库对象的引用关系,查看数据库对象的依赖关系

转自:https://www.cnblogs.com/seusoftware/p/4858115.html 在SQL Server中,(可编程)对象间的引用即依赖关系,有多种方式可以检查,随着版本变更,方式也有所不同. 父子关系的对象,不通过依赖关系来查询,比如: 1. 外键关系 use tempdb GO --drop table tb1,tb2 create table tb1 ( col1 int Primary key, col2 int ) insert into tb1 values

RAC相关解释

1.1 并发控制 在集群环境中, 关键数据通常是共享存放的,比如放在共享磁盘上. 而各个节点的对数据有相同的访问权限, 这时就必须有某种机制能够控制节点对数据的访问. Oracle RAC 是利用DLM(Distribute Lock Management) 机制来进行多个实例间的并发控制. 1.2 健忘症(Amnesia) 集群环境配置文件不是集中存放的,而是每个节点都有一个本地副本,在集群正常运行时,用户可以在任何节点更改集群的配置,并且这种更改会自动同步到其他节点. 有一种特殊情况: 节点

yii 数据库添加,修改,删除相关操作总结

yii中关于数据信息的添加数据,修改数据,删除数据的相关操作,刚刚学习没几天,仅记录了一些,以后慢慢再充实,有需要的朋友可以看看. 添加数据的方法 (1)save 方法(对象形式操作) $user=new User;$user->username='phpernote';$user->password='123456';if($user->save()>0){    echo '添加成功';}else{    echo '添加失败';} (2)insert 方法(数组形式操作) Y

10分钟理解Android数据库的创建与使用(附具体解释和演示样例代码)

1.Android数据库简单介绍. Android系统的framework层集成了Sqlite3数据库.我们知道Sqlite3是一种轻量级的高效存储的数据库. Sqlite数据库具有以下长处: (1)零配置,无需安装和配置: (2)储存在单一磁盘文件里的一个完整的数据库. (3)数据库文件能够在不同字节顺序的机器间自由共享: (4)支持数据大小至2TB: (5)足够小.全部源码大致3万行C代码.250KB: (6)比眼下流行的大多数数据库的操作要快. (7)开源. 2.Sqlite 基本操作语句

PHP 引用计数器 通俗版解释

概述 最近看PHP中的引用计数器部分,首先被各种绕晕,然后通过看博客和分析后,总结了一个比较通俗的解释,能帮助自己很好地记忆,也希望能帮助到各位读者.这里分享一遍博文,是比较正统的解释:PHP变量之引用(http://hilojack.sinaapp.com/?p=1392). 建议 研究PHP引用计数器的变化可以通过安装Xdebug扩展来学习,安装后直接调用 xdebug_debug_zval('var') 来看变量 $var的引用计数器情况. 基础知识 谈引用计数器需要对PHP中变量的存储.