數據庫理論基本概念

數據庫理論基本概念

三級模式和兩級映像

外模式            > 用戶和數據庫系統的接口
--------   外模式-概念模式映射    
概念模式          > 數據的邏輯結構和特征的描述
--------   概念模式-內模式映射
內模式            > 數據物理結構和存儲方式的描述三級模式分別對應:視圖、基本表、存儲文件
兩級映像保證了數據的獨立性

術語

關系: 一個關系就是一張表,每個關系有個關系名。

元組: 存儲文件中的一行記錄

屬性: 表中的列頭(列名、字段)稱為屬性,屬性值相當于記錄中的數據項或字段值。

域: 屬性的取值范圍

關系模式格式: 關系名(屬性名1, 屬性名2,…)

例:S(id, name, age, sex) 學生S關系模式,屬性為學號、姓名、年齡、性別

候選碼:能夠唯一標識表中記錄的最小屬性集,一個表可以有多個候選碼。

主碼: 將最穩定的候選碼作為主碼

例如,考慮一個名為Employees的表,其中包含EmployeeIDSSN(社會保險號)和Name等屬性。如果每個員工都有一個唯一的EmployeeID和一個唯一的SSN,那么EmployeeIDSSN都可以作為候選碼。但出于實際考慮(如隱私和穩定性),通常會選擇EmployeeID作為主碼。

主/非主屬性: 包含在候選碼中的屬性成為主屬性,反之稱為非主屬性。

外碼(外鍵): 外鍵是一個字段(或字段組合),其值必須在另一個表的主鍵(或具有唯一約束的字段)中存在。

當兩個表之間存在多對多關系時,通常會引入一個關系表(或稱為橋接表、關聯表、映射表等)來存儲這兩個表之間的關系。這個關系表通常會包含兩個外鍵列,分別引用兩個原始表的主鍵列,并且可能還會有一個自己的主鍵列(盡管在某些數據庫系統中,這兩個外鍵的組合也可以作為復合主鍵)。

全碼(了解): 若關系R(H,L,M,P)的主鍵為全碼,則關系R的主鍵為HLMP。

完整性約束

實體完整性約束:

  • 主鍵約束:候選碼的值不能為空(包括主碼/主鍵)

參照/引用完整性約束:

  • 外鍵約束:確保一個表中的數據匹配另一個表中的數據。外鍵是一個字段或字段組合,其值引用了另一個表的主鍵。外鍵字段可以有空值,除非設置了級聯更新或刪除規則。

域完整性約束:

  • 數據類型約束:確保字段中的數據是預期的數據類型。
  • 檢查約束(Check Constraint):限制字段中的值范圍或格式。例如,可以確保年齡字段中的值在0到150之間。
  • 默認約束(Default Constraint):當沒有為字段指定值時,提供默認值。
  • 非空約束(Not Null Constraint):確保字段必須有一個值。

用戶自定義完整性約束:

  • 觸發器(Triggers):基于某個事件(如INSERT、UPDATE或DELETE操作)自動執行或激活的SQL語句或存儲過程。觸發器可以用于實現復雜的業務規則和數據完整性檢查。

  • 存儲過程和函數(Stored Procedures and Functions):封裝的SQL代碼塊,可以在數據庫中執行復雜的邏輯和計算。它們可以用于確保數據滿足特定的業務規則或條件。

  • 規則和斷言(Rules and Assertions):在某些數據庫系統中(如SQL Server中的規則或PostgreSQL中的斷言),它們可以定義數據的驗證邏輯。然而,并非所有數據庫系統都支持這些特性。

  • 唯一性約束(Unique Constraint):確保字段或字段組合在表中的值是唯一的,但允許有空值。

  • 索引約束:雖然索引主要用于提高查詢性能,但它們也可以用于確保數據的唯一性(通過創建唯一索引)。

  • 序列(Sequences):在某些數據庫系統中,序列用于生成唯一的數字,通常用于自動填充主鍵字段。

關系代數

在這里插入圖片描述

關系的并: 關系R與關系S的所有元組的合并,再刪去重復元組,記為 R ∪ S

關系的交: 同時屬于關系R與關系S的元組集合,記為R ∩ S

關系的差: 關系R與關系S的差為從關系R中刪去與關系S中相同的元組,記為 R - S

笛卡爾積: 兩個集合R和T,它們的笛卡爾積表示為R × T,是一個新的集合,其中的每個元素都是R中的一個元素和T中的一個元素組成的有序對。

在這里插入圖片描述

投影: 從垂直方向進行運算,在關系R中選出若干屬性列組成新的關系。記作:π

選擇: 從水平方向進行運算,選擇滿足指定條件的元組,記作:δ

在這里插入圖片描述

上例中 π A , C ( R ) π_{A,C}(R) πA,C?(R) 同理 π 1 , 3 ( R ) π_{1,3}(R) π1,3?(R) δ B = ′ 5 ′ ( S ) δ_{B='5'}(S) δB=5?(S) 同理 δ 1 = ′ 5 ′ ( S ) δ_{1='5'}(S) δ1=5?(S) 可以用列序號

