4/17/2557

การสร้าง และประยุคใช้ Trigger (SQL Server) ตอนที่ 2

ผู้เขียนได้ทดลองสร้าง Trigger แบบง่ายๆให้เห็นถึงลักษณะการทำงาน และการประยุคใช้ไปแล้ว คราวนี้ผู้เขียนจะทำตัวอย่างง่ายๆในการประยุคใช้กับ View

ประโยชน์ของการประยุคใช้ Trigger กับ View
โดยปกติแล้ว View จะไม่สามารถเพิ่มข้อมูลได้ เพราะ View นั้นเกิดมาจากการทำ Relation ระหว่าง Table ขึ้นมา เพื่อนำไปใช้งานแบบ Read Only อย่างเดียว จึงเป็นหน้าที่ของโปรแกรมเมอร์ที่จะต้องเขียนคำสั่ง Insert เข้ามาจากโปรแกรมเอง แต่หากไม่เขียนคำสั่งในโปรแกรมก็สามารถเขียน Trigger ใส่ใน View ได้เลย และใช้ได้เหมือนกัน แบบของ Trigger ที่ใช้ก็คือ INSTEAD OF INSERT หรือเมื่อมีการใส่ข้อมูล

ผู้เขียนได้ใช้ Table CARSALE จากตอนที่แล้ว และสร้าง Table CARBRAND เพิ่มขึ้นมา


CARBRAND 
นำทั้งสอง Table มาสร้างเป็น View ชื่อ VIEW_CARBRAND โดยภายใน View มี Relation ดังนี้


SELECT     dbo.CARBRAND.BRAND, dbo.CARBRAND.MODEL, dbo.CARSALE.SHOWROOM
FROM         dbo.CARBRAND INNER JOIN
                      dbo.CARSALE ON UPPER(dbo.CARBRAND.MODEL) = UPPER(dbo.CARSALE.MODEL)

VIEW_CARBRAND
จากนั้นสร้าง Trigger ให้กับ VIEW_CARBRAND


CREATE TRIGGER insertToVIEW_CARBRAND
   ON  VIEW_CARBRAND
   INSTEAD OF INSERT
AS 
BEGIN
        --เพิ่ม MODEL ให้กับ Table CARSALE
INSERT INTO CARSALE(MODEL)
SELECT UPPER(MODEL) FROM INSERTED

        --เพิ่ม MODEL , BRAND ให้กับ Table CARBRAND
INSERT INTO CARBRAND
SELECT UPPER(MODEL),UPPER(BRAND) FROM INSERTED
END



จากนั้น Execute Trigger แล้ว ทดสอบใส่ค่า BRAND และ MODEL ที่ VIEW_CARBRAND

VIEW_CARBRAND
ข้อมูลของ Table CARBRAND ที่เพิ่มค่าผ่าน VIEW_CARBRAND เป็นผลมาจาก Trigger
ข้อมูลของ Table CARSALE ที่เพิ่มค่าผ่าน VIEW_CARBRAND เป็นผลมาจาก Trigger
จะเห็นได้ว่าการใช้ Trigger ลดภาระของโปรแกรมไปได้มาก และสามารถนำมาใช้แก้ปัญหาบางอย่างได้ดี
การทำงานในฝั่ง Server ก็จะลดเวลา และข้อผิดพลาดในการส่งข้อมูลได้มาก ทำให้โปรแกรมที่พัฒนาขึ้นมีความเสถียรขึ้นด้วย

โครงสร้างของ Table และ View


CREATE TABLE [dbo].[CARSALE](
[ID] [int] NULL,
[MODEL] [varchar](30) NOT NULL,
[SHOWROOM] [varchar](50) NULL
) ON [PRIMARY]



CREATE TABLE [dbo].[CARBRAND](
[MODEL] [varchar](30) NULL,
[BRAND] [varchar](30) NULL
) ON [PRIMARY]



CREATE VIEW [dbo].[VIEW_CARBRAND]
AS
SELECT     dbo.CARBRAND.BRAND, dbo.CARBRAND.MODEL, dbo.CARSALE.SHOWROOM
FROM         dbo.CARBRAND INNER JOIN
                      dbo.CARSALE ON UPPER(dbo.CARBRAND.MODEL) = UPPER(dbo.CARSALE.MODEL)

การสร้าง และประยุคใช้ Trigger (SQL Server) ตอนที่ 1

Trigger คืออะไร?
ท่านที่เคยเขียนโปรแกรม และเคยใช้ Event handle ก็จะนึกถึงการทำงานของ Trigger ไม่ยาก
Trigger ก็คือ Code คำสั่ง SQL ที่ถูกสร้างขึ้นให้ทำงานกับ Table หรือ View โดยที่คำสั่งเหล่านั้นจะทำงานก็ต่อเมื่อมีการเปลี่ยนแปลงอย่างใดอย่างหนึ่ง กับ Table หรือ View (เปรียบเหมือน Event นั่นเอง) เช่น


  • เมื่อมีการเพิ่มข้อมูล (Insert) 
  • เมื่อมีการปรับปรุงข้อมูล (Update) 
  • เมื่อมีการลบ (Delete) 

หรือจะทำงานหลังจากมีการเปลี่ยนแปลงก็ได้ เช่น

  • หลังจากเพิ่มข้อมูลแล้ว (Inserted) 
  • หลังจากปรับปรุงข้อมูล (Updated) 
  • หลังจากลบข้อมูลแล้ว (Deleted)

คำสั่งในการสร้าง Trigger
รูปแบบคำสั่งในการสร้าง Trigger ไม่มีความซับซ้อนแต่อย่างใด คล้ายๆกับการสร้าง View มีรูปแบบดังนี้

-- คำสั่งสร้าง Trigger เพื่อให้ทำงานหลังจาก..

CREATE TRIGGER [ชื่อของ Trigger]
   ON  [ชื่อ Table ที่ Trigger ทำงาน]
   AFTER [ทำงานหลังจากเพิ่มข้อมูล หรือ ปรับปรุงข้อมูล หรือ ลบข้อมูล]
AS 
BEGIN
-- คำสั่งเมื่อ Trigger เริ่มทำงาน


END



-- คำสั่งสร้าง Trigger เพื่อให้ทำงานไปพร้อมๆกับ...

CREATE TRIGGER [ชื่อของ Trigger]
   ON  [ชื่อ Table ที่ Trigger ทำงาน]
   INSTEAD OF [ทำงานเมื่อมีการเพิ่มข้อมูล หรือ ปรับปรุงข้อมูล หรือ ลบข้อมูล]
AS 
BEGIN
-- คำสั่งเมื่อ Trigger เริ่มทำงาน

END


การแก้ไข Trigger นั้นก็เพียงแค่เปลี่ยนคำสั่ง CREATE เป็น ALTER เท่านั้นเองครับ

