Modelo Relacional - Bases de Dados

2,713 views

Published on

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
2,713
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
40
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Modelo Relacional - Bases de Dados

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

×