dBASE foi o primeiro SGBD largamente utilizado industrialmente, pelo Apple II, Apple Macintosh e PC's IBM para DOS, onde se ♣️ tornou um dos softwares mais vendidos durante alguns anos.
[1] O dBASE nunca conseguiu migrar com sucesso para a plataforma Microsoft ♣️ Windows, e foi, em alguns casos, substituído por novos produtos, como Paradox, Clipper, FoxPro e Microsoft Access.
dBase foi vendido para ♣️ a Borland em 1991, que vendeu os direitos da linha de produtos, em 1999, para a recém-formada dBASE Inc.
A partir ♣️ de meados dos anos oitenta, muitas outras companhias produziram seus próprios "dialetos" ou variações do produto e da linguagem.
Entre esses, ♣️ estão: FoxPro (atual Visual FoxPro), Arago, Force, Recital, dbFast, dbXL, QuickSilver, Clipper, xBase++, FlagShip e Harbour.
Todos foram chamados de xBase.
O ♣️ formato de arquivo do dBase, o DBF, é muito usado por diversos aplicativos que precisam somente de um formato estruturado ♣️ para seus dados.
A licença do dBase foi entregue aos usuários com a validade de 50 anos, prevenindo-se contra a improvável ♣️ chance de um usuário utilizar estrela bet gol aposta loja do dBase por um extenso período de tempo.
O desenvolvedor original do dBase foi ♣️ Wayne Ratliff[1].
Em 1978, enquanto trabalhava no Jet Propulsion Laboratory, Ratliff escreveu um programa de banco de dados em linguagem assembly ♣️ para microcomputadores rodando CP/M para ajudá-lo a ganhar uma aposta realizada no escritório sobre quem seria o ganhador de um ♣️ campeonato de futebol.
O programa foi baseado no JPLDIS (Jet Propulsion Laboratory Display Information System) de Jeb Long e intitulado "Vulcan", ♣️ em homenagem ao Sr.
Spock de Jornada nas Estrelas.
De acordo com Ratliff, a linguagem utilizada no JPLDIS era uma linguagem simples, ♣️ orientada a comandos, que objetivava o uso interativo em terminais de impressão.
Existem alguns indícios de que JPLDIS foi influenciado por ♣️ um produto de banco de dados de mainframe chamado RETRIEVE.
No final dos anos 1980, George Tate, da Ashton-Tate, firmou um ♣️ contrato de marketing com Ratliff.
Vulcan foi renomeado para dBase, e o software rapidamente se tornou um grande sucesso.
Cronologia dos produtos ♣️ dBASE
A linguagem de programação dBASE [ editar | editar código-fonte ]
Depois de portar o Vulcan para o IMSAI 8080 e ♣️ depois para o CP/M e MS-DOS (como dBase), Ratliff adicionou comandos para acomodar a interface de vídeo, bem como comandos ♣️ mais avançados para controle de fluxo (tais como DO WHILE/ENDDO) e lógica condicional (tais como IF/ENDIF).
Para manipulação de dados, dBase ♣️ oferecia comandos e funções procedurais sofisticados para abrir e pesquisar arquivos (p.
ex: USE, SKIP, GO TOP, GO BOTTOM, e GO ♣️ recno), manipular o valor de campos (REPLACE e STORE), e manipular strings (p.ex.
: STR() e SUBSTR()), números e datas.
Sua capacidade ♣️ de abrir e manipular simultaneamente diversos arquivos contendo dados relacionados levou a Ashton-Tate a rotular o dBase como uma "base ♣️ de dados relacional", muito embora o produto não atendesse os critérios definidos pelo modelo relacional do Dr.Edgar F.Codd.
O dBase era ♣️ uma linguagem interpretada, que permitia ao usuário executar comandos digitando-se em uma linha de comando.
Digitando um comando e pressionando a ♣️ tecla Entra, o interpretador imediatamente iria executá-lo.
De maneira similar, programas (arquivos texto com extensão PRG) rodavam em um interpretador (com ♣️ o comando DO), onde cada comando e variável eram processados em tempo de execução.
Isso fazia com que os programas dBase ♣️ fossem simples e rápidos de escrever e testar porque os programadores não tinham que primeiro compilá-los antes de executá-los.
(Em outras ♣️ linguagens, esses passos eram tediosos nos tempos das CPUs com apenas algumas dezenas de megahertz).
O interpretador também gerenciava automaticamente e ♣️ dinamicamente a memória (i.e.
, não havia pré-alocação de memória nem notação hexadecimal), o que, mais do que outras funcionalidades, tornava ♣️ possível para um usuário sem experiência de programação desenvolver aplicações.
Por outro lado, a facilidade de uso e a simplicidade apresentada ♣️ pelo dBase começou a se tornar uma limitação à medida que seus usuários tornavam-se mais especializados e programadores profissionais eram ♣️ chamados para utilizá-lo.
Aplicações mais complexas e mais críticas demandaram funcionalidades de programação profissional para maior robustez e desempenho, bem como ♣️ maior produtividade do programador.
Com o tempo, os competidores da Ashton-Tate introduziram os chamados produtos e compiladores "clones", que introduziam funcionalidades ♣️ de programação mais robustas, tais como funções definidas pelo usuário (UDFs) para complementar as funções básicas contidas no produto, variáveis ♣️ com escopo definido, com menor possibilidade de serem afetadas por processos externos, arrays para manuseio de dados complexos, funcionalidades de ♣️ empacotamento para a entrega de aplicações na forma de arquivos executáveis sem interpretadores em tempo de execução, sintaxe orientada a ♣️ objeto, e interfaces para o acesso aos dados de gerenciadores de bancos de dados externos.
A Ashton-Tate também implementou diversas dessas ♣️ funcionalidades, com graus variáveis de sucesso.
A Ashton-Tate e seus competidores também começaram a incorporar SQL, a linguagem padrão ANSI/ISO para ♣️ criação, alteração e recuperação de dados armazenados em SGBDs.
No final dos anos 1980, grupos de desenvolvedores criaram um padrão para ♣️ a linguagem dBase (IEEE 1192).
Foi então que a linguagem passou a ser chamada de "Xbase" para distinguí-la do produto da ♣️ Ashton-Tate.
Centenas de livros foram escritos sobre programação dBase e Xbase.
Hoje em dia, implementações da linguagem dBase incluem muitas funcionalidades direcionadas ♣️ para aplicações de negócios, incluindo a manipulação de interface de usuário gráfica (GUI), manipulação de dados remotos e distribuídos, uso ♣️ da Internet e interação com dispositivos modernos.
A despeito de estrela bet gol aposta funcionalidade e facilidade de uso, o legado da linguagem dBase ♣️ de ter sido "embutida" dentro de um produto comercial popular é uma das razões pela qual ela não é um ♣️ padrão dominante hoje em dia.
Exemplo de programação [ editar | editar código-fonte ]
O seguinte exemplo abre uma tabela de empregados ♣️ ("emp"), confere a cada gerente que supervisiona 1 ou mais empregados um aumento de 10%, e então imprime seus nomes ♣️ e salários.
USE emp REPLACE ALL salario WITH salario * 1.
1 FOR supervisiona > 0 LIST ALL nome, sobrenome, salario TO ♣️ PRINT
(comment: reserved words shown in CAPITALS for illustration purposes)
Note-se como não é necessário mencionar repetidamente o nome da tabela.
A tabela ♣️ corrente (via USE) permanece a mesma até que seja determinado em contrário.
Esse é um contraste com SQL que necessita de ♣️ tabelas explícitas na maior parte das vezes.
O dBase utiliza uma série de técnicas de "contexto" semelhantes para reduzir o volume ♣️ de digitação necessário e facilitar o desenvolvimento iterativo e incremental.
Entretanto, era necessário ser cuidadoso ao utilizar códigos preexistentes que assumiam ♣️ um determinado contexto e isso fazia com que a escrita de código modular em larga escala fosse difícil.
O dBase também ♣️ foi uma das primeiras linguagens orientadas a negócio a implementar interpretação de strings (muito antes de Perl).
i = 2 myMacro ♣️ = "i + 10" i = &myMacro // i agora tem o valor 12
Nesse exemplo o "&" informa ao interpretador ♣️ para interpretar a string armazenada em "myMacro" tal como se fosse código.
Esse é um exemplo de uma funcionalidade que fez ♣️ a programação dBase flexível e dinâmica, às vezes chamada "meta ability" pelos profissionais.
Entretanto, poderia também ser problemática para pré-compilação e ♣️ para fazer com que o código fosse seguro contra "hacking".
Entretanto, o dBase tendeu a objetivar aplicações customizadas para pequenas e ♣️ médias empresas, onde a segurança baseada em compilação dificilmente era um problema.
Por exemplo, ninguém iria cogitar escrever um sistema operacional ♣️ nessa linguagem.
Tanto dBASE quanto seus sucessores e competidores são produtos de uma época onde os computadores pessoais eram desconectados e ♣️ o banco de dados era um conjunto de arquivos em disco acessado por apenas um usuário.
Todos os programas funcionam, na ♣️ prática, como um programa monolítico que acessa diretamente os arquivos contendo os dados, sem intermediação (como ocorre no caso dos ♣️ SGDB).
Com o aparecimento das redes de computadores, passou a ser possível utilizar discos compartilhados para acessar diretamente esses arquivos, porém ♣️ fazendo que o programador tivesse que controlar e resolver vários problemas ligados ao acesso compartilhado de arquivos e registros.
Atualmente, apesar ♣️ de muitos programas ainda utilizarem essas linguagens, o uso de um SGBD é mais recomendado, o que leva, gradativamente, ao ♣️ abandono dessa tecnologia.
Embora a linguagem tenha caído em desuso como linguagem preferencial nos negócios, alguns entendem que é uma boa ♣️ ferramenta de transformação de dados ad-hoc.
Diferentemente da SQL, é simples utilizá-la para quebrar transformações de dados em passos menores para ♣️ analisar e inspecionar visualmente.
Alguns defendem ser fácil juntar diferentes comandos de manipulação de dados preexistentes em subrotinas para criar scripts ♣️ automatizados, em contraste com competidores que podem requerer começar do zero para ir de comandos interativos de mouse até programas ♣️ completos.
É dito que ela preenche o hiato entre SGBDs formais e linguagens de programação de arrays tais como os derivados ♣️ modernos da APL (J, K, etc.).
Também é utilizada frequentemente para a preparação de arquivos de dados brutos para envio para ♣️ sítios externos (de outros fornecedores) através de protocolos tais como FTP e e-mail.
Formato de arquivo .
dbf [ editar | editar ♣️ código-fonte ]
Um dos maiores legados do dBase é seu formato de arquivo .
dbf , que foi amplamente adotado.
Por exemplo, o ♣️ formato de shapefile desenvolvido pelo ESRI para dados espaciais em um sistema de informação geográfica GIS utiliza arquivos .
dbf para ♣️ armazenar dados de atributos.
O termo XBase é frequentemente utilizado para esse grupo de aplicações.
O sistema de banco de dados dBase ♣️ foi um dos primeiros a prover uma seção de cabeçalho (header) para descrever a estrutura dos dados dentro do arquivo.
Isso ♣️ significa que o programa não mais necessitava conhecimento prévio da estrutura de dados, mas poderia perguntar diretamente ao arquivo de ♣️ dados como este estava estruturado.