มือ ใหม่มักจะงง เมื่อ Execute คำสั่ง CREATE TRIGGER ไปแล้วแต่ยังเขียนไม่เสร็จ เมื่อ Execute อีกครั้งจะพบปัญหาว่า มี Trigger อยู่แล้ว ก็เพราะเมื่อใช้คำสั่ง CREATE TRIGGER ไปแล้ว TRIGGER ก็จะถูกสร้างทันที หากจะแก้ไขชุดคำสั่งที่ TRIGGER ก็ให้เปลี่ยน CREATE เป็น ALTER แทน
ตัวอย่างการสร้าง Trigger เพื่อใช้งาน
ผู้เขียนได้สร้าง Table ขึ้นมาเพื่อให้บ่งบอกว่ารถรุ่นไหน มีจำหน่ายอยู่ที่ตัวแทนเขตไหน พร้อมกับการใส่ ID ให้แต่ละรายการ

โครงสร้าง Table CARSALE
สร้าง Trigger ชื่อ AUTOID เพื่อทำการกำหนด ID ของรายการอัตโนมัติ

CREATE TRIGGER AUTOID
   ON  CARSALE
   AFTER INSERT
AS
BEGIN
    -- ประกาศให้ @O_ID รับตัวเลขจำนวนเต็ม
    DECLARE @O_ID INT;


    -- นำ @O_ID ไปรับค่า ID ล่าสุด
    SELECT @O_ID=(SELECT TOP 1 ID FROM CARSALE ORDER BY ID DESC)


    -- ถ้า @O_ID เป็นค่าว่าง ให้เท่ากับ 0 แทน
    IF(@O_ID IS NULL) SET @O_ID=0
   
    -- นำ @O_ID มาบวกเพิ่มอีก 1 แล้วค่อยปรับปรุงไปที่ Table
    UPDATE CARSALE SET ID=@O_ID+1 FROM INSERTED
    WHERE INSERTED.MODEL=CARSALE.MODEL
END

เมื่อทำการ Execute Trigger แล้วทดสอบเพิ่มข้อมูลใน Table จะพบว่ามีการใส่ ID ให้อัตโนมัติ

ID เพิ่มขึ้นเรื่อยๆ
ต่อไปเป็นการสร้าง Trigger SWITCH_SHOWROOM ขึ้นมาเพื่อกำหนดสาขาที่มีรถแต่ละรุ่นขายอยู่ ตัวอย่างคำสั่งของ Trigger ดังนี้


CREATE TRIGGER SWITCH_SHOWROOM
   ON  CARSALE
   AFTER INSERT,UPDATE
AS 
BEGIN
    --ประกาศให้ @MODEL รับค่าของ Column MODEL ที่ใส่ข้อมูลรุ่นของรถเข้ามา
    DECLARE @MODEL VARCHAR(30)
    --ประกาศให้ @SHOWROOM รับชื่อสาขา
    DECLARE @SHOWROOM VARCHAR(50)
    
    --รับค่ารุ่นของรถที่ใส่เข้ามา
    SELECT @MODEL=(SELECT MODEL FROM INSERTED )
    
    --ตรวจสอบรุ่นของรถ และกำหนดสาขาที่มีขาย
    IF(UPPER(@MODEL)='PRIUS') SET @SHOWROOM='สาขารังสิต' ELSE
    IF(UPPER(@MODEL)='VIOS') SET @SHOWROOM='สาขาพระรามสอง' ELSE
    IF(UPPER(@MODEL)='YARIS') SET @SHOWROOM='สาขาแจ้งวัฒนะ' ELSE
    IF(UPPER(@MODEL)='CAMRY') SET @SHOWROOM='สาขาศรีนครินทร์' ELSE
    IF(UPPER(@MODEL)='FORTUNER') SET @SHOWROOM='สาขานวนคร' ELSE
    --นอกจากรถ 5 รุ่นนี้แล้วให้ระบุว่าไม่มีสาขาขายรุ่นนี้
    SET @SHOWROOM='ไม่มีสาขาที่ขายรุ่นนี้'
    
    --ใส่สาขาให้ข้อมูลที่เพิ่มเข้ามา
    UPDATE CARSALE SET SHOWROOM=@SHOWROOM FROM INSERTED 
      WHERE INSERTED.MODEL=CARSALE.MODEL
END


เมื่อทดสอบจะพบว่าเมื่อระบุถึงรุ่นของรถเข้ามาแล้ว Trigger 2 ตัวที่สร้างขึ้นจะทำงานตามคำสั่งที่เขียนไว้

การ ใช้ Trigger มีประโยชน์อย่างมากในการช่วยพัฒนาโปรแกรม ช่วยแบ่งเบา Process ของโปรแกรมไปได้อย่างมาก เพราะ Trigger จะทำงานบน Database Server
และนอกจากนี้ยังใช้แก้ปัญหาในการ Customize โปรแกรมสำเร็จรูปที่ไม่สามารถแก้ไขในตัวโปรแกรมได้อีกด้วย ทั้งการ Clone ข้อมูลออกไปใช้ รวมถึงการตรวจสอบข้อมูลต่างๆ ซึ่งผู้เขียนจะได้นำเสนอในตอนต่อไป

4/16/2557

เริ่มต้นกับฐานข้อมูล Firebird (เจ้านกไฟ ของฟรีที่ไม่กระจอก)(3/3)

จากตอนที่แล้วผู้เขียนได้อธิบายการ Register Host และ Database ไปแล้ว ตอนนี้จะทดลองใช้ Database ตัวที่สร้างขึ้น


การสร้าง Table
 
คลิ๊กเมาส์ขวาที่ Tables แล้วเลือก New Table...
จะมีหน้าต่างให้สร้าง Table ปรากฎทางด้านขวาตามภาพ

เลือก Database Test ทางด้านซ้าย ใน Tab Table ทางด้านขวา กำหนด Table name และใส่ Description ให้เรียบร้อย
เลือก Tab Fields แล้วกดที่ new field
ตั้งชื่อ Field กำหนด Type ของข้อมูลให้เรียบร้อย ในที่นี้ผู้เขียนสร้าง Field ชื่อ EMPLOYEE_CODE เป็น Primary Key
 โดยให้ Type เป็น CHAR มีขนาด 4 และในเมื่อ Type เป็นประเภทตัวอักษรจึงตั้งค่า Character set เป็น "UTF8" 
