1. 程式人生 > >資料庫與資料來源的區別

資料庫與資料來源的區別

jdbc基礎

1.什麼是資料來源?

答:資料來源定義的是連線到實際資料庫的一條路徑而已,資料來源中並無真正的資料,它僅僅記錄的是你連線到哪個資料庫,以及如何連線的,如odbc資料來源。也就是說資料來源僅僅是資料庫的連線名稱,一個數據庫可以有多個數據源連線。                                                                                                                              

       在Java語言中,DataSource物件就是一個代表資料來源實體的物件。一個數據源就是一個用來儲存資料的工具,它可以是複雜的大型企業級資料庫,也可以是簡單得只有行和列的檔案。資料來源可以位於在伺服器端,也可以位於客服端。

2.什麼是資料庫連線池?

答:資料庫連線是負責分配、管理和釋放資料庫連線。使用資料庫連線池是因為資料庫連線是一種關鍵的有限的昂貴的資源,這一點在多使用者的網頁應用程式中體現得尤為突出。如weblogic、tomcat、WebSphere容器都實現了資料庫連線池,但是資料庫連線池是可以獨立出來自己編碼實現的。

        資料庫連線池在系統啟動時初始化了一定量maxIdle=idlenum的資料庫連線,即沒有他的使用中的連結被釋放的情況下,連線池中儲存的最大空閒連結數。資料庫連線請求如果沒有超過idle的值則直接去連線池中獲取;如果超過了maxIdle的值則新建一個數據庫連線;但如果資料庫連線池中的連線總數超過了maxActive=activenum則 (如下處理);

   
1 直接拋錯 
2 讓想要借出連線的執行緒等待一段時間,如果等不到,再拋錯 
3 每隔一段檢查一次pool,直到有可用連線,否則一直等下去 
4 永遠可以拿到(視情況需要maxActive不設定或0或負)  

但當沒有可以使用的資料庫連結的時候,連線池將要等待一個連結被返回的最長時間(毫秒)maxWait=waitnum,超過這個時間就要丟擲異常。

3.什麼是jndi?

答:jndi全稱是java naming and directory interface。簡單點就是你按命名規則給一個東西命名然後你就可以通過該名字在特定環境下直接查詢到該東西了。

JNDI是用於向Java程式提供目錄和命名功能的API。可以簡單地把JNDI理解為一種將物件和名字繫結的技術,物件工廠負責生產出物件,這些物件都和惟一的名字繫結。外部程式可以通過名字來獲取對某個物件的引用。在一個檔案系統中,檔名被繫結給檔案。在DNS中,一個IP地址繫結一個URL。在目錄服務中,一個物件名被繫結給一個物件實體。

在Intranets(企業內部網)和Internates(網際網路)中目錄服務(Directory service)都非常重要,它規範了命名規則,讓人們容易理解實體及之間的關係。JNDI是Java平臺的一個標準擴充套件,提供了一組介面、類和關於名稱空間的概念。JNDI目前所支援的技術包括LDAP、CORBA Common Object Service(COS)名字服務、RMI、NDS、DNS、Windows登錄檔等等。

jndi被設計成獨立於特定的目錄服務,所以各種各樣的目錄都可以通過相同的方式進行訪問。這樣使用jndi的java程式設計師不僅可以獲得統一規整的命名和目錄,而且可以通過多層的命名方案無縫訪問(seamless acess)目錄物件。

4.資料來源與資料庫連線池關係?

答:我們通過第三方工具來使用資料來源來實現對資料庫資料操作。一個數據庫連線池可以給它建立多個數據源,如一個人有別名;如果單純使用jdbc連線資料庫是web容器你要什麼就去連什麼。這樣做沒人看不耗記憶體,量大了你就宕機。可以這樣理解,資料來源表示一個與資料庫的連線(傳統)或者表示很多與資料庫的連線(使用資料庫連線池)。資料來源是用於訪問連線池或多池的JNDI物件,多池的主要目的是提高可用性和在一組連線池間實現負載均衡。

