繁體小說 > 呱呱視頻社區 > ◎第一章 數據庫

◎第一章 數據庫

⬅ 上一章 📋 目錄 ⚠ 報錯 下一章 ➡
⭐ 加入書籤
推薦閱讀: 花都風流第一兵王 代嫁寵妻是替身 天鋒戰神 穿越古代賺錢養娃 我覺醒了神龍血脈 我的老婆國色天香 隱婚嬌妻別想跑 遲遲也歡喜 全職獵人之佔蔔師

{

\"code\": 200,

\"title\": \"\",

\"content\": \"數據庫\\n\\n數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生於距今五十年前,隨著資訊技術和市場的發展,特彆是二十世紀九十年代以後,數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。數據庫有很多種類型,從最簡單的存儲有各種數據的表格到能夠進行海量數據存儲的大型數據庫係統都在各個方麵得到了廣泛的應用。\\n\\n嚴格地說,數據庫是“按照數據結構來組織、存儲和管理數據的倉庫”。在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣的“倉庫”,並根據管理的需要進行相應的處理。例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性彆、籍貫、工資、簡曆等)存放在表中,這張表就可以看成是一個數據庫。有了這個\\\"數據倉庫\\\"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個範圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種\\\"數據庫\\\",使其可以利用計算機實現財務、倉庫、生產的自動化管理。\\n\\nJ.Martin給數據庫下了一個比較完整的定義:數據庫是存儲在一起的相關數據的集合,這些數據是結構化的,無有害的或不必要的冗餘,併爲多種應用服務;數據的存儲獨立於使用它的程式;對數據庫插入新數據,修改和檢索原有數據均能按一種公用的和可控製的方式進行。當某個係統中存在結構上完全分開的若乾個數據庫時,則該係統包含一個“數據庫集合”。\\n\\n定義2\\n\\n數據庫是依照某種數據模型組織起來並存放二級存儲器中的數據集合。這種數據集合具有如下特點:儘可能不重複,以最優方式為某個特定組織的多種應用服務,其數據結構獨立於使用它的應用程式,對數據的增、刪、改和檢索由統一軟件進行管理和控製。從發展的曆史看,數據庫是數據管理的高級階段,它是由檔案管理係統發展起來的。\\n\\n定義3\\n\\n(伯爾尼公約議定書專家委員會的觀點)\\n\\n所有的資訊(數據事實等)的編纂物,不論其是以印刷形式,計算機存儲單元形式,還是其它形式存在,都應視為“數據庫”。\\n\\n數字化內容選擇的原因有很多,概括起來主要有:\\n\\n(1)存儲空間的原因。數字化的產品是通過網絡被廣大用戶存取利用,而大家都知道數字化產品是存放在磁盤陣列上的,磁盤陣列由服務器來管理,磁盤空間是有限的,服務器的能力也是有限的,不可能無限量地存入數字資源,這就需要我們對文獻資源數字化內容進行選擇。\\n\\n(2)解決數字化生產高成本和圖書館經費有限性之間矛盾的需要。幾乎冇有圖書館有充足的資源來對整個館藏進行數字化,內容選擇不可避免。\\n\\n(3)數字資源管理的需要。技術的快速發展使數字化項目所生成的數字資源的生命週期越來越短,投入巨資進行數字遷移是延長數字資源生命的1個重要途徑,昂貴的維護成本就必須考慮數字化的內容選擇。\\n\\n數據庫發展史數據庫技術從誕生到現在,在不到半個世紀的時間裡,形成了堅實的理論基礎、成熟的商業產品和廣泛的應用領域,吸引越來越多的研究者加入。數據庫的誕生和發展給計算機資訊管理帶來了一場巨大的革命。三十多年來,國內外已經開發建設了成千上萬個數據庫,它已成為企業、部門乃至個人日常工作、生產和生活的基礎設施。同時,隨著應用的擴展與深入,數據庫的數量和規模越來越大,數據庫的研究領域也已經大大地拓廣和深化了。30年間數據庫領域獲得了三次計算機圖靈獎(C.W.Bachman,E.F.Codd,J.Gray),更加充分地說明瞭數據庫是一個充滿活力和創新精神的領域。就讓我們沿著曆史的軌跡,追溯一下數據庫的發展曆程。\\n\\n傳統上,為了確保企業持續擴大的IT係統穩定運行,一般用戶資訊中心往往不僅要不斷更新更大容量的IT運維軟硬體設備,極大浪費企業資源;更要長期維持一支由數據庫維護、服務器維護、機房值班等各種維護人員組成的運維大軍,維護成本也隨之節節高升。為此,企業IT決策者開始思考:能不能像擰水龍頭一樣按需調節的使用IT運維服務?而不是不斷增加已經價格不菲的運維成本。\\n\\n定義4\\n\\n數據庫(DataBase,DB)是一個長期存儲在計算機內的、有組織的、有共享的、統一管理的數據集合。它是一個按數據結構來存儲和管理數據的計算機軟件係統。數據庫的概念實際包括兩層意思:\\n\\n(1)數據庫是一個實體,它是能夠合理保管數據的“倉庫”,用戶在該“倉庫”中存放要管理的事務數據,“數據”和“庫”兩個概念結合成為數據庫。\\n\\n(2)數據庫是數據管理的新方法和技術,它能更合適的組織數據、更方便的維護數據、更嚴密的控製數據和更有效的利用數據。\\n\\n數據庫中數據的性質\\n\\n數據整體性\\n\\n數據庫是一個單位或是一個應用領域的通用數據處理係統,他存儲的是屬於企業和事業部門、團體和個人的有關數據的集合。數據庫中的數據是從全域性觀點出發建立的,他按一定的數據模型進行組織、描述和存儲。其結構基於數據間的自然聯絡,從而可提供一切必要的存取路徑,且數據不再針對某一應用,而是麵向全組織,具有整體的結構化特征。\\n\\n數據共享性\\n\\n數據庫中的數據是為眾多用戶所共享其資訊而建立的,已經擺脫了具體程式的限製和製約。不同的用戶可以按各自的用法使用數據庫中的數據;多個用戶可以同時共享數據庫中的數據資源,即不同的用戶可以同時存取數據庫中的同一個數據。數據共享性不僅滿足了各用戶對資訊內容的要求,同時也滿足了各用戶之間資訊通訊的要求。\\n\\n發展簡史\\n\\n數據管理的誕生\\n\\n數據庫的曆史可以追溯到五十年前,那時的數據管理非常簡單。通過大量的分類、比較和表格繪製的機器運行數百萬穿孔卡片來進行數據的處理,其運行結果在紙上列印出來或者製成新的穿孔卡片。而數據管理就是對所有這些穿孔卡片進行物理的儲存和處理。然而,1951年雷明頓蘭德公司(RemingtonRandInc.)的一種叫做UnivacI的計算機推出了一種一秒鐘可以輸入數百條記錄的磁帶驅動器,從而引發了數據管理的革命。1956年IBM生產出第一個磁盤驅動器——theModel305RAMAC。此驅動器有50個盤片,每個盤片直徑是2英尺,可以儲存5MB的數據。使用磁盤最大的好處是可以隨機地存取數據,而穿孔卡片和磁帶隻能順序存取數據。\\n\\n1951:Univac係統使用磁帶和穿孔卡片作為數據存儲。\\n\\n數據庫係統的萌芽出現於60年代。當時計算機開始廣泛地應用於數據管理,對數據的共享提出了越來越高的要求。傳統的檔案係統已經不能滿足人們的需要。能夠統一管理和共享數據的數據庫管理係統(DBMS)應運而生。數據模型是數據庫係統的核心和基礎,各種DBMS軟件都是基於某種數據模型的。所以通常也按照數據模型的特點將傳統數據庫係統分成網狀數據庫、層次數據庫和關係數據庫三類。\\n\\n最早出現的是網狀DBMS,是美國通用電氣公司Bachman等人在1961年開發成功的IDS(IntegratedDataStore)。1961年通用電氣公司(GeneralElectricCo.)的CharlesBachman成功地開發出世界上第一個網狀DBMS也是第一個數據庫管理係統——整合數據存儲(IntegratedDataStoreIDS),奠定了網狀數據庫的基礎,並在當時得到了廣泛的發行和應用。IDS具有數據模式和日誌的特征。但它隻能在GE主機上運行,並且數據庫隻有一個檔案,數據庫所有的表必須通過手工編碼來生成。之後,通用電氣公司一個客戶——BFGoodrichChemical公司最終不得不重寫了整個係統。並將重寫後的係統命名為整合數據管理係統(IDMS)。\\n\\n網狀數據庫模型對於層次和非層次結構的事物都能比較自然的模擬,在關係數據庫出現之前網狀DBMS要比層次DBMS用得普遍。在數據庫發展史上,網狀數據庫占有重要地位。\\n\\n層次型DBMS是緊隨網絡型數據庫而出現的。最著名最典型的層次數據庫係統是IBM公司在1968年開發的IMS\\n\\n(InformationManagementSystem),一種適合其主機的層次數據庫。這是IBM公司研製的最早的大型數據庫係統程式產品。從60年代末產生起,如今已經發展到IMSV6,提供群集、N路數據共享、訊息隊列共享等先進特性的支援。這個具有30年曆史的數據庫產品在如今的WWW應用連接、商務智慧應用中扮演著新的角色。\\n\\n1973年Cullinane公司(也就是後來的Cullinet軟件公司),開始出售Goodrich公司的IDMS改進版本,並且逐漸成為當時世界上最大的軟件公司。\\n\\n關係數據庫的由來\\n\\n網狀數據庫和層次數據庫已經很好地解決了數據的集中和共享問題,但是在數據獨立性和抽象級彆上仍有很大欠缺。用戶在對這兩種數據庫進行存取時,仍然需要明確數據的存儲結構,指出存取路徑。而後來出現的關係數據庫較好地解決了這些問題。\\n\\n1970年,IBM的研究員E.F.Codd博士在刊物《CommunicationoftheACM》上發表了一篇名為“ARelationalModelofDataforLargeSharedDataBanks”的論文,提出了關係模型的概念,奠定了關係模型的理論基礎。儘管之前在1968年Childs已經提出了麵向集合的模型,然而這篇論文被普遍認為是數據庫係統曆史上具有劃時代意義的裡程碑。Codd的心願是為數據庫建立一個優美的數據模型。後來Codd又陸續發表多篇文章,論述了範式理論和衡量關係係統的12條標準,用數學理論奠定了關係數據庫的基礎。關係模型有嚴格的數學基礎,抽象級彆比較高,而且簡單清晰,便於理解和使用。但是當時也有人認為關係模型是理想化的數據模型,用來實現DBMS是不現實的,尤其擔心關係數據庫的效能難以接受,更有人視其為當時正在進行中的網狀數據庫規範化工作的嚴重威脅。為了促進對問題的理解,1974年ACM牽頭組織了一次研討會,會上開展了一場分彆以Codd和Bachman為首的支援和反對關係數據庫兩派之間的辯論。這次著名的辯論推動了關係數據庫的發展,使其最終成為現代數據庫產品的主流。\\n\\n1969:EdgarF。“Ted”Codd發明瞭關係數據庫\\n\\n1970年關係模型建立之後,IBM公司在SanJose實驗室增加了更多的研究人員研究這個項目,這個項目就是著名的SystemR。其目標是論證一個全功能關係DBMS的可行性。該項目結束於1979年,完成了第一個實現SQL的DBMS。然而IBM對IMS的承諾阻止了SystemR的投產,一直到1980年SystemR才作為一個產品正式推向市場。IBM產品化步伐緩慢的三個原因:IBM重視信譽,重視質量,儘量減少故障;IBM是個大公司,官僚體係龐大;IBM內部已經有層次數據庫產品,相關人員不積極,甚至反對。\\n\\n然而同時,1973年加州大學伯克利分校的MichaelStonebraker和EugeneWong利用SystemR已釋出的資訊開始開發自己的關係數據庫係統Ingres。他們開發的Ingres項目最後由Oracle公司、Ingres公司以及矽穀的其他廠商所商品化。後來,SystemR和Ingres係統雙雙獲得ACM的1988年“軟件係統獎”。\\n\\n1976年霍尼韋爾公司(Honeywell)開發了第一個商用關係數據庫係統——MulticsRelationalDataStore。關係型數據庫係統以關係代數為堅實的理論基礎,經過幾十年的發展和實際應用,技術越來越成熟和完善。其代表產品有Oracle、IBM公司的DB2、微軟公司的MSSQLServer以及Informix、ADABASD等等。\\n\\n結構化查詢語言(SQL)\\n\\n1974年,IBM的RayBoyce和DonChamberlin將Codd關係數據庫的12條準則的數學定義以簡單的關鍵字語法表現出來,裡程碑式地提出了SQL(StructuredQueryLanguage)語言。SQL語言的功能包括查詢、操縱、定義和控製,是一個綜合的、通用的關係數據庫語言,同時又是一種高度非過程化的語言,隻要求用戶指出做什麼而不需要指出怎麼做。SQL整合實現了數據庫生命週期中的全部操作。SQL提供了與關係數據庫進行互動的方法,它可以與標準的編程語言一起工作。自產生之日起,SQL語言便成了檢驗關係數據庫的試金石,而SQL語言標準的每一次變更都指導著關係數據庫產品的發展方向。然而,直到二十世紀七十年代中期,關係理論才通過SQL在商業數據庫Oracle和DB2中使用。\\n\\n1986年,ANSI把SQL作為關係數據庫語言的美國標準,同年公佈了標準SQL文字。目前SQL標準有3個版本。基本SQL定義是ANSIX3135-89,“DatabaseLanguage-SQLwithIntegrityEnhancement”[ANS89],一般叫做SQL-89。SQL-89定義了模式定義、數據操作和事務處理。SQL-89和隨後的ANSIX3168-1989,“DatabaseLanguage-EmbeddedSQL”構成了第一代SQL標準。ANSIX3135-1992[ANS92]描述了一種增強功能的SQL,現在叫做SQL-92標準。SQL-92包括模式操作,動態創建和SQL語句動態執行、網絡環境支援等增強特性。在完成SQL-92標準後,ANSI和ISO即開始合作開發SQL3標準。SQL3的主要特點在於抽象數據類型的支援,為新一代對象關係數據庫提供了標準。\\n\\n數據庫巨人的誕生\\n\\n——甲骨文公司(Oracle)\\n\\n1976年IBME.F.Codd發表了一篇裡程碑的論文“R係統:數據庫關係理論”,介紹了關係數據庫理論和\\n\\n甲骨文公司\\n\\n甲骨文公司查詢語言SQL。Oracle的創始人Ellison非常仔細地閱讀了這篇文章,被其內\\n\\n容震驚,這是第一次有人用全麵一致的方案管理數據資訊。作者E.F.Codd十年前就發表了關係數據庫理論,並在IBM研究機構開發原型,這個項目就是R係統,存取數據表的語言就是SQL。Ellison看完後,敏銳意識到在這個研究基礎上可以開發商用軟件係統。而當時大多數人認為關係數據庫不會有商業價值。Ellison認為這是他們的機會:他們決定開發通用商用數據庫係統Oracle,這個名字來源於他們曾給中央情報局做過的項目名。幾個月後,他們就開發了Oracle1.0。但這隻不過是個玩具,除了完成簡單關係查詢不能做任何事情,他們花相當長的時間才使Oracle變得可用,維持公司運轉主要靠承接一些數據庫管理項目和做顧問谘詢工作。而IBM卻冇有計劃開發,為什麼藍色巨人放棄了這個價值上百億的產品,原因有很多:IBM的研究人員大多是學術出身,他們最感興趣的是理論,而非推向市場的產品,從學術上看,研究成果應公開,發表論文和演講能使他們成名,為什麼不呢?還有一個很主要的原因就是IBM當時有一個銷售得還不錯的層次數據庫產品IMS。直到1985年IBM才釋出了關係數據庫DB2,Ellision那時已經成了千萬富翁。Ellison曾將IBM選擇Microsoft的MS-DOS作為IBM-PC機的操作係統比為:“世界企業經營曆史上最嚴重的錯誤,價值超過了上千億美元。”IBM發表R係統論文,而且冇有很快推出關係數據庫產品的錯誤可能僅僅次之。Oracle的市值在1996年就達到了280億美元。\\n\\n麵向對象數據庫\\n\\n隨著資訊技術和市場的發展,人們發現關係型數據庫係統雖然技術很成熟,但其侷限性也是顯而易見的:它能很好地處理所謂的“表格型數據”,卻對技術界出現的越來越多的複雜類型的數據無能為力。九十年代以後,技術界一直在研究和尋求新型數據庫係統。但在什麼是新型數據庫係統的發展方向的問題上,產業界一度是相當困惑的。受當時技術風潮的影響,在相當一段時間內,人們把大量的精力花在研究“麵向對象的數據庫係統(objectorienteddatabase)”或簡稱“OO數據庫係統”。值得一提的是,美國Stonebraker教授提出的麵向對象的關係型數據庫理論曾一度受到產業界的青睞。而Stonebraker本人也在當時被Informix花大價錢聘為技術總負責人。\\n\\n然而,數年的發展表明,麵向對象的關係型數據庫係統產品的市場發展的情況並不理想。理論上的完美性並冇有帶來市場的熱烈反應。其不成功的主要原因在於,這種數據庫產品的主要設計思想是企圖用新型數據庫係統來取代現有的數據庫係統。這對許多已經運用數據庫係統多年並積累了大量工作數據的客戶,尤其是大客戶來說,是無法承受新舊數據間的轉換而帶來的巨大工作量及钜額開支的。另外,麵向對象的關係型數據庫係統使查詢語言變得極其複雜,從而使得無論是數據庫的開發商家還是應用客戶都視其複雜的應用技術為畏途。\\n\\n數據管理的變革\\n\\n二十世紀六十年代後期出現了一種新型數據庫軟件:決定支援係統(DSS),其目的是讓管理者在決策過程中更有效地利用數據資訊。於是在1970年,第一個聯機分析處理工具——Express誕生了。其他決策支援係統緊隨其後,許多是由公司的IT部門開發出來的。\\n\\n1985年,第一個商務智慧係統(businessintelligence)由Metaphor計算機係統有限公司為Procter&Gamble公司開發出來,主要是用來連接銷售資訊和零售的掃描儀數據。同年,Pilot軟件公司開始出售第一個商用客戶\\/服務器執行資訊係統——CommandCenter。同樣在這年,加州大學伯克利分校Ingres項目演變成Postgres,其目標是開發出一個麵向對象的數據庫。此後一年,Graphael公司開發了第一個商用的對象數據庫係統—Gbase。\\n\\n1988年,IBM公司的研究者BarryDevlin和PaulMurphy發明瞭一個新的術語—資訊倉庫,之後,IT的廠商開始構建實驗性的數據倉庫。1991年,W.H.\\\"Bill\\\"Inmon出版了一本“如何構建數據倉庫”的書,使得數據倉庫真正開始應用。\\n\\n1991:W.H.“Bill”Inmon發表了”構建數據倉庫”\\n\\n二十世紀九十年代,隨著基於PC的客戶\\/服務器計算模式和企業軟件包的廣泛采用,數據管理的變革基本完成。數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。Internet的異軍突起以及XML語言的出現,給數據庫係統的發展開辟了一片新的天地。\\n\\n發展階段\\n\\n數據庫發展階段大致劃分爲如下幾個階段:人工管理階段、檔案係統階段、數據庫係統階段、高級數據庫階段。\\n\\n人工管理階段\\n\\n50年代中期之前,計算機的軟硬體均不完善。硬體存儲設備隻有磁帶、卡片和紙帶,軟件方麵還冇有操作係統,當時的計算機主要用於科學計算。這個階段由於還冇有軟件係統對數據進行管理,程式員在程式中不僅要規定數據的邏輯結構,還要設計其物理結構,包括存儲結構、存取方法、輸入輸出方式等。當數據的物理組織或存儲設備改變時,用戶程式就必須重新編製。由於數據的組織麵嚮應用,不同的計算程式之間不能共享數據,使得不同的應用之間存在大量的重複數據,很難維護應用程式之間數據的一致性。\\n\\n這一階段的主要特征可歸納為如下幾點:\\n\\n*計算機中冇有支援數據管理的軟件。\\n\\n*數據組織麵嚮應用,數據不能共享,數據重複。\\n\\n*在程式中要規定數據的邏輯結構和物理結構,數據與程式不獨立。\\n\\n*數據處理方式——批處理。\\n\\n檔案係統階段\\n\\n這一階段的主要標誌是計算機中有了專門管理數據庫的軟件——操作係統(檔案管理)。\\n\\n上世紀50年代中期到60年代中期,由於計算機大容量存儲設備(如硬盤)的出現,推動了軟件技術的發展,而操作係統的出現標誌著數據管理步入一個新的階段。在檔案係統階段,數據以檔案為單位存儲在外存,且由操作係統統一管理。操作係統為用戶使用檔案提供了友好介麵。檔案的邏輯結構與物理結構脫鉤,程式和數據分離,使數據與程式有了一定的獨立性。用戶的程式與數據可分彆存放在外存儲器上,各個應用程式可以共享一組數據,實現了以檔案為單位的數據共享。\\n\\n但由於數據的組織仍然是麵向程式,所以存在大量的數據冗餘。而且數據的邏輯結構不能方便地修改和擴充,數據邏輯結構的每一點微小改變都會影響到應用程式。由於檔案之間互相獨立,因而它們不能反映現實世界中事物之間的聯絡,操作係統不負責維護檔案之間的聯絡資訊。如果檔案之間有內容上的聯絡,那也隻能由應用程式去處理。\\n\\n數據庫係統階段\\n\\n60年代後,隨著計算機在數據管理領域的普遍應用,人們對數據管理技術提出了更高的要求:希望麵向企業或部門,以數據為中心組織數據,減少數據的冗餘,提供更高的數據共享能力,同時要求程式和數據具有較高的獨立性,當數據的邏輯結構改變時,不涉及數據的物理結構,也不影響應用程式,以降低應用程式研製與維護的費用。數據庫技術正是在這樣一個應用需求的基礎上發展起來的。\\n\\n數據庫技術有如下特點:\\n\\n*麵向企業或部門,以數據為中心組織數據,形成綜合性的數據庫,為各應用共享。\\n\\n*采用一定的數據模型。數據模型不僅要描述數據本身的特點,而且要描述數據之間的聯絡。\\n\\n*數據冗餘小,易修改、易擴充。不同的應用程式根據處理要求,從數據庫中獲取需要的數據,這樣就減少了數據的重複存儲,也便於增加新的數據結構,便於維護數據的一致性。\\n\\n*程式和數據有較高的獨立性。\\n\\n*具有良好的用戶介麵,用戶可方便地開發和使用數據庫。\\n\\n*對數據進行統一管理和控製,提供了數據的安全性、完整性、以及併發控製。\\n\\n從檔案係統發展到數據庫係統,這在資訊領域中具有裡程碑的意義。在檔案係統階段,人們在資訊處理中關注的中心問題是係統功能的設計,因此程式設計占主導地位;而在數據庫方式下,數據開始占據了中心位置,數據的結構設計成為資訊係統首先關心的問題,而應用程式則以既定的書結構為基礎進行設計。大事記\\n\\n1951:Univac係統使用磁帶和穿孔卡片作為數據存儲。\\n\\n1956:IBM公司在其Model305RAMAC中第一次引入了磁盤驅動器\\n\\n1961:通用電氣(GE)公司的CharlesBachman開發了第一個數據庫管理係統——IDS\\n\\n1969:E.F.Codd發明瞭關係數據庫。\\n\\n1973:由JohnJ.Cullinane領導Cullinane公司開發了IDMS——一個針對IBM主機的基於網絡模型的數據庫。\\n\\n1976:Honeywell公司推出了MulticsRelationalDataStore——第一個商用關係數據庫產品。\\n\\n1979:Oracle公司引入了第一個商用SQL關係數據庫管理係統。\\n\\n1983:IBM推出了DB2數據庫產品。\\n\\n1985:為Procter&Gamble係統設計的第一個商務智慧係統產生。\\n\\n1991:W.H.“Bill”Inmon發表了”構建數據倉庫”。\\n\\n未來發展趨勢\\n\\n隨著資訊管理內容的不斷擴展,出現了豐富多樣的數據模型(層次模型,網狀模型,關係模型,麵向對象模型,半結構化模型等),新技術也層出不窮(數據流,Web數據管理,數據挖掘等)。目前每隔幾年,國際上一些資深的數據庫專家就會聚集一堂,探討數據庫研究現狀,存在的問題和未來需要關注的新技術焦點。過去已有的幾個類似報告包括:1989年FutureDirectionsinDBMSResearch-TheLagunaBeachParticipants,1990年DatabaseSystems:AchievementsandOpportunities,1995年的Database1991:W.H.Inmon發表了《構建數據倉庫》\\n\\n基本屬性\\n\\n基本結構\\n\\n數據庫的基本結構分三個層次,反映了觀察數據庫的三種不同角度。\\n\\n(1)物理數據層。\\n\\n它是數據庫的最內層,是物理存貯設備上實際存儲的數據的集合。這些數據是原始數據,是用戶加工的對象,由內部模式描述的指令操作處理的位串、字元和字組成。\\n\\n(2)概念數據層。\\n\\n它是數據庫的中間一層,是數據庫的整體邏輯表示。指出了每個數據的邏輯定義及數據間的邏輯聯絡,是存貯記錄的集合。它所涉及的是數據庫所有對象的邏輯關係,而不是它們的物理情況,是數據庫管理員概念下的數據庫。\\n\\n(3)邏輯數據層。\\n\\n它是用戶所看到和使用的數據庫,表示了一個或一些特定用戶使用的數據集合,即邏輯記錄的集合。\\n\\n數據庫不同層次之間的聯絡是通過對映進行轉換的。\\n\\n主要特點\\n\\n(1)實現數據共享。\\n\\n數據共享包含所有用戶可同時存取數據庫中的數據,也包括用戶可以用各種方式通過介麵使用數據庫,並提供數據共享。\\n\\n(2)減少數據的冗餘度。\\n\\n同檔案係統相比,由於數據庫實現了數據共享,從而避免了用戶各自建立應用檔案。減少了大量重複數據,減少了數據冗餘,維護了數據的一致性。\\n\\n(3)數據的獨立性。\\n\\n數據的獨立性包括數據庫中數據庫的邏輯結構和應用程式相互獨立,也包括數據物理結構的變化不影響數據的邏輯結構。\\n\\n(4)數據實現集中控製。\\n\\n檔案管理方式中,數據處於一種分散的狀態,不同的用戶或同一用戶在不同處理中其檔案之間毫無關係。利用數據庫可對數據進行集中控製和管理,並通過數據模型表示各種數據的組織以及數據間的聯絡。\\n\\n(5)數據一致性和可維護性,以確保數據的安全性和可靠性。\\n\\n主要包括:①安全性控製:以防止數據丟失、錯誤更新和越權使用;②完整性控製:保證數據的正確性、有效性和相容性;③併發控製:使在同一時間週期內,允許對數據實現多路存取,又能防止用戶之間的不正常互動作用;④故障的發現和恢複:由數據庫管理係統提供一套方法,可及時發現故障和修複故障,從而防止數據被破壞\\n\\n(6)故障恢複。\\n\\n由數據庫管理係統提供一套方法,可及時發現故障和修複故障,從而防止數據被破壞。數據庫係統能儘快恢複數據庫係統運行時出現的故障,可能是物理上或是邏輯上的錯誤。比如對係統的誤操作造成的數據錯誤等。\\n\\n種類\\n\\n數據庫通常分為層次式數據庫、網絡式數據庫和關係式數據庫三種。而不同的數據庫是按不同的數據結構來聯絡和組織的。\\n\\n1.數據結構模型\\n\\n(1)數據結構\\n\\n所謂數據結構是指數據的組織形式或數據之間的聯絡。如果用D表示數據,用R表示數據對象之間存在的關係集合,則將DS=(D,R)稱為數據結構。例如,設有一個電話號碼簿,它記錄了n個人的名字和相應的電話號碼。為了方便地查詢某人的電話號碼,將人名和號碼按字典順序排列,並在名字的後麵跟隨著對應的電話號碼。這樣,若要查詢某人的電話號碼(假定他的名字的第一個字母是Y),那麼隻須查詢以Y開頭的那些名字就可以了。該例中,數據的集合D就是人名和電話號碼,它們之間的聯絡R就是按字典順序的排列,其相應的數據結構就是DS=(D,R),即一個數組。\\n\\n(2)數據結構種類\\n\\n數據結構又分為數據的邏輯結構和數據的物理結構。數據的邏輯結構是從邏輯的角度(即數據間的聯絡和組織方式)來觀察數據,分析數據,與數據的存儲位置無關。數據的物理結構是指數據在計算機中存放的結構,即數據的邏輯結構在計算機中的實現形式,所以物理結構也被稱為存儲結構。這裡隻研究數據的邏輯結構,並將反映和實現數據聯絡的方法稱為數據模型。\\n\\n目前,比較流行的數據模型有三種,即按圖論理論建立的層次結構模型和網狀結構模型以及按關係理論建立的關係結構模型。\\n\\n2.層次、網狀和關係數據庫係統\\n\\n(1)層次結構模型\\n\\n層次結構模型實質上是一種有根結點的定向有序樹(在數學中\\\"樹\\\"被定義為一個無回的連通圖)。下圖是一個高等學校的組織結構圖。這個組織結構圖像一棵樹,校部就是樹根(稱為根結點),各係、專業、教師、學生等為枝點(稱為結點),樹根與枝點之間的聯絡稱為邊,樹根與邊之比為1:N,即樹根隻有一個,樹枝有N個。\\n\\n按照層次模型建立的數據庫係統稱為層次模型數據庫係統。IMS(InformationManage-mentSystem)是其典型代表。\\n\\n(2)網狀結構模型\\n\\n按照網狀數據結構建立的數據庫係統稱為網狀數據庫係統,其典型代表是DBTG(DataBaseTaskGroup)。用數學方法可將網狀數據結構轉化為層次數據結構。\\n\\n(3)關係結構模型\\n\\n關係式數據結構把一些複雜的數據結構歸結為簡單的二元關係(即二維表格形式)。例如某單位的職工關係就是一個二元關係。\\n\\n由關係數據結構組成的數據庫係統被稱為關係數據庫係統。\\n\\n在關係數據庫中,對數據的操作幾乎全部建立在一個或多個關係表格上,通過對這些關係表格的分類、合併、連接或選取等運算來實現數據的管理。dBASEII就是這類數據庫管理係統的典型代表。對於一個實際的應用問題(如人事管理問題),有時需要多個關係才能實現。用dBASEII建立起來的一個關係稱為一個數據庫(或稱數據庫檔案),而把對應多個關係建立起來的多個數據庫稱為數據庫係統。dBASEII的另一個重要功能是通過建立命令檔案來實現對數據庫的使用和管理,對於一個數據庫係統相應的命令序列檔案,稱為該數據庫的應用係統。因此,可以概括地說,一個關係稱為一個數據庫,若乾個數據庫可以構成一個數據庫係統。數據庫係統可以派生出各種不同類型的輔助檔案和建立它的應用係統。\\n\\n常用數據庫\\n\\n麥傑的openPlant實時數據庫\\n\\n實時數據庫係統介紹\\n\\n實時數據庫係統是數據庫理論在新領域的擴展,在電力、化工、鋼鐵、冶金、造紙、交通控製和證券金融等領域有著非常廣闊的應用前景。它可以為企業提供高速、及時的實時數據服務,能夠對快速變化的實時數據進行長期高效的曆史存儲,是工廠控製層(現場總線、DCS、PLC等)與生產管理係統之間連接的橋梁,同時也是流程模擬、先進控製、在線優化、故障診斷等係統的數據平台。\\n\\nopenPlant實時數據庫係統采用當今先進的技術和架構,可安全、穩定地實現與現場各控製係統的介麵,並能對采集來的數據進行高效的數據壓縮和長期的曆史存儲,同時提供方便易用的客戶端應用和通用的數據介麵(API\\/DDE\\/ODBC\\/JDBC\\/OPC等),使企業的管理和決策人員能及時、全麵的瞭解當前的生產情況,也可回顧過去的生產情況,及時發現生產中所存在的問題,提高設備利用率,降低生產成本,增強企業的核心競爭力。\\n\\n實時數據庫係統特點\\n\\n■企業級的生產實時數據平台\\n\\n■分散式數據庫架構,滿足集團級需求\\n\\n■實時訪問全廠生產數據\\n\\n■高效的數據壓縮和長期曆史存儲\\n\\n■支援在線計算和統計\\n\\n■專業的圖形模擬技術,監視畫麵與控製係統完全一致\\n\\n■豐富的客戶端應用工具\\n\\n■優異的跨平台效能,支援Unix\\/Linux\\/Windows等操作係統\\n\\n■開放的數據介麵,如API\\/DDE\\/ODBC\\/JDBC\\/OPC\\n\\n■200,000點上萬小時現場穩定運行考驗\\n\\n■支援遠程訪問,隨時隨地享用生產資訊\\n\\n■個性化定製服務,讓您從容應對不斷變化的用戶需求\\n\\nIBM的DB2\\n\\n作為關係數據庫領域的開拓者和領航人,IBM在1977年完成了SystemR係統的原型,1980年開始提供整合的數據庫服務器——System\\/38,隨後是SQL\\/DSforVSE和VM,其初始版本與SystemR研究原型密切相關。DB2forMVSV1在1983年推出。該版本的目標是提供這一新方案所承諾的簡單性,數據不相關性和用戶生產率。1988年DB2forMVS提供了強大的在線事務處理(OLTP)支援,1989年和1993年分彆以遠程工作單元和分散式工作單元實現了分散式數據庫支援。最近推出的DB2UniversalDatabase6.1則是通用數據庫的典範,是第一個具備網上功能的多媒體關係數據庫管理係統,支援包括Linux在內的一係列平台。\\n\\nOracle\\n\\nOracle前身叫SDL,由LarryEllison和另兩個編程人員在1977創辦,他們開發了自己的拳頭產品,在市場上大量銷售,1979年,Oracle公司引入了第一個商用SQL關係數據庫管理係統。Oracle公司是最早開發關係數據庫的廠商之一,其產品支援最廣泛的操作係統平台。目前Oracle關係數據庫產品的市場占有率名列前茅。\\n\\nInformix\\n\\nInformix在1980年成立,目的是為Unix等開放操作係統提供專業的關係型數據庫產品。公司的名稱Informix便是取自Information和Unix的結合。Informix第一個真正支援SQL語言的關係數據庫產品是InformixSE(StandardEngine)。InformixSE是在當時的微機Unix環境下主要的數據庫產品。它也是第一個被移植到Linux上的商業數據庫產品。\\n\\nSybase\\n\\nSybase公司成立於1984年,公司名稱“Sybase”取自“system”和“database”相結合的含義。Sybase公司的創始人之一BobEpstein是Ingres大學版(與System\\/R同時期的關係數據庫模型產品)的主要設計人員。公司的第一個關係數據庫產品是1987年5月推出的SybaseSQLServer1.0。Sybase首先提出Client\\/Server數據庫體繫結構的思想,並率先在SybaseSQLServer中實現。\\n\\nSQLServer\\n\\n1987年,微軟和IBM合作開發完成OS\\/2,IBM在其銷售的OS\\/2ExtendedEdition係統中綁定了OS\\/2DatabaseManager,而微軟產品線中尚缺少數據庫產品。為此,微軟將目光投向Sybase,同Sybase簽訂了合作協議,使用Sybase的技術開發基於OS\\/2平台的關係型數據庫。1989年,微軟釋出了SQLServer1.0版。\\n\\nPostgreSQL\\n\\nPostgreSQL是一種特性非常齊全的自由軟件的對象——關係性數據庫管理係統(ORDBMS),它的很多特性是當今許多商業數據庫的前身。PostgreSQL最早開始於BSD的Ingres項目。PostgreSQL的特性覆蓋了SQL-2\\/SQL-92和SQL-3。首先,它包括了可以說是目前世界上最豐富的數據類型的支援;其次,目前PostgreSQL是唯一支援事務、子查詢、多版本並行控製係統、數據完整性檢查等特性的唯一的一種自由軟件的數據庫管理係統.\\n\\nmySQL\\n\\nMySQL是一個小型關係型數據庫管理係統,開發者為瑞典MySQLAB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購。對於Mysql的前途,冇有任何人抱樂觀的態度。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫。\\n\\nAccess數據庫\\n\\n美國Microsoft公司於1994年推出的微機數據庫管理係統。它具有介麵友好、易學易用、開發簡單、介麵靈活等特點,是典型的新一代桌麵數據庫管理係統。其主要特點如下:\\n\\n(1)完善地管理各種數據庫對象,具有強大的數據組織、用戶管理、安全檢查等功能。\\n\\n(2)強大的數據處理功能,在一個工作組級彆的網絡環境中,使用Access開發的多用戶數據庫管理係統具有傳統的XBASE(DBASE、FoxBASE的統稱)數據庫係統所無法實現的客戶服務器(Cient\\/Server)結構和相應的數據庫安全機製,Access具備了許多先進的大型數據庫管理係統所具備的特征,如事務處理\\/出錯回滾能力等。\\n\\n(3)可以方便地生成各種數據對象,利用存儲的數據建立窗體和報表,可視性好。\\n\\n(4)作為Office套件的一部分,可以與Office整合,實現無縫連接。\\n\\n(5)能夠利用Web檢索和釋出數據,實現與Internet的連接。Access主要適用於中小型應用係統,或作為客戶機\\/服務器係統中的客戶端數據庫。\\n\\nSQLite\\n\\nSQLite是遵守ACID的關聯式資料庫管理係統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。不像常見的客戶端\\/服務器結構範例,SQLite引擎不是個程式與之通訊的獨立進程,而是連接到程式中成為它的一個主要部分。所以主要的通訊協議是在編程語言內的直接API調用。這在消耗總量、延遲時間和整體簡單性上有積極的作用。整個數據庫(定義、表、索引和數據本身)都在宿主主機上存儲在一個單一的檔案中。它的簡單的設計是通過在開始一個事務的時候鎖定整個數據檔案而完成的。\\n\\nFoxPro數據庫\\n\\n最初由美國Fox公司1988年推出,1992年Fox公司被Microsoft公司收購後,相繼推出了FoxPro2.5、2.6和VisualFoxPro等版本,其功能和效能有了較大的提高。FoxPro2.5、2.6分為DOS和Windows兩種版本,分彆運行於DOS和Windows環境下。FoxPro比FoxBASE在功能和效能上又有了很大的改進,主要是引入了視窗、按紐、列表框和文字框等控製元件,進一步提高了係統的開發能力。\\n\\n著名財經數據庫——INFOBANK數據庫\\n\\nINFOBANK數據庫,中國資訊行1995年推出,經曆17年的發展,已成為全球最大的中文商業資訊數據庫之一。\\n\\nINFOBANK采集來自國內1200多家媒體、國外100家媒體的公開資訊,同時與國內百餘家官方和行業權威機構合作,為廣大用戶提供豐富的中文商業資訊。\\n\\nINFOBANK由14個子數據庫組成,100億的漢字儲量,累計包含專業文獻超過600萬篇,資訊內容涉及19個大類,197個行業,日增新250萬漢字。同時還設有特點欄目,滿足用戶撰寫論文、瞭解行業資訊等多樣化需求。\\n\\n著名統計數據庫——SOSHOO網\\n\\n搜數網,中國資訊行於2006年推出,是以統計數據為核心的數據垂直搜尋網站,商業數據逾200,000,000條,囊括4000多本年鑒,涵蓋760,000張統計表格。時間跨度自1949年至今,覆蓋全國31個省級行政區域並深入254個地級、市級、縣級行政區域,同時包括部分台港澳以及國際部分地區統計資料。數據內容涉及54個行業大類。\\n\\n網站數據庫的安全隱患\\n\\n(一)、導致安全問題存在的原因\\n\\n目前導致電子商務網站數據庫存在安全隱患的原因主要表現在以下幾個方麵:(1)用戶對數據庫的不正確訪問,引起數據庫數據的錯誤;(2)為了某種目的,故意破壞數據庫,使其不能恢複;(3)非法訪問不該訪問的數據庫資訊,但又不留痕跡;(4)用戶通過網絡進行數據庫訪問時,有可能受到各種技術(如搭線竊聽等)的攻擊;(5)非法用戶繞過安全內核,竊取資訊資源等現象;(6)未經授權非法修改數據庫數據,使其數據失去真實性等等。\\n\\n(二)ASP帶來的安全問題\\n\\n1.ASP程式源代碼的隱患\\n\\n由於ASP程式采用的是非編譯性語言,這大大降低了程式源代碼的安全性。任何人隻要進入站點,就可以獲得源代碼,從而造成ASP應用程式源代碼的泄露。2.程式設計中的安全隱患\\n\\nASP代碼利用表單(form)實現與用戶互動的功能,而相應的內容會反映在瀏覽器的地址欄中,如果不采用適當的安全措施,隻要記下這些內容,就可以繞過驗證直接進入某一頁麵。例如在瀏覽器中敲入“page.asp?x=1”,即可不經過表單頁麵直接進入滿足“x=1”條件的頁麵。因此,在設計驗證或註冊頁麵時,必須采取特殊措施來避免此類問題的發生。\\n\\n二、保護電子商務網站數據庫安全的方法\\n\\n(一)非常規命名法\\n\\n修改數據庫的主檔名。防止數據庫被找到的簡便方法是為Access數據庫檔案起一個複雜的非常規名字,並把它存放在多層目錄下。例如,對於網上花店的數據庫檔案,不要簡單地命名為“flower.mdb”或“bloom.mdb”,而是要起個非常規的名字,例如:halower123.mdb,再把它放在如\\/wh123\\/wd123d\\/hoo9\\/dh123\\/abc之類的深層目錄下。這樣攻擊者想簡單地猜測數據庫的位置就很困難了。另外,把mdb擴展名修改為ASP或ASA等不影響數據查詢的名字\\n\\n但是有時候修改為ASP或者ASA以後仍然可以被下載,如將mdb修改為ASP以後,直接在IE的地址欄裡輸入企業提供安全高效的資訊服務。\\n\\n(二)使用ODBC數據源\\n\\n在ASP程式設計中,應儘量使用ODBC數據源,不要把數據庫名直接寫在程式中。 如果,ASP源代碼失密後,數據庫也很容易被下載下來。如果使用ODBC數據源,就不會存在這樣的問題了。\\n\\n(三)加密ASP頁麵\\n\\n可以使用微軟公司的免費軟件ScriptEncoder對ASP頁麵進行加密。它可以對當前目錄中的所有的ASP檔案進行加密,並把加密後的檔案統一輸出到相應的目錄中。由於ScriptEncoder隻加密在HTML頁麵中嵌入的ASP代碼,其他部分仍保持不變,這就使得我們仍然可以使用FrontPage等常用網頁編輯工具對HTML部分進行修改、完善,操作起來簡單方便、效果良好。\\n\\n(四)利用Session對象進行註冊驗證\\n\\n為防止未經註冊的用戶繞過註冊介麵直接進入應用係統,可以采用Session對象進行註冊驗證。Session對象最大的優點是可以把某用戶的資訊保留下來,讓後續的網頁讀取。一般情況,在設計網站時都要求用戶註冊成功後纔可登錄。但如果不采用Session對象進行註冊驗證,則用戶在瀏覽器中敲入“URL\\/hrmis.asp?page=1”即可繞過註冊介麵,直接進入係統。利用Session對象可以有效阻止這一情況的發生。\\n\\n三、保障電子商務網站數據庫安全的措施\\n\\n(一)、存在漏洞的保護措施\\n\\n1、數據庫檔名應複雜\\n\\n下載Access數據庫檔案,首先必須知道該數據庫檔案的存儲路徑和檔名。如果你將原本非常簡單的數據庫檔名修改得更加複雜,這樣那些“不懷好意”者就要花費更多的時間去猜測數據庫檔名,無形中增強了Access數據庫的安全性。很多ASP程式為方便用戶使用,它的數據庫檔案通常都被命名為“data.mdb”,這大大方便了有經驗的攻擊者。如果我們將數據庫檔名修改得複雜一些,他人就不易猜到,如將“data.mdb”修改為“1rtj0ma27xi.mdb”,然後修改數據庫連接檔案中的相應資訊。這樣Access數據庫就相對安全一些。此方法適合於那些租用Web空間的用戶使用。\\n\\n但其不足之處是,一旦檢視到數據庫連接檔案中的內容,再複雜的檔名也無濟於事。\\n\\n2、利用ODBC數據源\\n\\n很多網站Web程式,將Access數據庫檔案的存儲路徑和檔名存放在數據庫連接檔案中。一旦這些連接檔案中的內容外泄,那麼不管數據庫檔名多麼複雜,都會暴露出蹤跡。\\n\\n這時就可以使用ODBC數據源方法,即使連接檔案的內容外泄,他人也隻能知道網站程式所使用的ODBC數據源名稱,而數據庫檔案的存儲路徑和檔名卻無法找到。接著在IIS服務器中新建名為“rtjmaxi”的ODBC數據源,並在其中指定“1rtj0ma27xi.mdb”數據庫檔案的位置即可,最後點擊“確定”按鈕完成配置。\\n\\n但其不足之處是,此方法不適合於租用Web空間的用戶使用,要想使用ODBC數據源方法,必須要有管理和維護IIS服務器的權限。\\n\\n3、改變存儲位置\\n\\n一般情況下,Access數據庫檔案存放在相應的Web目錄中,很多黑客就是利用這種規律來查詢並下載數據庫檔案。因此可以采用改變數據庫檔案存儲位置的方法,將數據庫檔案存放在Web目錄以外的某個檔案夾中,讓黑客難以猜測存儲位置。接著修改好數據庫連接檔案中的數據庫檔案相應資訊,這樣Access數據庫檔案就安全多了。即使攻擊者通過連接檔案找到數據庫檔案的存儲路徑,由於數據庫檔案存放在Web目錄以外的地方,攻擊者就無法通過HTTP方式下載數據庫檔案。但其不足之處是,此方法不適合於租用Web空間的用戶使用,因為將Access數據庫檔案移至Web目錄之外,一般需要很大的權限。\\n\\n以上方法,在不同程度上增強了數據庫檔案的安全性,但我們不能將它們當成“仙丹妙藥”,畢竟網絡環境是複雜的,黑客的破壞手段也在不斷增強,我們可以根據自己的需要,選擇其中的多種方法配合使用,效果纔會更理想,網站數據庫後台檔案纔會更加安全。\\n\\n(二)、網站數據庫管理安全的措施\\n\\n服務器管理員還應在IIS中為每個網站設置好執行權限,可千萬彆給人家靜態網站以\\\"腳本和可執行\\\"權限。一般情況下給個\\\"純腳本\\\"權限就夠了,對於那些通過網站後台管理中心上傳的檔案存放的目錄,就更吝嗇一點吧,執行權限設為\\\"無\\\"好了,這樣做是為了防止人家上傳ASP木馬,執行權限設為\\\"無\\\",人家上傳ASP木馬也運行不了。一般情況下,SQL隱碼攻擊漏洞僅是涉及一個網站安全的事,如果人家通過這個漏洞上傳了ASP木馬並運行起來,那整個服務器都失陷了。所以有遠見的、有責任心的服務器管理員應該十分吝嗇的配置IIS的執行權限。\\n\\n程式員主要要做兩件事,最重要的一件事,當然是對客戶端提交的變量參數進行仔細地檢測。對客戶端提交的變量進行檢查以防止SQL隱碼攻擊。二是給用戶密碼加密。比如用MD5加密。MD5是冇有反向演算法,不能解密的。人家即使知道經加密後存在數據庫裡的像亂碼一樣的密碼,他也冇辦法知道原始密碼了。\\n\\n數據庫病毒檢查方法\\n\\n1:使用惡意軟件掃描器\\n\\n有的數據庫服務器因為怕效能下降或者係統崩潰而不采取,或者采取有限的惡意軟件防範措施。所以如果冇有安裝反病毒軟件,就儘快安裝一個殺毒軟件。如果需要實時保護的資源太多了,那麼就要將數據庫和其它高活動性的目錄排除在實時掃描的外麵吧。否則,最低限度,也要安裝反病毒軟件,然後每隔幾天,找個非高峰的時間來掃描本地磁盤。\\n\\n如果已經運行了反病毒軟件,那麼確保它是最新的(那些基於客戶端的自動更新和網絡管理簽名並不是百分百的可靠),並且執行一次全麵的係統掃描。\\n\\n2:檢視內存\\n\\n可以使用Windows任務管理器來搜尋那些看起來就屬於惡意軟件,或者使用了太多內存或者占用了大量CPU時間的應用程式。建議使用Sysinternals公司的ProcessExplorer(下麵高亮顯示的NetBusTrojan),因為它提供了運行進程的較多資訊,並且以更可靠的方式來殺掉那些不應該的進程。\\n\\n在網絡中的所有係統中,確實需要徹底地瞭解數據庫——其中包括記錄哪些進程應該運行,哪些不應該。所以,如果在第一次安裝之後擁有了良好的基線——甚至是現在,假設所有事物都運行得很好——當發生特洛伊類型的問題的時候,就可以用它作為比較的基礎。\\n\\n3:檢視開放的\\n\\n可以使用Windows內置的netstat工具來檢視哪些開放的,並且連接到服務器上。在命令列中,輸入netstat–an more,可以一頁挨著一頁地檢視開放的和監聽的TCP和UDP。還有一種更好的方法就是使用Foundstone的Vision工具或者Sysinternals公司的TCPView工具來完成。\\n\\n4:檢視網絡流量\\n\\n也許判斷SQLServer中是否發生了惡意行為的最簡單辦法就是看看它是否進行了網絡通訊。如果有一個非常順手的網絡分析器,那麼就可以在1、2分鐘之內發現情況。可以使用SQLServer自身攜帶的分析器,或者從彆處連接到以太網交換器的交換或者鏡像上。\\n\\nEtherPeek可以輕鬆抓取網絡流量,並且高亮顯示特洛伊的動作——在本次網絡流量抓取過程中可以真正地創建網絡分析觸發器和過濾器,如果知道要尋找什麼的話。這裡的列表列出了常見的特洛伊和相關的細膩向。這種發現惡意流量的方法並不是十分安全,因為號是可以經常更換的,但是它的服務器是個不錯的目標。\\n\\n可以在“監控”模式下運行EtherPeek,讓它對網絡上發生的事情有個從上到下的整體視角,——而不需要抓取包。可以檢視正在使用哪個協議,尋找巨大的流量,奇怪的通訊,以及其它網絡進出SQLServer係統的傾向。\\n\\n5:對付惡意軟件的方法\\n\\n特洛伊木馬是計算機上的一個令人厭惡的創造——它創建遠程訪問隧道,截獲按鍵,刪除數據等更多事情——特彆是在最重要的服務器上。很明顯,最好的辦法就是不用SQLServer進行Internet訪問,Web瀏覽,電子郵件等行為。——但是,這不現實。(或者其他人)可能會需要它最終不僅僅作為一個數據庫服務器。一旦這樣的事情出現了,就需要確保是被保護的。不要把責任推卸給其他人,或者其他任何東西,特洛伊不是運行在他們的係統上。不論以何種方式,永遠不要假設反病毒軟件可以保證萬無一失。\\n\\n分析並解決惡意軟件的方法:如果想要攻擊,或者安裝一個可以在網絡上給幫助的欺詐軟件,那麼冇有什麼地方比直接在SQLServer上更好了。服務器上可能還冇有特洛伊,但是如果感覺到有問題,那麼凶手就可以很容易發現。\\n\\n數據庫查詢優化原則\\n\\n1.對數據庫查詢進行優化,應儘量避免全表掃描,首先應考慮在where及orderby涉及的列上建立索引。\\n\\n2.應儘量避免在where子句中對欄位進行null值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如:\\n\\nselectidfromtwherenumisnull\\n\\n可以在num上設置默認值0,確保表中num列冇有null值,然後這樣查詢:\\n\\nselectidfromtwherenum=0\\n\\n3.應儘量避免在where子句中使用!=或操作符,否則將引擎放棄使用索引而進行全表掃描。\\n\\n4.應儘量避免在where子句中使用or來連接條件,否則將導致引擎放棄使用索引而進行全表掃描,如:\\n\\nselectidfromtwherenum=10ornum=20\\n\\n可以這樣查詢:\\n\\nselectidfromtwherenum=10\\n\\nunionall\\n\\nselectidfromtwherenum=20\\n\\n5.in和notin也要慎用,否則會導致全表掃描,如:\\n\\nselectidfromtwherenumin(1,2,3)\\n\\n對於連續的數值,能用between就不要用in了:\\n\\nselectidfromtwherenumbetween1and3\\n\\n6.下麵的查詢也將導致全表掃描:\\n\\nselectidfromtwherenamelike'�c%'\\n\\n若要提高效率,可以考慮全文檢索。\\n\\n7.如果在where子句中使用參數,也會導致全表掃描。因為SQL隻有在運行時纔會解析區域性變量,但優化程式不能將訪問計劃的選擇推遲到運行時;它必須在編譯時進行選擇。然而,如果在編譯時建立訪問計劃,變量的值還是未知的,因而無法作為索引選擇的輸入項。如下麵語句將進行全表掃描:\\n\\nselectidfromtwherenum=@num\\n\\n可以改為強製查詢使用索引:\\n\\nselectidfromtwith(index(索引名))wherenum=@num\\n\\n8.應儘量避免在where子句中對欄位進行表達式操作,這將導致引擎放棄使用索引而進行全表掃描。如:\\n\\nselectidfromtwherenum\\/2=100\\n\\n應改為:\\n\\nselectidfromtwherenum=100*2\\n\\n9.應儘量避免在where子句中對欄位進行函數操作,這將導致引擎放棄使用索引而進行全表掃描。如:\\n\\nselectidfromtwheresubstring(name,1,3)='abc'--name以abc開頭的id\\n\\nselectidfromtwheredatediff(day,createdate,'2005-11-30')=0--‘2005-11-30’生成的id\\n\\n\"

}

第 1 頁
⬅ 上一章 📋 目錄 ⚠ 報錯 下一章 ➡
升級 VIP · 無廣告 + VIP 章節全解鎖
👑 VIP 特權 全站去廣告清爽閱讀 · VIP 章節無限暢讀,月卡僅 $5
報錯獎勵 發現文字亂碼、缺章、內容重複?點上方「章節報錯」回報,審核通過立獲 3天VIP
書單獎勵 前往 個人中心 投稿你的私藏書單,審核通過立獲 7天VIP
⭐ 立即升級 VIP · 月卡僅 $5
還沒有帳號? 免費註冊 | 登入後購買