ใส่ Description ให้เรียบร้อย จากนั้นกด OK ได้เลย
เมื่อเพิ่ม Field ทั้งหมดเรียบร้อยให้กดที่ Compile เพื่อสร้าง Table ในฐานข้อมูล
จากนั้นจะพบหน้าต่างที่ให้ตรวจสอบความถุกต้อง หากถูกต้องตามต้องการแล้ว กดปุ่ม Commit ได้เลย หรือต้องการยกเลิกให้กดปุ่ม Rollback
Table "EMPLOYEE" ได้ถูกสร้างขึ้นแล้ว
จากนั้นลองเพิ่มข้อมูล โดยไปที่ Tab Data เพิ่มข้อมูลลงไปในแต่ละ Field จากนั้นกด Commit
เท่านี้ก็เสร็จเรียร้อยในการทดลองการสร้าง Table ขึ้นใช้งาน
ที่ แตกต่างจากฐานข้อมูลอื่นๆก็คือการใช้ Firebird นั้นค่อนข้างจะเป็นแบบ manual เสียมาก โปรแกรมที่ช่วยให้จัดการกับฐานข้อมูลก็เป็นเพียงแค่ช่วยให้เรา Generate SQL ขึ้นมาเท่านั้น จะเป็นต้อง Commit เพื่อให้ฐานข้อมูลถูกอัพเดท หรือทำการ Rollback เองเพื่อยกเลิก Transaction
อย่างไรก็ตาม Firebird ไม่ได้ถูกพัฒนามาเพื่อใช้งานหนักมากจนเกินไป จากประสบการณ์ของผู้เขียนที่เคยทำงานกับ Firebird 1.5 มา มันสามารถรองรับการใช้งานข้อมูลได้เป็นหลักแสน Record ซึ่งอาจจะเหมาะสำหรับองค์กรขนาดกลาง ลงไปถึงขนาดย่อม 

เริ่มต้นกับฐานข้อมูล Firebird (เจ้านกไฟ ของฟรีที่ไม่กระจอก)(2/3)


ตอนนี้ผู้เขียนจะสาธิตการใช้ Firebird ด้วยโปรแกรมจัดการฟรีอีกเช่นกัน
เนื่องจากตัวของเจ้า Firebird เองก็เป็นฐานข้อมูลในแนวไร้หน้าตา ไร้ GUI เช่นเดียวกับ MySQL จึงต้องพึ่งโปรแกรมในการจัดการ (Database Management) ตัวอื่นๆ เพราะกลุ่มผู้พัฒนา Firebird ไม่พัฒนาออกมาให้ด้วย (MySQL มี Oracle จัดให้)
ผู้เขียนเสนอโปรแกรมตัวที่ฟรี และก็ใช้งานได้สะดวกพอสมควร คือ EMS SQL Manager for InterBase/Firebird



การใช้งาน EMS SQL Manager
เมื่อติดตั้งเสร็จ เปิดโปรแกรมครั้งแรกจะมีหน้าต่างถามถึงรูปแบบในการแสดงผล

ผู้เขียนใช้ค่าเริ่มต้น แล้วกด OK เพื่อใช้งาน

  • Environment style > MDI environment : จะแสดงเป็นหน้าต่างย่อยๆภายในเหมือนกับ Microsoft Office หรือ SQL Server 2000 นั่นเอง
  • Floating windows environment : จะแสดงเหมือนกับ Conponent pirate ของ Delphi หรือเหมือนกับ SQL Server 2008 นั่นเอง

จะพบกับหน้าต่างแสดง Version ของ EMS SQL Manager ซึ่งหากต้องการใช้งานแบบ Full Option จะสามารถใช้งานได้แค่ 30 วันเท่านั้น ให้กดปุ่ม Close

หากต้องการใช้งาน แบบ Full ให้คลิ๊กเลือก 30 days left หรือดูรายละเอียดก่อนที่ Link ตามลูกศร หากต้องการใช้แบบ Free version ให้กด Close
ขั้นตอนแรกจะต้องทำการ Register Host และ Register Database ก่อน โดยใช้ปุ่มด้านบนของ Tools bar หรือคลิ๊กเมาส์ขวาในช่อง Databases ก็ได้
ปุ่ม Register Database และ ปุ่ม Register Host
Register Host
ผู้เขียนใช้ Firebird ที่เครื่องตัวเอง จึงใส่ Host name เป็น localhost หรือจะใช้ 127.0.0.1 ก็ได้
เลือก Protocal เป็น Local หากไม่ทราบ Port ให้ปล่อยว่างไว้ จากนั้นให้ใส่ User name และ Password เป็นค่าเริ่มต้นของ Firebird คือ User name = SYSDBA และ Password = MASTERKEY
จากนั้นใช้ค่า Preferences ของ Firebird ด้วยการกดที่ Get Server Preferences โปรแกรมจะกำหนดค่า Port และ Client Library ด้านล่างให้อัตโนมัติ

จะพบหน้าต่างการตั้งค่าต่างๆสำหรับการเข้าใช้ Host

Path to database utilities ให้เลือกที่อยู่ของ Utilities ต่างๆ จะใช้ค่าเริ่มต้นก็ได้ เสร็จแล้วกด Finish
หากไม่มีข้อผิดพลาด จะสามารถเชื่อมต่อกับ Host ได้ทันที จะเห็นได้จาก Tab Databases
Create Database
กดปุ่ม Create Database ใน Tools bar ด้านบน


เลือก Host ที่เพิ่ง Register ไป
เลือกที่อยู่ของ Database File (ไฟล์ที่ใช้เก็บข้อมูล) ใส่ User/Password ของ Host ให้เรียบร้อย อย่าลืมกำหนด Charset เป็น "UTF8"
โปรแกรมจะสร้าง SQL เพื่อสร้าง Database บน Host นี้ และเมื่อติ๊กเครื่องหมายที่ Register the database after creating จะนำทางไปสู่ขั้นตอนการ Register Database
ตรวจสอบข้อมูลให้ถุกต้อง อย่าลืมเปลี่ยน Font charset เป็น "THAI_CHARSET" ด้วย จากนั้นกด OK
Database ชื่อ TEST ถูกสร้างขึ้นพร้อมใช้งาน
Register Database
ในตอนนี้ผู้เขียนจะแนะนำการ Register Database หากมี Database File ที่สร้างไว้แล้ว
ขั้นตอนแรกให้ใช้ปุ่ม Register Database ที่อยู่ใน Tools bar ด้านบน จะพบหน้าต่าง Register Database

ผู้เขียนเลือก localhost:3050 ที่เพิ่ง Register ไป ตัวเลข 3050 คือ Port ในการรับส่งข้อมูลนั่นเอง

  • Database is located on the host already registered in SQL Manager : เลือก Register Database บน Host ที่มีอยู่แล้ว
  • Database is located on a newhost : ต้องการ Register Database กับ Host ใหม่

ใส่ User name และ Password ของ Host แล้วกด Next
ขั้นตอนนี้ก็เหมือนเดิม ตรวสอบเสร็จอย่าลืมตั้งค่า Font charset เป็น "THAI_CHARSET" ด้วย

เริ่มต้นกับฐานข้อมูล Firebird (เจ้านกไฟ ของฟรีที่ไม่กระจอก)(1/3)

