詳細解說關係型資料庫

来源:https://www.cnblogs.com/XXXHui/archive/2019/12/16/12050368.html
-Advertisement-
Play Games

目錄 1、認識關係型資料庫 1.1.1 什麼是關係型資料庫 1.1.2 實體關係模型 1.1.3 關係型資料庫管理系統RDBMS 1.1.4 使用SQL語言管理資料庫 1、認識關係型資料庫 資料庫簡而言之就是數據的集合,它是由文件系統存儲數據發展起來的,資料庫系統解決了多人資料庫讀取和寫入的併發性問 ...


目錄

1.1、認識關係型資料庫

1.1.1 什麼是關係型資料庫

1.1.2  實體關係模型

1.1.3  關係型資料庫管理系統RDBMS

1.1.4  使用SQL語言管理資料庫


1.1、認識關係型資料庫

資料庫簡而言之就是數據的集合,它是由文件系統存儲數據發展起來的,資料庫系統解決了多人資料庫讀取和寫入的併發性問題,同時它提供了事務的機制,使得存儲和管理資料庫數據更加安全可靠。資料庫系統讓用戶只處理邏輯數據層,比如表和視圖等。它使得用戶可以使用簡單易管理的方式來操作數據的數據。

1.1.1 什麼是關係型資料庫

數據技術經過幾十年的發展,經歷了人工管理、文件系統到現在的資料庫管理,提供了對數據更高級和更有效的管理。資料庫系統管理數據具有如下特點:

      (1)使用數據模型表示覆制的資料庫結構,用戶可以使用實體關係模型對數據進行建模,不僅可以表達數據本身,還可以描述數據之間的關係,這使得存儲在資料庫中的數據更容易理解和維護。

(2)數據系統將數據的邏輯結構與物理結構分離,用戶可以簡單地使用邏輯結構操作資料庫,而不用考慮物理存儲結構,簡化了資料庫操作的複雜性。一般來說,一個資料庫系統可以分為如圖1.1所示的3級。

(3)資料庫系統提供了數據的控制功能,他提供了多用戶併發機制,防止資料庫數據被非法更改。資料庫系統會提供數據的備份和恢復功能,可以避免出現災難性時間導致的數據丟失。數據提供數據完整性功能,並且提供了必要的安全性機制。

關係型資料庫系統是近30年來資料庫系統的主流模型,他使用數據之間的關係模型來存儲和管理資料庫。關係型資料庫的模型建立與20世紀70年代,美國的E.F.Codd發表了一遍名為《大型共用資料庫的數據關係模型》的論文,他定義了一個基於數學幾何理論的關係模型,關係型資料庫是一個符合關係模型的資料庫。

●註意:《大型共用資料庫的數據關係模型》已經具有簡體中文版本,感興趣的用戶可以通過湊所引擎瞭解關於這邊論文的詳細信息。

在現實世界彙總,大量的數據都是具有一些相關性的,關係型資料庫系統就是更具數據的關係對數據進行結構化的組織和存儲。對關係型資料庫的定義簡而言之就是:使用關係或二維表存儲信息。二維表是由行(也可以稱為元組)和列(也看可以稱為屬性)組成的,通常簡稱為表或者是關係型資料庫的實體。表中的每一行都具有相同的列集,因此可以將關係型數據稱為存儲在關係表中的資料庫。

舉個例子,為了存儲人事部門的數據,可以創建一個員工表和一個部門表,由於員工表中的每個人員信息都是屬於部門,因此關係型資料庫還會存儲員工表和部門之間的引用關係。當沒有使用關係型資料庫系統時,認識部門可能使用Excel創建一張人員表,示意結構如圖1.2所示。

人事部門還會創建一張部門表,部門表中包含了部門的名稱、部門的位置部門的編號等信息,人員表的所屬部門應該是要與部門表中的部門名稱保持一致,否則資料庫中的資料庫就會出現混亂,如圖1.3所示。

關係型資料庫出了存儲這些基本的數據信息外,還會存儲表之間的關係。關係型數據會維護這些關係的完整性,一遍提供更加結構話的存儲方式。

1.1.2  實體關係模型

資料庫主要用來存儲現實世界中的數據,關係型資料庫通過使用表盒關係來存儲數據,可以保存現實世界中的數據集合。實體關係模型對現實世界進行抽象,得出實體類型和實體間的關係,用來描述現實世界中數據的組成結構。在構建了實體關係後,一般會使用實體關係的圖來清晰地表達出實體關係的機構。實體關係圖(Entity Relationship Diagram)是指提供了表實體、屬性和關係的圖形化表示方式,用來描述現實世界的概念模型,簡稱為E-R圖。

實體關係模型具有3個核心的元素,在進行資料庫的分析和設計時,需要認真地理解這幾個元素的具體含義及在E-R圖彙總的表現形式,分別如下所示。

