日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于ARM-Linux的SQLite嵌入式數(shù)據(jù)庫(kù)技術(shù)
基于ARM-Linux的SQLite嵌入式數(shù)據(jù)庫(kù)技術(shù)
 更新時(shí)間:2008-8-18 10:00:05  點(diǎn)擊數(shù):21
【字體: 字體顏色

摘要 首先,分析Linux下的常見數(shù)據(jù)庫(kù)技術(shù)。然后,指出嵌入式系統(tǒng)開發(fā)中對(duì)數(shù)據(jù)庫(kù)的需求特點(diǎn),論述SQLite嵌入式數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)和開發(fā)技術(shù)。最后,結(jié)合ARM Linux開發(fā)平臺(tái),講述具體的實(shí)現(xiàn)方法。

關(guān)鍵詞 嵌入式數(shù)據(jù)庫(kù) SQLite ARM Linux

引言
隨著嵌入式系統(tǒng)的廣泛應(yīng)用和用戶對(duì)數(shù)據(jù)處理和管理需求的不斷提高,各種智能設(shè)備和數(shù)據(jù)庫(kù)技術(shù)的緊密結(jié)合已經(jīng)得到了各方面的重視。不久的將來嵌入式數(shù)據(jù)庫(kù)將無處不在。縱觀目前國(guó)際、國(guó)內(nèi)嵌入式數(shù)據(jù)庫(kù)的應(yīng)用情況,目前基于嵌入式數(shù)據(jù)庫(kù)應(yīng)用的市場(chǎng)已經(jīng)進(jìn)入加速發(fā)展的階段。
1Linux 下常見的數(shù)據(jù)庫(kù)技術(shù)分析
基于Linux平臺(tái)的數(shù)據(jù)庫(kù)非常多,大型的商用數(shù)據(jù)庫(kù)有Oracle、Sybase、Informix、Informix、IBM DB2等;中小型的更是不勝枚舉,以下是常見的幾種。
(1) PostgreSQL
PostgreSQL是世界上最優(yōu)秀的開放源碼的數(shù)據(jù)庫(kù)之一,是完全免費(fèi)的數(shù)據(jù)庫(kù),不需要任何版權(quán)費(fèi)用和購(gòu)買費(fèi)。因此,它是許多Linux發(fā)行版本的首選,例如:Redhat、TurboLinux都預(yù)裝了PostgreSQL。 PostgreSQL兼容性很強(qiáng),如果是SQL92兼容的,移植PostgreSQL非常簡(jiǎn)單和快捷。
(2) MySQL
MySQL是多用戶、多進(jìn)程的SQL database server。MySQL包括一個(gè)server daemon(mysqld)和client programs與libraries的client/server實(shí)現(xiàn)工具;比較適合小而簡(jiǎn)單的數(shù)據(jù)庫(kù),對(duì)復(fù)雜的操作要求支持不是很好。MySQL的licensing policy:如果你是普通的最終用戶,使用MySQL不需要付錢;但如果是直接或間接地出售MySQL的服務(wù)程序或相關(guān)產(chǎn)品,或是在一些客戶端維護(hù)MySQL server并收取費(fèi)用,或是在發(fā)行版中包括MySQL,就需要獲得許可。

* 本課題是2003年河南省杰出人才創(chuàng)新基金項(xiàng)目(0321000300),獲得了河南省科技廳的資金支持。

