1
! "#
!
"
#
$
% &
! "#
'(& )
*
+
&
, (
-
, (
+
&
+
% &
. )
/
+
+
"0
1
+ !
$
%
&
'%
#
,1 1 "#
/
2 "# 3
2 "#
"# 4 5
"0
6
(
"#
*
+
(
)
*
+,!
*
'- 7
(
"#
4 8
&
(&
(9
.
(&
:
.( / 7 !
&
(
4
(
!
;1
1
(
:
* "
*
!
6
9
4
!
4
<4
;
1
! 6
8
! :
* "
*
/
0 0
"
"
0
.
1
+ %
.
7
1 "0
7
&
7
(
2
" 7
&
2 3 7 1
(
&
&
&
(
0
7 <
"#
(
(&
$ 7 ' !
%
4
; 1 $
(
0
7 1
!
(&
(
-
.
$ 7 $
4 %
4 ;) 4
Cidade
Estado
Cod-Forn
Fornecedor
Nome
Ex.: Instâncias de “Fornecedor”
Cod_Forn
Nome
Cidade
Estado
F01
Pedro
Porto Alegre
RS
F02
Eliana
Botucatu
SP
F03
Olacyr
Curitiba
PR
F04
João
Pelotas
RS
F05
Ernesto
Anápolis
GO
1
0
+
'
&
<
)
-(
4
.0
!
8
<
)
6
7
Estado
Cidade
Endereço
Dependentes
Cod-Func
Funcionário
Nome
*
4
.0
7 #
(
.
4
)
6:
7
4
.0
7
(
.
(
(
6:
7
"
4
.0
/
7 =
)
>
6:
7
4
.0
0 /
7
)
6:
7
'-
4
.0
4
.0 ! *
!
0 3 / 7
!
&
6:
7
?$
4
.0
*
/
7
)
)
(
6:
7
)
0
4
.0 7
2
)
(
6:
7
4
4
14
:
*
5
0
4
.0 7
!
&
)
(
6:
7
6 @*4 $A
'-
4
.0
!
(
3 /
3 / 7 <
&
(
8 4
)
4
!
&
"
7
.
(
8
. )
&
)
)
4
/
(
3 /
,8
# !
&
. )
<
2
96
!
0
1
,
"#
)
. )
9
"#
&
(
"
Quantidade
Preço
Cod-Prod
Cod-Forn
Cod-Prod
Cod-Forn
Produto
Pedido
Fornecedor
N
N
7
6
7
6
+
#
6
6
$
3 /
,
#
B
)<
%
)
6
!C
-
-"#
8
Aluno
Disciplina
d3
d2
d1
a3
a2
a1
Matrícula
8
"#
>
6:
7
Produto
Fornecedor
N
Pedido
N
Quantidade
Preço
Cod-Prod
Cod-Forn
Cod-Prod
Cod-Forn
Produto
Pedido
Fornecedor
N
N
Atributos de Relacionamento:
) 7
" 08!
+
&
6:
7
Trabalha
Funcionário
N
N
Projeto
Funcionário
Projeto
F1
F2
F3
Trabalha
P2
P1
7
" 09!
+
D
&
6:
7
Quantidade
Cod-Peça
Cod-Proj
cod-forn
Fornece
Fornecedor
nome
ender
nome
nome
Peça
Projeto
N
N
N
0
=
>
8
)<
Qual a cardinalidade deste relacionamento?
Fornecedor
Peça
d3
d2
d1
a3
a2
a1
Fornecer
E
9
96
9
96
1
1
Funcionário
Gerencia
Departamento
Obs.:
Chave estrangeira em uma das entidades.
Conjunto-Entidade A
Conjunto-Entidade B
b3
b2
b1
a3
a2
a1
:#
:
E
,
9
8
8
=
4
8
9
96
,
a1
a2
b4
b3
b2
b1
Conjunto-Entidade A
Conjunto-Entidade B
Lotação
N
1
Departamento
Funcionário
Obs.:
Chave estrangeira na direção muitos.
:#
Uma entidade em
A
está associada a qualquer número de
entidades em
B
, e uma entidade em
B
está associada a
qualquer número de entidades em
A.
a1
a2
a3
b3
b2
b1
Conjunto-Entidade B
Conjunto-Entidade A
Trabalha
Funcionário
M
N
Projeto
Obs.:
Requer tabela extra para representa-lo.
#
Seja um relacionamento entre dois conjuntos-entidade A e B
a participação de A é parcial no relacionamento com B se
alguma instância de entidade de A pode existir sem se
relacionar com nenhuma instância de entidade de B.
F1
F2
F3
gerencia
D2
D1
Departamento
Funcionário
1
1
Funcionário
Gerencia
Departamento
(0,1)
(0,1)
'-Quando todas as instâncias de uma entidade precisam
estar associadas a alguma instância de outra entidade
através de um relacionamento.
F1
F2
F3
escreve
D3
D1
D2
Obra
Escritor
escreve
N
Escritor
1
Obra
(1,1)
(0,N)
'-
*
;
$
'
8
6 D
9
B 6 D
:
trabalha
N
1
Departamento
Funcionário
E
#
;
:
. )
9
<
. )
1
)
F
G
!
;
&
)
!
>
:
mantém
N
1
Funcionário
Dependente
40
" 0:!
+
>
&
>
&
6:
7
Gerencia
Funcionário
É Gerente
É Gerenciado
N
1
Funcionário
F3
F2
F1
Gerencia
< 0
0
=
&
(&
&
>
)<
Qual o grau deste relacionamento?
Fornecedor
Peça
d3
d2
d1
a3
a2
a1
Fornece
Projeto
d2
d1
< 0 0
8
Quantidade
Cod-Peça
Cod-Proj
Cod-Forn
Projeto
Fornece
Fornecedor
Peça
N
1N2
N
3"
= >0/
?
Cod-Peça
Cod-Proj
Cod-Forn
Projeto
Fornece
Fornecedor
Peça
usa
pode
fornecer
N1’
N3
N2’
N2
N3’
N1
"
?
>0
'%
?
Cod-Peça
Cod-Proj
Cod-Forn
Projeto
Fornece
Fornecedor
Peça
Quantidade
0
"
'%
+
"0
1
!
+
"0
+
"0
%
"#
D
6
/
+
5
'-
3
+,!
$
%
&
'%
4" "
'-E
"#
+ < 8
# <
-)
6
:
,1 1 "# <
(
"#
)<
8
#
-)
:
Trabalha
Funcionário
N
N
Projeto
Máquina
N
Utiliza
N
N
Trabalha
Funcionário
N
N
Projeto
Máquina
N
Utiliza
N
4" "
'-<
@ '-
@
'-E
&
)
1
4
8
(
-!
:
Pessoa
Física
Cliente
Pessoa
Jurídica
Filial
atende
Código
Nome
Sexo
CIC
CGC
>0
0.
@
?
(
1
(
,1
(
Super-Classe
Sub-Classe 1
. . .
Sub-Classe N
atributos e
relacionamentos
genéricos
atributos e
relacionamentos
específicos
<
@ '-
@
'-Motorista
Funcionário
Secretária
parcial
Cargo
Pessoa
Física
Cliente
Pessoa
Jurídica
total
Toda instância da super-classe
precisa estar associada a uma
instância correspondente de
alguma sub-classe
Pode haver instância da
super-classe sem instância
correspondente em nenhuma
sub-classe
<
@ '-
@
'-$ 0 /
-
$ 0 /
Cada instância da
super-classe pode estar associada a,
no máximo, uma instância de
uma sub-classe
Uma instância da super-classe pode
estar associada a até uma instância de
cada uma das sub-classes
Homem
Pessoa
Mulher
d
exclusiva
Professor
Pessoa
Aluno
Funcionário
não-exclusiva
A
'
B
Automóvel
Veículo
Barco
Veículo
Anfíbio
Terrestre
Aquático
)*
0
3
3
+,!
3
C
D
*
"
!
utiliza eh_gerente eh_gerenciado controla trabalha_para eh_dependenteFuncionário
cod_func
nome_func
sexo_func
dta_nasc_func
salario_func
ender_func
cidade_func
uf_func
Departamento
nro_depto
nome_depto
nro_func_depto
Projeto
nro_proj
nome_proj
descr_proj
Dependente
nro_depend
nome_depend
sexo_depend
dta_nasc_depend
parent_depend
gerencia
dta_ini_ger
Local
cod_loc
nome_loc
cidade_loc
uf_loc
supervisiona3
0
D
*
"
!
supervisiona eh_gerente eh_gerenciado controla trabalha_para eh_dependente utilizaFuncionário
cod_func
nome_func
sexo_func
dta_nasc_func
salario_func
ender_func
cidade_func
uf_func
Departamento
nro_depto
nome_depto
nro_func_depto
Projeto
nro_proj
nome_proj
descr_proj
Dependente
nro_depend
nome_depend
sexo_depend
dta_nasc_depend
parent_depend
gerencia
dta_ini_ger
Local
cod_loc
nome_loc
cidade_loc
uf_loc
3
"
5
D
*
"
!
NRO_PROJ = NRO_PROJ COD_LOC = COD_LOCCOD_FUNC = COD_FUNC NRO_DEPTO = NRO_DEPTO
NRO_DEPTO = NRO_DEPTO NRO_DEPTO = NRO_DEPTO COD_FUNC = COD_FUNC FUNCIONARIO COD_FUNC LongInteger NRO_DEPTO LongInteger NOME_FUNC Text(25) SEXO_FUNC Text(1) DTA_NASC_FUNC DateTime SALARIO_FUNC Currency ENDER_FUNC Text(35) CIDADE_FUNC Text(25) UF_FUNC Text(2) DEPARTAMENTO NRO_DEPTO LongInteger NOME_DEPTO Text(20) NRO_FUNC_DEPTO LongInteger PROJETO NRO_PROJ LongInteger NRO_DEPTO LongInteger NOME_PROJ Text(25) DESCR_PROJ Memo DEPENDENTE COD_FUNC LongInteger NRO_DEPEND LongInteger NOME_DEPEND Text(25) SEXO_DEPEND Text(1) DTA_NASC_DEPEND DateTime PARENT_DEPEND Text(1) GERENCIA NRO_DEPTO LongInteger COD_FUNC LongInteger DTA_INI_GER DateTime LOCAL COD_LOC Text(3) NOME_LOC Text(25) CIDADE_LOC Text(25) UF_LOC Text(2) UTILIZA COD_LOC Text(3) NRO_PROJ LongInteger SUPERVISOR = COD_FUNC SUPERVISOR LongInteger
3
*
:E
D
!
enquadra supervisiona tem_alocado trabalha_no trabalha_para controla mantém Departamento nro_depto: Long Integer nome: Text(20) nro_func: Integer gerente: Long Integer dta_inic_ger: Date/Time Funcionáriocod_func: Long Integer nome: Text(25) sexo: Sexo dta_nasc: Date/Time salario: Currency ender: Text(35) cidade: Text(25) uf: UF
supervisor: Long Integer (FK) nro_depto: Long Integer (FK)
cod_cargo: Integer (FK) Projeto
nro_proj: Long Integer nro_depto: Long Integer (FK) nome: Text(25) descricao: Memo
Dependente cod_func: Long Integer (FK) nro_depend: Long Integer nome: Text(25) sexo: Sexo dta_nasc: Date/Time parentesco: Parentesco
Trabalha
cod_func: Long Integer (FK) nro_proj: Long Integer (FK) horas_trab: Integer Cargo cod_cargo: Integer nome: Text(20) descricao: Memo