Identificando atributos disponíveis
Tabela Base e tabela Estendida
Tabelas
View / Tables
Explicaremos agora a definição de tabela base e tabela estendida.
São dois conceitos muito simples, e é importante compreendê-los, porque
eles são muito usados no uso da ferramenta em geral.
Observemos o nó Tables
Abaixo deste nó, podemos ver quais tabelas físicas GeneXus determinou
criar no banco de dados a partir das estruturas das transações que
definimos.
Transação - Tabela
Category: A transação e a tabela tem os mesmos atributos.
=
Attraction: A transação tem mais atributos que a tabela.
Atributos
inferidos
Chaves
estrangeiras
Se abrirmos por exemplo a tabela Category vemos que a tabela física
contém exatamente os mesmos atributos definidos na estrutura da
transação Category.
No entanto, se abrirmos a composição da tabela Attraction, vemos que ela
contém menos atributos do que aqueles referenciados na transação
Attraction.
Isto porque na transação Attraction há diversas chaves estrangeiras e
portanto, através delas, há valores de atributos que são obtidos quando a
aplicação é executada, daquelas tabelas em que se encontram.
Transaction - Table
Tabela de chave composta
A tabela CountryCity foi criada pelo GeneXus na base de dados, com base no que foi definido no
segundo nível da transação Country.
Vejamos também que abaixo do nó Tables aparece uma tabela chamada
CountryCity
Esta tabela física foi criada por GeneXus no banco de dados com base na
definição do segundo nível que fizemos na transação Country:
Como tínhamos visto, quando definimos um nível aninhado a outro em uma
transação, é criada uma tabela de chave composta que neste caso é a tabela
CountryCity.
Diagrama de tabelas
File / New Object
Agora... observamos o nó Tables abaixo do qual podemos visualizar as
tabelas físicas criadas no banco de dados e suas composições
Vamos ver agora que podemos criar um diagrama de tabelas, para visualizá-
las em um diagrama que mostra, além de sua composição, como se
relacionam entre elas.
Selecionamos File / New / Object
Selecionamos criar um objeto do tipo Diagram e deixamos o nome oferecido
por padrão: Diagram1
Selecionamos Create e arrastamos a partir do nó Tables todas as tabelas para
o diagrama...
Agora pressionamos o botão direito do mouse e selecionamos Arrange
obtendo a distribuição das tabelas no diagrama e que se vejam claramente as
setas que representam como se relacionam entre si:
Observando este diagrama de tabelas, explicaremos o que denominamos
tabela base e tabela estendida em GeneXus.
Chamamos tabela base a qualquer tabela do banco de dados na qual
estamos posicionados em determinado momento, por exemplo, para
exibir seus dados ou modificá-los.
Exemplo
▪ Tabela estendida tabela base Attraction
TABELA BASE
N
1
Tabela estendida
Poderia ser esta...
Exemplo
▪ Tabela estendida tabela base Customer
TABELA BASE
Tabela estendida
Ou qualquer uma das tabelas do diagrama.
Exemplo
▪ Tabela estendida tabela base CountryCity
TABELA BASE
Tabela estendida
Quando executamos uma transação de um nível ela tem uma tabela base
associada ou seja, uma tabela física, na qual se realizam as inserções,
modificações e exclusões que operamos por exemplo, através da tela da
transação, de forma interativa.
Quando trabalhamos com uma transação de mais de 1 nível, cada nível tem
uma tabela base associada na qual se realizam as inserções, modificações
e eliminações que processamos através deste nível.
Também quando definimos consultas (por exemplo, uma listagem), estaremos
navegando em uma determinada tabela base.
Conceitos fundamentais
▪ Tabela Base:
Qualquer tabela física no banco de dados, na qual estejamos
posicionados trabalhando em determinado momento.
▪ Tabela Estendida:
Para uma determinada tabela, sua tabela estendida é um conceito que nos permite considerar todas
as informações que podemos acessar a partir dela, usando suas chaves estrangeiras.
É o conjunto de todos os atributos da própria tabela base mais todos os atributos das tabelas com as
quais ela tenha uma relação N-1 direta ou indireta.
Tabela Base
Tabela Estendida
A tabela base, então, é qualquer tabela física no banco de dados, na qual
estejamos posicionados trabalhando em determinado momento.
Vejamos agora o conceito de tabela estendida. Este conceito surge para
simplificar a tarefa de saber a quais tabelas temos alcance quando
estamos posicionados em determinada tabela base.
Intuitivamente, já acessamos a tabela estendida de determinada tabela
base
Por exemplo, a transação de Attraction tem por tabela base ou tabela física
associada a tabela ATTRACTION.
E como vimos antes, como CategoryId é um atributo chave estrangeira na
transação Attraction podemos referenciar o atributo CategoryName
CategoryName não pertence à tabela base associada à transação
Attraction mas podemos obter o seu valor, porque ele está na tabela
estendida.
Generalizando, sempre a partir de uma chave estrangeira como são
CategoryId, CountryId e CityId em Attraction podemos obter os valores
de seus atributos secundários das tabelas em que estão localizados.
E se nestas tabelas por sua vez há outra ou outras chaves estrangeiras, a
cadeia continua e também se podem obter seus dados relacionados.
Tabela Estendida
N 1
1
N 1
Agora, uma vez que entendemos intuitivamente o conceito, formalmente
dizemos que:
Dada determinada tabela qualquer que consideremos tabela base em
determinado momento, sua tabela estendida é o conjunto de todos os atributos
da própria tabela base mais todos os atributos das tabelas com as quais ela
tenha uma relação N-1 direta ou indireta
Se voltamos agora a observar o diagrama de tabelas que tínhamos criado,
veremos outra maneira de determinar a tabela estendida de uma
determinada tabela base.
Se tomamos como tabela base ATTRACTION sua tabela estendida compreende a
própria tabela ATTRACTION e se seguimos a seta simples vemos que CATEGORY
também é incluída
Para este outro lado há uma seta simples que indica que COUNTRYCITY também
está incluída... e a partir de COUNTRYCITY há uma seta simples, de modo que
COUNTRY também pertence à tabela estendida da tabela base ATTRACTION.
Assim, observando um diagrama de tabelas, para obter a tabela estendida de
uma determinada tabela base, podemos começar a partir dela e seguir as setas
que têm seta dupla a partir da tabela base e ponta simples na outra extremidade,
e a tabela a que chegamos também será parte de sua tabela estendida... e assim
todas as tabelas que podem ser alcançadas seguindo setas simples, farão parte
da tabela estendida.
Em suma, nós estaremos navegando no sentido das relações N a 1.
Exemplo
▪ Tabela estendida tabela
Voltando ao diagrama, observemos que se COUNTRYCITY é a tabela base na
qual estamos posicionados em determinado momento, sua tabela
estendida compreende a ela mesma, a tabela COUNTRY e nenhuma mais.
E dada a tabela base COUNTRY, vemos que sua tabela estendida é
compreendida somente por ela mesma, pois não tem nenhuma flecha simples
que possamos seguir.
[Link]
[Link]