讀SQL學習指南(第3版)筆記01_背景知識

来源:https://www.cnblogs.com/lying7/archive/2023/08/18/17635474.html
-Advertisement-
Play Games

![](https://img2023.cnblogs.com/blog/3076680/202308/3076680-20230816163336851-1607680900.png) # 1. 資料庫 ## 1.1. 一組相關信息 ## 1.2. 電話簿肯定是最為普及且常用的資料庫 # 2. 非 ...


1. 資料庫

1.1. 一組相關信息

1.2. 電話簿肯定是最為普及且常用的資料庫

2. 非關係型資料庫系統

2.1. 層次資料庫系統

2.1.1. 以一個或多個樹形結構來表示數據

2.1.2. 提供了定位特定客戶信息樹的工具,並能夠遍歷該樹找到所需的賬戶和/或交易

2.1.3. 樹中的每個節點都具有0個或1個父節點,以及0個、1個或多個子節點

2.1.3.1. 單根層次結構

2.1.4. 在大型機世界中找到

2.1.5. 已在目錄服務領域中重獲新生

2.1.5.1. Microsoft的Active Directory

2.1.5.2. 開源的Apache Directory Server

2.2. 網狀資料庫系統

2.2.1. 表現為多個記錄以及定義不同記錄之間關係的多個鏈接

2.2.2. 具有多根層次的特點

2.2.3. 在大型機世界中找到

3. 關係模型

3.1. E.F.Codd博士

3.1.1. 1970年

3.1.2. IBM研究院

3.1.3. A Relational Model of Data for Large Shared Data Banks論文

3.1.3.1. 大型共用數據銀行的數據關係模型

3.1.4. 使用數據表集合來表示數據

3.1.5. 相關實體之間並不是用指針來導航的

3.1.6. 藉助冗餘數據來鏈接不同表中的記錄

3.2. 主鍵(primary key)

3.2.1. 能夠唯一標識某一行的信息

3.2.2. 每種資料庫伺服器都提供了相應的機制來生成用作主鍵的唯一數字

3.2.2.1. 不用操心跟蹤已分配的數字

3.2.3. 主鍵列在被賦值後是絕不允許被修改的

3.2.4. 複合主鍵

3.2.4.1. 由兩個或多於兩個列組成的主鍵

3.2.5. 自然鍵(natural key)

3.2.6. 代理鍵(surrogate key)

3.3. 外鍵(foreign key)

3.4. 規範化(normalization)

3.4.1. 改進資料庫設計以確保獨立信息僅出現在一處(外鍵除外)的過程

4. SQL

4.1. IBM委托一個小組根據Codd的想法建立一個原型

4.1.1. 這個小組創建了DSL/Alpha的簡化版本SQUARE

4.1.2. 經過對SQUARE的改進,產生了SEQUEL語言,最終該語言被命名為SQL

4.2. ANSI

4.2.1. 美國國家標準協會(American National Standards Institute)

4.2.2. 20世紀80年代中期1986年發佈第一個SQL標準

4.2.3. 在1989年、1992年、1999年、2003年、2006年、2008年、2011年、2016年發佈了新版本

4.3. SQL並不是某種縮寫

4.3.1. “Structured Query Language”結構化查詢語言

4.3.2. 可以使用獨立的字母(S.Q.L)或使用“sequel”

4.4. 語句分類

4.4.1. SQL模式語句(SQL schema statement)

4.4.1.1. 用於定義存儲在資料庫中的數據結構

4.4.1.2. 通過SQL模式語句所創建的所有資料庫元素都被存儲在一個名為“數據字典”(data dictionary)的特殊表集合內

4.4.1.3. 關於資料庫的數據被稱為“元數據”

4.4.2. SQL數據語句(SQL data statement)

4.4.2.1. 用於操作之前使用SQL模式語句定義的數據結構

4.4.3. SQL事務語句(SQL transaction statement)

4.4.3.1. 用於啟動、結束、回滾事務

4.5. 一種非過程化語言

4.5.1. 只定義了必要的輸入和輸出

4.5.2. 如何執行語句,則由名為優化器(optimizer)的資料庫引擎組件來處理

4.5.3. 優化器的工作是檢查SQL語句,考慮數據表的配置以及可用的索引,並決定最有效的執行路徑

4.5.4. 單憑SQL無法編寫完整的應用程式

4.5.5. 需要將SQL與編程語言集成起來

4.5.5.1. Oracle的PL/SQL語言

4.5.5.2. MySQL的存儲過程語言

4.5.5.3. Microsoft的Transact-SQL語言

4.5.5.4. SQL數據語句是該語言語法的一部分,允許無縫地將資料庫查詢與過程化語句集成到一起

4.6. 大多數SQL實現將位於“/”和“/”之間的文本視為註釋

5. 跨平臺SQL

5.1. 最有前途的工具之一是 Apache Drill

5.1.1. 是一款開源查詢引擎,允許用戶編寫查詢,以訪問存儲在大多數資料庫或文件系統中的數據

6. 關係型資料庫產品

6.1. 商業化的關係型資料庫

6.1.1. Oracle公司的Oracle Database

6.1.2. Microsoft公司的SQL Server

6.1.3. IBM公司的DB2 Universal Database

6.2. 最常用的兩個開源資料庫伺服器

6.2.1. PostgreSQL

6.2.2. MySQL


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

-Advertisement-
Play Games
更多相關文章
  • ### 歡迎訪問我的GitHub > 這裡分類和彙總了欣宸的全部原創(含配套源碼):[https://github.com/zq2599/blog_demos](https://github.com/zq2599/blog_demos) ### 本篇概覽 - 本篇內容並非資料庫相關的核心知識,而是對 ...
  • # UGUI的InputField(輸入框)組件的介紹及使用 ## 1. 什麼是UGUI的InputField組件? UGUI的InputField組件是Unity中的一個用戶界面組件,用於接收用戶的輸入。它可以用於創建文本輸入框、密碼輸入框等功能。 ## 2. UGUI的InputField組件的 ...
  • ## 一、什麼是結果過濾器? 結果過濾器(**ResultFilter**),是對執行的Action結果進行處理的一種AOP思想,適用於任何需要直接環繞 View 或格式化處理的邏輯。結果過濾器可以**替換或更改 Action 結果**。在 IActionResult 執行的前後執行,使用它能夠控制 ...
  • <div class="van-cell van-field"> <div class="van-cell__title van-field__label">頭像:</div> <div class="van-cell__value van-field__value"> <div class="va ...
  • Windows服務是在Windows操作系統上,以後臺形式運行的應用程式。最近在公司要求使用Windows服務作為消息隊列的消費端,所以自行研究了一下C#中Windows服務如何創建以及如何使用,以及部署的方式。 ...
  • 哈嘍大家好,我是鹹魚 之前鹹魚在《[Linux 網路收包流程](https://mp.weixin.qq.com/s?__biz=MzkzNzI1MzE2Mw==&mid=2247486122&idx=1&sn=df659a7458028772c9595e98d5cefbc1&chksm=c2930 ...
  • # 一.安裝環境 ## 1.操作系統 **CentOS-7.6-x86_64-DVD-1810.iso** **Root用戶!!!** ## 2.虛擬機設置 ![image](https://img2023.cnblogs.com/blog/2840133/202308/2840133-202308 ...
  • 流量限制模下載和安裝 安裝完成後,可以在IIS管理工具里點擊“Bit Rate Throttling”節點。 根據你的文件及類型配置流量限制規則: 以下白皮書是更多的一些幫助和內容: Bit Rate Throttling Module Setup Bit Rate Throttling Confi ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...