2019/5/12 查漏補缺
目錄
- 2019/5/12 查漏補缺
- 數據類型分為兩大類:基本類型和引用類型;
- java中類的繼承關系
- 關於接口
- 重載和重寫
- 靜態變量
- java中的關鍵字和保留字
- 數據庫操作
- 實現數據庫收回部分權限的操作
- 關於數據庫錯誤類型
- SQL四種語言:
- 數據庫常見的四種故障
- 數據庫設計六個階段:
- Java的異常分為兩種
- 外模式,內模式
- 數據庫範式
- 語句null的書寫
2019/5/12 查漏補缺
數據類型分為兩大類:基本類型和引用類型;
基本類型只能保存一些常量數據,引用類型除了可以保存數據,還能提供操作這些數據的功能;
為了操作基本類型的數據,java也對它們進行了封裝, 得到八個類,就是java中的基本類型的封裝類;他們分別是:
八種基本類型: byte short int long float double char boolean
對應的包裝類 引用類型: Byte Short Integer Long Float Double Character
java中類的繼承關系
其中Iterator未繼承 Collection
關於接口
- 聲明抽象方法,不用寫大括號
- 可以包含實現,必須用staic 修飾
重載和重寫
若是重寫,返回值類型不可小於父類返回值類型;若是重載需參數列表不同
靜態變量
屬於類,不可定義於方法中
java中的關鍵字和保留字
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
數據庫操作
實現數據庫收回部分權限的操作
實現收回user2查詢基本表T的權限
REVOKE SELECT ON T FROM user2
關於數據庫錯誤類型
會發生丟失修改
丟失修改:原本兩個事務的目的是T1先把A的值加10,A變為58。然後T2把A的值再減2,即A變成56。但是根據題目中的執行順序,A的值變為48-2=46,即T2的修改覆蓋了T1的修改,這種現象叫做丟失修改。
不可重復讀:不可重復讀是指事務T1讀取數據後,事務T2執行更新操作,使T1無法再現前一次讀取結果。
讀"臟"數據:讀"臟"數據是指事務T1修改某一數據,並將其寫回磁盤,事務T2讀取同一數據後,T1由於某種原因被撤消,這時T1已修改過的數據恢復原值,T2讀到的數據就與數據庫中的數據不一致,則T2讀到的數據就為"臟"數據,即不正確的數據。
SQL四種語言:
DQL(Data Query Language):數據庫查詢語言。由SELECT、FROM、WHERE等子句組成的查詢塊。
DML(Data Manipulation Language):數據操縱語言。插入Insert、刪除Delete、更新Update。
DDL(Data Definition Language):數據定義語言。創建Create、修改Alter、刪除Drop、清空表數據Truncate
DCL(Data Control Language):數據控制語言。授權Grant、回滾Rollback、提交Commit
數據庫常見的四種故障
(1)事務內部的故障:事務內部故障可分為預期的和非預期的,其中大部分的故障都是非預期的。預期的事務內部故障是指可以通過事務程序本身發現的事務內部故障; 非預期的事務內部故障是不能由事務程序處理的,如運算溢出故障、並發事務死鎖故障、違反了某些完整性限制而導致的故障等。
(2)系統故障:系統故障也稱為軟故障,是指數據庫在運行過程中,由於硬件故障、數據庫軟件及操作系統的漏洞、突然停電燈情況,導致系統停止運轉,所有正在運行的事務以非正常方式終止,需要系統重新啟動的一類故障。這類事務不破壞數據庫,但是影響正在運行的所有事務。
(3)介質故障:介質故障也稱為硬故障,主要指數據庫在運行過程中,由於磁頭碰撞、磁盤損壞、強磁幹擾、天災人禍等情況,使得數據庫中的數據部分或全部丟失的一類故障。
(4)計算機病毒故障:計算機病毒故障是一種惡意的計算機程序,它可以像病毒一樣繁殖和傳播,在對計算機系統造成破壞的同時也可能對數據庫系統造成破壞(破壞方式以數據庫文件為主)
數據庫設計六個階段:
1.需求分析:需要什麽現實功能
2.概念設計:根據功能將文字用ER圖表示出來,實現功能在現實世界到信息世界的轉換
3.邏輯設計:ER圖轉換成關系模式
4.物理設計:決定物理存儲方式
5.數據庫運行:裝入數據,應用程序編寫調試(增刪改查測試)
6.數據庫運行維護:只要運行,永遠走在改善數據庫性能的路上
Java的異常分為兩種
一種是運行時異常(RuntimeException),一種是非運行異常也叫檢查式異常(CheckedException)。
1、運行時異常不需要程序員去處理,當異常出現時,JVM會幫助處理。常見的運行時異常有:
ClassCastException(類轉換異常)
ClassNotFoundException
IndexOutOfBoundsException(數組越界異常)
NullPointerException(空指針異常)
ArrayStoreException(數組存儲異常,即數組存儲類型不一致)
還有IO操作的BufferOverflowException異常
2、非運行異常需要程序員手動去捕獲或者拋出異常進行顯示的處理,因為Java認為Checked異常都是可以被修復的異常。常見的異常有:
IOException
SqlException
外模式,內模式
外模式(子模式),是數據庫用戶能夠看見和使用的局部數據的邏輯結構和特征的描述,是數據庫用戶的數據視圖,是數據的邏輯表示;
內模式(存儲模式),它是數據物理結構和存儲方式的描述,是數據在數據庫內部的表示方式。
數據庫範式
? 第一範式是關系模式規範化的最低要求,否則,將有很多基本操作在這樣的關系模式中實現不了。
? 第二範式: 如果關系模式R滿足第一範式,並且R得所有非主屬性都完全依賴於R的每一個候選關鍵屬性,稱R滿足第二範式,簡記為2NF。一個數據表的主鍵只有單一一個字段的話,它就一定符合第二範式(前提是該數據表符合第一範式)。
? 第三範式:設R是一個滿足第一範式條件的關系模式,X是R的任意屬性集,如果X非傳遞依賴於R的任意一個候選關鍵字,稱R滿足第三範式,簡記為3NF.
註:關系實質上是一張二維表,其中每一行是一個元組,每一列是一個屬性。
第一範式
定義:如果關系R 中所有屬性的值域都是單純域,那麽關系模式R是第一範式的
那麽符合第一模式的特點就有
1)有主關鍵字
2)主鍵不能為空,
3)主鍵不能重復,
4)字段不可以再分
第2範式:
數據庫表中不存在非關鍵字段對任一候選關鍵字段的 部分函數依賴(部分函數依賴指的是存在組合關鍵字中的某些字段決定非關鍵字段的情況),也即所有非關鍵字段都完全依賴於任意一組候選關鍵字。
第3範式:
在第二範式的基礎上,數據表中如果不存在非關鍵字段對任一候選關鍵字段的 傳遞函數依賴則符合第三範式。所謂傳遞函數依賴,指的是如果存在"A → B → C"的決定關系,則C傳遞函數依賴於A。因此,滿足第三範式的數據庫表應該不存在如下依賴關系:
? 關鍵字段 → 非關鍵字段x → 非關鍵字段y
BCNF( 鮑依斯-科得範式 ):
在第三範式的基礎上,數據庫表中如果不存在任何字段對任一候選關鍵字段的 傳遞函數依賴則符合BCNF。
依賴關系:
1.數據依賴
數據依賴指的是通過一個關系中屬性間的相等與否體現出來的數據間的相互關系,其中最重要的是函數依賴和多值依賴。
2.函數依賴
設X,Y是關系R的兩個屬性集合,當任何時刻R中的任意兩個元組中的X屬性值相同時,則它們的Y屬性值也相同,則稱X函數決定Y,或Y函數依賴於X。
3.平凡函數依賴
當關系中屬性集合Y是屬性集合X的子集時(Y?X),存在函數依賴X→Y,即一組屬性函數決定它的所有子集,這種函數依賴稱為平凡函數依賴。
4.非平凡函數依賴
當關系中屬性集合Y不是屬性集合X的子集時,存在函數依賴X→Y,則稱這種函數依賴為非平凡函數依賴。
5.完全函數依賴
設X,Y是關系R的兩個屬性集合,X’是X的真子集,存在X→Y,但對每一個X’都有X’!→Y,則稱Y完全函數依賴於X。
6.部分函數依賴
設X,Y是關系R的兩個屬性集合,存在X→Y,若X’是X的真子集,存在X’→Y,則稱Y部分函數依賴於X。
7.傳遞函數依賴
設X,Y,Z是關系R中互不相同的屬性集合,存在X→Y(Y !→X),Y→Z,則稱Z傳遞函數依賴於X。
語句null的書寫
檢索NULL時,不能使用=運算符的。用is“WHERE AGE IS NULL”
2019/5/12 查漏補缺