53
Modelo relacional Fernando Lobo Base de Dados, aula 6 1 / 18

Modelo Relacional - Bases de Dados

Embed Size (px)

Citation preview

Page 1: Modelo Relacional - Bases de Dados

Modelo relacional

Fernando Lobo

Base de Dados, aula 6

1 / 18

Page 2: Modelo Relacional - Bases de Dados

Modelo relacional

I Modelo simples e intuitivo baseado no conceito matematicode relacao.

I Inventado em 1970 por Edgar Codd.

I Utilizado pela maioria dos SGBDs.

I SQL e baseado no modelo relacional.

2 / 18

Page 3: Modelo Relacional - Bases de Dados

Modelo relacional

I Modelo simples e intuitivo baseado no conceito matematicode relacao.

I Inventado em 1970 por Edgar Codd.

I Utilizado pela maioria dos SGBDs.

I SQL e baseado no modelo relacional.

2 / 18

Page 4: Modelo Relacional - Bases de Dados

Modelo relacional

I Modelo simples e intuitivo baseado no conceito matematicode relacao.

I Inventado em 1970 por Edgar Codd.

I Utilizado pela maioria dos SGBDs.

I SQL e baseado no modelo relacional.

2 / 18

Page 5: Modelo Relacional - Bases de Dados

Modelo relacional

I Modelo simples e intuitivo baseado no conceito matematicode relacao.

I Inventado em 1970 por Edgar Codd.

I Utilizado pela maioria dos SGBDs.

I SQL e baseado no modelo relacional.

2 / 18

Page 6: Modelo Relacional - Bases de Dados

Modelo relacional

I Modelo simples e intuitivo baseado no conceito matematicode relacao.

I Inventado em 1970 por Edgar Codd.

I Utilizado pela maioria dos SGBDs.

I SQL e baseado no modelo relacional.

2 / 18

Page 7: Modelo Relacional - Bases de Dados

Modelo relacional

I Uma relacao e como se fosse uma tabela com linhas e colunas.I A diferenca e que:

I uma relacao nao pode ter linhas repetidas.

I Muitas vezes irei usar o termo tabela para me referir a umarelacao (mas devem estar conscientes de que tabela e relacaosao coisas distintas).

I BD = conjunto de relacoes/tabelas.

3 / 18

Page 8: Modelo Relacional - Bases de Dados

Modelo relacional

I Uma relacao e como se fosse uma tabela com linhas e colunas.I A diferenca e que:

I uma relacao nao pode ter linhas repetidas.

I Muitas vezes irei usar o termo tabela para me referir a umarelacao (mas devem estar conscientes de que tabela e relacaosao coisas distintas).

I BD = conjunto de relacoes/tabelas.

3 / 18

Page 9: Modelo Relacional - Bases de Dados

Modelo relacional

I Uma relacao e como se fosse uma tabela com linhas e colunas.I A diferenca e que:

I uma relacao nao pode ter linhas repetidas.

I Muitas vezes irei usar o termo tabela para me referir a umarelacao (mas devem estar conscientes de que tabela e relacaosao coisas distintas).

I BD = conjunto de relacoes/tabelas.

3 / 18

Page 10: Modelo Relacional - Bases de Dados

Modelo relacional

I Uma relacao e como se fosse uma tabela com linhas e colunas.I A diferenca e que:

I uma relacao nao pode ter linhas repetidas.

I Muitas vezes irei usar o termo tabela para me referir a umarelacao (mas devem estar conscientes de que tabela e relacaosao coisas distintas).

I BD = conjunto de relacoes/tabelas.

3 / 18

Page 11: Modelo Relacional - Bases de Dados

Modelo relacional

I Uma relacao e como se fosse uma tabela com linhas e colunas.I A diferenca e que:

I uma relacao nao pode ter linhas repetidas.

I Muitas vezes irei usar o termo tabela para me referir a umarelacao (mas devem estar conscientes de que tabela e relacaosao coisas distintas).

I BD = conjunto de relacoes/tabelas.

3 / 18

Page 12: Modelo Relacional - Bases de Dados

Modelo relacional

I Uma relacao e como se fosse uma tabela com linhas e colunas.I A diferenca e que:

