由於工作原因,近期可能會開始多複習一些資料庫相關的知識了,想深入瞭解的,也可以一起複習.學習~ 前期先鞏固一下基礎操作,後期會一點點的加深向運維方向深入。開篇主要介紹一些資料庫理論知識,不感興趣的可以向後翻閱;如果你是開發人員可以簡單看看基礎就夠了。廢話不多說,開始我們的學習吧! 資料庫版本Orac ...
由於工作原因,近期可能會開始多複習一些資料庫相關的知識了,想深入瞭解的,也可以一起複習.學習~
前期先鞏固一下基礎操作,後期會一點點的加深向運維方向深入。開篇主要介紹一些資料庫理論知識,不感興趣的可以向後翻閱;如果你是開發人員可以簡單看看基礎就夠了。廢話不多說,開始我們的學習吧!
資料庫版本Oracle 11g
Oracle 11g提供了多種資料庫管理工具,SQL*PLUS、OEM(企業管理器)、DCA(資料庫配置助手),本次複習對資料庫操作使用的是SQL*PLUS,其實用什麼無所謂,主要是學會使用就好了,繼續吧~
要使用好Oracle,我覺得應該先瞭解一下它:
一》 開篇--Oracle介紹
Oracle官網鏈接:https://www.oracle.com/index.html
①Oracle是著名的Oracle(甲骨文)公司的資料庫產品,Oracle屬於關係型資料庫的一種,
常見的關係型資料庫還包括MySQL、SQL Server、DB2;
非關係型資料庫:NoSQL、MangoDB、Memcache、Redis等等
②那麼什麼是關係型資料庫呢?就是建立在關係模型基礎上的資料庫。簡單理解就是將現實中各個實體(事物)及其之間的各種聯繫,通過數學概念和方法進行處理,以關係模型進行展現。
③資料庫的E-R模型,說到模型就要提到關係型資料庫設計了,設計之初首先要建立邏輯模型。
關係型資料庫的邏輯模型可以通過實體(事物)和實體關係組成的圖形來表示,也就是常用的E-R圖,E-R圖表示的邏輯模型就是E-R模型。標準的E-R模型主要由三部分組成:實體、屬性和聯繫。而這三部分也正是我們在項目開發中,資料庫設計階段需要深入研究和合理設計數據表的重要三部分。
想要朝著項目經理方向發展的小伙伴,對於項目中資料庫的設計還是需要深一步的瞭解的,這方面還是要通過實踐去多加鍛煉的。建議:自己模擬一些場景進行設計練習
二》設計範式
關係型資料庫的設計範式有第一範式、第二範式、……第六範式、BCNF範式等等,通常的資料庫滿足前三種範式就足夠了。任何關係型資料庫都應該滿足第一範式,不滿足的資料庫,則不是關係型資料庫。在關係型資料庫中,一般稱一行數據為一個元組,而列表示的是屬性,第一範式是第二、第三範式的基礎;;
第一範式:資料庫表的每一列都是不可分割的原子數據項,也就是說,實體中的某個屬性有多個值時,必須拆分為不同的屬性;
比如:班級:電腦系3班,這種就需要再進行數據拆分;
第二範式:要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性
比如:員工工資表,以員工編號、崗位為複合主鍵,屬性還有姓名、年齡、學歷、基本工資、績效工資、獎金;
這種情況下,員工編號決定的是姓名、年齡和學歷,而基本工資是由崗位決定的,不符合第二範式的要求。
一般設計表時,可以設計成三張表:員工管理表、崗位工資表、員工工資表,這樣就可以了;
第三範式:任何非主屬性不依賴於其它非主屬性(在第二範式基礎上消除傳遞依賴)
傳遞依賴就是如果存在關鍵欄位A決定非關鍵欄位B,而非關鍵欄位B決定非關鍵欄位C,則稱非關鍵欄位C傳遞依賴於關鍵欄位A。
比如:員工編號→員工姓名、年齡、部門編號、部門經理;
這種情況下,員工編號決定部門編號,而部門編號決定部門經理;不符合第三範式
處理方式就是拆分表格:員工信息表和部門信息表;
一般我們使用的大部分都只是滿足前三種範式,後幾種有感興趣的可以自行查閱,這裡不再細說;我們進行資料庫設計時,都希望能夠消除數據冗餘、更新異常、插入異常和刪除異常,那就需要我們按照“規範化”的原則去存儲數據。
三》資料庫基本操作
Oralce操作類型中一共分為DDL(數據定義語言)、DML(數據操縱語言)、TCL(事務控制語言)、DQL(數據查詢語言)、DCL(數據控制語言)
① DDL給我的個人感覺是有全局眼光的領導層語言;為啥這樣形容呢?它主要用於建立、修改、刪除資料庫對象,面向的對象不是條條的數據,而是整個資料庫或者數據表。在資料庫中刪表刪庫的操作是屬於DDL的,作為程式員的你值得好好關註,不為了去實施這些操作,但多瞭解一些總沒有壞處。
Create: 創建表或其他對象結構
Alter:修改表或其它對象結構
Drop:刪除表或者其他對象結構
Truncate:刪除表數據,保留表結構
② DML追究完美做到極致的技術人員;用於改變數據表中的每條數據;他和事務是好兄弟,一般執行完後需要經過事務控制語句提交後才真正的將改變應用到資料庫中
Insert :將數據插入到數據表中
Update:更新數據表中已經存在的數據
Delete:刪除數據表中的數據
③TCL 用於維護數據一致性的語句(事務後面會詳細談一下,這個是資料庫比較重要的部分)
Commit:提交,確認已經進行的數據改變
RollBack:回滾,取消已經進行的數據改變
SavePoint:保存點,使當前的事務可以回退到指定的保存點,便於取消部分改變
④DQL 用於查詢數據 Select (開發最常用的)
⑤DCL 用於執行許可權的授予和收回操作 (DBA的日常工作,開發者用不到)
GRANT:授予,用於給用戶或角色授予許可權
Revoke:用於收回用戶或角色已有的許可權
Create User 創建用戶
先到這裡吧!下一篇開始SQL語句的複習~