●實體(Entity):是具有相同特征和屬性的顯示世界事務的抽象,在E-R圖彙總用矩形表示,矩形框內註明實體的名稱。比如員工張三、員工趙七都是實體。

●屬性(Attribute):是指實體具有的特征,一個實體可以包含若幹個實體。在E-R圖彙總屬性用橢圓形表示,並使用線條將其與相應的實體連接起來。比如員工具有工號、入職日期等屬性。

●關係(Relationship):是指實體之間的像話聯繫的方式,一般具有一對一關係(1:1)、一對多關係(1:N)、多對多關係(M:N)。

以認識管理系統的人員信息和員工請假為例,通過使用實體關係建模,回執瞭如圖1.4所示的ER實體關係圖。

由圖1.4可以發現,人員和請假單這兩個實體使用矩形表示,實體的屬性使用橢圓形表示,實體與實體之間的關係使用另行表示。人員實體與請假單實體居勇1對多的關係,因此在另行附近使用1和N表示。

一般來說,資料庫設計人員對資料庫進行需求分析時,與資料庫的用戶進行溝通,資料庫的設計人員可能需要回執多種不同類型的圖來表單關係型資料庫的存儲結構,在邏輯設計階段回執E-R關係圖,可以使用Visio、PowerDesigner或者是ERWin Data Modeler等軟體來實現。

1.1.3  關係型資料庫管理系統RDBMS

資料庫管理系統是基於關係型資料庫模型創建的電腦軟體程式,其英文全稱是Relational Database Management System,簡稱RDBMS。資料庫管理系統是位於操作系統和用戶(或者是基於資料庫的應用程式)之間的一組資料庫管理程式,它提供了對資料庫中的數據進行統一管理和控制的功能,對歸根到底,資料庫中的數據是以文件的形式存放在操作系統中的,資料庫管理系統提供了資料庫和高級組織形成,他提供了對資料庫中的數據的統一管理和控制的功能,資料庫管理系統與用戶的示意圖如圖1.5所示。

資料庫管理系統負責對資料庫進行全方位的管理,他包含瞭如圖1.6所示的幾項職責。

如圖1.6所示,一個資料庫管理系統通常要提供如下所示的幾項功能。

●定義資料庫結構:DBMS提供數據定義語言來定義(DDL)資料庫結構,用來搭建資料庫框架,並被保存在數據字典中。

●存取資料庫內容:DBMS提供數據操作語言(DML),實現對資料庫數據的基本存取操作——檢索、插入、修改和刪除。

●資料庫的運行管理:DBMS提供數據控制功能,即數據的安全性、完整性和併發控制等對資料庫運行進行有效的控制和管理,以確保數據正確有效。

●資料庫的建立和維護:包括資料庫出事數據的裝入,數據的轉儲、恢復、重組織,系統性能監視、分析等功能。

●資料庫的傳輸:DBMS提供處理數據的傳輸,實現用戶程式與DBMS之間的通信,通常與操作系統協調完成。

有了關係型資料庫管理系統,開發人員就可以在資料庫中創建資料庫、創建表、存取資料庫內容、對資料庫進行備份和管理,只需要理解常用的系統相關的操作,而不用去研究關係型資料庫系統內部深奧難懂的數學方方面的理論知識。

目前比較常見的DBMS有Oracle、SQL Server、Mysql、DB2等,它們都使用關係型資料庫模型作為基礎構建的軟體,它們建立在關係數據模型的基礎之上,通過一系列相關的表和其他資料庫,對象把現實世界中存在的事務及事務之間的聯繫用資料庫對象,比如表、視圖、索引、關係加以存儲,使之為資料庫的用戶提供規範化的信息。

1.1.4  使用SQL語言管理資料庫

為了便於管理關係型資料庫,資料庫管理系統使用一種稱為SQL的聲明性語言。SQL的全稱是結構化查詢語言(Structured Query Language),是一種對關係資料庫中的數據進行定義和操作的句法。他獨立於資料庫管理系統,並且以經被國際標準化組織指定為一種操作資料庫的標準語言。SQL語言可以操作和管理資料庫,各種資料庫管理廠商使用SQL標準來定製自己的資料庫管理方式,因此它對於所有的資料庫管理系統來說是通用的。

●註意:由於不同的資料庫廠商對SQL語言的支持與標準仍然存在著細微的不同,因此在使用時必須要參加各個資料庫廠商提供的SQL操作文檔。

SQL語言是一種高級的非過程化編程語言。SQL語言允許用戶不瞭解資料庫的底層結構和具體的操作方式,只需要在一個標準化的、較高層次的數據結構上進行工作,這就大大簡化了資料庫的操作方式,同時因為不與資料庫、硬體等緊密耦合,因此也使得基於資料庫的應用系統具有很好的可移值性。其操作示意如圖1.7 所示。

