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 году Томпсон в сотрудничестве с Джеком Хэтфилдом, программистом из Лаборатории реактивного движения, написал расширенную версию RETRIEVE, которая стала проектом JPLDIS. JPLDIS был написан на FORTRAN на мэйнфрейме UNIVAC 1108 и был представлен публично в 1973 году. Когда Хэтфилд покинул JPL в 1974 году, его роль взял на себя Джеб Лонг. [15]
Работая в JPL подрядчиком, К. Уэйн Рэтлифф вошел в офисный футбольный пул . Он не интересовался игрой как таковой, но чувствовал, что может выиграть пул, обрабатывая статистику после игры, найденную в газетах. [16] Для этого он обратил внимание на систему баз данных и случайно наткнулся на документацию по JPLDIS. Он использовал это как основу для порта PTDOS на своем микрокомпьютере IMSAI 8080 , собранном из комплекта , и назвал получившуюся систему Вулкан (в честь родной планеты мистера Спока из «Звездного пути »). [17] [18] [19]
Джордж Тейт и Хэл Лэшли создали две успешные начинающие компании: Discount Software, которая была одной из первых, кто продавал программы для ПК потребителям по почте, и Software Distributors, которая была одним из первых оптовых дистрибьюторов программного обеспечения для ПК в США. мир. Они заключили соглашение с Ratliff о маркетинге 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 миллионов долларов США в год (что эквивалентно 113 миллионам долларов США в 2022 году), подавляющее большинство из которых приходилось на продукты dBase. [ нужна цитата ]
В Советском Союзе также существовал несанкционированный клон dBase III под названием Rebus. Его адаптация к русскому языку свелась к механической замене названия, русификации справочных файлов и исправлению сортировочных таблиц для русского языка.
Представленный в 1988 году [25] после задержек, [26] dBase IV имел «более 300 новых или улучшенных функций». К тому времени FoxPro добилась успехов, и даже поддержки dBase IV для запросов по примерам и SQL было недостаточно. [ нужна цитата ]
Попутно компания Borland , купившая Ashton-Tate , в 1992 году выпустила обновленную версию dBase IV [27] , но с акцентом на нее, который был описан как «предназначенный для программистов», а не «для обычных пользователей». [ нужна цитата ]
Для обработки данных dBase предоставила подробные процедурные команды и функции для [36]
dBase — это язык разработки приложений и интегрированная навигационная система управления базами данных , которую Эштон-Тейт назвал « реляционной », но она не соответствовала критериям, определенным реляционной моделью доктора Эдгара Ф. Кодда . Он использовал архитектуру интерпретатора времени выполнения, которая позволяла пользователю выполнять команды, вводя их в командной строке «точечная строка». [ нужна цитация ] Аналогичным образом в интерпретаторе (командой DO) запускались программные сценарии (текстовые файлы с расширениями PRG). [ нужна цитата ]
Со временем конкуренты Ashton-Tate представили так называемые продукты-клоны и компиляторы, которые имели более надежные функции программирования, такие как определяемые пользователем функции (UDF) и массивы для сложной обработки данных. Компания Ashton-Tate и ее конкуренты также начали использовать SQL , стандартный язык ANSI/ISO для создания, изменения и извлечения данных, хранящихся в системах управления реляционными базами данных. [ нужна цитата ]
В конце концов стало ясно, что мир dBase вышел далеко за пределы Эштон-Тейт. Сформировалось «стороннее» сообщество, состоящее из Fox Software, Nantucket, Alpha Software, Data Based Advisor Magazine, SBT и других фирм по разработке приложений, а также крупных групп разработчиков. Paperback Software выпустила гибкую и быструю версию VP-Info с уникальным встроенным компилятором. Сообщество вариантов dBase стремилось создать стандарт языка dBase при поддержке комитета IEEE X3J19 и инициативы IEEE 1192. Они назвали «xBase», чтобы отличить его от продукта Ashton-Tate. [ нужна цитата ]
Эштон-Тейт рассматривала появление xBase как незаконную угрозу своей собственной технологии. В 1988 году они подали иск против Fox Software и Santa Cruz Operation (SCO) за копирование «структуры и последовательности» dBase в FoxBase+ (SCO продавала версии продуктов Fox для XENIX и UNIX). В декабре 1990 года окружной судья США Терри Хэттер-младший отклонил иск Эштон-Тейт и признал недействительными авторские права Эштон-Тейт за то, что он не раскрыл, что 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 Magazine был прерван из-за рыночного провала 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]
Доступны некоторые реализации с открытым исходным кодом, такие как Harbor , 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 ЗАМЕНИТЬ ВСЮ зарплату НА зарплату * 1.1 ДЛЯ руководителей > 0 СПИСАТЬ ВСЕ имя, имя, зарплату ДЛЯ ПЕЧАТИ * (комментарий: зарезервированные слова показаны ЗАГЛАВНЫМИ БУКВАМИ для наглядности)
Обратите внимание, что не нужно постоянно упоминать имя таблицы. Предполагаемая («текущая») таблица остается неизменной, пока не будет указано иное. Поскольку dBase изначально был интерпретируемым интерактивным языком, он использовал различные контекстуальные методы для уменьшения количества необходимого набора текста. Это облегчило постепенную интерактивную разработку, но также затруднило крупномасштабное модульное программирование. Принцип модульного программирования заключается в том, что на правильное выполнение программного модуля не должны влиять внешние факторы, такие как состояние переменных памяти или таблиц, которыми манипулируют в других программных модулях. Поскольку dBase не был разработан с учетом этого, разработчикам приходилось быть осторожными при переносе (заимствовании) программного кода, который предполагал определенный контекст, и это затруднило бы написание крупномасштабного модульного кода. Ссылки на конкретные рабочие области по-прежнему были возможны с использованием обозначения стрелки («B->customer»), так что можно было манипулировать несколькими таблицами одновременно. Кроме того, если бы разработчик предусмотрительно назвал свои таблицы соответствующим образом, они могли бы четко ссылаться на большое количество таблиц, открытых одновременно, с помощью таких обозначений, как («сотрудник->зарплата») и («отпуск->начальная_дата»). ). Альтернативно, команду alias можно было добавить к начальному открытию оператора таблицы, что сделало бы ссылку на поле таблицы однозначной и простой. Например. можно открыть таблицу и назначить ей псевдоним следующим образом: «использовать псевдоним EMP «Сотрудник»» и в дальнейшем обращаться к переменным таблицы как «Сотрудник->Имя».
Еще одна примечательная особенность — повторное использование одних и тех же предложений для разных команд. Например, предложение FOR ограничивает область действия данной команды. (Это в некоторой степени сравнимо с предложением WHERE SQL.) Различные команды, такие как LIST, DELETE, REPLACE, BROWSE и т. д., могут принимать предложение FOR для ограничения (фильтрации) области своей деятельности. Это упрощает изучение языка. [ нужна цитата ]
dBase также был одним из первых бизнес-ориентированных языков, реализовавших вычисление строк . [ нужна цитата ]
i = 2 myMacro = "i + 10" i = &myMacro * комментарий: теперь у i есть значение 12
Здесь «&» указывает интерпретатору оценить строку, хранящуюся в «myMacro», как если бы это был программный код. Это пример функции, которая сделала программирование в dBase гибким и динамичным, что в профессии иногда называют «метаспособностью». Это может позволить помещать программные выражения внутри таблиц, что чем-то напоминает формулы в программах для работы с электронными таблицами. [ нужна цитата ]
Однако это также может быть проблематично для предварительной компиляции и защиты программного кода от взлома. Но dBase, как правило, использовался для пользовательских внутренних приложений для малых и средних компаний, где отсутствие защиты от копирования по сравнению с скомпилированным программным обеспечением часто не было такой проблемой. [ нужна цитата ]
Основным наследием dBase является формат файлов .dbf , который был принят в ряде других приложений. Например, формат шейп-файла , разработанный ESRI для пространственных данных в ее географической информационной системе 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 . [ нужна цитата ]
Джерри Пурнель в июле 1980 года назвал Vulcan «невероятно превосходным», потому что программное обеспечение было мощным, но документация была плохой. Он похвалил его скорость и сложные запросы, но сказал, что «мы много стучим по таблице и кричим от ярости на документацию». [18]
В 1995 году Novell продала операционную систему SCO. ... В 1991 году компания Ashton-Tate объединилась с Borland.
. В ходе своего первого крупного приобретения компания-разработчик программного обеспечения Microsoft Corp. объявила во вторник, что купит частную компанию Fox Software примерно за 173 миллиона долларов.