Baixe o app para aproveitar ainda mais
Prévia do material em texto
IF64A-Banco de Dados 1 pbugatti@utfpr.edu.br Prof. Pedro Henrique Bugatti Modelo Relacional ! Introduzido por E.F. Codd em 1970 (IBM/Califórnia) ! ! Modelo com uma sólida base formal ! teoria dos conjuntos ! ! Conceitos Simples ! relações, atributos, tuplas e domínios ! ! Não considera aspectos físicos de armazenamento, acesso e desempenho ! ! Base para a maioria dos SGBDs que dominam o mercado Modelo Relacional - Características ! Organização dos dados ! conceitos do modelo: atributo, relação, chave, ... ! ! Integridade ! restrições básicas para dados e relacionamentos ! ! Manipulação ! linguagens formais (álgebra e cálculo relacional) ! SQL (comercial) Definição do Modelo 4 ▪Valores ▪ dados do mundo real ▪Tabelas ▪ representam coleções de objetos, entidades, relacionamentos, etc, do mundo real ▪ tabelas são uma noção intuitiva para as RELAÇÕES Valores ! ! Modelo Relacional ⇒ valores são atômicos ! ! Valor Atômico ◦ indivisível ⇒ não pode ser recuperado em partes " ex: endereço definido como um único atributo ◦ monovalorado ⇒ pode ter apenas um valor " ex: " Idade de aluno é monovalorado " Irmãos de aluno é multivalorado 5 6 ▪ Domínio - conjunto de valores atômicos permitidos para um dado ! ▪ Exemplos de domínio ▪ Nomes de Alunos ▪ Códigos de Disciplinas ▪ Idade Domínios Domínios 7 ▪ Especificação do Domínio: ▪ Nome ▪ Definição lógica ▪ Tipo de dado e formato de dado Especificação do Domínio 8 ▪ Nome e Definição lógica. Ex: ▪ Nomes de Alunos: conjunto de todos os nomes possíveis para pessoas ▪ Códigos de Disciplinas: conjunto dos códigos das disciplinas oferecidas na UTFPR ▪ Idade: conjunto de idades possíveis para alunos Auxilia na Interpretação dos valores do domínio Especificação do Domínio 9 ▪ Tipo de dado e/ou formato. Ex: ▪ Nomes de Alunos – string de 60 caracteres ▪ Códigos de Disciplinas – string com três letras seguidas de um traço e de quatro dígitos:IF2-0240 ▪ Idade – inteiro entre 15 e 100 Identifica o tipo e o formato dos valores que compõem o domínio Exemplo de Domínio NomePessoa Varchar(20) Nomes próprios de pessoas DOMÍNIO Exemplo de Domínio NomePessoa NomePessoa Varchar(20) Nomes próprios de pessoas DOMÍNIO Tipo Lógica Exemplo de Domínio Nome do Domínio Telefone Varchar(10) Telefones válidos no Brasil DOMÍNIO Tipo Lógica (99) 9999-9999 Formato Exemplo de Domínio Nome do Domínio Conceitos Gerais: Atributo ! Um item de dado do Banco de Dados (BD) ! Possui um nome e um domínio ! Exemplos ! nome: varchar(20) ! matrícula: integer ! dataNasc: date DataNascMatrículaNome Conceitos Gerais: Tupla ! Um conjunto de pares (atributo, valor) ! Valor de um atributo ! Definido no momento da criação de uma tupla deve ser: ! compatível com o domínio ou NULL ! Atômico (indivisível) Exemplo: Tupla 20/02/198501427Maria 03/07/197602467Vânia 12/11/198001035Renata DataNascMatrículaNome Tupla 1 Atributo: Nome Valor: Renata Exemplo: Tupla 20/02/198501427Maria 03/07/197602467Vânia 12/11/198001035Renata DataNascCPFNome Tuplas Conceitos Gerais: Relação ! Composto por um cabeçalho e um corpo ! Cabeçalho ! número fixo de atributos (grau da relação) ! atributos não-ambíguos ! Corpo ! número variável de tuplas (cardinalidade da relação) ! ordem não é relevante Exemplo Relação 20/02/1985São Diego 310/3401427Maria 03/07/1976Capote Valente, 3502467Vânia Rua das Flores, 210 Endereço 12/11/198001035Renata DataNascCPFNome Aluno Cabeçalho Exemplo Relação 20/02/1985São Diego 310/3401427Maria 03/07/1976Capote Valente, 3502467Vânia Rua das Flores, 210 Endereço 12/11/198001035Renata DataNascCPFNome Aluno Corpo 21 Nome RA Curso Paulo Izabella João 9999 8888 1111 Info Info Comp Rel açã o AtributoTupla Valor Modelo Intuitivo Esquema de Relação 22 Esquema Instância Nome RA Curso Paulo Izabella João 9999 8888 1111 Info Info Comp …. Modelo Intuitivo Esquema de Relações 23 ▪ Esquema de relação: descreve a relação ▪R (A1, A2, ..., An) ▪ ou R = {A1, A2, ..., An} ▪R - nome da relação ▪ (A1, A2, ..., An) - conjunto de atributos que formam a relação Esquema de Relações 24 ▪ N - grau da relação descrita por R ▪ número de atributos em R ▪ Dom(Ai) - Domínio do Atributo Ai ▪ Ex: ▪ uma relação de Alunos que tenha os atributos Nome, RG e Idade, tem o seguinte esquema: Aluno(Nome, RG, Idade) N = 3 Exemplo ! Especificação dos domínios: ▪ Nomes de Alunos: conjunto de todos os nomes possíveis para pessoas – strings de 60 caracteres ▪ RG: conjunto dos RGs válidos no Brasil – números de 9 dígitos ▪ Idade: conjunto de idades possíveis para alunos – inteiro entre 0 e 100 25 Exemplo (cont.) ! Esquema da relação Aluno: ! Aluno={Nome, RG, Idade} ! ! Domínios dos atributos de Aluno: ! Dom(Nome) = Nomes de Alunos ! Dom(RG) = RG ! Dom(Idade) = Idade 26 Relações ! Relação R – instância do Esquema de Relação R (A1, A2, ..., An) ◦ R(R) ◦ R ⊆ Dom(A1) X Dom(A2) X ... Dom(An) ◦ R é um conjunto de tuplas t " cada tupla é um conjunto de valores v R={t1, t2, ... tk} t = {v1, v2, ... vn}, vi ∈ Dom(Ai) 27 Relações 28 ▪ Exemplo: ! ▪ Esquema de Relação Aluno: ! ▪ Aluno = {Nome, RG, Idade} ! ▪ Relação válida: ! ▪ R(Aluno) = {<José, 12345, 21>, <Pedro, 54321, 18>, <Paulo, 321321, 22>} Restrições das Relações ! Restrição de domínio ! o valor de cada atributo A deve ser um valor atômico pertencente a Dom(A) ! ! Restrição de null para atributo ! determina quando o valor especial null é ou não permitido para um atributo ! ! Restrição de unicidade (CHAVE) ! deve ser possível identificar univocamente cada tupla da relação 29 Restrição de Unicidade 30 ▪ Relação é um conjunto de tuplas ▪ pela teoria de conjuntos ⇒ todas as tuplas devem ser distintas ▪ para garantir esta propriedade de maneira eficiente ▪ especifica-se uma Restrição de Unicidade chave Restrição de Unicidade 31 ▪ Superchave ▪ conjunto de atributos de uma relação R que identifique univocamente cada tupla ▪ SCHk(R) = {Aj, ..., Ai}|{Aj, ..., Ai} ⊆ R ▪ Combinação de valores não se repete ▪ Exemplo: ▪ Aluno = {RA, CPF, Nome, Endereço} ▪ SCH1(Aluno) = {CPF} ▪ SCH2(Aluno) = {RA} ▪ SCH3(Aluno) = {CPF, Nome} ▪ SCH4(Aluno) = {RA, Endereço} Restrição de Unicidade 32 ▪ Chave ▪ é uma superchave da qual não se pode retirar nenhum atributo sem perder a propriedade de identificação unívoca ⇒ superchave mínima Chave 33 ▪ Chave Candidata: ▪ pode existir mais de uma chave para uma mesma relação ▪ cada uma das chaves é chamada de Chave Candidata ▪ CH1(Aluno) = {RA} ▪ CH2(Aluno) = {CPF} Chave 34 ▪ Chave Primária - CH0 ▪ escolhida entre as chaves candidatas ▪ a chave primária é frequentemente a mais utilizada para acessos à relação ▪ Exemplo: ▪ CH0(Aluno) = {RA} Chave 35 ▪ Notação no Esquema da Relação ! ▪ CH0(Aluno) = {RA} ▪ CH1(Aluno) = {CPF} ! ! Aluno = {CPF, Nome, Curso, RA} Chave primáriaChave secundária Chave Primária (PK) - Exemplo 20/02/1985São Diego 310/3401427Maria 03/07/1976Capote Valente, 3502467Vânia Rua das Flores, 210 Endereço 12/11/198001035Renata DataNascCPFNome Aluno Qual(is) atributo(s) representam unicamente uma tupla? 20/02/1985São Diego 310/3401427Maria 03/07/1976Capote Valente, 3502467Vânia Rua das Flores, 210 Endereço12/11/198001035Renata DataNascCPFNome Aluno Qual(is) atributo(s) representam unicamente uma tupla? CPF Chave Primária (PK) - Exemplo 20/02/1985São Diego 310/34347685784432Maria 03/07/1976Capote Valente, 35693529876987Vânia Rua das Flores, 210 Endereço 12/11/1980701034263890Renata DataNascCPFNome Aluno Aluno(CPF, Nome, Endereço, DataNasc) Chave Primária (PK) - Exemplo Restrições de Integridade 39 ▪ Restrições de integridade ▪ regras a respeito dos valores que podem ser armazenados nas relações ▪ objetivo: garantir consistência ▪ quando definidas no domínio do problema, devem ser sempre satisfeitas na base de dados Restrições de Integridade 40 ▪ Principais restrições de integridade para uma BD relacional: ! ▪ Restrições de Integridade da Entidade ▪ Restrições de Integridade Referencial Restrições de Integridade 41 ! ▪ Restrição de Integridade da Entidade ▪ a chave primária nunca pode ser nula ▪ se a chave primária for composta por mais de um atributo, nenhum deles pode ser nulo ▪ Restrição de Integridade Referencial ▪ definida entre duas relações ▪ usada para manter consistência entre tuplas de duas relações ▪ ex: tuplas de Matrícula e tuplas de Aluno 42 Chave Estrangeira ▪ conceito fundamental: compatibilidade de domínio Restrições de Integridade 43 ▪ Compatibilidade de Domínio: ! ▪ dois conjuntos de atributos quaisquer C e D são compatíveis quando: ▪ o primeiro atributo de C tem o mesmo domínio do primeiro atributo de D ▪ o segundo atributo de C tem o mesmo domínio do segundo atributo de D, ▪ e assim por diante.... Restrições de Integridade Referencial 44 ▪ FK (foreign key) é uma Chave estrangeira em R1 que referencia R2 se: 1) FK é compatível em domínio com toda a chave primária PK de R2 2) o valor dos atributos FK numa tupla ti qualquer da relação R1: ! ou é igual ao valor dos atributos PK de alguma tupla tk da relação R2 ⇒ ti[FK] = tk[PK], ti ∈R1, tk∈R2 ! ou é nulo ⇒ ti[FK] = null Restrições de Integridade Referencial 45 ! ▪ As duas condições para a ocorrência da chave estrangeira determinam a Restrição de Integridade Referencial entre duas relações R1 e R2 ! R 1[FK] R 2[PK] Restrições de Integridade Referencial 46 Restrições de Integridade Referencial - FK 1 2 1 Curso 347685784432 693529876987 701034263890 CPF 01427Maria 02467Vânia 01035Renata MatrículaNome Ciências Jurídicas e Sociais Administração de Empresas Ciência da Computação Descrição 3 2 1 Codigo Funcionário (CodFunc, Nome, Endereço, Cod_Chefe) 2Carlos Gomes, 50Carla4 1 3 4 Cod_Chefe Anita Garibaldi, 12 Oscar Freire, 10 Av. Joaquim 2 Endereço Pedro3 João2 Maria1 NomeCodFun Restrições de Integridade Referencial - FK 48 ▪ Chave Estrangeira (notação): X = {A, B, C} Y = {F, G, H} Dom(F, G) = Dom(A, B) {A, B} é chave primária em X {F, G} é chave estrangeira em Y Pergunta: a chave estrangeira {F,G} pode ser nula ou ter atributo nulo? Por que? Restrições de Integridade Referencial 49 ▪ Exemplo: Departamento = {Cod, NomeD} ! ! Empregado = {NomeE, Departamento} Pergunta: a chave estrangeira {Departamento} pode ser nula? Por que? Restrições de Integridade Referencial Alunos = {Nome, RA, Idade} ! R1(Alunos) = {<Mario, 1234, 20>, <Paulo, 4321, null >, <null , 1234, 22>, <Thais, null, 24>, <Mario, 1235, 22>} ! Disciplina = {Sigla, Monitor} ! R2(Disciplina) = {<IF32G_104, 1234>, <IF45K_123, 2222>, <IF64A_149, 1234>, <IF56K_532, null >} Exemplo Quais restrições de relação e de integridade não são satisfeitas nas tuplas do exemplo? Por quê? Considere o seguinte esquema relacional: ! Categoria(CodCategoria, Descrição) Cliente (CodCli, Nome, Endereco, CPF, CodCategoria) Funcionário (CodFunc, Nome, CargaTrab, CPF, Fone) Fornecedor (CodFornec, Nome, Cidade) Produto (CodProd, CodFornec, Nome, Peso, Valor) ! a) Identificar as chaves primárias e chaves estrangeiras, bem como possíveis chaves candidatas Exercícios b) defina todos os domínios (nome, definição lógica, tipo de dado e formato) necessários para o esquema anterior. ex: Nomes de Pessoas: conjunto de todos os nomes possíveis para pessoas – string de 60 caracteres ! c) para cada esquema de relação: • defina o domínio de cada atributo ex: Dom(Nome) = Nomes de Pessoas • indique quais atributos podem e quais não podem receber valor nulo (restrições de null) ! d) crie uma instância da base de dados, e exemplifique tuplas válidas e inválidas de acordo com as restrições de integridade de uma BD relacional. Explique cada caso (qual é restrição e por que é ou não atendida em cada tupla). Referências ! ! ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. São Paulo: Pearson Addison Wesley, 2005. ! ! Sousa, E. P. M. – Notas de aula – SCC240. 53 IF64A-Banco de Dados 1 pbugatti@utfpr.edu.br Prof. Pedro Henrique Bugatti
Compartilhar