由圖中可以看到,任何客戶端通過SQL語言來與資料庫管理系統進行通信,通過向伺服器端發送SQL語句,資料庫管理系統將這些SQL語句轉換為實際的對資料庫數據進行操作的指令來對資料庫進行管理,這簡化了資料庫管理系統的複雜程度,提高了用戶對資料庫的使用效率。

SQL語言主要又分為如下6大類。

(1)數據查詢語言(DQL) :也稱為“數據檢索語句”,用於從表中獲得數據,確定數據怎樣在應用程式給出。關鍵字SELECT是DQL ( 也是所有SQL)用得最多的語句,其他DQL常用的關鍵字有WHERE、ORDER BY、GROUP BY和HAVING.這些DQL關鍵字常與其他類型的SQL語句一起使用。

(2)數據操作語言(DML) :分別用於添加、修改和刪除表中的行。也稱為動作查詢語言。

(3)事務處理語言(TPL) :能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括BEGIN TRANSACTION、COMMIT和ROLLBACK.

(4)數據控制語言(DCL) :通過GRANT或REVOKE獲得許可,確定單個用戶和用戶組對資料庫對象的訪問。某些RDBMS可用GRANT或REVOKE控制對錶單各列的訪問。

(5)數據定義語言(DDL):在資料庫中創建新表或刪除表(CREAT TABLE或DROP(5)數據定義語言(DDL):在資料庫中創建新表或刪除表(CREAT TABLE或DROP也是動作查詢的一部分。

(6)指針控制語言(CCL) :用於對一個或多個表的單獨行進行操作,比如DECLARECURSOR、FETCH INTO和UPDATE WHERE CURRENT等語句。

可以看到這些SQL語句基本上涵蓋了進行資料庫操作的方方面面,基本上學習資料庫操作多數時間都是在使用SQL語句進行管理,因此對於一名合格的DBA來說,熟練地掌握SQL語言是非常有必要的。


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

-Advertisement-
Play Games
更多相關文章
  • 磁碟在系統剛分區的時候可以做磁碟分區最好 1.右鍵我的電腦,選在管理 2.在此視窗下依次展開選項,點擊存儲->磁碟管理,右邊是我已經分好的盤不用看的 3.確認一下我的電腦的各個盤的空間,選擇要壓縮的空間,本次以E盤為例 4.右鍵點擊E盤,選擇 壓縮捲,然後預設的界面是平均分配我的E盤大小,我的是預設 ...
  • #!/bin/bashlocation=/root/rmfind $location -mtime +30 -print | xargs rm -rf //-mtime是距離上一次修改時間 -print是只顯示文件 xargs是獲取find查找的結果在通過rm命令刪除 ...
  • 一,I/O重定向 重定向正常輸出 \ :覆蓋以存在文件的內容,很危險的操作 \ :如果文件已經存在,則是在原內容的最後追加。 可以禁止 的覆蓋行為,使用 。只在當前會話有效。 恢復覆蓋行為。 \ |: 已經禁止了覆蓋,但是確認就是要覆蓋,可以使用。 重定向錯誤輸出 2 :覆蓋以存在文件的內容,很危險 ...
  • 關係型資料庫: 1、定義: 創建在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的數據 2、關係模型常用概念: (1)關係:可以理解為一張二維表,每個關係都具有一個關係名,就是通常說的表名 (2)元組:可以理解為二維表中的一行,在資料庫中經常被稱為記錄 (3)屬性:可以理解為二 ...
  • 總結一下平時用到最多的sql語句 1.特殊日期 --今天凌晨SELECT DATEADD(dd,DATEDIFF(dd,0,GETDATE()),0)--明天凌晨SELECT DATEADD(dd,DATEDIFF(dd,0,GETDATE())+1,0)--當周周一(每周從周日開始)SELECT ...
  • 數據挖掘第三篇 文本分類 文本分類總體上包括8個步驟。數據探索分析 》數據抽取 》文本預處理 》分詞 》去除停用詞 》文本向量化表示 》分類器 》模型評估.重要python庫包括numpy(數組),pandas(用於處理結構化數據),matplotlib(繪製詞雲,便於直觀表示),sklearn(提 ...
  • MySQL的安裝 一、前期準備 獲取MySQL解壓版安裝包(本文使用的是 【mysql-5.7.28-winx64.zip】版本) 獲取方式: 通過官網下載,官方下載地址:“https://dev.mysql.com/downloads/mysql/” 。(註意:需要oracle賬號登錄後方可下載) ...
  • low等級 代碼如下: 1 <?php 2 3 if( isset( $_REQUEST[ 'Submit' ] ) ) { 4 // Get input 5 $id = $_REQUEST[ 'id' ]; 6 7 // Check database 8 $query = "SELECT firs ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...