DBASE

**dBase** merupakan sistem pengurusan pangkalan data (DBMS) yang pertama digunakan secara meluas bagi mikrokomputer, diterbitkan oleh Ashton-Tate bagi CP/M, dan kemudiannya bagi Apple II, Apple Macintosh, UNIX, VMS, dan IBM PC bagi DOS di mana ia menjadi salah satu judul perisian paling laku untuk beberapa tahun. dBase lambat berhijrah ke Microsoft Windows dan secara perlahan, hilang pasaran kepada saingan seperti Paradox, Clipper, FoxPro, dan Microsoft Access. dBase dijual kepada Borland pada 1991, yang kemudian pada 1999 menjual hak baris pengeluaran kepada **dBase Inc** yang baru ditubuhkan. Pada 2004, nama dBase Inc. ditukar kepada dataBased Intelligence, Inc.

Bermula pada pertengahan 1980-an banyak syarikat lain menghasilkan loghat atau variasi mereka sendiri bagi keluaran dan bahasa ini. Ini termasuk FoxPro (kini Visual FoxPro), Arago, Force, dbFast, dbXL, Quicksilver, Clipper, Xbase++, FlagShip, Recital's Terminal Developer , dan Harbour/XHarbour. Secara am, semua ini dikenali sebagai xBase.

Format fail dBase asas, fail .dbf, digunakan secara meluas dalam banyak aplikasi lain yang memerlukan format mudah bagi menyimpan data berstruktur.

## Sejarah terkini
dBase telah berubah menjadi bahasa berorentasikan objek moden yang boleh dijalankan pada Windows 32 bit. Ia boleh digunakan bagi membina pelbagai jenis applikasi termasuk applikasi web dihoskan pada pelayan Windows, applikasi pelanggan besar Windows, dan applikasi perisian tengah. dBase mampu mencapai kebanyakan enjin pangkalan data moden melalui pemacu ODBC.

dBase menampilkan IDE dengan Command Window dan Navigator, pengkompil tepat pada masa, prapemproses, pentafsir mesin maya, pemaut untuk mencipta .exe bagi aplikasi dBase, enjin masa jalanan yang boleh didapati secara percuma, dan pelbagai perkakas rekabentuk GUI dwi-cara termasuk *Form Designer* (Pereka Borang) , *Report Designer* (Pereka Laporan), *Menu Designer* (Pereka Menu), *Label Designer* (Pereka Label), *Datamodule Designer* (Pereka modul data), *SQL Query Designer* (Pereka Pertanyaan SQL), dan *Table Designer* (Pereka Jadual). Peralatan dwi-cara merujuk kepada keupayaan bertukar daripada menggunakan perkakas rekabentuk GUI kepada penyunting kod sumber dan sebaliknya. Perkakas lain termasuk penyunting kod sumber, pengurus projek yang memudahkan pembinaan dan penggunaan aplikasi dBase, serta penyahpepijat bersepadu.

dBASE menampilkan pengendalian pengecualian yang berstruktur dan memiliki banyak kelas bina dalam yang boleh disubkelaskan menerusi pewarisan tunggal. Terdapat kelas maya, data, dan banyak lagi kelas sokongan. Kelas maya termasuk Form, SubForm, Notebook, Container, Entryfield, RadioButton, SpinBox, ComboBox, ListBox, PushButton, Image, Grid, ScrollBar, ActiveX, Report, ReportViewer, Text, TextLabel dan banyak lagi. Kelas pangkalan data termasuk kelas Session, Database, Query, Rowset, Field, StoredProc dan Datamodule. Kelas lain termasuk File, String, Math, Array, Date, Exception, Object dan lain-lain. Objek dBase boleh disubkelaskan secara dinamik dengan menambah sifat baru pada mereka ketika dijalankan.

Versi dBASE sekarang, **dBASE Plus**, serasi sepenuhnya dengan versi dBASE 32 bit yang terdahulu, termasuk **Visual dBASE** 7.x dan **dB2K**. Ia separuh serasi dengan versi Windows 16 bit (dBASE for Windows 5.x dan Visual dBASE 5.x) dan dengan versi DOS terdahulu (dBASE II, dBASE III, dBASE IV, dan dBASE 5).

