dBase (также стилизованное dBASE ) была одной из первых систем управления базами данных для микрокомпьютеров и самой успешной в свое время. [3] Система dBase включала в себя ядро базы данных , систему запросов, ядро форм и язык программирования , который связывал все эти компоненты вместе.
Первоначально выпущенный как Vulcan для PTDOS в 1978 году, порт CP/M привлек внимание Ashton-Tate в 1980 году. Они лицензировали его, переиздали как dBASE II и позже портировали на компьютеры IBM PC под управлением DOS . На платформе ПК в частности dBase стал одним из самых продаваемых названий программного обеспечения в течение ряда лет. Крупное обновление было выпущено как dBase III и портировано на более широкий спектр платформ, включая UNIX и VMS . К середине 1980-х годов Ashton-Tate был одним из «большой тройки» издателей программного обеспечения на раннем рынке бизнес-ПО, [4] наряду с Lotus Development и WordPerfect . [4]
Начиная с середины 1980-х годов несколько компаний выпустили собственные вариации продукта dBase и особенно языка программирования dBase. К ним относятся FoxBASE+ (позже переименованный в FoxPro), Clipper и другие так называемые продукты xBase . Многие из них были технически сильнее dBase, но не смогли потеснить его на рынке. [5] Это изменилось с плохим приемом dBase IV , дизайн и стабильность которого были настолько неудовлетворительными, что многие пользователи перешли на другие продукты. [6]
В начале 1990-х годов продукты xBase представляли собой ведущую платформу баз данных для внедрения бизнес-приложений. Размер и влияние рынка xBase не остались незамеченными, и в течение одного года три ведущие компании xBase были приобретены более крупными компаниями-разработчиками программного обеспечения:
К началу десятилетия 21-го века большинство оригинальных продуктов xBase утратили свою популярность, а многие исчезли полностью. Продукты, известные как dBase [12], все еще существуют, принадлежащие dBase LLC. [13] [14]
В конце 1960-х годов Фред Томпсон в Лаборатории реактивного движения (JPL) использовал продукт Tymshare под названием RETRIEVE для управления базой данных электронных калькуляторов, которые в то время были очень дорогими продуктами. В 1971 году Томпсон сотрудничал с Джеком Хэтфилдом, программистом из JPL, чтобы написать улучшенную версию RETRIEVE, которая стала проектом JPLDIS. JPLDIS был написан на языке FORTRAN на мэйнфрейме UNIVAC 1108 и был представлен публике в 1973 году. Когда Хэтфилд покинул JPL в 1974 году, его роль занял Джеб Лонг. [15]
Работая в JPL в качестве подрядчика, C. Wayne Ratliff вошел в офисный футбольный пул . Он не интересовался игрой как таковой, но чувствовал, что может выиграть пул, обрабатывая статистику после игры, найденную в газетах. [16] Чтобы сделать это, он обратил свое внимание на систему баз данных и, случайно, наткнулся на документацию для JPLDIS. Он использовал ее в качестве основы для порта в PTDOS на своем микрокомпьютере IMSAI 8080 , собранном из набора , и назвал полученную систему Vulcan (в честь родной планеты мистера Спока из Star Trek ). [17] [18] [19]
Джордж Тейт и Хэл Лэшли создали две успешные стартап-компании: Discount Software, которая была одной из первых, кто продавал программное обеспечение для ПК по почте потребителям, и Software Distributors, которая была одним из первых оптовых дистрибьюторов программного обеспечения для ПК в мире. Они заключили соглашение с Рэтлиффом о маркетинге Vulcan и основали Ashton-Tate [20] (название Ashton было выбрано исключительно из маркетинговых соображений) для этого. Рэтлифф перенес Vulcan из PTDOS в CP/M . Хэл Паулюк, который занимался маркетингом зарождающейся компании, решил изменить название на более деловое «dBase». Паулюк придумал использовать строчную букву «d» и все заглавные буквы «BASE», чтобы создать отличительное название. Паулюк предложил назвать новую версию продукта второй («II»), чтобы показать, что она менее глючная, чем первоначальный релиз. Результатом стал dBase II , который стал стандартным приложением CP/M наряду с WordStar и SuperCalc. [21]
В 1981 году IBM заказала порт dBase для тогда еще находившегося в разработке ПК. Получившаяся программа была одним из первых программных продуктов, доступных, когда IBM PC поступил в продажу осенью 1981 года. dBase была одной из немногих «профессиональных» программ на платформе и стала пользоваться огромным успехом. Клиентская база включала не только конечных пользователей, но и все большее число «реселлеров с добавленной стоимостью» или VAR, которые покупали dBase, писали приложения с ее помощью и продавали готовые системы своим клиентам. Выпуск dBase II RunTime в мае 1983 года еще больше укрепил dBase на рынке VAR, позволив VAR развертывать свои продукты с использованием более дешевой системы RunTime. [ необходима цитата ]
Хотя некоторые критики утверждали, что dBase было трудно изучить, его успех создал много возможностей для третьих лиц. К 1984 году более 1000 компаний предлагали разработку приложений, связанных с dBase, библиотеки кода для добавления функциональности, приложения, использующие dBase II Runtime, консалтинг, обучение и книги с инструкциями. Компания в Сан-Диего (сегодня известная как Advisor Media) впервые выпустила журнал, посвященный профессиональному использованию dBase, Data Based Advisor ; его тираж превысил 35 000 экземпляров через восемь месяцев. [22] Все эти виды деятельности способствовали быстрому росту dBase как ведущего продукта своего типа. [23] [24]
По мере распространения платформ и операционных систем в начале 1980-х годов компания столкнулась с трудностями при переносе dBase на основе ассемблера на целевые системы. Это привело к переписыванию платформы на языке программирования C с использованием автоматизированных инструментов преобразования кода. Полученный код работал, но был по сути недокументированным [ почему? ] и бесчеловечным в синтаксисе [ как? ] , проблема, которая окажется серьезной в будущем. [ нужна цитата ]
В мае 1984 года был выпущен переписанный dBase III. Хотя рецензенты широко критиковали его заниженную производительность, в остальном продукт получил хорошие отзывы. После нескольких быстрых обновлений система стабилизировалась и снова стала бестселлером на протяжении 1980-х годов, а также сформировала знаменитое «трио приложений» совместимых с ПК продуктов (dBase, Lotus 123 и WordPerfect ). К осени 1984 года в компании работало более 500 сотрудников, а годовой объем продаж составлял 40 миллионов долларов США (что эквивалентно 117 миллионам долларов США в 2023 году), подавляющее большинство из которых приходилось на продукты dBase. [ необходима цитата ]
В Советском Союзе также существовал несанкционированный клон dBase III под названием Rebus . Его адаптация к русскому языку свелась к механической замене названия, русификации файлов справки и исправлению таблиц сортировки для русского языка.
Представленный в 1988 году [25] после задержек [26] , dBase IV имел «более 300 новых или улучшенных функций». К тому времени FoxPro уже добился успеха, и даже поддержка dBase IV для Query by Example и SQL оказалась недостаточной. [ необходима цитата ]
В то же время, Borland , купившая Ashton-Tate , выпустила в 1992 году пересмотренную версию dBase IV [27], но с акцентом на «разработке для программистов», а не «для обычных пользователей». [ необходима цитата ]
Для обработки данных dBase предоставляет подробные процедурные команды и функции [36]
dBase — это язык разработки приложений и интегрированная навигационная система управления базами данных , которую Эштон-Тейт обозначил как « реляционную », но она не соответствовала критериям, определенным реляционной моделью доктора Эдгара Ф. Кодда . Она использовала архитектуру интерпретатора времени выполнения, которая позволяла пользователю выполнять команды, вводя их в командной строке «подсказка с точкой». [ необходима цитата ] Аналогично, программные скрипты (текстовые файлы с расширениями PRG) запускались в интерпретаторе (с помощью команды DO). [ необходима цитата ]
Со временем конкуренты Ashton-Tate представили так называемые клонированные продукты и компиляторы, которые имели более надежные программные функции, такие как определяемые пользователем функции (UDF), массивы для сложной обработки данных. Ashton-Tate и ее конкуренты также начали включать SQL , стандартный язык ANSI/ISO для создания, изменения и извлечения данных, хранящихся в реляционных системах управления базами данных. [ необходима цитата ]
В конце концов, стало ясно, что мир dBase вышел далеко за пределы Ashton-Tate. Образовалось сообщество «третьих лиц», состоящее из Fox Software, Nantucket, Alpha Software, Data Based Advisor Magazine, SBT и других фирм по разработке приложений, а также крупных групп разработчиков. Paperback Software выпустила гибкий и быстрый VP-Info с уникальным встроенным компилятором. Сообщество вариантов dBase стремилось создать стандарт языка dBase, поддерживаемый комитетом IEEE X3J19 и инициативой IEEE 1192. Они использовали «xBase», чтобы отличить его от продукта Ashton-Tate. [ необходима цитата ]
Ashton-Tate увидела в росте xBase незаконную угрозу своей фирменной технологии. В 1988 году они подали иск против Fox Software и Santa Cruz Operation (SCO) за копирование «структуры и последовательности» dBase в FoxBase+ (SCO продавала версии продуктов Fox для XENIX и UNIX). В декабре 1990 года окружной судья США Терри Хэттер-младший отклонил иск Ashton-Tate и признал недействительными авторские права Ashton-Tate за нераскрытие того, что dBase была основана, в частности, на общедоступном домене JPLDIS . [37] В октябре 1991 года, когда дело все еще находилось на стадии апелляции, Borland International приобрела Ashton-Tate, и в качестве одного из положений слияния Министерство юстиции США потребовало от Borland прекратить судебный процесс против Fox и разрешить другим компаниям использовать язык dBase/xBase без угрозы судебного преследования. [ необходима цитата ]
К концу 1992 года крупные компании-разработчики ПО подняли ставки, приобретя ведущие продукты xBase. Borland приобрела продукты dBase компании Ashton-Tate (а позже и продукты xBase компании WordTech), Microsoft приобрела продукты FoxBASE+ и FoxPro компании Fox Software, а Computer Associates приобрела продукты Clipper компании Nantucket. Advisor Media построила свой журнал Data Based Advisor, запустив журналы и журналы для разработчиков FoxPro Advisor и Clipper Advisor (и другие), а также организовав живые конференции для разработчиков. Однако запланированный журнал dBase Advisor был отменен из-за провала dBase IV на рынке. [ необходима цитата ]
К 2000 году рынок xBase сошёл на нет, поскольку разработчики перешли на новые системы баз данных и языки программирования. Computer Associates (позже известная как CA) в конечном итоге отказалась от Clipper. Borland реструктурировала и продала dBase. Из основных покупателей Microsoft дольше всех держалась за xBase, превратив FoxPro в Visual FoxPro, но продукт больше не предлагается. В 2006 году Advisor Media прекратила выпуск своего последнего сохранившегося журнала xBase, FoxPro Advisor. Эпоха доминирования xBase закончилась, но продукты xBase всё ещё существуют. Линейка продуктов dBase теперь [ когда? ] принадлежит dBase LLC , которая в настоящее время [ дата отсутствует ] продаёт dBASE PLUS 12.3 и dBASE CLASSIC на базе DOS (dbDOS для запуска на 64-разрядной Windows). [38] [39]
Доступны некоторые реализации с открытым исходным кодом, такие как Harbour , xHarbour и Clip. [ необходима ссылка ]
В 2015 году появился новый член семейства xBase: язык XSharp (X#), поддерживаемый как проект с открытым исходным кодом с компилятором, собственной IDE и интеграцией с Microsoft Visual Studio. XSharp производит сборки .NET и использует знакомый язык xBase. Продукт XSharp изначально был создан группой из четырех энтузиастов, которые в прошлом работали над проектом Vulcan.NET. Компилятор создан поверх кода компилятора Roslyn , кода, лежащего в основе компиляторов C# и VB от Microsoft. [ необходима цитата ]
Сегодня реализации языка dBase расширились и включают множество функций, предназначенных для бизнес-приложений, включая объектно-ориентированное программирование, обработку удаленных и распределенных данных через SQL, функциональность Интернета и взаимодействие с современными устройствами. [ необходима ссылка ]
В следующем примере открывается таблица сотрудников («empl»), каждому менеджеру, который руководит одним или несколькими сотрудниками, назначается 10-процентная надбавка, а затем выводятся имена и зарплаты.
ИСПОЛЬЗУЙТЕ empl ЗАМЕНИТЕ ВСЕ salary НА salary * 1.1 ДЛЯ руководителей > 0 ПЕРЕЧИСЛИТЕ ВСЕ fname, lname, salary ДЛЯ ПЕЧАТИ * (комментарий: зарезервированные слова показаны ЗАГЛАВНЫМИ БУКВАМИ для наглядности)
Обратите внимание, что не обязательно постоянно упоминать имя таблицы. Предполагаемая («текущая») таблица остается неизменной, пока не будет указано иное. Поскольку dBase изначально был интерпретируемым интерактивным языком, он использовал различные контекстные методы для сокращения объема необходимого ввода. Это способствовало инкрементальной интерактивной разработке, но также затрудняло крупномасштабное модульное программирование. Принцип модульного программирования заключается в том, что правильное выполнение программного модуля не должно зависеть от внешних факторов, таких как состояние переменных памяти или таблиц, обрабатываемых в других программных модулях. Поскольку dBase не был разработан с учетом этого, разработчикам приходилось быть осторожными с переносом (заимствованием) программного кода, который предполагал определенный контекст, и это затрудняло бы написание крупномасштабного модульного кода. Ссылки, специфичные для рабочей области, все еще были возможны с использованием стрелочной нотации («B->customer»), чтобы можно было одновременно обрабатывать несколько таблиц. Кроме того, если бы разработчик был предусмотрителен и назвал свои таблицы соответствующим образом, он мог бы явно ссылаться на большое количество таблиц, открытых одновременно, с помощью таких обозначений, как («employee->salary») и («vacation->start_date»). В качестве альтернативы, команда alias могла бы быть добавлена к первоначальному открытию оператора таблицы, что сделало бы ссылку на поле таблицы однозначной и простой. Например, можно открыть таблицу и назначить ей псевдоним таким образом, «использовать EMP alias Employee», и в дальнейшем ссылаться на переменные таблицы как «Employee->Name».
Еще одной примечательной особенностью является повторное использование одних и тех же предложений для разных команд. Например, предложение FOR ограничивает область действия данной команды. (Это в некоторой степени сопоставимо с предложением WHERE в SQL.) Различные команды, такие как LIST, DELETE, REPLACE, BROWSE и т. д., могут принимать предложение FOR для ограничения (фильтрации) области своей деятельности. Это упрощает изучение языка. [ необходима цитата ]
dBase также был одним из первых языков, ориентированных на бизнес, в котором реализована оценка строк . [ необходима ссылка ]
i = 2 myMacro = "i + 10" i = &myMacro * комментарий: i теперь имеет значение 12
Здесь "&" говорит интерпретатору оценить строку, хранящуюся в "myMacro", как если бы это был программный код. Это пример функции, которая сделала программирование dBase гибким и динамичным, иногда называемой "метаспособностью" в профессии. Это может позволить программным выражениям размещаться внутри таблиц, что несколько напоминает формулы в программном обеспечении для работы с электронными таблицами. [ необходима цитата ]
Однако это также может быть проблематично для предварительной компиляции и для обеспечения безопасности программного кода от взлома. Но dBase, как правило, использовался для пользовательских внутренних приложений для малых и средних компаний, где отсутствие защиты от копирования, по сравнению с скомпилированным программным обеспечением, часто было меньшей проблемой. [ необходима цитата ]
Главным наследием dBase является его формат файла .dbf , который был принят в ряде других приложений. Например, формат шейп-файла , разработанный ESRI для пространственных данных в его географической информационной системе PC ArcInfo , использует файлы .dbf для хранения данных атрибутов объектов. [40]
Microsoft рекомендует сохранять файл базы данных Microsoft Works в формате dBase, чтобы его можно было прочитать в Microsoft Excel . [41]
Для Emacs доступен пакет для чтения файлов xbase. [42]
LibreOffice и OpenOffice Calc могут читать и записывать все общие файлы dbf. [43] [44]
Система баз данных dBase была одной из первых, которая предоставила раздел заголовка для описания структуры данных в файле. [ необходима цитата ] Это означало, что программа больше не требовала предварительного знания структуры данных, а могла спросить файл данных, как он был структурирован. Существует несколько вариаций структуры файла .dbf, и не все продукты, связанные с dBase, и структуры файлов .dbf совместимы. VP-Info уникальна тем, что может читать все варианты структуры файла dbf. [45]
Второй тип файла — это формат файла .dbt для полей memo. Хотя символьные поля ограничены 254 символами каждое, поле memo — это 10-байтовый указатель на файл .dbt , который может включать гораздо большее текстовое поле. dBase был очень ограничен в своих возможностях обработки полей memo, но некоторые другие языки xBase, такие как Clipper, обрабатывали поля memo как строки, как и символьные поля, для всех целей, кроме постоянного хранения. [ необходима цитата ]
dBase использует файлы .ndx для отдельных индексов и файлы .mdx (многоиндексные) для хранения от 1 до 48 индексов. Некоторые языки xBase, такие как VP-Info, включают совместимость с файлами .ndx, в то время как другие используют другие форматы файлов, такие как .ntx, используемый Clipper , и .idx/.cdx, используемый FoxPro или FlagShip. Более поздние версии Clipper включали драйверы для индексов .ndx, .mdx, .idx и .cdx . [ необходима цитата ]
Джерри Пурнелл из BYTE в июле 1980 года назвал Vulcan «бесяще превосходным», потому что программное обеспечение было мощным, но документация была плохой. Он похвалил его скорость и сложные запросы, но сказал, что «мы много стучим по столу и кричим от ярости на документацию». [18]
«Стоит ли [dBASE IV 1.0] ожидания? Я думаю, да», — написал Малкольм Рубель в журнале в 1989 году, описывая его как «квантовый скачок по сравнению с dBASE III Plus по функциональности, мощности и простоте использования». Он сказал, что программное обеспечение на 100% совместимо с предыдущими версиями, как и обещал Эштон-Тейт, и похвалил Control Center за значительное улучшение режима Assist III Plus. Журнал отметил ранние сообщения об ошибках и пообещал продолжение, но пришел к выводу, что «продукт кажется в целом надежным». [46]
В 1995 году Novell продала операционную систему SCO. ... В 1991 году Ashton-Tate объединилась с Borland
В своем первом крупном приобретении, софтверный гигант Microsoft Corp. объявил во вторник, что он купит частную Fox Software примерно за 173 миллиона долларов.