关系的三类完整性约束

规则2.1实体完整性规则(Entity Integrity)
若属性A是基本关系R的主属性,则属性A不能取空值
空值就是“不知道”或“不存在”或“无意义”的值

     例:

选修(学号,课程号,成绩)

“学号、课程号”为主码

“学号”和“课程号”两个属性都不能取空值

实体完整性规则的说明

(1)实体完整性规则是针对基本关系而言的。

         一个基本表通常对应现实世界的一个实体集。

(2)现实世界中的实体是可区分的,即它们具有某种唯  

          一性标识。

(3)关系模型中以主码作为唯一性标识。

(4)主码中的属性即主属性不能取空值

   主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性


规则2.2 参照完整性规则

若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:

或者取空值(F的每个属性值均为空值)
或者等于S中某个元组的主码值
即外码要么为空,要么为参照关系的主码的值
参照完整性规则的说明

关系R和S不一定是不同的关系
目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上
外码并不一定要与相应的主码同名

当外码与相应的主码属于不同关系时,往往取相同的名 字,以便于识别


规则2.3 用户定义的完整性规则

针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求
关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需由应用程序承担这一功能



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

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

相关文章

[QNAP crontab 定時執行程式

注意要自動執行的 sh 檔不要放在 /root 裡, 不然韌體更新後檔案會不見, 要放在個人帳號的資料夾,例如 /share/homes/帳號/ QNAP 的 crontab 放在 /etc/config/crontabvi /etc/config/crontab 例如要每日5:00執行 backup.sh 的話,加上這行 00 5 * * * /s…

调整标志位方法oracle,面试题(二)(示例代码)

1.查找/us/oc al/nginx/ogs下更改时间在7天前以log 后极的文件井移动到sr/oca/nginx/log/backup下(至少两种方法)2. Centos 查看某个进程的环境安量3.简述DNS迭代查询和递归直询的区别4.简述TCP三次握手过程以及涉及到的状态(可画草图) ?5.统计TCP连接状态(至少两种方法)6.发现…

国际最具潜力IT专业认证

正如很多的争论一样,IT认证也是现在争论的热点,在IT专业人士的世界里,IT认证对于其职业规划有着很大的影响。在时下究竟哪个认证才具有最大意义呢?本文罗列了十个最具潜力的技术认证,一起来看看都有哪些吧!…

关系代数

关系代数是一种抽象的查询语言,它用对关系的运算来表达查询关系代数运算对象是关系运算结果亦为关系关系代数的运算符有两类:集合运算符和专门的关系运算符

设计模式的六大原则

设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更加容易被他人理解、保证代码可靠性。设计模式是代码编制真正工程化(工程化即系统化、模块化、规范化的一个过程。指将具有一定规模数量的单个…

作业7

stuNum 201709090072 print(年级是:stuNum[0:4]) print(专业编号是: stuNum[4:9]) print(序号是: stuNum[-3:]) stuNum 440982201812111876 print(所在省市:stuNum[0:2]) print(所在地区:stuNum[2:4]) print(所在县区:stuNum[4:…

linux进程退出没有log,Linux下应用进程消失原因分析-Go语言中文社区

应用部署在Linux环境下,如果出现未知原因导致应用进程被杀(应用日志中没有任何异常现象,日志出现中断现象),如果对于进程消失原因没有特别明确的方向,可以考虑从系统日志(/var/log/messages)方面查找原因。 命令参考egrep -i kill…

数学是成就卓越开发人员的必备技能

编者按:原文作者Alan Skorkin是一名软件开发人员,他在博客中分享对软件开发相关的心得,其中有很多优秀的文章,本文就是其中一篇,作者认为:成为优秀的开发人员,可以没有数学技能,但成…

Flask爱家租房--celery(总结)

0. celery整体逻辑图 个人理解为:此处的客户端client与以往定义的客户端(前端)并不一样,角色相当于以往的后端逻辑处理代码,即发布任务的一方,只是相当于处理者worker而言是客户端。 1.准备工作&#xff1…

linux端口514启动,Linux查看端口使用状态及启动(示例代码)

Netstat -tln 命令是Linux查看端口使用情况/etc/init.d/vsftp start 是用来启动ftp端口~!看文件/etc/servicesnetstatLinux查看端口查看已经连接的服务端口(ESTABLISHED)netstat -aLinux查看端口查看所有的服务端口(LISTEN,ESTABLISHED)sudo netstat -ap…

window服务器开站点(不通用)

此文章为记录自己的配置流程,其他人不通用 网站服务器:Windows server 2008 R2 (IIS6.1) Asp.net 数据库服务器:Windows server 2008 R2 SQL Server 2008 R2 1.解析域名到服务器,如:www.test.com 2.登录网站服务器&a…

【转载】优秀文章转载集合

Spring Spring Cache 注释驱动的 Spring cache 缓存介绍使用 Spring 2.5 注释驱动的 IoC 功能虚拟化 libvirt kvm 虚拟机上网 – Bridge桥接KVM详解,太详细太深入了,经典Tomcat Linux机器同时运行两个tomcat点评:主要是那张图片的配置 Nginx …

Flask爱家租房--celery(发送验证短信)

0.配置文件 # coding:utf-8BROKER_URL "redis://127.0.0.1:6379/1" CELERY_RESULT_BACKEND redis://127.0.0.1:6379/21.启动文件 # coding:utf-8from celery import Celery from ihome.tasks import config# 定义celery对象 celery_app Celery("ihome"…

理论与实践:不要过度思考

你每天都在仔细翻阅Hacker News,惊奇于那些经过整理的创业传奇、功效无比的最佳实践理论、天才的技术解决方案,以及各种链接指向的大量的一站式的,极简主义的,色彩柔和的网站。你参加过精益(Lean)创业研讨会,读过了《F…

linux我如何查看一个脚本的路径,linux获取shell脚本所在绝对路径操作介绍

脚本名:a.sh位置:/tmp/whuang/study/java脚本内容:复制代码代码如下:#!/bin/shthis_dirpwddirname $0|grep "^/" >/dev/nullif [ $? -eq 0 ];thenthis_dirdirname $0elsedirname $0|grep "^/." >/dev/nullretval$…

Go编程技巧--io.Reader/Writer

Go原生的pkg中有一些核心的interface,其中io.Reader/Writer是比较常用的接口。很多原生的结构都围绕这个系列的接口展开,在实际的开发过程中,你会发现通过这个接口可以在多种不同的io类型之间进行过渡和转化。本文结合实际场景来总结一番。 总…

把base64转为blob

let blob1 dataURItoBlob(this.img); 转载于:https://www.cnblogs.com/miaSlady/p/9073550.html

Flask爱家租房--房屋管理(获取房东发布的房源信息条目)

文章目录0.效果展示1.重点总结2.后端代码3.前端html4.前端js0.效果展示 1.重点总结 1)用户点击“我的房源”,页面开始加载,此时myhouse.js限定只有完成实名认证的房东才可以查询已有的房源信息,因此myhouse.js首先调用用户认证的…