Você está na página 1de 38

Dicionrio de dados: notao

Notao: = + () LimInf{ }LimSup [] ** @ | composto de e opcional iterao ou conjunto alternativa comentrios identificador de um depsito de dados e entidade separador de opes alternativas na construo []

Exemplos: Filmes = { Filme + (cdigo_scio) } Filme = @cdigo_filme + nome + realizador + (actor principal) + situao situao = [ "alugado" | "disponvel" ] * indica se o filme est alugado ou se est disponvel para ser alugado * 123 Anlise de sistemas

Dicionrio de dados (1)


A definio de um elemento de dados inclui: a composio do elemento, caso seja composto por outros elementos, ou os valores que esse elemento pode tomar, caso seja atmico, respectivamente; o significado do elemento, apresentado em comentrios.
Exemplos: Camio = @matrcula + marca + carga * caractersticas de cada camio da empresa * marca = * possveis marcas dos camies da empresa * * valores : [ BMW|Volvo|Mercedes|outros]* carga = * quantidade mxima de carga que o camio suporta * * unidade: toneladas; intervalo: 10 100 * Quando existem sinnimos, s se coloca a composio no nome principal; nos outros indica-se em comentrio que se trata de um sinnimo. Anlise de sistemas

124

Dicionrio de dados (2)


Exemplos: Pedido_aluguer = cdigo_scio + data + 1 {nmero_filme} 6 Scios = {Scio} Scio = @cdigo_scio+nome + morada + {telefone} 2 Motorista = @nmero_motorista + nome + morada + (telefone) + nmero_contribuinte Novo_motorista = * sinnimo de Motorista * Que significa a expresso: 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 !!)

Soluo: A = [ [B | |C | |B + C ] ] Soluo: A = B C B + C 125

Anlise de sistemas

Modelo comportamental: modelo de dados


O modelo de dados define as caractersticas dos dados. O modelo de dados identifica e descreve: as entidades do sistema: uma entidade [substantivo] uma coleco ou conjunto de objectos da mesma espcie com interesse para a organizao, sobre a qual o sistema deve guardar informao; as associaes entre entidades: uma associao [verbo] uma ligao existente entre entidades que o sistema deve recordar. O modelo de dados representa-se por um diagrama de entidades e associaes (DEA).
Anlise de sistemas 126

Diagrama de entidades e associaes (DEA)


Um DEA uma tcnica de modelao que representa a viso esttica dos dados e das associaes entre eles. Um DEA identifica: as entidades do sistema; as associaes entre os dados; as caractersticas dos dados e das associaes. Estes elementos encontram-se espalhados pelos requisitos do problema, modelo de circulao da informao (DFDs), dicionrio de dados e especificao de processos.
Anlise de sistemas 127

DEA: estrutura

entidades Anlise de sistemas entidade associativa

associaes 128

DEA: componentes
Tipos de objectos ou entidades Cliente
Fornece

Livro

Associaes

Entidades associativas Marcao Associaes de supertipos e subtipos Romance


Anlise de sistemas

Livro

Didtico
129

1. Entidade (ou tipo de objecto): Uma entidade representa qualquer coisa (objecto, Uma entidade representa qualquer coisa (objecto, conceito, facto) do mundo real sobre o qual o sistema conceito, facto) do mundo real sobre o qual o sistema deve guardar e manter informao. deve guardar e manter informao. Cada entidade definida por: Atributo(s) identificador(es): elemento de dados que identifica univocamente cada instncia (membro individual) da entidade; Atributo(s) descritor(es): elemento de dados que define uma propriedade da entidade. Cada entidade identificada por: substantivo no singular substantivo no singular
As entidades definem-se no dicionrio de dados. Anlise de sistemas 130

DEA: entidades (1)

DEA: entidades (2)


Exemplo de entidade: Cliente Atributo identificador:
nmero_de_cliente

Atributos descritores:
nome, morada, telefone, data_nascimento, profisso, sexo

Exemplo de instncia:
nmero_de_cliente: 125 nome: Joo Freitas morada: Cascais telefone: 834657 data_nascimento: 01/09/54 profisso: carpinteiro sexo: m Anlise de sistemas 131

DEA: associaes (1)


2. Associao: Uma associao representa um conjunto de ligaes entre Uma associao representa um conjunto de ligaes entre entidades que necessitam ser guardadas pelo sistema. entidades que necessitam ser guardadas pelo sistema. Cada associao definida por: Verbo+ substantivo Verbo+ substantivo A associao caracterizada pela conjuno dos atributos identificadores das entidades envolvidas.

