Tutorial de banco de dados 4D: um guia completo
Um tutorial de banco de dados 4D começa com quatro objetos principais: tabelas, campos, formulários e métodos. 4D é um banco de dados relacional e plataforma de desenvolvimento de aplicações de 4D SAS, lançada pela primeira vez em 1984, armazenando dados em um arquivo de estrutura proprietário “.4DD” vinculado a uma camada de aplicação compilada ou interpretada. Os desenvolvedores definem tabelas, criam formulários e anexam códigos em um ambiente integrado.
4D ocupa um lugar incomum no cenário de ferramentas. É uma combinação de mecanismo de banco de dados relacional, ambiente de desenvolvimento rápido de aplicativos, servidor web e designer de formulários de baixo código. Essa combinação é a razão pela qual pequenas equipes o adotam: um produto cobre armazenamento, lógica de negócios, UI e implantação.
O motor é relacional no sentido clássico: tabelas, chaves primárias, tabelas associadas e relações definidas na estrutura. Não é SQL first como PostgreSQL ou MySQL, embora o 4D suporte SQL através de seu motor SQL e comandos Begin SQL / End SQL.
A maioria das tarefas diárias utilizam a linguagem própria de 4D (historicamente chamada de Linguagem 4D, agora simplesmente código 4D), que está mais próxima de uma linguagem de script do que SQL. Esta abordagem tutorial de banco de dados 4D ajuda os iniciantes a compreender a versatilidade da ferramenta.
Dois fatos arquitetônicos são importantes desde o início:
- Estrutura versus dados. A estrutura (tabelas, campos, formulários, métodos) reside em um arquivo
.4DC/project nas versões modernas; os dados estão no arquivo de dados.4DD. Em 4D 20 e posteriores, os projetos são armazenados como uma pasta de arquivos de texto, tornando prático o controle de versão com Git. Estruturas binárias.4DBmais antigas são mais mais difíceis de comparar (diff). - Cliente-servidor versus usuário único. Uma implantação de usuário único executa tudo em uma única máquina. O cliente-servidor separa o 4D Server (dados + lógica de negócio) do 4D Client (UI). A mesma estrutura oferece suporte a ambos, mas as viagens de ida e volta da rede mudam a forma como você precisa escrever loops.
Se você vem do Microsoft Access, o modelo mental é bem transferido. Se você vem de uma pilha web, espere desaprender alguns hábitos: formulários 4D são stateful e orientados a eventos, não a requisição-resposta.
Relacionado: — Uma interface simples de planilha baseada em um banco de dados relacional real, com automações, visualizações e interfaces compartilháveis..
Etapa 1: Instale e crie sua primeira estrutura
Baixe 4D do site oficial de 4D (4d.com) para começar este tutorial de banco de dados 4d. Normalmente você escolherá entre 4D (o ambiente de desenvolvimento completo) e 4D Server para implantação. Existe um modo de desenvolvimento local gratuito para aprendizagem, mas a implantação na produção requer uma licença: verifique diretamente os termos da licença atuais, pois eles mudam de versão para versão.
Criando um projeto:
- Inicie 4D e escolha Novo > Projeto.
- Dê um nome ao projeto e escolha uma pasta. 4D moderno cria uma pasta de projeto contendo
Project/Sources/com sua estrutura como arquivos de texto. - O Editor de Estrutura é aberto. Esta é a sua tela esquemática.
O editor de estrutura é onde você adiciona tabelas. Cada tabela recebe um nome, um conjunto de campos e, opcionalmente, uma chave primária gerada automaticamente. A convenção de 4D é prefixar os nomes dos campos por tipo — ID_, Nome_, Data_, Valor_ — embora isto seja uma questão de estilo e não um requisito. A consistência compensa mais tarde, quando você verifica 200 campos.
Se você estiver comprando: — Um construtor de aplicativos de baixo código que se conecta ao conjunto Zoho mais amplo e tem preços por usuário, e não por aplicativo..
Tipos de campo que você mais usará: Texto, Alfa, Inteiro, Inteiro Longo, Real, Data, Hora, Booleano, Imagem, BLOB, Objeto e UUID. O tipo Object armazena dados estruturados semelhantes a JSON e é a escolha moderna para atributos flexíveis. Os campos UUID são o tipo de chave primária recomendado para novas tabelas porque evitam problemas de colisão e renumeração com números inteiros incrementados automaticamente em dados distribuídos ou mesclados.
Etapa 2: Projetar tabelas e relações
O desenho de esquemas em 4D segue regras de normalização relacional, com uma particularidade específica de 4D: as relações são declaradas graficamente e envolvem comportamento automático. Esta é uma parte fundamental de qualquer tutorial de banco de dados 4D.
Para criar um relacionamento, arraste o campo de chave primária de uma tabela para o campo de chave estrangeira de outra no editor de estrutura. 4D desenha uma linha de relação e permite configurar:
| Configuração de relação | O que controla | Efeito prático |
|---|---|---|
| Relações automáticas | Se 4D carrega automaticamente os registros relacionados | Conveniente para formulários; pode causar consultas ocultas em loops |
| Um para muitos vs muitos para um | Direção do link | Determina qual lado contém a chave estrangeira |
| Nome da tabela relacionada | O nome do acessador no código | Torna-se a propriedade que você referencia, por ex. [Fatura]Cliente |
| Controle de exclusão | Cascatear, restringir ou anular | Impede registros filhos órfãos |
Um exemplo concreto: uma tabela Invoice com um campo CustomerID vinculado a Customer.ID. No código, [Fatura]Customer.Name percorre o relacionamento. Isto é elegante – e perigoso em um loop de mais de 10.000 faturas, porque cada acesso pode desencadear uma pesquisa. A correção é usar deliberadamente RELATE MANY / RELATE ONE ou carregar primeiro os dados relacionados em uma coleção.
Compromisso para decidir antecipadamente: tabelas normalizadas com relacionamentos declarados oferecem integridade referencial e código simples, mas custam desempenho em leituras grandes. Tabelas desnormalizadas com campos de objetos incorporados são mais rápidas de ler, mas enviam verificações de integridade para seu próprio código. Para a maioria dos aplicativos de negócios para equipes pequenas, normalize o núcleo transacional e desnormalize as tabelas de relatórios.
Etapa 3: Criar Formulários
Os formulários são a camada de interface do usuário de 4D e vêm em vários tipos: formulários de detalhe (um registro), formulários de lista (múltiplos registros), formulários de entrada, formulários de saída e formulários de projeto (não vinculados a uma tabela). O editor de formulários é uma tela de arrastar e soltar com uma lista de propriedades. Esta é uma parte fundamental de qualquer tutorial de banco de dados 4D.
Conceitos-chave ao criar um formulário:
- Fonte de dados. Cada formulário está vinculado a uma tabela ou a uma variável/expressão para formulários de projeto.
- Widgets. Campos, botões, caixas de seleção, listas suspensas, caixas de listagem e listas hierárquicas. As caixas de listagem são o carro-chefe para exibir dados relacionados e são muito mais poderosas do que uma simples grade.
- Métodos de objeto. Clique com o botão direito em qualquer objeto e anexe um método. O método é executado em eventos como
On Load,On Clicked,On Data ChangeeOn Validate. - Métodos de formulário. O próprio formulário possui um método para eventos de nível de formulário, como
On LoadeOn Unload.
Um modelo útil para um formulário de detalhes do cliente: coloque os campos do cliente, adicione uma caixa de listagem vinculada a uma seleção de faturas desse cliente e coloque um botão que executa um método para criar uma nova fatura. A seleção da caixa de listagem é orientada por consulta ou relação, e atualizá-la após a inserção mantém a interface do usuário honesta.
Aviso: Os formulários 4D têm estado. Um formulário contém um registro atual e uma seleção atual. Misturar o estado no nível do formulário com processos em segundo plano é a fonte mais comum de bugs confusos para os recém-chegados. Mantenha os trabalhos de longa duração em um processo separado e publique os resultados.
Etapa 4: Escrever Métodos e Lógica de Negócios
Neste tutorial de banco de dados 4d, o código 4D é dividido em métodos, que vêm em diversas versões:
- Métodos de banco de dados — acionados por eventos de banco de dados (inicialização, desligamento, backup).
- Métodos de tabela — acionados por eventos de registro (ao salvar, ao excluir).
- Métodos de formulário e objeto — acionados por eventos de UI.
- Métodos de Projeto — suas funções reutilizáveis, que podem ser chamadas de qualquer lugar.
- Gatilhos: execute operações antes/depois das operações de registro, ideal para trilhas de auditoria.
O código 4D moderno suporta classes e a palavra-chave “This”, permitindo escrever código orientado a objetos em vez de apenas processual. Um método de projeto mínimo se parece com:
// Método do projeto: CreateInvoice
// $1 = ID do cliente (UUID)
C_OBJECT($fatura)
$fatura:=ds.Invoice.new()
$fatura.CustomerID:=$1
$invoice.Date:=Current date
$fatura.Status:="Rascunho"
$status:=$fatura.save()
O objeto ds (armazenamento de dados) é a camada de acesso de estilo ORM moderno introduzida com ORDA (Object Relational Data Access). ORDA permite trabalhar com entidades e seleções de entidades em vez de seleções tradicionais e suporta encadeamento de consultas, atributos computados e seleções de entidades do lado do cliente que reduzem viagens de ida e volta do servidor. Para novos desenvolvimentos, ORDA é a via recomendada; Comandos clássicos como “QUERY” e “CREATE RECORD” ainda funcionam e aparecem em bases de código mais antigas.
Como decidir: Use ORDA para novos códigos e qualquer coisa que se beneficie de consultas legíveis e encadeadas. Mantenha os comandos clássicos onde você precisar de loops muito fechados em seleções grandes, porque as seleções clássicas podem ser mais eficientes em termos de memória em alguns cenários do lado do servidor. Meça em vez de assumir.
Etapa 5: listas de valores, consultas e relatórios
As listas de valores preenchem listas suspensas e caixas de listagem com um conjunto controlado de opções. 4D suporta vários tipos de listas:
- Listas estáticas — valores codificados, ideais para status e sinalizadores.
- Listas de Tabelas — valores extraídos de uma tabela de referência, ideal para clientes, produtos e categorias.
- Listas hierárquicas — valores pai/filho, úteis para planos de contas ou árvores de categorias.
Para consultas, query() do ORDA aceita uma string de fórmula com espaços reservados, o que evita problemas de injeção e lê claramente:
$sel:=ds.Invoice.query("Status = :1 AND Data >= :2"; "Aberto"; $startDate)
Os relatórios em 4D utilizam o editor Quick Report para saída tabular simples e a área 4D Write Pro para documentos ricos. Write Pro é um objeto de processamento de texto incorporado em um formulário; você pode mesclar dados em um modelo e exportá-los para o formato PDF ou DOCX. Para qualquer coisa complexa, gerar HTML e renderizá-lo em uma área da web costuma ser mais rápido de criar e mais fácil de estilizar. Isto conclui esta seção do tutorial do banco de dados 4d.
Etapa 6: implantar e manter
As opções de implantação moldam sua arquitetura neste tutorial de banco de dados 4d:
- Usuário único: aplicação e dados em uma única máquina. O mais simples, sem simultaneidade.
- Cliente-servidor — 4D Server contém dados e lógica de negócio; Cliente 4D se conecta. Ideal para equipes LAN.
- 4D Web Server — 4D serve diretamente endpoints REST e páginas web. ORDA expõe acesso REST automático ao seu armazenamento de dados, o que significa que você pode criar uma interface web no mesmo esquema.
- 4D para iOS / Android — clientes móveis gerados a partir de sua estrutura.
Os backups são integrados: 4D Server pode agendar backups automáticos e manter um diário (arquivo de log) para recuperação pontual. Habilite o diário antes de ir ao ar, não depois. Teste uma restauração em uma cópia dos dados: um backup não testado é uma esperança, não um plano.
Controle de versão: Com estruturas em modo de projeto, envie a pasta Project/Sources/ para o Git. Exclua o arquivo de dados e a pasta DerivedData. Esta é uma melhoria real em relação à era binária e vale a pena adotá-la desde o primeiro dia.
Erros comuns e como evitá-los
Ignorando a disciplina de chave primária. Cada tabela precisa de uma chave primária estável e exclusiva. Os UUIDs evitam problemas de renumeração causados pelo incremento automático de números inteiros quando os registros são excluídos ou mesclados.
Colocando lógica de negócios em métodos de formulário. Os métodos de formulário devem lidar com a interface do usuário. Mova regras para métodos ou classes de projeto para que possam ser reutilizadas por endpoints da Web, importações e tarefas agendadas.
Ignorando o diário. Sem ele, uma falha durante a gravação pode deixar o arquivo de dados inconsistente. Ligue-o.
Loop sobre relacionamentos. Acessar [Table]Related.Field dentro de um loop grande multiplica as consultas. Pré-carregue com ORDA ou use “RELATE MANY” uma vez.
Tratar 4D como SQL. Você pode usar SQL, mas o código idiomático 4D é geralmente mais curto e melhor integrado com formulários e eventos. Aprenda primeiro o idioma nativo como parte de seu tutorial de banco de dados 4d.
Caminho de aprendizagem e recursos
Comece com a documentação oficial de 4D e o 4D Developer Blog, que cobre ORDA, Write Pro e alterações específicas de versão. O fórum da comunidade 4D está ativo e responde bem a perguntas específicas. Para fundamentos de design relacional que se aplicam independentemente da plataforma, o artigo da Wikipédia sobre bancos de dados relacionais e a entrada sobre SQL fornece informações úteis sobre normalização e semântica de consultas.
Uma sequência de aprendizado realista: crie um gerenciador de contatos de tabela única, adicione uma tabela relacionada e uma caixa de listagem, adicione uma lista de valores e um formulário de consulta e, em seguida, implante um cliente-servidor. Cada etapa apresenta um novo conceito sem sobrecarregar você.
Principais conclusões
- 4D combina banco de dados relacional, IDE, designer de formulários e servidor web em um único produto, adequado para pequenas equipes que precisam entregar rapidamente uma aplicação de negócios personalizada. Este tutorial de banco de dados 4D destaca sua eficiência.
- Definir tabelas e relações no editor de Estruturas, criar telas no editor de Formulários e anexar lógica através de métodos e gatilhos: os quatro objetos que compõem cada aplicação 4D.
- ORDA (
ds, entidades, seleções de entidades) é a camada moderna de acesso a dados e a escolha recomendada para novo código; os comandos clássicos permanecem válidos em projetos legados. - Use chaves primárias UUID, ative o log (journal) e envie estruturas de modo de projeto para o Git desde o início para evitar migrações dolorosas posteriormente.
- Mantenha a lógica de negócios fora dos métodos de formulário e pré-carregue os dados relacionados em vez de percorrer as relações dentro de grandes loops.
Fontes e leituras adicionais
- Banco de dados relacional — Wikipedia: Um banco de dados relacional (RDB) é um banco de dados baseado no modelo relacional de dados, conforme proposto por E. F. Codd em 1970. Um Sistema de Gerenciamento de Banco de Dados Relacional (RDBMS…
Perguntas frequentes
4D é um banco de dados SQL?
4D é um banco de dados relacional com linguagem nativa própria e um motor SQL integrado. Você pode emitir instruções SQL através de Begin SQL / End SQL, mas a maior parte do desenvolvimento 4D utiliza ORDA ou comandos 4D clássicos em vez de SQL. O modelo subjacente é relacional (tabelas, chaves e relações), portanto, os conceitos SQL são transferidos, mesmo que a sintaxe que você escreve todos os dias não o faça.
Preciso saber programação para usar 4D?
O conhecimento básico de programação é muito útil, pois os formulários e regras de negócio estão ligados ao código 4D. Dito isto, o editor de formulários e assistentes integrados em 4D permitem criar uma aplicação funcional de entrada de dados com o mínimo de código.
Os desenvolvedores cidadãos normalmente começam com formulários e listas de valores e depois aprendem os métodos necessários para um comportamento personalizado. Para quem está começando, um tutorial de banco de dados 4D pode ser útil.
Qual é a diferença entre comandos ORDA e comandos 4D clássicos?
ORDA é uma camada de acesso orientada a objetos construída em torno de um armazenamento de dados (ds), entidades e seleções de entidades, com consultas encadeadas e suporte para seleções do lado do cliente. Comandos clássicos como QUERY, CREATE RECORD e MODIFY SELECTION funcionam em seleções clássicas e registros atuais. ORDA é a abordagem recomendada para novos desenvolvimentos, enquanto os comandos clássicos permanecem comuns em bases de código mais antigas.
As aplicações 4D podem ser executadas na web ou em dispositivos móveis?
Sim. 4D inclui um servidor web integrado e ORDA pode expor endpoints REST sobre seu armazenamento de dados, para que um front-end de navegador possa se comunicar com o mesmo esquema. 4D também oferece geração de clientes móveis para iOS e Android. A desvantagem é que os clientes web e móveis devem prestar muita atenção à autenticação e à quantidade de dados retornados por cada solicitação.
Como faço backup de um banco de dados 4D com segurança?
Habilite o log (journal) (arquivo de log) em 4D Server para que você possa recuperar até um determinado momento e agendar backups automáticos em vez de depender de cópias manuais. Sempre teste uma restauração em uma cópia dos dados antes de precisar dela em uma emergência. Mantenha a estrutura sob controle de versão separada do arquivo de dados, pois eles mudam em ritmos diferentes.
4D é adequado para um aplicativo para pequenas empresas?
O 4D foi projetado exatamente para este cenário: uma pequena equipe criando uma aplicação de negócio personalizada com formulários, relatórios e um esquema relacional. Ele pode ser dimensionado para implantações cliente-servidor e acesso à Web sem alterar a estrutura central. As principais considerações são o custo de licenciamento e o menor conjunto de talentos em comparação com as pilhas da web convencionais, portanto, a manutenção a longo prazo e a velocidade de construção devem ser ponderadas.
Perguntas frequentes
4D é um banco de dados SQL?
4D é um banco de dados relacional com linguagem nativa própria e um motor SQL integrado. Você pode emitir instruções SQL através de Begin SQL / End SQL, mas a maior parte do desenvolvimento 4D utiliza ORDA ou comandos 4D clássicos em vez de SQL. O modelo subjacente é relacional (tabelas, chaves e relações), portanto, os conceitos SQL são transferidos, mesmo que a sintaxe que você escreve todos os dias não o faça.
Preciso saber programação para usar 4D?
O conhecimento básico de programação é muito útil, pois os formulários e regras de negócio estão ligados ao código 4D. Dito isto, o editor de formulários e assistentes integrados em 4D permitem criar uma aplicação funcional de entrada de dados com o mínimo de código. Os desenvolvedores cidadãos normalmente começam com formulários e listas de valores e depois aprendem os métodos necessários para um comportamento personalizado. Para quem está começando, um tutorial de banco de dados 4D pode ser útil.
Qual é a diferença entre comandos ORDA e comandos 4D clássicos?
ORDA é uma camada de acesso orientada a objetos construída em torno de um armazenamento de dados (ds), entidades e seleções de entidades, com consultas encadeadas e suporte para seleções do lado do cliente. Comandos clássicos como QUERY, CREATE RECORD e MODIFY SELECTION funcionam em seleções clássicas e registros atuais. ORDA é a abordagem recomendada para novos desenvolvimentos, enquanto os comandos clássicos permanecem comuns em bases de código mais antigas.
As aplicações 4D podem ser executadas na web ou em dispositivos móveis?
Sim. 4D inclui um servidor web integrado e ORDA pode expor endpoints REST sobre seu armazenamento de dados, para que um front-end de navegador possa se comunicar com o mesmo esquema. 4D também oferece geração de clientes móveis para iOS e Android. A desvantagem é que os clientes web e móveis devem prestar muita atenção à autenticação e à quantidade de dados retornados por cada solicitação.
Como faço backup de um banco de dados 4D com segurança?
Habilite o diário (arquivo de log) em 4D Server para que você possa recuperar até um determinado momento e agendar backups automáticos em vez de depender de cópias manuais. Sempre teste uma restauração em uma cópia dos dados antes de precisar dela em uma emergência. Mantenha a estrutura sob controle de versão separada do arquivo de dados, pois eles mudam em taxas diferentes.
4D é adequado para um aplicativo para pequenas empresas?
4D está desenhado exatamente para este cenário: uma pequena equipe criando uma aplicação de negócio personalizada com formulários, relatórios e um esquema relacional. Ele pode ser dimensionado para implantações cliente-servidor e acesso à Web sem alterar a estrutura central. As principais considerações são o custo de licenciamento e o menor conjunto de talentos em comparação com as pilhas da web convencionais, portanto, a manutenção a longo prazo e a velocidade de construção devem ser ponderadas.
Experimente o FileMaker gratuitamente por 45 dias
A plataforma de banco de dados relacional de longa duração para equipes que precisam de aplicativos personalizados em desktop, web e dispositivos móveis a partir de um único arquivo.