I uma relacao nao pode ter linhas repetidas.

I Muitas vezes irei usar o termo tabela para me referir a umarelacao (mas devem estar conscientes de que tabela e relacaosao coisas distintas).

I BD = conjunto de relacoes/tabelas.

3 / 18

Page 13: Modelo Relacional - Bases de Dados

Definicao formal de relacao

I Dados n conjuntos C1, C2, . . . ,Cn (nao necessariamentedistintos), R e uma relacao sobre estes n conjuntos, se for umconjunto de tuplos da forma (v1, v2, . . . , vn) em que:

I v1 ∈ C1

I v2 ∈ C2

I . . .I vn ∈ Cn

I Por outras palavras, R e subconjunto do Produto CartesianoC1 x C2 x . . . x Cn.

4 / 18

Page 14: Modelo Relacional - Bases de Dados

Definicao formal de relacao

I Dados n conjuntos C1, C2, . . . ,Cn (nao necessariamentedistintos), R e uma relacao sobre estes n conjuntos, se for umconjunto de tuplos da forma (v1, v2, . . . , vn) em que:

I v1 ∈ C1

I v2 ∈ C2

I . . .I vn ∈ Cn

I Por outras palavras, R e subconjunto do Produto CartesianoC1 x C2 x . . . x Cn.

4 / 18

Page 15: Modelo Relacional - Bases de Dados

Definicao formal de relacao

I Dados n conjuntos C1, C2, . . . ,Cn (nao necessariamentedistintos), R e uma relacao sobre estes n conjuntos, se for umconjunto de tuplos da forma (v1, v2, . . . , vn) em que:

I v1 ∈ C1

I v2 ∈ C2

I . . .I vn ∈ Cn

I Por outras palavras, R e subconjunto do Produto CartesianoC1 x C2 x . . . x Cn.

4 / 18

Page 16: Modelo Relacional - Bases de Dados

Definicao formal de relacao

I Dados n conjuntos C1, C2, . . . ,Cn (nao necessariamentedistintos), R e uma relacao sobre estes n conjuntos, se for umconjunto de tuplos da forma (v1, v2, . . . , vn) em que:

I v1 ∈ C1

I v2 ∈ C2

I . . .I vn ∈ Cn

I Por outras palavras, R e subconjunto do Produto CartesianoC1 x C2 x . . . x Cn.

4 / 18

Page 17: Modelo Relacional - Bases de Dados

Estao perdidos?

I Produto cartesiano?

I relacao = tabela?

5 / 18

Page 18: Modelo Relacional - Bases de Dados

Estao perdidos?

I Produto cartesiano?

I relacao = tabela?

5 / 18

Page 19: Modelo Relacional - Bases de Dados

Estao perdidos?

I Produto cartesiano?

I relacao = tabela?

5 / 18

Page 20: Modelo Relacional - Bases de Dados

Produto Cartesiano. Exemplo:

��������

��

��

��

��

��������

����

��

��������

��

����

����

����

��

��������

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 BA

B

6 / 18

Page 21: Modelo Relacional - Bases de Dados

Produto Cartesiano. Exemplo:

��������

��

��

��

��

��������

����

��

��������

��

����

����

����

��

��������

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 BA

B

6 / 18

Page 22: Modelo Relacional - Bases de Dados

Outro exemplo

��������

����

��

����

��

����

����

��

��������

����

��

��

����

����

C nomesC anos C aCoresC duracao

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

Page 23: Modelo Relacional - Bases de Dados

Outro exemplo

��������

����

��

����

��

����

����

��

��������

����

��

��

����

����

C nomesC anos C aCoresC duracao

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

Page 24: Modelo Relacional - Bases de Dados

Outro exemplo (cont.)

��

����

��

����

��

(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)

...

C nomes C anos C duracao C aCoresx x x

I Produto cartesiano da o conjunto de todos os possıveis tuplos(v1, v2, v3, v4), em que v1 ∈ Cnomes , v2 ∈ Canos ,v3 ∈ Cduracao , v4 ∈ CaCores .

8 / 18

Page 25: Modelo Relacional - Bases de Dados

Outro exemplo (cont.)

��

����

��

����

��

(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)

...

