Fórum Como fazer uma NATURAL INNER JOIN no Interbase #39918
06/11/2003
0
Estou precisando muito de saber se existe um comando equivalente ao NATURAL INNER JOIN para o Interbase, já que este comando faz a junção de duas tabelas sem a necessidade de se especificar os campos. Utilizando o comando INNER JOIN para fazer o mesmo, tenho que especificar cada campo necessário e isso está dando muito trabalho. (Vejam exemplo abaixo).
Ex.: ´Select * From Empregado NATURAL INNER JOIN Trabalha´
ou
´Select nome_empregado, rua, cidade, nome_companhia,salario from empregado INNER JOIN Trabalha on Empregado.Nome_Empregado=Trabalha.Nome_Empregado´
Por favor, se alguém conhecer alguma função equivalente ou souber uma forma mais fácil de se fazer isso, agradeço.
Desde já obrigado!
________________________
Manoel Pereira Junior
maneljunior@hotmail.com
Maneljunior
Curtir tópico
+ 0Posts
08/11/2003
Afarias
|NATURAL INNER JOIN para o Interbase, já que este comando faz a
|junção de duas tabelas sem a necessidade de se especificar os campos.
NÃO
|Utilizando o comando INNER JOIN para fazer o mesmo, tenho que
|especificar cada campo necessário e isso está dando muito trabalho.
:?: :!: :?: :!: Muito trabalho para especificar a relação das tabelas ???
...que isso...
se vc acha tanto trabalho assim, a forma mais ´simples´ seria::
select * from empregado e INNER JOIN trabalha t on (e.nome_empregado = t.nome_empregado)
só q em desenvolvimento de sistemas ´indolência´ pode te trazer muitos problemas... be ware!
T+
Gostei + 0
08/11/2003
Maneljunior
seria realmente muito fácil especificar os atributos de cada tabela se eu as conhecesse. No entanto, minha ferramenta SIMULAR, cujo artigo foi publicado na Revista SQL Magazine, Edição 6 trabalha com qualquer base de dados Interbase e não tenho como prever quais os campos que as tabelas do banco de dados terá, por isso tenho que extrair os campos de cada tabela necessária.
Sendo assim, acho que o termo ´INDOLÊNCIA´ no meu caso não se aplica, haja visto que estou tratando da conversão de uma consulta escrita em Álgebra Relacional para SQL, se é que você me entende. Acho também que como moderador, você deveria analisar bem a situação antes de usar termos como este, já que como no meu caso você está redondamente enganado. Desde o começo do ano não sei mais o que é namorar, fim de semana, feriado e principalmente dormir por causa da minha ferramenta.
E digo mais, se você realmente acha tão fácil as coisas, que tal me mandar uma sugestão de como fazer uma análise léxica, sintática e semântica de uma expressão em Álgebra Relacional e mais, como transformá-la depois de passar por todos estes passos para SQL. Como você deixou bem claro que tudo para você é fácil, me mande um roteiro de como fazer isso e lhe serei grato, agora se você nem ao menos souber o que é isso, nem tente pedir ajuda a alguém para me responder, já que este assunto não é para qualquer um, mas se mesmo assim você quiser insistir, consulte o livro do dragão de COMPILADORES (AHO) e o livro SISTEMA DE BANCO DE DADOS, 3ª Edição do Silberschatz. Talvez depois de uns dois anos de
Sem mais para o momento.
______________________
Manoel Pereira Junior
maneljunior@hotmail.com
Gostei + 0
08/11/2003
Maneljunior
Gostei + 0
09/11/2003
Afarias
|as conhecesse. No entanto, minha ferramenta SIMULAR, cujo artigo foi
|publicado na Revista SQL Magazine, Edição 6 trabalha com qualquer
|base de dados Interbase e não tenho como prever quais os campos que
|as tabelas do banco de dados terá, {...}
Claro q tem::
select rdb$field_name from rdb$relation_fields
where rdb$relation_name = ´NOME_DA_TABELA´;
8)
bom, é uma pena q eu não tenha a revista, gostaria de dar uma olhada em seu trabalho.
|Sendo assim, acho que o termo ´INDOLÊNCIA´ no meu caso não se
|aplica, haja visto que estou tratando da conversão de uma consulta
|escrita em Álgebra Relacional para SQL, se é que você me entende.
Entendo.
|Acho também que como moderador, você deveria analisar bem a
|situação antes de usar termos como este, já que como no meu caso
|você está redondamente enganado.
Peço q me desculpe. Não achei q fosse um termo ofensivo. Quis apenas alertar q coisas normalmente evitadas como especificar cada um dos campos em um select ou insert -- apesar de trabalhoso, evita muitos problemas, e constitui uma boa prática para qualquer sistema.
|Desde o começo do ano não sei mais o que é namorar, fim de semana,
|feriado e principalmente dormir por causa da minha ferramenta.
Pessoalmente acho q ´alta´ dedicação é importante, mas, ´completa´ dedicação, abandonando qualquer momento de descanso e lazer vai provavelmente atrapalhar em seu trabalho e objetivos (eXtreme Programming - 40Hour week pratice).
|E digo mais, se você realmente acha tão fácil as coisas, que tal me
|mandar uma sugestão de como fazer uma análise léxica, sintática e
|semântica de uma expressão em Álgebra Relacional e mais, como
|transformá-la depois de passar por todos estes passos para SQL.
Bom, acho q tais assuntos fogem ao escopo deste fórum. Entretanto, vc pode adicionar muito a sua aplicação conhecendo melhor as ferramentas q está usando. Neste caso -- em relação do INTERBASE -- tenho certeza que este fórum lhe será muito útil.
|Como você deixou bem claro que tudo para você é fácil, me mande um
|roteiro de como fazer isso e lhe serei grato, agora se você nem ao
|menos souber o que é isso, nem tente pedir ajuda a alguém para me
|responder, já que este assunto não é para qualquer um, mas se mesmo
|assim você quiser insistir, consulte o livro do dragão de COMPILADORES
|(AHO) e o livro SISTEMA DE BANCO DE DADOS, 3ª Edição do
|Silberschatz. Talvez depois de uns dois anos de estudo você consiga me
|dar a resposta
humm... teoria de bancos de dados relacionais até é um assunto que gosto... entretanto... como leitura na área eu realmente prefiro Date (An Introduction to Database Systems; Temporal Data and the Relational Model; The Database Relational Model -- C. J. Date)
Com relação a ´não ser pra qualquer um´ eu não sei não... acredito q qualquer curso em Ciência da Computação, Engenharia de Sistemas e similares possuem a cadeira de Sistemas de Bancos de Dados (cobrindo claro, algebra relacional) -- sendo assim... acho q qualquer pessoa interessada pode se desenvolver no assunto. Mas claro, acredito q esta área a qual vc está seguindo não é fácil e exige dedicação.
mas bom... como desenvolvedor de sistemas (área que tenho seguido), tenho tido q me dedicar mais a ´prática´ (sem esquecer entretanto das teorias q apoiam tais ´práticas´ claro) -- mas:: 1) não existe nenhum banco de dados em uso -- principalmete comercial -- que siga (completamente) a teoria relacional (12 regras de Codd); 2) não sou eu que pretendo construir tal banco. ;) (Entretanto, tenho um conhecido q pretende, se vc quizer passo o e-mail dele para vc discutir teoria com ele) -- alem disso, sabe como são os cronogramas de desenvolvimento, o q me deixa muito ocupado -- sendo assim, acho q não poderei lhe ajudar muito com seu trabalho.
Novamente peço desculpas e, no q se refere a Interbase, acredito q este fórum pode lhe ser muito útil. No mais, sugiro uma visita ao site::
http://www.dbdebunk.com/
http://www.dbforums.com/forumdisplay.php?forumid=116
Entre outros dedicados a Sistemas de Bancos de Dados. E segue alguns em Álgebra Relacional (se bem q não devem ser úteis a vc -- já q a maioria apenas apresenta o básico)::
http://www.csam.iit.edu/~cs561/algebra/home.html
http://www.cs.sfu.ca/CC/354/zaiane/material/notes/Chapter3/node7.html
http://www.cs.ust.hk/faculty/dimitris/COMP530/notes/l2b.pdf
http://www.tc.umn.edu/~hause011/code/SQLexample.txt
http://miami.int.gu.edu.au/dbs/2005/topics/it03gt04.htm
http://www.rsu.edu/faculty/johnnycarroll/cs3223/fa2002/Lectures/The¬20Relational¬20Algebra_Lecture¬201.htm
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)