///
O banco de dados é constituído pelas tabelas Candidato, Prova e Avaliação, cujas colunas e respectivas instâncias são mostradas a seguir. NULL representa um valor não preenchido.
| Candidato | |
|---|---|
| inscrição | candidatoNome |
| 101 | João |
| 102 | Maria |
| 105 | Gabriela |
| 106 | João |
| Prova | |
|---|---|
| provaNome | data |
| Português | 12/01/2014 |
| Matemática | 12/01/2014 |
| Prática | 19/01/2014 |
| Avaliação | ||
|---|---|---|
| inscrição | provaNome | nota |
| 101 | Português | 10 |
| 102 | Português | 8 |
| 105 | Português | 3 |
| 106 | Português | 5 |
| 101 | Matemática | 7 |
| 102 | Matemática | 4 |
| 105 | Matemática | 8 |
| 101 | Prática | 5 |
| 102 | Prática | 5 |
| 105 | Prática | NULL |
| 106 | Prática | 4 |
Esquema relacional:
Candidato (inscrição, candidatoNome)
Prova (provaNome, data)
Avaliação (inscrição, provaNome, nota)
Chaves primárias (primary keys): a coluna inscrição constitui a chave primária da tabela Candidato; a coluna provaNome constitui a chave primária as colunas inscrição e provaNome, em conjunto, constituem a chave primária da tabela Avaliação.
Chaves estrangeiras (foreign keys): a coluna inscrição, da tabela Avaliação, constitui uma chave estrangeira que referencia a tabela Candidato; a coluna provaNome, da tabela Avaliação, constitui uma chave estrangeira que referencia a tabela Prova.
Observe os dois comandos SQL mostrados a seguir com os respectivos resultados.
select * from avaliação where nota >= 5
inscrição provaNome nota
----------- ---------- ------
101 Português 10
102 Português 8
106 Português 5
101 Matemática 7
105 Matemática 8
101 Prática 5
102 Prática 5
select * from avaliação where not (nota >= 5)
inscrição provaNome nota
----------- ---------- ------
105 Português 3
102 Matemática 4
106 Prática 4Note que em nenhum dos resultados a linha
105 Prática NULL
aparece, mesmo que, no segundo comando, a cláusula where do primeiro comando tenha sido negada logicamente. A ausência da referida linha ocorre porque o sistema gerenciador do MS SQL Server