## Asal
Pembangun asal dBase ialah Wayne Ratliff. Pada tahun 1978, semasa bekerja sebagai kontraktor di Jet Propulsion Laboratory, Ratliff menulis sebuah perisian pangkalan data dalam bahasa himpunan bagi mikrokomputer berasaskan CP/M bagi membantunya memenangi pertaruhan bola sepak Amerika di pejabat. Dia mengasaskannya berdasarkan JPLDIS (Jet Propulsion Laboratory Display Information System) Jeb Long dan menamakannya "Vulcan", sempena nama bangsa Mr. Spock *[[Star Trek]]*. Menurut Ratliff, bahasa JPLDIS adalah bahasa berasaskan-perintah yang mudah bertujuan untuk kegunaan interaktif pada terminal cetak. Terdapat bukti bahawa JPLDIS dipengaruhi oleh produk pangkalan data komputer kerangka utama Tymshare yang dikenali sebagai RETRIEVE.

Pada awal 1980, George Tate, salah seorang pengasas Ashton-Tate, membuat perjanjian pemasaran dengan Ratliff yang membawa kepada penamaan semula Vulcan kepada dBase II, dan perisian tersebut menjadi kejayaan besar dengan cepat.

## Bahasa pengaturcaraan dBase
Selepas menulis Vulcan untuk IMSAI 8080 dan kemudian melabuhkannya ke CP/M dan MS-DOS (sebagai dBase), Ratliff menambah perintah bagi menerima antara muka skrin video dan juga perintah bagi mempertingkatkan kawalan aliran (seperti DO WHILE/ENDDO) serta logik bersyarat (seperti IF/ENDIF).

Bagi mengendalikan data, dBase menyediakan perintah prosedur terperinci dan fungsi bagi membuka dan merentasi rekod-rekod dalam fail data (contohnya USE, SKIP, GO TOP, GO BOTTOM, dan GO recno), memanipulasi nilai medan (REPLACE dan STORE), di samping memanipulasi rantetan teks (contohnya STR() dan SUBSTR()), nombor dan data. Keupayaannya membuka dan mengubah lebih daripada satu fail yang mengandungi data berkaitan secara serentak mendorong Ashton-Tate mengelar dBase sebagai "pangkalan data hubungan," sungguhpun ia tidak memenuhi kriteria yang ditetapkan oleh model hubungan Dr. Edgar F. Codd (ia boleh dicirikan sebagai hubungan kacukan dan pangkalan data navigasi bersepadu).

dBase menggunakan seni bina pentafsir masa jalanan, yang membenarkan pengguna melakukan perintah dengan menaipnya dalam "*dot prompt*" baris perintah. Setelah menaip perintah atau fungsi dan menekan butang , pentafsir segera akan melaksanakan atau menilainya. Sama juga, skrip aturcara (fail teks dengan sambungan .PRG) dijalankan dalam pentafsir (dengan perintah DO), di mana setiap perintah dan pemboleh ubah dinilai pada masa jalanan. Ini menjadikan aturcara-aturcara dBASE pantas dan mudah ditulis serta diuji kerana sang pengaturcara tidak perlu terlebih dahulu mengkompil dan mengaitkan mereka sebelum dijalankan. Pada zaman CPU hanya mempunyai satu atau dua digit megahertz, langkah ini—bagi bahasa lain&mdah;amat memakan masa dan menjemukan. Pentafsir juga mengendali secara dinamik dan automatik kesemua pengurusan ingatan (maksunya tiada ingatan prauntukkan dan tiada notasi hexadesimal), yang lebih penting berbanding ciri lain yang membolehkan seseorang usahawan tanpa pengalaman pengaturcaraan membangunkan sesebuah applikasi.

Walaupun perintah-perintah dBase mudah serta ringkas, ia memberikan cabaran kepada penggunanya apabila mereka menjadi lebih mahir dan apabila pengaturcara profesional semakin tertarik akannya. Aplikasi yang lebih rumit dan kritikal menuntut ciri-ciri pengaturcaraan profesional untuk kebolehharapan dan berprestasi yang lebih baik, tidak lupa juga pembangunan yang lebih produktif.

