Sistemasde Informaçãoe Bases de Dados 2019/2020 · Sistemas de Informação...

Preview:

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.)

Recommended