個人觀點:
SQL是標準的資料庫查詢語言,可以完成絕大部分的資料庫操作。各個廠商還對SQL進行了擴展,例如微軟的Transact
SQL,Oracle的PL/SQL,這樣應該就能夠對資料庫進行幾乎所有的操作。
微軟的說法:Transact-SQL
是使用
SQL
Server
的核心。與
SQL
Server
實例通信的所有應用程序都通過將
Transact-SQL
語句發送到伺服器(不考慮應用程序的用戶界面)來實現這一點。
至於SQL語句的執行,是由資料庫引擎處理的,不是簡單的由哪個dll處理。
『貳』 資料庫基礎篇(二)—— SQL之數據查詢
接下來,我們將使用員工相關的四張樣本數據表,來學習SQL,建議你在學習過程中多動手練習,理解才會更深刻。表和欄位含義,如下圖:
如何利用SQL語句來操作以上數據呢?我們必須將樣本數據導入MySQL客戶端(如:Navicat)中。可以在客戶端操作數據,或者在終端窗口。工作中經常在客戶端操作,所以本文所有SQL語句將在Navicat中學習。
首先將sql腳本保存到桌面(獲取方式:關注"Python之每日一課"公眾號,後來回復"sql基礎數據",即可。),導入SQL腳本的具體操作流程如下:
現在數據准備完成。這里是導入sql腳本;導出同理,選擇」轉儲SQL「文件。當然了,Navicat也支持將當前表或查詢結果導出Excel、CSV等文件類型。
下面可以寫SQL語句了(每個sql腳本可以保存,下次直接使用),如下:
類似於Python中 :print(要列印的東西)
①通過select查詢完的結果 ,是一個虛擬的表格,不是真實存在
② 要查詢的東西 可以是常量值、表達式、欄位、也可以是函數
補充:可以給欄位起別名,好處是提高可讀性,更方便理解;多表連接時,區分欄位。用AS 或 空格來實現。如下:
2、 條件查詢
條件查詢:根據條件過濾原始表的數據,查詢到想要的數據
1)語法
2)分類
①條件表達式
②邏輯表達式
③模糊查詢
⭐ 注意:where 一定要放到 from 後面。NULL 不是假,也不是真,而是"空";任何運算符,判斷符碰到NULL,都得NULL;NULL的判斷只能用is null,is not null;NULL 影響查詢速度,一般避免使值為NULL。exists查詢可以與in型子查詢互換,它們之間區別以後語句優化時會詳細講解。
3、 排序查詢
1)語法
2)舉栗
⭐ 注意:order by 一定要放到 語句最後(limit前面)
4、分組查詢
1)語法
2)特點
①可以按單個欄位分組
②和分組函數一同查詢的欄位最好是分組後的欄位
③分組篩選(where 和 having區別)
④可以按多個欄位分組,欄位之間用逗號隔開
⑤可以支持排序
⑥having後可以支持別名
3)舉栗
⭐ 注意:關鍵字順序是where —>group by—>having—>order by—>limit( having不能單獨使用,需結合group by ,表示對分組後的結果進行篩選;而 group by 必須結合分組聚合函數一起使用 ,比如:count()、max()等)
5、 常見函數
1)單行函數
2)分組函數
3)分組函數特點
①以上五個分組函數都忽略null值,除了count(*)
②sum和avg一般處理數值型,max、min、count可以處理任何數據類型
③都可以搭配distinct使用,用於統計去重後的結果
④count的參數可以支持:欄位、*、常量值,一般放1
6、連接查詢(多表查詢)
單個表不能滿足需求時,需要結合多張表,去除有關聯的數據。這時就需要用連接查詢,連接查詢有三種,通常join使用的最多。
①等值連接的結果 = 多個表的交集
②多個表不分主次,沒有順序要求
③一般為表起別名,提高閱讀性和性能
①語法
②好處
語句上,連接條件和篩選條件實現了分離,簡潔。
⭐ 注意:左右連接可互換 A left join B 等價於B right join A;內連接是左</pre>
右連接的交集;mysql沒有外連接。
自連接相當於等值連接,但是等值連接涉及多個表,而自連接僅僅是它自己。如下:在員工信息表裡,查詢員工名和直接上級的名。
7、子查詢
一條查詢語句中又嵌套了另一條完整的select語句,其中被嵌套的select語句,稱為子查詢或內查詢。在外面的查詢語句,稱為主查詢或外查詢。
①子查詢都放在小括弧內
②子查詢可以放在from後面、select後面、where後面、having後面,但一般放在條件的右側
③子查詢優先於主查詢執行,主查詢使用了子查詢的執行結果
④子查詢根據查詢結果的行數不同分為以下兩類:
2)舉栗
8、分頁查詢 (可選)
實際web開發中,當顯示的數據,一頁顯示不完時,需要分頁提交sql請求。
2)特點
①起始條目索引默認從0開始
②limit子句放在查詢語句的最後
③公式:select * from 表 limit (page-1)*sizePerPage,
3)舉栗
9、union聯合查詢
union用於把涉及多個表的SELECT語句的結果組合到一個結果集合中。適用於查詢條件較多,多個表之間沒有連接關系的場景。</pre>
2)特點
①多條查詢語句的查詢的列數必須是一致的
②多條查詢語句的查詢的列的類型幾乎相同
③union 代表去重,union all 代表不去重
3)舉栗
UNION 和 UNION ALL 運行結果的區別如下:
⭐ 注意:在多個 SELECT 語句中,第一個 SELECT 語句中被使用的欄位名稱將被用於結果的欄位名稱。當使用 UNION 時,MySQL 會把結果集中重復的記錄刪掉,而使用 UNION ALL ,MySQL 會把所有的記錄返回,且效率高於 UNION
好,今天學習到這里。工作中用的最多就是查詢。如果能消化本文涉及到的所有內容,大概能解決80%的工作需求。本文更多的是原理介紹,例子不多,只有先知道是什麼,才能知道怎麼學。那麼,接下來最重要的是要多練習實踐。因為實際的業務場景要復雜很多,給大家推薦兩個刷題的網站,力扣和牛客網,裡面有大量的sql面試題。能進一步提高我們sql的水平。這篇文章主要是SQL的常用查詢。明天繼續學習SQL的DML增刪改。一起加油!
『叄』 常用的資料庫有哪幾種試著闡述每種資料庫的特點和使用范圍
關系資料庫、非關系型資料庫。
1、關系資料庫
特點:數據集中控制;減少數據冗餘等。
適用范圍:對於結構化數據的處理更合適,如學生成績、地址等,這樣的數據一般情況下需要使用結構化的查詢。
2、非關系資料庫
特點:易擴展;大數據量,高性能;靈活的數據模型等。
使用范圍:據模型比較簡單;需要靈活性更強的IT系統;對資料庫性能要求較高。
(3)支持sql查詢的資料庫擴展閱讀:
非關系資料庫的分類:
1、列存儲資料庫
這部分資料庫通常是用來應對分布式存儲的海量數據。鍵仍然存在,但是它們的特點是指向了多個列。這些列是由列家族來安排的。如:Cassandra, HBase, Riak。
2、文檔型資料庫
文檔型資料庫的靈感是來自於Lotus Notes辦公軟體的,而且它同第一種鍵值存儲相類似。該類型的數據模型是版本化的文檔,半結構化的文檔以特定的格式存儲,比如JSON。文檔型資料庫可 以看作是鍵值資料庫的升級版,允許之間嵌套鍵值。而且文檔型資料庫比鍵值資料庫的查詢效率更高。如:CouchDB, MongoDb. 國內也有文檔型資料庫SequoiaDB,已經開源。
『肆』 什麼是SQL 還有什麼SQL語言 資料庫的是什麼
SQL全稱是「結構化查詢語言(Structured Query Language)」,最早的是IBM的聖約瑟研究實驗室為其關系資料庫管理系統SYSTEM R開發的一種查詢語言,它的前身是SQUARE語言。SQL語言結構簡潔,功能強大,簡單易學,所以自從IBM公司1981年推出以來,SQL語言,得到了廣泛的應用。如今無論是像Oracle ,Sybase,Informix,SQL server這些大型的資料庫管理系統,還是像Visual Foxporo,PowerBuilder這些微機上常用的資料庫開發系統,都支持SQL語言作為查詢語言。
SQL是高級的非過程化編程語言,允許用戶在高層數據結構上工作。他不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統可以使用相同的SQL語言作為數據輸入與管理的介面。它以記錄集合作為操縱對象,所有SQL語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語句的輸出作為另一條SQL語句的輸入,所以SQL語言可以嵌套,這使他具有極大的靈活性和強大的功能,在多數情況下,在其他語言中需要一大段程序實現的一個單獨事件只需要一個SQL語句就可以達到目的,這也意味著用SQL語言可以寫出非常復雜的語句。
SQL同時也是資料庫文件格式的擴展名。
SQL語言包含4個部分:
數據查詢語言(SELECT語句)
數據操縱語言(INSERT, UPDATE, DELETE語句)
數據定義語言(如CREATE, DROP等語句)
數據控制語言(如COMMIT, ROLLBACK等語句)
SQL語言是結構化語言(Structure Query Language)的縮寫,是一種用於資料庫查詢和編程的語言,已經成為關系型資料庫普遍使用的標准,使用這種標准資料庫語言對程序設計和資料庫的維護都帶來了極大的方便,廣泛地應用於各種數據查詢。VB和其他的應用程序包括Access、Foxpro、Orcale、SQL Server等都支持SQL語言。
SQL語言的常用操作有:建立資料庫數據表(CREATE TABLE),如本系統中的學生及成績備份就用到該語句;從資料庫中篩選一個記錄集(SELECT),這是最常用的一個語句,功能強大,能有效地對資料庫中一個或多個數據表中的數據進行訪問,並兼有排序、分組等功能;在數據表中添加一個記錄(INSERT);刪除符合條件的記錄(DELETE);更改符合條件的記錄(UPDATE);
VB中的資料庫操作對象都提供了對SQL語句的支持。其一般的用法是以VB的各種控制項接收用戶對資料庫訪問的請求,在事件響應程序代碼中將其轉換成對資料庫的SQL查詢語句,並以字元串的形式存在,然後將其傳遞給相應的資料庫操作對象,最終完成對資料庫的訪問
資料庫,顧名思義,是存入數據的倉庫。只不過這個倉庫是在計算機存儲設備上的,而且數據是按一定格式存放的。
當人們收集了大量的數據後,應該把它們保存起來進入近一步的處理,進一步的抽取有用的信息。當年人們把數據存放在文件櫃中,可現在隨著社會的發展,數據量急劇增長,現在人們就藉助計算機和資料庫技術科學的保存大量的數據,以便能更好的利用這些數據資源。
要是下定義的話,就應該是:指長期儲存在計算機內的、有組織的、可共享的數據集合。
資料庫包含關系資料庫、面向對象資料庫及新興的XML資料庫等多種,目前應用最廣泛的是關系資料庫,若在關系資料庫基礎上提供部分面向對象資料庫功能的對象關系資料庫。在資料庫技術的早期還曾經流行過層次資料庫與網狀資料庫,但這兩類資料庫目前已經極少使用。
資料庫管理
資料庫管理(Database Administration)是有關建立、存儲、修改和存取資料庫中信息的技術,是指為保證資料庫系統的正常運行和服務質量,有關人員須進行的技術管理工作。負責這些技術管理工作的個人或集體稱為資料庫管理員(DBA)。資料庫管理的主要內容有:資料庫的建立、資料庫的調整、資料庫的重組、資料庫的重構、資料庫的安全控制、數據的完整性控制和對用戶提供技術支持。
資料庫的建立:資料庫的設計只是提供了數據的類型、邏輯結構、聯系、約束和存儲結構等有關數據的描述。這些描述稱為數據模式。要建立可運行的資料庫,還需進行下列工作:
(1)選定資料庫的各種參數,例如最大的數據存儲空間、緩沖決的數量、並發度等。這些參數可以由用戶設置,也可以由系統按默認值設置。
(2)定義資料庫,利用資料庫管理系統(DBMS)所提供的數據定義語言和命令,定義資料庫名、數據模式、索引等。
(3)准備和裝入數據,定義資料庫僅僅建立了資料庫的框架,要建成資料庫還必須裝入大量的數據,這是一項浩繁的工作。在數據的准備和錄入過程中,必須在技術和制度上採取措施,保證裝入數據的正確性。計算機系統中原已積累的數據,要充分利用,盡可能轉換成資料庫的數據。
注: "資料庫"這個詞對於不同的人應該給予不同的感覺。如果你是一個最終用戶,你根本就不關心數據存儲和維護的細節,資料庫也不應該拿這些事情來煩你。但是如果你是一個資料庫管理員,那麼有些細節上的東西你就必須要清楚。資料庫管理系統可以為不同的用戶提供不同的視圖,也就是他們所看到的資料庫是不一樣的。這就需要進行數據抽象,以形成這些不同的視圖。
最早是在CODASYL的DBTG報告中完整地給出了數據抽象的三個層次。ANSI/SPARC報告中也提出了類似的建議,這個報告中抽象的層次為內部層、概念層和外部層。但是,現在的資料庫管理系統是根據DBTG的報告從三個層次來進行抽象的,它們分別是物理層、邏輯層和視圖層(概念層)。
資料庫的種類
大型資料庫有:Oracle、Sybase、DB2、SQL server
小型資料庫有:Access、MySQL、BD2等。
『伍』 常見的資料庫有哪些
問題一:常用的資料庫軟體有哪些? SQL Server 是 Microsoft(微軟) 的數據產品,它的易用性強! Oracle 是 Oracle(甲骨文)公司的數據產品!號稱世界上最好的數據系統! DB2 是IBM公司的產品,在全球500強的企業中有80%是用DB2作為資料庫平台的
問題二:常用資料庫有哪些?他們有什麼區別 開源的Mysql頂;PostgreSQL即開放源碼的
商業的Oracle/SQL Server/DB2即收費的
問題三:什麼是常用的三個資料庫? 目前,資料庫管理系統關系型資料庫為主導產品的商品化,技術相對成熟。雖然面向對象的資料庫管理系統的先進技術,資料庫易於開發,維護,但尚未成熟的產品。國際和國內領先的關系資料庫管理系統,甲骨文,Sybase,Informix和INGRES。這些產品支持多種平台,如UNIX,VMS,Windows上,而不是同一級別的支持。和成熟的IBM的DB2關系資料庫。但是,DB2是內嵌於IBM的AS/400系列機,只支持OS/400操作系統。
?1.MySQL
?MySQL是最受歡迎的開源SQL資料庫管理系統,由MySQL AB公司,發布和支持。 MySQL AB是基於MySQL開發一個商業公司,它是利用與開源值相結合的一個成功的商業模式?和方法論的第二代開源公司。 MySQL是MySQL AB的注冊商標。
?MySQL是一個快速,多線程,多用戶和健壯的SQL資料庫伺服器。 MySQL伺服器支持關鍵任務,重負載生產系統的使用,它可以嵌入到一個大配置(大規模部署)軟體。
?的MySQL與其他資料庫管理系統相比,具有以下優點:
?(1)MySQL是一個關系資料庫管理系統。
?(2)MySQL是開源。
?(3)MySQL伺服器是一個快速,可靠和易於使用的資料庫伺服器。
?(4)在MySQL伺服器的客戶機/伺服器或嵌入式系統。
?(5)可以使用MySQL軟體。
2.SQL Server的嗎?
?SQL Server是由微軟開發的資料庫管理系統,是目前最流行的資料庫,用於存儲在網路上的數據,它已被廣泛用於電子商務,銀行,保險,電力和其他資料庫相關的產業。
?SQL Server 2005的最新版本,它只能在Windows作業系統的穩定運行是非常重要的資料庫。並行實施和共存模型並不成熟,這是很難對付越來越多的用戶和數據量是有限的,可擴展性。
?SQL Server提供了網路和電子商務功能,如豐富的XML和Internet標準的支持,輕松且安全地通過Web訪問的數據的范圍很廣,有一個強大,靈活和網路,基於安全和應用管理。此外,由於它的易用性和友好的用戶界面,通過廣大用戶的好評,。
?3.Oracle
?提出的資料庫,該公司首先想到的,通常是甲骨文(Oracle)。該公司成立於1977年,原是一個專門開發的資料庫公司。甲骨文一直在資料庫領域的領導者。 1984年,第一個關系資料庫轉移到一台台式電腦。然後,Oracle5率先推出的分布式資料庫,客戶機/伺服器體系結構的新概念。甲骨文公司的第一行鎖定模式和對稱多處理計算機的支持......最新的Oracle對象技術,成為關系 - 對象資料庫系統。目前,甲骨文的產品涵蓋了幾十個型號的大,中,小型機,Oracle資料庫已成為世界上使用最廣泛的關系數據。
Oracle資料庫產品具有以下優良特性。
?(一)兼容性
?Oracle產品使用標準的SQL,和美國國家標准技術局(NIST)測試後。兼容IBM的SQL / DS,DB2中,安格爾的IDMS / R。
?(2)可移植性
??甲骨文的產品,可以廣泛的硬體和操作系統平台上運行。可以安裝在超過70種大不同,VMS系統的DOS,UNIX上,Windows和其他操作系統,小型機;
?(3)協會
甲骨文與各種通信網路連接,支持各種協議(TCP / IP協議說,DECnet,LU6.2工作等)。?
?(4)高生產率
?Oracle提供了多種開發......>>
問題四:現在一般常用的資料庫有哪幾種啊 ? MSSQL和MySQL兩種 sqlserver即是常說的MSSQL, 是微軟公司的產品,而MySQL不是,MySQL是一家叫MySQL AB的公司的開源產品,它是免費的,而且可以跨平台使用. MSSQL比較昂貴,一般只在Windows下使用.
問題五:常用大型資料庫有哪些 FOXBASE
MYSQL
這倆可算不上大型資料庫管理系統
PB 是資料庫應用程序開發用的ide,根本就不是資料庫管理系統
Foxbase是dos時代的產品了,進入windows時代改叫foxpro,屬於桌面單機級別的小型資料庫系統,mysql是個中輕量級的,但是開源,大量使用於小型網站,真正重量級的是Oracle和DB2,銀行之類的關鍵行業用的多是這兩個,微軟的MS SQLServer相對DB2和Oracle規模小一些,多見於中小型企業單位使用,Sybase可以說是日薄西山,不行了
問題六:常見的資料庫文件格式有哪些? dbf dbase文件,一種由ashton-tate創建的格式,可以被act!、lipper、foxpro、arago、wordtech、xbase和類似資料庫或與資料庫有關產品識別,可用數據文件(能被excel 97打開),oracle 8.1.x表格空間文件;dba是access文件;nsf lotus notes資料庫;mdf和ldf是sql server文件;2.另外你還有不少是軟體開發者自己定義的資料庫文件,大多採用dat,或者把dba轉換為dat,由程序文件名轉換處理。3.odb++是一種可擴展的ascii格式,它可在單個資料庫中保存pcb製造和裝配所必需的全部工程數據。是能把多種數據格式資料庫連接起來的橋梁,是一種雙向格式,允許數據上行和下傳。
問題七:常見的資料庫應用系統有哪些? 現在極大多的企業級軟體都是基於資料庫的。
比如:
ERP: 企業資源管理計劃
CRM: 客戶關系管理
OA: 辦公自動化。
12306鐵道部的網上訂票系統。
。。。
問題八:常用的資料庫軟體有哪些 1)MYSQL:
MySQL是由MySQL AB開發、發布和支持,是一個快速的、多線程、多用戶和健壯的SQL資料庫伺服器,是目前最受歡迎的開源SQL資料庫管理系統。MySQL
AB是一家基於MySQL開發人員的商業公司,它是一家使用了一種成功的商業模式來結合開源價值和方法論的第二代開源公司。MySQL是MySQL
AB的注冊商標。MySQLMySQL伺服器支持關鍵任務、重負載生產系統的使用,也可以將它嵌入到一個大配置(mass-
deployed)的軟體中去。
2)ACCESS:
ACCESS是系統自帶的一種關系式資料庫,與空間共存不需要單獨開設。關系式資料庫由一系列表組成,表又由一系列行和列組成,每一行是一個記錄,每一列是一個欄位,每個欄位有一個欄位名,欄位名在一個表中不能重復。Access資料庫以文件形式保存,文件的擴展名是MDB,作為開發網站常用的資料庫,Access資料庫一般搭配ASP程序使用。當資料庫過大的時候可以轉換為MSSQL資料庫使用,二者可以進行轉換。
3)MSSQL:
SQL Server也是微軟公司出品的,它是一個資料庫平台,提供資料庫的從伺服器到終端的完整的解決方案,其中資料庫伺服器部分,是一個資料庫管理系統,用於建立、使用和維護資料庫。
MSSQL特點:數據承載量比較大,存儲數據速度快,穩定性強,適用於中小型企業開發網站和辦公系統常用的資料庫。
4)Oracle:
Oracle公司是全球最大的信息管理軟體及服務供應商,成立於1977年,總部位於美國加州 Redwood
shore。Oracle的軟體可運行在PC、工作站、小型機、主機、大規模的並行計算機,以及PDA等各種計算設備上,隨著越來越多的企業將自己轉向電子商務,Oracle的具有強大的電子商務能力的解決方案,為企業提供高效率的擴展市場的手段,並提高工作效率和吸引更多的客戶。Oracle提供的完整的電子商務產品和服務包括:用於建立和交付基於Web的Internet平台;
綜合、全面的具有Internet能力的商業應用;強大的專業服務,幫助用戶實施電子商務戰略,以及設計、定製和實施各種電子商務解決方案。
問題九:常見的資料庫管理系統有哪些?它們各自有什麼特點? 1. IBM 的DB2作為關系資料庫領域的開拓者和領航人,IBM在1977年完成了System R系統的原型,1980年開始提供集成的資料庫伺服器―― System/38,隨後是SQL/DSforVSE和VM,其初始版本與SystemR研究原型密切相關。DB2 forMVSV1 在1983年推出。該版本的目標是提供這一新方案所承諾的簡單性,數據不相關性和用戶生產率。1988年DB2 for MVS 提供了強大的在線事務處理(OLTP)支持,1989 年和1993 年分別以遠程工作單元和分布式工作單元實現了分布式資料庫支持。最近推出的DB2 Universal Database 6.1則是通用資料庫的典範,是第一個具備網上功能的多媒體關系資料庫管理系統,支持包括Linux在內的一系列平台。2. OracleOracle 前身叫SDL,由Larry Ellison 和另兩個編程人員在1977創辦,他們開發了自己的拳頭產品,在市場上大量銷售,1979 年,Oracle公司引入了第一個商用SQL 關系資料庫管理系統。Oracle公司是最早開發關系資料庫的廠商之一,其產品支持最廣泛的操作系統平台。目前Oracle關系資料庫產品的市場佔有率名列前茅。3. InformixInformix在1980年成立,目的是為Unix等開放操作系統提供專業的關系型資料庫產品。公司的名稱Informix便是取自Information 和Unix的結合。Informix第一個真正支持SQL語言的關系資料庫產品是Informix SE(StandardEngine)。InformixSE是在當時的微機Unix環境下主要的資料庫產品。它也是第一個被移植到Linux上的商業資料庫產品。4. SybaseSybase公司成立於1984年,公司名稱「Sybase」取自「system」和「database」 相結合的含義。Sybase公司的創始人之一Bob Epstein 是Ingres 大學版(與System/R同時期的關系資料庫模型產品)的主要設計人員。公司的第一個關系資料庫產品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 資料庫體系結構的思想,並率先在Sybase SQLServer 中實現。5. SQL Server1987 年,微軟和IBM合作開發完成OS/2,IBM 在其銷售的OS/2 ExtendedEdition 系統中綁定了OS/2Database Manager,而微軟產品線中尚缺少資料庫產品。為此,微軟將目光投向Sybase,同Sybase 簽訂了合作協議,使用Sybase的技術開發基於OS/2平台的關系型資料庫。1989年,微軟發布了SQL Server 1.0 版。6. PostgreSQLPostgreSQL 是一種特性非常齊全的自由軟體的對象――關系性資料庫管理系統(ORDBMS),它的很多特性是當今許多商業資料庫的前身。PostgreSQL最早開始於BSD的Ingres項目。PostgreSQL 的特性覆蓋了SQL-2/SQL-92和SQL-3。首先,它包括了可以說是目前世界上最豐富的數據類型的支持;其次,目前PostgreSQL 是唯一支持事務、子查詢、多版本並行控制系統、數據完整性檢查等特性的唯一的一種自由軟體的資料庫管理系統.7.mySQLmySQL是一個小型關系型......>>
問題十:常用的資料庫安全技術有哪些 資料庫的安全性是指保護資料庫以防止不合法的使用所造成的數據泄露、更改或破壞。
安全性問題不是資料庫系統所獨有的,所有計算機系統都有這個問題。只是在資料庫系統中大量數據集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。 系統安全保護措施是否有效是資料庫系統的主要指標之一。 資料庫的安全性和計算機系統的安全性,包括操作系統、網路系統的安全性是緊密聯系、相互支持的。
實現資料庫安全性控制的常用方法和技術有:
(1)用戶標識和鑒別:該方法由系統提供一定的方式讓用戶標識自己咱勺名字或身份。每次用戶要求進入系統時,由系統進行核對,通過鑒定後才提供系統的使用權。
(2)存取控制:通過用戶許可權定義和合法權檢查確保只有合法許可權的用戶訪問資料庫,所有未被授權的人員無法存取數據。例如C2級中的自主存取控制(I)AC),Bl級中的強制存取控制(M.AC)。
(3)視圖機制:為不同的用戶定義視圖,通過視圖機制把要保密的數據對無權存取的用戶隱藏起來,從而自動地對數據提供一定程度的安全保護。
(4)審計:建立審計日誌,把用戶對資料庫的所有操作自動記錄下來放人審計日誌中,DBA可以利用審計跟蹤的信息,重現導致資料庫現有狀況的一系列事件,找出非法存取數據的人、時間和內容等。
(5)數據加密:對存儲和傳輸的數據進行加密處理,從而使得不知道解密演算法的人無法獲知數據的內容。