Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Sistemas de Informação eBases de Dados
2019/2020
Modelo Entidade-Associação (E-A)
SIBD
SIBD
Sumário
� Sistemas de Informação
� Modelo Entidade-Associação (E-A)
� Entidades e Associações
� Exemplo Prático (banco)
� Requisitos não formalizáveis em E-A
SIBD
Sistemas de Informação Sistemas de Informação
= código + informação
= código + [dados + estrutura].
SIBD
Sistemas de Informação Um sistema de Informação é diferente de um programa ou de um algoritmo..
Um sistema de informação é um sistema que gere informação, e uma base de dados é onde se estrutura e armazena a informação.
SIBD
Sistemas de Informação Sistemas de Informação
= código + informação
= código + [dados + estrutura].
Base de Dados
Programa Information Schema
SIBD
Sistemas de Informação Modelos de Informação
- Sistema de Ficheiros (não tem modelo)
- Relacional (Lógico)
- Entidade Associação (Conceptual)
- Orientado a Objetos (Lógico)
SIBD
Sistemas de Informação
No fim de vida de um sistema de Informação o código acaba por ir fora, mas os dados são sempre extraídos e recuperados
Modelação E-A
SIBD
Tabelas de um sistema bancário
Como saber que são estas as tabelas (e não outras)?
SIBD
Tabelas de um sistema bancário
Especificação de Requisitos
•requisito 1:
•requisito 2:
• …
•regra de integridade 1:
•regra de integridade 2:
•...
SIBD
Concepção de uma Base de Dados
Especificação de Requisitos
•requisito 1:
•requisito 2:
• …
•regra de integridade 1:
•regra de integridade 2:
•...
Modelo Conceptual do Domínio(Modelo EA)
EsquemaRelacional
SIBD
It pays to clearly define what the problem is!
Fifty-five minutes defining the problem and only five minutes finding the solution.
A. Einstein
SIBD
Database Design
Good database design eliminates thousands of lines of code
https://rodgersnotes.wordpress.com/2010/09/14/database-design-mistakes-to-avoid/
SIBD
Objectivos da modelação E-AA modelação E-A visa formalizar (apenas) a
estrutura de informação do domínio (do problema) focando-se no levantamento de:
‣ Entidades do domínio
‣ De Associações entre entidades
‣ Das Restrições que as possíveis soluções válidas para o problema têm de respeitar
SIBD
Vantagens do Modelo E-A1. Permite efetuar a comunicação entre os vários
interessados (tal como a planta de uma casa entre o utilizador final, arquiteto e construtor)
2. É um linguagem gráfica simples com poucos símbolos
3. Captura a maior parte das situações graficamente; as restantes podem ser capturadas por escrito
4. É um modelo do problema e não da solução
5. Um modelo é uma rede de conceitos inter-relacionado, portanto não pode ter ilhas isoladas
SIBD
Objectivos do diagrama E-A‣ A descrição do domínio não deve ser poluída (com
detalhes da solução) para:
1. Não ocultar/esconder incoerências/defeitos do modelo
2. Evitar assumir que quem modela sabe qual é a melhor solução
‣ A descrição deve ser declarativa e independente (da solução) para:
4. Não restringir as possibilidades de implementação (evitando que se encontrem boas soluções).
5. Simplificar o modelo
SIBD
E-A vs Diagrama de Tabelas
Semelhantes, mas:
‣ As ferramentas de modelação de bases de dados permitem criar diagramas de tabelas e de relações entre tabelas
‣ Diagramas de tabelas são modelos da solução e não modelos do problemas
SIBD
Entidades e Associações
SIBD
Diferenças para a notação do livro
NOTA
A notação ensinada nas aulas tem algumas diferenças relativamente à notação do livro adoptado. Pode utilizar-se, de forma coerente, tanto notação do livro como a ensinada nas aulas.
SIBD
Entidades
Bases de Dados 2017/18
Entidade
Definição
Uma Entidade ou (Tipo de Entidade) representa um conceito para o qual existe um conjunto de objetos (instâncias, exemplares ou ‘indivíduos’) distintos no mundo real
SIBD
Entidades
‣Dado um conjunto de atributos A1… An onde- Cada atributo Ai tem associado um domínio de
valores possíveis D(Ai)
‣Uma entidade E: é um conjunto de objetos com a mesma estrutura (informação):- E = {(v1,..., vn) | v1 ∈ D(A1), ..., vn ∈ D(An)}- Cada elemento e ∈ E é uma instância de E
SIBD
E-A Graphic Language
Entity Name
An entity type of the domain representing a concept for which multiple distinct objects may exist.
An entity type must have a set of attributes that distinguish between the different entity instances (KEYs)
For example, 'Employee' or 'Invoice' are entities in the sense that the system may keep information regarding, respectively, multiple 'employees', and multiple 'invoices'.
‣ Entity
SIBD
Entidades(exemplos)
NOTA: O conceito de entidade só está completo com a definição da forma de identificar cada instancia (chave)
SIBD
E-A Graphic Language
Entity
Attributes are characteristics of entities that represent the information (data values) to be captured for each instance of an entity set
Each instance has one value for each attribute.
‣ Attributesattr1
attr2
SIBD
Entidades com atributos (Exemplo)
SIBD
Entidades e Atributos…Visão TOP DOWN
‣ O conceito é fundamentalmente depreendido pelo nome da entidade
‣ A escolha dos atributos reflecte o nível de detalhe com o qual queremosrepresentar informação acerca de entidades.
Visão BOTTOM UP
‣ O conceito é depreendido com base nas propriedades (atributos) e das associações da entidade.
‣ O nome da entidade não tem semântica. É apenas um nome
EM AMBOS OS CASOS O CONCEITO NÂO FICA DEFINIDO ENQUANTO NÂO SE SOUBER RESPECTIVA FORMA DE IDENTIFICAÇÂO (CHAVE)
SIBD
Restrições de Chave(Identificação)
SIBD
Chaves de EntidadesDefinição
‣ Uma chave é o conjunto mínimo de atributos cujos valores identificam univocamente cada entidade do conjunto
‣ A chave primária está sublinhada
‣ Na prática os valores dos atributos chave são únicos (i.e. nunca podem repetir-se)
SIBD
Chaves compostas
‣ nbi é chave? ‣ nbi + arq_id é chave!
Chave composta
SIBD
Chaves de Candidatas‣ Podem existir vários atributos (ou sub-conjuntos de
atributos) que definem chaves, ou seja:
- Podem existir várias chaves candidatas
- Uma é escolhida para ser chave primária
‣ Se existirem várias chaves candidatas, apenas a chaveprimária é representada graficamente no modelo, as outrassão descritas como uma RI textual.
SIBD
Heurísticas para a Chave Primária
‣ A chave mais curta (mas não necessariamente)
‣ A chave mais reconhecida pelos utilizadores do domínio
‣ A chave que não depende de nenhum outro atributo
- 'telefone' depende de 'morada' mas 'morada' nãodepende de ‘telefone'
SIBD
Heurísticas E-A
1. Entidade com apenas um atributo: Podem não ser umaentidade (eventualmente o atributo é de outraentidade)
2. Entidade sem chave: Pode não ser uma entidade mas sim uma associação
SIBD
Associações
Bases de Dados 2017/18
Associação
Definição
Uma Associação entre duas ou mais entidades representa os possíveis relacionamentos entre as instâncias das entidades
respetivas
‣ Relaciona instâncias de entidades:- Associação Binária: duas entidades
• Não necessariamente distintas- Ternárias: três entidades, …‣ Pode ter atributos
SIBD
Associação
‣ Dadas entidades E1… En e atributos A1…Am
‣ Uma associação A é o conjunto de elementos:- A = {(e1, ..., en, v1, …, vm) | e1 ∈ E1, ..., en ∈ En /\
v1 ∈ D(A1), ..., vm ∈ D(Am)}
‣ Cada elemento a ∈ A é uma instância da associação A
SIBD
E-A Graphic Language
A binary association between two entities capturing the relationship between them in the sense that instance of the distinct entities may can be related to one another through the association.
Note: Association = Relationship
‣ Binary Association
association name
SIBD
Comutatividade das Associações
‣ A informação representada por:
‣ É a mesma representada por:
SIBD
Nome das Associações‣ Minúsculas por convenção
‣ Tipicamente um verbo
‣ Os nomes das associações devem ser sempre únicosporque:
- O modelo é uma ferramenta da comunicação (e se assim não fosse, no limite todas as associações teriam o mesmo nome resultando em perda de informação do domínio)
‣ Sempre que a direção de leitura não seja óbvia deve ser indicada a direção de leitura com ‘>’ ou '<'
SIBD
E-A Graphic Language
An association with attribute captures additional information that characterises the relationship being established.
‣ Association with attribute
Association Name
attr
SIBD
Associações com atributos (exemplo)
SIBD
Instâncias (exemplares) de uma associação
Associating an Employee to multiple departments is the same creating multiple associations of the ‘works_in' association.
SIBD
E-A Graphic Language
A ternary association captures a relationship between three entities meaning that individuals of each of the three entities may be related through the specified association named 'assoc name'.
‣ Ternary Association
Association Name
SIBD
Associação ternária (exemplo)
SIBD
Entidades e Associações
A única forma de relacionar entidades é através de associações.
Não é colocando atributos com nomes de entidades…..
A B
A B
BNeste caso, estamos a afirmar que a entidade A nada tem a ver com a entidade B, apesar de
ter um atributo com o mesmo nome
SIBD
Exercise: Modelling the Bank
Domain
SIBD
Domain Requirements
‣ Store the information regarding accounts with attributes acctnum and balance, the first being its key.
‣ Every account is owned by a depositor with attributes id card number, name and address, the first being its key;
‣ Accounts are registered in branches. A branch is characterisedby a branch name and a city, the first being its key;
‣ It is necessary to know which depositors have an account in the city where they live, the first being its key;
SIBD
Bank Solution
SIBD
Requisitos não formalizáveis num modelo E-A
1. Requisitos que não sejam requisitos de informação não podem ser formalizados em E-A (desejos do utilizador, considerações sobre o aspecto gráfico do sistema)
2. Requisitos para os quais não seja possível determinar quais os atributos, não são formalizáveis em E-A
3. Requisitos que tenham que ver com o comportamento/funcionalidade dos sistema, tipicamente não são formalizáveis
SIBD
Entidades e AssociaçõesNa prática tanto entidades como associações são:
‣ conjuntos de instâncias
‣ Podem ter propriedades
A diferença real está na forma de identificação.
‣ Os atributos que identificam as instancias de uma entidades são atributos das próprias entidades
‣ Os atributos que identificam as instancias de uma associação são atributos das entidades associadas!
Esta é a verdadeira diferença entre entidades e associações
Sistemas de Informação eBases de Dados
2019/2020
Modelo Entidade-Associação (cont.)
SIBD
SIBD
Sumário
� Modelo Entidade-Associação (Continuação)
� Restrições de Chave
� Restrições de Cardinalidade
� Restrições de Participação
� Generalização de restrições
SIBD
Restrições de Multiplicidade
SIBD
Exemplo(sem restrições)
‣ Um departamento pode ser gerido por quantos empregados?
‣ Um empregado pode gerir quantos departamentos?
R: Nenhum, um, ou muitos
R: Nenhum, um, ou muitos
SIBD
Exemplo(com uma restrição de
multiplicidade)
‣ Um departamento pode ser gerido por quantos empregados?
‣ Um empregado pode gerir quantos departamentos?
R: No máximo um
R: Nenhum, um, ou muitos
SIBD
Exemplo(com duas restrição de
multiplicidade)
‣ Um departamento pode ser gerido por quantos empregados?
‣ Um empregado pode gerir quantos departamentos?
R: No máximo um
R: No máximo um
SIBD
E-A Graphic Language
Each instance of either entity may be related many (as well as to none, one, or all) instances of the other entity.
‣ Many-to-many (no constraint)
‣ One-to-manyEach instance of the left entity is associated to potentiality many instances of the entity on the right. Each instance on the right can be associated with at most one instance from the left entity.
‣ One-to-one Each instance of the left entity must be associated with at most one instance of right entity. Moreover, each instance of the right entity can be related with at most one instance of the left entity.
SIBD
Cardinalidade
muitos-para-muitos 1-para-11-para-muitos muitos-para-1
‣ Menos restrito ‣ Mais restrito
SIBD
Restrições de Participação
SIBD
Exemplo(sem restrições)
‣ É possível existir um Departamento sem gestor?
‣ É possível existir um Empregado que não seja gestor?
R: Sim
R: Sim
SIBD
Exemplo(com uma restrição de
participação)
‣ É possível existir um Departamento sem gestor?
‣ É possível existir um Empregado que não seja gestor?
R: Não
R: Sim
SIBD
Exemplo(com duas restrições de
participação)
‣ É possível existir um Departamento sem gestor?
‣ É possível existir um Empregado que não seja gestor?
R: Não
R: Não (todos os empregados têm obrigatoriamente de ser gestores)
SIBD
E-A Graphic Language
Instances of either entity type can exist in the system without necessarily participating in the association.
‣ Optional (or partial) participation (no constraint)
‣ Mandatory (or total) participation
Each instance on the right-hand entity type must participate in the association in order to exist in the system.
‣ Mutual (total on both sides) participationInstances of both entities must participate in the association.
SIBD
Exemplo (final)
‣ É possível existir um Departamento sem gestor?
‣ Quantos gestores podem existir para um departamento?
R: Não
R: No máximo um
SIBD
Exercício A.
SIBD
Exprima em língua natural cada um dos seguintes diagramas
SIBD
Diagrama 1
‣ Employees can manage many Departments
‣ Same for ‘works_in’ …
‣ Departments can be managed by many Employees
‣ Some Departments (not all) can be managed by an Employee
‣ Some Employees (not all) may manage Departments
SIBD
Diagrama 1I
‣ Every Employee works at least in one Department
‣ Some Departments may not have employees
‣ Every Departments is necessarily managed by an Employee
‣ Some Employees (not all) may manage Departments
‣ An Employee can work in many Departments
SIBD
Diagrama III
‣ Every Employee works in at least one Department
‣ Every Department must have have at least one Employee
‣ Every Departments is necessarily managed by an Employee
‣ Some Employees (not all) manage Departments
‣ An Employee can work in many Departments
SIBD
Diagrama IV
‣ Every Employee works in at least one Department
‣ Every Department must have have at least one Employee
‣ Every Departments is necessarily managed by an Employee
‣ Some Employees (not all) manage Departments
‣ An Employee can work in at most on department
SIBD
Exercício B.
‣ Apresente uma restrição ao modelo que não possa ser representada graficamente
SIBD
Soluções
‣ Um empregado só pode gerir um departamentoonde trabalha, ou
‣ Um departamento só pode ser gerido por um empregado de outro departamento
SIBD
Solução
(IC-1) Instances of Employee in manages relation must also be in works_in relation
SIBD
Restrições nas associações ternárias
SIBD
Obrigatoriedade
a) No constraint on A, B, or C (instances of A, B, and C may exist without participating in the association)
b) Every element of A, must participate in assoc
c) Every element of A, and every element of B, must participate in assoc
d) Every element of A, B, or C, must participate in assoc
SIBD
Multiplicidade
a) No constraint on A, B, or C
b) Any element of A, if associated, can only be associated once in assoc
c) Any element of A, and any element B, if associated, can only be associated once in assocd) Any element of A, B, or C, if associated, can only be associated once in assoc
SIBD
Próxima aula
‣ Modelo Entidade-Associação (cont.)