Modelo Relacional Fernanda Baião UNIRIO Material parcialmente extraído a partir das notas de aula de Maria Luiza M. Campos, Arnaldo Rocha e Maria Cláudia Cavalcanti Modelo Relacional Modelo Lógico: ferramenta para descrição de estruturas de dados em uma forma passível de ser processada por um SGBD Nível de abstração mais baixo que um Modelo Conceitual Não considera aspectos físicos de armazenamento, acesso e desempenho Introduzido por Codd em 1970 Forte base teórica, fundamentada na teoria dos conjuntos Conceitos simples: relações, atributos, tuplas e domínios Base para a maioria dos SGBDs que dominam o mercado Conceitos Gerais: Relação Definição 1: Dados os conjuntos S1, S2, ...., Sn, não necessariamente distintos, diz-se que R é uma relação sobre esses n conjuntos se R é um conjunto de m tuplas, nas quais o primeiro elemento assume valores em S1, o segundo em S2, e assim por diante. EXEMPLO: S1 nome da relação S3 S2 S4 Aluno tupla 1 tupla m Nelson 21 M 010110 Davi 22 M 010100 ... ... ... ... Maria 22 F 101000 Conceitos Gerais: Atributos Definição 2: Dada uma relação R, define-se como seus atributos os nomes das funções que mapeiam os valores de cada um dos elementos de cada tupla nos respectivos conjuntos S1, S2, ...., Sn. EXEMPLO: S1 S3 S2 Idade Sexo Matrícula Nome ATRIBUTOS S4 Aluno relação Nelson 21 M 010110 Davi 22 M 010100 ... ... ... ... Maria 22 F 101000 Conceitos Gerais: Domínios ... Definição 3: Dada uma relação R, o domínio do atributo Aj , dom(Aj ), é o conjunto Sj no qual o atributo assume valores. S3 S1 DOMÍNIOS dom(Nome) dom(Sexo) S4 S2 dom(Matrícula) dom(Idade) atributos tupla Nome Nelson Idade 21 Sexo Matrícula M 010110 Conceitos Gerais: Domínios • Todo domínio possui uma descrição física e outra semântica. • a descrição física serve para identificar o tipo e o formato dos valores que compõem o domínio. exemplo: • char(13), “(dd)dddd-dddd” a descrição semântica serve para ajudar na interpretação de seus valores. exemplo: “Números de telefone do Estado do RJ” Conceitos Gerais: Domínios EXEMPLOS domínio A trib u to T ip o F o rm ato N om eE stu dan te char(50 ) A (50 ) S em â n tica n om es pró prios d e pesso as. Id adeE stud ante inteiro 99 in teiros entre 14 e 6 0 represen tan do a idad e de p essoas em an os. P esoE stud ante float 99 9,99 n úm eros d ecim ais, entre 30 e 2 00, represen tan do p eso s d e pessoas, em q uiilos. T elefon e char(10 ) (9 9)9 999 -99 99 n úm eros d e telefo ne válid os no B rasil. D ep artam ento char(5) AAAAA siglas dos d ep artam ento s existentes na U E R J. descrição física descrição semântica Conceitos Gerais: Domínios O mesmo domínio pode se aplicar a vários atributos. Os atributos de uma relação podem ser vistos como diferentes interpretações para o mesmo domínio. Números Locais de Telefones ESTUDANTE Nome Matrícula Telefone Casa Endereço Telefone Residencial de um Estudante Telefone Escritório Idade CR Telefone Comercial de um Estudante Conceitos Gerais: Esquema de uma Relação R(A1, A2, ..., An) usado para descrever uma relação através da especificação de seus atributos e domínios. formado pelo nome da relação e uma lista de atributos A1, A2, ..., An, onde Aj é o nome do papel desempenhado pelo domínio Dj no esquema da relação R. também chamado de intenção da relação R. Conceitos Gerais: Esquema de uma Relação Definição 4: O esquema de uma relação R, denotado por R (A1:D1, A2:D2, ..., Am:Dm) , é formado pelo nome da relação e pela lista de seus atributos e respectivos domínios. EXEMPLO: ALUNO (Nome: NomePessoas, Idade: IdadePessoas, Sexo: SexoPessoas, Matrícula: CódigosMatrícula) intenção da relação R ALUNO Nome extensão ou instância da relação R esquema da relação ALUNO Sexo Matrícula Nelson Idade 21 M 010110 Davi 22 M 010100 ... ... ... ... Antonio 19 M 111111 Conceitos Gerais: Intenção x Extensão Para uma mesma intenção pode existir mais de uma extensão. ALUNO Nome Idade Sexo alunos de Computação Matrícula alunos de Telemática Nelson 21 M 010110 Pedro 22 M 9213025 Davi 22 M 010100 Luana 20 F 9421059 ... ... ... ... Antonio 19 M 111111 ... ... ... ... Henrique 19 M 9511032 Revisitando o Conceito de Relação Definição 5: Uma relação ou instância de relação r do esquema R (A1:D1 , A2:D2 , ...., An:Dn), também denotada por r(R), é um conjunto de m-tuplas r = {t1, t2, ..., tm}, onde cada tupla t = < v1, v2, ..., vn> é uma lista ordenada de n valores, em que cada valor vi, 1<= i <= n, ou é nulo ou pertence ao domínio Di = dom(Ai). dom(A1) ... dom(An) A1 ... An esquema R t1 v11 v12 ... ... ... ... ... v1n ... tm vm1 vm2 ... vmn relação r(R) Revisitando o Conceito de Relação Definição 6: Uma relação ou instância de relação do esquema R (A1:D1 , A2:D2 , ...., An:Dn), r(R), é um subconjunto do Produto Cartesiano dos domínios que definem R, isto é: (dom(A1) x dom(A2) x ... x dom(An)) r(R) • O Produto cartesiano especifica todas as possíveis combinações de valores dos domínios subjacentes, isto é: |dom(A1)| * |dom(A2)| * ... * |dom(An)| • Dessas possíveis combinações, a instância r(R) de uma relação, num dado instante, reflete apenas as tuplas que representam um estado particular do mundo real. Banco de Dados Relacional • o universo de um banco de dados relacional é um conjunto finito, não vazio, de relações. • o esquema de um banco de dados relacional é o conjunto dos esquemas das relações que o formam, isto é: R1 R2 .... Rm (A11, A12, ........., A1n) (A21, A22, ........., A2n) (Am1, Am2, ......., Amn) • uma instância de um banco de dados relacional é o conjunto das instâncias de suas relações. • o mesmo esquema pode se aplicar a diferentes instâncias de um banco de dados. Características das Relações ... Não existe ordem entre as tuplas de uma relação. ALUNO ALUNO Nome Sexo Matrícula Nelson 21 M 010110 Davi 22 M 010100 ... ... ... ... Antonio 19 M 111111 Nome Idade Idade Sexo Matrícula 111111 Antonio 19 M Davi 22 M 010100 Nelson 21 M 010110 ... ... ... ... Do ponto de vista conceitual, não há diferença entre essas duas relações. Características das Relações Desde que seja mantida a correspondência entre atributos e valores, não existe ordem entre os atributos de uma relação. ALUNO Nome Sexo Matrícula Antonio Idade 19 M 111111 ... ... ... ... Do ponto de vista conceitual, não há diferença entre essas duas relações. ALUNO Matrícula Nome 111111 ... Sexo Idade Antonio M 19 ... ... ... Características das Relações Todos os atributos de uma relação devem ser atômicos, isto é, indivisíveis em termos de valores e componentes. ALUNO Nome Telefone Cláudia 245.9261 ... Antonio Relação Inválida! Sexo F DataDeNascimento Dia Mês Ano 10 03 1974 ... ... ... ... ... 246.6666 325.9887 987.9231 M 25 08 1977 atributo multivalorado atributo composto Características das Relações ... O esquema de uma relação pode ser interpretado como uma declaração ou um tipo de assertiva. Cada tupla da relação pode ser interpretada como um fato ou uma instância particular dessa assertiva. ALUNO Nome Sexo Matrícula Antonio 19 M 111111 ... ... ... ... FATO: Idade ASSERTIVA: O esquema da relação ALUNO afirma que, em geral, aluno possui Nome, Idade, Sexo e Matrícula. Existe um ALUNO de Nome “Antonio”, com “19” anos de Idade, do Sexo “M”, cuja Matrícula é “111111”. Características das Relações Numa relação, todos os atributos devem ter nomes distintos. Conceitualmente, não existe nada que impeça dois atributos de terem o mesmo nome. A restrição é apenas de ordem prática, para facilitar a consulta ao banco de dados. Mesmo que pudessem ter nomes iguais poderiam assumir valores em domínios diferentes. Nenhuma relação possui atributos em duplicata. Essa restrição decorre não apenas do fato de uma relação ser um conjunto, no sentido matemático do termo, como também do fato de suas tuplas representarem uma assertiva sobre o mundo real. Não faz sentido representar o mesmo valor duas vezes no mesmo fato. Ex: Existe um ALUNO de Nome “Antonio”, com “19” anos de Idade, do Sexo “M”, cujo nome é “Antonio”. Revendo o conceito de Esquema Relacional Um esquema Relacional de um Banco de Dados é formado por um conjunto de esquemas das relações S = {R1,R2,…, Rm} e um conjunto de restrições de integridade IC Uma Instância de um esquema relacional de um Banco de Dados (BD) é um conjunto de instâncias de relações pertencentes a um esquema Relacional (S) BD = {r1, r2, … rm}, tal que ri é instância de Ri, e tal que as ri’s satisfazem IC. Restrições de Integridade Restrições de Domínio - especificadas através do tipo de dados de cada atributo do esquema de uma relação. Restrições de Chave e de Integridade de Entidadeespecificadas através da definição de uma chave de acesso em cada relação. Restrições de Integridade Referencial - especificadas através de regras de relacionamento entre os esquemas das relações que compõem o esquema do banco de dados.- Restrições Semânticas - especificadas através de regras sobre os esquema do banco de dados. Restrições de Domínio Especifica que o valor de cada atributo A deve ser um elemento atômico do domínio de A. Em geral, é especificado através de tipos primitivos de dados, tais como integer, float, char, date, time, money, etc. Também podem ser descritos através da definição de subconjuntos de tipos primitivos ou de listas enumeradas. Restrições de Chave: O Conceito de Chave O valor de um atributo-chave pode ser utilizado para identificar uma tupla específica numa relação. Uma chave é uma propriedade do esquema de uma relação, isto é, uma propriedade que deve ser respeitada por todas as instâncias da relação. Atributos cujos valores podem ser duplicados, não devem ser definidos como chaves de uma relação (Nome, por exemplo). Em geral, uma relação pode ter mais de uma chave. Nesse caso, cada chave da relação é chamada de CHAVE CANDIDATA. A chave candidata escolhida para identificar as tuplas de uma relação é chamada de CHAVE PRIMÁRIA. Em geral, entre todas as chaves candidatas, escolhe-se para chave primária aquela com o menor número de atributos O conceito de SuperChave Mais formalmente... Seja sk um subconjunto de atributos de r ∀ t1, t2 ∈ r / t1[sk] ≠ t2 [sk] ⇒ sk é superchave Uma chave é uma superchave minimal Exemplo: • Não se pode retirar atributos • estudante (dre, nome, nascimento, sexo, pontos) • O atributo dre é chave pq é superchave e é mínimo • Qq conj de atributos que envolva o dre é superchave, mas não é chave Integridade de Entidade Integridade de Entidade: estabelece que nenhum dos atributos pertencentes a chave-primária de uma relação pode ter valor nulo. Isso é para garantir a identidade individual das tuplas de uma relação, uma vez que a chave-primária é utilizada para identificar cada uma de suas tuplas. Restrições de Integridade Integridade Referencial: estabelece que qualquer tupla pertencente a uma relação R1 que referencie uma outra relação R2, tem de necessariamente referenciar uma tupla existente em R2. chave-estrangeira EXEMPLO: PROFESSOR Nome Matrícula Sexo 24671 M DESC ... ... ... Arnaldo Rocha ... Depto chave-primária DEPARTAMENTO Sigla Nome Unidade DESC Departamento de Engenharia de Sistemas e Computação ... ... FEN ... Conceitos Gerais: Chave-Estrangeira Definição 8: Seja FK um conjunto de atributos de um esquema de relação R1 . Diz-se que FK é uma chave-estrangeira de R1 se FK satisfizer as seguintes condições: 1. Os atributos pertencentes a FK assumirem valores dos mesmos domínios correspondentes aos atributos PK da chave-primária de um outro esquema de relação R2 ; e 2. O valor de FK , em qualquer tupla de R1, for nulo ou igual ao valor de PK , em alguma tupla de R2. • Utilizadas para manter a consistência entre as tuplas de duas relações distintas e relacionadas entre si. • Decorrem tipicamente dos relacionamentos entre entidades definidos no modelo conceitual do banco de dados. Chave-Estrangeira: Exemplo EMPREGADO Nome SNome Matrícula DataNasc Endereço Sexo Salário SuperMat Depto DEPARTAMENTO DeptoNome DeptoSigla MatrículaGerente PROJETO DEPTO_LOCAL Depto PNome PCódigo PLocalização Depto Localização TRABALHA_EM MatrículaEmp PCódigo Horas DEPENDENTE MatrículaEmp DependenteNome Sexo DataNasc Parentesco Chave-Estrangeira: Observações o valor de uma chave-estrangeira deve necessariamente aparecer como valor da chaveprimária a que ela se refere. o conjunto de restrições referenciais de um banco de dados pode ser representado através de um diagrama referencial. SuperMat Depto MatrículaEmp DEPARTAMENTO EMPREGADO DEPENDENTE MatrículaGerente Depto MatrículaEmp PROJETO PCódigo DEPTO_LOCAL TRABALHA_EM Depto Restrições Semânticas Especificadas através de regras sobre o esquema do banco de dados. EXEMPLOS z z o salário de um empregado tem de ser menor ou igual ao salário de seu supervisor. o número de horas semanais que um empregado pode trabalhar em projetos tem de ser menor ou igual a 56. Chave estrangeira: Notação resumida Exemplos: Departamento(deptonome, deptosigla, matriculagerente) Matriculagerente referencia empregado Trabalha_em(matriculaemp, pcodigo, horas) matriculaemp referencia empregado pcodigo referencia projeto