5.資料來源與jndi關係?

答:資料來源是在JDBC 2.0中引入的一個概念。在JDBC 2.0擴充套件包中定義了javax.sql.DataSource介面來描述這個概念。如果使用者希望建立一個數據庫連線,通過查詢在JNDI服務中的資料來源,可以從資料來源中獲取相應的資料庫連線。這樣使用者就只需要提供一個邏輯名稱(Logic Name),而不是資料庫登入的具體細節。即DataSource採用Java的JNDI技術,來獲得DataSource物件的引用。當然各種web容器把DataSource作為一種可以配置的JNDI資源來處理如tomcat。生成DataSource物件的工廠為org.apache.commons.dbcp.BasicDataSourceFactory。

6.jdbc基礎

答:java database connectivity standard 是一套規範的面向應用程式的介面,通過它可以訪問各類關係資料庫。各個資料庫會實現該介面作為驅動如jtds.jar,當然可以自己寫實現。

jdbc是低階api,提供訪問資料庫的介面,是構建高階api的基礎,利用純java編寫可以在任何作業系統任何java環境下工作。JDBC API 中定義了一些Java類分別用來表示與資料庫的連線(connections), SQL語句(SQL statements), 結果集(result sets)以及其它的資料庫物件, 使得Java程式能方便地與資料庫互動並處理所得的結果。

使用JDBC, 所有Java程式(包括Java applications , applets和servlet)都能通過SQL語句或儲存在資料庫中的過程(stored procedures)來存取資料庫。要通過JDBC來存取某一特定的資料庫,必須有相應的JDBC driver,它往往是由生產資料庫的廠家提供,是連線JDBC API與具體資料庫之間的橋樑。JDBC driver 是用於特定資料庫的一套實施了JDBC介面的類集。

簡單的說,jdbc可以做三件事:與資料庫建立連線,傳送sql語句,處理結果。jdbc可以理解為odbc的純java語言和麵向物件的實現。

7.資料庫訪問方法?

答:在ASP中可以通過三種方式訪問資料庫: 
1、IDC(Internet Database Connector)方式; 
2、ADO(ActiveX Data Objects)方式; 
3、RDS(Remote Data Service)方式。 
        在jsp中訪問資料庫常用:
1、JDBC-ODBC橋接器;
2、特定資料庫的jdbc驅動直接連線資料庫;
3、經過池化維護一定量的連線數目,用jndi去訪問資料來源對應池獲取連線;

**************************************************************************************資料庫是一個數據的工廠,可以理解成產品的生產廠家,

如果你從廠家租用東西,廠家就馬上找人開工,啟動裝置,等生產好之後,發貨給你。當然整個生產過程需要比較長的時間。

資料來源,是一個產品代理倉庫,代理那裡原來就有一些生產好的產品了,所以你從代理獲取產品,可以馬上就得到。當然代理的倉庫也是有大小限制的。

無論哪種情況,你用完了某個產品,記得要歸還哦。
**************************************************************************************ODBC(Open DataBase Conectivity)是微軟公司制定的標準程式設計介面,只要有相應的ODBC驅動程式,就可以通過ODBC連結操作各種不同的資料庫。通常通過控制面板中的ODBC Data Source來配置ODBC的資料來源。所謂ODBC資料來源就是命名的一組資訊,包括需要連結的資料庫所在位置(可以是磁碟目錄/檔案,也可以是網路伺服器)、對應的ODBC驅動程式以及訪問資料庫所需的其他相關資訊,使用者可以通過資料來源的名稱(DSNs,Data Source Names)來指定所需的ODBC連線。 
DSNs按照其儲存方式和作用範圍分為三種:使用者DSN、系統DSN和檔案DSN。每個檔案DSN儲存在單獨的一個檔案中,檔案可以在網路範圍內共享;使用者DSN儲存在登錄檔中,只對當前使用者可見;系統DSN頁儲存在登錄檔中,但對系統中的所有使用者可見。使用者DSN和系統DSN的區別在於,使用者DSN儲存在登錄檔的HKEY_CURRENT_USER下,而系統DSN儲存在HKEY_LOCAL_MACHINE下。 
假定我們要連線的資料庫是Access97的c:\test\auto.mdb(注意:用較新的ADO連線Access資料庫效率更高,這裡只是作為一個例子),資料來源的名稱為CenterAuto,那麼可以分為兩個步驟: 
(1)註冊DSN本身的資訊: 
(2)登記資料來源: 
具體看這裡http://www.ahetc.gov.cn/cit/200106/07.doc

**************************************************************************************資料來源是一個泛指,ds與db不同

相關推薦

資料庫資料來源區別

jdbc基礎1.什麼是資料來源?答:資料來源定義的是連線到實際資料庫的一條路徑而已,資料來源中並無真正的資料,它僅僅記錄的是你連線到哪個資料庫,以及如何連線的,如odbc資料來源。也就是說資料來源僅僅是資料庫的連線名稱,一個數據庫可以有多個數據源連線。                             

SpringBoot:Oracle 11g資料庫Oracle 12c資料庫配置資料來源區別

使用application.yml配置 oracle 11g資料來源   oracle:    driver-class-name: oracle.jdbc.driver.OracleDriver   url: jdbc:oracle:t

jsp資料庫(二、使用連線池資料來源連線資料庫

一、介紹 1、資料來源,是當前Web應用開發中獲取資料庫連線的首選方法。使用資料來源這種技術,應用程式在啟動時只需建立少量的連線物件即可 2、連線池與定義了一些連線,當應用程式需要連線物件時就從連線池中取出一個,當連線物件使用完畢將其放回連線池,從而避免在每次請求連線時都要建立連線物件

關係資料庫非關係資料庫區別

當前主流的關係型資料庫有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。 非關係型資料庫有 NoSql、Cloudant。 nosql和關係型資料庫比較? 優點: 1)成本:nosql資料庫簡單易部署,基本都是

Oracle資料庫總結(七)--varcharvarchar2區別

varchar  -- 存放定長的字元資料,最長2000個字元; varchar2 -- 存放可變長字元資料,最大長度為4000字元。    目前沒有本質的區別  但是:varchar2是oracle提供的獨特的資料型別oracle保證在任何版本

關係型資料庫非關係型資料庫(Nosql)的區別於使用場景

個人理解: 如果資料量較小,那麼使用關係型資料庫即可,因為這個時候讀寫的IO瓶頸顯現不出來。如果資料量較大,這時,可能對於關係型資料庫(如mysql)來說,單表的大小就可以達到幾GB,這時K-V儲存的非關係型資料庫的優勢就體現出來了。一般來說,現在的網際網路公司,傾向於使用Nosql作為快取,儲

資料庫連線池資料來源

連線池: 連線池是用來管理池中的連線物件。 連線池自動分配連線物件並對閒置的連線進行回收。 連線池中的連線物件是由資料來源(DataSource)建立的。 連線池(Connection Pool)用來管理連線(Connection)物件。 資料來源: 資料來源(DataSource)用來連線資料

關係型資料庫非關係型資料庫區別和介紹

什麼是關係型資料庫? 關係型資料庫是依據關係模型來建立的資料庫。 所謂關係模型就是“一對一、一對多、多對多”等關係模型,關係模型就是指二維表格模型,因而一個關係型資料庫就是由二維表及其之間的聯絡組成的一個數據組織。 關係型資料可以很好地儲存一些關係模型的資料,比如一個老

資料庫 資料倉庫 區別

資料庫與資料倉庫的區別 瞭解資料庫與資料倉庫的區別之前,首先掌握三個概念。資料庫軟體、資料庫、資料倉庫。 資料庫軟體:是一種軟體,可以看得見,可以操作。用來實現資料庫邏輯功能。屬於物理層。 資料庫:是一種邏輯概念,用來存放資料的倉庫。通過資料庫軟體來實現。資料庫由很

關係型非關係型資料庫之間的區別

一、關係型資料庫     關係型資料庫,是指採用了關係模型來組織資料的資料庫。     簡單來說,關係模型指的就是二維表格模型,而一個關係型資料庫就是由二維表及其之間的聯絡所組成的一個數據組織。關係型資料庫,是建立在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理

淺析oracle資料庫MYSQL資料庫語法區別

Mysql資料庫之SQL語句轉化為ORACLE資料庫之SQL語句的操作1.淺析兩者SQL語句之不同1.1.建表語句之不同Mysql 資料庫在建立表時,表名,欄位名用使用單引號標記;ORACLE資料庫在建立表時,表名,欄位名使用雙引號標記;如以下語句:Mysql: create

資料庫 資料倉庫的本質區別

資料庫 與 資料倉庫 資料庫:傳統的關係型資料庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。 資料倉庫:資料倉庫系統的主要應用主要是OLAP(On-Line Analytical Processing),支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。 我嘗

關係型資料庫非關係型資料庫的對比分析(優缺點,應用,區別等)

當前主流的關係型資料庫有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。 非關係型資料庫有 NoSql、Cloudant。 ==========================優缺點分析如下=======

lucene全文檢索資料庫檢索的區別

1.效能 資料庫:like檢索(會把表中資料進行一行一行的掃描,)效能慢 Lucene檢索:先把資料那過來建立檢索,然後在根據建立的索引進行查詢,這樣的話我們需要多維護一份索引表。多一個建立索引的過程

系型資料庫 非關係型資料庫區別

當前主流的關係型資料庫有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。 非關係型資料庫有 NoSql、Cloudant、MongoDb、redis、HBase等 一、關係型資料庫 1.概念  關係型資料

oracle資料庫例項的區別聯絡

本文參考相關部落格與文件,對oracle資料庫和例項做一個總結。oracle資料庫與例項是兩個截然不同的概念,這一點與其他關係型資料庫區別很大。簡單來講,例項是資料庫的一個快照;打個比喻,資料庫就是一個相片底片,例項就是相紙,一個底片可以衝多個相紙,但一張相紙最多衝一個底片。

資料庫資料倉庫的區別

資料庫:傳統的關係型資料庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。 資料倉庫:資料倉庫系統的主要應用主要是OLAP(On-Line Analytical Processing),支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。 我嘗試著再補充些具體的事例來說明,這樣更可以幫助大

sql(join中onwhere區別) / NVL函式 / oracle儲存過程中is和as區別 / JAVA呼叫資料庫儲存過程

left join :左連線,返回左表中所有的記錄以及右表中連線欄位相等的記錄。 right join :右連線,返回右表中所有的記錄以及左表中連線欄位相等的記錄。 inner join: 內連線,又叫等值連線,只返回兩個表中連線欄位相等的行。 full join:外連線,返回兩個表中的行:left jo

Hive定義、HiveHBase關係、HiveRDBMS的關係、資料庫資料倉庫的區別

1、Hive定義 Hive 是建立在 Hadoop 上的資料倉庫基礎構架。它提供了一系列的工具,可以用來進行資料提取轉化載入(ETL),這是一種可以儲存、查詢和分析儲存在 Hadoop 中的大規模資料的機制。Hive 定義了簡單的類 SQL 查詢語言,稱為 HQL,它允許熟

MySQL資料庫NoSQL資料庫區別

NoSQL與關係型資料庫設計理念比較   關係型資料庫中的表都是儲存一些格式化的資料結構,每個元組欄位的組成都一樣,即使不是每個元組都需要所有的欄位,但資料庫會為每個元組分配所有的欄位,這樣的結構可以便於表與表之間進行連線等操作,但從另一個角度來說它也是關係型資料庫效能瓶頸