Introdução a Banco de Dados

1,389
-1

Published on

Slides sobre banco de dados modelo relacional, introduzindo o assunto para novas turmas...

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,389
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Introdução a Banco de Dados

  1. 1. Introdução a Bancode dadosProf. Daniel BrandãoEscola SENAI Vilhena/RO
  2. 2. 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)
  3. 3. 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
  4. 4. 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)
  5. 5. Exemplo: Tupla20/02/198501427Maria03/07/197602467Vânia12/11/198001035RenataDataNascMatrículaNomeTupla 1Atributo: NomeValor: Renata
  6. 6. Exemplo: Tupla20/02/198501427Maria03/07/197602467Vânia12/11/198001035RenataDataNascCPFNomeTuplas
  7. 7. Dicionário de Dados!Dentro do contexto de SGBD, um dicionário de dados é umgrupo de tabelas, habilitadas apenas para leitura ou consulta, ouseja, é uma base de dados.
  8. 8. Dicionário de Dados! Exemplos:• Definição precisa sobre elementos de dados.• Perfis de usuários, papéis e privilégios• Descrição de objetos• Restrições de integridade• Pequeno trecho de programa de computador, armazenado emum SGBD, que pode ser chamado freqüentemente por umprograma principal.• Índices
  9. 9. 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
  10. 10. Exemplo Relação20/02/1985São Diego 310/3401427Maria03/07/1976Capote Valente, 3502467VâniaRua das Flores, 210Endereço12/11/198001035RenataDataNascCPFNomeAlunoCabeçalho
  11. 11. Exemplo Relação20/02/1985São Diego 310/3401427Maria03/07/1976Capote Valente, 3502467VâniaRua das Flores, 210Endereço12/11/198001035RenataDataNascCPFNomeAlunoCorpo
  12. 12. Revisando...
  13. 13. Conceitos Gerais: Relação20/02/1985São Diego310/34Maria03/07/1976CapoteValente, 35VâniaRua dasFlores, 210Endereço12/11/1980RenataDataNascNomeS1 S2 S3TUPLAS
  14. 14. Conceitos Gerais: AtributosDefinição: dada uma relaçãoR, define-se como seusatributos os nomes dasfunções que mapeiam osvalores de cada um doselementos de cada tupla nosrespectivos conjuntosS1, S2 , ...., S3 ..20/02/1985São Diego310/34Maria03/07/1976CapoteValente, 35VâniaRua dasFlores, 21012/11/1980RenataS1 S2 S3DataNascEndereçoNome DataNascEndereçoNomeRelaçãoATRIBUTOS
  15. 15. Conceitos Gerais: DomíniosDefinição: Dada uma relaçãoR, o domínio do atributo Aj, éo conjunto Sj no qual oatributo assume valores20/02/1985São Diego310/34Maria03/07/1976CapoteValente, 35VâniaRua dasFlores, 21012/11/1980RenataS1 S2 S3DataNascEndereçoNome DataNascEndereçoNomeRelação RATRIBUTOSDomínio
  16. 16. Relembrando...• Relação é uma Tabela• Atributo é um Campo (coluna da tabela)• Tupla é uma linha da tabela• Domínio: tipo de dado, formato de um atributo
  17. 17. Esquema e Instância• Esquema• Aluno (nome,matrícula, endereço, DataNasc, Curso)• Curso (codigo, descrição)• Instância• (Daniela, 12345, São Diego, 310, 28/06, 1)
  18. 18. Chave• Conjunto de um os mais atributos de uma relação• Chave Primária (primary key) – PK• Chave Estrangeira (foreign key) - FK
  19. 19. Chave Primária• Primary key (PK)• atributo(s) cujo (conjunto de) valor(es) identifica(m) unicamente umatupla em uma relação• Unicidade de valores na coluna que compõe a chave
  20. 20. Chave Primária (PK)20/02/1985São Diego 310/3401427Maria03/07/1976Capote Valente, 3502467VâniaRua das Flores, 210Endereço12/11/198001035RenataDataNascCPFNomeAlunoQual(is) atributo(s) representam unicamente uma tupla?
  21. 21. Chave Primária (PK)20/02/1985São Diego 310/3401427Maria03/07/1976Capote Valente, 3502467VâniaRua das Flores, 210Endereço12/11/198001035RenataDataNascCPFNomeAlunoQual(is) atributo(s) representam unicamente uma tupla?CPF
  22. 22. Chave Primária (PK)20/02/1985São Diego 310/34347685784432Maria03/07/1976Capote Valente, 35693529876987VâniaRua das Flores,210Endereço12/11/1980701034263890RenataDataNascCPFNomeAlunoAluno(CPF, Nome, Endereço, DataNasc)
  23. 23. Chave Primária (PK) –CompostaAlocação (Cod_Projeto, Cod_Func, DataIni, Tempo)Um funcionário pode estar em mais de um projeto
  24. 24. Chave Primária (PK)Alocação (Cod_Projeto, Cod_Func, DataIni, Tempo)Chave primária composta
  25. 25. Chave Candidata• Possui as mesmas propriedades que a chave primária347685784432693529876987701034263890CPF20/02/198501427Maria03/07/197602467Vânia12/11/198001035RenataDataNascMatrículaNomeAluno
  26. 26. Chave Candidata• Possui as mesmas propriedades que a chave primária347685784432693529876987701034263890CPF20/02/198501427Maria03/07/197602467Vânia12/11/198001035RenataDataNascMatrículaNomeAlunoChaves candidatas
  27. 27. Chave Candidata• Qual escolher para Chave Primária?• Escolhe-se para chave primária aquela com o atributo único oumenor número de caracteres347685784432693529876987701034263890CPF20/02/198501427Maria03/07/197602467Vânia12/11/198001035RenataDataNascMatrículaNome
  28. 28. Chave Candidata347685784432693529876987701034263890CPF20/02/198501427Maria03/07/197602467Vânia12/11/198001035RenataDataNascMatrículaNomeChave Primária
  29. 29. Chave Alternativa347685784432693529876987701034263890CPF20/02/198501427Maria03/07/197602467Vânia12/11/198001035RenataDataNascMatrículaNomeChave PrimáriaChave alternativaChave alternativa: chave candidata que não é primária
  30. 30. Chave Estrangeira• Foreign Key (FK)• Atributo(s) de uma relação, cujos valores devemobrigatoriamente aparecer na chave primária de uma relação (damesma ou de outra)• Implementa o relacionamento em um BD relacional
  31. 31. Chave Estrangeira (FK)121Curso347685784432693529876987701034263890CPF01427Maria02467Vânia01035RenataMatrículaNome
  32. 32. Chave Estrangeira (FK)121Curso347685784432693529876987701034263890CPF01427Maria02467Vânia01035RenataMatrículaNomeCiências Jurídicas e SociaisAdministração de EmpresasCiência da ComputaçãoDescrição321Codigo
  33. 33. Chave Estrangeira (FK)Aluno(CPF, Nome, Endereço, DataNasc, #Curso)Curso (Codigo, Descrição)
  34. 34. Chave Estrangeira (FK)Funcionário (CodFunc, Nome, Endereço, #Cod_Chefe)2Carlos Gomes, 50Carla4134Cod_ChefeAnita Garibaldi,12Oscar Freire, 10Av. Joaquim 2EndereçoPedro3João2Maria1NomeCodFun
  35. 35. Revisando...• Chave Primária (PK)• Chave candidata• Chave alternativa• Chave Estrangeira (FK)
  36. 36. Restrições de Integridade• É uma regra que deve ser obedecida em todos osestados válidos da base de dados.• Garantem que os dados refletem corretamente arealidade modelada.• Domínio, Chave Primária, Valores Vazios• Integridade de Entidade• Integridade Referencial• Semântica
  37. 37. Restrições de Integridade• Domínio: conjunto de valores que um atributo podeassumirExemplo: Nome: varchar (20)- Alessandra VogelOliveiraviola a regraVazio: define se os atributos podem ou não ser vazios
  38. 38. Integridade de Entidade• Garantia de acesso a todos os dadossem ambigüidade• Atributos pertencentes a chave-primária de uma relação não podemter valor nulo• A chave primária representa umaentidade na base de dadosCarla4Pedro3João2Maria1NomeCodFun
  39. 39. Integridade Referencial• Chave estrangeira (FK)• Garantia derelacionamentos válidos• Os valores que aparecem naFK devem aparecer na PKda relação referenciada121Curso347685784432693529876987701034263890CPF01427Maria02467Vânia01035RenataMatrículaNome121Curso347685784432693529876987701034263890CPF01427Maria02467Vânia01035RenataMatrículaNomeCiências Jurídicas e SociaisAdministração de EmpresasCiência da ComputaçãoDescrição321CursoCiências Jurídicas e SociaisAdministração de EmpresasCiência da ComputaçãoDescrição321Curso
  40. 40. Integridade Semântica• Especificada através de regras sobre o esquema dobanco de dados• Exemplos:• O salário de um empregado deve ser menor ou igual ao doseu supervisor• O número de horas semanais de um empregado em umprojeto não pode ser maior do que 50
  41. 41. Restrições de Atualização• Inserção: insere tuplas em uma relação• Pode violar 4 restrições de integridade:
  42. 42. Restrições de Atualização• Inserção: insere tuplas em uma relação• Pode violar 4 restrições de integridade:• Integridade de Domínio: valor não é do domínio
  43. 43. Restrições de Atualização• Inserção: insere tuplas em uma relação• Pode violar 4 restrições de integridade:• Integridade de Domínio• Integridade de Chave: valor já existe
  44. 44. Restrições de Atualização• Inserção: insere tuplas em uma relação• Pode violar 4 restrições de integridade:• Integridade de Domínio• Integridade de Chave• Integridade de Entidade: chave primária é nula
  45. 45. Restrições de Atualização• Inserção: insere tuplas em uma relação• Pode violar 4 restrições de integridade:• Integridade de Domínio• Integridade de Chave (ex.: chave duplicada)• Integridade de Entidade• Integridade Referencial: valor da FK refere-se a uma tupla que nãoexiste na relação referenciada
  46. 46. Restrições de Atualização• Exclusão: exclui tuplas de uma relação• Pode violar :
  47. 47. Restrições de Atualização• Exclusão: exclui tuplas de uma relação• Pode violar :Integridade referencial: se a tupla que está sendo excluída estáreferenciada por uma FK de outra tupla
  48. 48. Restrições de Atualização• Exclusão:Ciências Jurídicas e SociaisAdministração de EmpresasCiência da ComputaçãoDescrição321Curso121Curso347685784432693529876987701034263890CPF01427Maria02467Vânia01035RenataMatrículaNome
  49. 49. Restrições de Atualização• Procedimento a ser adotado:• Rejeitar a operação• Excluir em cascata• Mudar os valores dos atributos referenciados
  50. 50. Restrições de Atualização• Atualização : altera os valores de atributos nas tuplas existentes• Pode violar:
  51. 51. Restrições de Atualização• Atualização : altera os valores de atributos nas tuplas existentes• Pode violar:• Restrição de Domínio para atributos que não são chave
  52. 52. Restrições de Atualização• Atualização : altera os valores de atributos nas tuplas existentes• Pode violar:• Restrição de Domínio para atributos que não são chave• Chave primária e entidade
  53. 53. Restrições de Atualização• Atualização : altera os valores de atributos nas tuplas existentes• Pode violar:• Restrição de Domínio para atributos que não são chave• Chave primária e entidade• Referencial
  54. 54. Exercício:Considere o seguinte esquema relacional:Categoria(CodCategoria, Descrição)Cliente (CodCli, Nome, Endereco, CPF, CodCategoria)Funcionário (CodFunc, Nome, CT, CPF, End, Fone)Fornecedor (CodFornec, Nome, Cidade)Produto (CodProd, CodFornec, Nome, Peso, Valor)
  55. 55. Exercício:1) Identificar as chaves primárias e chaves estrangeiras2) Explique o que deve ser feito pelo SGBD para garantir aintegridade referencial nas seguintes situações:a) Uma tupla é excluída na tabela Categoriab) Uma tupla é alterada na tabela Fornecedor
  56. 56. • Sistemas de Banco de Dados, Elmasri-Navathe- 4a. Edição: Capítulo 5• Projeto de Banco de Dados , Carlos Alberto Heuser– 5ª edição: Capítulo 4Leitura Complementar

×