MODELO RELACIONAL E RESTRIÇÕES DE INTEGRIDADE - PDF
Download "MODELO RELACIONAL E RESTRIÇÕES DE INTEGRIDADE"
Elias Laranjeira de Paiva
1 MODELO RELACIONAL E RESTRIÇÕES DE Prof. Ronaldo R. Goldschmidt Definição: O Modelo Relacional representa o banco de dados como uma coleção de relações. Fundamenta-se na Teoria dos Conjuntos. Informalmente: Cada relação se parece com uma tabela de valores. Existem SGBDs próprios para gerenciamento de Bancos de Dados Relacionais (Bancos de Dados baseados no Modelo Relacional) : SGBDRs. Exs: Oracle, SQL Server, PostgreSQL, MYSQL, etc 1
2 Recordação: Uma relação é o nome dado a qualquer subconjunto de um produto cartesiano entre dois ou mais conjuntos. Exemplo: Sejam os seguintes domínios (conjuntos de valores atômicos - indivisíveis): D 1 = {X/X é CPF de aluno da Disciplina Banco de Dados} D 2 = {X/X é de aluno da Disciplina Banco de Dados} Forma Explícita: D 1 = { , , } cardinalidade do domínio D 1 = 3 D 2 = { José,, } cardinalidade do domínio D 2 = 3 Produto Cartesiano: D 1 D 1 = { D 1 = D 1 x D 2 ( , José ), ( , ), ( , ), ( , José ), ( , ), ( , ), ( , José ), ( , ), ( , ) } Relação: R D 1 R = { ( , José ), ( , ), ( , )} Aluno(CPF, ) é o esquema da relação R=ALUNO ( , José ) é uma instância/tupla da relação ALUNO CPF e são atributos da relação ALUNO. Cada atributo é o nome de um papel desempenhado por algum domínio no esquema da relação. 2
3 Relação: R D 1 R = { ( , José ), ( , ), ( , )} Representação Tabular da Relação ALUNO CPF NOME José Aridade = 2 Cardinalidade = 3 Operações Fundamentais sobre a relação: Inclusão de novas tuplas Exclusão de tuplas existentes Alteração de tuplas existentes Consulta a tuplas existentes Notação emática (Genérica) Esquema de uma relação R de grau (aridade) n é indicado por R(A 1,A 2,,A n ) Uma tupla t em uma relação R é indicada por <v 1,v 2,,v n > onde vi corresponde ao valor do atributo Ai t[a i ] ou t.a i ou t[i] referem-se ao valor v i do atributo A i na tupla t Grau ou Aridade = 4 Cardinalidade = 3 Considerando a tupla <,,, >: t[nome]=< >, t[,]=<,>, t[,]=<, > 3
4 a) Restrições de Domínio: O valor de cada atributo A i em uma tupla deve ser um valor atômico do domínio dom(a i ). b) Restrições de Chave: Todas as tuplas de uma relação devem ser distintas. Definição: Um conjunto de atributos de uma relação R é uma superchave (SK- SuperKey) se para quaisquer duas tuplas distintas t i e t j de R então t i [SK] t j [SK] São exemplos de superchaves: {}, {, }, {, }, {, }, etc Não são superchaves: {}, {}, {}, {, } Definição: Uma chave (K-Key) de uma relação R é uma superchave onde, ao se remover qualquer atributo, o conjunto de atributos restantes não será superchave Uma chave é uma superchave mínima, ou seja, não podemos remover qualquer atributo e ainda manter a unicidade (não repetição) de valores na relação resultante. Id Exs de SKs: {}, {, }, {, Id}, {, }, {,,, }, etc Não são superchaves: {}, {}, {}, {, } São exemplos de chaves: {}, {Id} Não são chaves: {, }, {, }, {Id, } 4
5 Definição: Cada uma das chaves de uma relação R é denominada chave candidata Id São exemplos de chaves candidatas: {}, {Id} Definição: A chave candidata cujos valores são usados para identificar unicamente (sem repetição) as tuplas de uma relação é denominada chave primária PK primary key. No exemplo: Aluno (, Id,,, ), é PK. PKs Representação sublinhada. b.1) Restrição de Integridade de Entidade (RIE): Chaves primárias não podem conter valor NULL. A tupla 2 viola a RIE Observação Importante: A RIE é assegurada pelos próprios SGBDRs Chaves primárias podem ser compostas (por mais de um atributo). A RIE também se aplica em PKs compostas. Ex: Cliente TipoDoc RG CNH Numero A tupla 3 viola a RIE 222 5
6 Definição: Uma chave estrangeira (FK Foreign Key) em uma relação R é um conjunto de atributos que referenciam a chave primária de outra relação Aluno CodCurso 02 Curso Cod Sigla Informática INF 02 Direito DIR O atributo CodCurso é FK na relação Aluno pois referencia a PK da relação Curso (Cod). b.2) Restrição de Integridade Referencial (RIR): Os valores de uma chave estrangeira ou são null ou existem na tabela referenciada. Aluno CodCurso 10 Curso Cod 02 Informática Direito Sigla INF DIR A tupla 3 da relação Aluno viola a RIR pois o valor 10 não existe na relação Curso. A tupla 2 da relação Aluno não viola a RIR pois o valor do CodCurso é desconhecido no momento (A aluna não está matriculada em nenhum curso). Observação importante: A RIR também é assegurada pelos próprios SGBDRs 6
7 Leituras Recomendadas Cap. 5 Elmasri e Navathe Cap. 2 Silberschatz e Korth Atividades Práticas Todos os exercícios do cap. 5 Elmasri e Navathe Identificação dos componentes do BDR fornecido como exemplo 7