数据库知识点汇总
數據庫簡答題
1、典型數據庫模型
層次數據模型、網狀數據模型、關系數據模型、面向對象數據模型等
3、簡述數據庫、數據庫系統、數據庫管理系統
數據庫是長期存儲在計算機內、有組織的、可共享的大量數據的集合。數據庫中的數據按照一定的數據模型組織、描述和存儲,具有較小的冗余度(redundancy)、較高的數據獨立性(data independency)和易擴展性(scalability),可為各種用戶共享。
數據庫系統是由數據庫、數據庫管理系統、應用程序和數據庫管理員組成的存儲、管理、處理和維護數據的系統。
數據庫管理系統是位于操作系統和用戶之間的一層數據管理軟件。
4、數據管理技術三個階段、數據庫系統階段的特點
(1)人工管理階段(2)文件系統階段(3)數據庫系統階段
數據庫系統階段的特點:
① 數據結構化 ②數據的共享性高、冗余度低、易擴充
③ 數據獨立性高 ④數據由數據庫管理系統統一管理和控制
文件系統
數據庫管理系統
某一應用 現實世界
共享性差,冗余度大 共享性高,冗余度小
記錄內有結構,整體無結構 整體結構化,用數據模型描述
應用程序控制 由數據庫管理系統提供數據安全性,完整性,并發控制和恢復能力
獨立性差 具有高度的物理獨立性和一定的邏輯獨立性
5、DBMS支持那幾種數據模型
常用的是層次模型、網狀模型、關系模型(最重要)。新興的是面向對象數據模型和對象關系數據模型。
(1)層次模型是指用樹型結構表示實體及其之間的聯系,樹中每一個節點代表一個記錄類型,樹狀結構表示實體型之間的聯系。在一個層次模型中的限制條件是:有且僅有一個節點,無父節點,此節點為樹的根;其他節點有且僅有一個父節點。
(2)網狀模型:用有向圖結構表示實體類型及實體間聯系的數據結構模型稱為網狀模型。網狀模型的數據結構主要有以下兩個特征: ①允許一個以上的節點無雙親。 ②一個節點可以有多于一個的雙親。
(3)關系模型是數據模型中最重要的。關系實際上就是關系模式在某一時刻的狀態或內容。關系模式是型,關系是它的值。關系模式是靜態的、穩定的,而關系是動態的、隨時間不斷變化的,因為關系操作在不斷地更新著數據庫中的數據。但在實際當中,常常把關系模式和關系統稱為關系。現實世界的實體以及實體間的各種聯系均用關系來表示,從用戶角度看,關系模型中數據的邏輯結構是一張二維表。
6、數據庫應用系統開發階段
(1)需求分析(2)系統設計(3)系統實現(4)系統測試(5)系統運行與維護
7、典型數據庫系統舉例:
Access、DBase(前兩者為桌面型)、SQL Server、Oracle、IBM DB、My SQL、Sybase
8、簡述兩類數據模型
(1)概念模型。 E-R模型是用E-R圖來描述現實世界的概念模型。
一種表示方法:實體-聯系方法(entity-relationship approach),常用E-R圖表示。
實體之間的聯系:一對一、一對多、多對一、多對多
(2)邏輯模型和物理模型
邏輯結構設計中,一個實體型轉換為一個關系模式。
9、數據庫的三級模式、兩級映射:
(1)三級模式
外模式又稱子模式或用戶模式,對應于用戶級。它是某個或某幾個用戶所看到的數據庫的數據視圖,是與某一應用有關的數據的邏輯表示。外模式是從模式導出的一個子集,包含模式中允許特定用戶使用的那部分數據。用戶可以通過外模式描述語言來描述、定義對應于用戶的數據記錄(外模式),也可以利用數據操縱語言(Data Manipulation Language,DML)對這些數據記錄進行。外模式反映了數據庫的用戶觀。
模式又稱邏輯模式,對應于概念級。它是由數據庫設計者綜合所有用戶的數據,按照統一的觀點構造的全局邏輯結構,是對數據庫中全部數據的邏輯結構和特征的總體描述,是所有用戶的公共數據視圖(全局視圖)。它是由數據庫管理系統提供的數據描述語言(Data Defination Language,DDL)來描述、定義的,體現了數據庫系統的整體觀。
內模式又稱存儲模式,對應于物理級,它是數據庫中全體數據的內部表示或底層描述,是數據庫最低一級的邏輯描述,它描述了數據在存儲介質上的存儲方式和物理結構,對應著實際存儲在外存儲介質上的數據庫。內模式由內模式描述語言來描述、定義,它是數據庫的存儲觀。
在一個數據庫系統中,只有唯一的數據庫,因而作為定義、描述數據庫存儲結構的內模式和定義、描述數據庫邏輯結構的模式也是唯一的,但建立在數據庫系統之上的應用則是非常廣泛、多樣的,所以對應的外模式不唯一。
(2)兩級映射
①外模式/模式映像。當模式改變時,由數據庫管理員對各個外模式/模式映像作相應改變,可以使外模式保持不變。應用程序是依據外模式編寫的,從而應用程序不用修改,保證了數據與程序的邏輯獨立性,簡稱數據的邏輯獨立性。②模式/內模式映像 。當數據的存儲結構改變時,由數據庫管理員對模式/內模式映像作相應改變,可以使模式保持不變,從而應用程序也不用改變。保證了數據與程序的物理獨立性,簡稱數據的物理獨立性。
10、數據模型通常都是由數據結構、數據操作和完整性約束三個要素組成。
1)數據結構
數據結構用于描述數據庫系統的靜態特性。數據結構是所研究的對象類型的集合。這些對象是數據庫的組成成分,是與數據類型、內容、性質有關的對象,例如關系模型中的域、屬性、關系等。一旦數據結構定義好之后,一般不發生變化。
2)數據操作
數據操作用于描述數據庫系統的動態特性。數據操作是指對數據庫中各種對象(型)的實例(值)允許執行的操作的集合,包括操作及有關的操作規則。數據庫主要有查詢和更新(包括插入、刪除、修改)兩大類操作。數據模型必須定義這些操作的確切含義、操作符號、操作規則(如優先級)以及實現操作的語言。
3)完整性約束
數據的約束條件是一組完整性規則的集合。完整性規則是給定的數據模型中數據及其聯系所具有的制約和儲存規則,用以限定符合數據模型的數據庫狀態以及狀態的變化,以保證數據的正確、有效和相容。在關系模型中,一般關系必須滿足實體完整性和參照完整性兩個條件。
11、主碼的作用
(1)唯一標識每個元組
(2)與關聯表的外碼建立聯系,鏈接兩個表
(3)使用主碼值來組織關系的存儲
(4)使用主碼索引快速檢索數據
12、數據操作:
關系模型中常用的關系操作包括查詢和數據更新兩大部分:
查詢: 選擇、投影、連接、除、并、差、交、笛卡爾積等,其中選擇、投影、并、差、笛卡爾積是5種基本操作
數據更新:插入、刪除、修改
集合運算符:并、交、差、乘
專門運算符:選擇、投影、連接、除
基本運算符:選擇、投影、并、差、笛卡爾積
關系模型中常用的關系操作包括:選擇(Select)、投影(Project)、連接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等查詢(Query)操作,和插入(Insert)、刪除(Delete)、修改(Update)操作兩大部分。查詢是其中最主要的部分。
關系操作的特點是集合操作方式,即操作的對象和結果都是集合。這種操作方式也稱為一次一集合(set-at-a-time)的方式。相應地,非關系數據模型的數據操作方式則為一次一記錄(record-at-a-time)的方式。
13、關系的完整性
關系的完整性規則是對關系的某種約束條件。
(1)實體完整性,指在基本關系表中主碼取值的約束,以保證每個元組可以被標識。約束規則:非空、唯一。
(2)參照完整性,指關系間需要遵循的數據約束,以保證關系間關聯列的數據一致性。參照完整性是指外碼取值必須與現有主碼值相對應。
(3)用戶定義完整性,指用戶根據具體業務對數據處理規則要求所定義的數據約束。用戶可定義列的數據類型、取值范圍、缺省值、是否允許為空、取值唯一性、數據依賴性。
14、外碼
設F是基本關系R的一個或一組屬性,但不是關系R的碼,如果F與基本關系S的主碼 Ks相對應,則稱F是基本關系R的外碼(Foreign key),并稱基本關系R為參照關系(Referencing relation),基本關系S為被參照關系(Referenced relation)或目標關系(Target relation)。關系R和S不一定是不同的關系。
15、簡述 SQL 語言的特點
SQL 語言集數據查詢、數據操縱、數據定義和數據控制功能于一體,充分體現了關系數據庫語言的特點和優點。其特點如下:①綜合統一 ②高度非過程化 ③面向集合的操作方式 ④以同一種語法結構提供多種操作方式 ⑤語言簡潔,易學易用
16、SQL語言類別
(1)數據定義語言DDL(data definition language):創建、刪除、修改數據庫對象(包括數據庫、表、索引) Create/drop/alter database/table/index
(2)數據操縱語言DML(data manipulation language):增加、刪除、修改數據庫
Insert、update、 delete
(3)數據查詢語言DQL(data query language):對數據庫進行查詢 select
(4)數據控制語言DCL(data control language):對數據庫對象訪問權進行控制
Grant(授權)、 deny(拒絕)、 revoke(撤銷)
17、索引
在數據庫中,索引是針對某個表中的一列或者幾列建立的指向表中記錄數據頁的邏輯指針清單,可加快對數據表的快速信息檢索,快速連接關聯表,減少分組和排序時間。
聚集索引與非聚集索引的區別:在聚集索引中,碼值的邏輯順序決定了表中相應行的物理順序;在非聚集索引中,碼值的邏輯順序可以與表中相應行的物理順序不同。
18、視圖的作用
(1)簡化復雜的SQL查詢操作。通過視圖,開發人員可以將復雜的查詢語句封裝在視圖內,使外部程序只需要簡單方式訪問該視圖,便可獲取所需數據。
(2)提高數據訪問安全性。通過視圖可以將基本數據表的部分敏感數據隱藏起來,外部用戶無法得知完整數據,保護隱私,并降低數據庫被攻擊的風險。
(3)提供一定程度是數據邏輯獨立性。當數據表的結構改變,只要視圖的結構不變,應用程序可以不做修改。
(4)集中展示用戶所感興趣的特定部分。
(5)使用戶能以多種角度看待同一數據。
19、SQL主碼約束和唯一約束有什么區別呢?
主碼約束:由一列或多列的組合,其值能唯一的標識表中的每一行。
唯一約束:不允許數據庫表在指定列上具有相同的值,但允許有空值。
區別:一個表可以定義多個唯一約束,但只能定義一個主碼約束;空值的列上可以定義唯一約束,不能定義主鍵約束。
20、什么是表?什么是視圖?兩者的區別和聯系是什么?
表是實實在在得保存數據的實體,寫入的數據都保存在表中;
視圖是從一個或幾個基本表導出的表,它與基本表不同,是一個虛表。數據庫中只存放視圖的定義,而不存放視圖對應的數據,這些數據存放在原來的基本表中。所以基本表中的數據發生變化,從視圖中查詢出的數據也就隨之改變了。視圖一經定義就可以像基本表一樣被查詢、刪除,也可以在一個視圖之上再定義新的視圖,但是對視圖的更新操作有限制。
聯系: 視圖是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有數據行)都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關系。
21、說明等值連接與自然連接的區別與聯系?
自然連接是除去重復屬性的等值連接。 兩者之間的區別和聯系如下:
(1)自然連接一定是等值連接,但等值連接不一定是自然連接;
(2)等值連接要求相等的分量,不一定是公共屬性;而自然連接要求相等的分量必須是公共屬性;
(3)等值連接不把重復的屬性除去;而自然連接要把重復的屬性除去。
22、數據字典通常包含五個部分:數據項、數據結構、數據流、數據存儲、處理過程
23、范式:1NF 2NF 3NF BCNF First Normal Form Boycee Codd Normal Form
1NF:每個屬性都不可再分
2NF:在1NF的基礎之上,消除了非主屬性對于碼的部分函數依賴
3NF:在2NF的基礎之上,消除了非主屬性對于碼的傳遞函數依賴
BCNF:在3NF的基礎上,消除主屬性對于碼的部分函數依賴與傳遞函數依賴
1NF有哪些缺點?
1、數據冗余太大(每一個系的系主任名字重復出現)
2、更新異常(某個系更換系主任之后,必須將該系學生有關的每一個元組)
3、插入異常(如果一個系剛成立,尚無學生,就無法將老師存入到數據庫中)
4、刪除異常(如果學生都畢業了,在刪除學生時,把這個系的系主任的所有信息都刪除了)
24、E-R模型到關系模型的轉換
(1)將每一個實體轉換成關系表,實體的屬性轉換為表的列,實體的標識符轉換為表的主碼;
(2)將實體間的關系轉換為表間的參照完整性約束,即通過設置外碼來參照主碼。
25、數據庫管理員DBA的職責:
①決定數據庫中的信息內容和結構:數據庫中要存放哪些信息
②決定數據庫的存儲結構和存取策略:獲得較高的存取效率和存儲空間利用率
③定義數據的安全性要求和完整性約束條件:負責確定各個用戶對數據庫的存取權限、數
據的保密級別和完整性約束條件
④監控數據庫的使用和運行:轉儲數據、維護日志文件、故障恢復
① 數據庫的改進和重組重構:對運行情況進行記錄、統計分析,以此來不斷改進數據庫設計
26、事務管理與事務
事務管理:在數據庫應用系統中,完成一個業務處理通常需要多個操作步驟。在每個操作步驟中,都可能遭遇失敗,若沒有一個處理機制,就可能造成操作數據混亂,從而破壞數據一致性。
事務:指由構成單個業務處理單元的一組數據庫訪問操作,它們要么都正常執行,要么都不執行,是一個不可分割的工作單位。在關系數據庫中,?個事務可以是?條SQL語句、?組SQL語句或者整個程序。事務通常以BEGIN TRANSACTION開始,以COMMIT或ROLLBACK結束。COMMIT表?提交,即提交事務 的所有操作。具體的說就是將事務中所有對數據庫的更新寫回到磁盤上的物理數據庫中去,事務正常結束。 ROLLBACK表?回滾,即在事務運?的過程中發?了某種故障,事務不能繼續執?,系統將事務中對數據庫的所 有已完成的操作全部撤銷,回滾到事務開始時的狀態。
事務ACID特性:
原子性(Atomicity):事務的所有操作在數據庫中要么全部執行,要么都不執行。
一致性(Consistency):事務多次執行,結果應一致
隔離性(Isolation):事務與事務之間隔離,并執行透明
持續性(Durability):事務完成后,數據該改變必須是永久的
27、為什么要進行數據庫轉儲,比較各種數據轉儲方法?
所謂轉儲即DBA定期地將整個數據庫復制到磁帶或另一個磁盤上保存起來的過程。這些備用的數據文本稱為后備副本或后援副本。當數據庫遭到破壞后可以將后備副本重新裝入,但重裝后備副本只能將數據庫恢復到轉儲時的狀態,要想恢復到故障發生時的狀態,必須重新運行自轉儲以后的所有更新事務。轉儲可分為靜態轉儲和動態轉儲。轉儲還可以分為海量轉儲和增量轉儲兩種方式。海量轉儲是指每次轉儲全部數據庫。增量轉儲則指每次只轉儲上一次轉儲后更新過的數據。從恢復角度看,使用海量轉儲得到的后備副本進行恢復一般說來會更方便些。但如果數據庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效。
28、并發控制可能會產生哪幾類數據不一致?用什么方法能避免各種不一致的情況?
并發操作帶來的數據不一致性包括三類:丟失修改、不可重復讀和讀“臟”數據。產生數據不一致性的主要原因是并發操作破壞了事務的隔離性。并發控制就是要用正確的方式調度并發操作,使一個用戶事務的執行不受其它事務的干擾,從而避免造成數據的不一致性。并發控制的主要技術是封鎖(Locking)。
丟失修改:當一個事務修改了數據,并且這種修改還沒有提交到數據庫中時,另外一個事務又對同樣的數據進行了修改,并且把這種修改提交到了數據庫中。這樣,數據庫中沒有出現第一個事務修改數據的結果,好像這種數據修改丟失了一樣。
不可重復讀:在一個事務內,多次讀同一數據。在這個事務還沒有結束時,另一個事務也訪問該同一數據,那么,在第一個事務中的兩次讀數據之間,由于第二個事務的修改,第一個事務兩次讀到的數據可能不一樣。
讀“臟”數據:當一個事務正在訪問數據,并對數據進行了修改,而這種修改還沒有提交到數據庫中,這時另一個事務也訪問這個數據并使用了這個數據。因為這個數據是還沒有提交的數據,那么另一個事務讀到的這個數據是臟數據,依據臟數據所做的操作可能是不正確的。
29、數據庫完整性與安全性的區別
完整性和安全性是兩個不同的概念。前者是為了防止數據庫中存在不符合語義的數據,防止錯誤信息的輸入和輸出造成的無效操作和錯誤結果,而后者是防止數據庫被惡意的破壞和非法的存取。當然,完整性和安全性是密切相關的。特別是從系統實現的方法來看,某一種機制常常既可以用于安全保護亦可用于完整性保證。
30、日志文件的定義與作用。
日志文件是用來記錄事務對數據庫的更新操作的文件。作用:在數據庫恢復中起著重要的作用,可以用來進行事物故障恢復和系統故障恢復,并協助后備副本進行介質故障恢復。
31、數據庫恢復策略有哪幾種?
(1)數據轉儲(數據冗余) (2)日志文件
32、數據庫:兩段鎖協議
兩段鎖協議是指所有事務必須分兩個階段對數據項加鎖和解鎖。在對任何數據進行讀、寫操作之前,首先要申請并獲得對該數據的封鎖;在釋放一個封鎖之后,事務不再申請和獲得任何其他封鎖。
“兩段”的含義是,事務分為兩個階段:第一階段是獲得封鎖,也稱為擴展階段。在這階段,事務可以申請獲得任何數據項上的任何類型的鎖,但是不能釋放任何鎖。第二階段是釋放封鎖,也稱為收縮階段。在這階段,事務釋放已經獲得的鎖,但是不能再申請任何鎖。
可以證明,若并發執行的所有事務均遵守兩段鎖協議,則對這些事務的任何并發調度策 略都是可串行化的。 另外要注意兩段鎖協議和防止死鎖的一次封鎖法的異同之處。一次封鎖法要求每個事務必須一次將所有要使用的數據全部加鎖,否則就不能繼續執行,因此一次封鎖法遵守兩段鎖協議;但是兩段鎖協議并不要求事務必須一次將所有要使用的數據全部加鎖,因此遵守兩段鎖協議的事務可能發生死鎖。
33、數據庫故障的種類?
1、事務內部的故障2、系統故障3、介質故障4、計算機病毒
34、數據庫保護(訪問)的內容有哪些?
① 利用權限機制和完整性約束防止非法數據進入數據庫;
② 提供故障恢復能力;
② 提供并發訪問控制。
35、數據庫有哪幾種備份策略
完全備份、事務日志備份、差異備份、文件備份。
36、DBMS 的控制操作有哪些
①數據的安全性保護;②數據的完整性檢查;③并發控制;④數據庫恢復。
37、DBMS的數據控制功能有那些
(1)數據定義功能。DBMS提供相應數據語言來定義(DDL)數據庫結構,它們是刻畫數據庫框架,并被保存在數據字典中。
(2)數據存取功能。DBMS提供數據操縱語言(DML),實現對數據庫數據的基本存取操作:檢索,插入,修改和刪除。
(3)數據庫運行管理功能。DBMS提供數據控制功能,即是數據的安全性、完整性和并發控制等對數據庫運行進行有效地控制和管理,以確保數據正確有效。
(4)數據庫的建立和維護功能。包括數據庫初始數據的裝入,數據庫的轉儲、恢復、重組織,系統性能監視、分析等功能。
(5)數據庫的傳輸。DBMS提供處理數據的傳輸,實現用戶程序與DBMS之間的通信,通常與操作系統協調完成。
38、Java語言設計數據庫
創建數據庫鏈結->創建語句對象->執行SQL命令->訪問執行結果集->關閉鏈結
(1)利用JDBC API建立數據庫連接,
(2)在建立的數據庫連接上,執行SQL語句訪問數據庫
(3)在JSP中處理SQL執行結果
(4)在JSP中釋放數據庫連接
總結
- 上一篇: UG软件制图的几个重要技巧,你知道吗?
- 下一篇: pytorch时空数据处理4——图像转文