XBase

xBase – rodzina języków programowania o orientacji bazodanowej i dialektów języka wywodzących się z języka dBASE (pierwotnie: Vulcan), rozwijanego na podstawie rozwiązań powstałych w środowisku NASA/JPL (JPLDIS)[1][2][3][4].
W szerszym użyciu terminem xBase (lub xbase) bywa również określany zestaw powiązanych formatów plików (zwłaszcza DBF), historycznie związanych z dBASE, a później przejętych przez inne narzędzia (m.in. GIS)[5][6].
Dodawane z biegiem czasu nowe polecenia i funkcje spowodowały, że języki xBase stały się językami ogólnego przeznaczenia, zachowując przy tym silną orientację na przetwarzanie danych tabelarycznych oraz (częściową) zgodność na poziomie składni i funkcji z dBASE[1][7]. Typowym modelem danych w klasycznych implementacjach były tabele przechowywane w plikach DBF (często uzupełniane o pliki memo i indeksów), przy czym „relacje” pomiędzy tabelami realizowano zwykle na poziomie mechanizmów środowiska uruchomieniowego i kodu aplikacji, a nie poprzez serwerowy silnik SQL[8].
Historia

Geneza rodziny xBase wiąże się z językiem i środowiskiem dBASE, którego pierwotna wersja (Vulcan) została opracowana w 1978 r. przez C. Wayne’a Ratliffa, inspirowanego dokumentacją JPLDIS; w 1980 r. program został objęty umową z Ashton-Tate i wprowadzony na rynek jako dBASE II[1][2][3]. W latach 80. i 90. XX w. powstało wiele implementacji i „klonów” zgodnych w różnym stopniu ze składnią dBASE (m.in. linia FoxBASE/FoxPro oraz kompilatory Clipper), co ugruntowało użycie zbiorczego określenia xBase dla tej rodziny dialektów[1].
Charakterystyka
Klasyczne dialekty xBase łączą interaktywny tryb pracy (polecenia wydawane w wierszu poleceń) z możliwością automatyzacji w postaci procedur i skryptów, a także z wbudowanym językiem wyrażeń używanym w operacjach filtracji, wyszukiwania, sortowania i aktualizacji danych[9]. Do charakterystycznych elementów składni i modelu pracy należą m.in.:
- operacje „record-at-a-time” na aktualnym rekordzie (nawigacja i modyfikacje), obok poleceń wyszukujących i filtrujących (np. rodzina poleceń typu LOCATE i warunki logiczne)[9],
- silne powiązanie operacji językowych z tabelami DBF oraz ich indeksami/memo, co w praktyce pozwalało budować kompletne aplikacje bazodanowe bez oddzielnego serwera[8],
- stopniowe rozszerzanie dialektów o elementy programowania strukturalnego, a w części implementacji również o programowanie obiektowe i integrację z GUI (np. linia Visual FoxPro, xBase++)[10][11].
Pliki i interoperacyjność
Najbardziej rozpoznawalnym elementem „ekosystemu” xBase stał się format DBF – plik tabelaryczny zawierający definicję pól i rekordy danych, często uzupełniany o pliki memo (np. DBT w dBASE lub FPT w FoxPro) oraz pliki indeksów, zależne od dialektu/implementacji[5][8][12].
Format DBF został szeroko zaadaptowany także poza światem dBASE/xBase – m.in. jako tabela atrybutów w formacie shapefile (ESRI), co wpłynęło na praktyczne ograniczenia interoperacyjności (np. limit długości nazw pól do 10 znaków w wielu narzędziach operujących na shapefile/DBF)[13][14][15][6].
DBF bywa także wykorzystywany jako format wymiany danych w narzędziach biurowych: Microsoft Access umożliwia eksport do kilku wersji dBASE/DBF, a LibreOffice udostępnia import i zapis danych w plikach DBF w arkuszu kalkulacyjnym oraz w module bazy danych[16][17].
Standaryzacja
W latach 90. podejmowano próby formalizacji języka/rodziny xBase w ramach prac standaryzacyjnych (m.in. komitet X3J19 „Xbase”), co odnotowano w publikacjach NIST jako „pending specification”, przy rozpoczęciu prac w październiku 1992 r.[18][19]. Równolegle praktyka rynkowa utrzymywała wiele dialektów o niepełnej wzajemnej zgodności, co znalazło odzwierciedlenie w literaturze porównawczej opisującej różnice poleceń i funkcji pomiędzy implementacjami[1].
Zastosowania
Języki i środowiska xBase były wykorzystywane przede wszystkim do szybkiego budowania aplikacji ewidencyjnych i biznesowych (zwłaszcza w modelu plikowym, bez serwera), a pośrednio także w obszarach, w których DBF stał się formatem wymiany danych (np. GIS/shapefile)[6][13].
Główne gałęzie rozwojowe
W skład rodziny wchodzą trzy główne gałęzie (o częściowo odmiennych dialektach i bibliotekach uruchomieniowych)[7][5].
- dBASE
- dBASE – produkt komercyjny firmy dBASE Inc.
- (dBXL/Arago) QuickSilver – produkty wchłonięte przez dBASE
- Clipper
- Clipper – produkt komercyjny
- xBase++ – produkt komercyjny firmy Alaska Software GmbH[20]
- FlagShip – produkt komercyjny firmy multisoft GmbH
- Clip – wolne oprogramowanie firmy ITK
- Harbour – wolne oprogramowanie zgodne z Clipper/xBase[21][22]
- xHarbour – wolne oprogramowanie i wariant komercyjny, kompilator wstecznie zgodny z Clipper[23]
- FoxPro
- Visual FoxPro – produkt komercyjny firmy Microsoft (wsparcie zakończone 13 stycznia 2015 r.)[10]
- Recital – produkt komercyjny firmy Recital Corp.
- Inne kontynuacje i implementacje wielodialektowe
Zobacz też
Przypisy
- ↑ a b c d e David M. Kalman: The dBASE Language Handbook. Terrella Media (reprint), 1989. [dostęp 2025-12-15]. (ang.).
- ↑ a b Life After dBase [online], Visual Studio Magazine, 1 sierpnia 2007 [dostęp 2025-12-15] (ang.).
- ↑ a b The FoxPro History – Interview with Wayne Ratliff [online], foxprohistory.org [dostęp 2025-12-15] (ang.).
- ↑ Xbase [online], Computer Dictionary of Information Technology [dostęp 2024-02-29] (ang.).
- ↑ a b c dBASE Table File Format (DBF) [online], Library of Congress (Sustainability of Digital Formats), 27 lutego 2017 [dostęp 2025-12-15] (ang.).
- ↑ a b c dBASE Table for ESRI Shapefile (DBF) [online], Library of Congress (Sustainability of Digital Formats), 10 czerwca 2025 [dostęp 2025-12-15] (ang.).
- ↑ a b XBase – EDM/2 [online], edm2.com [dostęp 2024-02-29] (ang.).
- ↑ a b c dBASE File Format (with coding details): DBF and DBT/FPT file structure [online], independent-software.com, 6 sierpnia 2018 [dostęp 2025-12-15] (ang.).
- ↑ a b dBASE II User’s Guide, Ashton-Tate, 1982 [dostęp 2025-12-15] (ang.).
- ↑ a b Microsoft Visual FoxPro 9.0 – Microsoft Lifecycle [online], Microsoft Learn [dostęp 2025-12-15] (ang.).
- ↑ Alaska Software – Company Overview (Xbase++ strategy) [online], alaska-software.com [dostęp 2025-12-15] (ang.).
- ↑ The dBASE interface (DBF/DBT) [online], dbase.com KnowledgeBase [dostęp 2025-12-15] (ang.).
- ↑ a b ESRI Shapefile Technical Description [online], esri.com [dostęp 2025-12-15] (ang.).
- ↑ 000142: Field name in dBASE table cannot be longer than 10 characters [online], ArcGIS Pro Documentation [dostęp 2025-12-15] (ang.).
- ↑ ESRI Shapefile / DBF — GDAL documentation (field name limit) [online], gdal.org [dostęp 2025-12-15] (ang.).
- ↑ Export data to dBASE [online], Microsoft Support [dostęp 2025-12-15] (ang.).
- ↑ Importing and Exporting dBASE Files [online], LibreOffice Help [dostęp 2025-12-15] (ang.).
- ↑ NIST Special Publication 500-220 (wzmianka o specyfikacji Xbase i pracach X3J19) [online], nvlpubs.nist.gov [dostęp 2025-12-15] (ang.).
- ↑ X3 Overview (w tym: X3J19 Xbase) [online], t10.org [dostęp 2025-12-15] (ang.).
- ↑ Alaska Software Products – Xbase++ [online], alaska-software.com [dostęp 2025-12-15] (ang.).
- ↑ Harbour (Why use it?) [online], harbour.github.io [dostęp 2025-12-15] (ang.).
- ↑ harbour/core (GitHub) [online], github.com [dostęp 2025-12-15] (ang.).
- ↑ xHarbour – Open Source Extended Clipper Language [online], xharbour.org [dostęp 2025-12-15] (ang.).
- ↑ XSharp (X#) [online], Visual Studio Marketplace [dostęp 2025-12-15] (ang.).
- ↑ XSharp (GitHub Organization) [online], github.com [dostęp 2025-12-15] (ang.).
Linki zewnętrzne
- http://www.clicketyclick.dk/databases/xbase/format/index.html – opis formatu plików DBF i innych plików xBase
- https://www.loc.gov/preservation/digital/formats/fdd/fdd000325.shtml – opis formatu DBF (Library of Congress)
- https://harbour.github.io/ – projekt Harbour
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.