บางท่านที่เคยรู้จัก หรือเคยใช้งาน MySQL ซึ่งเป็นฐานข้อมูลฟรี (Open Source) แล้ว ผู้เขียนขอแนะนำให้รู้จักกับฐานข้อมูลแบบ Open Source อีกตระกูลนึงคือ Firebird หรือเจ้านกไฟ
เจ้านกไฟเริ่มได้รับความนิยมในวงการ Delphi Developer ตั้งแต่ Firebird 1.0 โดยที่ใช้ Core Engine เดียวกับ Interbase ที่พัฒนาโดยบริษัท Borland (ปัจจุบันไม่มีแล้ว) จนการพัฒนาโปรแกรมด้วย Delphi เริ่มลดความนิยมลง แต่เจ้านกไฟกลับถูกพัฒนาขึ้นอย่างต่อเนื่อง และได้รับความนิยมมากขึ้นเรื่อยๆ จนปัจจุบันอยู่ใน Version 2.5 แล้ว

ความสามารถของเจ้านกไฟมีมากมายและได้ถูกพัฒนาขึ้นให้ใช้งานแตก ต่างจากฐานข้อมูลตระกูลอื่นๆ โดยที่เมื่อติดตั้งแล้วมันสามารถจะรันได้ในแบบ Service หรือแบบ Application ก็ได้ สามารถเป็น Database Server อย่างเต็มรูปแบบ หรือจะทำเป็นไฟล์ Database ก็ได้ เหมือนกับรวมความสามารถของ MySQL และ Microsoft Access เข้าไว้ด้วยกัน แต่ความเหนือชั้นก็คือไฟล์ Database ที่สร้างขึ้นจะอยู่ในสถานะ Read Only ตั้งแต่ต้น ฉนั้นถ้าท่านเขียนโปรแกรมฐานข้อมูลสำหรับนำเสนอใส่ลงใน CD/DVD ก็จะสามารถอ่านข้อมูลบนแผ่นได้เลย โดยไม่ต้องมาทำ Read Only แบบใน Microsoft Access
ในตอนนี้เจ้านกไฟได้พัฒนาให้รองรับทั้งบน Windows , Linux และ MAC OS ทั้ง 32 บิท และ 64 บิท เข้าไปดาวน์โหลดฟรีได้ที่ http://www.firebirdsql.org/en/downloads/

เริ่มติดตั้ง Firebird
ผู้เขียนได้ดาวน์โหลด Firebird ที่ใช้ติดตั้งบน Win32 เป็นแบบ Windows Installer ที่ติดตั้งได้ง่าย โดยที่ผู้เขียนติดตั้งลงบน Windows 7

หลังจากการเลือกภาษาที่ใช้แสดงในการติดตั้งแล้ว จะพบกับหน้าต่างต้อนรับของ Firebird กด Next ได้เลย
หน้าต่างรายละเอียดของ License เลือก I accept agreement แล้วกด Next
ถัดมาคือหน้าต่างแสดงข้อมูลต่างๆของ Firebird 2.5 เมื่ออ่านเสร็จแล้วกด Next
หน้าต่างการกำหนด ที่อยู่ในการติดตั้ง ปกติค่าเริ่มต้นจะเป็น SystemDrive > Program Files หากต้องการเปลี่ยนก็กดที่ Browse...  เปลี่ยนได้เลย (ในภาพผู้เขียนใช้ค่าเริ่มต้น แต่ System Drive ของผู้เขียนคือ Drive I)
หน้าต่างเลือก Component ในการติดตั้ง เลือกเป็น Full installation ซึ่งจะใช้พื้นที่ในการติดตั้งอย่างน้อย 24 MB
หน้าต่างถัดมาคือการตั้งชื่อ Menu Folder เพื่อแสดงที่ Start Menu ของ Windows
หน้าต่างเลือกรูปแบบการติดตั้งเพิ่มเติม ผู้เขียนใช้ค่าเริ่มต้นที่ให้มา

  • Use the Guardian to control the server : เป็นการติดตั้งโปรแกรมเพื่อตรวจสอบกระบวนการทำงานของ Server เมื่อผิดปกติเมื่อ Firebird ถูกใช้ในแบบ Application
  • Run Firebird server as : ให้ทำงานในแบบ Application หรือ Service
  • Start Firebird automatically everytime you boot up : ให้ทำงานเมื่อเริ่มเปิดเครื่องเสมอ
  • Install Control Panel Applet : ให้ติดตั้งกล่องควบคุมไปที่ Windows Control Panel ด้วย
  • Copy Firebird client library to system directory : ให้คัดลอกไฟล์ lib ของ Firebird ไปไว้ที่ System Directory ด้วย
  • Generate client library as GDS32.DLL for legacy app. support : ให้สร้าง lib ไฟล์ GDS32.DLL ขึ้นมาด้วย

หน้าต่างสรุปค่าต่างๆที่จะติดตั้ง กด Install เพื่อเริ่มติดตั้งได้เลย
หากการติดตั้งสมบูรณ์จะพบหน้าต่าง Information แสดงรายละเอียดที่ติดตั้ง ตรวจสอบดูและกด Next 
การติดตั้ง Firebird สำเร็จ ให้ติ๊กเครื่องหมายที่ Start Firebird Service now เท่านั้น แล้วกด Finish ได้เลย

  • Start Firebird Service now : ให้ Service ที่ติดตั้งไปทำงานทันที
  • After installation : ให้แสดงรายละเอียดอื่นๆอีก

เมื่อติดตั้งเสร็จผู้เขียนเข้าไปตรวจสอบว่ามี Service ใหม่ติดตั้งเข้ามาหรือไม่ โดยเข้าไปที่ Control Panel >  Administrative Tools > Services


Service ชื่อ Firebird Server มีสถานะกำลังทำงานอยู่
Firebird Server Manager ถูกติดตั้งลงใน Control Panel แล้ว

มาทำความรู้จักกับเจ้านกเพลิง Firebird ดาต้าเบสเซิร์ฟเวอร์แบบโอเพ่นซอร์ส

