·

Cursos Gerais ·

Estrutura de Dados

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Fundamentos da Programação WEB Modelo conceitual Processo de projeto Modelagem Restrições Diagrama ER Aspectos de projeto Conjuntos de entidades fracos Recursos de ER estendidos Exemplos Fundamentos da Programação WEB Modelagem Um banco de dados pode ser modelado como Uma coleção de entidades Relacionamento entre entidades Uma entidade é um objeto que existe e é distinguível de outros objetos Exemplo pessoa empresa evento e planta específicos Entidades possuem atributos Exemplo pessoas têm nomes e endereços Um conjunto de entidades é um grupo de entidades do mesmo tipo que compartilham as mesmas propriedades Exemplo conjunto de todas as pessoas empresas árvores feriados Fundamentos da Programação WEB Conjuntos de entidades cliente Atributos Uma entidade é representada por um conjunto de atributos que são propriedades descritivas processadas por todos os membros de um conjunto de entidades Exemplo cliente idcliente nomecliente ruacliente cidadecliente empréstimo númeroempréstimo conta Domínio o conjunto de valores permitidos para cada atributo Tipos de atributo Atributos simples e compostos Atributos de valor único e de valores múltiplos Exemplo atributo de valores múltiplos númerostelefone Atributos derivados Podem ser calculados a partir de outros atributos Exemplo idade dado datanascimento Fundamentos da Programação WEB Atributos compostos Chaves Uma superchave de um conjunto de entidades é um conjunto de um ou mais atributos cujos valores determinam unicamente cada entidade Uma chave candidata de um conjunto de entidades é uma superchave mínima Idcliente é uma chave candidata de cliente númeroconta é uma chave candidata de conta Embora possam existir várias chaves candidatas uma das chaves candidatas é selecionada para ser a chave primária Fundamentos da Programação WEB ER Representação de entidade com atributos compostos derivados e de valores múltiplos Conjuntos de relacionamento Um relacionamento é uma associação entre várias entidades Exemplo Hayes depósito A102 entidade cliente conjunto de relacionamento entidade conta Um conjunto de relacionamento é uma relação matemática entre n 2 entidades cada uma tomada de conjuntos de entidades e1 e2 en e1 E1 e2 E2 en En onde e1 e2 en é um relacionamento Exemplo Hayes A102 deposito Fundamentos da Programação WEB Conjuntos de relacionamento cont Um atributo também pode ser uma propriedade de um conjunto de relacionamento Por exemplo o relacionamento depósito entre os conjuntos de entidades cliente e conta pode ter o atributo dataacesso indicando a data em que ocorreu o depósito Fundamentos da Programação WEB Grau de um conjunto de relacionamento Referese ao número de conjuntos de entidades que participam em um conjunto de relacionamento Os conjuntos de relacionamento que envolvem dois conjuntos de entidades são binários ou de grau 2 Geralmente a maioria dos conjuntos de relacionamento em um sistema de banco de dados são binários Fundamentos da Programação WEB Restrições de cardinalidade de mapeamento Expressam o número de entidades ao qual outra entidade pode ser associada através de um conjunto de relacionamento Normalmente são úteis em descrever conjuntos de relacionamento binários Para um conjunto de relacionamento binário a cardinalidade de mapeamento precisa ser de um dos seguintes tipos Umparaum Umparamuitos Muitosparaum Muitosparamuitos Fundamentos da Programação WEB Cardinalidades de mapeamento um para um um para muitos Fundamentos da Programação WEB Cardinalidades de mapeamento muitos para um muitos para muitos ER Representação de relacionamentos Retângulos representam conjuntos de entidades Losangos representam conjuntos de relacionamento Linhas vinculam atributos a conjuntos de entidades e estes a conjuntos de relacionamento Fundamentos da Programação WEB Conjuntos de relacionamento com atributos Restrições de cardinalidade Expressamos as restrições de cardinalidade desenhando uma linha direcionada significando um ou uma linha não direcionada significando muitos entre o conjunto de relacionamento e o conjunto de entidades Relacionamento umparaum Um cliente está associado no máximo a um empréstimo através do relacionamento tomador Um empréstimo está associado no máximo a um cliente através de tomador Fundamentos da Programação WEB Relacionamento umparamuitos No relacionamento umparamuitos um empréstimo está associado no máximo a um cliente através de tomador um cliente está associado a vários inclusive 0 empréstimos através de tomador Fundamentos da Programação WEB Relacionamento muitosparaum Em um relacionamento muitosparaum um empréstimo está associado a vários inclusive 0 clientes através de tomador um cliente está associado no máximo a um empréstimo através de tomador Fundamentos da Programação WEB Relacionamento um para um Um cliente está associado a no máximo 1 empréstimo através de tomador Um empréstimo está associado a no máximo 1 cliente através de tomador Fundamentos da Programação WEB Participação de um conjunto de entidades em um conjunto de relacionamento Participação total indicada por uma linha dupla cada entidade no conjunto de entidades participa no mínimo em um relacionamento no conjunto de relacionamento Por exemplo a participação de empréstimo em tomador é total Cada empréstimo precisa ter um cliente associado através de tomador Participação parcial algumas entidades podem não participar em relacionamento algum no conjunto de relacionamento Exemplo a participação de cliente em tomador é parcial Fundamentos da Programação WEB Funções Conjuntos de entidades de um relacionamento não precisam ser distintos Os rótulos gerente e funcionário são chamados funções eles especificam como as entidades de funcionário interagem através do conjunto de relacionamento trabalhapara As funções são indicadas nos diagramas ER rotulando as linhas que conectam os losangos aos retângulos Os rótulos de função são opcionais e são usados para esclarecer a semântica do relacionamento Fundamentos da Programação WEB Notação alternativa para limites de cardinalidade Os limites de cardinalidade também podem expressar restrições de participação Devese ler Um cliente toma de 0n empréstimo Um emprestimo está vinculado a um e somente um cliente Fundamentos da Programação WEB Relacionamento ternário Os conjuntos de relacionamento podem envolver mais de dois conjuntos de entidades Exemplo Suponha que os funcionários de um banco possam ter atividades responsabilidades em várias agências com diferentes cargos em diferentes agências Então existe um conjunto de relacionamento ternário entre os conjuntos de entidades funcionário cargo e agência Os relacionamentos entre mais de dois conjuntos de entidades são raros A maioria dos relacionamentos é binária Fundamentos da Programação WEB Diagrama ER com um relacionamento ternário Fundamentos da Programação WEB Aspectos de projeto Uso de conjuntos de entidades versus atributos A escolha depende principalmente da estrutura da empresa sendo modelada e da semântica associada ao atributo em questão Uso de conjuntos de entidades versus conjuntos de relacionamento Uma possível regra é designar um conjunto de relacionamento para descrever uma ação que ocorre entre entidades Posicionamento dos atributos de relacionamento Este atributo só existe se as entidades se relacionarem Ou ele pode existir apenas no contexto de uma das entidades Fundamentos da Programação WEB Exercícios Modele o campeonato brasileiro Modele uma locadora Fundamentos da Programação WEB Conjuntos de entidades fracos Um conjunto de entidades que não possui uma chave primária é chamado de conjunto de entidades fraco A existência de um conjunto de entidades fraco depende da existência de um conjunto de entidades identificador Ele precisa se relacionar com o conjunto de entidades identificador através de um conjunto de relacionamento umparamuitos total do identificador para o conjunto de entidades fraco Relacionamento identificador descrito usando um losango duplo O discriminador ou chave parcial de um conjunto de entidades fraco é o conjunto de atributos que distingue entre todas as entidades de um conjunto de entidades fraco A chave primária de um conjunto de entidades fraco é formada pela chave primária do conjunto de entidades forte em que o conjunto de entidades fraco é dependente de existência mais o discriminador do conjunto de entidades fraco Fundamentos da Programação WEB Conjuntos de entidades fracos cont Representamos um conjunto de entidades fraco por retângulos duplos Sublinhamos o discriminador de um conjunto de entidades fraco com uma linha tracejada númeropagamento discriminador do conjunto de entidades pagamento Chave primária para pagamento númeroempréstimo númeropagamento Fundamentos da Programação WEB Conjuntos de entidades fracos cont Nota A chave primária do conjunto de entidades forte não é explicitamente armazenada com o conjunto de entidades fraco já que ela está implícita no relacionamento identificador Se númeroempréstimo fosse explicitamente armazenado pagamento poderia se tornar uma entidade forte mas então o relacionamento entre pagamento e empréstimo seria duplicado por um relacionamento implícito definido pelo atributo númeroempréstimo comum a pagamento e empréstimo Fundamentos da Programação WEB Mais exemplos de conjunto de entidades fraco Em uma universidade um curso é uma entidade forte e uma ofertacurso pode ser modelada como uma entidade fraca O discriminador de ofertacurso seria semestre incluindo ano e númeroseção se houver mais de uma seção Se modelarmos ofertacurso como uma entidade forte modelaríamos númerocurso como um atributo Então o relacionamento com curso estaria implícito no atributo númerocurso Fundamentos da Programação WEB Recursos de ER estendidos Especialização Processo de projeto de cima para baixo Designamos subagrupamentos dentro de um conjunto de entidades que são distintivos de outras entidades no conjunto Esses subagrupamentos se tornam conjuntos de entidades de nível inferior que possuem atributos ou participam em relacionamentos que não se aplicam ao conjunto de entidades de nível superior Representada por um componente triângulo rotulado ISA por exemplo cliente é uma pessoa Herança de atributo Um conjunto de entidades de nível inferior herda todos os atributos e a participação de relacionamento do conjunto de entidades de nível superior ao qual está vinculado Fundamentos da Programação WEB Exemplo de especialização Fundamentos da Programação WEB Recursos de ER estendidos Generalização Um processo de projeto de baixo para cima Combine vários conjuntos de entidades que compartilham os mesmos recursos em um conjunto de entidades de nível superior A especialização e a generalização são simples inversões uma da outra são representadas em um diagrama ER da mesma maneira Os termos especialização e generalização são usados indistintamente Fundamentos da Programação WEB Especialização e generalização cont Pode ter múltiplas especializações de um conjunto de entidades com base em diferentes recursos P o r e x e m p l o f u n c i o n á r i o p e r m a n e n t e v e r s u s funcionáriotemporário além de gerente versus escriturário versus caixa Cada funcionário específico seria um membro de funcionáriopermanente ou funcionáriotemporário e também um membro de gerente escriturário ou caixa O relacionamento ISA também é chamado de relacionamento superclassesubclasse Fundamentos da Programação WEB Restrições de projeto em uma especializaçãogeneralização A restrição sobre que entidades podem ser membros de um determinado conjunto de entidades de nível inferior Definido por condição Exemplo Todos os clientes com mais de 65 anos são membros do conjunto de entidades cidadãosenior cidadãosenior ISA pessoa Definido pelo usuário Restringe sobre se ou não as entidades podem pertencer a mais de um conjunto de entidades de nível inferior dentro de uma única generalização Disjuntos uma entidade pode pertencer a não mais que um conjunto de entidades de nível inferior Indicados no diagrama ER pela inscrição de disjunto ao lado do triângulo ISA Superpostos um conjunto de entidades pode pertencer a mais de um conjunto de entidades de nível inferior Fundamentos da Programação WEB Restrições de projeto em uma especializaçãogeneralização cont Restrição de integralidade Especifica se ou não uma entidade no conjunto de entidades de nível superior precisa pertencer a pelo menos um dos conjuntos de entidades de nível inferior dentro de uma generalização total Uma entidade precisa pertencer a um conjunto de entidades de nível inferior parcial Uma entidade não precisa pertencer a um conjunto de entidades de nível inferior Fundamentos da Programação WEB Agregação Considere o relacionamento ternário trabalhaem que vimos anteriormente Suponha que queremos registrar gerentes para tarefas realizadas por um funcionário em uma agência Fundamentos da Programação WEB Agregação cont Os conjuntos de relacionamento trabalhaem e gerencia representam informações superpostas Cada relacionamento gerencia corresponde a um relacionamento trabalhaem Entretanto alguns relacionamentos trabalhaem podem não corresponder a nenhum relacionamentos gerencia Portanto não podemos descartar o relacionamento trabalhaem Elimine essa redundância através da agregação Trate relacionamento como uma entidade abstrata Permite relacionamentos entre relacionamentos Abstração de relacionamento em nova entidade Sem introduzir redundância o diagrama a seguir representa Um funcionário trabalha em um cargo específico em uma agência específica Um funcionário agência ou combinação de cargos pode ter um gerente associado Fundamentos da Programação WEB Diagrama ER com agregação Fundamentos da Programação WEB Decisões de projeto ER Usar um atributo ou um conjunto de entidades para representar um objeto Se um conceito do mundo real é expresso mais precisamente por um conjunto de entidades ou por um conjunto de relacionamento Usar um relacionamento ternário ou um par de relacionamentos binários Usar um conjunto de entidades forte ou fraco O uso de especializaçãogeneralização contribui para a modularidade do projeto O uso de agregação pode tratar o conjunto de entidades agregado como uma única unidade sem preocupação com os detalhes de sua estrutura interna Fundamentos da Programação WEB Resumo dos símbolos usados na notação ER Fundamentos da Programação WEB Resumo dos símbolos cont Esquemas correspondentes à agregação Para representar agregação crie um esquema contendo Chave primária do relacionamento agregado A chave primária do conjunto de entidades associado Quaisquer atributos descritivos Fundamentos da Programação WEB Esquemas correspondentes à agregação cont Por exemplo para representar a agência gerencia entre o relacionamento trabalhaem e o conjunto de entidades gerente crie um esquema gerencia idfuncionário nomeagência título nomegerente O esquema trabalhaem é redundante desde que estejamos dispostos a armazenar valores nulos para o atributo nomegerente na relação no esquema gerencia Fundamentos da Programação WEB Exercício 1 Analise este diagrama e explique o modelo Fundamentos da Programação WEB Exercício 2 Analise este diagrama e explicite as cardinalidades