C nomes C anos C duracao C aCoresx x x

I Produto cartesiano da o conjunto de todos os possıveis tuplos(v1, v2, v3, v4), em que v1 ∈ Cnomes , v2 ∈ Canos ,v3 ∈ Cduracao , v4 ∈ CaCores .

8 / 18

Page 26: Modelo Relacional - Bases de Dados

Uma possıvel relacao sobre Cnomes , Canos , Cduracao, CaCores

��

��

����(Moulin Rouge, 2001, 124, sim)

(Star Wars, 1977, 124, sim)

(King Kong, 1930, 120, nao)

9 / 18

Page 27: Modelo Relacional - Bases de Dados

Da jeito visualizar a relacao como uma tabela

nome ano duracao aCores

Star Wars 1977 124 simKing Kong 1930 120 naoMoulin Rouge 2001 124 sim

I Nome das colunas sao atributos.

I tuplo = linha.

10 / 18

Page 28: Modelo Relacional - Bases de Dados

Da jeito visualizar a relacao como uma tabela

nome ano duracao aCores

Star Wars 1977 124 simKing Kong 1930 120 naoMoulin Rouge 2001 124 sim

I Nome das colunas sao atributos.

I tuplo = linha.

10 / 18

Page 29: Modelo Relacional - Bases de Dados

Da jeito visualizar a relacao como uma tabela

nome ano duracao aCores

Star Wars 1977 124 simKing Kong 1930 120 naoMoulin Rouge 2001 124 sim

I Nome das colunas sao atributos.

I tuplo = linha.

10 / 18

Page 30: Modelo Relacional - Bases de Dados

Estas 2 tabelas representam a mesma relacao. Porque?

nome ano duracao aCores

Lion King 1997 108 simStar Wars 1977 124 simKing Kong 1930 120 naoLion King 1997 108 simLion King 1997 108 sim

ano nome aCores duracao

1930 King Kong nao 1201977 Star Wars sim 1241997 Lion King sim 108

11 / 18

Page 31: Modelo Relacional - Bases de Dados

Esquema da BD = descricao completa da estrutura da BD

I Nome das relacoes/tabelas

I Nome dos atributos

I Domınio dos atributos (integer, string, . . .)

I Chaves

I . . .

12 / 18

Page 32: Modelo Relacional - Bases de Dados

Esquema da BD = descricao completa da estrutura da BD

I Nome das relacoes/tabelas

I Nome dos atributos

I Domınio dos atributos (integer, string, . . .)

I Chaves

I . . .

12 / 18

Page 33: Modelo Relacional - Bases de Dados

Esquema da BD = descricao completa da estrutura da BD

I Nome das relacoes/tabelas

I Nome dos atributos

I Domınio dos atributos (integer, string, . . .)

I Chaves

I . . .

12 / 18

Page 34: Modelo Relacional - Bases de Dados

Esquema da BD = descricao completa da estrutura da BD

I Nome das relacoes/tabelas

I Nome dos atributos

I Domınio dos atributos (integer, string, . . .)

I Chaves

I . . .

12 / 18

Page 35: Modelo Relacional - Bases de Dados

Esquema da BD = descricao completa da estrutura da BD

I Nome das relacoes/tabelas

I Nome dos atributos

I Domınio dos atributos (integer, string, . . .)

I Chaves

I . . .

12 / 18

Page 36: Modelo Relacional - Bases de Dados

Esquema da BD = descricao completa da estrutura da BD

I Nome das relacoes/tabelas

I Nome dos atributos

I Domınio dos atributos (integer, string, . . .)

I Chaves

I . . .

12 / 18

Page 37: Modelo Relacional - Bases de Dados

Instancia da BD

I O conteudo (os tuplos) de todas as relacoes de uma BDconstitui uma instancia da BD.

I A instancia da BD muda com frequencia.

I O esquema da BD e feito uma vez (por pessoas como voces)e nao costuma mudar.

13 / 18

Page 38: Modelo Relacional - Bases de Dados

Instancia da BD

I O conteudo (os tuplos) de todas as relacoes de uma BDconstitui uma instancia da BD.

I A instancia da BD muda com frequencia.

