Entidade-Relacionamento Profa Miriam Sayo Ferramentas Estruturadas de Anlise Diagrama de Fluxo de Dados - Rede de processos inter-relacionados. Dicionrio de Dados e DER - Detalham a interface. Portugus Estruturado, rvore de Deciso, Tabela de Deciso - Descrio lgica e dos programas de ao. Resumo Anlise Estruturada. Utilizao das Ferramentas: DFD, Dicionrio de Dados, Diagramas E-R, Portugus Estruturado, rvore/Tabela de Deciso. Objetivo: construir um documento denominado de Especificao Estruturada. Elementos da Anlise Estruturada De maneira simplificada, o processo de Anlise Estruturada pode ser descrito como sendo a aplicao dos modelos abaixo: Fluxo de Dados Fornece a indicao de como os dados so transformados medida que se movem pelo sistema. Mostra as funes (e sua decomposio). Dicionrio de Dados Mostra a estrutura e composio dos dados. Diagramas Entidade-Relacionamento Mostra as relaes entre os dados. Transio de Estados Indica como o sistema se comporta em conseqncia de eventos externos. Identificao de objetos e operaes Anlise Gramatical Definir objetos destacando todos os substantivos na definio escrita para o escopo do sistema Produtores e consumidores de dados Locais onde os dados so armazenados Itens de dados compostos Definir operaes sublinhando todos os verbos ativos Processos relevantes para a aplicao Transformaes de dados Considere outros servios que podem ser requeridos pelos objetos e no esto apresentados explicitamente na definio Modelagem de Dados Examina os objetos de dados de maneira independente do seu processamento. Ateno especial ao domnio dos dados. Indica qual a relao entre objetos de dados. 2 Dicionrio de Dados Relao organizada de todos os elementos de dados pertinentes ao sistema, com definies precisas e rigorosas. Registra todos os fluxos de entrada e sada, depsitos de dados, fluxos e depsitos de dados temporrios. Dicionrio de Dados Gramtica quase-formal para descrio dos itens de dados. Notao til para descrever dados de controle e valores permitidos (p.ex: on e off). um repositrio que tambm pode conter informaes sobre quem-usa e como-usa. Pode ser representada manualmente, mas melhor se apoiada por ferramenta CASE. Descreve o significado dos fluxos de dados e dos depsitos de dados. Descreve a composio de dados agregados Ex.: endereo. Especifica os valores e unidades relevantes. Descreve os relacionamentos entre depsitos de dados (diagramas E/R). Dicionrio de Dados Elementos de dados simples Elementos de dados simples Elementos de dados simples Elementos de dados simples: informaes que no necessitam de decomposio. Elementos de dados compostos Elementos de dados compostos Elementos de dados compostos Elementos de dados compostos: composies de elementos de dados simples e/ou outras estruturas de dados. Definio do DD: feita de forma TOP-DOWN. Dicionrio de Dados Dicionrio de Dados (DD) Nome: o nome primrio do item de dados composto. Alias: outros nomes pelos quais o item conhecido. Usado em: lugares (processos) que utilizam o item de dado. Forma de uso: como o item utilizado (depsito de dados, entrada ou sada de dados, ... Descrio: descrio do item de dado composto com uso da notao apresentada no prximo slide. Formato: informaes especficas sobre tipos de dados e valores pr-definidos. DD: Notao = composto por + e () opcional {} iterao ou repetio [] selecionar uma das vrias alternativas | separa alternativas quando se usa [] ** comentrio @ identificador (chave) de um depsito de dados 3 Dicionrio de Dados - Exemplos Nome = ttulo + primeiro-nome + sobrenome Ttulo = [Sr. |Sra.|Prof. |Profa.|Dr.|Dra.] Primeiro-nome = 3{caracter-vlido} Sobrenome = 2{caracter-vlido} Caracter-vlido = [A-Z | a-z | | - | ] Endereo = * ainda no definido* indica espao em branco Dicionrio de dados (cont.) Dados elementares mais nenhuma decomposio necessria Ex.: peso, altura. Dados opcionais Endereo-cliente = (endereo-de-entrega) + (endereo-de-cobrana) Endereo-cliente = [endereo-de-entrega | endereo-de-cobrana | endereo-de-entrega + endereo-de-cobrana] Endereo-cliente = endereo-de-entrega + (endereo-de-cobrana) Dicionrio de dados (cont.) Iterao ou repetio Pedido = nome-cliente + endereo-de-entrega + {item} Pedido = nome-cliente + endereo-de-entrega + 1{item}10 a = 1{b} a = {b}10 a = 1{b}10 a = {b} Seleo Sexo = [m | f | o] Tipo-do-cliente = [governo | indstria | universidade | outro] Dicionrio de dados (cont.) Iterao ou repetio {} indica de 0 a n ocorrncias Coloca-se o caracter @ para o identificador (chave) do depsito de dados Exemplo: definio dos depsitos de dados Clientes e Funcionrios Clientes Clientes Clientes Clientes = { @CPF + Nome + Data-registro + Endereo } Funcion Funcion Funcion Funcion rios rios rios rios = { @Matrcula + Nome + Data-admisso + endereo + { Telefone + Descrio} + { RG-dependente + Nome + Data-nascimento }} Dicionrio de dados (cont.) Sinnimos (alias) Fregus = * sinnimo de cliente* Evite o uso excessivo. Avaliao do DD Todos os dados do DFD esto definidos? Todos os elementos do elemento composto foram definidos? H elementos repetidos? H elementos que no existem do DFD? Diagramas Entidade-Relacionamento (DER) Utilizados para: Focalizar relacionamentos entre depsitos de dados; Definir depsitos de dados; Interagir com o usurio. Livro Cliente Compra 4 DER Componentes de um DER Entidades; Relacionamentos; Atributos. Entidade Representada por uma caixa retangular; Representa uma coleo ou conjunto de objetos do mundo real; Nome deve ser um substantivo no singular, acompanhado ou no de qualificador; Cada entidade desempenha um papel no sistema e deve ser : Identificada unicamente; Ser descrita por um ou mais elementos de dados. DER Relacionamentos Representados por losangos; Nome pode ser verbo ou substantivo; Um relacionamento representa um conjunto de conexes entre entidades; Pode haver mais de um relacionamento entre dois objetos. Mdico Paciente Cobra Trata DER Os relacionamentos podem ser unrios, binrios, ternrios... Pessoa casamento DER Cardinalidade: o nmero de entidades de cada tipo que participa no relacionamento. Pode ser: 1:1 ; 1:N ; N:1 ; M:N Outras possibilidades: 3..4: 0..N ; 3, 5: 0..1 Cliente Compra Item 1 N Professor Ministra Disciplina M N Tipo entidade: Atributo identificador: nmero_de_matrcula Atributos descritores: :: : nome, endereo, telefone, data_nascimento, curso, sexo Instncia de entidade: nmero_de_matricula: 11250 nome: Joo da Silva endereo: Av. Ipiranga, 6681 telefone: 8887777 data_nascimento: 01/09/80 curso: Eng. De Computao sexo: m Aluno DER Instncia de uma associao uma ocorrncia de uma ligao entre entidades DER 4 instncias de Cliente 3 instncias de Filme 3 instncias da associao compra Instncias Instncias Instncias de Cliente de compra de Filme C1 F1 C2 F2 C3 F3 C4 Cliente Filme compra 5 A cardinalidade define os graus mximo e mnimo. O grau mximo de uma associao pode ser: DER O grau mnimo de uma associao pode ser: 1 : 1 1 : 1 1 : 1 1 : 1 1 : N 1 : N 1 : N 1 : N N : M N : M N : M N : M 1 : 1 1 : 1 1 : 1 1 : 1 1 : 1 1 : 1 1 : 1 1 : 1 1 : N 1 : N 1 : N 1 : N 1 : N 1 : N 1 : N 1 : N N : M N : M N : M N : M N : M N : M N : M N : M 0 : 0 0 : 0 0 : 0 0 : 0 0 : 1 0 : 1 0 : 1 0 : 1 1 : 1 1 : 1 1 : 1 1 : 1 0 : 0 0 : 0 0 : 0 0 : 0 0 : 0 0 : 0 0 : 0 0 : 0 0 : 1 0 : 1 0 : 1 0 : 1 0 : 1 0 : 1 0 : 1 0 : 1 1 : 1 1 : 1 1 : 1 1 : 1 1 : 1 1 : 1 1 : 1 1 : 1 1 1 Grau mximo: DER O grau mximo define o nmero mximo de vezes que uma instncia da entidade pode ocorrer na associao. O grau mximo define o nmero mximo de vezes que uma instncia da entidade pode ocorrer na associao. Exemplo: Uma instncia de Cliente pode ocorrer no mximo uma vez Um Cliente tem zero ou uma Carteira de habilitao Uma instncia de Carteira de Habilitao pode ocorrer no mximo uma vez Cliente tem Carteira de habilitao Uma Carteira de Habilitao pertence a zero ou um Cliente Exemplo 1: DER Um Aluguel pertence a no mximo um Cliente Um Cliente pode ter vrios Aluguis 1 N Aluguel pertence Cliente Um Fornecedor fornece vrios Produtos Um Produto pode ser fornecido por vrios Fornecedores M N Fornecedor fornece Produto Exemplo 2: O grau m grau m grau m grau m nimo nimo nimo nimo define o nmero mnimo de vezes que uma instncia pode ocorrer na associao. Se zero diz-se opcional, se um diz-se obrigatria. DER Carteira de Habilitao opcional: um dado cliente pode no ter carteira. Cliente obrigatrio: uma carteira de Habilitao pertence no mnimo a um cliente. Exemplo: Exemplo: Exemplo: Exemplo: Cliente tem Carteira de Habilitao Mdico opcional Um doente pode no ter mdico de famlia Doente opcional Um mdico pode no ser mdico de famlia de nenhum doente DER Mdico mdico famlia Doente Exemplo: Exemplo: Exemplo: Exemplo: Fornecedor obrigatrio Um fornecedor fornece no mnimo um produto Produto obrigatrio Todo produto fornecido no mnimo por um fornecedor DER Fornecedor fornece Produto Exemplo: Exemplo: Exemplo: Exemplo: 6 Os graus mximo e mnimo de uma relao complementam-se e servem para especificar a poltica da organizao no que se refere aos dados. Os graus mximo e mnimo de uma relao complementam-se e servem para especificar a poltica da organizao no que se refere aos dados. DER 1 1 M N Fornecedor Produto fornece Cliente Carto tem Nota Nota Nota Nota o alternativa: ( o alternativa: ( o alternativa: ( o alternativa: (min min min min, , , , max max max max) )) ) (1..N) Fornecedor Produto fornece Cliente Carto tem (1..M) (1..1) (0..1) Uma associao possui atributos prprios, que so informaes especficas que no podem ser derivadas automaticamente pelo sistema. DER Contm informao sobre a porcentagem de tempo que o empregado dedica a um dado projeto. M N (1..M) Funcionrio Projeto trabalha Funcionrio Projeto trabalha (1..N) DER Exemplos de associaes com atributos (0..M) Arquivo Usurio Acessvel_por (0..N) tipo da permisso de acesso Participa (1..M) Atleta Competio (0..N) colocao performance nome inscrio categoria esporte 1. 1. 1. 1. Identifica Identifica Identifica Identifica o das entidades o das entidades o das entidades o das entidades dep dep dep dep sitos de dados; sitos de dados; sitos de dados; sitos de dados; dep dep dep dep sitos de dados associados a entidades externas; sitos de dados associados a entidades externas; sitos de dados associados a entidades externas; sitos de dados associados a entidades externas; documentos, formul documentos, formul documentos, formul documentos, formul rios, utilizador. rios, utilizador. rios, utilizador. rios, utilizador. Construo do DER 2. Identifica 2. Identifica 2. Identifica 2. Identifica o das associa o das associa o das associa o das associa es: es: es: es: 2.1 Verificar a descrio dos depsitos de dados no DD 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 Produto fornece M Construo do DER 2.2 Verificar a especificao dos processos. Exemplo: processo processo processo processo fornecer; ... ... ... ... Se Se Se Se cdigo_fornecedor in in in in Fornecedores = == = cdigo_ fornecedor in in in in Produtos ento ento ento ento ... ... ... ... fim_proc fim_proc fim_proc fim_proc Construo do DER 7 3. Definir os graus m Definir os graus m Definir os graus m Definir os graus m ximos e m ximos e m ximos e m ximos e m nimos das associa nimos das associa nimos das associa nimos das associa es es es es 4. Especificar os atributos identificadores e os atributos Especificar os atributos identificadores e os atributos Especificar os atributos identificadores e os atributos Especificar os atributos identificadores e os atributos descritores de cada entidade descritores de cada entidade descritores de cada entidade descritores de cada entidade Verificar a descrio dos depsitos de dados no DD. Atributos identificadores so registrados como crculo preenchido. Demais atributos so registrados como crculo no-preenchido . Construo do DER 5. Completar o dicion Completar o dicion Completar o dicion Completar o dicion rio de dados com as descri rio de dados com as descri rio de dados com as descri rio de dados com as descri es das es das es das es das entidades e associa entidades e associa entidades e associa entidades e associa es que ainda no estejam es que ainda no estejam es que ainda no estejam es que ainda no estejam presentes presentes presentes presentes Mdico trata Paciente Mdico = @cdigo_mdico + nome + endereo + salrio Paciente = @cdigo_paciente + BI + nome + sexo + (telefone) Trata = @paciente _mdico paciente_mdico = cdigo_ paciente + cdigo_mdico Construo do DER Referncias Anlise Estruturada Moderna lvaro Rocha notas de aula. Anlise Estruturada Joo Arajo notas de aula. Anlise e Projeto de Sistemas William S. Davis Editora LTC.