8
1 ! "# !"# $ %& ! "#’(& )* + & , ( -, ( + & + %& .) /+ + "0 1 +! $% &’% # ,11"# /2"#32"# "#45 "06 ("#* + ( ) *+,! * ’-7 ( "# 48&(& (9. (& : .(/7! &(4 (! ;1 1 (: *" *! 694! 4 <4; 1! 6 8! : *" */ 00"" 0 . 1 + %. 7 1"0 7 & 7 ( 2" 7 & 23 71 (& & & (0 7< "#( (& $ 7 ’! %4; 1$ (071 ! (& ( - . $ 7 $ 4%4;) 4 Cidade Estado Cod-Forn Fornecedor Nome

O Modelo Entidade-Relacionamento Tópicos O Modelo Entidade

Embed Size (px)

Citation preview

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�� � �����!� �:

*��"����������� �����������

*�����/�������00�����"����"��������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 ����

CidadeEstado

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

EstadoCidade

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çoCod-Prod

Cod-Forn Cod-ProdCod-Forn

ProdutoPedidoFornecedorN N

� �������� ����������7 ���6���

� �������� �����7 ���6����

� +������� ��� ������#� ���6��������6����

�$����������3�/�������������� ������������

� ,� ��������� �# ��������� � �� B� ����� ����)<� �� �������� ����

� %��� ����� ���� � �������� ���� ��)���� ��������� �� ��������� ����� � ����6� � �!�C��� � ��� ������-� � � � -�� �� ������"# � 8�� �� �������

Aluno Disciplina

d3

d2

d1

a3

a2

a1

Matrícula

��������� 8�� ������ � � ������"# ����� ����>����� �� ���� � ��� ���������

�6:7ProdutoFornecedor Pedido

N N

Quantidade

PreçoCod-Prod

Cod-Forn Cod-ProdCod-Forn

ProdutoPedidoFornecedorN N

�����������

Atributos de Relacionamento:

������������)�7���� "��0�8!

+������� �� ��&������������� ��������

�6:7

TrabalhaFuncionário ProjetoNN

Funcionário Projeto

F1

F2

F3

Trabalha

P2

P1

���������������7���� "��0�9!

+������� ��D� ��&������������� ��������

�6:7

Quantidade

Cod-Peça

Cod-Projcod-forn

ForneceFornecedor

nome

ender

nome

nomePeça

ProjetoN

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 1Funcionário DepartamentoGerencia

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çãoN1

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 BConjunto-Entidade A

TrabalhaFuncionário ProjetoNM

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

DepartamentoFuncionário

1 1Funcionário DepartamentoGerencia

