Saltar para o conteúdo principal
Versão: v19

Glossary

Principais conceitos em resumo

Atributo

Um atributo é a célula de armazenamento mais pequena num banco de dados relacional (ver também Atributo relacional). Não confundir atributos de dataclass com atributos de entidades:

  • Num objeto dataclass, cada propriedade é um atributo de dataclass que corresponde a um campo na tabela correspondente (mesmo nome e tipo).
  • Num objeto entity, os atributos de entidades são propriedades que contêm os valores para os atributos do datastore correspondentes.

    Atributos e propriedades são conceitos semelhantes. "Atributo" é utilizado para designar as propriedades da dataclass que armazenam os dados, enquanto "propriedade" é mais genérico e define um dado armazenado num objeto.

AttributePath

Um attributePath é o caminho de um atributo em uma determinada dataclass ou entidade. Ver também PropertyPath.

Class code

Código da(s) função(ões) da classe usuário.

Data model class

Classe estendida disponível para um objeto modelo de dados.

Data model object

Objetos de banco de dados disponíveis através do conceito ORDA, ou seja, datastore, dataclasses, entities e entity selections.

Data model function

Função de uma classe de modelo de dados ORDA.

Dataclass

Uma dataclass é um objeto que descreve os dados. As tabelas da banco de dados fornecidas pelo datastore são tratadas através das dataclasses. Cada tabela do banco de dados fornecida pelo datastore tem uma dataclass correspondente com o mesmo nome. Cada campo da tabela é um atributo da dataclass.

Uma dataclass está relacionada com um único datastore.

DataClass class

Classe para objetos dataclass específicos, onde se podem adicionar funções personalizadas.

Datastore

Um datastore é o objeto de interface fornecido pela ORDA para referenciar uma estrutura e aceder aos seus dados. O banco de dados principal, devolvido pelo comando ds, está disponível como um datastore (o datastore principal).

Um datastore fornece:

  • uma ligação à base de dados 4D
  • um conjunto de classes de dados para trabalhar com a base de dados

O banco de dados pode ser um banco de dados local 4D (o datastore principal), ou um banco de dados 4D Server exposto como recurso REST (um datastore remote).

Um datastore faz referência apenas a uma única base de dados. É, no entanto, possível abrir vários repositórios de dados para aceder a vários bancos de dados.

DataStore class

Classe para objetos datastore, onde é possível adicionar funções personalizadas.

DataStoreImplementation

Nome interno da classe genérica DataStore no class store 4D.

Cópia profunda

Uma cópia profunda (deep copy) duplica um objeto e todas as referências que contém. Após uma deep copy, uma coleção copiada contém os elementos duplicados e, por conseguinte, novas referências de todos os elementos originais. Ver também Cópia superficial.

ds

ds é o comando da linguagem 4D que devolve uma referência de objeto datastore. Corresponde ao datastore disponível no banco de dados principal 4D.

Entity

Uma entidade é um objeto que corresponde a um modelo de dataclass. Uma entidade contém os mesmos atributos que a dataclass.

Uma entidade pode ser vista como uma instância da dataclass, como um registo da tabela que corresponde à dataclass no seu datastore associado. No entanto, uma entidade também contém dados relacionados. O objetivo da entidade é gerir dados (criar, atualizar, apagar).

Para mais informações, consulte Entidades.

Seleção de entidades

Uma seleção de entidades é um objeto. Quando uma solicitação é enviada ao datastore, uma seleção de entidades é retornada. Uma seleção de entidade é um conjunto de referências a entidades relacionadas com a mesma dataclass.

Uma seleção de entidade contém:

  • um conjunto de 0 a X referências de entidades,
  • uma propriedade length (sempre),
  • propriedades queryPlan e queryPath (se solicitadas durante a consulta).

Uma seleção de entidade também pode estar vazia.

Generic class

Classe incorporada para objetos ORDA, tais como entidades ou dataclasses. As funções e propriedades das classes genéricas estão automaticamente disponíveis nas classes usuário estendidas, por exemplo, EmployeeEntity.

Lazy loading

Uma vez que as entidades são geridas como referências, os dados só são carregados quando necessário, ou seja, quando se acede a eles no código ou através de widgets de interface. Este princípio de otimização é chamado lazy loading.

Datastore principal

O objeto Datastore que corresponde ao banco de dados 4D aberto (autônomo ou cliente/servidor). O datastore principal é devolvido pelo comando ds.

Métodos