θ連接: 按條件進行連接

在這里插入圖片描述

自然連接: 基于兩個關系中共同存在的屬性(通常稱為主鍵和外鍵)來組合這兩個關系

在這里插入圖片描述

外連接:

在這里插入圖片描述

關系模式

關系模式定義為:R<U,F>

  • U為R的屬性
  • F為屬性組U上的依賴

例1:最終目的就是通過候選關鍵字組合可以表示關系中的所有屬性

  • 因為A不依賴任何屬性,所以候選關鍵字肯定包括A
  • 選擇A、B可以把C表示出來(AB→C),故AB是一組候選關鍵字
  • 選擇A、C可以把B表示出來(C→B),故AC是一組候選關鍵字
  • 在候選關鍵字中的屬性都為主屬性

在這里插入圖片描述

例2:

  • A可推出B、C, C可推出D
  • A、E可推出H

在這里插入圖片描述

例3:

  • 52空四個選項的閉包都可以推出A1 A2 A3 A4,但是主鍵應滿足其屬性的任意真子集不能表示全集(U)
  • A1→A4是冗余的因為,A1→A2、A2→A4,從而A1和A4存在傳遞依賴,即A1和A4的關系可以通過其它關系推導出來。
  • 注意:如果刪除A2→A4,雖說A1的閉包依舊可以推出所有屬性,但依舊無法推出A2→A4的依賴關系。

在這里插入圖片描述

例4:

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13407.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13407.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13407.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

避雷:搭建ai知識庫的6大注意事項

隨著人工智能技術的發展&#xff0c;ai知識庫成為眾多企業追求的一個重要部分&#xff0c;幫助企業提高運營次效率&#xff0c;越來越受到人們的關注。但是&#xff0c;在搭建ai知識庫的過程中&#xff0c;稍不留意&#xff0c;就會漏掉一些小細節&#xff0c;導致做出來的ai知…

【LeetCode】438.找到字符串中所有字母異位詞

找到字符串中所有字母異位詞 題目描述&#xff1a; 給定兩個字符串 s 和 p&#xff0c;找到 s 中所有 p 的 異位詞 的子串&#xff0c;返回這些子串的起始索引。不考慮答案輸出的順序。 異位詞 指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&#xff09;。 示…

Scala學習筆記4: 數組

目錄 第四章1- 定長數組2- 變長數組3- 遍歷數組和數組緩存4- 數組轉換5- 常用算法6- 多維數組end 第四章 1- 定長數組 在Scala中, 定長數組可以使用 Array 類來創建; 定長數組在創建時需要指定數組的長度, 并且長度在整個數組生命周期中保持不變; 示例: // 定義一個定長數組…

GPT-4o 引領人機交互新風向的向量數據庫Milvus Cloud 成本

成本 AIGC 時代對于冷熱儲存的呼喚 成本一直是向量數據庫獲得更廣泛使用的最大阻礙之一,這個成本來自兩點: 儲存,絕大多數向量數據庫為了保證低延遲,需要把數據全量緩存到內存或者本地磁盤。在這個動輒百億量級的AI 時代,意味著幾十上百 TB 的資源消耗。 計算,數據需…

OpenFeign高級用法:緩存、QueryMap、MatrixVariable、CollectionFormat優雅地遠程調用

碼到三十五 &#xff1a; 個人主頁 微服務架構中&#xff0c;服務之間的通信變得尤為關鍵。OpenFeign&#xff0c;一個聲明式的Web服務客戶端&#xff0c;使得REST API的調用變得更加簡單和優雅。OpenFeign集成了Ribbon和Hystrix&#xff0c;具有負載均衡和容錯的能力&#xff…

線性回歸模型之套索回歸

概述 本案例是基于之前的嶺回歸的案例的。之前案例的完整代碼如下&#xff1a; import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import Ridge, LinearRegression from sklearn.datasets import make_regression from sklearn.model_selectio…

NegativePrompt:利用心理學通過負面情緒刺激增強大型語言模型

【摘要】大型語言模型 (LLM) 已成為各種應用不可或缺的一部分&#xff0c;從傳統的計算任務到高級人工智能 (AI) 應用。這種廣泛的應用促使社會科學等各個學科對 LLM 進行了廣泛的研究。值得注意的是&#xff0c;研究表明 LLM 具有情商&#xff0c;可以通過積極的情緒刺激進一步…

C++:深入理解多態

一、多態的概念 多態的概念&#xff1a;通俗來說&#xff0c;就是多種形態&#xff0c;具體點就是去完成某個行為&#xff0c;當不同的對象去完成時會產生出不同的狀態。 那究竟多態的實際價值體現在哪里呢&#xff1f;&#xff1f; 1、舉個例子比如說購買高鐵票這個行為&…

Spring Boot | SpringBoot 中 自定義 “用戶授權管理“ : 自定義“用戶訪問控制“、自定義“用戶登錄控制“

