Oracle資料庫起手式

文章推薦指數: 80 %
投票人數:10人

另外如果今天一家出版社資訊出錯了或者需要更改,那就需要對表格內所有資料進行修正。

今天如果使用關聯式資料庫,我就可以 ... 數據分析/SQL/機器學習後端程式設計前端技術雲端技術辦公程式使用技巧產業動態/雜談Oracle資料庫起手式本文主要介紹資料庫基礎概念,語法部分以Oracle為主。

本篇會先著重在概念的介紹,說明資料庫的基本觀念,語法部分請參考之後的文章喔!LiuChengLeeFollowSep23,2020·5minread在進行SQL的語法操作前...首先要先了解到底什麼是資料庫?什麼是SQL?事實上,如果你會使用Excel那想必你對於資料已經有一定的了解了!Excel主要滿足我們對於數據的儲存、尋找、計算等需求,其實資料庫其實可以想的跟Excel一樣,就是一個放置資料的地方,只是我們需要透過指令去對這個大型的Excel去進行操作,這個指令就叫做SQL關聯式資料庫(RDB)v.s.非關聯式資料庫(NoSQL)?一般我們所說的資料庫可以分為兩種,關聯式與非關連式。

關聯式資料庫(RDB)什麼是關聯式資料庫呢?舉例來說,下方是一個書籍以及出版社的表格,由下表我們可以發現大地出版這家出版社的資訊重複出現了兩次,這樣在表格中就會有許多重複的資料,會使表格變得很龐大,浪費儲存空間。

而且由於資料量變得龐大,資料輸入人員會增加輸入錯誤的機率。

另外如果今天一家出版社資訊出錯了或者需要更改,那就需要對表格內所有資料進行修正。

今天如果使用關聯式資料庫,我就可以將出版社單獨建立一個表格,就可以減少很多重附資料的出現,如下圖:如果今天有一個出版社資料需要修正,僅需要修改出版社表格即可,僅需要修改一次,減少修改次數以及錯誤機率。

統整使用關聯式資料庫的幾個優點:減少重複資料出現,降低資料量減少修正上麻煩減少輸入錯誤的機率非關聯式資料庫(NoSQL)了解上方關聯式資料庫後,非關聯式資料庫顧名思義就是完全不採用關聯模式,但說明了上述關聯式資料庫的優點之後,那非關聯式資料庫不是很不好嗎(?其實非關聯式資料庫主要運用在大數據之中,其優點在於能夠快速參照到想要的數據,能夠減少關聯所需要花費的時間。

根據DB-Engines調查,目前主流數據庫仍舊是以關聯是數據庫為主,其中Oracle又是其中的冠軍,緊接在後的則是大家熟知的MySQL。

交易管理ACID通常對於資料庫不外乎"增刪改查"這四個動作,為了資料安全性就必須符合ACID原則,ACID事實上是單元性(Atomicity)、一致性(Consistency)、獨立性(Isolation)、永久性(Durability),這四個詞的縮寫,以下分別詳細介紹這四個原則。

單元性(Atomicity):交易處理的結果只有完全執行或完全不執行兩種,如果資料修改過程中發生錯誤就必須回復到原始模樣。

一致性(Consistency):交易進行前後沒有資料庫完整性的變化。

獨立性(Isolation):當一個交易在進行時,不可以讓其他交易進行更改。

永久性(Durability):交易結果永久有效,不因任何因素干擾。

資料庫正規化經常聽別人說資料庫需要做正規化,什麼是正規化呢?白話一點說,其實正規化可以解釋成方便我們未來使用SQL所要做的處理。

此外其實正規化有非常多程序,但實務上來說我們通常做到第三正規化即可,以下僅是對正規化的一些簡單的概念說明,不涉及太過複雜的實務應用。

第一正規化(1NF):同一格資料中不應該有兩筆資料。

比如一個人擁有許多之手機,那很多人在輸入資料表可能會產生這樣的狀況。

上圖這樣不符合第一正規化,應該調整如下:第二正規化(2NF):該資料庫所保存的資料都應與主鍵有相依性。

這個就像前面書與出版社的例子,,由於不同的書籍可能是由同一個出版社出版,因此出版社的負責人或電話等,其實與書籍的ISBN並沒有強烈的關聯性。

這時我們需要使用關聯式的方式去將資料庫拆分,這就是第二正規化。

第三正規化(3NF):非鍵欄位之間不應有相依性。

下表中可以觀察到其實銷售金額是由單價乘上銷售數量得到的,因此我們這邊可以說銷售金額其實與單價跟銷售數量有強烈相依性,因此在第三正規化時,應將銷售金額此欄位排除。

適度違反正規化:在實務中有些資料其實計算上相對不容易,比如公式複雜等。

此外,比如說在會員資訊中,一個會員可能會有許多電話,如手機、家用電話、辦公室電話等等,這時候我們不會將電話額外拆出,JOIN會降低效能,這時候可以為了提升效能適時違反正規化。

本篇文章主要是針對資料庫一些觀念的釐清,還沒有進入SQL指令的部分,關於指令會在後續文章中整理。

#技術學習#SQL技術學習一個小小的計算機界小白菜,記錄技術學習的點點滴滴,因為本身也是新手,更能手把手的做到簡單教學SqlOracle技術學習一個小小的計算機界小白菜,記錄技術學習的點點滴滴,因為本身也是新手,更能手把手的做到簡單教學WrittenbyLiuChengLeeFollow畢業於北京大學研究所─計算機技術。

曾任美團點評產品運營,希望大家一起跟我研究互聯網的相關專業內容。

金融/會計/計算機專業背景。

此外我也是日本旅行愛好者,喜歡研究日文分享日本小事。

也喜歡學習設計跟藝術,透過記錄教學相長!是一顆小白菜,如有錯誤歡迎指正!技術學習一個小小的計算機界小白菜,記錄技術學習的點點滴滴,因為本身也是新手,更能手把手的做到簡單教學



請為這篇文章評分?