"มาทำความรู้จักกับเจ้านกเพลิง Firebird ดาต้าเบสเซิร์ฟเวอร์แบบโอเพ่นซอร์ส ผู้อยู่เบื้องหลังความสำเร็จขององค์กรธุรกิจ Label Industries"
ท่ามกลางเหตุการณ์รอบตัวเราที่เต็มไปด้วยการเปลี่ยนแปลง ตั้งแต่เหตุการณ์สงครามในประเทศอิรัก มหันตภัยจากโรคติดเชื้อทางเดินหายใจ หรือมาตรการที่จริงจังในการปราบปรามสินค้าละเมิดลิขสิทธิ์ในบ้านเรา ล้วนส่งผลต่อการดำเนินชีวิตของเราด้วยกันทั้งนั้นไม่ทางตรงก็ทางอ้อม แต่สำหรับมนุษย์คอมพิวเตอร์อย่างเราที่ต้องดูแลระบบไอทีในองค์กรให้สามารถ
ขับเคลื่อนไปด้วยความราบรื่นที่สุดยังคงต้องสวมบทบาทที่หนักอึ้งต่อไป โดยเฉพาะเมื่อปัญหาต่าง ๆ เริ่มส่งผลต่อเศรษฐกิจขององค์กรแล้ว ซอฟต์แวร์โอเพ่นซอร์สจึงเข้ามามีบทบาทเพิ่มขึ้น และเป็นอีกหนึ่งความหวังที่จะนำมาเสริมสร้างระบบไอทีให้คงความแข็งแกร่งภาย ใต้เงื่อนไขด้านการลงทุน
Linux Success Story ฉบับนี้จะหยิบยกเอาองค์กรในภาคเอกชนอีกแห่งหนึ่งมาเป็นกรณีตัวอย่างกัน คือ บริษัท วงศ์เอกอุตสาหกรรม จำกัด ซึ่งดำเนินธุรกิจในภาคอุตสาหกรรม
( Label Industries ) โดยลักษณะของกิจการแล้วมีความจำเป็นต้องอาศัยแรงขับเคลื่อนของฝ่าย คอมพิวเตอร์และไอทีไม่น้อยเลยทีเดียว โดยเฉพาะอย่างยิ่งในเรื่องของการบันทึกจัดเก็บข้อมูลจำนวนมากในทุก ๆ ขั้นตอนของการดำเนินงาน รวมไปถึงเรื่องการสื่อสารทั้งภายในและภายนอกองค์กรด้วยระบบจดหมายอีเล็ก ทรอนิกส์
ผู้ที่มีหน้าที่รับผิดชอบสำคัญเกี่ยวกับกิจกรรมทั้งหลายที่เกี่ยว ข้องกับระบบคอมพิวเตอร์ สื่อสาร และการพัฒนาแอปพลิเคชั่นขึ้นภายในองค์กรนี้ คือ คุณมานะ ศฤงคารรัตนะ ซึ่งได้สละเวลาอันมีค่าขีดเขียนเรื่องราวบอกเล่าความสำเร็จในการนำลีนุกซ์ไป ใช้ในองค์กร โดยเฉพาะเรื่องเกี่ยวกับระบบฐานข้อมูลที่เป็นโอเพ่นซอร์ส ลองมาฟังเรื่องราวที่น่าสนใจนี้กันครับ

Linux กับ Interbase ส่วนผสมที่ลงตัว แนวความคิดที่เขียนบทความนี้ขึ้นมาเนื่องจากความรู้สึกที่อยากจะบอกความสำเร็จเกี่ยวกับใช้
ลี นุกซ์ภายในองค์กร ซึ่งเป็นความสำเร็จที่ยังใช้อยู่ในปัจจุบัน และใช้ได้ดีเสียด้วย ด้วยความที่เขียนบทความนี้ช้าไป(เนื่องจากปัจจุบันมีหนังสือ Linux ออกมามากมายทั้งไทยและเทศ ) แต่ด้วยความที่องค์กรของผมใช้มา 4 ปีแล้วมันจะเหมือนที่หนังสือทั่วไปเขียนก็เกินไปแหล่ะ เพราะการที่องค์กรพัฒนาแอปพลิเคชั่นขึ้นมาใช้เองโดยใช้ Clipper เมื่อ 10 ปีก่อน โดยมีฐานข้อมูลเป็น DBF และเครื่อง Client 25 ตัว Run บน Netware 3.12 ซึ่งผมขอยกย่องให้เป็นที่สุดแห่งศตวรรษ เพราะในความคิดของผม Windows NT/2000 วิ่งเป็น File Server ก็ยังสู้ Netware ไม่ได้ อันนี้จากการประสบการณ์จริง จวบจนปัจจุบันจำนวนของ Client ได้เพิ่มขึ้นเป็น 100 กว่าตัว และ Linux Server อีก 6 ตัว แบ่งเป็น Database Server 1,File Server for Mcintosh 2,Mail Server 1,SMB Server 1 และ Backup Server 1
นับจากวันที่ Netware และ Clipper ต้องจากไป เนื่องจากสภาพสังคมในปัจจุบันสภาพการใช้งานต้องยอมรับว่าไม่ว่าเด็กหรือ ผู้ใหญ่จะใช้ Windows เป็นและสอนไม่ยาก ผมในฐานะผู้พัฒนา Application ในสภาพแวดล้อมแบบ DOS ก็ถูกบีบให้ย้ายจาก Clipper ไปสู่ Windows ก็ทำให้ได้ทดลองตัว Developer หลายตัวเลยที เดียวโดยยึดหลักที่ว่าต้องนำความรู้จาก Clipper มาพัฒนาต่อ เพื่อที่จะ Port เอาโปรแกรมเดิมที่เขียนไว้ขึ้นมารันบนระบบ Windows แต่สุดท้ายความฝันสลาย ถ้าผมยังยึดหลักการนี้ผมคงจะหา Application Developer ดีๆสักตัวคงยาก ถ้ายังยึดติดกับ Clipper ผมคงไม่อยากบอกเหตุผล เดี๋ยวเรื่องจะยาวกันไปมาก เป็นอันว่าผมมาจบลงที่ Delphi ซึ่งเป็น ค่าย Borland คราวนี้มีปัญหาให้ขบคิดกันต่อเนื่องจากเราต้องเลือก Delphi สำหรับการเขียนโปรแกรม คำถามต่อมา "แล้วอะไรคือ Database ที่จะเก็บข้อมูล" ซึ่งตอนนั้นเราเลือก Interbase เพราะองค์กรของเรามีเงินจ่ายลิขสิทธิ์ และ Interbase ที่เราเลือกก็เป็นเวอร์ชั่นที่ซื้อน่ะครับ (ตอนนั้นยังไม่รู้จัก MySQL ,PostgreSQL เลย) แต่ยังสองจิตสองใจระหว่าง Interbase กับ MS SQL Server แต่คิดว่าในเมื่อ Borland พัฒนา Delphi+Interbase ก็น่าจะเป็นสิ่งที่เข้ากันได้ดีเพราะ Interbase ทาง Borland ก็เป็นผู้ผลิต ประกอบกับที่ผมศึกษาคุณสมบัติของ Interbase ( จะได้กล่าวภายในตอนหลัง ) คิดว่าน่าจะเป็นทางเลือกที่ดีที่สุดตอนนั้น และก็ยังไม่เลือกโอเอสเป็นลีนุกซ์ เนื่องจากตอนนั้นเป็นปี คศ.1999 ผมก็ยังคิดจะเลือกใช้ Windows NT เป็น Server เพื่อวิ่ง Interbase ผลจากการสอบถามผู้เชี่ยวชาญทางด้าน Database Server หลายท่านให้คำตอบเหมือนกันดังนี้ คือการใช้ Windows NT รัน MS SQL เป็น Server นั้นจะต้องเขียนโปรแกรมเป็นในรูปแบบ Application Server(Multi-tiers) เท่านั้นถึงจะ run ได้ดี เพราะถ้าเขียนแบบ two-tiers Windows NT จะรับงานไม่ไหว อาการตอนนั้นรู้สึกเป็นกังวลมากเนื่องจากแค่เปลี่ยนแนวการคิดจาก DOS Environment มาเป็น Windows Environment ก็แทบจะกระอักเลือดอยู่แล้ว ยังต้องมาเรียนที่มัน Advance ขึ้นไปอีก แต่ก็มีทางเลือกอีกทาง คือ ถ้าต้องการให้ รันได้แบบที่ผมต้องการ จะต้องติดตั้ง Database บน Linux ซึ่งนั่นจึงเป็นที่มาของเรื่องราว Interbase บน Linuxของผม อ้าว…ที่พูดมานี่ไม่เห็นเกี่ยวกับ Open Source/Free Software ตรงไหน ตอนที่ผมใช้มันไม่ฟรี และผมก็ซื้อมาใช้เหมือน Database ค่ายอื่นๆนั่นแหละ แต่ไม่รู้เกิดอะไรขึ้น Borland ประกาศแจกจ่าย Interbase ฟรีในปี ค.ศ. 2000 ผมเองรู้สึกเกิดอาการวูบพอสมควรเนื่องจากซื้อมาได้ประมาณปีเศษ ( เท่าที่จำได้ ) ซื้อมาฟรีเหรอนี่ แต่ทาง Borland ก็มี Version ที่จำหน่ายอยู่ด้วย ในขณะที่ทางเวอร์ชั่นที่เป็นโอเพ่นซอร์สจะดำเนินการโดยกลุ่ม Firebird ซึ่งทำให้ Interbase ในปัจจุบัน ถูกพัฒนาเป็น 2 แนวทางคือ Borland Interbase และอีกทางเป็น Firebird Interbase ดังนั้นสิ่งที่จะพูดหลังจากบรรทัดนี้ไปผมจะหมายถึง Firebird Interbase เท่านั้น