(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

ObraEscritor

escreveN

Escritor Obra1

(1,1) (0,N)

��������'-������ *����;�����$�������

'���� 8���� � �6���D���� �� � � ����� ����� �������� ���9 ���������� B �6���D���� �� � � ���� �������� � ��� ����������:

trabalhaN1

Departamento Funcionário

���������������

E � �������������# ����� ���������� ��;����: ��� �.�)� ��� 9��� < � ���� ���� �.�)� ������1���� ��)������� �� �������� F���G���������� � � ������!����� �� �� ��;���� ���& )��� ��� ������� ���� ��!������� ����>����� �� �������� ����:

mantémN1

Funcionário Dependente

40� ������������ "��0�:!

+������� ����>����� �� � ��&������������ � ����>����� ����� �� ��&������������

�6:7

Gerencia

Funcionário

É Gerente É Gerenciado

N1

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-ProjCod-Forn

ProjetoForneceFornecedor

Peça

N1

N2

N3

�������"�����= �>0�/��������������?

Cod-Peça

Cod-ProjCod-Forn

ProjetoForneceFornecedor

Peça

usapode

fornecer

N1’ N3

N2’N2

N3’N1

���������"����?�����>0���������'%��������������������������?

Cod-Peça

Cod-ProjCod-Forn

ProjetoForneceFornecedor

Peça

Quantidade

���0����������"��������������'%������������������

� +�����"0�� ����������� �����1������ ��!���������

�+�����"0�� �������������

�+�����"0�� �� %��������"#

�������D���� �6���������

� /��� �� � +������� ���

�5���������'-�����������3� ��+,!

�$��%�����&����'%�������������

������ �����������

4"��"�'-�

� E � �� ���"# � ��� ��+ < 8�� �# < ���-)�� �6������� �������� ���� ����� �������� ����:

� ,1��1�"# < � � �(����"# ����)<� �� 8��� �������� ���� �# ������� � ��������� �� �-)�� �������:

TrabalhaFuncionárioN N

Projeto

Máquina

N

Utiliza

N N

TrabalhaFuncionárioN N

Projeto

Máquina

N

Utiliza

N

������4"��"�'-�

<������@�'-�������������@�'-�

E ��&������������ ��� ��� ��)���� � ����1����4 ���� 8��� � ����(��� �����-!���:

PessoaFísica

Cliente

PessoaJurídica

Filial atende

Código

Nome

Sexo

CIC

CGC

����>0����������0. �����������������@����?

� ����� ����(��� ������� � ���� � ��1� ���� ��(����������

� ,�1��� �������� ���� �� ������ ������ � ����� ������ ��(��������

Super-Classe

Sub-Classe 1 Sub-Classe N. . .

atributos e relacionamentosgenéricos

atributos e relacionamentosespecíficos

<�������@�'-�����������@�'-����������������

Motorista

Funcionário

Secretária

parcial

Cargo

PessoaFísica

Cliente

PessoaJurí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

dexclusiva

Professor

Pessoa

AlunoFuncionário

não-exclusiva

A���'���B�����

Automóvel

Veículo

BarcoVeículo Anfíbio

Terrestre Aquático

)*����0��������3��� �3� ��+,!

�����3��� C������� ��D��*���"��!

utiliza

eh_gerente eh_gerenciado

controla

trabalha_para

eh_dependente

Funcionáriocod_funcnome_funcsexo_funcdta_nasc_funcsalario_funcender_funccidade_funcuf_func

Departamentonro_deptonome_deptonro_func_depto

Projetonro_projnome_projdescr_proj

Dependentenro_dependnome_dependsexo_dependdta_nasc_dependparent_depend

gerenciadta_ini_ger

Localcod_locnome_loccidade_locuf_loc

supervisiona

�����3��� �����0��� ��D��*���"��!

supervisiona

eh_gerente eh_gerenciado

controla

trabalha_para

eh_dependente

utiliza

Funcionáriocod_funcnome_funcsexo_funcdta_nasc_funcsalario_funcender_funccidade_funcuf_func

Departamentonro_deptonome_deptonro_func_depto

Projetonro_projnome_projdescr_proj

Dependentenro_dependnome_dependsexo_dependdta_nasc_dependparent_depend

gerenciadta_ini_ger

Localcod_locnome_loccidade_locuf_loc

�����3��� ��"�����5����� ��D��*���"��!

NRO_PROJ = NRO_PROJCOD_LOC = COD_LOC

COD_FUNC = COD_FUNC NRO_DEPTO = NRO_DEPTO

NRO_DEPTO = NRO_DEPTO

NRO_DEPTO = NRO_DEPTO

COD_FUNC = COD_FUNC

FUNCIONARIO

COD_FUNC LongIntegerNRO_DEPTO LongIntegerNOME_FUNC Text(25)SEXO_FUNC Text(1)DTA_NASC_FUNC DateTimeSALARIO_FUNC CurrencyENDER_FUNC Text(35)CIDADE_FUNC Text(25)UF_FUNC Text(2)

DEPARTAMENTONRO_DEPTO LongIntegerNOME_DEPTO Text(20)NRO_FUNC_DEPTO LongInteger

PROJETONRO_PROJ LongIntegerNRO_DEPTO LongIntegerNOME_PROJ Text(25)DESCR_PROJ MemoDEPENDENTE

COD_FUNC LongIntegerNRO_DEPEND LongIntegerNOME_DEPEND Text(25)SEXO_DEPEND Text(1)DTA_NASC_DEPEND DateTimePARENT_DEPEND Text(1)

GERENCIANRO_DEPTO LongIntegerCOD_FUNC LongIntegerDTA_INI_GER DateTime

LOCALCOD_LOC Text(3)NOME_LOC Text(25)CIDADE_LOC Text(25)UF_LOC Text(2)

UTILIZACOD_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

Departamentonro_depto: Long Integer

nome: Text(20)nro_func: Integergerente: Long Integerdta_inic_ger: Date/Time

Funcionáriocod_func: Long Integer

nome: Text(25)sexo: Sexodta_nasc: Date/Timesalario: Currencyender: Text(35)cidade: Text(25)uf: UFsupervisor: 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

Dependentecod_func: Long Integer (FK)nro_depend: Long Integer

nome: Text(25)sexo: Sexodta_nasc: Date/Timeparentesco: Parentesco

Trabalhacod_func: Long Integer (FK)nro_proj: Long Integer (FK)

horas_trab: Integer

Cargocod_cargo: Integer

nome: Text(20)descricao: Memo

�����3��� *��5�������4��.0���

� ParentescoC CônjugeF Filho(a)I Irmão/IrmaP Pai/Mãe

� SexoM MasculinoF Feminino

� EstadosAC AcreAL AlagoasAM AmazonasAP AmapáBA BahiaCE CearáES Espírito SantoGO Goiás: :

��� � ��6� ������)��� � � ��� ��&����7

� , ������"� �� � �0.���/� ����� ����

������ � � ������4

� , ������"� �� � /��.� < � � !��� ������"#

�� � �����������F

� E ��(��/�4 8�� < � � 8��������4 < � � !���

������"# �� � ���.0�F

� E ��/=�.�� �� ����4 8����!����� )��(4 <

� � ������"# �� � ���.0�����

������������

*���������������.���'-�����*��"������� �