Dicionário de dados: notação

Notação: = + () LimInf{ }LimSup [] ** @ | é composto de e opcional iteração ou conjunto alternativa comentários identificador de um depósito de dados e entidade separador de opções alternativas na construção []

• Exemplos: Filmes = { Filme + (código_sócio) } Filme = @código_filme + nome + realizador + (actor principal) + situação situação = [ "alugado" | "disponível" ] * indica se o filme está alugado ou se está disponível para ser alugado * 123 Análise de sistemas

Dicionário de dados (1)
A definição de um elemento de dados inclui: • a composição do elemento, caso seja composto por outros elementos, ou os valores que esse elemento pode tomar, caso seja atómico, respectivamente; • o significado do elemento, apresentado em comentários.
Exemplos: Camião = @matrícula + marca + carga * características de cada camião da empresa * marca = * possíveis marcas dos camiões da empresa * * valores : [ “BMW”|“Volvo”|“Mercedes”|“outros”]* carga = * quantidade máxima de carga que o camião suporta * * unidade: toneladas; intervalo: 10 – 100 * Quando existem sinónimos, só se coloca a composição no nome principal; nos outros indica-se em comentário que se trata de um sinónimo. Análise de sistemas

124

Dicionário de dados (2)
• Exemplos: Pedido_aluguer = código_sócio + data + 1 {número_filme} 6 Sócios = {Sócio} Sócio = @código_sócio+nome + morada + {telefone} 2 Motorista = @número_motorista + nome + morada + (telefone) + número_contribuinte Novo_motorista = * sinónimo de Motorista * Que significa a expressão: A = (B) + (C) A é composto: •• •• •• •• apenas por B, ou apenas por B, ou apenas por C, ou apenas por C, ou por B e C, ou por B e C, ou nem por B nem por C (pouco normal !!) nem por B nem por C (pouco normal !!)

Solução: A = [ [B | |C | |B + C ] ] Solução: A = B C B + C 125

Análise de sistemas

Modelo comportamental: modelo de dados • O modelo de dados define as características dos dados. sobre a qual o sistema deve guardar informação. • O modelo de dados representa-se por um diagrama de entidades e associações (DEA). • O modelo de dados identifica e descreve: • as entidades do sistema: • uma entidade [substantivo] é uma colecção ou conjunto de objectos da mesma espécie com interesse para a organização. Análise de sistemas 126 . • as associações entre entidades: • uma associação [verbo] é uma ligação existente entre entidades que o sistema deve recordar.

modelo de circulação da informação (DFDs). dicionário de dados e especificação de processos. • as características dos dados e das associações. • Estes elementos encontram-se espalhados pelos requisitos do problema. • as associações entre os dados. Análise de sistemas 127 . • Um DEA identifica: • as entidades do sistema.Diagrama de entidades e associações (DEA) • Um DEA é uma técnica de modelação que representa a visão estática dos dados e das associações entre eles.

DEA: estrutura entidades Análise de sistemas entidade associativa associações 128 .

DEA: componentes • Tipos de objectos ou entidades Cliente Fornece Livro • Associações • Entidades associativas Marcação • Associações de supertipos e subtipos Romance Análise de sistemas Livro Didático 129 .

1. Uma entidade representa qualquer coisa (objecto. • Cada entidade é identificada por: substantivo no singular substantivo no singular As entidades definem-se no dicionário de dados. Entidade (ou tipo de objecto): Uma entidade representa qualquer coisa (objecto. facto) do mundo real sobre o qual o sistema deve guardar e manter informação. • Atributo(s) descritor(es): elemento de dados que define uma propriedade da entidade. • Cada entidade é definida por: • Atributo(s) identificador(es): elemento de dados que identifica univocamente cada instância (membro individual) da entidade. conceito. deve guardar e manter informação. Análise de sistemas 130 DEA: entidades (1) . facto) do mundo real sobre o qual o sistema conceito.

profissão. telefone. data_nascimento. sexo Exemplo de instância: número_de_cliente: 125 nome: João Freitas morada: Cascais telefone: 834657 data_nascimento: 01/09/54 profissão: carpinteiro sexo: m Análise de sistemas 131 .DEA: entidades (2) Exemplo de entidade: Cliente • Atributo identificador: número_de_cliente • Atributos descritores: nome. morada.