คุณสมบัติของ Firebird คุณสมบัติที่ผมกล่าวถึงนี้อาจจะไม่ตรงตามตำราเท่าไหร่นัก เนื่องจากเป็นคุณสมบัติบางส่วนที่ผมชอบและใช้อยู่ ถ้าต้องการหาข้อมูลเพิ่มเติมไปที่ http://www.ibphoenix.com
  1. อย่างทีผมกล่าวไปในตอนต้น คือมันสามารถรันได้หลาย Platform มานานแล้วอย่างน้อยก็ตั้งแต่ปี 1999 ที่ผมเริ่มใช้ สำหรับโอเอสที่รันได้มี linux ,windows ,netware ,solaris ,freebsd ,HP-UX ,AIX ,Win CE สุดท้ายตามด้วย Mac OS ตัวสุดท้ายนี่ผมถือว่ามันเป็นสุดยอดแห่ง Platform จริง ๆ
  2. ผ่านการรับรองมาตรฐาน SQL-Standard ANSI-92
  3. มี Trigger และ Store Procedure ให้ใช้เป็นการลดการ Programming ไปได้มาก และทำงานได้รวดเร็วมากขึ้น
  4. ไฟล์ของ Database เป็นแบบเดี่ยว หมายถึง เราสร้าง Database test ขึ้นมา เราจะได้แฟ้ม test.gdb มาหนึ่งตัว ซึ่งภายในจะประกอบไปด้วยหลาย ๆ Table เวลาจะ Move ไปไหนจึงช่วยให้ไม่หลงลืม
  5. สามารถ Split File ได้ เช่น ไฟล์ฐานข้อมูลมีขนาดใหญ่เกิน 2 GB บน Linux จะไม่สามารถ handle ไฟล์ได้เกินกว่า 2 GB ( Linux รุ่นเก่าหน่อย ) เราสามารถแยกไฟล์ออกเป็นไฟล์ย่อย ๆ ได้ เช่น สมมุติว่า test.gdb ขนาด 5 GB เราสามารถแตกออกเป็น test.gdb ขนาด 2 GB, test.gd0 ขนาด 2 GB และ test.gd1 ขนาด 1 GB ได้ แต่เวลา Run จะมองผ่านไฟล์ test.gdb เพียงตัวเดียว เมื่อถึงข้อมูลที่ต้องมองในลำดับถัดไปมันจะทำงานเอง
  6. ระบบ Backup Online คือ เราสามารถ Backup ได้ในขณะที่ผู้ใช้กำลังใช้งานอยู่ อันนี้ผมชอบเพราะมันดีกว่า DOS มากเลย
  7. บน Linux สามารถ Run ได้ทั้งแบบ Classic หรือ Super Server แต่ถ้าหากใช้ Windows จะทำได้เฉพาะแบบ Super Server เท่านั้น ซึ่งการ Run แบบ Classic หมายถึง user connect เข้า gdb มาจะนับ 1 process ส่วนแบบ Super Server จะรันเพียงโปรเซสเดียวแล้วไปแตก thread ภายใต้โปรเซสอีกที จากประสบการณ์ บน Linux การรันในแบบ Classic จะทำงานได้รวดเร็วกว่า Super Server มาก แต่ข้อเสีย คือ จะต้องสิ้นเปลืองหน่วยความจำมากเช่นกัน
  8. การโอนข้อมูลไปมาระหว่าง Windows กับ Linux ทำได้สะดวก ในกรณีที่มีการแอกเซสข้อมูลของ Interbase บนเครื่อง Windows แล้วอยากจะนำไปวิ่งบน Linux ถ้าทำตามสูตร คือ ต้อง Backup ที่ Windows ก่อน เสร็จแล้วต้องนำมา Restore บน Linux จากการทดสอบ ผม Copy ไฟล์เข้า Linux ก็สามารถทำงานได้เลยเช่นกัน
  9. มีเครื่องมือต่าง ๆ ในการสร้าง Firebird Database มากมาย ทั้งฟรีและไม่ฟรี ไปเสาะหากันได้ที่เว็บไซต์ดังที่ได้กล่าวแล้วข้างต้น หรือจะพิมพ์สั่งที่เซิร์ฟเวอร์โดยใช้ SQL Command โดยตรงก็ได้
