Your SlideShare is downloading. ×
Modelo Relacional - Bases de Dados
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Modelo Relacional - Bases de Dados

1,250

Published on

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

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Modelo relacional Fernando Lobo Base de Dados, aula 6 1 / 18
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Est˜o perdidos? a Produto cartesiano? rela¸˜o = tabela? ca 5 / 18
  • 18. Est˜o perdidos? a Produto cartesiano? rela¸˜o = tabela? ca 5 / 18
  • 19. Est˜o perdidos? a Produto cartesiano? rela¸˜o = tabela? ca 5 / 18
  • 20. Produto Cartesiano. Exemplo: 6 / 18
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Exemplo: Tabela de actores CREATE TABLE Actores( nome VARCHAR(50), morada VARCHAR(70), sexo CHAR, dataNascimento DATE ); 15 / 18
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×