Anlise de sistemas

132

DEA: associaes (2)


Exemplos de associaes: Factura pertence a cliente Factura pertence Cliente

Fornecedor fornece produtos Fornecedor fornece Produto

Por defeito, todas as associaes so bidireccionais. Por defeito, todas as associaes so bidireccionais.
Anlise de sistemas 133

DEA: associaes (3)


Associaes mltiplas entre as mesmas entidades:

Mdico

trata

Doente

mdico de famlia

Anlise de sistemas

134

DEA: associaes (4)


Tipos de associao: Unria: relao entre uma entidade e ela prpia.
Pessoa pai

Binria: relao entre duas entidades.


Fornecedor fornece Produto

Complexa: relao entre trs ou mais entidades.


Cliente compra Fornecedor Anlise de sistemas 135 Produto

DEA: associaes (5)


Uma associao complexa pode reduzir-se a vrias associaes binrias. Exemplo:
Cliente compra Fornecedor Cliente faz Compra Produto associao complexa

para

Produto

fornecida Anlise de sistemas Fornecedor

associaes binrias 136

Instncia de uma associao:

DEA: associaes (6)

Representa uma ocorrncia de uma ligao (entre Representa uma ocorrncia de uma ligao (entre ocorrncias de entidades). ocorrncias de entidades). Exemplo: Instncias de Cliente C1 C2 C3 C4
Anlise de sistemas Cliente compra Filme

instncias de compra

Instncias de Filme F1 F2 F3

4 instncias de Cliente 3 instncias de Filme 3 instncias da associao compra

137

DEA: graus mximo e mnimo (1)


Cliente aluga Filme

Ser que um cliente pode ter alugado (ou pode alugar) vrios 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 so definidas pela As respostas a estas perguntas so definidas pela poltica da organizao. poltica da organizao. Devemos completar as associaes com a sua Devemos completar as associaes com a sua cardinalidade. cardinalidade.
Anlise de sistemas 138

DEA: graus mximo e mnimo (2)


A cardinalidade define os graus mximo e mnimo. O grau mximo de uma associao pode ser: 1 :: 1 1 1 1 :: N 1 N N :: M N M O grau mnimo de uma associao pode ser: 0 :: 0 0 0 0 :: 1 0 1
Anlise de sistemas

1 :: 1 1 1

139

DEA: graus mximo e mnimo (3)


Grau mximo: O grau mximo define o nmero mximo de vezes que O grau mximo define o nmero mximo de vezes que uma instncia da entidade pode ocorrer na associao. uma instncia da entidade pode ocorrer na associao. Exemplo:
Cliente 1 tem 1 Carta de conduo

Uma instncia de Cliente pode ocorrer no mximo uma vez

Um Cliente tem zero ou uma Carta de conduo Uma instncia de Carta de Conduo pode ocorrer no mximo uma vez Uma Carta de Conduo pertence a zero ou um Cliente Anlise de sistemas 140

DEA: graus mximo e mnimo (4)


Exemplo:
Aluguer N pertence 1 Cliente

Uma instncia de Aluguer pode ocorrer no mximo uma vez

Um Aluguer pertence a zero ou um Cliente

Uma instncia de Cliente pode ocorrer muitas vezes (N)

Um Cliente pode ter zero, um ou mais Alugueres Anlise de sistemas 141

DEA: graus mximo e mnimo (5)


Exemplo:
Fornecedor N fornece M Produto

Uma instncia de Fornecedor pode ocorrer no mximo N vezes Um Fornecedor fornece zero, um ou mais Produtos

Uma instncia de Produto pode ocorrer no mximo M vezes Um Produto pode ser fornecido por zero, um ou mais Fornecedores Anlise de sistemas 142

DEA: graus mximo e mnimo (6)


Grau mnimo: O grau mnimo define o nmero mnimo de vezes que O grau mnimo define o nmero mnimo de vezes que uma instncia pode ocorrer na associao. uma instncia pode ocorrer na associao. Exemplo:
Cliente tem Se zero diz-se opcional, se um diz-se obrigatria.

Carta de conduo

Carta de conduo opcional: um dado cliente pode no ter carta Cliente obrigatrio: uma carta de conduo pertence no mnimo a um cliente

Anlise de sistemas

143

DEA: graus mximo e mnimo (7)


