O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Modelo Relacional - Bases de Dados

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Trigonometria
Trigonometria
Carregando em…3
×

Confira estes a seguir

1 de 53 Anúncio

Mais Conteúdo rRelacionado

Mais de Mariana Hiyori (20)

Anúncio

Mais recentes (20)

Modelo Relacional - Bases de Dados

  1. 1. Modelo relacional Fernando Lobo Base de Dados, aula 6 1 / 18
  2. 2. Modelo relacional I Modelo simples e intuitivo baseado no conceito matemático de relação. I Inventado em 1970 por Edgar Codd. I Utilizado pela maioria dos SGBDs. I SQL é baseado no modelo relacional. 2 / 18
  3. 3. Modelo relacional I Modelo simples e intuitivo baseado no conceito matemático de relação. I Inventado em 1970 por Edgar Codd. I Utilizado pela maioria dos SGBDs. I SQL é baseado no modelo relacional. 2 / 18
  4. 4. Modelo relacional I Modelo simples e intuitivo baseado no conceito matemático de relação. I Inventado em 1970 por Edgar Codd. I Utilizado pela maioria dos SGBDs. I SQL é baseado no modelo relacional. 2 / 18
  5. 5. Modelo relacional I Modelo simples e intuitivo baseado no conceito matemático de relação. I Inventado em 1970 por Edgar Codd. I Utilizado pela maioria dos SGBDs. I SQL é baseado no modelo relacional. 2 / 18
  6. 6. Modelo relacional I Modelo simples e intuitivo baseado no conceito matemático de relação. I Inventado em 1970 por Edgar Codd. I Utilizado pela maioria dos SGBDs. I SQL é baseado no modelo relacional. 2 / 18
  7. 7. Modelo relacional I Uma relação é como se fosse uma tabela com linhas e colunas. I A diferença é que: I uma relação não pode ter linhas repetidas. I Muitas vezes irei usar o termo tabela para me referir a uma relação (mas devem estar conscientes de que tabela e relação são coisas distintas). I BD = conjunto de relações/tabelas. 3 / 18
  8. 8. Modelo relacional I Uma relação é como se fosse uma tabela com linhas e colunas. I A diferença é que: I uma relação não pode ter linhas repetidas. I Muitas vezes irei usar o termo tabela para me referir a uma relação (mas devem estar conscientes de que tabela e relação são coisas distintas). I BD = conjunto de relações/tabelas. 3 / 18
  9. 9. Modelo relacional I Uma relação é como se fosse uma tabela com linhas e colunas. I A diferença é que: I uma relação não pode ter linhas repetidas. I Muitas vezes irei usar o termo tabela para me referir a uma relação (mas devem estar conscientes de que tabela e relação são coisas distintas). I BD = conjunto de relações/tabelas. 3 / 18
  10. 10. Modelo relacional I Uma relação é como se fosse uma tabela com linhas e colunas. I A diferença é que: I uma relação não pode ter linhas repetidas. I Muitas vezes irei usar o termo tabela para me referir a uma relação (mas devem estar conscientes de que tabela e relação são coisas distintas). I BD = conjunto de relações/tabelas. 3 / 18
  11. 11. Modelo relacional I Uma relação é como se fosse uma tabela com linhas e colunas. I A diferença é que: I uma relação não pode ter linhas repetidas. I Muitas vezes irei usar o termo tabela para me referir a uma relação (mas devem estar conscientes de que tabela e relação são coisas distintas). I BD = conjunto de relações/tabelas. 3 / 18
  12. 12. Modelo relacional I Uma relação é como se fosse uma tabela com linhas e colunas. I A diferença é que: I uma relação não pode ter linhas repetidas. I Muitas vezes irei usar o termo tabela para me referir a uma relação (mas devem estar conscientes de que tabela e relação são coisas distintas). I BD = conjunto de relações/tabelas. 3 / 18
  13. 13. Definição formal de relação I Dados n conjuntos C1, C2, . . . , Cn (não necessariamente distintos), R é uma relação sobre estes n conjuntos, se for um conjunto de tuplos da forma (v1, v2, . . . , vn) em que: I v1 ∈ C1 I v2 ∈ C2 I . . . I vn ∈ Cn I Por outras palavras, R é subconjunto do Produto Cartesiano C1 x C2 x . . . x Cn. 4 / 18
  14. 14. Definição formal de relação I Dados n conjuntos C1, C2, . . . , Cn (não necessariamente distintos), R é uma relação sobre estes n conjuntos, se for um conjunto de tuplos da forma (v1, v2, . . . , vn) em que: I v1 ∈ C1 I v2 ∈ C2 I . . . I vn ∈ Cn I Por outras palavras, R é subconjunto do Produto Cartesiano C1 x C2 x . . . x Cn. 4 / 18
  15. 15. Definição formal de relação I Dados n conjuntos C1, C2, . . . , Cn (não necessariamente distintos), R é uma relação sobre estes n conjuntos, se for um conjunto de tuplos da forma (v1, v2, . . . , vn) em que: I v1 ∈ C1 I v2 ∈ C2 I . . . I vn ∈ Cn I Por outras palavras, R é subconjunto do Produto Cartesiano C1 x C2 x . . . x Cn. 4 / 18
  16. 16. Definição formal de relação I Dados n conjuntos C1, C2, . . . , Cn (não necessariamente distintos), R é uma relação sobre estes n conjuntos, se for um conjunto de tuplos da forma (v1, v2, . . . , vn) em que: I v1 ∈ C1 I v2 ∈ C2 I . . . I vn ∈ Cn I Por outras palavras, R é subconjunto do Produto Cartesiano C1 x C2 x . . . x Cn. 4 / 18
  17. 17. Estão perdidos? I Produto cartesiano? I relação = tabela? 5 / 18
  18. 18. Estão perdidos? I Produto cartesiano? I relação = tabela? 5 / 18
  19. 19. Estão perdidos? I Produto cartesiano? I relação = tabela? 5 / 18
  20. 20. Produto Cartesiano. Exemplo: 6 / 18
  21. 21. Produto Cartesiano. Exemplo: 00 00 11 11 0 1 0 1 0 1 0 1 00 00 11 11 00 11 0 1 00 00 11 11 0 1 00 11 00 11 00 11 0 1 00 00 11 11 Porto Benfica Sporting Milan Barcelona Chelsea (Porto, Barcelona) (Porto, Chelsea) (Benfica, Milan) (Benfica, Barcelona) (Benfica, Chelsea) (Sporting, Chelsea) (Sporting, Barcelona) (Sporting, Milan) (Porto, Milan) A x B A B 6 / 18
  22. 22. Outro exemplo 00 00 11 11 00 11 0 1 0 0 1 1 0 1 00 11 00 11 0 1 00 00 11 11 0 0 1 1 0 1 0 1 0 0 1 1 00 11 Cnomes Canos CaCores Cduracao 1901 1900 1902 1903 2 5 3 4 1 6 sim nao Star Wars King Kong A Maria da UAlg ... ... ... I NOTA: Conjuntos podem ser infinitos. 7 / 18
  23. 23. Outro exemplo 00 00 11 11 00 11 0 1 0 0 1 1 0 1 00 11 00 11 0 1 00 00 11 11 0 0 1 1 0 1 0 1 0 0 1 1 00 11 Cnomes Canos CaCores Cduracao 1901 1900 1902 1903 2 5 3 4 1 6 sim nao Star Wars King Kong A Maria da UAlg ... ... ... I NOTA: Conjuntos podem ser infinitos. 7 / 18
  24. 24. Outro exemplo (cont.) 0 1 0 0 1 1 0 1 0 0 1 1 0 1 (Star Wars, 1900, 1, sim) (Star Wars, 1900, 2, nao) (Star Wars, 1900, 3, sim) (Star Wars, 1900, 1, nao) (Star Wars, 1900, 2, sim) ... Cnomes Canos Cduracao CaCores x x x I Produto cartesiano dá o conjunto de todos os possı́veis tuplos (v1, v2, v3, v4), em que v1 ∈ Cnomes, v2 ∈ Canos, v3 ∈ Cduracao, v4 ∈ CaCores. 8 / 18
  25. 25. Outro exemplo (cont.) 0 1 0 0 1 1 0 1 0 0 1 1 0 1 (Star Wars, 1900, 1, sim) (Star Wars, 1900, 2, nao) (Star Wars, 1900, 3, sim) (Star Wars, 1900, 1, nao) (Star Wars, 1900, 2, sim) ... Cnomes Canos Cduracao CaCores x x x I Produto cartesiano dá o conjunto de todos os possı́veis tuplos (v1, v2, v3, v4), em que v1 ∈ Cnomes, v2 ∈ Canos, v3 ∈ Cduracao, v4 ∈ CaCores. 8 / 18
  26. 26. Uma possı́vel relação sobre Cnomes, Canos, Cduracao, CaCores 0 1 0 1 00 11(Moulin Rouge, 2001, 124, sim) (Star Wars, 1977, 124, sim) (King Kong, 1930, 120, nao) 9 / 18
  27. 27. Dá jeito visualizar a relação como uma tabela nome ano duração aCores Star Wars 1977 124 sim King Kong 1930 120 não Moulin Rouge 2001 124 sim I Nome das colunas são atributos. I tuplo = linha. 10 / 18
  28. 28. Dá jeito visualizar a relação como uma tabela nome ano duração aCores Star Wars 1977 124 sim King Kong 1930 120 não Moulin Rouge 2001 124 sim I Nome das colunas são atributos. I tuplo = linha. 10 / 18
  29. 29. Dá jeito visualizar a relação como uma tabela nome ano duração aCores Star Wars 1977 124 sim King Kong 1930 120 não Moulin Rouge 2001 124 sim I Nome das colunas são atributos. I tuplo = linha. 10 / 18
  30. 30. Estas 2 tabelas representam a mesma relação. Porquê? nome ano duração aCores Lion King 1997 108 sim Star Wars 1977 124 sim King Kong 1930 120 não Lion King 1997 108 sim Lion King 1997 108 sim ano nome aCores duração 1930 King Kong não 120 1977 Star Wars sim 124 1997 Lion King sim 108 11 / 18
  31. 31. Esquema da BD = descrição completa da estrutura da BD I Nome das relações/tabelas I Nome dos atributos I Domı́nio dos atributos (integer, string, . . .) I Chaves I . . . 12 / 18
  32. 32. Esquema da BD = descrição completa da estrutura da BD I Nome das relações/tabelas I Nome dos atributos I Domı́nio dos atributos (integer, string, . . .) I Chaves I . . . 12 / 18
  33. 33. Esquema da BD = descrição completa da estrutura da BD I Nome das relações/tabelas I Nome dos atributos I Domı́nio dos atributos (integer, string, . . .) I Chaves I . . . 12 / 18
  34. 34. Esquema da BD = descrição completa da estrutura da BD I Nome das relações/tabelas I Nome dos atributos I Domı́nio dos atributos (integer, string, . . .) I Chaves I . . . 12 / 18
  35. 35. Esquema da BD = descrição completa da estrutura da BD I Nome das relações/tabelas I Nome dos atributos I Domı́nio dos atributos (integer, string, . . .) I Chaves I . . . 12 / 18
  36. 36. Esquema da BD = descrição completa da estrutura da BD I Nome das relações/tabelas I Nome dos atributos I Domı́nio dos atributos (integer, string, . . .) I Chaves I . . . 12 / 18
  37. 37. Instância da BD I O conteúdo (os tuplos) de todas as relações de uma BD constitui uma instância da BD. I A instância da BD muda com frequência. I O esquema da BD é feito uma vez (por pessoas como vocês) e não costuma mudar. 13 / 18
  38. 38. Instância da BD I O conteúdo (os tuplos) de todas as relações de uma BD constitui uma instância da BD. I A instância da BD muda com frequência. I O esquema da BD é feito uma vez (por pessoas como vocês) e não costuma mudar. 13 / 18
  39. 39. Instância da BD I O conteúdo (os tuplos) de todas as relações de uma BD constitui uma instância da BD. I A instância da BD muda com frequência. I O esquema da BD é feito uma vez (por pessoas como vocês) e não costuma mudar. 13 / 18
  40. 40. Instância da BD I O conteúdo (os tuplos) de todas as relações de uma BD constitui uma instância da BD. I A instância da BD muda com frequência. I O esquema da BD é feito uma vez (por pessoas como vocês) e não costuma mudar. 13 / 18
  41. 41. Definição de tabelas em SQL CREATE TABLE <nome> ( <lista de elementos> ); I cada elemento consiste num atributo e no respectivo tipo de dados. I os tipos mais comuns são: I INT ou INTEGER I REAL ou FLOAT I CHAR(n), VARCHAR(n) I BOOLEAN I DATE I TIME 14 / 18
  42. 42. Exemplo: Tabela de actores CREATE TABLE Actores( nome VARCHAR(50), morada VARCHAR(70), sexo CHAR, dataNascimento DATE ); 15 / 18
  43. 43. DATE e TIME I o formato de DATE é ’yyyy-mm-dd’. I o formato de TIME é ’hh:mm:ss’. I poderá ter ainda fracções de segundo. I Exemplos: I DATE ’2008-01-05’ (5 de Janeiro de 2008) I TIME ’15:32:04.5’ (4 segundos e meio depois das 3:32 da tarde) 16 / 18
  44. 44. DATE e TIME I o formato de DATE é ’yyyy-mm-dd’. I o formato de TIME é ’hh:mm:ss’. I poderá ter ainda fracções de segundo. I Exemplos: I DATE ’2008-01-05’ (5 de Janeiro de 2008) I TIME ’15:32:04.5’ (4 segundos e meio depois das 3:32 da tarde) 16 / 18
  45. 45. DATE e TIME I o formato de DATE é ’yyyy-mm-dd’. I o formato de TIME é ’hh:mm:ss’. I poderá ter ainda fracções de segundo. I Exemplos: I DATE ’2008-01-05’ (5 de Janeiro de 2008) I TIME ’15:32:04.5’ (4 segundos e meio depois das 3:32 da tarde) 16 / 18
  46. 46. DATE e TIME I o formato de DATE é ’yyyy-mm-dd’. I o formato de TIME é ’hh:mm:ss’. I poderá ter ainda fracções de segundo. I Exemplos: I DATE ’2008-01-05’ (5 de Janeiro de 2008) I TIME ’15:32:04.5’ (4 segundos e meio depois das 3:32 da tarde) 16 / 18
  47. 47. DATE e TIME I o formato de DATE é ’yyyy-mm-dd’. I o formato de TIME é ’hh:mm:ss’. I poderá ter ainda fracções de segundo. I Exemplos: I DATE ’2008-01-05’ (5 de Janeiro de 2008) I TIME ’15:32:04.5’ (4 segundos e meio depois das 3:32 da tarde) 16 / 18
  48. 48. DATE e TIME I o formato de DATE é ’yyyy-mm-dd’. I o formato de TIME é ’hh:mm:ss’. I poderá ter ainda fracções de segundo. I Exemplos: I DATE ’2008-01-05’ (5 de Janeiro de 2008) I TIME ’15:32:04.5’ (4 segundos e meio depois das 3:32 da tarde) 16 / 18
  49. 49. DATE e TIME I o formato de DATE é ’yyyy-mm-dd’. I o formato de TIME é ’hh:mm:ss’. I poderá ter ainda fracções de segundo. I Exemplos: I DATE ’2008-01-05’ (5 de Janeiro de 2008) I TIME ’15:32:04.5’ (4 segundos e meio depois das 3:32 da tarde) 16 / 18
  50. 50. DATE e TIME I o formato de DATE é ’yyyy-mm-dd’. I o formato de TIME é ’hh:mm:ss’. I poderá ter ainda fracções de segundo. I Exemplos: I DATE ’2008-01-05’ (5 de Janeiro de 2008) I TIME ’15:32:04.5’ (4 segundos e meio depois das 3:32 da tarde) 16 / 18
  51. 51. DATE e TIME I o formato de DATE é ’yyyy-mm-dd’. I o formato de TIME é ’hh:mm:ss’. I poderá ter ainda fracções de segundo. I Exemplos: I DATE ’2008-01-05’ (5 de Janeiro de 2008) I TIME ’15:32:04.5’ (4 segundos e meio depois das 3:32 da tarde) 16 / 18
  52. 52. Declaração da chave I um atributo ou lista de atributos pode ser declarado como chave em SQL utilizando PRIMARY KEY. I Exemplo: CREATE TABLE Actores( nome VARCHAR(50) PRIMARY KEY, morada VARCHAR(70), sexo CHAR, dataNascimento DATE ); 17 / 18
  53. 53. Declaração da chave (cont.) I No caso da chave ser composta, temos de especificar um elemento à parte. I Exemplo: CREATE TABLE Filmes( nome VARCHAR(50), ano INTEGER, duracao INTEGER, aCores BOOLEAN, PRIMARY KEY (nome,ano) ); 18 / 18

×