SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
Modelo relacional
Fernando Lobo
Base de Dados, aula 6
1 / 18
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Estão perdidos?
I Produto cartesiano?
I relação = tabela?
5 / 18
Estão perdidos?
I Produto cartesiano?
I relação = tabela?
5 / 18
Estão perdidos?
I Produto cartesiano?
I relação = tabela?
5 / 18
Produto Cartesiano. Exemplo:
6 / 18
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Exemplo: Tabela de actores
CREATE TABLE Actores(
nome VARCHAR(50),
morada VARCHAR(70),
sexo CHAR,
dataNascimento DATE
);
15 / 18
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
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
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
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
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
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
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
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
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
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
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

Weitere ähnliche Inhalte

Ähnlich wie Modelo Relacional - Bases de Dados

Ähnlich wie Modelo Relacional - Bases de Dados (7)

Matematica vol5
Matematica vol5Matematica vol5
Matematica vol5
 
Ceesvo (ensino fundamental) apostila 5
Ceesvo (ensino fundamental)   apostila 5Ceesvo (ensino fundamental)   apostila 5
Ceesvo (ensino fundamental) apostila 5
 
Mat segmentos proporcionais
Mat segmentos proporcionaisMat segmentos proporcionais
Mat segmentos proporcionais
 
Apontamentos
ApontamentosApontamentos
Apontamentos
 
CONJUNTOS E FUNÇÕES.pdf
CONJUNTOS E FUNÇÕES.pdfCONJUNTOS E FUNÇÕES.pdf
CONJUNTOS E FUNÇÕES.pdf
 
Argmat2009
Argmat2009Argmat2009
Argmat2009
 
Apostila ef ii
Apostila ef iiApostila ef ii
Apostila ef ii
 

Mehr von Mariana Hiyori

Templo de Zeus Olímpico
Templo de Zeus OlímpicoTemplo de Zeus Olímpico
Templo de Zeus OlímpicoMariana Hiyori
 
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 Base de Dados - Normalização e Desenho de Base de Dados Relacionais Base de Dados - Normalização e Desenho de Base de Dados Relacionais
Base de Dados - Normalização e Desenho de Base de Dados RelacionaisMariana Hiyori
 
Base de Dados - Álgebra Relacional
Base de Dados - Álgebra RelacionalBase de Dados - Álgebra Relacional
Base de Dados - Álgebra RelacionalMariana Hiyori
 
Base de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalBase de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalMariana Hiyori
 
Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)Mariana Hiyori
 
Base de Dados - Introdução
Base de Dados - IntroduçãoBase de Dados - Introdução
Base de Dados - IntroduçãoMariana Hiyori
 
Base de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade CurricularBase de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade CurricularMariana Hiyori
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de ComputadoresMariana Hiyori
 
Redes e Comunicações 2
Redes e Comunicações 2Redes e Comunicações 2
Redes e Comunicações 2Mariana Hiyori
 
Redes e Comunicações 2 - Resumo
Redes e Comunicações 2 - ResumoRedes e Comunicações 2 - Resumo
Redes e Comunicações 2 - ResumoMariana Hiyori
 
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)Mariana Hiyori
 
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)Mariana Hiyori
 
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)Mariana Hiyori
 
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)Mariana Hiyori
 
R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)Mariana Hiyori
 
R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)Mariana Hiyori
 
R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)Mariana Hiyori
 
R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)Mariana Hiyori
 
R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)Mariana Hiyori
 
Resumo - Memorial do Convento
Resumo - Memorial do ConventoResumo - Memorial do Convento
Resumo - Memorial do ConventoMariana Hiyori
 

Mehr von Mariana Hiyori (20)

Templo de Zeus Olímpico
Templo de Zeus OlímpicoTemplo de Zeus Olímpico
Templo de Zeus Olímpico
 
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 Base de Dados - Normalização e Desenho de Base de Dados Relacionais Base de Dados - Normalização e Desenho de Base de Dados Relacionais
Base de Dados - Normalização e Desenho de Base de Dados Relacionais
 
Base de Dados - Álgebra Relacional
Base de Dados - Álgebra RelacionalBase de Dados - Álgebra Relacional
Base de Dados - Álgebra Relacional
 
Base de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema RelacionalBase de Dados - Conversão E-A para Esquema Relacional
Base de Dados - Conversão E-A para Esquema Relacional
 
Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)
 
Base de Dados - Introdução
Base de Dados - IntroduçãoBase de Dados - Introdução
Base de Dados - Introdução
 
Base de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade CurricularBase de Dados - Apresentação da Unidade Curricular
Base de Dados - Apresentação da Unidade Curricular
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de Computadores
 
Redes e Comunicações 2
Redes e Comunicações 2Redes e Comunicações 2
Redes e Comunicações 2
 
Redes e Comunicações 2 - Resumo
Redes e Comunicações 2 - ResumoRedes e Comunicações 2 - Resumo
Redes e Comunicações 2 - Resumo
 
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 01 14_1 - A Internet e Conceitos Basicos (Parte 1)
 
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
R&c 01 14_2 - A Internet e Conceitos Basicos (Parte 2)
 
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
R&c 01 14_3 - A Internet e Conceitos Basicos (Parte 3)
 
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
R&c 02 14_1 - A Internet e Conceitos Basicos (Parte 1)
 
R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)R&c 02 14_2 - Protocolos (Parte 2)
R&c 02 14_2 - Protocolos (Parte 2)
 
R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)R&c 03 14_1 - Protocolos (Parte 1)
R&c 03 14_1 - Protocolos (Parte 1)
 
R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)R&c 05 14_1 - Protocolo IP (Parte 1)
R&c 05 14_1 - Protocolo IP (Parte 1)
 
R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)R&c 05 14_2 - Protocolo IP (Parte 2)
R&c 05 14_2 - Protocolo IP (Parte 2)
 
R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)R&c 05 14_3 - Protocolo IP (Parte 3)
R&c 05 14_3 - Protocolo IP (Parte 3)
 
Resumo - Memorial do Convento
Resumo - Memorial do ConventoResumo - Memorial do Convento
Resumo - Memorial do Convento
 

Modelo Relacional - Bases de Dados

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