資料庫系統原理(第二章關係資料庫 )

来源:https://www.cnblogs.com/jalja/archive/2019/09/21/11560835.html
-Advertisement-
Play Games

所有關係的集合,構成一個關係資料庫。 以關係模型作為數據的邏輯模型,並採用關係作為數據組織方式的一類數 據庫,其資料庫操作建立在關係代數的基礎上。 ...


一、關係資料庫概述

20世紀80年代後,在商用資料庫管理系統中,( 關係模型 )逐漸取代早 期的網狀模型和層次模型,成為主流數據模型

 

 

 二、關係數據模型

 

數據模型的要素包括:數據結構、數據操作、數據約束

關係數據模型的組成要素:

關係數據結構

 

表(Table): 也稱為關係,是一個二維的數據結構,由表名、列、若幹行數據組成;每個表有唯一的表名,表中每一行數據描述一條具體的記錄值

關係(Relation): 一個關係邏輯上對應一張二維表,可以為每個關係取一個名稱進行表示。基本關係 (基本表、 基表)、 查詢表、 視圖表(導出的虛表)

列(Column) :也稱為欄位(Field)或屬性(Attribute)。屬性的個數稱為關係的元或度;列的值稱為屬性值,其取值範圍稱為值域

行(Row): 也稱為元組(Tuple)或記錄(Record)。表中的數據按行存儲。

分量(Component):(具體的數據項) :元組(行)中的一個屬性值,稱為分量。

域(Domain) :表示屬性的取值範圍

數據類型(Data Type): 每個列都有相應的數據類型,它用於限制(或容許)該列中存儲的數據。

碼或鍵(Key): 屬性(或屬性組)的值都能用來唯一標識該關係的元組,則稱這些屬性( 或屬性組)為該關係的碼或鍵

超碼或超鍵(Super Key): 在碼中去除某個屬性,它仍然是這個關係的碼

候選碼或候選鍵(Candidate Key): 在碼中不能從中移去任何一個屬性,否則它就不再是這個關係的碼或鍵;候選碼或候選鍵是這個關係的最小超碼或超鍵。

主屬性(Primary Attribute)或非主屬性(Nonprimary Attribute): 包含在任何一個候選碼中的屬性稱為主屬性或碼屬性

主碼或主鍵(Primary Key): 在若幹個候選碼中指定一個唯一標識關係的元組(行)

全碼或全鍵(All Key) :一個關係模式的所有屬性集合是 這個關係的主碼或主鍵,這樣的 主碼或主鍵稱為全碼或全鍵。

外碼或外鍵(Foreign Key): 某個屬性(或屬性組)不是這個關係的主碼或候選碼,而是另一個關係的 主碼

參照關係(Referencing Relation)和被參照關係(Referenced Relation): 參照關係也稱為從關係,被參照關係也稱為主關係,它們是指以外碼相關聯 的兩個關係。

 

 關係模式(Relation Schema): 關係模式是型(type),關係是 值(value),即關係模式是對關 系的描述;關係模式是靜態的、穩定的; 關係是動態的、隨時間不斷變化 的。

 

關係資料庫(Relation Database) 所有關係的集合,構成一個關係資料庫。 以關係模型作為數據的邏輯模型,並採用關係作為數據組織方式的一類數 據庫,其資料庫操作建立在關係代數的基礎上。

關係資料庫對關係的限定/要求:

1)每一個屬性都是不可分解的(不允許表中有表);

2)每一個關係僅僅有一種關係模式;

3)每一個關係模式中的屬性必須命名,屬性名不同;

4)同一個關係中不允許出現候選碼或候選鍵值完全相同的元組;

5)在關係中元組的順序(即行序)是無關緊要的,可以任意交換;

6)在關係中屬性的順序(即列序)是無關緊要的,可以任意交換。

基本的關係操作:

查詢 Query (集合的操作方式(一次一集合)

 

 

插入 Insert

 

刪除 Delete

 

 

修改 Update

****************************************************************************

關係數據語言的分類

關係代數語言:任何一種操作都包含三大要素: 操作對象、 操作符 、操作結果

SQL:結構化查詢語言

關係演算語言: 元組關係演算 、域關係演算

共同特點:具有完備的表達能力,是非過程化的集合操作語言,功能強, 能夠獨立使用也可以嵌入高級語言中使用。

傳統的集合運算:

 

*************************差(DIFFERENCE):R3=R1-R2******************************

 

**********************交(INTERSECTION):R3=R1∩R2**************************

 

 ********************笛卡爾積(CARTESIAN PRODUCT):R3=R1×R2********************

 專門的關係運算

 

 ***************************投影(PROJECTION):πA(R)**************************************

A:是屬性序列

關係代數中投影運算是對關係進行的垂直分解

 

 *************************連接(JOIN),也稱θ連接:**************************************

 

 ***********************除(DIVISION):R÷S************************************************

 

 

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近在學習Linux系統的,給我的感覺就是“智慧的結晶,智慧的大腦,智慧的操作” 今天研究到了一個有趣的命令 ln 我們先來看一下它的概念吧 Linux ln命令是一個非常重要命令,它的功能是為某一個文件在另外一個位置建立一個同步的鏈接。 當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個 ...
  • https://www.cnblogs.com/lemon-flm/p/7608029.html https://www.cnblogs.com/cy-8593/p/9506758.html https://www.jb51.net/article/156954.htm ...
  • 1.vim /etc/sysconfig/network-scripts/ifcfg-eth0 修改預設配置文件 2./etc/init.d/network restart 配置完畢重啟網卡服務 3.ifconfig 或 ip addr list/show 查看IP地址 無ifconfig命令可安裝 ...
  • CentOS7 以上機器一些命令和低版本CentOS是有些差異的,本文只針對CentOS7 以上版本。 CentOS7使用firewalld打開關閉防火牆與埠1、firewalld的基本使用啟動: systemctl start firewalld關閉: systemctl stop firewa ...
  • 安裝完成後在主機上登陸時,不管是輸入用戶,還是匿名都無法登陸 經過檢查,發現是因為/etc/hosts.deny禁止了所有ip訪問 將hosts.deny中的all:all刪除,或者在/etc/hosts.allow中添加vsftpd:all:allow都可以解決 ...
  • 前言 雖然現在已經9102年了硬碟空間越來越大越便宜,但win系統用久了系統盤還是會漸漸變小的,公司的電腦系統盤就已經不夠用了經常爆紅,這個時候兩個簡單快速高效的辦法 1.擴大系統盤空間,可以使用 win自帶的磁碟分區功能或者下個分區軟體,這點適用於其他盤空閑空間足的情況。 2.清理系統盤中的用不到 ...
  • 一、通過SecureCRT的rz、sz實現文件的上傳和下載 1.檢查是否安裝sz rz,命令如下 2.安裝lrzsz軟體,命令如下 3.文件上傳 4.文件下載 二、通過sftp實現文件的上傳和下載 為了數據和服務的安全, 很多生產環境中的Linux伺服器不能使用外網環境. 在只有SSH連接的情況下, ...
  • [toc] 1.Playbook劇本初識 1.什麼是playbook,playbook翻譯過來就是“劇本”,那playbook組成如下 play: 定義的是主機的角色task: 定義的是具體執行的任務playbook: 由一個或多個play組成,一個play可以包含多個task任務 簡單理解為: 使 ...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...