關系的三類完整性約束

規則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.pswp.cn/news/452621.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452621.shtml
英文地址,請注明出處:http://en.pswp.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首先調用用戶認證的…