Lama-kelamaan, pesaing Ashton-Tate memperkenalkan keluaran dan pengkompil klon yang memperkenalkan ciri-ciri pengaturcaraan yang lebih kukuh seperti fungsi takrifan pengguna sebagai tambahan kepada set fungsi bina dalam, pembolehubah dalam skop bagi menulis routin dan fungsi yang kurang berkemungkinan dijejaskan proses luaran, jujukan bagi pengendalian data rumit, ciri-ciri pembungkus bagi menghantar aplikasi sebagai fail boleh laku tanpa pentafsir masa jalanan luar, sintaks berorientasikan objek, dan antaramuka bagi mencapai data pada sistem pengurusan pangkalan data jauh. Ashton-Tate turut melaksanakan kebanyakan ciri-ciri ini dengan pelbagai tahap kejayaan. Ashton-Tate dan pesaingnya turut mula memasukkan SQL, bahasa piwaian ANSI/ISO bagi mencipta, menyunting, dan mengambil data yang disimpan dalam sistem pengurusan pangkalan data hubungan.

Pada akhir 1980-an, beberapa kumpulan pembangun cuba mencipta piwaian bahasa dBase (IEEE 1192). Bermula pada ketika itu bahasa tersebut dirujuk sebagai "xBase" bagi membezakannya dengan produk Ashton-Tate. Ratusan buku yang berkaitan dengan pengaturcaraan dBase dan Xbase telah ditulis. Untuk beberapa tahun pada akhir 1980-an, pengarang Joseph Carrabis, yang menulis beberapa teks dBASE, merupakan salah seorang daripada sepuluh pengarang teratas bagi jualan terbaik dunia.

Hari ini, perlaksanaan bahasa dBase telah berkembang supaya tampil dengan banyak ciri yang disasarkan untuk aplikasi perniagaan, antaranya pengaturcaraan berorientasi objek, mengolah data jauh dan teragih melalui SQL, kefungsian Internet, dan interaksi dengan peranti moden.

### Contoh pengaturcaraan

Contoh berikut membuka jadual pekerja ("empl"), memberikan kenaikan gaji 10% kepada semua pengurus yang menyelia 1 atau lebih pekerja, lalu mencetak nama dan alamatnya.


```visualfoxpro
USE empl            
 REPLACE ALL salary WITH salary * 1.1 FOR supervises > 0
 LIST ALL fname, lname, salary TO PRINT
 * (ulasan: kata-kata simpanan ditulis berhuruf BESAR untuk tujuan ilustrasi)
```


Perhatikan bahawa nama jadual tidak perlu diulang berkali-kali. Jadual ("semasa") anggapan adalah kekal sama sehingga diberitahu sebaliknya. Ini berbeza dengan SQL yang hampir selalunya jadual perlu dinyatakan dengan jelas. Kerana asal-usulnya ialah sebuah bahasa interaktif pentafsiran, dBASE menggunakan pelbagai teknik mengikut konteks bagi mengurangkan jumlah penaipan. Ini membantu pembangunan interaktif meningkat namun turut menyebabkan pengaturcaraan bermodul—dalam skala yang lebih besar—menjadi lebih susah. Kerana dBASE direka tanpa mengambil kira tentang perkara ini, para pembangun harus berhati-hati dalam mengalihkan (meminjam) kod atur cara yang memegang konteks tertentu, lantas membuatkan pengarangan kod dalam skala yang lebih besar menjadi susah. Rujukan khusus tempat kerja masih boleh dilakukan dengan menggunakan tatatanda anak panah ("B->customer") agar lebih daripada satu jadual boleh dikendalikan secara serentak.

Satu lagi ciri menonjol ialah penggunaan semula klausa yang sama bagi perintah berlainan. Sebagai contoh, klausa FOR mengehadkan skop perintah yang diberi (agak sama dengan klausa WHERE SQL). Perintah berlainan seperti LIST, DELETE, REPLACE, BROWSE, dll. kesemuanya boleh menerima klausa FOR bagi menghadkan atau menapis skop aktiviti mereka. Ini memudahkan bahasa ini dipelajari.

dBase juga merupakan salah satu bahasa berorentasi perniagaan pertama yang melaksanakan penilaian rentetan, lama sebelum Perl.


```visualfoxpro
i = 2
 myMacro = i + 10
 i = &myMacro
 * i kini bernilai 12
```


Di sini "&" memberitahu penafsir untuk menilai rentetan tersimpan dalam "myMacro" sama seperti ia adalah kod perisian. Ini merupakan contoh ciri yang menjadikan perisian dBase lentur dan dinamik, kadangkala dikenali sebagai "keupayaan meta" dalam profesion ini. Bagaimanapun, ia boleh menimbulkan masalah bagi prakompil dan bagi menjadikan kod aturcara selamat daripada digodam. Bagaimanapun, dBase cenderung mensasar aplikasi khas bagi syarikat kecil serdahana di mana keselamatan berasaskan pengkompil seringkali kurang diendahkan. Sebagai contoh, tiada siapa akan menimbangkan menulis sistem pengoperasian menggunakan bahasa dBase.

