當前位置:首頁 » 操作系統 » 資料庫引擎開發

資料庫引擎開發

發布時間: 2023-01-01 07:09:05

⑴ 什麼是資料庫引擎

1、引擎(engine)能夠決定程序管理和數據操作的程序或程序段。資料庫引擎就是操作資料庫的一段程序或程序段。 比如:在VB中,用microsoft jet資料庫引擎和數據訪問對象DAO(data access object)可以創建功能強大的客戶/伺服器應用程序。2、面試題吧,ADO、ODBC、MICROSOFT JET都是,ASP不是。

⑵ 資料庫(mysql)關鍵知識

Mysql是目前互聯網使用最廣的關系資料庫,關系資料庫的本質是將問題分解為多個分類然後通過關系來查詢。 一個經典的問題是用戶借書,三張表,一個用戶,一個書,一個借書的關系表。當需要查詢某個用戶借書情況或者是書被那些人借了,就用關系查詢來實現。

關系資料庫範式

來自英文Normal form,簡稱NF。要想設計—個好的關系,必須使關系滿足一定的約束條件,滿足這些規范的資料庫是簡潔的、結構明晰的,同時,不會發生插入(insert)、刪除(delete)和更新(update)操作異常。總共有六種範式:第一範式(1NF)、第二範式(2NF)、 第三範式 (3NF)、巴斯-科德範式(BCNF)、 第四範式 (4NF)和 第五範式 (5NF,又稱完美範式)。

1NF是指資料庫表的每一列都是不可分割的原子數據項。2NF必須滿足1NF,要求資料庫表中的每行記錄必須可以被唯一地區分。3NF在2NF基礎上,任何非主 屬性 不依賴於其它非主屬性(在2NF基礎上消除傳遞依賴)。BCNF是在3NF基礎上,任何非主屬性不能對主鍵子集依賴(在3NF基礎上消除對主碼子集的依賴), 滿足BCNF不再會有任何由於函數依賴導致的異常,但是我們還可能會遇到由於多值依賴導致的異常。4NF的定義很簡單:已經是BC範式,並且不包含多值依賴關系。5NF處理的是無損連接問題,這個範式基本沒有實際意義,因為無損連接很少出現,而且難以察覺。而域鍵範式試圖定義一個終極範式,該範式考慮所有的依賴和約束類型,但是實用價值也是最小的,只存在理論研究中。

Catalog和Schema

是資料庫對象命名空間中的層次,主要用來解決命名沖突的問題。從概念上說,一個資料庫系統包含多個Catalog,每個Catalog又包含多個Schema,而每個Schema又包含多個資料庫對象(表、視圖、欄位等)。但是Mysql的資料庫名就是Schema,不支持Catalog。

Mysql的資料庫引擎主要有兩種MyISAM和InnoDB,MyISAM支持全文檢索,InnoDB支持事務。

SQL中的通配符『%』代表任意字元出現任意次數。『_』代表任意字元出現一次。SQL與正則表達式結合查詢一般用在WHERE table_name REGEXP '^12.34'。子查詢是從里到外執行。

資料庫聯結(join)涉及到外鍵,外鍵是指一個表的列是另一個表的主鍵,那麼它就是外鍵。笛卡爾積聯結(不指定聯結條件時)生成的記錄條目是單純的第一個表的行乘以第二個表的列數。用得最多的是等值聯結也叫內部聯結。

高級聯結還有自連接,是指查詢中的兩張表是同一張表,它通常作為外部語句用來代替從相同表中檢索數據時使用的子查詢。自然聯結使每個列只返回一次。外部聯結是指聯結包含了那些在相關表中沒有關聯行的行。例如列出所有產品及其訂購數量,包括沒有人訂購的產品。LEFT OUTER JOIN指選擇左邊表的所有行。

組合查詢是指採用UNION等將兩個查詢結果取並集。

視圖是查看存儲在別處的數據的一種工具,它本身並不包含數據,因此表的數據修改了,視圖返回的數據也將隨之修改,因此如果使用了復雜或嵌套視圖會對性能有較大的影響。視圖的作用之一是隱藏復雜的SQL通常會涉及到聯結查詢。

