資料庫常見問題(P1)

2021-09-26 20:14:30 字數 2159 閱讀 7994

資料庫系統是採用資料庫技術的計算機系統,由以下部分組成:

資料模型指對資料特徵的抽象表示;

從使用者的角度對資料建模的結果稱為概念模型,比如建立乙個學生的資料庫,從使用者的角度去看,每個學生應該有哪些屬性,比如年齡、學號等,不關心或者說不應該有哪些屬性,比如興趣愛好等,這些資訊都會在概念模型中有所體現;

從資料庫管理系統的角度或者說從計算機的角度對資料建模的結果稱為邏輯模型和物理模型:其中邏輯模型描述資料之間的邏輯關係,常用的有層次模型、網狀模型、關係模型、物件關係資料模型等等;而其中的物理模型涉及到計算機最底層對資料的抽象,即資料在系統內部的表示方式和訪問方法等。

概念模型->邏輯模型->儲存模型,這一過程也是資料庫從現實世界到計算機表達的抽象過程。

資料模型精確地描述了系統的靜態特性、動態特性和完整性約束,因此資料模型通常由資料結構(靜態特性)、資料操作(動態特性)、完整性約束三部分組成。

正規化指的是在關係型資料庫中,每乙個關係間都要滿足一定的規範,根據這個規範的不同,分為五個等級,要求從高到低分別為:第一正規化(1nf)、第二正規化(2nf)、第三正規化(3nf)、第四正規化(4nf)、第五正規化(5nf);一般,將資料規範到第三正規化就能夠滿足要求了。

第一正規化是關係型資料庫最低要求,不滿足第一正規化的資料庫就不是關係型資料庫;第一正規化包括以下主導原則:

表中的每個屬性只能包含乙個值;

表中的每個元組必須擁有相同數量的屬性;

表中的屬性一定不能重複;

即在關係中,每行擁有相同的屬性(不是相同的屬性值)、列中沒有重複屬性且屬性具有原子性。

第二正規化建立在第一正規化的基礎上,首先要求了:表中的每個實體(即每一行或說每個元組)必須可以唯一的被區分。

為了實現這個目標就必須要為表設定一組能夠區分彼此而其他屬性不可以區分的屬性,用於儲存各個實體的唯一標識,這個屬性列被稱為主屬性,主屬性也稱為候選碼,為了區別,可以將主屬性稱為碼屬性,其餘的屬性組統稱為非主屬性非碼屬性。若乙個關係有多個候選碼則選定其中乙個為主碼,這些屬性稱為主碼屬性

注意,以上的候選碼、主屬性、非主屬性、主碼都是以屬性組為單位的,並不一定是單個屬性列。

第二正規化更要求了非主屬性必須完全依賴於主碼,即不能存在僅依賴主碼的一部分屬性的情況,如果有這種情況,要求這個非主屬性和其依賴的一部分字碼分離出來組建乙個新的關係。

第三正規化在第二正規化的基礎上要求表中不存在任意非主屬性對任意主屬性的傳遞函式依賴。所謂的傳遞依賴指的是若主屬性a決定非主屬性b,而非主屬性b決定非主屬性c,則稱非主屬性c傳遞依賴與主屬性a;

模式指的是資料庫中全體資料的邏輯結構和特徵的描述,例如關係型資料庫的模式就是乙個資料庫中擁有哪些表、每個表中有哪些屬性、表與表之間擁有什麼樣的關係這些內容統稱為資料庫的模式。相對應的的概念是例項,例項是對模式賦值後的結果,模式的動態化。

具體舉例來說乙個學校持有乙個學生資料庫,模式指的是如何對學生實體進行抽象,而例項根據具體的每乙個學生在模式中進行賦值。2019級的學生和2020級的學生擁有相同的模式,但肯定是不同的例項。

模式一般都採用**模式,從使用者的角度從外向內看分為:外模式、邏輯模式、儲存模式;

其中邏輯模式是乙個資料庫中全體資料的邏輯結構和特徵的描述,是所有該資料庫使用者的公共資料檢視。乙個資料庫只有乙個模式,資料模式以某一種資料模型作為基礎,統一的綜合考慮了所有使用者的需求,並且將這些需求有機的結合成乙個邏輯整體。資料庫管理系統提供模式資料定義語言(ddl)來嚴格的定義模式。在關係型資料庫中,模式定義了若干基本表,不僅描述了表具有哪些屬性,哪些是碼屬性哪些是非碼屬性等,還描述了表與表之間的關係。

外模式也稱為使用者模式,是資料庫使用者能夠看見和使用的區域性資料的邏輯結構和特徵的描述。乙個資料庫可以有許多外模式,根據使用者不同的應用需求而變化,與此同時外模式還保護了資料庫的安全性,使得每個使用者只能看見一部分資料,其餘的部分可能是他不關心的或是無權訪問的。關係型資料庫中,外模式包括了小部分基本表和檢視(虛表)。

內模式也稱儲存模式,是資料庫內部的表示方式,乙個資料庫只有乙個內模式。

模式間的轉換分為:外模式/模式對映和模式/內模式的對映,前乙個對映由資料庫管理員完成,後乙個對映由資料庫管理系統自動完成。

資料庫常見問題

髒讀 事務b讀取事務a還沒有提交的資料 不可重複讀 兩次事務讀的資料不一致 幻讀 事務a修改了資料,事務b也修改了資料,這時在事務a看來,明明修改了資料,咋不一樣 會出現 不會出現 資料庫 聯機事務處理oltp on line transaction processing 儲存的資料量小,方便操作,...

PostgreSQL資料庫常見問題

insert into test values st transform st geomfromtext point 10070507.650288 4282901.6281314 900913 insert into test values st transform st geomfromtext...

資料庫面試常見問題

3 索引 4 mysql儲存引擎 5 分割槽和分表 6 mvcc 7 資料庫的鎖 8 為什麼innodb採用b 樹 這是乙個超連結 特性 原子性 一致性 隔離性 永續性。隔離等級 讀未提交 讀已提交 可重複讀 序列化 這是乙個超連結 悲觀鎖 對外界修改資料持保守態度。認為外界會修改資料。悲觀鎖會在修...