• Cada associação é definida por: Verbo+ substantivo Verbo+ substantivo • A associação é caracterizada pela conjunção dos atributos identificadores das entidades envolvidas. Associação: Uma associação representa um conjunto de ligações entre Uma associação representa um conjunto de ligações entre entidades que necessitam ser guardadas pelo sistema. Análise de sistemas 132 .DEA: associações (1) 2. entidades que necessitam ser guardadas pelo sistema.

DEA: associações (2) Exemplos de associações: • Factura pertence a cliente Factura pertence Cliente • Fornecedor fornece produtos Fornecedor fornece Produto •• Por defeito. Análise de sistemas 133 . Por defeito. todas as associações são bidireccionais. todas as associações são bidireccionais.

DEA: associações (3) • Associações múltiplas entre as mesmas entidades: Médico trata Doente é médico de família Análise de sistemas 134 .

Pessoa é pai • Binária: relação entre duas entidades.DEA: associações (4) Tipos de associação: • Unária: relação entre uma entidade e ela própia. Cliente compra Fornecedor Análise de sistemas 135 Produto . Fornecedor fornece Produto • Complexa: relação entre três ou mais entidades.

DEA: associações (5) • Uma associação complexa pode reduzir-se a várias associações binárias. • Exemplo: Cliente compra Fornecedor Cliente faz Compra Produto associação complexa é para Produto fornecida Análise de sistemas Fornecedor associações binárias 136 .

