麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > SQL Server > 正文

淺述SQL Server的語句類別 數據庫范式 系統(tǒng)數據庫組成

2024-08-31 01:04:22
字體:
來源:轉載
供稿:網友

前言

終于等到這一天,我要開始重新系統(tǒng)學習數據庫了,關于數據庫這塊,不出意外的話,每天會定時更新一篇且內容不會包含太多,簡短的內容,深入的理解。

SQL語句類別

SQL語句包括以下三個類別

(1)數據定義語言(Data Definnition Language)即DDL,我們數據最終從何而來,當然首先必須得建立表,所以它包括CREATE、ALTER、DROP表。

(2)數據操作語言(Data Manipulation Language)即DML,我們對數據需要進行什么操作,當然無非就是增刪改查,所以它包括SELECT、INSERT、UPDATE、DELETE,其中還包括TRUNCATE、MERGE。

(3)數據控制語言(Data Control Language)即DCL,我們操作數據庫時針對不同的用戶會授予不同權限。

數據庫范式

范式是什么玩意,它意指規(guī)范化規(guī)則,通俗易懂一點講則是定義的規(guī)范、規(guī)則,需要我們去遵守,那么為何要定這一套規(guī)則呢?我們反過來想,肯定是前人遇到過,若不定義這一套規(guī)則,則出現這樣或那樣的問題,為了規(guī)避這樣問題的出現則出了這一套規(guī)則,主要是為了解決如下兩點問題。

(1)避免在數據修改過程中出現異常。

(2)保持數據最低限度的冗余。

數據庫范式最基礎的范式為第一范式(1NF)、第二范式(2NF)、第三范式(3NF),還有更高層次的范式,但太過于復雜我們不做探討,大部分書籍都這樣說,我們就這樣去了解。

第一范式(1NF)

定義:關系表中行必須是唯一且屬性是原子性的。

太晦澀,太抽象,不太懂,我們一一來分析,我們看看上述定義中重點在于行【唯一】,屬性【原子性】。

那么到底什么情況下才算是行唯一呢?

第一:既然是唯一,那么行中某一標識必須是已知而非未知即不能為空

第二:唯一也就是說不能重復諾

第三:怎么保證行唯一呢?通過定義一個唯一鍵來實現唯一行。

那么到底什么是原子性呢?

第一看到原子這個詞語是不是會立馬聯(lián)想到中國獨立研制的原子彈爆發(fā),又或者是上化學課遇到的第一個化學式2H2+O2=2H2O,2個氫氣即4個氫原子與1個氧氣即2個氧原子集合生成1個水分子, 哦,回顧一下,分子是由原子組成,原子由原子核和核外電子組成,原子核又由質子和中子組成,還有什么夸克之類的,無論是程序語言還是數據庫中都一直在講原子性,為什么沒有講質子性和夸克性呢,因為原子已經算是比較小的,所以一直用原子性來強調并劃分,為了方便理解,可以這么思考,后面的就不用在敘述,到了這里還沒明白么,就相當于原子組成分子,將原子作為最小的粒度即不能再分,那么我們反過來想屬性的原子性即屬性不可再劃分,這又是什么意思,比如在表中有一個地址屬性,如果我們存如(湖南省,岳陽市,華容縣)這樣就違背了第一范式,這個屬性還是可以再劃分為省、城市、縣。

到這里我們可以作出總結第一范式滿足的條件:

(1)唯一標識的鍵

(2)鍵不能為空

(3)鍵不能重復

(4)屬性不可再劃分

第二范式(2NF)

定義:在滿足第一范式的前提下,每一個非鍵屬性必須滿足對整個候選鍵的完全函數依賴即非鍵屬性不能是對候選鍵某部分的完全函數依賴。

好了,我們繼續(xù)入上述解釋第一范式來解釋第二范式晦澀難懂的定義。我們看下如下表

sqlserver,范式

上述定義候選鍵都是指的主鍵。上述給出表中OrderId和ProductId都是作為候選鍵即主鍵,但是此時我們可以通過部分候選鍵(主鍵)比如OrderId得到OrderDate、CustomerId和CompanyName等列,此時是僅僅是OderId的部分依賴而非對OderId和ProductId二者的完全依賴。此時為了表現出對候選鍵的完全依賴應該劃分成如下兩個表。

