-
Creio que o erro da questão seja o trecho "incluindo os detalhes
de implementação de como essa recuperação ocorrerá.". Quem puder detalhar mais :)
-
"Creio que o erro da questão seja o trecho "incluindo os detalhes de implementação de como essa recuperação ocorrerá.". Quem puder detalhar mais :)"
Mas quando vc define se vai ter projeção, produto cartesiano, etc., vc está definindo como essa recuperação ocorrerá, não?
Assim como os detalhes de implementação, já que vc tem que conhecer o banco de dados pra saber o que se relaciona com o que, quais comparações deverão ser feitas e de onde qual dado deve vir...
Alguém poderia me explicar onde minha lógica falha?
Obrigada.
-
SQL pode ser considerada uma linguagem procedural e não procedural. No contexto da questão será utilizada linguagem procedural.
Fonte: https://en.wikibooks.org/wiki/Structured_Query_Language/Introduction_to_SQL
-
Não precisa saber da implementação do banco de dados quando for utilizar o select por exemplo, que é o que a questão cita, quem precisa é o SGBD (através das suas particularidades, não do select), nem quem está executando precisa ter conhecimento das implementações técnicas do SGBD.
-
Marianna,
Mas a sua lógica se aplica ao alto nível do SQL. A implementação de recuperação de dados está relacionada aos planos de SQL montados, assim como aos planos equivalentes a estes, em algebra relacional, que está "abaixo" da SQL. Não precisamos saber como estes planos são criados ou alterados. Os SGBD's nem dá a opção para aterá-los, apenas para vê-los.
Logo, a falha na sua lógica é a não separação entre esses dois passos de recuperação (aplicável a qualquer SQL, não apenas na recuperação): a criação da consulta em alto nível (SQL) e a implementação dessa consulta em baixo nível (algebra relacional) pelo SGBD.
Espero ter te ajudado!
-
Pessoal de fato o comando SELECT é não procedural (não especifica como os dados devem ser obtidos do banco;). O erro tá em "ncluindo os detalhes de implementação de como essa recuperação ocorrerá". A parte procedural seria por exemplo PL/SQL (especifica como os dados devem ser obtidos do banco;)
-
O acesso mais comum a banco de dados é realizado por meio de linguagens não procedurais. CERTO. Pois o SQL é uma linguagem declarativa, e não uma linguagem procedural, como C por exemplo.
Como exemplo, a instrução SELECT, em SQL, permite especificar os objetos do banco de dados que serão recuperados... ERRADO Não há especificação de objetos, e sim de quais atributos serão recuperados, pois a cláusula SELECT se baseia no comando PROJEÇÃO da Álgebra Relacional.
incluindo os detalhes de implementação de como essa recuperação ocorrerá. ERRADO. Não há especificação de quais detalhes de implementação de como a recuperação ocorre. Apenas especifica-se quais atributos das Tabelas explicitadas na cláusula FROM devem ser recuperados.
-
Concordo com o Silas, e, pra mim, apenas a ultima parte esta errada.
A instrução SELECT, em SQL, permite especificar também objetos do banco de dados que serão recuperados. Isso fica evidente quando o SQL é usado em BD orientado a objetos(Por Ex, o Caché). Nos BDOO tudo são objetos!