目錄: 一、SpringBoot 中 自定義 "用戶授權管理" ( 總體內容介紹 ) :二、 自定義 "用戶訪問控制" ( 通過 "HttpSecurity類" 的 authorizeRequests( )方法來實現 "自定義用戶訪問控制" ) :1.基礎項目文件準備2.實現 "自定義身份認…

4. 分布式鏈路追蹤客戶端工具包Starter設計

前言 本文將從零搭建分布式鏈路追蹤客戶端工具包的Starter&#xff0c;并將在后續文章中逐步豐富支持的場景。這里首先將搭建一個最基礎的Starter&#xff0c;能提供的功能和1. 看完這篇文章我奶奶都懂Opentracing了一文中的示例demo類似。 相關版本依賴如下。 opentracing-…

Scala學習2: 控制結構和函數

目錄 第二章 控制結構和函數1- 條件表達式2- 語句終止3- 塊表達式和賦值4- 輸入和輸出5- 循環6- 高級for循環和for推到式7- 函數8- 默認參數和帶名參數9- 可變參數10- 過程11- 懶值12- 異常end 第二章 控制結構和函數 1- 條件表達式 Scala的 if/esle 語法結構與java一樣, 但是…

MySQL表突然卡死,刪、查操作加載不停解決辦法

今天遇到了MySQL刪表的時候卡死情況。然后通過網上查閱資料和項目組溝通&#xff0c;了解到了有多人同時對同一張表進行了操作。我和另一個同事同時進行了刪除操作&#xff0c;然后另兩位同時進行了查詢操作&#xff0c;然后還有一位同事用dolphin調度&#xff0c;用datax采集數…

【SQL】SQL常見面試題總結(4)

目錄 1、空值處理1.1、統計有未完成狀態的試卷的未完成數和未完成率1.2、0 級用戶高難度試卷的平均用時和平均得分 2、高級條件語句2.1、篩選限定昵稱成就值活躍日期的用戶&#xff08;較難&#xff09;2.2、篩選昵稱規則和試卷規則的作答記錄&#xff08;較難&#xff09;2.3、…

SmartEDA助力電工基礎實驗:打造高效、智能的學習新體驗

在電工基礎實驗的教學與學習中&#xff0c;傳統的實驗設備往往存在著操作復雜、數據處理繁瑣等問題&#xff0c;給學生的學習帶來了不小的挑戰。然而&#xff0c;隨著科技的不斷發展&#xff0c;一種名為SmartEDA的智能電工實驗輔助設備正逐漸走入課堂&#xff0c;以其高效、智…

Es6-對象新增了哪些擴展?

?&#x1f308;個人主頁&#xff1a;前端青山 &#x1f525;系列專欄&#xff1a;Javascript篇 &#x1f516;人終將被年少不可得之物困其一生 依舊青山,本期給大家帶來Javascript篇專欄內容:Es6-對象新增了哪些擴展&#xff1f; 目錄 一、參數 二、屬性 函數的length屬性 …

Unsupervised Out-of-Distribution Detection with Diffusion Inpainting

Unsupervised Out-of-Distribution Detection with Diffusion Inpainting 摘要1.介紹2 背景3 3. Lift, Map, Detect摘要 無監督的異常分布檢測(OOD)旨在通過僅從未標記的域內數據中學習來識別域外數據。我們提出了一種用于此任務的新方法——提升、映射、檢測(LMD),該方法…

數據結構-棧(帶圖)

目錄 棧的概念 畫圖理解棧 棧的實現 fun.h fun.c main.c 棧的概念 棧&#xff08;Stack&#xff09;是一種基本的數據結構&#xff0c;其特點是只允許在同一端進行插入和刪除操作&#xff0c;這一端被稱為棧頂。遵循后進先出&#xff08;Last In, First Out, LIFO&#…

瀏覽器下載附件流建議

大文件下載可采用附件流的方式&#xff0c;后端設置一下響應參數&#xff0c;然后以流的方式返回前端 res.set({ "Content-Type": "application/octet-stream", "Content-Disposition": "attachment;filename* UTF-8"fixedEncodeUR…

【論文粗讀|arXiv】GaSpCT: Gaussian Splatting for Novel CT Projection View Synthesis

Abstract 本文提出了一種新穎的視圖合成和3D場景表示方法&#xff0c;用于為計算機斷層掃描&#xff08;CT&#xff09;生成新的投影視圖。 方法采用了Gaussian Splatting 框架&#xff0c;基于有限的2D圖像投影集&#xff0c;無需運動結構&#xff08;SfM&#xff09;方法&am…

CSPM-4是什么?報考條件有哪些?

2021年10月&#xff0c;《國家標準化發展綱要》明確提出構建多層次從業人員培養培訓體系&#xff0c;開展專業人才培養培訓和國家質量基礎設施綜合教育。建立健全人才的職業能力評價和激勵機制。由中國標準化協會&#xff08;CAS&#xff09;組織開展的項目管理專業人員能力評價…