ocorrências de entidades).• Instância de uma associação: DEA: associações (6) Representa uma ocorrência de uma ligação (entre Representa uma ocorrência de uma ligação (entre ocorrências de entidades). • Exemplo: Instâncias de Cliente C1 C2 C3 C4 Análise de sistemas Cliente compra Filme instâncias de compra Instâncias de Filme F1 F2 F3 4 instâncias de Cliente 3 instâncias de Filme 3 instâncias da associação compra 137 .

•• Devemos completar as associações com a sua Devemos completar as associações com a sua cardinalidade. política da organização. cardinalidade.DEA: graus máximo e mínimo (1) Cliente aluga Filme • Será que um cliente pode ter alugado (ou pode alugar) vários filmes? • Será que um cliente pode nunca ter alugado um filme? • Será que um filme só pode ser alugado por um cliente. por nenhum ou por muitos? •• As respostas a estas perguntas são definidas pela As respostas a estas perguntas são definidas pela política da organização. Análise de sistemas 138 .

• O grau máximo de uma associação pode ser: •• 1 :: 1 1 1 •• 1 :: N 1 N •• N :: M N M • O grau mínimo de uma associação pode ser: •• 0 :: 0 0 0 •• 0 :: 1 0 1 Análise de sistemas •• 1 :: 1 1 1 139 .DEA: graus máximo e mínimo (2) • A cardinalidade define os graus máximo e mínimo.

Exemplo: Cliente • 1 tem 1 Carta de condução Uma instância de Cliente pode ocorrer no máximo uma vez Um Cliente tem zero ou uma Carta de condução • Uma instância de Carta de Condução pode ocorrer no máximo uma vez Uma Carta de Condução pertence a zero ou um Cliente Análise de sistemas 140 . uma instância da entidade pode ocorrer na associação.DEA: graus máximo e mínimo (3) • Grau máximo: O grau máximo define o número máximo de vezes que O grau máximo define o número máximo de vezes que uma instância da entidade pode ocorrer na associação.

um ou mais Alugueres Análise de sistemas 141 .DEA: graus máximo e mínimo (4) Exemplo: Aluguer N pertence 1 Cliente • Uma instância de Aluguer pode ocorrer no máximo uma vez Um Aluguer pertence a zero ou um Cliente • Uma instância de Cliente pode ocorrer muitas vezes (N) Um Cliente pode ter zero.

um ou mais Fornecedores Análise de sistemas 142 .DEA: graus máximo e mínimo (5) Exemplo: Fornecedor N fornece M Produto • Uma instância de Fornecedor pode ocorrer no máximo N vezes Um Fornecedor fornece zero. um ou mais Produtos • Uma instância de Produto pode ocorrer no máximo M vezes Um Produto pode ser fornecido por zero.

Exemplo: Cliente tem Se é zero diz-se opcional. Carta de condução • • Carta de condução é opcional: um dado cliente pode não ter carta Cliente é obrigatório: uma carta de condução pertence no mínimo a um cliente Análise de sistemas 143 .DEA: graus máximo e mínimo (6) • Grau mínimo: O grau mínimo define o número mínimo de vezes que O grau mínimo define o número mínimo de vezes que uma instância pode ocorrer na associação. se é um diz-se obrigatória. uma instância pode ocorrer na associação.

DEA: graus máximo e mínimo (7) Exemplo: Médico é médico família Doente • Médico é opcional Um doente pode não ter médico de família • Doente é opcional Um médico pode não ser médico de família de nenhum doente Análise de sistemas 144 .

DEA: graus máximo e mínimo (8) Exemplo: Fornecedor fornece Produto • Fornecedor é obrigatório Um fornecedor fornece no mínimo um produto • Produto é obrigatório Todo produto é fornecido no mínimo por um fornecedor Análise de sistemas 145 .

e servem para especificar a política complementam-se. e servem para especificar a política da organização no que se refere aos dados.DEA: graus máximo e mínimo (9) Os graus máximo e mínimo de uma relação Os graus máximo e mínimo de uma relação complementam-se. N Fornecedor M pode vir a fornecer fornece M Produto N Cliente Análise de sistemas 1 tem 1 Cartão 146 . da organização no que se refere aos dados.

Uma associação com atributos próprios. Associação 3. Entidade DEA: entidade associativa 2. Funcionário M trabalha Projecto N Contém informação sobre a percentagem de tempo que o empregado dedica a um dado projecto.1. Entidade associativa: Uma associação com atributos próprios. M N Funcionário Projecto Análise de sistemas Trabalha 147 .

Os subtipos descrevem elementos de dados específicos a um subconjunto das instâncias. Indicador de entidade associativa 4.DEA: subtipo/supertipo 1. Os subtipos descrevem elementos de todos os subtipos. dados específicos a um subconjunto das instâncias. Associação 3. Indicadores de subtipos/supertipos: O supertipo descreve os elementos de dados comuns a O supertipo descreve os elementos de dados comuns a todos os subtipos. Entidade 2. Empregado Empregado = nome + morada + sexo Assalariado = salário_mensal Assalariado Temporário Temporário = salário_hora + valor_hora_extra 148 Análise de sistemas .

Construção do DEA (1) 1. Identificar associações entre entidades. ecrãs. Pistas: » depósitos de dados. fluxos de dados. utilizador. 2. » documentos. Indicam associação • Exemplo: Fornecedores = {Fornecedor + {código_produto}} Fornecedor = @código_fornecedor + nome + morada + número_contribuinte Produtos = {Produto + 1{código_fornecedor}} Produto = @código_produto + descrição + peso + cor N Fornecedor Análise de sistemas fornece M Produto 149 . » entidades externas. Pistas: » conteúdo dos depósitos de dados do DFD. Identificar as entidades.

• Exemplo: process Test is ....Construção do DEA (2) 2. Identificar associações entre entidades (continuação) Pistas: » Na especificação dos processos.. endproc Indica associação Análise de sistemas 150 . find fornecedores with código_fornecedor in Fornecedores equals código_ fornecedor in Produtos .

Construção do DEA (3) 3. Identificar os atributos identificadores e os atributos descritores de cada entidade. 5. Completar o dicionário de dados com as descrições dos tipos de objectos e associações que ainda não estejam lá. Médico trata Doente Médico = @código_médico + nome + morada + salário Doente = @código_doente + BI + nome + sexo + (telefone) Trata = @doente_médico doente_médico = código_doente + código_médico Análise de sistemas 151 . Completar os graus máximos e mínimos das associações. Pistas: » Conteúdo dos depósitos de dados descrito no dicionário de dados. 4.

Construção do DEA (4) • Problemas que podem ocorrer na identificação de atributos descritores e identificadores: a) Nem todos os atributos se aplicam a todas as instâncias de uma entidade. cada um define as Solução: criar dois subtipos. Exemplo 1: Modelo = @número_modelo + morada + estado_civil + (nome_cônjuge) + cor_cabelo + cor_olhos + [ barba + tipo_corpo | medidas ] Homens Mulheres Solução: criar dois subtipos. cada um define as características específicas de um subconjunto de instâncias. Análise de sistemas 152 . características específicas de um subconjunto de instâncias.

Construção do DEA (5) Modelo = @número_modelo + nome + morada + estado_civil + (nome_cônjuge) + cor_cabelo + cor_olhos + [barba + tipo corpo | número_gravidez + medidas] Modelo Modelo Modelo = @número_modelo + nome + morada + estado_civil + cor_cabelo + cor_olhos + (nome_cônjuge) Modelo mulher Modelo_mulher = @número_modelo + medidas Modelo homem Modelo_homem = @número_modelo + barba + tipo_corpo Análise de sistemas 153 .