存儲過程類似於批處理,包含了一條或多條SQL語句。語法:

CREATE PROCEDURE name()
BEGIN
SQL
END
-------------------------
CALL name()//來調用存儲過程

游標有DECLARE定義,游標與存儲過程是綁定的,存儲過程處理完成,游標就會消失。游標被打開後可以使用FETCH語句訪問每一行。

觸發器是在某個時間發生時自動執行某條SQL語句。語法:
CREATE TRIGGER name AFTER INSERT ON talbe_name FOR EACH ROW

事務處理可以維護資料庫的完整性,保證批量的操作要麼完全執行,要麼完全不執行。包括事務、回退、提交、保留點幾個關鍵術語。ROLLBACK只能在一個事務處理內使用。他不能回退CREATE和DROP操作。使用COMMIT保證事務提交。復雜的事務處理需要部分提交或回退,因此我們需要使用保留點SAVEPOINT。可以使用ROLLBACK TO savepoint_name。保留點越多越好。保留點在事務執行完成後自動釋放。

⑶ 空間資料庫引擎ArcSDE

空間資料庫引擎:ArcSDE9.0(arc spatial database engine);此軟體被用作系統後台(Server),其優勢在於能按照用戶需求合理地管理大規模甚至超大規模的空間資料庫,為系統前端提供高效的空間數據和復雜的空間分析服務。

選擇空間資料庫引擎SDE作為空間資料庫管理系統,是一套管理空間數據並提供訪問這些數據介面的軟體,通過ArcSDE可以把地理空間數據應用到商用的關系型資料庫中,SDE融入DBMS後,提供了對空間數據進行高效率操作的介面,大量用戶可以同時針對同一數據進行操作,更重要的是ArcSDE客戶和伺服器之間的通訊建立在TCP/IP協議上,這使得ArcSDE不但能滿足區域網的應用,而且能滿足遠程網的應用。

通過ArcSDE,能夠管理具有數百萬空間要素的大型空間數據集。ArcSDE對各級企業均能適用,這歸功於其在客戶與伺服器間協同處理。ArcSDE通過TCP/IP協議,提供網路上的開放數據訪問;同時,ArcSDE可運行在不同的操作系統環境中,如UNIX,Microsoft Windows的客戶端與伺服器端。

為了實現以關系資料庫管理系統(Oracle)為基礎的空間數據管理,需要使用空間資料庫引擎。良好的空間資料庫引擎能夠為資料庫的應用系統開發提供高性能的支持。ESRI公司的ArcSDE for Or-acle 是一個基於Oracle的空間資料庫引擎,它的空間數據管理高效而穩定,將作為本項目綜合資料庫的必須軟體產品之一。其特點:

(1)對地理數據的開放式系統訪問

ArcSDE利用開放系統結構,使得地理數據易於獲得,可以把地理數據的管理與使用同其他傳統的多媒體資料庫合並到一個平滑的計算機環境中。利用ArcSDE的開放性,用戶可以進行從簡單到復雜的空間數據分析,從幾個到許多地理特徵的提取,訪問超大規模的資料庫,高效完成各種復雜任務。

(2)進行高效查詢分析

ArcSDE提供一組可靠的幾何處理與空間分析功能,通過此功能確定各地理實體間的相互關系,如相交於一點、共一條邊界、共一個區域或一個實體包含另一個實體。而且還可以把空間分析嵌入到一個非GIS的應用程序中去。

(3)理想的空間對象模型

ArcSDE把線特徵表示成一條不能自相交的線,或只能在終點相交的線;面特徵表示成一個簡單的多邊形或多邊形組合。空間對象類型有點、點集、串、線串、環、多邊形、環紋多邊形(donut polygon)以及網路數據,一個組合數據集稱為一個層。層是具有相同形式對象類型的一組地理特徵,地理特徵通過圖層這種空間連續策略進行索引,提高數據管理效率。

(4)快速實現過程

ArcSDE對於復雜空間查詢的處理的效率體現在對次要特徵(Subsecond Feature)的檢索上,快速訪問與檢索是在C/S模式上實現的,客戶端主要是響應空間分析操作,伺服器則進行數據搜索和檢索。這種互操作處理方法使得動態空間疊加成為可能,當大量增加客戶端的時候,利用這種處理可以把客戶機帶來的性能下降降到最小。

(5)其他

客戶端可以通過TCP/IP協議訪問Arc/Info數據,不用通過傳統的直接掛到資料庫所在的磁碟上進行訪問,這樣系統就可以建立在廣域網上,數據分布將不受地域限制。同時允許將一部分數據放在RDBMS中,另一部分數據以傳統Arc/Info數據格式保存。而客戶端的應用將以同一種方式進行訪問,即數據源的不同對客戶而言是完全透明的。

ArcSDE本身並沒有專用資料庫,而是通過與其他通用的DBMS的集成來管理空間數據。根據DBMS的類型,ArcSDE與DBMS的集成可分為兩種:①與傳統的關系型資料庫管理系統(RDBMS)的集成,由於傳統的RDBMS不支持數據類型的擴展,無法管理空間數據,只能通過ArcSDE對空間數據和空間操作進行解釋和管理。②與面向對象關系資料庫(OORDMS)的集成。由於面向對象的關系支持新的數據類型和函數的擴展,ArcSDE可以直接在資料庫中定義空間數據類型和空間函數。於是可以通過基於SQL的函數對空間數據進行操作,並在資料庫層次建立空間索引。

⑷ SQL 的資料庫引擎,Analysis Services ,Reporting Services ,Integration Service 有什麼區別

Analysis Services:
Analysis Services 提供了一組豐富的數據挖掘演算法,業務用戶可使用這組演算法挖掘其數據以查找特定的模式和走向。這些數據挖掘演算法可用於通過 UDM 或直接基於物理數據存儲區對數據進行分析。
Microsoft SQL Server 2005 Analysis Services (SSAS) 為商業智能解決方案提供聯機分析處理 (OLAP) 和數據挖掘功能。在使用 Analysis Services 設計商業智能解決方案之前,您應當熟悉成功的解決方案所必需的 OLAP 和數據挖掘概念。Analysis Services 通過允許開發人員在一個或多個物理數據源中定義一個稱為統一維度模型 (UDM) 的數據模型,從而很好的組合了傳統的基於 OLAP 分析和基於關系報表的各個最佳方面。基於 OLAP、報表以及自定義 BI 應用程序的所有最終用戶查詢都將通過 UDM(可提供一個此關系數據的業務視圖)訪問基礎數據源中的數據。

Reporting Services:
Microsoft SQL Server Reporting Services 是一種基於伺服器的新型報表平台,可用於創建和管理包含來自關系數據源和多維數據源的數據的表格報表、矩陣報表、圖形報表和自由格式報表。可以通過基於 Web 的連接來查看和管理您創建的報表。

Integration Service:
是微軟的一個智能解決方案,通俗點和ASP.NET程序差不多,它也設計了很多的類似控制項的東西,不過叫任務,這些任務的主要功能是將數據從數據源轉到數據目的,中間也會有查詢,聚合等等更加具體的任務。

⑸ android開發怎麼存儲數據

Android平台開發過程中,進行數據存儲的方式有五種,一下是這五種數據存儲的總結:

第一種:使用SharedPreferences存儲數據

適用范圍:保存少量的數據,且這些數據的格式非常簡單:字元串型、基本類型的值。比如應用程序的各種配置信息(如是否打開音效、是否使用震動效果、小游戲的玩家積分等),解鎖口 令密碼等

核心原理:保存基於XML文件存儲的key-value鍵值對數據,通常用來存儲一些簡單的配置信息。通過DDMS的File Explorer面板,展開文件瀏覽樹,很明顯SharedPreferences數據總是存儲在/data/data/<package name>/shared_prefs目錄下。SharedPreferences對象本身只能獲取數據而不支持存儲和修改,存儲修改是通過SharedPreferences.edit()獲取的內部介面Editor對象實現。SharedPreferences本身是一 個介面,程序無法直接創建SharedPreferences實例,只能通過Context提供的getSharedPreferences(String name, int mode)方法來獲取SharedPreferences實例,該方法中name表示要操作的xml文件名,第二個參數具體如下:

Context.MODE_PRIVATE: 指定該SharedPreferences數據只能被本應用程序讀、寫。

Context.MODE_WORLD_READABLE:指定該SharedPreferences數據能被其他應用程序讀,但不能寫。

Context.MODE_WORLD_WRITEABLE:指定該SharedPreferences數據能被其他應用程序讀,寫

Editor有如下主要重要方法:

SharedPreferences.Editor clear():清空SharedPreferences里所有數據

SharedPreferences.Editor putXxx(String key , xxx value):向SharedPreferences存入指定key對應的數據,其中xxx 可以是boolean,float,int等各種基本類型據

SharedPreferences.Editor remove():刪除SharedPreferences中指定key對應的數據項

boolean commit():當Editor編輯完成後,使用該方法提交修改

實際案例:運行界面如下

Android sqlite3資料庫管理工具

Android SDK的tools目錄下提供了一個sqlite3.exe工具,這是一個簡單的sqlite資料庫管理工具。開發者可以方便的使用其對sqlite資料庫進行命令行的操作。

程序運行生成的*.db文件一般位於"/data/data/項目名(包括所處包名)/databases/*.db",因此要對資料庫文件進行操作需要先找到資料庫文件:

1、進入shell 命令

adb shell

2、找到資料庫文件

#cd data/data
#ls --列出所有項目
#cd project_name --進入所需項目名
#cd databases
#ls --列出現寸的資料庫文件

3、進入資料庫

#sqlite3 test_db --進入所需資料庫

會出現類似如下字樣:

SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

至此,可對資料庫進行sql操作。

4、sqlite常用命令

>.databases --產看當前資料庫
>.tables --查看當前資料庫中的表
>.help --sqlite3幫助
>.schema --各個表的生成語句

以上便是android開發存儲數據的五種方法!

⑹ 資料庫引擎 什麼是資料庫引擎。誰能詳細介紹一下

每種資料庫的數據格式,內部實現機制都是不同的,
要利用一種開發工具訪問一種資料庫,就必須通過一種中介程序,
這種開發工具與資料庫之間的中介程序就叫資料庫引擎。

⑺ 利用Delphi開發網路資料庫應用

Delphi 是具可視化界面的面向對象編程語言 它以其功能強大 簡便易用等諸多特性 深受編程人員的歡迎 Delphi 中提供了資料庫引擎 BDE(Borland Database Engine) 並內含眾多的資料庫調用構件 為編程人員開發客戶/伺服器應用程序提供了方便 通常情況下 利用 Delphi 開發資料庫應用程序 可以使用TTable TDataSource TDBEdit TDBNavigator等構件 只要正確設置了構件的某些屬性 再編寫必要的程序代碼對一些特定事件進行處理 就能夠完成對多種資料庫進行的數據處理 例如 記錄的輸入 修改 刪除和查詢等 這樣做雖然只需要編寫極少量的程序代碼就能達到很好的效果 但如果在程序設計過程中 某些數據表的結構發生了改變 則必須修改與此數據表有關的所有構件的屬性 這將使程序員陷入繁瑣的重復勞動中

為避免上述的麻煩 我們可以在編寫網路資料庫應用程序時採用結構化查詢語言 SQL(Structured Query Language) 這樣不僅可以更方便地與諸如 SQL Server Oracle 等各種後台資料庫進行動態的數據交換 而且可以使程序的修改和移植更加靈活 我們以數據輸入模塊為例 說明開發客戶/伺服器應用程序時如何採用 SQL 語句實現數據處理功能 首先 判斷是否已經有事務處理程序在運行 如果有 將其回卷(rollback) 如果沒有 則啟動一個新的事務 為數據的最終處理做准備 其次 是設置 SQL 語句 並將其寫入 TQuery 構件中 最後 將事務提交或回卷 至此完成一條記錄的數據輸入

下面是以頁面中的 TEdit 類型編輯框內容作為數據源 向資料庫輸入記錄的過程代碼

procere DataInsert(const qName:TQuery; szDBName:string;iNum:Integer; iMark:array of Integer;eName:array of TEdit); var i : Integer; szSQL : string; begin if DataMole DataBase InTransaction=true then DataMole DataBase RollBack; DataMole DataBase StartTransaction; szSQL := INSERT INTO +szDBName+ VALUES( for i:= to iNum do begin if iMark[i]= then szSQL := szSQL+eName[i] Text {非字元方式} else szSQL := szSQL+ +eName[i] Text+ ; {字元方式} if i=iNum then szSQL := szSQL+ ) else szSQL := szSQL+ ; end; qName Close; {關閉查詢} qName SQL Clear; {清SQL特性內容} qName SQL ADD(szSQL); {添加SQL內容} szSQL := SELECT * FROM +szDBName; qName SQL ADD(szSQL); qName Open; {返回結果集} DataMole DataBase Commit; end; 以上過程包含五個參數 實現從頁面中的一系列編輯框中讀取數據 並向指定數據表輸入的功能 其中 參數 qName 為頁面中所使用的 TQuery 類構件的名稱 參數 szDBName 是數據表的名稱 參數eName 是 TEdit 類型的數組 列出了頁面中包含數據的各編輯框名稱 參數 iNum 是數據表中的欄位個數 也即編輯框的個數 參數 iMark 是一個整數類型的數組 該參數表明相應欄位是以何種方式輸入的 如果是字元方式 需要在數據前後兩端加上引號 需要注意的是 在調用本過程之前 應將資料庫連接打開

DataMole DataBase Connected := true;

過程調用完成後 將資料庫連接斷開 DataMole DataBase Connected := false; 另外 開發網路資料庫應用程序時 還可以使用存儲過程 即 將預先編譯過的 SQL 語句存儲在伺服器上 存儲過程提前運行 且不與程序代碼一同存儲和編譯 因此其對應主程序中的代碼相對簡潔 運行速度也較快 SQL 語句的集中存放 使其修改更容易

要創建向數據表中輸入數據的存儲過程 代碼編寫舉例如下

CREATE PROC ProcTest @inttest *** allint @strtest char( ) output AS INSERT INTO TEST_User TRANS_TEST VALUES(@inttest @strtest) SELECT @strtest * FROM TEST_User TRANS_TEST 以上代碼向數據表 TEST_User TRANS_TEST 添加數據 該數據表包括兩個欄位 第一個欄位為 *** allint 類型的數據 參數類型定為 Input(在存儲過程中可預設) 第二個欄位數據為長度為 的字元類型 參數類型為 Output

其模塊程序的編寫與 DataInsert 過程相似 區別主要在於模塊的中間部分 對應的主要代碼如下

StoredProc Close; {關閉存儲過程} StoredProc Params[ ] ParamType := ptInput; {設置存儲過程的參數類型} StoredProc Params[ ] AsInteger := ; {設置存儲過程中參數的數據} StoredProc Params[ ] ParamType := ptOutput; StoredProc Params[ ] AsString := abcd ; StoredProc Open; {打開存儲過程} 其中 StoredProc 是 TStoredProc 類型的構件名稱 Params[ ] 是存儲過程中的第一個參數 對應存儲過程 ProcTest 可以用ParamByName( @inttest )代替 存儲過程的第二個參數與其類似

lishixin/Article/program/Delphi/201311/25067

熱點內容
php自帶函數 發布:2025-05-10 08:22:00 瀏覽:201
壬寅年癸卯月如何配置 發布:2025-05-10 08:21:20 瀏覽:585
https網站無法訪問 發布:2025-05-10 08:20:01 瀏覽:787
計算伺服器搭建 發布:2025-05-10 08:17:56 瀏覽:854
一個游戲伺服器怎麼開 發布:2025-05-10 08:14:33 瀏覽:576
一年級小孩起床解壓 發布:2025-05-10 08:13:57 瀏覽:70
安卓安全更新是什麼 發布:2025-05-10 08:13:54 瀏覽:664
vue圖片壓縮 發布:2025-05-10 08:13:11 瀏覽:401
飛騰伺服器什麼時候上市 發布:2025-05-10 08:08:18 瀏覽:275
安卓和蘋果平板如何用一個賬號 發布:2025-05-10 08:06:02 瀏覽:187