Os objetos ORDA, tais como datastores, dataclasses, entity selections, e entities, definem as classes de objetos. Fornecem métodos específicos para interagir diretamente com eles. Estes métodos são também designados por funções membro. Estes métodos são utilizados chamando-os a uma instância do objeto.

Por exemplo, o método quer() é uma "member function" de dataclass. Se tiver armazenado um objeto dataclass na variável $myClass, pode escrever:

$myClass.query("name = smith")

Tipo de dados misto

Nesta documentação, o tipo de dados "Misto" é utilizado para designar os vários tipos de valores que podem ser armazenados nos atributos de uma dataclass. Inclui:

  • number
  • text
  • null
  • boolean
  • date
  • object
  • collection
  • imagem(*)

(*) O tipo imagem não é suportado pelos métodos estatísticos como entitySelection.max( ).

Bloqueio optimista

No modo "bloqueio otimista", as entidades não são bloqueadas explicitamente antes de serem atualizadas. Cada entidade tem um marcador interno que é automaticamente incrementado sempre que a entidade é guardada no disco. Os métodos entity.save( ) ou entity.drop( ) retornarão um erro se o marcador da entidade carregada e o marcador da entidade no disco não coincidirem, ou se a entidade tiver sido excluída. O bloqueio otimista só está disponível na implementação ORDA. Ver também "Bloqueio pessimista".

Bloqueio pessimista

Um "bloqueio pessimista" significa que uma entidade é bloqueada antes de ser acedida, utilizando o método entity.lock( ). Outros processos não podem atualizar nem eliminar a entidade até esta ser desbloqueada. A linguagem 4D clássica só permite bloqueios pessimistas. Ver "Bloqueio optimista".

Propriedade

Ver Atributo.

Attributes and properties are similar concepts. "Atributo" é utilizado para designar as propriedades da dataclass que armazenam os dados, enquanto "propriedade" é mais genérico e define um dado armazenado num objeto.

PropertyPath

Um propertyPath é o caminho para uma propriedade num objeto dado. Se a propriedade estiver aninhada em vários níveis, cada nível é separado por um ponto (".").

Regular class

Classe usuário não relacionada com um objeto ORDA.

Estas são dataclasses ligadas pelos atributos de relação.

Atributo relacional

Os atributos de relação são utilizados para conceitualizar relações entre as dataclasses (N a 1 e 1 a N).

  • Relação N a 1 (a dataclassA referir-se a uma ocorrência da dataclassB): um atributo da relação está disponível na dataclassA e referir-se a uma instância da dataclassB.
  • Relação 1 a N (uma ocorrência de dataclassB referencia várias ocorrências de dataclassA): um atributo de relação está disponível na dataclassB e referencia várias instâncias de dataclassA.

Um dataclass pode ter atributos de relação recursivos.

Numa entidade, o valor de um atributo de relação pode ser uma entidade ou uma seleção de entidade.

Entidades relacionadas

Uma entidade relacionada pode ser vista como a instância de um atributo de relação numa dataclass.

As selecções de entidades podem referir-se a entidades relacionadas conforme os atributos de relação definidos nas dataclasses correspondentes.

Remote datastore

Um banco de dados 4D aberto em 4D ou 4D Server (disponível através de HTTP) e exposto como um recurso REST. Este banco de dados pode ser referenciada localmente como um Datastore a partir de outras estações de trabalho, onde lhe é atribuído um locaID. O datastore remoto pode ser utilizado através de conceitos ORDA (datastore, dataclass, seleção de entidades...). Esta utilização é submetida a um sistema de licenciamento.

Session

Quando a aplicação 4D se conecta a um datastore remoto, uma sessão é criada no 4D Server (HTTP). É gerado um cookie de sessão que é associado ao Id do datastore local.

Cada vez que uma nova sessão é aberta, é utilizada uma licença. Sempre que uma sessão é encerrada, a licença é libertada.

As sessões inativas são automaticamente encerradas após um tempo limite. O timeout padrão é de 48 horas, podendo ser definido pelo programador (deve ser >= 60 minutos).

Cópia superficial (Shallow copy)

Uma cópia superficial apenas duplica a estrutura dos elementos e mantém as mesmas referências internas. Após uma cópia superficial, duas coleções partilharão os elementos individuais. Ver também Deep copy.

Stamp

Utilizado na tecnologia de bloqueio "otimista". Todas as entidades têm um contador interno, o marcador, incrementado sempre que a entidade é salva. Ao comparar automaticamente os marcadores entre uma entidade salva e sua versão armazenada no disco, 4D pode evitar modificações simultâneas nas mesmas entidades.