(3) mSQL(mini SQL)
mSQL是一個(gè)單用戶數(shù)據(jù)庫(kù)管理系統(tǒng)。由于它的短小精悍,使其開發(fā)的應(yīng)用系統(tǒng)特別受到互聯(lián)網(wǎng)用戶青睞。mSQL并非是完全的freeware,若是在大學(xué)中使用此一軟件,或是為了學(xué)術(shù)研究與慈善等非營(yíng)利性目的,才能免費(fèi)得到使用權(quán)(free license),否則就得付費(fèi)注冊(cè)才能得到正式的版權(quán)。
(4) Berkeley DB
Berkeley DB是一個(gè)開放源代碼的嵌入式數(shù)據(jù)庫(kù)管理系統(tǒng),能夠?yàn)閼?yīng)用程序提供高性能的數(shù)據(jù)管理服務(wù)。應(yīng)用它,程序員只需要調(diào)用一些簡(jiǎn)單的API就可以完成對(duì)數(shù)據(jù)的訪問和管理。與常用的數(shù)據(jù)庫(kù)管理系統(tǒng)(如MySQL和Oracle等)有所不同,在Berkeley DB中并沒有數(shù)據(jù)庫(kù)服務(wù)器的概念。應(yīng)用程序不需要事先同數(shù)據(jù)庫(kù)服務(wù)建立起網(wǎng)絡(luò)連接,而是通過內(nèi)嵌在程序中的Berkeley DB函數(shù)庫(kù)來完成對(duì)數(shù)據(jù)的保存、查詢、修改和刪除等操作。
(5) SQLite
SQLite支持絕大多數(shù)標(biāo)準(zhǔn)的SQL92語(yǔ)句,采用單文件存放數(shù)據(jù)庫(kù),速度又比 MySQL快上1~2倍(官方的數(shù)據(jù)),存儲(chǔ)量也不是問題。在操作語(yǔ)句上更類似關(guān)系型數(shù)據(jù)庫(kù)的產(chǎn)品使用,非常方便。SQLite的版權(quán)允許無任何限制的應(yīng)用,包括商業(yè)性的產(chǎn)品。在PHP5中已經(jīng)集成了這個(gè)輕巧的嵌入式數(shù)據(jù)庫(kù)產(chǎn)品。
2嵌入式開發(fā)對(duì)數(shù)據(jù)庫(kù)的需求特點(diǎn)
在眾多的數(shù)據(jù)庫(kù)中,如何選擇適用于嵌入式系統(tǒng)的數(shù)據(jù)庫(kù)呢?嵌入式系統(tǒng)開發(fā)環(huán)境決定了其對(duì)數(shù)據(jù)庫(kù)需求的特點(diǎn)。
(1) 適當(dāng)?shù)捏w積
嵌入式系統(tǒng)對(duì)于數(shù)據(jù)的存儲(chǔ)與程序的運(yùn)行一般都有較強(qiáng)的空間限制,所以適用于嵌入式系統(tǒng)使用的數(shù)據(jù)庫(kù)首先應(yīng)該有一個(gè)適當(dāng)?shù)捏w積。
(2) 較強(qiáng)的功能
嵌入式開發(fā)中有很多應(yīng)用,用戶需求決定了開發(fā)中需要有一個(gè)大小適中且功能齊備的數(shù)據(jù)庫(kù)來實(shí)現(xiàn)對(duì)數(shù)據(jù)的管理。對(duì)開發(fā)人員來說,要求采用的數(shù)據(jù)庫(kù)技術(shù)提供完備開發(fā)的文檔而且易于開發(fā)。
(3) 開源的代碼
作為產(chǎn)品的開發(fā),開源的代碼不僅可以減少產(chǎn)品的生產(chǎn)成本,更重要的是為產(chǎn)品的維護(hù)完善和穩(wěn)定運(yùn)行都提供了最為徹底的解決手段。
上面介紹的數(shù)據(jù)庫(kù)技術(shù)中,Oracle、Sybase、Informix、IBM DB2等功能強(qiáng)大,系統(tǒng)體積龐大,要求付費(fèi)使用,僅適用于作為大型商業(yè)數(shù)據(jù)庫(kù)。MySQL在保持中等體積的情況下,提供了較為適用的功能已經(jīng)成為中小規(guī)模數(shù)據(jù)庫(kù)應(yīng)用的首選,但商業(yè)應(yīng)用也要收費(fèi),而且對(duì)于嵌入式開發(fā)來說空間占用仍然太大,目前還不適用。
mSQL是一種簡(jiǎn)化的SQL數(shù)據(jù)庫(kù),短小精悍,開發(fā)方便,適用于嵌入式開發(fā);但mSQL只有30天的使用期限,并非完全的開源。
余下的開放源碼數(shù)據(jù)庫(kù)中,PostgreSQL是Linux下最完善的開源SQL數(shù)據(jù)庫(kù),但體積也較大。Berkeley DB作為完全開源的嵌入式數(shù)據(jù)庫(kù)速度極快,可靠性高;但學(xué)習(xí)起來有一定難度,必然會(huì)加大開發(fā)成本。
SQLite則簡(jiǎn)單易用,速度也很快,同時(shí)提供了豐富的數(shù)據(jù)庫(kù)接口,功能雖較Berkeley DB略有遜色,但在開源社區(qū)的推動(dòng)下差距正在縮小。它的設(shè)計(jì)思想是小型、快速和最小化的管理。這對(duì)于需要一個(gè)數(shù)據(jù)庫(kù)用于存儲(chǔ)數(shù)據(jù),但又不想花太多時(shí)間來調(diào)整數(shù)據(jù)性能的開發(fā)人員很適用。實(shí)際上在很多情況下,并不需要存儲(chǔ)程序或復(fù)雜的表之間的關(guān)聯(lián)。這時(shí)會(huì)發(fā)現(xiàn)SQLite在大小和功能之間找到了一個(gè)理想的平衡點(diǎn)。完全的開源代碼使其可以稱得上是理想的“嵌入式數(shù)據(jù)庫(kù)”。
3SQLite的體系結(jié)構(gòu)及開發(fā)技術(shù)
SQLite是D·理查德·希普開發(fā)出來的用一個(gè)小型C庫(kù)實(shí)現(xiàn)的一種強(qiáng)有力的嵌入式關(guān)系數(shù)據(jù)庫(kù)管理體制。它提供了對(duì)SQL92的大多數(shù)支持:支持多表和索引、事務(wù)、視圖、觸發(fā)和一系列的用戶接口及驅(qū)動(dòng)。
這個(gè)庫(kù)有很強(qiáng)的內(nèi)聚性,通過不到25 000行的ANSI C代碼實(shí)現(xiàn),而且可以自由地應(yīng)用于任何目的甚至包括商業(yè)應(yīng)用。此外它還是高速、有效和可升級(jí)的,可以運(yùn)行于從ARM/ Linux到SPARC / Solaris的多種硬件平臺(tái)。
3.1體系結(jié)構(gòu)
圖1SQLite體系結(jié)構(gòu)SQLite 有一種優(yōu)雅、 標(biāo)準(zhǔn)化的設(shè)計(jì)。它可以分成8個(gè)主要子系統(tǒng),如圖1所示,其中有一些相當(dāng)接近于關(guān)系數(shù)據(jù)庫(kù)管理。
在圖1的頂層是標(biāo)記處理器(tokenizer)和分析器(parser)。SQLite有自己高度優(yōu)化的分析生成器(檸檬分析器),可以快速地生產(chǎn)出高效率的代碼,而且依靠它新穎的設(shè)計(jì)對(duì)內(nèi)存泄漏有著特別的抵抗力。
在底部是基于Knuth經(jīng)過優(yōu)化的B樹。這樣可以運(yùn)行在可調(diào)整的頁(yè)面緩沖(page cache)上,有助于將對(duì)磁盤的查找減到最小。
再往下是頁(yè)面高速緩存。它作用在OS的抽象層之上,這樣的安排有助于數(shù)據(jù)庫(kù)的移動(dòng)。
體系結(jié)構(gòu)的核心是虛擬數(shù)據(jù)庫(kù)引擎(VDBE)。VDBE完成與數(shù)據(jù)操作相關(guān)的全部操作并且是客戶和儲(chǔ)存之間信息進(jìn)行交換的中間單元。從各個(gè)方面來看,它都是SQLite的核心。在SQL語(yǔ)句被分析之后,VDBE開始起作用。代碼生成器將分析樹翻譯成一個(gè)袖珍程序,隨后這些袖珍程序又被組合成用VDBE的虛擬機(jī)器語(yǔ)言表示的一系列指令。如此往復(fù),VDBE執(zhí)行每條指令,最終完成SQL語(yǔ)句指定的查詢要求。

  • 上一篇: 電子系統(tǒng)EDA集成開發(fā)環(huán)境框架結(jié)構(gòu)
  • 下一篇: 新型 RFI/EMI 抑制電容器具有 500Vac 及 300Vac 的額定電壓
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1