首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL 語句分類、數據庫三大範式通俗解析與系統數據庫組成詳解

     編輯:關於SqlServer

前言

系統學習資料庫從基礎概念入手:SQL 三大語句類別、範式設計原則、系統資料庫角色。本文以「通俗易懂、深入理解」為目標,拆解晦澀定義。

SQL 三大語句類別

類別縮寫核心動詞典型語句
資料定義語言DDL定義結構CREATE、ALTER、DROP
資料操作語言DML操作資料SELECT、INSERT、UPDATE、DELETE、TRUNCATE、MERGE
資料控制語言DCL控制權限GRANT、REVOKE、DENY

數據庫三大範式(1NF/2NF/3NF)通俗解析

範式本質:消除修改異常、最小化冗餘。層層遞進,滿足高階必滿足低階。

第一範式(1NF):原子性 + 唯一標識

  • 行唯一: 有主鍵、非空、不重複。
  • 屬性原子不可再分: 如「地址」存「湖南省,岳陽市,華容縣」違反 1NF,應拆省/市/縣三欄。

口訣: 一鍵定乾坤,屬性不可分。

第二範式(2NF):消除部分函數依賴

前提: 滿足 1NF。

核心: 非鍵屬性必須完全函數依賴於整個候選鍵,不能只依賴複合鍵的部分。

反例: 訂單表 (OrderID, ProductID) 為複合主鍵,OrderDate 僅依賴 OrderID → 部分依賴 → 違反 2NF。

修正: 拆分為訂單主表 + 訂單明細表。

口訣: 非鍵靠全鍵,部分依賴要不得。

第三範式(3NF):消除傳遞函數依賴

前提: 滿足 1NF + 2NF。

核心: 非鍵屬性之間不得有傳遞依賴,即非鍵屬性不可依賴另一非鍵屬性。

反例: 訂單表含 CustomerID、CompanyName,CompanyName 依賴 CustomerID → 傳遞依賴(OrderID → CustomerID → CompanyName) → 違反 3NF。

修正: 抽離客戶表。

統一口訣: 非鍵屬性依賴鍵,依賴全鍵,不依賴非鍵。

系統資料庫組成與職責

資料庫核心職責關鍵特徵
master實例級元數據、伺服器配置、所有資料庫資訊、啟動資訊損壞則實例無法啟動,務必定期備份
Resource隱藏唯讀,存放所有系統對象定義不直接操作,升級/修補時更新
model新資料庫模板,每個新庫均為其副本修改 model 影響後續建庫預設值
tempdb暫存物件(暫存表、表變數)、排序空間、行版本控制重啟實例時重建(基於 model),高併發瓶頸常在此
msdbSQL Server Agent 作業/排程/警報、備份/還原歷史、複寫、SSIS 套件自動化維護核心,亦需備份

總結

  • DDL/DML/DCL 分工明確,權限控制屬 DCL 常被忽視但極重要。
  • 1NF/2NF/3NF 口訣化:一鍵定乾坤屬性不可分 → 非鍵靠全鍵部分依賴不得 → 非鍵不依賴非鍵傳遞依賴除。
  • 系統五庫各司其職,master/tempdb/msdb 是運維備份重點。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved