1. 程式人生 > >JDBC--資料庫管理系統

JDBC--資料庫管理系統

1-JDBC概述

序言:資料持久化

持久化(persistence):把資料儲存到可掉電式儲存裝置中以供之後使用。大多數情況下,特別是企業級應用,資料持久化意味著將記憶體中的資料儲存到硬碟上加以”固化”,而持久化的實現過程大多通過各種關係資料庫來完成。
持久化的主要應用是將記憶體中的資料儲存在關係型資料庫中,當然也可以儲存在磁碟檔案、XML資料檔案中。 

Java 中的資料儲存技術

在Java中,資料庫存取技術可分為如下幾類:
JDBC直接訪問資料庫
JDO技術
第三方O/R工具,如Hibernate, ibatis 等
JDBC是java訪問資料庫的基石,JDO, Hibernate等只是更好的封裝了JDBC。

JDBC基礎

JDBC(Java Database Connectivity)是一個獨立於特定資料庫管理系統、通用的SQL資料庫存取和操作的公共介面(一組API),定義了用來訪問資料庫的標準Java類庫(java.sql,javax.sql)使用這個類庫可以以一種標準的方法、方便地訪問資料庫資源JDBC為訪問不同的資料庫提供了一種統一的途徑,為開發者遮蔽了一些細節問題。
JDBC的目標是使Java程式設計師使用JDBC可以連線任何提供了JDBC驅動程式的資料庫系統,這樣就使得程式設計師無需對特定的資料庫系統的特點有過多的瞭解,從而大大簡化和加快了開發過程。

JDBC體系結構

JDBC介面(API)包括兩個層次: 
面向應用的API:Java API,抽象介面,供應用程式開發人員使用(連線資料庫,執行SQL語句,獲得結果)。 
面向資料庫的API:Java Driver API,供開發商開發資料庫驅動程式用。
JDBC是sun公司提供一套用於資料庫操作的介面,java程式設計師只需要面向這套介面程式設計即可。不同的資料庫廠商,需要針對這套介面,提供不同實現。不同的實現的集合,即為不同資料庫的驅動。————面向介面程式設計

JDBC驅動程式分類。

JDBC驅動程式:各個資料庫廠商根據JDBC的規範製作的 JDBC 實現類的類庫  
JDBC驅動程式總共有四種類型:
第一類:JDBC-ODBC橋。 
第二類:部分本地API部分Java的驅動程式。 
第三類:JDBC網路純Java驅動程式。 
第四類:本地協議的純 Java 驅動程式。 
第三、四兩類都是純Java的驅動程式,因此,對於Java開發者來說,它們在效能、可移植性、功能等方面都有優勢。

第一類:ODBC 

早期對資料庫的訪問,都是呼叫資料庫廠商提供的專有的 API。為了在 Windows 平臺下提供統一的訪問方式,微軟推出了 ODBC(Open Database Connectivity,開放式資料庫連線),並提供了 ODBC API,使用者在程式中只需要呼叫 ODBC API,由 ODBC 驅動程式將呼叫轉換成為對特定的資料庫的呼叫請求一個基於ODBC的應用程式對資料庫的操作不依賴任何DBMS(database manager system),不直接與DBMS打交道,所有的資料庫操作由對應的DBMS的ODBC驅動程式完成。也就是說,不論是FoxPro、Access ,MYSQL還是Oracle資料庫,均可用ODBC API進行訪問。由此可見,ODBC的最大優點是能以統一的方式處理所有的資料庫。
JDBC-ODBC橋 
JDBC-ODBC 橋本身也是一個驅動,利用這個驅動,可以使用 JDBC-API 通過ODBC 去訪問資料庫。這種機制實際上是把標準的 JDBC 呼叫轉換成相應的 ODBC 呼叫,並通過 ODBC 訪問資料庫因為需要通過多層呼叫,所以利用 JDBC-ODBC 橋訪問資料庫的效率較低在 JDK 中,提供了 JDBC-ODBC 橋的實現類(sun.jdbc.odbc.JdbcOdbcDriver)。

第二類:部分本地API部分Java的驅動程式

這種型別的 JDBC 驅動程式使用 Java 編寫,它呼叫資料庫廠商提供的本地 API通過這種型別的 JDBC 驅動程式訪問資料庫減少了 ODBC 的呼叫環節,提高了資料庫訪問的效率在這種方式下需要在客戶的機器上安裝本地 JDBC 驅動程式和特定廠商的本地 API 。

第三類:JDBC網路純Java驅動程式

這種驅動利用中介軟體的應用伺服器來訪問資料庫。應用伺服器作為一個到多個數據庫的閘道器,客戶端通過它可以連線到不同的資料庫伺服器。
應用伺服器通常有自己的網路協議,Java 使用者程式通過 JDBC 驅動程式將 JDBC 呼叫傳送給應用伺服器,應用伺服器使用本地程式驅動訪問資料庫,從而完成請求。

第四類:本地協議的純 Java 驅動程式

多數資料庫廠商已經支援允許客戶程式通過網路直接與資料庫通訊的網路協議。
這種型別的驅動程式完全使用 Java 編寫,通過與資料庫建立的 Socket 連線,採用具體與廠商的網路協議把 JDBC 呼叫轉換為直接連線的網路呼叫JDBC API。

JDBC API 是一系列的介面,它使得應用程式能夠進行資料庫聯接,執行SQL語句,並且得到返回結果。

2-獲取資料庫連線

Driver 介面

java.sql.Driver 介面是所有 JDBC 驅動程式需要實現的介面。這個介面是提供給資料庫廠商使用的,不同資料庫廠商提供不同的實現在程式中不需要直接去訪問實現了 Driver 介面的類,而是由驅動程式管理器類(java.sql.DriverManager)去呼叫這些Driver實現。
Oracle的驅動:oracle.jdbc.driver.OracleDriver
mySql的驅動: com.mysql.jdbc.Driver

載入與註冊 JDBC 驅動

方式一:載入 JDBC 驅動需呼叫 Class 類的靜態方法 forName(),向其傳遞要載入的 JDBC 驅動的類名
Class.forName(“com.mysql.jdbc.Driver”);
方式二:DriverManager 類是驅動程式管理器類,負責管理驅動程式
DriverManager.registerDriver(com.mysql.jdbc.Driver);
通常不用顯式呼叫 DriverManager 類的 registerDriver() 方法來註冊驅動程式類的例項,因為 Driver 介面的驅動程式類都包含了靜態程式碼塊,在這個靜態程式碼塊中,會呼叫 DriverManager.registerDriver() 方法來註冊自身的一個例項。

建立連線(Connection)

可以呼叫 DriverManager 類的 getConnection() 方法建立到資料庫的連線。
User,password可以用“屬性名=屬性值”方式告訴資料庫;
JDBC URL 用於標識一個被註冊的驅動程式,驅動程式管理器通過這個 URL 選擇正確的驅動程式,從而建立到資料庫的連線。
JDBC URL的標準由三部分組成,各部分間用冒號分隔。 
jdbc:子協議:子名稱
協議:JDBC URL中的協議總是jdbc 。
子協議:子協議用於標識一個數據庫驅動程式。
子名稱:一種標識資料庫的方法。子名稱可以依不同的子協議而變化,用子名稱的目的是為了定位資料庫提供足夠的資訊。包含主機名(對應服務端的ip地址),埠號,資料庫名。

幾種常用資料庫的JDBC URL

jdbc:mysql://localhost:3306/test 
協議 子協議       子名稱
對於 Oracle 資料庫連線,採用如下形式: 
jdbc:oracle:thin:@localhost:1521:atguigu
對於 SQLServer 資料庫連線,採用如下形式:
jdbc:microsoft:sqlserver//localhost:1433; DatabaseName=sid
對於 MYSQL 資料庫連線,採用如下形式:   
jdbc:mysql://localhost:3306/atguigu

Statement

一旦獲取了連線物件Connection, 還不可以執行SQL, 必須要從Connection連線物件獲取執行體物件Statement才能執行SQL。
Connection connection = getConnection();
Statement state = connection.createStatement();
int n = state.executeUpdate(“insert,update,delete…”);
其中n是執行增刪改後對錶產生的影響的記錄數如果執行一個查詢則返回一個ResultSet結果集物件.

SQL 注入攻擊

SQL 注入是利用某些系統沒有對使用者輸入的資料進行充分的檢查,而在使用者輸入資料中注入非法的 SQL 語句段或命令(如:SELECT user, password FROM user_table WHERE user='a' OR 1 = ' AND password = ' OR '1' = '1') ,從而利用系統的 SQL 引擎完成惡意行為的做法對於 Java 而言,要防範 SQL 注入,只要用 PreparedStatement(從Statement擴充套件而來) 就可以了取代 Statement 。

3-使用PreparedStatement

資料型別轉換表



可以通過呼叫 Connection 物件的 preparedStatement() 方法獲取 PreparedStatement 物件。
PreparedStatement 介面是 Statement 的子介面,它表示一條預編譯過的 SQL 語句。
PreparedStatement 物件所代表的 SQL 語句中的引數用問號(?)來表示,呼叫 PreparedStatement 物件的 setXxx() 方法來設定這些引數. setXxx() 方法有兩個引數,第一個引數是要設定的 SQL 語句中的引數的索引(從 1 開始),第二個是設定的 SQL 語句中的引數的值。
PreparedStatement vs Statement
程式碼的可讀性和可維護性.
PreparedStatement 能最大可能提高效能:
DBServer會對預編譯語句提供效能優化。因為預編譯語句有可能被重複呼叫,所以語句在被DBServer的編譯器編譯後的執行程式碼被快取下來,那麼下次呼叫時只要是相同的預編譯語句就不需要編譯,只要將引數直接傳入編譯過的語句執行程式碼中就會得到執行。
在statement語句中,即使是相同操作但因為資料內容不一樣,所以整個語句本身不能匹配,沒有快取語句的意義。事實是沒有資料庫會對普通語句編譯後的執行程式碼快取.這樣每執行一次都要對傳入的語句編譯一次。  (語法檢查,語義檢查,翻譯成二進位制命令,快取)。
PreparedStatement 可以防止 SQL 注入 

連線資料庫、操作表的步驟:

註冊驅動 (只做一次)
建立連線(Connection) 
建立執行SQL的語句(PreparedStatement )
執行語句處
理執行結果(ResultSet)

釋放資源

Connection conn = null;
		PreparedStatement st=null;
		ResultSet rs = null;
		try {       
			//獲得Connection      
			//建立PreparedStatement      
			//處理查詢結果ResultSet
		}catch(Exception e){
		     	e.printStackTrance();
		} finally {     
			//釋放資源ResultSet,        
			// PreparedStatement ,    
			//Connection
		

釋放ResultSet, PreparedStatement ,Connection。
資料庫連線(Connection)是非常稀有的資源,用完後必須馬上釋放,如果Connection不能及時正確的關閉將導致系統宕機。Connection的使用原則是儘量晚建立,儘量早的釋放。

4-使用ResultSet、ResultSetMetaData操作資料表:SELECT

ORM:Object Relation Mapping
表 與 類 對應
表的一行資料 與 類的一個物件對應
表的一列 與類的一個屬性對應

ResultSet

通過呼叫 PreparedStatement 物件的 excuteQuery() 方法建立該物件。
ResultSet 物件以邏輯表格的形式封裝了執行資料庫操作的結果集,ResultSet 介面由資料庫廠商實現。
ResultSet 物件維護了一個指向當前資料行的遊標,初始的時候,遊標在第一行之前,可以通過 ResultSet 物件的 next() 方法移動到下一行。
ResultSet 介面的常用方法:
boolean next()
getString()
處理執行結果(ResultSet)
讀取(查詢)對應SQL的SELECT,返回查詢結果
st = conn.createStatement();
String sql = "select id, name, age,birth from user";
rs = st.executeQuery(sql);
while (rs.next()) {		
	System.out.print(rs.getInt("id") + " \t ");		
	System.out.print(rs.getString("name") + " \t");		
	System.out.print(rs.getInt("age") + " \t");		
	System.out.print(rs.getDate(“birth") + " \t ");		
	System.out.println();}
}

關於Result的說明
1. 查詢需要呼叫 Statement 的 executeQuery(sql) 方法,查詢結果是一個 ResultSet 物件
2. 關於 ResultSet:代表結果集
ResultSet: 結果集. 封裝了使用 JDBC 進行查詢的結果. 呼叫 Statement 物件的 executeQuery(sql) 可以得到結果集.
ResultSet 返回的實際上就是一張資料表. 有一個指標指向資料表的第一條記錄的前面.
3.可以呼叫 next() 方法檢測下一行是否有效. 若有效該方法返回 true, 且指標下移. 相當於Iterator 物件的 hasNext() 和 next() 方法的結合體
4.當指標指向一行時, 可以通過呼叫 getXxx(int index) 或 getXxx(int columnName) 獲取每一列的值. 
例如: getInt(1), getString("name")
5.ResultSet 當然也需要進行關閉. 

MySQL BLOB 型別 

MySQL中,BLOB是一個二進位制大型物件,是一個可以儲存大量資料的容器,它能容納不同大小的資料。
MySQL的四種BLOB型別(除了在儲存的最大資訊量上不同外,他們是等同的)。

實際使用中根據需要存入的資料大小定義不同的BLOB型別。
需要注意的是:如果儲存的檔案過大,資料庫的效能會下降。

ResultSetMetaData 類

可用於獲取關於 ResultSet 物件中列的型別和屬性資訊的物件。
ResultSetMetaData meta = rs.getMetaData();
getColumnName(int column):獲取指定列的名稱
getColumnLabel(int column):獲取指定列的別名
getColumnCount():返回當前 ResultSet 物件中的列數。 
getColumnTypeName(int column):檢索指定列的資料庫特定的型別名稱。 
getColumnDisplaySize(int column):指示指定列的最大標準寬度,以字元為單位。 
isNullable(int column):指示指定列中的值是否可以為 null。  
isAutoIncrement(int column):指示是否自動為指定列進行編號,這樣這些列仍然是隻讀的。 

JDBC API 小結

java.sql.DriverManager用來裝載驅動程式,獲取資料庫連線。
java.sql.Connection完成對某一指定資料庫的連線。
java.sql.Statement在一個給定的連線中作為SQL執行宣告的容器,他包含了兩個重要的子型別。
Java.sql.PreparedSatement 用於執行預編譯的sql宣告。
Java.sql.CallableStatement用於執行資料庫中儲存過程的呼叫。
java.sql.ResultSet對於給定宣告取得結果的途徑。
兩種思想

面向介面程式設計的思想;

ORM思想:sql是需要結合列名和表的屬性名來寫,注意起別名。

兩種技術

JDBC元資料:ResultSetMetaData;

PropertyUtils:通過Class.newInstance()建立一個物件,通過此類將查詢到的列值裝配給建立的物件。

5-批量處理

批量處理JDBC語句提高處理速度 。
當需要成批插入或者更新記錄時。可以採用Java的批量更新機制,這一機制允許多條語句一次性提交給資料庫批量處理。通常情況下比單獨提交處理更有效率
JDBC的批量處理語句包括下面兩個方法:
addBatch(String):新增需要批量處理的SQL語句或是引數;
executeBatch():執行批量處理語句;clearBatch():清空快取的資料;
通常我們會遇到兩種批量執行SQL語句的情況:
多條SQL語句的批量處理;
一個SQL語句的批量傳參;

6-資料庫連線池

JDBC資料庫連線池的必要性 
在使用開發基於資料庫的web程式時,傳統的模式基本是按以下步驟:  
在主程式(如servlet、beans)中建立資料庫連線
進行sql操作
斷開資料庫連線
這種模式開發,存在的問題:
普通的JDBC資料庫連線使用 DriverManager 來獲取,每次向資料庫建立連線的時候都要將 Connection 載入到記憶體中,再驗證使用者名稱和密碼(得花費0.05s~1s的時間)。需要資料庫連線的時候,就向資料庫要求一個,執行完成後再斷開連線。這樣的方式將會消耗大量的資源和時間。資料庫的連線資源並沒有得到很好的重複利用.若同時有幾百人甚至幾千人線上,頻繁的進行資料庫連線操作將佔用很多的系統資源,嚴重的甚至會造成伺服器的崩潰。對於每一次資料庫連線,使用完後都得斷開。否則,如果程式出現異常而未能關閉,將會導致資料庫系統中的記憶體洩漏,最終將導致重啟資料庫。這種開發不能控制被建立的連線物件數,系統資源會被毫無顧及的分配出去,如連線過多,也可能導致記憶體洩漏,伺服器崩潰。 
資料庫連線池(connection pool) 
為解決傳統開發中的資料庫連線問題,可以採用資料庫連線池技術。
資料庫連線池的基本思想就是為資料庫連線建立一個“緩衝池”。預先在緩衝池中放入一定數量的連線,當需要建立資料庫連線時,只需從“緩衝池”中取出一個,使用完畢之後再放回去。
資料庫連線池負責分配、管理和釋放資料庫連線,它允許應用程式重複使用一個現有的資料庫連線,而不是重新建立一個。
資料庫連線池在初始化時將建立一定數量的資料庫連線放到連線池中,這些資料庫連線的數量是由最小資料庫連線數來設定的。無論這些資料庫連線是否被使用,連線池都將一直保證至少擁有這麼多的連線數量。連線池的最大資料庫連線數量限定了這個連線池能佔有的最大連線數,當應用程式向連線池請求的連線數超過最大連線數量時,這些請求將被加入到等待佇列中。

資料庫連線池的工作原理


資料庫連線池技術的優點

資源重用
由於資料庫連線得以重用,避免了頻繁建立,釋放連線引起的大量效能開銷。在減少系統消耗的基礎上,另一方面也增加了系統執行環境的平穩性。
更快的系統反應速度
資料庫連線池在初始化過程中,往往已經建立了若干資料庫連線置於連線池中備用。此時連線的初始化工作均已完成。對於業務請求處理而言,直接利用現有可用連線,避免了資料庫連線初始化和釋放過程的時間開銷,從而減少了系統的響應時間。
新的資源分配手段
對於多應用共享同一資料庫的系統而言,可在應用層通過資料庫連線池的配置,實現某一應用最大可用資料庫連線數的限制,避免某一應用獨佔所有的資料庫資源。
統一的連線管理,避免資料庫連線洩露
在較為完善的資料庫連線池實現中,可根據預先的佔用超時設定,強制回收被佔用連線,從而避免了常規資料庫連線操作中可能出現的資源洩露。
兩種開源的資料庫連線池
JDBC 的資料庫連線池使用 javax.sql.DataSource 來表示,DataSource 只是一個介面,該介面通常由伺服器(Weblogic, WebSphere, Tomcat)提供實現,也有一些開源組織
提供實現:
DBCP 資料庫連線池 C3P0 資料庫連線池
DataSource 通常被稱為資料來源,它包含連線池和連線池管理兩個部分,習慣上也經常把 DataSource 稱為連線池。
DataSource用來取代DriverManager來獲取Connection,獲取速度快,同時可以大幅度提高資料庫訪問速度。
DBCP 資料來源 
DBCP 是 Apache 軟體基金組織下的開源連線池實現,該連線池依賴該組織下的另一個開源系統:Common-pool. 如需使用該連線池實現,應在系統中增加如下兩個 jar 檔案:
Commons-dbcp.jar:連線池的實現 Commons-pool.jar:連線池實現的依賴庫
Tomcat 的連線池正是採用該連線池來實現的。該資料庫連線池既可以與應用伺服器整合使用,也可由應用程式獨立使用。
DBCP 資料來源使用範例
資料來源和資料庫連線不同,資料來源無需建立多個,它是產生資料庫連線的工廠,因此整個應用只需要一個數據源即可。
當資料庫訪問結束後,程式還是像以前一樣關閉資料庫連線:conn.close(); 但上面的程式碼並沒有關閉資料庫的物理連線,它僅僅把資料庫連線釋放,歸還給了資料庫連線池。

7-資料庫事務

事務:一組邏輯操作單元,使資料從一種狀態變換到另一種狀態。
事務處理(事務操作):保證所有事務都作為一個工作單元來執行,即使出現了故障,都不能改變這種執行方式。當在一個事務中執行多個操作時,要麼所有的事務都被提交(commit),那麼這些修改就永久地儲存下來;要麼資料庫管理系統將放棄所作的所有修改,整個事務回滾(rollback)到最初狀態。
為確保資料庫中資料的一致性,資料的操縱應當是離散的成組的邏輯單元:當它全部完成時,資料的一致性可以保持,而當這個單元中的一部分操作失敗,整個事務應全部視為錯誤,所有從起始點以後的操作應全部回退到開始狀態。

事務的ACID(acid)屬性    
1. 原子性(Atomicity)
原子性是指事務是一個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。 
2. 一致性(Consistency)
事務必須使資料庫從一個一致性狀態變換到另外一個一致性狀態。
3. 隔離性(Isolation)
事務的隔離性是指一個事務的執行不能被其他事務干擾,即一個事務內部的操作及使用的資料對併發的其他事務是隔離的,併發執行的各個事務之間不能互相干擾。
4. 永續性(Durability) 永續性是指一個事務一旦被提交,它對資料庫中資料的改變就是永久性的,接下來的其他操作和資料庫故障不應該對其有任何影響
JDBC 事務處理
當一個連線物件被建立時,預設情況下是自動提交事務:每次執行一個 SQL 語句時,如果執行成功,就會向資料庫自動提交,而不能回滾。
為了讓多個 SQL 語句作為一個事務執行:
呼叫 Connection 物件的 setAutoCommit(false); 以取消自動提交事務 在所有的 SQL 語句都成功執行後,呼叫 commit(); 方法提交事務 在出現異常時,呼叫 rollback(); 方法回滾事務 若此時 Connection 沒有被關閉, 則需要恢復其自動提交狀態
提交後的資料狀態
資料的改變已經被儲存到資料庫中。 改變前的資料已經丟失。 所有使用者可以看到結果。 鎖被釋放, 其他使用者可以操作涉及到的資料。

8-DBUtils工具類

將常用的操作資料庫的JDBC的類和方法集合在一起,就是DBUtils.
BeanHandler:把結果集轉為一個 JavaBean BeanBeanListHandler:把結果集轉為一個 Bean 的集合 MapHandler:把結果集轉為一個 Map MapMapListHandler:把結果集轉為一個 Map 的 List ScalarHandler:把結果集轉為一個型別的資料返回, 該型別通常指 String 或其它 8 種基本資料型別.

相關推薦

JDBC--資料庫管理系統

1-JDBC概述 序言:資料持久化 持久化(persistence):把資料儲存到可掉電式儲存裝置中以供之後使用。大多數情況下,特別是企業級應用,資料持久化意味著將記憶體中的資料儲存到硬碟上加以”固化”,而持久化的實現過程大多通過各種關係資料庫來完成。持久化的主要應用是將記

資料庫管理系統的層次結構

根據處理物件的不同,資料庫管理系統的層次結構由高階到低階依次為應用層、語言翻譯處理層、資料存取層、資料儲存層、作業系統。   (1)應用層。應用層是DBMS與終端使用者和應用程式的介面層,處理的物件是各種各樣的資料庫應用。   (2)語言翻譯處理層。語言翻譯處理層是對資料庫語言的各類語句進行語法分析、檢視

主流資料庫管理系統介紹

目前有許多DBMS產品,如DB2、Oracle、Microsoft SQL Server、Sybase SQLServer、Informix、MySQL等,它們在資料庫市場上各自佔有一席之地。下面簡要介紹幾種常用的資料庫管理系統。 (1)DB2 DB2第一種使用使用SQL的資料庫產品。DB2 於1982

MariaDb資料庫管理系統學習(二)使用HeidiSQL資料庫圖形化介面管理工具

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

關係資料庫系統RDBMS與面向物件資料庫管理系統ODBMS優缺點比較

關係資料庫系統與面向物件資料庫系統各自的優缺點 關係資料庫系統的優點 a.靈活性和建庫的簡單性:目前在多數RDDMS產品中使用標準查詢語言SQL,允許使用者幾乎毫無差別地從一個產品到另一個產品存取資訊。 b.結構簡單:從資料建模的前景看,關係資料庫具有相當

資料庫管理系統的三個發展階段

一、人工管理        時間:20世紀50年代中期以前        功能:計算機主要用於科學計算。外部儲存器只有磁帶、卡片和紙帶等還沒有磁碟等直接存取儲存

資料庫系統概論:第十二章 資料庫管理系統

12.1 資料庫管理系統的基本功能 1. 資料庫定義和建立 2. 資料組織、儲存、管理 3. 資料存取 4. 資料庫事務管理和執行管理 5. 資料庫的建立和維護 6. 其他功能 12.2 資料庫管理系統地結構 12.2.1 資料庫管理系統地層次結構

Centos7.5_Nginx+tomcat+redis搭建視覺化資料庫管理系統 TreeNMS

伺服器環境:centos7.5 軟體環境:寶塔搭建的框架,Nginx+tomcat7.0+redis4.0搭建的環境 遇到的問題:                       1、驗證碼80埠不顯示驗證碼                            2、80

初識mysql資料庫管理系統

隨著網路技術的發展,計算機軟/硬體技術的進步,現在的計算機可以管理規模巨大的資料庫,這時,計算機如果還在使用檔案系統來管理資料,則遠遠不能滿足當今的各種應用需求,於是就出現了資料庫技術,特別是關係型資料庫。該階段就是所謂的資料庫系統階段,該階段的特點如下:

Mac MySQL 資料庫配置(關係型資料庫管理系統

前言 MySQL 關係型資料庫管理系統。 1、配置準備工作 1)配置資料庫準備工作 下載相關軟體 mysql-5.7.21-1-macos10.13-x86_64.dmg mysql

運維要失業了?機器學習可自動優化你的資料庫管理系統(DBMS)

作者簡介: 達娜·範·阿肯(Dana Van Aken)是卡內基·梅隆大學的計算機學博士生,導師是安德魯·帕夫洛博士。 安迪·帕夫洛(Andy Pavlo)是卡內基·梅隆大學的計算機學系資料庫學助理教授。 傑夫·戈登(Geoff Gordon)是卡內基·梅隆大學的副教授兼機器學習系教育部副主任。 本

關係型資料庫管理系統(RDBMS)與非關係型資料庫(NoSQL)之間的區別

簡介 關係型資料庫管理系統(RDBMS)是建立在關係模型基礎上的資料庫,主要代表有:Microsoft SQL Server,Oracle,MySQL(開源)。 非關係型資料庫(NoSQL),主要代表有:MongoDB,Redis。   ACID vs BASE AC

使用MariaDB資料庫管理系統

並且熟練掌握對資料庫內使用者的建立與授權,資料庫的備份與恢復方法,不僅滿足了RHCE考題要求,還能幫助您的運維工作。 1 資料庫管理系統 我們的生活中無時無刻都在接觸到資料,而資料庫便是通過指定的組織結構將這資料儲存的倉庫,並且隨著網際網路和資訊科技的發展,資料庫也已經從最初只能儲存簡單表格發展到了儲存海量資

Anti-Caching:一種新型資料庫管理系統架構

1.寫在前面 之前的三篇博文主要介紹了NVM(Non-Volatile Memory)和資料庫相關的內容。NVM因其讀寫效能接近DRAM、可位元組定址、非易失、大容量等特點,在電腦科學的許多領域都具有非常身後的發掘潛力。而我目前研究的資料庫方向只是NVM所應用

mySQL (關係型資料庫管理系統

由於其社群版的效能卓越,搭配 PHP 和 Apache 可組成良好的開發環境。應用環境與其他大型資料庫相比例如Oracle、DB2、SQL Server,MySQL 自有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有餘,而且由於 My

DB2--資料庫管理系統簡介

DB2是IBM公司開發的關係資料庫管理系統,它有多種不同的版本,如:DB2工作組版(DB2Workgroup Edition)、DB2企業版(DB2 Enterprise Edition)、DB2個人版(DB2 Personal Edition)和DB2企業擴充套件版(DB2

關係型資料庫和關係型資料庫管理系統

什麼是關係型資料庫? 關係資料庫,是建立在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的資料。 關係模型 現實世界中的各種實體以及實體之間的各種聯絡均用關係模型來表示。關係模型由關係資料結構、關係操作集合、關係完整性約束三部分組成。 關係模型就是指二

Mariadb(mysql)資料庫管理系統-03——使用者管理

Mariadb(mysql)裡的使用者管理 一、檢視當前登入使用者 此root使用者和Linux中的root不是一個使用者,此root為mariadb的root使用者

為什麼要用全文搜尋引擎:全文搜尋引擎 VS 資料庫管理系統

不知道大家有沒有想過一個問題:資料庫服務也支援全文搜尋,但我們為什麼要用全文搜尋引擎! 如果說是全文搜尋引擎更快或者效能更好,那為什麼呢?我們都知道solr和elasticsearch都是基於L

linux入門系列19--資料庫管理系統(DBMS)之MariaDB

前面講完Linux下一系列服務的配置和使用之後,本文簡單介紹一款資料庫管理系統(MySQL的兄弟)MariaDB。 如果你有MySQL或其他資料的使用經驗,MariaDB使用起來將非常輕鬆。 本文講解Centos7預設的資料MariaDB,由於是入門系列文章因此不會深入講解,後面有機會在單獨深入。 一、Mar