Przejdź do zawartości

xBase

Z Wikipedii, wolnej encyklopedii
Fragment kodu Visual 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(inne języki))[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

[edytuj | edytuj kod]
Fragment kodu Visual Xbase++

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

[edytuj | edytuj kod]

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ść

[edytuj | edytuj kod]

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

[edytuj | edytuj kod]

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

[edytuj | edytuj kod]

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

[edytuj | edytuj kod]

W skład rodziny wchodzą trzy główne gałęzie (o częściowo odmiennych dialektach i bibliotekach uruchomieniowych)[7][5].

Przypisy

[edytuj | edytuj kod]
  1. a b c d e David M. Kalman: The dBASE Language Handbook. Terrella Media (reprint), 1989. [dostęp 2025-12-15]. (ang.).
  2. a b Life After dBase [online], Visual Studio Magazine, 1 sierpnia 2007 [dostęp 2025-12-15] (ang.).
  3. a b The FoxPro History – Interview with Wayne Ratliff [online], foxprohistory.org [dostęp 2025-12-15] (ang.).
  4. Xbase [online], Computer Dictionary of Information Technology [dostęp 2024-02-29] (ang.).
  5. 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.).
  6. 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.).
  7. a b XBase – EDM/2 [online], edm2.com [dostęp 2024-02-29] (ang.).
  8. 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.).
  9. a b dBASE II User’s Guide, Ashton-Tate, 1982 [dostęp 2025-12-15] (ang.).
  10. a b Microsoft Visual FoxPro 9.0 – Microsoft Lifecycle [online], Microsoft Learn [dostęp 2025-12-15] (ang.).
  11. Alaska Software – Company Overview (Xbase++ strategy) [online], alaska-software.com [dostęp 2025-12-15] (ang.).
  12. The dBASE interface (DBF/DBT) [online], dbase.com KnowledgeBase [dostęp 2025-12-15] (ang.).
  13. a b ESRI Shapefile Technical Description [online], esri.com [dostęp 2025-12-15] (ang.).
  14. 000142: Field name in dBASE table cannot be longer than 10 characters [online], ArcGIS Pro Documentation [dostęp 2025-12-15] (ang.).
  15. ESRI Shapefile / DBF — GDAL documentation (field name limit) [online], gdal.org [dostęp 2025-12-15] (ang.).
  16. Export data to dBASE [online], Microsoft Support [dostęp 2025-12-15] (ang.).
  17. Importing and Exporting dBASE Files [online], LibreOffice Help [dostęp 2025-12-15] (ang.).
  18. NIST Special Publication 500-220 (wzmianka o specyfikacji Xbase i pracach X3J19) [online], nvlpubs.nist.gov [dostęp 2025-12-15] (ang.).
  19. X3 Overview (w tym: X3J19 Xbase) [online], t10.org [dostęp 2025-12-15] (ang.).
  20. Alaska Software Products – Xbase++ [online], alaska-software.com [dostęp 2025-12-15] (ang.).
  21. Harbour (Why use it?) [online], harbour.github.io [dostęp 2025-12-15] (ang.).
  22. harbour/core (GitHub) [online], github.com [dostęp 2025-12-15] (ang.).
  23. xHarbour – Open Source Extended Clipper Language [online], xharbour.org [dostęp 2025-12-15] (ang.).
  24. XSharp (X#) [online], Visual Studio Marketplace [dostęp 2025-12-15] (ang.).
  25. XSharp (GitHub Organization) [online], github.com [dostęp 2025-12-15] (ang.).

Zobacz też

[edytuj | edytuj kod]

Linki zewnętrzne

[edytuj | edytuj kod]