Capítulo 5: Outras linguagens  Query-by-Example (QBE)  Datalog Database System Concepts 5.1.1 ©Silberschatz, Korth and Sudarshan (modificado) Query-by-Example (QBE)  Estrutura básica  Perguntas apenas numa relação  Perguntas em várias relações  A Condition Box  Exemplo do Access Database System Concepts 5.1.2 ©Silberschatz, Korth and Sudarshan (modificado) QBE — Estrutura de base  Linguagem gráfica de perguntas a bases de dados relacionais  O sistema cria templates de relações solicitadas por utilizadores  As perguntas são feitas com padrões, “por exemplo” Database System Concepts 5.1.3 ©Silberschatz, Korth and Sudarshan (modificado) Tabelas QBE para o exemplo do banco Database System Concepts 5.1.4 ©Silberschatz, Korth and Sudarshan (modificado) Tabelas QBE (Cont.) Database System Concepts 5.1.5 ©Silberschatz, Korth and Sudarshan (modificado) Perguntas numa só relação  • • • • Encontrar todos os números de empréstimos da agência Perryridge _x é uma variável P. significa print (display) os tuplos duplicados são removidos por default Para reter os duplicados usar P.ALL Database System Concepts 5.1.6 ©Silberschatz, Korth and Sudarshan (modificado) Perguntas numa só relação (Cont.)  Encontrar os números dos empréstimos de valor superior a 700  Nome de agências que não sejam em Brooklyn Database System Concepts 5.1.7 ©Silberschatz, Korth and Sudarshan (modificado) Perguntas numa só relação (Cont.)  Números de empréstimos feitos conjuntamente pelo Smith e o Jones.  Todos os clientes que vivem na mesma localidade que o Jones Database System Concepts 5.1.8 ©Silberschatz, Korth and Sudarshan (modificado) Perguntas em várias relações  Nomes de todos os clientes com empréstimos na agência Perryridge Database System Concepts 5.1.9 ©Silberschatz, Korth and Sudarshan (modificado) Condition Box  Permite impor condições extra sobre atributos.  E.g. Números de empréstimos feitos pelo Smith, pelo Jones, ou por ambos Database System Concepts 5.1.10 ©Silberschatz, Korth and Sudarshan (modificado) Condition Box (Cont.)  Números de contas com saldo entre $1,300 e $1,500  Agências com activos maiores que pelo menos os de uma agência em Brooklyn Database System Concepts 5.1.11 ©Silberschatz, Korth and Sudarshan (modificado) Outras features  Com o QBE é ainda possível executar ordenação de tuplos, algumas formas de agregação, e modificação de bases de dados.  Tudo o que é possível exprimir com o QBE, também o é com SQL  ... mas não vice-versa!! Database System Concepts 5.1.12 ©Silberschatz, Korth and Sudarshan (modificado) Microsoft Access QBE  O Microsoft Access suporta uma variante do QBE - Graphical Query By Example (GQBE)  É diferente do QBE em:  Em vez de usar variáveis para dizer que os valores de dois atributos têm que ser iguais, usa linhas a ligar os atributos.  Por default, as linhas especificam inner joins. Mas é possível alterar para outer joins.  As condições, valores a afixar, etc, são especificados na design grid Database System Concepts 5.1.13 ©Silberschatz, Korth and Sudarshan (modificado) Exemplo em Access QBE  Encontrar os nomes de clientes, saldo e número de conta de todos as contas da agência de Perryridge Database System Concepts 5.1.14 ©Silberschatz, Korth and Sudarshan (modificado)