FireBird数据库使用指南.docx
- 文档编号:25805482
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:36
- 大小:396.20KB
FireBird数据库使用指南.docx
《FireBird数据库使用指南.docx》由会员分享,可在线阅读,更多相关《FireBird数据库使用指南.docx(36页珍藏版)》请在冰豆网上搜索。
FireBird数据库使用指南
FireBird数据库使用指南
一、FireBird数据库简介
Firebird是一个跨平台的关系数据库系统,目前能够运行在Windows、linux和各种Unix操作系统上,提供了大部分SQL-99标准的功能。
它既能作为多用户环境下的数据库服务器运行,也提供嵌入式数据库的实现。
Firebird提供良好的并发性,高效的执行,强大的语言支持存储过程和触发器。
从1981年起,它已经被许多商业公司运用于许多的产品系统中。
Firebird脱胎于Borland公司的开源版数据库Interbase6.0,是一个完全非商业化的产品,用C和C++开发。
由于与interbase的血缘关系,大部分interbase的开发工具可以直接应用到Firebird开发中。
Firebird和原Borland的InterBase有着相同的血脉,其作为一个开源项目在2000年7月25日前遵循InterBasePublicLicenseV.1.0协议。
Firebird使用MozillaPublicLicensev.1.1许可证发行。
Firebird特性介绍:
firebird是一个全功能的,强大高效的,轻量级,免维护的数据库。
它很容易让您从单用户,单数据库升级到企业级的应用。
一个firebird数据库服务器能够管理多个独立的数据库,每一个数据库同时可支持多个客户端连结。
总之:
它是一个开源的,强大在,可以自由使用的数据库(即使是商业上的使用)
关键特性:
支持原子性,并发性,隔离性等概念。
MGA:
支持事务的多个版本功能,
存储过程:
使用PSQL(ProcedureSQL),你可以创建强大的存储过程来处理服务上的所有数据,你可以使用selectStoredProcedure的形式,使用存储过程,以得到一个虚拟的表结构的结果。
这样的话,你就可以很容易的在报表中使用它。
事件:
存储过程和触发器可以引发事件,这个事件可以被客户端程序监听到
生成子:
生成子也称为序列,它可以很容易的实现自动增加的字段。
它是一个INT64的长度,因此,它可以用在一个事务中,也可以用在其它很多方面。
只读数据库:
我们可以把数据库存放在CD中,形成一个只读数据库。
如果我们的应用程序也在光盘上,再加上嵌入式的FB数据库服务器,便可以得到一个无与伦比的CDLIVE(即只用光盘就可以运行起来)应用。
全事务控制:
一个客户端可以存在多个并发的事务。
并且每一个事务都可以独立的进行控制,两段提交功能可以保证数据库的一致性。
锁优化机制也支持多个事务的保存点。
在线备份:
不需要停止数据库即可进行备份,一个备份进程产生一个数据库当前的快照。
因此,用户可以在备份期间持续的工作,即实现24x7(每天24小时,每周7天)的操作。
触发器:
每一个表可以有多个并发的行级触发器,可以在插入前,插入后,更新前,更新后,删除前,删除后进行触发。
我们可以在触发器中写入PSQL语句,默认值,产生异常,firebird现在支持统一触发器,即可以一个触发器中,一次性管理插入,更新,删除的操作。
扩展函数:
可以使用C语言,C++,DELPHI写UDF,使用UDF(用户定义函数库)可以很容易的挂入数据库引擎中以扩展我们需要的功能
字符集:
Firebird实现了很多国际标准的字符集,包括Unicode。
SQL标准兼容:
Firebird实现了全部SQL92所要求的功能,实现了SQL99最常用的的要求。
包括但不限于"FULL/LEFT/RIGHT[OUTER]JOIN,UNION,DISTINCT,子查询(IN,EXISTS),内部函数(AVG,SUM,MIN,MAX,COALESCE,CASE,..),主键,外键,唯一索引以及所有通用的数据类型。
Firebird还实现了域,字段级别的约束,视图,异常,规则和权限管理,更多的详细信息,请参考Firebird发布通知和参考手册。
硬件需求:
Firebird可以工作最常见的硬件环境中,甚至非常差的硬件中,也能很好的工作,当然,硬件的要求依赖于你想做什么,例如你有多个并发用户等等。
有效的平台支持
Firebrid在常见的平台上都可运行,如Linux和Windows(包括Windows终端服务器)其它支持的平台包括(MAC OS(苹果机),Solaris及HP-UX)把数据库从一个平台转到另一个平台,非常的容易,只要备份数据库,然后,再到另一个平台上恢复即可
可连接性
Firebird支持一系列的连接方法,目前,可以通过原生的DELPHI,C++组件连接,也可以通过ODBC,JDBC,PHP,OLEDB,DbExpress进行连接。
原生 的联连提供了直接调用Firebird的API函数库(fbclient.dll/.so)进行调用的能力。
物理限制
Firebird支持非常巨大的数据库,数据库可以分成多个物理文件。
每个文件的大小依赖于操作系统的限制。
当前一个数据库文件最大的理论限制是64T(即64000G),因此,常见的限制通常是操作系统的限制以及磁盘空间的限制。
服务器引擎版本
当前有三个服务器版本。
标准服务器:
每一个客户连接将引发一个服务器进程(支持多处理器)
超级服务器:
一相服务器进程模块管理所有的客户端连接,当前不支持多处理器。
嵌入服务器:
整个服务器引擎就是一个动态库,只支持本地通过IO进行调用。
但是,所有的服务器都使用一种数据库格式,因此,你可以很方便的在不同的引擎之间共享数据库文件的数据。
协议
Firebird协议使用IPL(interbasepubliclicense)和IDPL(InitialDeveloper'sPublicLicense),这种协议类似于Mozilla协议。
你可以完全的自由使用并且可以自由的布署在你的客户应用上。
你不需要公开你的源代码。
当然,如果你修改和数据库引擎,你应该公布源代码。
工具
有很多的工具支持Firebird.包括自由的,免费的和商业的。
包括开发工具,管理工具,诊断工具等等。
支持和资源
在Firebird的官方网站上(www.firebirdsql.org),有很多关于这个项目的有用的信息。
IPPhonex公司也提供专业的商业支持。
在他们网站上,也有很多有用的专业信息及常见问题的解答等。
团队
Firebird有一系列的用户支持的团队和新闻组,您可以寻求在线支持。
您可以查看项目主页上的全部新闻组列表。
历史
Firebird基于开源Interbase6.0,它是Borland公司2000年发布的一个开源版本。
关于Interbase的最早历史可以追溯到1984年,因此,这个数据库已经有20岁了。
特点
1、Firebird是一个真正的关系数据库,支持存储过程、视图、触发器、事务等大型关系数据库的所有特性;
2、Firebird支持SQL92的绝大部分命令,并且支持大部分SQL99命令,新版Firebird2.0对SQL99的支持更完整;
3、Firebird源码基于成熟的商业数据库Interbase,有良好的稳定性,与Interbase有良好的兼容性;
4、不用考虑授权费用(免费),不用当心将来有一天你或你的客户因为使用盗版而被数据库开发商告上法庭;
5、发布简易,安装文件只有几M,且高度可定制,客户端的分发也很简单,只需一个DLL文件;
6、Firebird的一嵌入式服务器版本,不用安装,直接运行,基于单机开发首选;
7、Firebird的运行效率非常高;
8、具备高度可移植性,可在Linux,Unix,MacOS,Windows,Solaris系统下运行,而且数据库格式完全一样,不用修改;
9、开发环境支持良好,Delphi,C++Builder不用通过ODBC连接,直接用原生开发接口开发基于Firebird的程序。
二、FireBird数据库的安装
架構
firebird資料庫軟體有三種套件,並而支援不同作業平台(windows系列,linux,freebsd等...)
1.SuperServer-無法直接存取資料庫檔案,必須透過socket來和伺服器溝通
2.Classic-直接存取資料庫的檔案,多個程式可以同時存取一個檔案,有點像vfp,dbase
3.embedded-專為一些小型系統的嵌入式資料庫(pda)
下載及安裝
主網站:
Download->Firebirdrelationaldatabase
直接點兩下就可以安裝,請照步驟,根據自己的需求來安裝
預設安裝路徑
windows:
c:
\programfiles\firebird\firebird_1_5
linux:
/opt/firebird
兩個作業系統下的目錄結構非常像
根目錄下:
firebird.conf-設定檔
aliases.conf -別名檔
friebird.log-記錄檔
SYSDBA.password-linux才有,管理者的名稱及密碼在裏面,windows則預設:
名稱:
sysdba,密碼:
masterkey
windows直接使用security.fdb來存sysdba的密碼
注意:
使用者名稱不分大小寫,但密碼有分
目錄/bin:
則是一些必要的主要及工具程式
設定firebird
主要的設定檔
firebird.conf
預設tcp/ip會啟動port:
3050
你可以使用telnetip3050來測試
aliases.conf
設定資料庫的別名
資料庫連線時一般要指定路徑,有時路徑太長時你可以指定,在aliases.conf中使用別名來存取
它是位於你安裝firebird的根目錄,以下為內建範例
#別名= 原始路徑
employee.fdb=/opt/firebird/examples/employee.fdb
其中#為註解,而windows及linux的路徑是有所不同:
#fbdb1在Windows伺服器:
fbdb1=c:
\Firebird\sample\Employee.fdb
#fbdb2在Linux伺服器:
fbdb2=/opt/databases/killergames.fdb
資料庫執行時可以編輯這個檔案,不需要重新啟動伺服器
連線別名的方式:
Server_name:
aliasname
使用者管理(consloe介面)
1.預設管理者名稱sysdba,密碼masterkey
2.密碼檔security.fdb,位於firebird安裝目錄下
3.管理程式gsec
安裝目錄下\bin
4.密碼長度限制在8碼
用法:
本地主機(資料庫server在本台電腦)
gsec-usersysdba-password
遠端主機(資料庫server在別台電腦)
gsec-usersysdba-password
gsec命令
di[splay]
顯示所有使用者
di[splay]
顯示某使用者
a[dd]
新增使用者
mo[dify]
修改使用者
de[lete]
刪除使用者
h[elp]
求助
?
同上
q[uit]
離開gsec
z
顯示版本
options
-pa[ssword]
管理者的密碼
-user
使用者名稱
-pw
使用者密碼
-fname
英文名字有,三個部份
-mname
-lname
範例
有兩種方式
1.直接下在命令列-
2.進入互動式的命令列-額外的命令
新增使用者
gsec-usersysdba-passwordmasterkey
gsec>addelvis-pwelvis-fnameelvis-lnmaepresley
修改密碼
gsec>modifyelvis-pwchunk
修改sysdba密碼
gsec-usersysdba-passwordmasterkey-modifysysdba-pwmykey37
修改遠端伺服器linux的sysdba密碼
gsec-usersysdba-passwordmasterkey-databaseharry:
/opt/firebird/security.fbd-modifysysdba-pwhamburg
修改遠端伺服器windows的sysdba密碼
gsec-usersysdba-passwordmasterkey-databasesally:
"c:
\Programfiles\Firebird\security.fdb"-modifysysdba-pwhannover
修改遠端伺服器使用tcpport3050
gsec-usersysdba-passwordmasterkey-databasejack/3050:
/opt/firebird/security.fdb"-modifysysdba-pwlondo
修改遠端windows伺服器ip(a.b.c.d)使用tcp port3050
gsec-usersysdba-passwordmasterkey-databasea.b.c.d/3050:
"c:
\programfiles\firebird\firebird_1_5\security.fdb -modiyfsysdba-pwlondo
刪除本地使用者
gsec-usersysdba-passwordmasterkey-deletejoe
資料庫管理(console)
程式isql位於安裝目錄下的bin
以下是一個操作範例:
c:
\Programfiles\firebird\firebird_1_5\bin\>isql-usersysdba-passwordmasterkey
UseCONNECTorCREATEDATABASEtospecifyadatabase
SQL>connecttest;
Database:
test,User:
sysdba
SQL>showtable;
COUNTRY CUSTOMER
DEPARTMENT EMPLOYEE
EMPLOYEE_PROJECT JOB
PHONE_LIST PROJECT
PROJ_DEPT_BUDGET SALARY_HISTORY
SALES
SQL>select*fromcountry;
COUNTRY CURRENCY
=========================
USA Dollar
England Pound
Canada CdnDlr
SQL>quit;
建立資料庫
1.建立資料庫createdatabase
2.建立資料表格createtable(sql指令)
3.刪除資枓表格drop table(sql指令)
4.查詢資料庫中所含表格showtable
5.查詢表格中的結構showtable表格名稱
6.新增,刪除,更新(insert,delete,update)均為sql指令
7.SQL命令交付,在新增或刪除時,資料庫並未直接變更,要使用sql指命commit或commitwork來更新
isql-usersysdba-passwordmasterkey
UseCONNECTorCREATEDATABASEtospecifyadatabase
SQL>createdatabase'c:
\temp\test.fdb';
SQL>createtableabc(namechar(12),agenumeric(3));
SQL>showtablefriend;
FIRSTNAME CHAR(15)Nullable
LASTNAME CHAR(20)Nullable
CITY CHAR(15)Nullable
STATE CHAR
(2)Nullable
AGE INTEGERNullable
SQL>insertintoabc(name,age)values('cschen',34);
SQL>select*fromabc;
NAME AGE
===================
cschen 34
以上的操作主要是sql指令
命令的結尾必需使用";",如果沒有使用";"提示會由SQL>變為CON>,告訴你延續之前的命令
SQL>createtablefriend
CON>(FIRSTNAMECHAR(13),
CON>LASTNAMECHAR(40),
CON>STATECHAR
(2),
CON>AGEINTEGER);
同下
SQL>createtablefriend(FIRSTNAMECHAR(13),LASTNAMECHAR(40),STATECHAR
(2),AGEINTEGER);
每一個資料庫有一個特殊資料庫-系統資料庫,包含了使用者權限等...
SQL>showsystem;
RDB$CHARACTER_SETS RDB$CHECK_CONSTRAINTS
RDB$COLLATIONS RDB$DATABASE
RDB$DEPENDENCIES RDB$EXCEPTIONS
RDB$FIELDS RDB$FIELD_DIMENSIONS
.................. ..................
使用者權限
1.GRANT授予使用者權限
GRANT權限ON物件TO對象[withgrantoption]
2.REVOKE撤消使用者權限
REVOKE權限ON物件FROM對象
權限:
SELECT,INSERT,UPDATE,DELETE,ALL
物件:
TABLE,VIEW
對象:
使用者,PUBLIC(代表全部)
withgrantoption讓該名使用者有設定別的使用者的權限
*因為isql無法輸入中文,因此無法使用在中文輸入資料
*在linux下由於可能會有同名的isql(unixODBC套件),而linux安裝在/opt/firebird,因此必須使用絕對路徑來執行,另資料庫的管理者名稱可以不固定,至於密碼在安裝時會自動產生在檔案SYSDBA.password中
連線方式(檔案/tcpip)
程式支援兩種連線方式
1.使用完整路徑連線
c:
\abcd.....
2.使用tcpip連線,在路徑前加主機的名稱或IP
主機:
c:
\abcd....
我們可以根據切換這兩種
windows下的路徑如有空白,有時必須使用""將路徑框起來才可以用
資料庫/使用者管理(gui)
我有試過幾個免費的windows端的軟體
選擇ibeasy+:
非常容易管理,必須有資料庫的觀念
另外可配合marathon使用
ibeasy+使用者管理介面:
server->usersmanagement
(輸入管理者的名稱及密碼,進入下一個視窗)
(你就可以管理你的使用者)
設定odbc
在firebird->download->odbc
下載後安裝
odbc
Database
1.完整路徑-c:
\database\abc.fdb
2.tcp/ip-ip:
完整路徑(127.0.0.1:
c:
\database\abc.fdb)
資料庫的安全(備份/回存)(console)
GBAK:
命令列工具,命令有兩個狀態,備份/回存(-b/-c)
語法
gbak
1.備份
gbak-b
只有SYSDBA或是資料庫的擁有者可以執行備份工作.對於多個檔案的資料庫,只需指定第一個檔案的名稱來當資料庫的名稱.
2.回存
gbak-c
選項
(中括號內的是非必要,也就是命令可以使用中括號前的縮寫,或是含中括號內為長參數)
參數
說明
功能
-b[ackup_database]
備份
備份
-bu[ffers]
Setcachesizeforrestoreddatabase
回存
-c[reate_database]
回存(必要參數)
回存
-co[nvert]
轉換外部表格到內部表格s
備份
-e[xpand]
建立一個非壓縮的備份
備份
-fa[ctor]n
磁帶機的區塊系數
備份
-g[arbagecollect]
備份時不清空已刪除的資料
備份
-i[nactive]
所有的索引將回存為INACTIVE
回存
-ig[nore]
備份時不做checksum錯誤檢查
備份
-k[ill]
在不建立定義備份中的shadows
回存
-l[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FireBird 数据库 使用指南
![提示](https://static.bdocx.com/images/bang_tan.gif)