Exemplo:
Mdico mdico famlia Doente

Mdico opcional Um doente pode no ter mdico de famlia

Doente opcional Um mdico pode no ser mdico de famlia de nenhum doente

Anlise de sistemas

144

DEA: graus mximo e mnimo (8)


Exemplo:
Fornecedor fornece Produto

Fornecedor obrigatrio Um fornecedor fornece no mnimo um produto

Produto obrigatrio Todo produto fornecido no mnimo por um fornecedor

Anlise de sistemas

145

DEA: graus mximo e mnimo (9)


Os graus mximo e mnimo de uma relao Os graus mximo e mnimo de uma relao complementam-se, e servem para especificar a poltica complementam-se, e servem para especificar a poltica da organizao no que se refere aos dados. da organizao no que se refere aos dados.
N Fornecedor M pode vir a fornecer fornece M

Produto N

Cliente Anlise de sistemas

tem 1

Carto 146

1. Entidade

DEA: entidade associativa

2. Associao

3. Entidade associativa: Uma associao com atributos prprios. Uma associao com atributos prprios.
Funcionrio M trabalha Projecto N

Contm informao sobre a percentagem de tempo que o empregado dedica a um dado projecto. M N

Funcionrio

Projecto

Anlise de sistemas

Trabalha

147

DEA: subtipo/supertipo
1. Entidade 2. Associao 3. Indicador de entidade associativa

4. 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. Os subtipos descrevem elementos de todos os subtipos. Os subtipos descrevem elementos de dados especficos a um subconjunto das instncias. dados especficos a um subconjunto das instncias.
Empregado Empregado = nome + morada + sexo Assalariado = salrio_mensal Assalariado Temporrio Temporrio = salrio_hora + valor_hora_extra 148

Anlise de sistemas

Construo do DEA (1)


1. Identificar as entidades.
Pistas: depsitos de dados, fluxos de dados; entidades externas; documentos, ecrs, utilizador.

2. Identificar associaes entre entidades.


Pistas: contedo dos depsitos de dados do DFD. Indicam associao

Exemplo:
Fornecedores = {Fornecedor + {cdigo_produto}} Fornecedor = @cdigo_fornecedor + nome + morada + nmero_contribuinte Produtos = {Produto + 1{cdigo_fornecedor}} Produto = @cdigo_produto + descrio + peso + cor N Fornecedor Anlise de sistemas fornece M Produto 149

Construo do DEA (2)


2. Identificar associaes entre entidades (continuao) Pistas: Na especificao dos processos.

Exemplo: process Test is ...


find fornecedores with cdigo_fornecedor in Fornecedores equals cdigo_ fornecedor in Produtos

... endproc
Indica associao Anlise de sistemas 150

Construo do DEA (3)


3. Identificar os atributos identificadores e os atributos descritores de cada entidade.
Pistas: Contedo dos depsitos de dados descrito no dicionrio de dados.

4. Completar os graus mximos e mnimos das associaes. 5. Completar o dicionrio de dados com as descries dos tipos de objectos e associaes que ainda no estejam l.
Mdico trata Doente

Mdico = @cdigo_mdico + nome + morada + salrio Doente = @cdigo_doente + BI + nome + sexo + (telefone) Trata = @doente_mdico doente_mdico = cdigo_doente + cdigo_mdico Anlise de sistemas 151

Construo do DEA (4)


Problemas que podem ocorrer na identificao de atributos descritores e identificadores: a) Nem todos os atributos se aplicam a todas as instncias de uma entidade. Exemplo 1:
Modelo = @nmero_modelo + morada + estado_civil + (nome_cnjuge) + cor_cabelo + cor_olhos + [ barba + tipo_corpo | medidas ] Homens Mulheres

Soluo: criar dois subtipos; cada um define as Soluo: criar dois subtipos; cada um define as caractersticas especficas de um subconjunto de instncias. caractersticas especficas de um subconjunto de instncias.
Anlise de sistemas 152

Construo do DEA (5)


Modelo = @nmero_modelo + nome + morada + estado_civil + (nome_cnjuge) + cor_cabelo + cor_olhos + [barba + tipo corpo | nmero_gravidez + medidas]

Modelo

Modelo

Modelo = @nmero_modelo + nome + morada + estado_civil + cor_cabelo + cor_olhos + (nome_cnjuge)

Modelo mulher Modelo_mulher = @nmero_modelo + medidas

