真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【理論研究】數(shù)據(jù)庫基本知識與原理系列01-數(shù)據(jù)庫的基本原理與-創(chuàng)新互聯(lián)

數(shù)據(jù)庫作為使用頻率最廣的中間件,作為一個IT工程師,就算不打算從事數(shù)據(jù)庫開發(fā)或者做DBA,也應(yīng)該掌握其基礎(chǔ)的知識、原理與基本的使用。

成都創(chuàng)新互聯(lián)公司提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計,品牌網(wǎng)站建設(shè),1元廣告等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,十年的網(wǎng)站開發(fā)和建站經(jīng)驗,助力企業(yè)信息化建設(shè),成功案例突破千余家,是您實現(xiàn)網(wǎng)站建設(shè)的好選擇.

為此,本篇開始,嘗試對數(shù)據(jù)庫的基本知識與原理進行講解。

數(shù)據(jù)庫的類型

關(guān)系型數(shù)據(jù)庫:以前,市面上最常見,使用最廣泛的數(shù)據(jù)庫,叫做關(guān)系型數(shù)據(jù)庫,例如大名鼎鼎的Oracle、SQL Server(微軟的,也叫MSSQL)、Mysql、DB2(IBM的),都是關(guān)系型的數(shù)據(jù)庫。由于它使用最廣泛、最常見,每個入門的人員都必須要掌握,因此接下來的幾篇《數(shù)據(jù)庫基本知識與原理》都會圍繞關(guān)系型數(shù)據(jù)庫先展開敘說,后面有機會再介紹No SQL的數(shù)據(jù)庫。

非關(guān)系型數(shù)據(jù)庫:叫作No SQL數(shù)據(jù)庫,其實只是個統(tǒng)稱,有各種的列式數(shù)據(jù)庫,KEY VALUE值的數(shù)據(jù)庫。

什么是關(guān)系型數(shù)據(jù)庫?

關(guān)系型數(shù)據(jù)庫的本質(zhì)就是一張張有關(guān)聯(lián)關(guān)系的二維表。

二維表意思就是有行與列組成的表格,與EXCEL表里面的單個工作表(sheet)是一個意思。與EXCEL表里面每個獨立的工作表唯一的不同,是關(guān)系型數(shù)據(jù)庫中的表格,都是有關(guān)聯(lián)關(guān)系的。

假設(shè)你的EXCEL表里面有3個工作表分別叫A、B、C,如果表A有A1、A2、A3列且有內(nèi)容,B表里面有B1、B2、B3列且有內(nèi)容、C也有C1、C2、C3列且有內(nèi)容,而B2的每個單元格其實是從A2列對應(yīng)行的單元格里面引用過來的,而C3的單元格也是從B3里面引用過來的,那么其實A、B、C三個表格就有關(guān)聯(lián)關(guān)系了。那么這樣的EXCEL表就更加接近關(guān)系型數(shù)據(jù)庫里面的表了。

只不過,數(shù)據(jù)庫里面的,沒有規(guī)定B2的某個單元格一定要引用A2里面對應(yīng)行的單元格,可以是任意一行的單元格的值。

為什么要用數(shù)據(jù)庫?

為什么要用數(shù)據(jù)庫而不用EXCEL表?這是一個重要的問題。如果都不知道一個東西有什么用,能解決什么問題,那么花時間學習一個新東西干嘛?

首先,在數(shù)據(jù)量很少的情況下,直接用EXCEL表格也是沒有問題的。

但是當數(shù)據(jù)有2萬行左右的時候,發(fā)覺一臺K22的聯(lián)想筆記本用EXCEL來打開,可能都要7~8秒才能打開了,這基本上已經(jīng)到達了用戶可以忍受的延遲時間的極限了,如果一個用戶打開一個網(wǎng)頁,7~8秒都打不開的話,估計他會選擇叉掉這個網(wǎng)頁,然后去其他網(wǎng)站去了。

因此,當數(shù)據(jù)量很大的時候,我們發(fā)覺EXCEL已經(jīng)無法滿足我們的性能需求了,因此需要使用數(shù)據(jù)庫。

除了性能之外,使用普通的二維表,還有以下幾個問題:

數(shù)據(jù)冗余:大量同樣的數(shù)據(jù)重復(fù)存儲,我們以下面一張很簡單的學生選課記錄表為例。

序號學號學生姓名性別聯(lián)系電話課程名稱授課老師
12019063001張三13900000001語文孫七
22019063001張三13900000001數(shù)學周八
32019063001張三13900000001英語吳九
42019063002李四13900000002語文孫七
52019063002李四13900000002數(shù)學周八
62019063003王五13900000003數(shù)學周八
72019063003王五13900000003英語吳九
82019063004趙六13900000004體育鄭十

看到“張三”選了“語文、數(shù)學、英語”3門課程,但是“張三”每選修一門課程,他的“學號”、“性別”、“聯(lián)系電話”等數(shù)據(jù)就會被重復(fù)存儲1次,如果有100條關(guān)于他的記錄,這些數(shù)據(jù)就會被重復(fù)100次。這樣的數(shù)據(jù)冗余會帶來如下問題:

1)浪費存儲空間。

2)導(dǎo)致增加了檢索有效數(shù)據(jù)的時長(因為數(shù)據(jù)總量增多了,搜索的時候遍歷的數(shù)據(jù)增多了)。

刪除異常:想刪除1個數(shù)據(jù),結(jié)果會導(dǎo)致不想刪的數(shù)據(jù)也被刪除了。(依然以上述例子為例)

序號學號學生姓名性別聯(lián)系電話課程名稱授課老師
82019063004趙六13900000004體育鄭十

如果“趙六”退學了,我們想要刪除趙六的數(shù)據(jù),但是我們會發(fā)現(xiàn)只有“趙六”選修了體育課。

這時候一旦刪除了“趙六”,“體育”的課程,“鄭十”這位授課老師,都會無故從這個表格被刪掉,這就叫刪除異常。

修改異常:修改一個數(shù)據(jù),卻需要修改多次,并且如果修改不安全,會導(dǎo)致數(shù)據(jù)不一致。

序號學號學生姓名性別聯(lián)系電話課程名稱授課老師
12019063001張三13900000001語文孫七
22019063001張三13900000001數(shù)學周八
32019063001張三13900000001英語吳九

如果“張三”更換了手機,修改手機號,張三有多少條記錄就需要修改多少次,寫入操作的開銷是大于讀操作的,會帶了額外增加的開銷,并且如果修改不完全,會導(dǎo)致表格中“張三”的聯(lián)系電話不一致。

插入異常:應(yīng)該插入的數(shù)據(jù)無法插入。

序號學號學生姓名性別聯(lián)系電話課程名稱授課老師





生物張強

數(shù)據(jù)庫是怎樣處理上面數(shù)據(jù)的?

數(shù)據(jù)庫會將上面的一張二維表,拆分為多張具有關(guān)聯(lián)關(guān)系的二維表進行存儲。注意關(guān)鍵詞有2個,1是多張,2是有關(guān)聯(lián)關(guān)系。如下:

1)先將1張二維表拆分為多張二維表

學生表
序號學號學生姓名性別聯(lián)系電話
12019063001張三13900000001
22019063002李四13900000002
32019063003王五13900000003
42019063004趙六13900000004

課程表
序號課程ID課程名稱
10001語文
20002數(shù)學
30003英語
40004體育

老師表
序號老師ID老師姓名
1T0001孫七
2T0002周八
3T0003吳九
4T0004鄭十

2)為上面獨立的表格,創(chuàng)建關(guān)聯(lián)關(guān)系,使得他們之間關(guān)聯(lián)起來

選課記錄表
序號學號課程ID
1139000000010001
2139000000010002
3139000000010003
4139000000020001
5139000000020002
6139000000030002
7139000000030003
8139000000040004

授課記錄表
序號學號課程ID
10001T0001
20002T0002
30003T0003
40004T0004

按照上述處理,有什么效果?

1張表,拆成了上面的5張表,好像把簡單的問題復(fù)雜化了。弄這么復(fù)雜,到底有什么作用呢?解決了什么問題?

1、解決數(shù)據(jù)冗余:

再看一下學生表,同一個學生的信息只存儲了一次,節(jié)省了空間、提升了查找性能,解決了數(shù)據(jù)冗余的問題。

2、解決刪除異常:

再看一下學生表,如果此時“趙六”退學,需要刪除“學生表”的“趙六”數(shù)據(jù),此外,與“學生表”的“學號”字段有關(guān)聯(lián)關(guān)系的“選課記錄表”,會自動刪除“趙六”學號(2019063004)的行,即第8行,就完成操作了。而“體育課”與體育課的授課老師“鄭十”數(shù)據(jù)會完整保留在“課程表”與“老師表”中,不會被異常刪除,解決了刪除異常的問題。

3、解決修改異常:

現(xiàn)在“趙六”更換了手機,只需要在學生表中,更新“趙六”-“聯(lián)系電話”的字段,其他表格根本沒有保存這個信息,也就是說只需要進行一次的寫操作就完成了,不會出現(xiàn)數(shù)據(jù)不一致或者多次寫操作,解決了修改異常。

4、解決插入異常:

如果現(xiàn)在新增了“政治課”,沒有授課老師與選修的學生,只需要在課程表里面增加一行記錄“政治課”就可以了,其他表格需要寫入。不會出現(xiàn)像之前沒有授課老師或者沒有選修學生,連新增的課程都無法插入的問題,解決了插入異常。

綜上,我們需要使用數(shù)據(jù)庫,來解決上面幾個普通二維表無法解決的問題。

上面說的,大部分都是功能上需要使用數(shù)據(jù)庫的原因,下一篇我們再來討論一下從性能上,為啥要使用數(shù)據(jù)庫。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當前文章:【理論研究】數(shù)據(jù)庫基本知識與原理系列01-數(shù)據(jù)庫的基本原理與-創(chuàng)新互聯(lián)
鏈接分享:http://weahome.cn/article/iddgs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部