วิธีการติดตั้ง สุดแสนง่ายครับ ใช้ คำสั่ง rpm -Uvh FirebirdCS-1.0.0-nnn.i386.rpm ประมาณไม่เกิน 1 นาที ก็เรียบร้อย สามารถใช้งานได้เลย เพียงแต่อาจจะต้องมีการแก้ไขคอนฟิกนิดหน่อย สำหรับกรณีที่มี Client จำนวนมาก ๆ เข้าไปที่ไฟล์ /opt/interbase/isc4_config ปรับแก้ตาม Parameter ที่ต้องการ แต่ถ้า Client ไม่มากนักก็ไม่ต้องแก้อะไร สามารถใช้งานได้เลย เรียกคำสั่ง setup ไป set service firebird ให้เริ่มทำงานทุกครั้งที่เปิดเครื่องเท่านี้ก็จบ วิธีการเซ็ต Interbase ผมว่าง่ายมากครับ ทำตามเอกสารแบบ PDF ที่ให้มาคงจะไม่มีปัญหาอะไร แต่ถ้าเป็นสมัยก่อนจะติดตั้งยากกว่านี้สมัยพอสมควร เอกสารมีให้เพียบพร้อม สาเหตุมันเคยเป็น Commercial version มาก่อนจึงมีเอกสารให้ทุกอย่างพร้อมอยู่ในนั้นอยู่แล้ว สิ่งที่ควรรู้หลังจากการติดตั้ง
การ Start/Stop Service โดยใช้คำสั่ง Start > /opt/interbase/bin/ibmgr -start -user -passwd
Stop > /opt/interbase/bin/ibmgr -stop -user -passwd
การ Backup & Restore Backup> /opt/interbase/bin/gbak -b -g -v
Restore> /opt/interbase/bin/gbak -r -v
การ Config เบื้องต้น V4_LOCK_MEM_SIZE = XXX เพิ่มให้มากกว่าเดิมกรณีมี Client จำนวนมาก ANY_LOCK_MEM_SIZE = XXX เพิ่มให้มากกว่าเดิมกรณีมี Client จำนวนมาก พูดถึงฮาร์ดแวร์บ้าง เครื่องที่ใช้เป็น Database Server ( Firebird ) นี้ใช้ฮาร์ดดิสก์ขนาก 36 GB จำนวนทั้งสิ้น 3 ตัว และมีเป้าหมายที่จะใช้จัดเก็บเอกสารที่เป็นไฟล์แบบงานผลิตที่เป็นกราฟฟิกส์ ที่มีขนาดใหญ่ ( ถ้าได้ไปอ่านที่ newsgroup ที่ให้ไว้ข้างต้นมีคนเก็บ ขนาดของ Database ถึง 200 GB ) โปรเซสเซอร์ Pentium หน่วยความจำ RAM 3 GB และจัดเตรียม Swap Partition ไว้ 6 GB ซึ่งขณะนี้ Swap ใช้ในสภาพโหลดสูงสุดประมาณ 2 GB จะทำให้อืดไปบ้าง แต่ยังพอยอมรับได้ ถ้าเพิ่มหน่วยความจำ RAM ความเร็วก็จะเพิ่มขึ้นมาแต่ก็ไม่ถึงแตกต่างกันมาก ( เคยลองแล้วไปหยิบเครื่องอื่นมาใส่ ) แต่อย่าเพิ่งตกใจว่าสเปคจะต้องมากขนาดนี้คุณมี RAM 512 MB ก็เพียงพอต่อการตอบสนองทั่วไป ตอนเริ่มต้นผมก็ใช้ 512 MB เท่านั้น ซึ่งขณะนั้นจำนวน Client มีประมาณ 50 ตัว ปัจจุบันมีกว่า 100 ตัวแล้ว จึงจำเป็นต้องปรับปรุงกันบ้าง สถานะการณ์ปัจจุบัน ปัจจุบัน Firebird พัฒนามาที่ Version 1.02 Release เมื่อ December 18,2002 แต่มีตัว Beta 1.5 ให้ทดลองใช้ ( Test Released ) ส่วน .NET ก็มีให้ใช้ด้วย ลองไปเล่นดูนะครับ ผมใช้มา 4 ปีแล้วทำงานได้เร็ว เสถียร ในสภาวะที่มี client มากกว่า 100 ตัว แต่ละตัวเปิด Connection ไปยัง Database Server ประมาณ 3 Connection โดยรวมแล้วมี Connection ที่ต่อเข้าไปเกือบ 500 connection นับว่าเป็น Connection ที่มากพอสมควร ตอนนี้ผมยังใช้ Application Developer ที่เป็นลิขสิทธิ์อยู่ แต่ท่านใดอยากจะใช้ตัวพัฒนาแอปพลิเคชั่นที่เป็น Open source เช่น PHP โดยรันที่เซิร์ฟเวอร์ส่วน Client ก็มีเพียง Web Browser เท่านั้นก็สามารถจะประหยัดไปให้องค์กรได้มาก เพราะ PHP มีฟังชั่นที่สนับสนุนการเรียก Interbase ได้โดยตรงโดยไม่จำเป็นต้องใช้ ODBC ถึงเวลานี้แทบจะบอกได้เลยว่าการนำ Linux และ Interbase Firebird มาใช้งานสามารถช่วยประหยัดให้องค์กรได้มาก โดยแท้จริงถึงแม้ว่าองค์กรของผมจะมีกำลังซื้อ เพราะคำว่า "ถูก เร็ว ดี " ถือว่าเป็นมนต์เสน่ห์ของเจ้า Firebird นี้ ลองคำนวณเล่นๆดูน่ะครับว่า ถ้าใช้ Database ที่มีลิขสิทธิ์ 100 Clients จะเป็นมูลค่าเท่าไหร่ Database License แบบถูกๆก็ประมาณ 5000 บาทต่อ client แล้ว ถ้า Linux ทำภาษาไทยได้ดีกว่านี้ป่านนี้ผมคงใช้เงินลงทุนกับ Software น้อยกว่านี้มาก เมื่อท่านอ่านบทความนี้จบ ขอให้ Firebird เป็นทางเลือกอีกทางสำหรับ ทุก ๆ Platform ที่ผมกล่าวถึง ( MySQL ไม่ฟรีบน windows) เลือกสิ่งที่เหมาะที่สุด.. ฟังการบอกเล่าประสบการณ์เกี่ยวกับการนำลีนุกซ์มาพัฒนาระบบฐานข้อมูล ภายในองค์กรของคุณมานะแล้ว คิดว่าคงช่วยให้ท่านผู้อ่านได้เห็นภาพการประยุกต์ใช้ลีนุกซ์และซอฟต์แวร์โอ เพ่นซอร์สได้ชัดเจนยิ่งขึ้นนะครับ โดยเฉพาะในเรื่องของดาต้าเบสเซิร์ฟเวอร์ที่ไม่ได้มีเพียง MS Access ,MS SQL ,MySQL หรือ PostgreSQL เท่านั้นอีกต่อไป แต่อย่างไรก็ตามดาต้าเบสเซิร์ฟเวอร์ตัวไหนที่เหมาะสมกับองค์กรของคุณ คุณเท่านั้นที่จะต้องหาคำตอบ แล้วคุณจะได้ทราบว่าบางครั้งราคาอาจจะไม่ใช้เครื่องตัดสินคุณค่าของทุกสิ่ง เสมอไป
แหล่งข้อมูลอ้างอิง
www.ibphoenix.com