Modelo homem Modelo_homem = @nmero_modelo + barba + tipo_corpo

Anlise de sistemas

153

Construo do DEA (6)


Existe outra situao bastante comum. Ora vejamos o exemplo 2. Exemplo 2:
Conta = @nmero_conta + saldo +[juro + perodo] Conta Conta= @nmero_conta + saldo

Conta Ordem

Conta a prazo Conta_a_prazo= @nmero_conta + juro + perodo

Conta__ordem = * mesmos atributos que Conta*

Anlise de sistemas

Ser mesmo assim?

154

Construo do DEA (7)


b) Entidades diferentes partilham atributos. Exemplo:
Empregado_temporrio = @nmero_empregado + nome + morada + cdigo_postal + telefone + salrio_hora + nmero_horas_extra Empregado_assalariado = @nmero_empregado + nome + morada + cdigo_postal + telefone + salrio_mensal + abono_famlia + nmero_filhos

Soluo: criar um supertipo que define as Soluo: criar um supertipo que define as caractersticas comuns aos dois tipos de objectos. caractersticas comuns aos dois tipos de objectos.
Empregado Empregado temporrio Empregado assalariado Anlise de sistemas Empregado temporrio Empregado assalariado Atributos no partilhados

155

Construo do DEA (8)


c) Alguns elementos de dados descrevem associaes entre entidades (1) ou caractersticas dessas associaes (2). Exemplo:
Produto = @cdigo_produto + descrio + peso + cor Fornecedor = @cdigo_fornecedor + nome + morada + nmero_contribuinte Pedido_encomenda = @nmero_encomenda + data_emisso + data_recepo Pedidos_encomendas = {Pedido_encomenda + (cdigo_fornecedor) + 1{cdigo_produto + quantidade_ pedida}} (1) (1) (2)

Soluo: (1) Criar as associaes correspondentes. (1) Criar as associaes correspondentes. (2) Transformar a associao correspondente numa entidade (2) Transformar a associao correspondente numa entidade associativa. associativa.
Anlise de sistemas 156

Construo do DEA (9)


Resultado:
Pedido encomenda N Produto

para

Linha encomenda

1 Fornecedor Linha_encomenda = @cdigo_linha_encomenda + quantidade_pedida cdigo_linha_encomenda = nmero_encomenda + cdigo_produto Anlise de sistemas 157

Construo do DEA (10)


d) Descobrir grupos repetitivos (conjunto de atributos cujos valores se repetem para um dado valor do identificador). caractersticas de filho Exemplo:
Empregado = @nmero_empregado + nome + morada + salrio + {nome_filho + sexo_filho + idade_filho}

A soluo criar uma nova entidade com as respectivas A soluo criar uma nova entidade com as respectivas associaes. associaes.
Empregado tem N Filho

Empregado = @nmero_empregado + nome + morada + salrio Filho = @Id_filho + sexo_filho + idade_filho Id_filho = nmero_empregado + nome_filho Anlise de sistemas 158

Exemplo: gerir a ocupao dum hotel (1)


Construa o modelo de dados de um sistema gesto de ocupao do hotel, descrito no dicionrio de dados e no DFD preliminar apresentados a seguir.
Cliente = @BI_cliente + nome_cliente + morada_cliente + (telefone_cliente) Clientes = {Cliente} Reserva = @Id_Reserva +dias_reservados + data_chegada Reservas = {Reserva + nmero_quarto + BI_cliente} Quarto = @nmero_quarto + nmero_camas + situao + categoria + preo + descrio Quartos = {Quarto} Factura_pendente = @nmero_factura + valor_total Facturas_pendentes = {Factura_pendente + nmero_quarto + BI_cliente} Pedido_despertar = @nmero_pedido + data + hora Pedidos_despertar = {Pedido_despertar + nmero_quarto} Anlise de sistemas 159

Exemplo: gerir a ocupao dum hotel (2)


1 pedido reserva resposta Cliente pedido cancelado pedido despertar 2 Cancelar reserva novo pedido despertar Pedidos despertar pedido removido Funcionrio lista pedidos cliente novo reserva cliente Clientes cliente removido reserva reserva removida nova reserva Registar reserva quarto Quartos

*
ocupado

pedido ocupao 3 Registar chegada resposta

Cliente

factura pedido desocupao 4 Registar sada Quartos desocupado factura removida Facturas pendentes preo

*
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 telefnica

Anlise de sistemas

Restaurante

160

Você também pode gostar