Construção do DEA (6) • Existe outra situação bastante comum. Exemplo 2: Conta = @número_conta + saldo +[juro + período] Conta Conta= @número_conta + saldo Conta à Ordem Conta a prazo Conta_a_prazo= @número_conta + juro + período Conta_à_ordem = * mesmos atributos que Conta* Análise de sistemas Será mesmo assim? 154 . Ora vejamos o exemplo 2.

Construção do DEA (7) b) Entidades diferentes partilham atributos. Exemplo: Empregado_temporário = @número_empregado + nome + morada + código_postal + telefone + salário_hora + número_horas_extra Empregado_assalariado = @número_empregado + nome + morada + código_postal + telefone + salário_mensal + abono_família + número_filhos Solução: criar um supertipo que define as Solução: criar um supertipo que define as características comuns aos dois tipos de objectos. Empregado Empregado temporário Empregado assalariado Análise de sistemas Empregado temporário Empregado assalariado Atributos não partilhados 155 . características comuns aos dois tipos de objectos.

(1) Criar as associações correspondentes. associativa. Análise de sistemas 156 . Exemplo: Produto = @código_produto + descrição + peso + cor Fornecedor = @código_fornecedor + nome + morada + número_contribuinte Pedido_encomenda = @número_encomenda + data_emissão + data_recepção Pedidos_encomendas = {Pedido_encomenda + (código_fornecedor) + 1{código_produto + quantidade_ pedida}} (1) (1) (2) Solução: (1) Criar as associações correspondentes. (2) Transformar a associação correspondente numa entidade (2) Transformar a associação correspondente numa entidade associativa.Construção do DEA (8) c) Alguns elementos de dados descrevem associações entre entidades (1) ou características dessas associações (2).

Construção do DEA (9) Resultado: Pedido encomenda N Produto é para Linha encomenda 1 Fornecedor Linha_encomenda = @código_linha_encomenda + quantidade_pedida código_linha_encomenda = número_encomenda + código_produto Análise de sistemas 157 .

associações.Construção do DEA (10) d) Descobrir grupos repetitivos (conjunto de atributos cujos valores se repetem para um dado valor do identificador). características de filho Exemplo: Empregado = @número_empregado + nome + morada + salário + {nome_filho + sexo_filho + idade_filho} A solução é criar uma nova entidade com as respectivas A solução é criar uma nova entidade com as respectivas associações. Empregado tem N Filho Empregado = @número_empregado + nome + morada + salário Filho = @Id_filho + sexo_filho + idade_filho Id_filho = número_empregado + nome_filho Análise de sistemas 158 .

Cliente = @BI_cliente + nome_cliente + morada_cliente + (telefone_cliente) Clientes = {Cliente} Reserva = @Id_Reserva +dias_reservados + data_chegada Reservas = {Reserva + número_quarto + BI_cliente} Quarto = @número_quarto + número_camas + situação + categoria + preço + descrição Quartos = {Quarto} Factura_pendente = @número_factura + valor_total Facturas_pendentes = {Factura_pendente + número_quarto + BI_cliente} Pedido_despertar = @número_pedido + data + hora Pedidos_despertar = {Pedido_despertar + número_quarto} Análise de sistemas 159 . descrito no dicionário de dados e no DFD preliminar apresentados a seguir.Exemplo: gerir a ocupação dum hotel (1) • Construa o modelo de dados de um sistema gestão de ocupação do hotel.

Exemplo: gerir a ocupação dum hotel (2) 1 pedido reserva resposta Cliente pedido cancelado pedido despertar 2 Cancelar reserva novo pedido despertar Pedidos despertar pedido removido Funcionário lista pedidos cliente novo reserva cliente Clientes cliente removido reserva reserva removida nova reserva Registar reserva quarto Quartos * ocupado pedido ocupação 3 Registar chegada resposta Cliente factura pedido desocupação 4 Registar saída Quartos desocupado factura removida Facturas pendentes preço * reserva Reservas reserva * reserva removida cliente Clientes 6 Registar pedido despertar * cliente removido 5 Registar consumo nova factura pedido despertar consumo restaurante 7 Listar pedidos consumo chamada Central telefónica Análise de sistemas Restaurante 160 .