UML NO PROJETO LGICO DE BANCO DE DADOS
UML NO PROJETO LÓGICO DE BANCO DE DADOS: 1ª PARTE g DIAGRAMA DE CLASSES g MODELO RELACIONAL g PROJETO LÓGICO DE BANCO DE DADOS g ELABORANDO O DIAGRAMA 1
2
Resumo: A partir do diagrama de classes elaborado na etapa de Análise. . . Empregado id 0. . * nome data_contrataçao perc_comissao Departamento 0. . 1 id nome . . . e de outras informações obtidas sobre o sistema, como por exemplo o número de objetos ou instâncias de uma classe (multiplicidade da classe) e a freqüência das operações. . . é elaborado o Projeto Lógico de Banco de Dados. 3
Obs: No diagrama de classes pode ser incluída a multiplicidade da classe Multiplicidade da classe 540 20 4
5
Utilizaremos também uma forma mais simples de representar o Projeto Lógico de BD, na qual não são apresentadas algumas decisões, como tipo e permissão de nulos: Sublinhado: chave primária g Departamento (id, nome) Empregado (id, nome, data_contração, perc_comissão, dep_id (FK-Departamento-id)) g nome da tabela chave estrangeira nome da coluna 6
A solução também pode ser representada através do seguinte diagrama de classes: 7
8
9
Coluna (atributo) Nome da tabela Linha (tupla) Nulo: permitido porque é possível que um empregado não esteja alocado a um departamento 10
11
12
Chave primária 13
14
Nome da tabela Chave primária Coluna (atributo) Chave estrangeira nulo Linha (tupla) Chave primária Obs: caso uma chave estrangeira não possa ter valores nulos, é necessário especificar essa condição. 15
16
17
18
19
20
Sublinhado - chave primária 21
chave primária chave estrangeira nome da tabela nome da coluna 22
23
24
25
26
27
28
Exemplo: Elaborando o Projeto Lógico de Banco de Dados do Sistema de controle de pedidos Obs: Neste exemplo foi considerado apenas o Diagr. de Classes para a elaboração do Projeto. 29
Diagrama de classes elaborado com uma perspectiva conceitual: Cliente código CPF nome endereço telefone [0. . 1] e. Mail [0. . 1] Fatura Pedido faz -> 1 1. . * 1 0. . * num. Fatura data. Emissão data. Vencimento valor. Pago [0. . 1] data. Pagamento [0. . 1] 0. . * data. Pedido. Cancelamento [0. . 1] data. Cancelamento [0. . 1] status Item faturado quant. Faturada { Se uma fatura atende a um pedido, necessariamente os itens pedidos ligados à fatura devem ser do pedido ao qual a fatura está relacionada } num. Pedido data. Emissão nome. Presenteado [0. . 1] endereço. Entrega data. Cancelamento [0. . 1] status 1. . * Item pedido quantidade. Pedida 1. . * preço. Cobrado 0. . * 1 Livro isbn título descrição quant. Estoque preço prazo. Médio. Entrega 30
Tabelas: 31
32
33
Diagrama de classes representando as tabelas: <<Relational. Table>> CLIENTE <<Relational. Table>> PEDIDO ID : VARCHAR 2 <<FK>> CPF : VARCHAR 2 PEDIDO_CLIENTE_FK NOME : VARCHAR 2 ID_CLIENTE = ID ENDERECO : VARCHAR 2 TELEFONE : NUMBER E_MAIL : VARCHAR 2 CLIENTE_PK = ID <<FK>> FATURA_PEDIDO_FK ID : VARCHAR 2 DT_EMISSAO : DATE NOME_PRESENTEADO : VARCHAR 2 ENDERECO_ENTREGA : VARCHAR 2 DT_CANCELAMENTO : DATE STATUS : CHAR PEDIDO_PK = ID <<FK>> ITEMPEDIDO_PED_FK <<Relational. Table>> FATURA ID_PEDIDO = ID ID : VARCHAR 2 ID_PEDIDO = ID DT_EMISSAO : DATE <<Relational. Table>> DT_VENCIMENTO : DATE ITEM_PEDIDO VALOR_PAGO : NUMBER NUM_ITEM : NUMBER DT_PAGAMENTO : DATE QUANT_PEDIDA : NUMBER DT_PEDIDO_CANCELAMENTO : DATE PRECO_COBRADO : NUMBER DT_CANCELAMENTO : DATE ITEM_PEDIDO_PK = ID_PEDIDO, NUM_ITEM STATUS : CHAR FATURA_PK = ID <<FK>> ID_LIVRO = ISBN ITEMFAT_ITEMPED_FK ITEMFAT_FATURA_FK ITEMPEDIDO_LIVRO_FK ID_PEDIDO = ID_PEDIDO <<FK>> ID_FATURA = ID ID_ITEM = NUM_ITEM <<Relational. Table>> LIVRO <<Relational. Table>> ITEM_FATURADO ISBN : VARCHAR 2 TITULO : VARCHAR 2 QUANT_FATURADA : NUMBER DESCRICAO : VARCHAR 2 ITEM_FATURADO_PK = ID_FATURA, ID_PEDIDO, ID_ITEM QUANT_ESTOQUE : NUMBER PRECO : NUMBER PRAZO_MEDIO_ENTREGA : NUMBER LIVRO_PK = ISBN 34
35
- Slides: 35