資料庫系統
由資料庫及其管理軟體組成
資料庫系統(database systems),是由資料庫及其管理軟體組成的系統。它是為適應數據處理的需要而發展起來的一種較為理想的數據處理的核心機構。它是一個實際可運行的存儲、維護和應用系統提供數據的軟體系統,是存儲介質、處理對象和管理系統的集合體。
資料庫系統
資料庫系統的個體含義是指一個具體的資料庫管理系統軟體和用它建立起來的資料庫;它的學科含義是指研究、開發、建立、維護和應用資料庫系統所涉及的理論、方法、技術所構成的學科。在這一含義下,資料庫系統是軟體研究領域的一個重要分支,常稱為資料庫領域。
資料庫系統是為適應數據處理的需要而發展起來的一種較為理想的數據處理的核心機構。計算機的高速處理能力和大容量存儲器提供了實現數據管理自動化的條件。
資料庫研究跨越於計算機應用、系統軟體和理論三個領域,其中應用促進新系統的研製開發,新系統帶來新的理論研究,而理論研究又對前兩個領域起著指導作用。資料庫系統的出現是計算機應用的一個里程牌,它使得計算機應用從以科學計算為主轉向以數據處理為主,並從而使計算機得以在各行各業乃至家庭普遍使用。在它之前的文件系統雖然也能處理持久數據,但是文件系統不提供對任意部分數據的快速訪問,而這對數據量不斷增大的應用來說是至關重要的。為了實現對任意部分數據的快速訪問,就要研究許多優化技術。這些優化技術往往很複雜,是普通用戶難以實現的,所以就由系統軟體(資料庫管理系統)來完成,而提供給用戶的是簡單易用的資料庫語言。由於對資料庫的操作都由資料庫管理系統完成,所以資料庫就可以獨立於具體的應用程序而存在,從而資料庫又可以為多個用戶所共享。因此,數據的獨立性和共享性是資料庫系統的重要特徵。數據共享節省了大量人力物力,為資料庫系統的廣泛應用奠定了基礎。資料庫系統的出現使得普通用戶能夠方便地將日常數據存入計算機並在需要的時候快速訪問它們,從而使計算機走出科研機構進入各行各業、進入家庭。
資料庫系統一般由4個部分組成:
①資料庫,即存儲在磁帶、磁碟、光碟或其他外存介質上、按一定結構組織在一起的相關數據的集合。
②資料庫管理系統(DBMS)。它是一組能完成描述、管理、維護資料庫的程序系統。它按照一種公用的和可控制的方法完成插入新數據、修改和檢索原有數據的操作。
③資料庫管理員(DBA)。
④用戶和應用程序。
目前常見的資料庫系統有IBM的DB2、甲骨文的Oracle、微軟的SQL和Access、Sybase的Sybase、MySQL AB公司的MySQL等。不同的資料庫系統,有不同的特點,也有相對獨立的應用領域和用戶支持。
1.Oracle資料庫系統
Oracle公司為了最大限度地搶佔市場,針對不同規模和應用需求的用戶推出了不同功能組合的版本,而且所支持的操作系統也可說是全面覆蓋,UNIX、Linux和Windows都可以,所以Oracle資料庫不僅適用大公司選擇,可以滿足各種不同規模的企業用戶選擇。當然對於不同的用戶,所選擇的操作系統平台也不一樣,大型企業一般選擇基於UNIX或者Linux操作系統,而中、小型企業則選擇基於Linux或者Windows操作系統。
2.DB2資料庫系統
DB2儘管是IBM開發的,但它與其他資料庫系統一樣,也不僅局限於自身的伺服器,而是同樣是採取了開放的政策。所以現在許多非IBM自有品牌伺服器也提供了對DB2資料庫系統支持。
先來看一下操作系統支持。在UNIX操作系統方面,除了IBM自己的AIX操作系統外,DB2有支持目前主流的Sun Solrais和HP-UX操作系統的版本,其他的像主流版本的Linux和Windows系統,IBM都有提供了相應的DB2資料庫系統版本。
3.SQL/Access資料庫系統
因為它們與應用最為普通的Windows系統一樣,都是微軟公司的產品,所以SQL和Access的最佳操作系統環境就是微軟的Windows。而目前支持Windows操作系統的伺服器架構已非常普遍,可以說所有主流處理器架構都有很好的支持,包括IBM的Power處理器、Sun的UltraSparc處理器。所以在這方面,基於這兩大資料庫軟體的資料庫伺服器是沒有什麼限制的。
4.MySQL資料庫系統
MySQL是MySQL AB公司提供的一款開放而且免費的資料庫系統。雖然功能不是非常強大,性能也只能算是一般,但在各種中、小型應用中還是非常普及的,畢竟它比起針對小型辦公應用而設計的Acess來說還是非常有優勢的。
①能夠保證數據的獨立性。數據和程序相互獨立有利於加快軟體開發速度,節省開發費用。
②冗餘數據少,數據共享程度高。
③系統的用戶介面簡單,用戶容易掌握,使用方便。
④能夠確保系統運行可靠,出現故障時能迅速排除;能夠保護數據不受非受權者訪問或破壞;能夠防止錯誤數據的產生,一旦產生也能及時發現。
⑤有重新組織數據的能力,能改變數據的存儲結構或數據存儲位置,以適應用戶操作特性的變化,改善由於頻繁插入、刪除操作造成的數據組織零亂和時空性能變壞的狀況。
⑥具有可修改性和可擴充性。
⑦能夠充分描述數據間的內在聯繫。
數據的結構化,數據的共享性好,數據的獨立性好,數據存儲粒度小,數據管理系統,為用戶提供了友好的介面。資料庫系統的核心和基礎,是數據模型,現有的資料庫系統均是基於某種數據模型的。
資料庫系統的核心是資料庫管理系統。
資料庫系統一般由資料庫、資料庫管理系統(DBMS)、應用系統、資料庫管理員和用戶構成。DBMS是資料庫系統的基礎和核心。
對資料庫系統的基本要求是:
①能夠保證數據的獨立性。數據和程序相互獨立有利於加快軟體開發速度,節省開發費用。
②冗餘數據少,數據共享程度高。
③系統的用戶介面簡單,用戶容易掌握,使用方便。
④能夠確保系統運行可靠,出現故障時能迅速排除;能夠保護數據不受非受權者訪問或破壞;能夠防止錯誤數據的產生,一旦產生也能及時發現。
⑤有重新組織數據的能力,能改變數據的存儲結構或數據存儲位置,以適應用戶操作特性的變化,改善由於頻繁插入、刪除操作造成的數據組織零亂和時空性能變壞的狀況。
⑥具有可修改性和可擴充性。
⑦能夠充分描述數據間的內在聯繫。
1. 計算機硬體
計算機硬體是資料庫系統的物質基礎,是存儲資料庫及運行資料庫管理系統的硬體資源,主要包括主機、存儲設備、輸入輸出設備以及計算機網路環境。
2. 計算機軟體
資料庫系統中的軟體包括操作系統、資料庫管理系統及資料庫應用系統等。
資料庫管理系統是資料庫系統的核心軟體之一。它提供數據定義、數據操作、資料庫管理、資料庫建立和維護以及通信等功能。DBMS提供對資料庫中數據資源進行統一管理和控制的功能,將用戶、應用程序與資料庫中數據相互隔離,是資料庫系統的核心,其功能的強弱是衡量資料庫系統性能優劣的主要指標。DBMS必須運行在相應的系統平台上,有操作系統和相關係統軟體的支持。 DBMS功能的強弱隨系統而異,在大型系統中功能較強、較全,在小型系統中功能較弱、較少。目前較流行的資料庫管理系統有Visual FoxPro,Access,SQL Server,Oracle,Sybase等。
資料庫應用系統是指系統開發人員利用資料庫系統資源開發出來的,面向某一類實際應用的應用軟體系統。它分為兩類。
(1) 管理信息系統。這是面向機構內部業務和管理的資料庫應用系統。例如,人事管理系統、教學管理系統等。
(2) 開放式信息服務系統。這是面向外部、提供動態信息查詢功能,以滿足不同信息需求的資料庫應用系統。例如,大型綜合科技信息系統、經濟信息系統和專業的證券實時行情、商品信息系統。
3. 資料庫
資料庫(DateBase,DB)是指資料庫系統中按照一定的方式組織的、存儲在外部存儲設備上的、能為多個用戶共享的及與應用程序相互獨立的相關數據集合。它不僅包括描述事物的數據本身,而且還包括相關事物之間的聯繫。
資料庫中的數據是面向多種應用,可以被多個用戶、多個應用程序共享。其數據結構獨立於使用數據的程序,對於數據的增加、刪除、修改和檢索由DBMS進行統一管理和控制,用戶對資料庫進行的各種操作都是DBMS實現的。
4. 資料庫系統的有關人員
資料庫系統的有關人員主要有3類:最終用戶、資料庫應用系統開發人員和資料庫管理員(DataBase Administrator,DBA)。最終用戶指通過應用系統的用戶界面使用資料庫的人員,他們一般對資料庫知識了解不多。資料庫應用系統開發人員包括系統分析員、系統設計員和程序員。系統分析員負責應用系統的分析,他們和用戶、資料庫管理員相配合,參與系統分析;系統設計員負責應用系統設計和資料庫設計;程序員則根據設計要求進行編碼。資料庫管理員是數據管理機構的一組人員,他們負責對整個資料庫系統進行總體控制和維護,以保證資料庫系統的正常運行。
1. 數據共享
數據共享是指多個用戶可以同時存取數據而不相互影響,數據共享包括3個方面:所有用戶可以同時存取數據;資料庫不僅可以為當前的用戶服務,也可以為將來的新用戶服務;可以使用多種語言完成與資料庫的介面。
2. 減少數據冗餘
數據冗餘就是數據重複,數據冗餘既浪費存儲空間,又容易產生數據的不一致。在非資料庫系統中,由於每個應用程序都有自己的數據文件,所以數據存在著大量的重複。
資料庫從全局觀念來組織和存儲數據,數據已經根據特定的數據模型結構化,在資料庫中用戶的邏輯數據文件和具體的物理數據文件不必一一對應,從而有效地節省了存儲資源,減少了數據冗餘,增強了數據的一致性。
3. 具有較高的數據獨立性
所謂數據獨立是指數據與應用程序之間的彼此獨立,它們之間不存在相互依賴的關係。應用程序不必隨數據存儲結構的改變而變動,這是資料庫一個最基本的優點。
在資料庫系統中,資料庫管理系統通過映像,實現了應用程序對數據的邏輯結構與物理存儲結構之間較高的獨立性。資料庫的數據獨立包括兩個方面。
(1) 物理數據獨立:數據的存儲格式和組織方法改變時,不影響資料庫的邏輯結構,從而不影響應用程序。(2) 邏輯數據獨立:資料庫邏輯結構的變化(如數據定義的修改,數據間聯繫的變更等)不影響用戶的應用程序。數據獨立提高了數據處理系統的穩定性,從而提高了程序維護的效益。4. 增強了數據安全性和完整性保護資料庫加入了安全保密機制,可以防止對數據的非法存取。由於實行集中控制,有利於控制數據的完整性。資料庫系統採取了併發訪問控制,保證了數據的正確性。另外,資料庫系統還採取了一系列措施,實現了對資料庫被破壞后的恢復。
數據模型是信息模型在數據世界中的表示形式。可將數據模型分為三類:層次模型、網狀模型和關係模型。
(1)層次模型
層次模型是一種用樹形結構描述實體及其之間關係的數據模型。在這種結構中,每一個記錄類型都是用節點表示,記錄類型之間的聯繫則用結點之間的有向線段來表示。每一個雙親結點可以有多個子節點但是每一個子節點只能有一個雙親結點。這種結構決定了採用層次模型作為數系組織方式的層次資料庫系統只能處理一對多的實體聯繫。
(2)網狀模型
網狀模型允許一個結點可以同時擁有多個雙親結點和子節點。因而同層次模型相比,網狀結構更具有普遍性,能夠直接地描述現實世界的實體。也可以認為層次模型是網狀模型的一個特例。
(3)關係模型關係模型是採用二維表格結構表達實體類型及實體間聯繫的數據模型,它的基本假定是所有數據都表示為數學上的關係。
資料庫管理系統是資料庫系統的核心,對資料庫的一切操作,如原始數據的裝入、檢索、更新、再組織等等,都是在DBMS的指揮、調度下進行的,它是用戶與物理資料庫之間的橋樑,根據用戶的命令對資料庫執行必要的操作。
第一,系統安全策略:包括了資料庫用戶管理、資料庫操作規範、用戶認證、操作系統安全4個部分。
1)資料庫用戶管理。資料庫用戶對信息訪問的最直接途徑就是通過用戶訪問。因此需要對用戶進行嚴格的管理,只有真正可信的人員才擁有管理資料庫用戶的許可權;
2)資料庫需要有操作規範。資料庫中數據才是核心,不能有任何的破壞,資料庫管理員是唯一能直接訪問資料庫的人員,管理員的操作是非常重要的,因此需要對資料庫維護人員培訓,樹立嚴謹的工作態度,同時需要規範操作流程;
3)用戶身份的認證。Oracle資料庫可以使用主機操作系統認證用戶,也可以使用資料庫的用戶認證,從安全形度出發,initSID.ora文件中的remote_os_authent參數設成FALSE,以防止沒有口令的連接。建議將remote_os_roles設成FALSE,防止欺騙性連接;
4)操作系統安全。對於運行任何一種資料庫的操作系統來說,都需要考慮安全問題。資料庫管理員以及系統賬戶的口令都必須符合規定,不能過於簡單而且需要定期的更換口令,對於口令的安全同樣重要。系統管理員在給操作系統做維護的時候,需要與資料庫管理員合作,避免。
第二,數據安全策略。
數據安全策略決定了可以訪問特定數據的用戶組,以及這些用戶的操作許可權。數據的安全性取決數據的敏感程度,如果數據不是那麼敏感,則數據的安全策略則可以稍微松一些;反之則需要制定特定的安全策略,嚴格的控制訪問對象,確保數據的安全。
第三,用戶安全策略。
用戶安全策略是由一般用戶安全、最終用戶安全、管理員安全、應用程序及開發人員安全、應用程序管理員安全5個部分組成。
1)一般用戶安全。如果對於用戶的認證由資料庫進行管理,則安全管理員就應該制定口令安全策略來維護資料庫訪問的安全性。可以配置oracle使用加密口令來進行客戶機/伺服器連接;
2)最終用戶安全。安全管理員必須為最終用戶安全制定策略。如果使用的是大型資料庫同時還有許多用戶,這是就需要安全管理員對用戶組進行分類,為每個用戶組創建用戶角色,並且對每個角色授予相應的許可權;
3)管理員安全。安全管理員應當擁有闡述管理員安全的策略。在資料庫創建后,應對SYS和SYSTEM用戶名更改口令,以防止對資料庫的未認證訪問,且只有資料庫管理員才可用;
4)應用程序開發人員安全。安全管理員必須為使用資料庫的應用程序開發人員制定一套特殊的安全策略。安全管理員可以把創建必要對象的許可權授予應用程序開發人員。反之,創建對象的許可權只能授予資料庫管理員,他從開發人員那裡接收對象創建請求;
5)應用程序管理員安全。在有許多資料庫應用程序的大型資料庫系統中,可以設立應用程序管理員
第四,口令管理策略。口令管理包括賬戶鎖定、口令老化及到期、口令歷史記錄、口令複雜性校驗。
1)帳戶鎖定。當某一特定用戶超過了失敗登錄嘗試的指定次數,伺服器會自動鎖定這個用戶帳戶;
2)口令老化及到期。DBA使用CREATE PROFILE語句指定口令的最大生存期,當到達了指定的時間長度則口令到期,用戶或DBA必須變更口令;
3)口令歷史記錄。DBA使用CREATE PROFILE語句指定時間間隔,在這一間隔內用戶不能重用口令;
4)口令複雜性校驗。通過使用PL/SQL腳本utlpwdmg.sql(它設置預設的概要文件參數),可以指定口令複雜性校驗例行程序。