Mega Code Archive

 
Categories / Delphi / Examples
 

Why Use Interbase

Title: Why Use Interbase? Question: How do I convince my clients that Interbase is a better bet than using other more expensive relational database management systems' Answer: The following is an answer that I gave someone for the question: 'How do I convince my clients that Interbase is a better bet than using other more expensive relational database management systems?'. Please feel free to make comments or additions to me. Orbital Decisions has been using Interbase since September 1995. This paper was written in about 1998. Updated as required. Note: 'lower' used below refers to non-RDBMS products like Paradox, Access, DBase, Clipper, etc. Executive Summary I would say that the fastest database from a development point of view is Interbase. It is easy to install, maintain and use. A full-time DBA is not required. If has a very good SQL implementation and is a full DBMS with: transaction integrity, automatic recovery, 100% uptime, multi-generational-architecture, stored procedures, triggers, event alerters, exceptions, domains and other DBMS features. It is much better to write new systems using Interbase than to even consider such archaic systems using DBase, Clipper, Paradox, Access, Approach, or other DBMSs. For a slightly bigger initial investment you will save yourselves vaste development time costs and get the benefits already mentioned of a DBMS. Table of Contents 1) True RDBMS means: ... ; 2) Network cost decreased; 3) Development cost; 4) Speed of development; 5) Scalability; 6) OS Cost; 7) Maintenance; 8) Internet; 9) Free Development, Licencing and Distribution. 1) True RDBMS means: a) full transaction integrity, ie begin, commit and rollback transactions; b) full backup and recovery procedures built in; c) compared with the 'lower' cheaper options IB contains: stored procedures, triggers, events, exceptions and domains which all sit on the server (see point 2) below); d) Minimum Compliance with SQL 92 or later means that programmers working on one SQL database can reasonably easily be expected to work on other SQL databases. Note though that Borland (Turbo Pascal) and now Interbase have always had a lot of extentions to the standard products in their language. And I used Turbo Pascal v1.0 in 1983 on an Apple IIc with a Z80 card running CP/M and Turbo Pascal was already the best programming language on the market. Needless to say I have never looked back; e) RDBMS optimisation engine speeding up queries; f) Views can be created on the server, for example the following view is used by one of my programmers who doesn't really need to understand the underlying database complexity and can therefore concentrate on the programming task. eg i) CREATE VIEW VBTYPELOOMWARP (VBSTRU, VBCOL, LOOMPOSN, WARPTYPE, WARPCOL) AS select sl.vbstru,vt.vbcol,ls.loomposn,vs.warptype,wc.warpcol from struloom sl,loomspec ls,vbstru vs,vbtype vt,warpcol wc where sl.loomtype=ls.loomtype and sl.vbstru=vs.vbstru and vs.vbstru=vt.vbstru and vt.warptype=wc.warptype and vt.warpcol=wc.warpcol The programmer can then do the following: "select vbstru||vbcol from vbtypeloomwarp where loomposn=1 and warptype='A' and warpcol='WHT' " to give all the fabric types (vbstru concatenated with vbcol) for a particular warptype and colour running on a particular loom. Needless to say adding views for clients can allow them to do their own reporting; for example I have added the following view to one of my clients databases (in the case Oracle) which allows them to select registered participants who haven't been deleted and who are in campaign 150. All I need to do is show my users how to join any other table to this 'table' and therefore limit their queries to the required data and means that the potential for users doing outer joins is limited. eg ii) create view regdparticip150 as select * from particip where campaign_number=150 and registration_date is not null and (pa.deleted_flag 'Y' or deleted_flag is null) 2) Network cost decreased (refer to 1c above): a) if you program client/server properly then you can dramatically decrease network traffic thus making your network installation costs lower. I would say that 10MBPS should be ample for all networking solutions for a client and that where you have more than 25 concurrent users you can have a fast backbone such as 100MBPS or Fibre (1 GBPS or theoretically infinite (speed of light)) with 10MBPS segments; b) therefore speed of installation decreased; c) Local Interbase (single user) inexpensive. Multi-user can run on Windows 95, although with more than 4 users you should consider using Windows NT or Linux. 3) Development cost: a) lower because of ability to use SQL rather than searching using find, skip type structures in loops; b) An SQL specialist can work on more than one SQL based database easily (see 1c)). 4) Speed of development: Considering time alone and as a consultant and running a software house I consider everything in terms of time and how quickly I can give a client a solution, I am quite happy not to make one cent out of selling the RDBMS if it means a faster development time for me, plus easier maintenance. 5) Scalability: If your client ever decides to use a Unix or other type of O/S, IB runs on it whereas SQL-server and 'lower' databases don't. 6) OS Cost: This is a new feature. In June 1998, IB arrived on Linux. (Other RDBMS vendors are now following suite). This implies compared to NT and Novell: a) no licence fees per user or per server (RedHat 5 is about US$70 on 2 CDs and is well worth buying because of installation instructions and no need to download files of the 'net); b) should be faster than running an RDBMS on NT or Novell as NT is not optimised to use the processors it runs on and both products end up being good file servers but little else (assuming same Harware, CPU, RAM, Drive, Controller, etc). NT also does not have a true scheduler built into it allowing for true multi-tasking. 7) Maintenance: This is a very important point for small businesses without specialist IS staff and when comparing IB with other RDBMSs: a) Installation is incredibly quick. No need to create table-spaces. Comes on single CD. BDE works (Delphi 5 doesn't need BDE). Middle-tier works (compare the time it takes to get Oracle working with all of its drivers etc etc); b) Maintenance is a snap. Almost nothing one needs to do. No table-spaces; no cluster commands; c) You can still mirror (shadow) your database if you like; d) If your hard drive fills up you can always continue the database on another one; e) If you have a UPS (Uninterruptable Power Supply), you can turn off write through cache so that the database writes to memory and only when its memory cache is full, it then writes to disk. This significantly speeds up the database. 8) Internet: IB is internet ready. 9) Free (No Licence Costs): Interbase has been free since version 6, released in 2000. Interbase v4 for Linux was also free. Summary In my opinion, Interbase is the best RDBMS product to use for many businesses, large or small.