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: instância, atributos e valores
Modelo relacional - Atributo Um atributo Ai pode ser definido como uma variável que toma valores num conjunto Di chamado domínio do atributo
Modelo relacional: Relação (Tabela) Dada uma colecção de conjuntos (domínios) D1, D2 ,..., Dn , R é uma relação (ou tabela) se for um conjunto de n-tuplos (a1, a2, ..., an) tais que a1 pertence a D1 ,a2 pertence a D2 ... . A cada tuplo (a1, a2, ..., an) deste produto cartesiano dá-se o nome de instância da relação R
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.
Modelo relacional: 1ª forma normal Todos os atributos tomam valor único. Exemplo: Em vez de Fazer: Tejo principal marítima, terrestre Mondego marítima Tejo principal sim Mondego não
Modelo relacional - Dependências funcionais Dada um relação R definida sobre um conjunto de atributos U={A1, A2, …, An}, diz-se que o atributo Ak depende funcionalmente do atributo Ai (AiAk) se e só se sempre que duas instâncias tiverem o mesmo valor em Ai tiverem também o mesmo valor em Ak.
Modelo relacional: 2ª forma normal A tabela tem que estar na 1ª forma normal Todos os atributos da tabela são funcionalmente dependentes do conjunto dos atributos da chave primária
Modelo relacional: 3ª forma normal A tabela tem que estar na 2ª forma normal Não existem dependências funcionais entre atributos que não são chave primária
Normalização A passagem de uma forma normal para outra pode implicar a decomposição de uma tabela num conjunto de tabelas.
Exemplo: 2ª FN 3ª FN Exemplo: dada a tabela na 2ª forma normal Fazer: 25 RC11802 Bragança 26 RC11808 Vinhais 25 RC11802 26 RC11808 RC11802 Bragança RC11808 Vinhais
Tabela normalizada (3ª forma normal) Numa tabela que verifica as primeiras três formas normais, qualquer atributo que não pertence à chave primária depende completamente e exclusivamente da totalidade dessa chave.
Tabelas com atributos comuns
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
Structured Query Language (SQL) SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]} FROM tableexpression [, ...] [WHERE... ] [GROUP BY...] [HAVING... ] [ORDER BY... ];
SQL: Exemplo de pesquisa SQL Select area,designacao From Attributes of Conc Where designacao=“Vila Real de Santo António” Resultado: 47883280 Vila Real de Santo António 12741530
Exemplo: resultado da pesquisa (2)
Pesquisa sobre 2 tabelas relacionadas por uma chave estrangeira Select * From Attributes of Conc , concNut3 Where [Attributes of Conc].CodNuts = concNut3.CodNuts
Exemplo: resultado do Join o resultado é a adição de coluna(s) à tabela com chave estrangeira; o resultado não é uma selecção
Pesquisas agrupadas Select merge(shape) , Nut3 From Attributes of Conc Group by Nut3