sqlserver,范式

所以將上述定義通俗講則是:屬性對主鍵應該屬于完全依賴而非部分依賴,否則違反第二范式。

第三范式(3NF)

同樣第三范式是在滿足第一和第二范式的前提下來看第三范式。

定義:所有非鍵屬性必須依賴于非傳遞的候選鍵,也就是非鍵屬性相互之間必須相互獨立,進一步講非鍵屬性之間不能形成依賴關系。

我們看看上述經過修改滿足第二范式的兩個表,此時訂單表中OrderId為主鍵,客戶Id即CustomerId和公司名稱即CompanyName對OrderId是完全依賴,我們可以通過訂單Id得到客戶Id,也可以通過訂單Id得到公司名稱,同時我們也可以通過客戶Id得到客戶公司名稱,也就是說此時CustomerId和CompanyName是一種傳遞關系,而非相互之間獨立。此時若需要滿足第三范式則應該是如下表示:

sqlserver,范式

我們可以看出第三范式著重強調的是非鍵屬性與非鍵屬性之間獨立,而第二范式著重強調的是非鍵屬性與候選主鍵的完全依賴。所以第二范式和第三范式我們統(tǒng)一概括為:非鍵屬性必須是對鍵的依賴,而非相互之間依賴,并且是對整個鍵的依賴。

系統(tǒng)數據庫組成

當打開數據庫中后在數據庫下默認會有個系統(tǒng)數據庫,里面的內容如下:

sqlserver,范式

master

master數據庫存儲實例范圍的元數據信息、服務器配置、實例中的所有數據庫信息和初始化信息。

Resource

Resource數據庫是一個隱藏、只讀數據庫,存儲所有系統(tǒng)對象的定義。

model

model數據庫是創(chuàng)建新數據庫的模板,創(chuàng)建的每個新數據庫都是有model的副本初始化創(chuàng)建的。

tempdb

tempdb數據庫是SQL Server存儲臨時數據的地方,如工作表、排序空間、行版本控制信息。同時SQL Server允許我們創(chuàng)建我們自己使用的臨時表,并且這些臨時表的位置是tempdb,但是我們需要注意的是每當重新啟動SQL Server實例時,該數據庫將會被破壞掉,并由model副本創(chuàng)建。

msdb

msdb數據庫是SQL Server代理的服務存儲數據的地方,SQL Server代理負責自動操作,包括作業(yè)、計劃和警報,同時也負責復制服務等等。

總結

本節(jié)我們著重講解了SQL語句的組成以及數據庫的三個范式,對系統(tǒng)數據庫的組成進行簡短的介紹,屬于了解的范疇吧,今天我們先到這里,我們下節(jié)再會。

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,同時也希望多多支持VeVb武林網!


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产乱色精品成人免费视频 | 高清中文字幕在线 | 欧美a黄 | 国产精品成人av片免费看最爱 | 久夜tv | 国产精品探花在线观看 | 免费黄色在线观看网站 | 成熟女人特级毛片www免费 | 色妹子久久 | 久草在线高清 | 极品国产91在线网站 | 素人视频免费观看 | 91av大片| 欧美一级精品 | 亚洲日本欧美 | 精品一区二区在线播放 | 国产高潮好爽好大受不了了 | 久草在线视频网 | 国产瑟瑟视频 | 韩国精品一区二区三区四区五区 | 国产精品久久久久久久久久久天堂 | 天堂成人国产精品一区 | 又黄又爽免费无遮挡在线观看 | 欧美精品v国产精品v日韩精品 | 一级电影在线免费观看 | 一区二区三区视频在线观看 | 91九色视频在线观看 | 蜜桃91丨九色丨蝌蚪91桃色 | 国产免费网站视频 | 亚洲生活片 | 欧美精品日日鲁夜夜添 | 久草经典视频 | 亚洲成人免费影视 | 欧美激情天堂 | 成人在线观看免费 | 欧美性生交xxxxx免费观看 | 久草久视频| 午夜视频在线免费 | 亚洲第一黄色网 | 国产午夜精品久久久久久久蜜臀 | 91伊人久久 |