Modelo de base de dados relacional Nas bases de dados relacionais a estrutura fundamental é a relação ou tabela Uma relação é definida por um esquema que é composto pelo nome da relação e por um ou mais atributos
Tabela: objectos, atributos e valores
Modelo relacional: Relação (ou Tabela) Dada uma colecção de conjuntos de valores (domínios) D1, D2 ,..., Dn , define-se o seu produto cartesiano D1x D2 x...x Dn A cada tuplo (a1, a2, ..., an) deste produto cartesiano dá- se o nome de instância. R é uma relação (ou tabela) se for um subconjunto de instâncias. Cada elemento da relação (ou tabela) é designado por registo da tabela.
BDs em geral: registos/campos/valores Dados geográficos: objectos/atributos/valores, em que os objectos podem ser polígonos, linhas, pontos, ...
Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.
SQL : sintaxe SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]} FROM tableexpression [, ...] [WHERE... ] [GROUP BY...] [HAVING... ] [ORDER BY... ];
A instrução SELECT As consultas a uma base de dados relacional fazem-se em SQL recorrendo à instrução SELECT. Esta instrução permite criar conjuntos de registos de uma ou mais tabelas da base de dados seleccionados segundo diversos critérios.
Seleccionar todos os objectos Sintaxe — 1ª variante: SELECT { * | table.* | [table.]field1 [, [table.]field2 [, ...]]} FROM table; onde * especifica que todos os campos devem ser seleccionados table especifica o nome da tabela que contém os campos e os registos seleccionados field especifica os nomes dos campos que são seleccionados
A cláusula WHERE permite especificar uma condição que os registos seleccionados verificam. Sintaxe — 2ª variante: SELECT fieldlist FROM table WHERE condition; onde condition é uma condição que os registos seleccionados verificam; podem ser utilizados por exemplo: operadores relacionais (<, <=, >, >=, =, <>) , operadores lógicos (NOT, AND, OR) e os operadores IN, BETWEEN e LIKE.
Select * From conc Where “AREA” > 500000000
Nota: numa pesquisa um conjunto de caractéres pode ser representado por * ou por %. Exemplo: Select * From solos Where “NOME” like ‘L%’
Select * From rios Where "TIPO" = 'Principal' OR "DESIGNACAO" in ( 'Fronteira terrestre', 'Fronteira marítima')
Modelo relacional - Chave candidata Quando um atributo de uma dada relação toma valores diferentes para cada instância dessa relação diz-se que esse atributo é uma chave candidata.
Modelo relacional - Chave primária Considera-se chave primária de uma relação um subconjunto mínimo de atributos cujos valores permitam distinguir todas as instâncias dessa relação.
Tabelas: chaves estrangeiras Uma chave estrangeira de uma relação é um conjunto de atributos que é chave primária de outra relação.
Exemplo: duas tabelas relacionadas Polígono(número,cód-conc) Concelho(cód-conc,nome) número cód-conc cód-conc nome representa polígono 1:n 1:1 concelho
Cruzamento de tabelas (Join) Exemplo: Cruzamento: 25 RC11802 26 RC11808 RC11802 Bragança RC11808 Vinhais Chave estrangeira Chave primária 25 RC11802 Bragança 26 RC11808 Vinhais