I O esquema da BD e feito uma vez (por pessoas como voces)e nao costuma mudar.

13 / 18

Page 39: Modelo Relacional - Bases de Dados

Instancia da BD

I O conteudo (os tuplos) de todas as relacoes de uma BDconstitui uma instancia da BD.

I A instancia da BD muda com frequencia.

I O esquema da BD e feito uma vez (por pessoas como voces)e nao costuma mudar.

13 / 18

Page 40: Modelo Relacional - Bases de Dados

Instancia da BD

I O conteudo (os tuplos) de todas as relacoes de uma BDconstitui uma instancia da BD.

I A instancia da BD muda com frequencia.

I O esquema da BD e feito uma vez (por pessoas como voces)e nao costuma mudar.

13 / 18

Page 41: Modelo Relacional - Bases de Dados

Definicao de tabelas em SQL

CREATE TABLE <nome> (<lista de elementos>

);

I cada elemento consiste num atributo e no respectivo tipo dedados.

I os tipos mais comuns sao:I INT ou INTEGERI REAL ou FLOATI CHAR(n), VARCHAR(n)I BOOLEANI DATEI TIME

14 / 18

Page 42: Modelo Relacional - Bases de Dados

Exemplo: Tabela de actores

CREATE TABLE Actores(nome VARCHAR(50),morada VARCHAR(70),sexo CHAR,dataNascimento DATE

);

15 / 18

Page 43: Modelo Relacional - Bases de Dados

DATE e TIME

I o formato de DATE e ’yyyy-mm-dd’.I o formato de TIME e ’hh:mm:ss’.

I podera ter ainda fraccoes 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

Page 44: Modelo Relacional - Bases de Dados

DATE e TIME

I o formato de DATE e ’yyyy-mm-dd’.I o formato de TIME e ’hh:mm:ss’.

I podera ter ainda fraccoes 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

Page 45: Modelo Relacional - Bases de Dados

DATE e TIME

I o formato de DATE e ’yyyy-mm-dd’.I o formato de TIME e ’hh:mm:ss’.

I podera ter ainda fraccoes 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

Page 46: Modelo Relacional - Bases de Dados

DATE e TIME

I o formato de DATE e ’yyyy-mm-dd’.I o formato de TIME e ’hh:mm:ss’.

I podera ter ainda fraccoes 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

Page 47: Modelo Relacional - Bases de Dados

DATE e TIME

I o formato de DATE e ’yyyy-mm-dd’.I o formato de TIME e ’hh:mm:ss’.

I podera ter ainda fraccoes 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

Page 48: Modelo Relacional - Bases de Dados

DATE e TIME

I o formato de DATE e ’yyyy-mm-dd’.I o formato de TIME e ’hh:mm:ss’.

I podera ter ainda fraccoes 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

Page 49: Modelo Relacional - Bases de Dados

DATE e TIME

I o formato de DATE e ’yyyy-mm-dd’.I o formato de TIME e ’hh:mm:ss’.

I podera ter ainda fraccoes 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

Page 50: Modelo Relacional - Bases de Dados

DATE e TIME

I o formato de DATE e ’yyyy-mm-dd’.I o formato de TIME e ’hh:mm:ss’.

I podera ter ainda fraccoes 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

Page 51: Modelo Relacional - Bases de Dados

DATE e TIME

I o formato de DATE e ’yyyy-mm-dd’.I o formato de TIME e ’hh:mm:ss’.

I podera ter ainda fraccoes 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

Page 52: Modelo Relacional - Bases de Dados

Declaracao da chave

I um atributo ou lista de atributos pode ser declarado comochave em SQL utilizando PRIMARY KEY.

I Exemplo:

CREATE TABLE Actores(nome VARCHAR(50) PRIMARY KEY,morada VARCHAR(70),sexo CHAR,dataNascimento DATE

);

17 / 18

Page 53: Modelo Relacional - Bases de Dados

Declaracao da chave (cont.)

I No caso da chave ser composta, temos de especificar umelemento a parte.

I Exemplo:

CREATE TABLE Filmes(nome VARCHAR(50),ano INTEGER,duracao INTEGER,aCores BOOLEAN,PRIMARY KEY (nome,ano)

);

18 / 18