## Sambutan
Sungguhpun bahasa ini bukan lagi pilihan utama bagi bahasa perniagaan, sesetengah mendapatinya sebagai alat penukar data ad-hoc interaktif yang sangat baik. Tidak seperti SQL, seseorang dengan mudah dapat memecahkan transformasi data kepada langkah-langkah kecil untuk menganalisis dan memeriksa secara memandang. (Salah satu pilihan bagi melumpuhkan pemeriksaan itu adalah dengan menggunakan arahan PROTECT. Arahan PROTECT merupakan peranti penyulitan hak milik yang direka untuk dBase). DBase juga didakwa memudahkan secara berperingkat pengumpulan arahan manipulasi data interaktif sedia ada ke dalam subrutin untuk menjadi skrip automatik, berbeza dengan pesaing yang boleh memerlukan bermula dari awal untuk bertukar dari arahan tetikus interaktif kepada skrip program. Ia boleh dianggap sebagai bahasa "mesra papan kekunci", sebahagiannya kerana ia direka yang sebelum tetikus menjadi suatu yang biasa.

Sebagai sebuah pelantar pembangunan aplikasi, dBASE mengisi jurang antara bahasa-bahasa pengaturcaraan aras yang lebih rendah (seperti C, C++, serta Java) dan 4GL proprietari aras tinggi serta peralatan sepenuhnya visual, lantas membekalkan kesenangan penggunaan relatif kepada ahli perniagaan yang mempunyai kebolehan mengaturcara rendah di samping produktiviti tinggi yang mampu membuatkan golongan pembangun profesional sanggup menukarkan kawalan aras rendah deminya.

Ia kekal sebagai peralatan mengajar sungguhpun selepas jualan merosot kerana perintah berasaskan teks adalah lebih mudah ditunjukkan dalam bahan latihan bercetak berbanding pesaing berasaskan tetikus. Lama-kelamaan, perintah berasaskan tetikus turut ditambah kepada produk ini, namun bahasa perintahnya kekal piawaian sebenar sementara perintah tetikus biasanya bergantung kepada pembekal tertentu.

## Format fail
Warisan utama dBASE ialah format failnya .dbf, yang telah dipakai dalam beberapa aplikasi lain. Sebagai contoh format shapefile yang dibangunkan oleh ESRI bagi data ruang dalam sistem maklumat geografi, menggunakan fail .dbf bagi menyimpan data atribut ciri. Istilah xBase sering kali digunakan bagi mengelompok aplikasi sebegini.

Sistem pangkalan data dBASE merupakan antara sistem yang pertama memberikan seksyen pengepala bagi memerihalkan struktur data dalam sesebuah fail. Ini bererti perisian tidak lagi perlu pengetahuan awal mengenai struktur data fail tertentu, sebaliknya boleh sahaja menanya fail data terbabit bagaimana ia distrukturkan.

Jenis fail kedua ialah format fail .dbt bagi medan memo. Berlainan dengan medan huruf yang setiap satunya terhad kepada 254 huruf, medan memo ialah penuding 10-bait kepada fail .dbt yang mampu memuatkan lebih banyak medan teks. Keupayaan dBase amat terhad dalam memproses medan memo, tetapi sesetengah bahasa xBase yang lain contohnya Clipper, menganggap medan memo sebagai rentetan sama seperti medan huruf bagi semua tujuan kecuali untuk simpanan kekal.

dBASE menggunakan fail .ndx untuk indeks tunggal dan fail .mdx (*multiple-index*) untuk memegang antara 1 hingga 48 indeks. Sesetengah bahasa xBase menyertakan keserasian dengan fail .ndx sementara yang lain menggunakan format fail lain misalnya .ntx yang digunakan oleh bahasa pengaturcaraan Clipper dan file .cdx yang digunakan oleh FoxPro.

## Rujukan

## Pautan luar
* Laman rasmi dBASE
* Temuramah bersama C. Wayne Ratliff bercerita tentang kerjayanya dan sejarah Vulcan/dBase
* Xbase (and dBase) File Format Description
* Takrifan C2 Wiki bagi "XBase"