เว็บไซต์อย่างเป็นทางการของ IBPhoenix และ Firebird
http://firebird.sourceforge.net

แหล่งเผยแพร่ข้อมูลของ Firebird ในฐานะ Open Source Software
news.atkin.com หรือ http://www.cvalde.com/misc/interbaseNewsgroups.htm

Newsgroup ของ Interbase
http://www.mysql.com/information/features.html
ลองเปรียบเทียบคุณสมบัติด้านต่าง ๆ ของดาต้าเบสเซิร์ฟเวอร์ได้ที่เว็บไซต์นี้

Firebird เป็นฐานข้อมูล Free OpenSource RDBMS ตัวนึงที่มีประสิทธิภาพสูงมาก

Firebird

Firebird เป็นฐานข้อมูล Free OpenSource RDBMS ตัวนึงที่มีประสิทธิภาพสูงมาก โดยมีขนาดรวมของระบบเล็กมาก (น้อยกว่า 10 MB) ถือว่าเป็น RDBMS ที่สามารถติดตั้งและใช้งานจริงบนเครื่องจนๆ RAM ประมาณ 256 MB ได้อย่างสบาย
Firebird สนับสนุนลูกเล่นของ RDBMS ครบถ้วนทั้ง Trigger, Stored Procedure โดย Firebird สามารถติดตั้งได้บน Platform ที่หลากหลายไม่ว่าจะเป็น Windows, Linux, Unix และ Mac OS X จึงทำให้ Firebird มีความยืดหยุ่นเพราะสามารถประยุกต์ใช้กับระบบทั้งเล็กและใหญ่ได้
แต่คงต้องยอมรับว่าถ้าเปรียบเทียบความ Friendly ในการใช้งานและความง่ายในการเรียนรู้โดยเฉพาะอย่างยิ่งสำหรับผู้ที่เพิ่งหัด ใช้งาน RDBMS ก็คงยังสู้เจ้า Microsoft SQL Server ไม่ได้ แต่ถ้าเอาประสิทธิภาพมาเป็นตัวตั้ง และ ความยืดหยุ่นในการ Scale ไปสู่ Platform ที่ใหญ่ขึ้น Firebird คุ้มค้าต่อการเรียนรู้แน่นอนครับ

Download Firebird

Firebird สามารถ Download ได้ฟรีจาก http://www.firebirdsql.org

การติดตั้ง Firebird

การติดตั้ง Firebird บน Windows ถือเป็นเรื่องง่าย แต่สิ่งที่ทำให้ผู้ที่ไม่คุ้นุคยกับ Firebird มาก่อน(รวมทั้งผมด้วย)จะต้อง “งง” ในระหว่างการติดตั้งก็คือ Architecture ของ Firebird ซึ่งมี 2 แบบคือ Classic และ Supper Server สำหรับผู้ที่ยังใหม่กับ Firebird และ ติดตั้งบน Platform ของ Windows ขอแนะนำให้เลือกแบบ Supper Server เมื่อทำการติดตั้งเรียบร้อยแล้วจะเกิด Service ขึ้นมา 2 ตัว ชื่อ Firebird Guardian และ Firebird Server โดยตัวที่ทำหน้าที่ให้บริการด้านฐานข้อมูลก็คือ Firebird Server ส่วน Firebird Guardian นั้นจะเป็น Service ที่คอยตรวจสอบดูว่า Firebird Server นั้นมีการ Crash หรือไม่ หากมีการ Crash ก็จะได้ทำหน้าที่ Start Firebird Server ขึ้นมาใหม่ ดังนั้นในช่วงของการพัฒนาโปรแกรมเราอาจจะประหยัดทรัพยาการของเครื่องโดยการ Stop Firebird Guardian ก็ได้ (แต่การเปิด Service ไว้ก็ไม่ได้ใช้ทรัพยากรของเครื่องมากมายอะไร

GUI Tool สำหรับ Firebird

Firebird มากับ Command Line Tools ที่สามารถจัดการกับฐานข้อมูล Firebird ได้ครบถ้วน แต่อย่างไรก็ตามผมขอแนะนำ Free GUI Tool ที่ใช้งานร่วมกับ Firebird ได้เป็นอย่างดีชื่อ FlameRobin โดยสามารถ Download ได้จาก http://www.flamerobin.org/

การเชื่อมต่อกับฐานข้อมูลของ Firebird จะเป็นการระบุชื่อไฟล์ซึ่งมีนามสกุล fdb (นามสกุล gdb สำหรับเวอร์ชั่นต่ำกว่า 1.5) แต่การให้บริการที่แท้จริงจะเป็นการทำผ่าน Firebird Server Service ทั้งหมด โดย Client API จะส่ง Request ต่างๆไปยัง Server API (Firebird Server Service) เมื่อได้สิ่งที่ต้องการแล้ว Server API ก้จะส่งข้อมูลกลับมาที่ Client API เพื่อผ่านไปยัง Application ต่อไป
การติดตั้ง Firebird จะมีไฟล์ฐานข้อมูลตัวอย่างชื่อ employee.fdb ติดตั้งมาให้การใช้งานไฟล์ฐานข้อมูลดังกล่าว ก็สามารถใช้ FlameRobin เชื่อมต่อโดยการระบุชื่อและ Path ของไฟล์เพื่อเชื่อมต่อได้ทันที (User: SYSDBA, Password: masterkey)

Charset และ Collation

Firebird ต่ำกว่าเวอร์ชั่น 2.0 นั้นยังไม่รองรับการ Sorting ภาษาไทยตามหลักพจนานุกรม แต่ในเวอร์ชั่นปัจจุบัน ปัญหานี้ได้ถูกแก้ไขแล้ว โดยการสร้างฐานข้อมูลใหม่ให้ระบุ Charset=TIS620 และ Collation=TIS620_UNICODE ก็จะทำให้ฐานข้อมูลนั้นรองรับการ Sorting ภาษาไทยทันทีครับ

Firebird Client DLL

การพัฒนาโปรแกรมเพื่อใช้งานฐานข้อมูล Firebird นั้นผู้พัฒนาควรจะมีความเข้าใจใน Client DLL ของ Firebird ในระดับนึงเพื่อนำไปใช้ในการ Deployment ใน Firebird เวอร์ชั่นเก่ากว่า 1.5 จะมีการใช้งาน DLL ชุดเก่าซึ่งเป็นชุดเดียวกันกับของ InterBase ชื่อว่า gds32.dll โดยจะถูกติดตั้งไว้ที่ SYSTEM32 ส่วนตั้งแต่เวอร์ชั่น 1.5 เป็นต้นไปจะใช้ fbclient.dll ซึ่งจะติดตั้งไว้ที่ bin Directory ของ Firebird