資料庫最基本原理

2022-01-10 19:47:37 字數 2132 閱讀 4097

資料庫(database)是按照資料結構來組織、儲存和管理資料的倉庫,它產生於距今六十多年前,隨著資訊科技和市場的發展,特別是二十世紀九十年代以後,資料管理不再僅僅是儲存和管理資料,而轉變成使用者所需要的各種資料管理的方式。資料庫有很多種型別,從最簡單的儲存有各種資料的**到能夠進行海量資料儲存的大型資料庫系統都在各個方面得到了廣泛的應用。

在資訊化社會,充分有效地管理和利用各類資訊資源,是進行科學研究和決策管理的前提條件。資料庫技術是管理資訊系統、辦公自動化系統、決策支援系統等各類資訊系統的核心部分,是進行科學研究和決策管理的重要技術手段。

⑴ 實現資料共享

資料共享包含所有使用者可同時訪問資料庫中的資料,也包括使用者可以用各種方式通過介面使用資料庫,並提供資料共享。

⑵ 減少資料的冗餘度

同檔案系統相比,由於資料庫實現了資料共享,從而避免了使用者各自建立應用檔案。減少了大量重複資料,減少了資料冗餘,維護了資料的一致性。

⑶ 資料的獨立性

資料的獨立性包括邏輯獨立性(資料庫中資料庫的邏輯結構和應用程式相互獨立)和物理獨立性(資料物理結構的變化不影響資料的邏輯結構)。

⑷ 資料實現集中控制

檔案管理方式中,資料處於一種分散的狀態,不同的使用者或同一使用者在不同處理中其檔案之間毫無關係。利用資料庫可對資料進行集中控制和管理,並通過資料模型表示各種資料的組織以及資料間的聯絡。

⑸資料一致性和可維護性,以確保資料的安全性和可靠性

主要包括:①安全性控制:以防止資料丟失、錯誤更新和越權使用;②完整性控制:保證資料的正確性、有效性和相容性;③併發控制:使在同一時間週期內,允許對資料實現多路訪問,又能防止使用者之間的不正常互動作用。

⑹ 故障恢復

由資料庫管理系統提供一套方法,可及時發現故障和修復故障,從而防止資料被破壞。資料庫系統能盡快恢復資料庫系統執行時出現的故障,可能是物理上或是邏輯上的錯誤。比如對系統的誤操作造成的資料錯誤等。

關聯式資料庫,是建立在關係模型基礎上的資料庫,借助於集合代數等數學概念和方法來處理資料庫中的資料。現實世界中的各種實體以及實體之間的各種聯絡均用關係模型來表示。關係模型是由埃德加·科德於2023年首先提出的,並配合「科德十二定律」。現如今雖然對此模型有一些批評意見,但它還是資料儲存的傳統標準。標準資料查詢語言sql就是一種基於關聯式資料庫的語言,這種語言執行對關聯式資料庫中資料的檢索和操作。 關係模型由關係資料結構、關係操作集合、關係完整性約束三部分組成。

nosql(nosql = not only sql ),意即"不僅僅是sql"。,泛指非關係型的資料庫。隨著網際網路web2.0**的興起,傳統的關聯式資料庫在應付web2.0**,特別是超大規模和高併發的sns型別的web2.0純動態**已經顯得力不從心,暴露了很多難以克服的問題,而非關係型的資料庫則由於其本身的特點得到了非常迅速的發展。nosql資料庫的產生就是為了解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用難題。

事務在英文中是transaction,和現實世界中的交易很類似,它有如下四個特性:

1、a (atomicity) 原子性

原子性很容易理解,也就是說事務裡的所有操作要麼全部做完,要麼都不做,事務成功的條件是事務裡的所有操作都成功,只要有乙個操作失敗,整個事務就失敗,需要回滾。

比如銀行轉賬,從a賬戶轉100元至b賬戶,分為兩個步驟:1)從a賬戶取100元;2)存入100元至b賬戶。這兩步要麼一起完成,要麼一起不完成,如果只完成第一步,第二步失敗,錢會莫名其妙少了100元。

2、c (consistency) 一致性

一致性也比較容易理解,也就是說資料庫要一直處於一致的狀態,事務的執行不會改變資料庫原本的一致性約束。

例如現有完整性約束a+b=10,如果乙個事務改變了a,那麼必須得改變b,使得事務結束後依然滿足a+b=10,否則事務失敗。

3、i (isolation) 獨立性

所謂的獨立性是指併發的事務之間不會互相影響,如果乙個事務要訪問的資料正在被另外乙個事務修改,只要另外乙個事務未提交,它所訪問的資料就不受未提交事務的影響。

比如現有有個交易是從a賬戶轉100元至b賬戶,在這個交易還未完成的情況下,如果此時b查詢自己的賬戶,是看不到新增加的100元的。

4、d (durability) 永續性

永續性是指一旦事務提交後,它所做的修改將會永久的儲存在資料庫上,即使出現宕機也不會丟失。

資料庫鎖的基本原理

為了保證資料的完事性和一致性,資料庫系統採用鎖來實現事務的隔離性。各種大型資料庫採用的鎖基本理論是一致的,但在具體實現上各有差別。從併發事務鎖定的關係上看,可以分為共享鎖定和獨佔鎖定。從鎖定的物件不同,一般可以分為表鎖定和行鎖定。鎖共享鎖用於讀取資料操作,它是非獨佔的,允許其他事務同時讀取其鎖定的資...

資料庫鎖的基本原理

為了保證資料的完事性和一致性,資料庫系統採用鎖來實現事務的隔離性。各種大型資料庫採用的鎖基本理論是一致的,但在具體實現上各有差別。從併發事務鎖定的關係上看,可以分為共享鎖定和獨佔鎖定。從鎖定的物件不同,一般可以分為表鎖定和行鎖定。鎖共享鎖用於讀取資料操作,它是非獨佔的,允許其他事務同時讀取其鎖定的資...

資料庫鎖的基本原理

為了保證資料的完事性和一致性,資料庫系統採用鎖來實現事務的隔離性。各種大型資料庫採用的鎖基本理論是一致的,但在具體實現上各有差別。從併發事務鎖定的關係上看,可以分為共享鎖定和獨佔鎖定。從鎖定的物件不同,一般可以分為表鎖定和行鎖定。鎖共享鎖用於讀取資料操作,它是非獨佔的,允許其他事務同時讀取其鎖定的資...