Active record

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Ambox rewrite.svg
Esta página precisa ser reciclada de acordo com o livro de estilo (desde outubro de 2011).
Sinta-se livre para editá-la para que esta possa atingir um nível de qualidade superior.

Em Engenharia de software, active record é um padrão de projeto encontrado em softwares que armazenam seus dados em Banco de dados relacionais. Assim foi nomeado por Martin Fowler em seu livro Patterns of Enterprise Application Architecture[1] . A interface de um certo objeto deve incluir funções como por exemplo Inserir(Insert), Atualizar(Update), Apagar(Delete) e propriedades que correspondam de certa forma diretamente às colunas do banco de dados associado.

Active record é uma abordagem para acesso de dados num banco de dados. Uma tabela de banco de dados ou visão(view) é embrulhada(wrapped) em uma classe. Portanto, uma instância de um objeto é amarrada a um único registo(tupla) na tabela. Após a criação e gravação de um objeto, um novo registo é adicionado à tabela. Qualquer objeto carregado obtém suas informações a partir do banco de dados. Quando um objeto é atualizado, o registro correspondente na tabela também é atualizado. A classe de embrulho implementa os métodos de acesso(setter e getter) ou propriedades para cada coluna na tabela ou visão.

Este padrão é comumente utilizado por ferramentas de persistência de objetos e em mapeamento objeto-relacional. Geralmente as relações de chave estrangeira serão expostas como uma instância do objeto do tipo apropriado por meio de uma propriedade.

Implementação[editar | editar código-fonte]

Implementações do conceito podem ser encontradas em vários Frameworks para diversos ambientes de programação. Por exemplo, se um banco de dados possui a tabela produtos com as colunas nome (tipo string) e valor (tipo number) e o padrão de projeto Active Record é implementado na classe Produto, o pseudo-código:

produto = new Produto()
produto.nome = "Produto exemplo"
produto.valor = 123.45
produto.save()

Irá criar um novo registro na table produtos com os valores fornecidos sendo grosseiramente equivalente ao comando SQL:

INSERT INTO produtos (nome, valor) VALUES ('Produto exemplo', 123.45);

Da mesma forma, a classe pode ser usada para consultar o banco de dados:

b = Produto.find_first("nome", "televisor")

Este código criará um novo objeto do tipo Produto baseado no primeiro registro encontrado da tabela produtos onde a coluna nome contém o valor "televisor". O comando SQL usado pode ser similar ao seguinte (dependendo dos detalhes da implementação SQL do banco de dados):

SELECT * FROM produtos WHERE nome = 'televisor' LIMIT 1; -- MySQL ou PostgreSQL

Ligações externas[editar | editar código-fonte]

Referências[editar | editar código-fonte]

  1. Fowler, Martin. Patterns of enterprise application architecture. [S.l.]: Addison-Wesley, 2003. ISBN 978-0-321-12742-6
Ícone de esboço Este artigo sobre engenharia de software é um esboço. Você pode ajudar a Wikipédia expandindo-o.