資料庫基本概念(二)

来源:https://www.cnblogs.com/xhbJava/archive/2019/06/23/11074775.html
-Advertisement-
Play Games

一、資料庫基本概念 1、關係資料庫 (1)關係操作 關係操作所操作的對象和結果都是集合,成為一次一集合的方式。而非關係數據模型的資料庫操作方式為一次一記錄的方式。 關係數據模型中最重要的是關係查詢操作,主要分為:選擇(select)、投影(project)、連接(jion)、除(divide)、並( ...


一、資料庫基本概念

1、關係資料庫

(1)關係操作

  關係操作所操作的對象和結果都是集合,成為一次一集合的方式。而非關係數據模型的資料庫操作方式為一次一記錄的方式。

  關係數據模型中最重要的是關係查詢操作,主要分為:選擇(select)、投影(project)、連接(jion)、除(divide)、並(union)、差(except)、交(intersection)和笛卡爾積等。其中,選擇、投影、並、差、笛卡爾積是5種基本的操作。

(2)關係型資料庫語言

  在實際的關係資料庫系統中,為實現選擇、投影、並、差等操作,為用戶提供了一種介於關係代數和關係驗算之間的語言SQL(Strutured Query Language,結構化查詢語言)。SQL語言是用於關係資料庫查詢的結構化語言,目前許多關係型資料庫管理系統支持SQL語言,如SQL Server、Access、Oracle、DB2、MySQL等。

  SQL語言的功能包括數據查詢、數據操縱、數據定義和數據控制四個部分。SQL語言簡潔、方便、實用,為完成其核心功能只用了6個動詞——SELECT、CREATE、INSERT、UPDATE、DELETE和GRANT(REVOKE)。作為關係型資料庫標準語言雖然被眾多商用資料庫管理系統產品採用,但是不同的資料庫管理系統在實踐過程中都對SQL規範做了某改編和擴充。所以,在實際上不同資料庫管理系統之間的SQL語言不能完全互相通用。如甲骨文公司的ORACLE資料庫所使用的SQL語言是Procedural Language/SQL(簡稱PL/SQL),而微軟的SQL Server資料庫系統支持的是Transact-SQL(簡稱T-SQL)。

(3)關係的完整性

  關係資料庫模型的完整性規則是對關係的某種約束條件。關係模型中有三類完整性約束:實體完整性、參照完整性、用戶定義的完整性。當中實體完整性和參照完整性是關係模型必須滿足的完整性約束條件。被稱作是關係的兩個不變性。應該由關係系統自己主動支持。

  • 實體完整性(Entity Integrity):若屬性(指一個或一組屬性)A是基本關係R的主屬性,則A不能取空值。所謂空值就是“不知道”或“不存在”的值。
    依照實體完整性的規則的規定,基本關係的主碼都不能取控制。

    假設主碼由若幹屬性組成,則全部這些主屬性都不能取空值。
    對於實體完整性規則說明:
    1)實體完整性規則是針對基本關係而言的。一個基本表通常相應現實世界的一個實體集。

    如學生關係相應於學生的集合。
    2)現實世界中的實體是可區分的。即他們具有某種唯一性標識。比如每一個學生都是獨立的個體,是不一樣的。
    3)關係模型中以主碼作為唯一性標識。
    4)主碼中的屬性,即主屬性不能取空值。假設主屬性取空值。就說明存在某個不可標識的實體,即存在不可區分的實體,這與2)相矛盾,因此這個規則稱為實體完整性。

  • 參照完整性(Refernetial Integrity):在現實生活中,實體之間往往存在某種聯繫,在資料庫模型中的實體機實體之間的聯繫都用關係描述,這樣就存在著關係與關係間的引用。在關係資料庫系統中,通過引入外鍵的概念來表達實體之間的相互引用。

  1)設F是基本關係R的一個或一組屬性,但不是關係R的碼。

  K是基本關係S的主碼。假設F與K相相應,則稱F是R的外碼(foreign key)。

  並稱基本關係R為參照關係。

  基本關係S為被參照關係。外碼並不一定要與相應的主碼同名。
  2)若屬性(或屬性組)F是基本關係R的外碼。它與基本關係S的主碼K相相應(基本關係R與S不一定是不同的關係)。則對於R中每一個元組在F上的值必須為:◀或者取空值(F的每一個屬性值均為空值)◀或者等於S中的某個元組的主碼值。

  • 用戶定義的完整性(User-defined Integrity):實體完整性和參照完整性是任何關係資料庫系統都必須支持的。除此之外,不同的關係資料庫系統根據其應用環境不同,往往還需要一些特殊的約束條件,用戶定義的完整性就是針對某一具體關係資料庫的約束條件。它反映某一具體應用所涉及的數據必須滿足的語義要求。

  例如,在‘學生’表中,用戶規定總學分為60分才為及格。

 


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

-Advertisement-
Play Games
更多相關文章
  • 本文只總結一些常用的用法,更詳細的說明見 man seq 和 seq help 。 seq命令 seq 命令用於輸出數字序列。 語法格式 options 參數 | 說明 | f | 使用printf樣式的浮點格式 s | 指定分隔符,預設是\n w | 使用0填充左邊達到數字的最大寬度 實例 列印1 ...
  • 絕對路徑:從“/”根目錄下開始 常用的一些命令選項 ls ls :使用方式 ls {空格}選項 {空格}參數 (全寫為list)(等同於dir) 列出當前目錄下所有的文件,包括隱藏文件 列出當前目錄下所有文件的詳細信息 列出當前目錄下所有文件的詳細信息包括文件大小(此處是顯示的是實際大小) 列出當前 ...
  • 效果圖 前言 記得上高二的時候,閑來無事,上b站搜電腦病毒的視頻看(不要問我為什麼會搜這個),看到一個很有意思的"病毒",其實也不算病毒,它會控制桌面圖標形成一個人形,並跳舞,跳完之後電腦就藍屏了.之後下定決心也要整一個,埋頭研究了兩個星期吧,寫了一個貪吃蛇,此貪吃蛇非彼貪吃蛇,它當然是控制的桌面圖 ...
  • 重新安裝了VMware和Ubuntu,但是命令行提示符太單調,不美觀,如何更改呢。於是在網上巴拉巴拉搜尋一番。 1.更改PS1環境變數,這倆都可以,我選擇第一個: 2.在普通用戶下 ls-all,選擇.bashrc在文件最後插入上面的export PS1=代碼,然後輸入以下命令即可生效。 3.再修改 ...
  • 首先大數據這個趨勢已經很明瞭,但是進入這個領域有門檻,而且不小,要有心理準備,自學要因人而異,沒有基礎的前提下,有難度,後面我會給你一些學習的建議。 ...
  • 五、數據查詢語言(DQL) (重中之重) 六、事務控制語言(TCL) ...
  • 1、set key value //設置、修改值 2、get key //如果key不存在,返回nil,表示空。 3、type key //返回key對應的value的數據類型 4、rename key newKey //重命名key,即修改鍵的名稱。當key和newKey重名時,或者key不存在時 ...
  • redis.windows.conf中的部分參數說明 redis.windows.conf配置的是Redis伺服器。 bind 127.0.0.1 //設置Redis伺服器的ip地址 port 6379 //指定埠號 timeout 300 //當客戶端閑置多長時間後關閉連接,如果指定為 0,表示 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...