小項目資料庫
① 小資料庫有哪些
Access,MSDE 2000,Embedded Firebird,sqlite等都是可以免費再分發(free redistributable)的資料庫。
相比而言,MSDE 2000 顯著缺點是需要安裝,最大優點是和伺服器端的 SQL Server 編程模型一致,開發便利。
Access的顯著缺點是功能較少,不支持事務等常用功能,最大優點是簡單、多數開發者都很熟悉,部署也很方便。
SQLite支持事務,也是一款單文件資料庫,比較不足的是 .NET Data Provider 還不是很成熟。
Firebird則同時具有:單文件、部署簡單不需安裝(只需 XCOPY 兩個文件)、支持事務、存儲過程、觸發器,.NET Data Provider比較穩定成熟等優點。
這個星球上的資料庫實在不勝枚舉,這里只列一些我接觸過的常見的。
可以稍微誇張點說,有交互的應用,起碼得用一下數據保存,即便是自定義結構的數據保存,還是最常見的INI、XML等,都可以算是「資料庫」,真正點的,如DBase系列、FoxBase、FoxPro、MSAccess、InterBase、MS SQL Server、Oracle、DB2等,這些是商業化的資料庫,前面幾個只能算是資料庫,後面幾個是RMDBS(關系型資料庫管理系統)。
對應商業化的,有開源的:SQLite、SimpleSQL、Berkely DB、Minosse、Firebird( 前身是是Borland公司的InterBase)、PostgreSQL、MySQL等。
□SQLite:大家可以看我的SQLite系列隨筆,C編寫的,可以跨操作平台,支持大部分ANSI SQL 92,它是嵌入式的輕量級關系形資料庫引擎,只需要一個DLL,體積為250k,資料庫也只是一個文件,零配置,便可工作。既然開源,你甚至可以把它嵌入你的程序中。核心開發人員只有一個,最近加入了另外一個,也就是2個人而已,實在佩服,目前發展到3.1.0,相當高效穩定,有開源驅動在sourceforge.net上有其ADO.NET Data Provider for SQLite :https://sourceforge.net/projects/adodotnetsqlite/ 。
□SimpleSQL:相對SQLite要大幾倍,但也是輕量級的,功能稍微強大一點,C++編寫,有OLE、java等版本。
□Berkely DB:C++編寫的大型關系型資料庫系統,還額外地支持XML(把XML當成資料庫),號稱2百萬的安裝量,MySQL也只不過號稱5百萬安裝量而已,跨平台。
□Minosse:純C#編寫的大型關系型資料庫系統,理想是超越MS SQL Server!最新版本:0.2.0,真難得,純Java寫的看得多了,純C#的,不是移植別人的,還是第一個,佩服作者:包含C/S和嵌入式版本,並可跨越大部分平台,因為它不用Windows的東西,可以在Mono下編譯。
□Firebird:這個東西太牛了,目前有1.5穩定版本已經擁有大量特性,完全支持ANSI SQL92、98等,一些超酷的特性讓人瘋狂(1.0特性、1.5特性,從這里開始研究),主要開發人員是一個俄羅斯人,目前開發隊伍已經擴大到近100人,有3種模式,單機獨立,典型C/S,超級伺服器。2.0版本和3.0版本將在近期推出,看完其路線圖(2.0、3.0)你就會瘋掉。有.NET驅動,目前是1.7beta版。主要特性:
◆A.C.I.D;
◆MGA(任何版本的引擎都可以處理同一資料庫記錄);
◆PSQL(存儲過程)超級強大,ms sql相對的太次,它啥都能在伺服器端實現並推送到客戶端成為強大的報表,存儲過程;
◆觸發器都可以在客戶端獲取監控追蹤;
◆自動只讀模式;
◆創新的事務保證絕對不會出錯;
◆24*7運行中仍然可以隨時備份資料庫;
◆統一觸發器:任何操作都可以讓某表唯一的觸發器來總控;
◆大部分語言都可以寫plug-in,並直接在存儲過程中調用函數;
◆c->c++,更加少的代碼但更加快的速度;
◆3種運行模式,甚至可以嵌入式;
◆主流語言都可以調用它;
◆動態sql執行;
◆事務保存點;
□PostgreSQL:POSTGRES資料庫的後開源版本,號稱擁有任何其他資料庫沒有的大量新特性,似乎目標是要做超大型的OO關系型資料庫系統,目前已經發展到8.0,有.NET驅動,中文官方網站有詳細介紹。
□MySQL:這個,不用說了吧?號稱全球最受歡迎的開源資料庫,但讓我奇怪的是,PostgreSQL都有簡體中文的支持:包括內核、管理工具、QA等等,在最新版本MySQL中,我卻沒有發現... ,有.NET驅動,其中MySQL Connector/Net就是原來在sf.net上的ByteFX.Data項目,作者已經加入了MySQL團隊,參看《感慨 20 之開源的前途/錢圖?(1資料庫)》。
======================================================
最近在學習 Firebird Embeded Database。作為一款單文件型小型資料庫,Firebird 具有很多吸引人的特徵,比如支持事務、支持存儲過程、觸發器等,而且 Embeded 版本的 Firebird 在 .NET 開發中只需要拷貝兩個文件:一個 fbembed.dll (非託管但不需要注冊的動態鏈接庫)和一個 ADO.NET Data Provider 的 FirebirdSql.Data.Firebird.dll。這些特徵都非常適合那些需要在客戶端存儲一些數據,但又不想安裝資料庫(比如MSDE)軟體的情形。
據稱,在國外,需要使用客戶端資料庫的情況中,有30%左右的開發者選擇Access,有30%的開發者選擇MSDE 2000,有30%的開發者選擇Embedded Firebird,剩餘10%選擇其他小型資料庫,如SQLite,MySQL 等。
上面所說的Access,MSDE 2000,Embedded Firebird,SQLite等都是可以免費再分發(free redistributable)的資料庫。相比而言,MSDE 2000 顯著缺點是需要安裝,最大優點是和伺服器端的 SQL Server 編程模型一致,開發便利。Access的顯著缺點是功能較少,不支持事務等常用功能,最大優點是簡單、多數開發者都很熟悉,部署也很方便。SQLite支持事務,也是一款單文件資料庫,比較不足的是 .NET Data Provider 還不是很成熟。Firebird則同時具有:單文件、部署簡單不需安裝(只需 XCOPY 兩個文件)、支持事務、存儲過程、觸發器,.NET Data Provider比較穩定成熟等優點。
Firebird 本身有SuperServer和Embedded版本之分,後者只能本機訪問,不接受TCP連接。對於開發者而言,從Embedded資料庫切換到SuperServer,只需更改資料庫連接串中的ServerType值就行。
但是,在你正式決定使用?Firebird 之前,請你注意下面這個 known issue(已知問題): Firebird 資料庫文件不能放置在含有中文等字元的路徑中。Firebird 的文件名不可以用中文字元,所在路徑的任何部分如果含有中文字元,都將無法訪問到資料庫。舉個例子,中文Windows桌面所在的目錄一般是「C:\Documents and Settings\用戶名\桌面」,如果資料庫文件放置在桌面上,就無法訪問到。當然,Firebird 內部是可以存儲中文字元的,因為它支持 GB2312 和 UNICODE 等字元集。
需要注意一點,連接串中的 Database 地址如果使用相對路徑,請一定注意這個相對路徑是相對於 fbembed.dll 所在目錄的。
② 一般做項目採用哪種資料庫好哪種用起來方面,功能齊全
用SQLServer或者MS Access都可以,關鍵看你的數據量大不大。如果大,就用SQLServer,小就用Access。
如果客戶出去做外勤需要直接連接公司的資料庫,查看並錄入資料,那麼你就要用ASP.NET去寫一個WEB網站,通過IIS發布到Internet。如果像你說的,外勤小組回來公司後再將數據傳到公司的伺服器裡面,那麼就不需要了,用C#寫Windows AP程序也可以。
以上兩種情況客戶都不需要在電腦上安裝SQLServer。因為資料庫伺服器一直放在公司的伺服器上。
一套SQLServer2000看你買什麼版本,有標准版、企業版之分。基本上都在2000多左右。
③ 怎樣建立一個小型資料庫
什麼類型的項目使用資料庫:
對於Java:小型的話就是MySQL了,關於他的學習可以從網上搜集資源的。SQLServer的也可以。如果是大型資料庫的時候採用 Oracle。
先討論好你的項目需求,做好分析後,設計資料庫(database,table,關系等)。
④ 一個小程序項目用一個資料庫好,還是多個資料庫好
如果模塊清晰建議這樣分庫來處理,這樣維護起來也會比較方便。
-- 微信公眾號: 資料庫干貨鋪
⑤ 現在在做java項目主要的用什麼資料庫
1 看你項目大小了,一般來說大項目oracle,SQLSERVER,,小項目mysql比較多,大多用這三種主流資料庫
2 個人認為見過最奇葩的是java搭配sql server