15
Departamento de Engenharia Informática Sistemas de Informação e Bases de Dados .. Lab 01: Modelo Entidade-Associação IST/DEI Pág. 1 de 15 Resumo Teórico O diagrama entidade-associação (ou Diag. Entidade Relacionamento – DER) é usado para representar o modelo conceptual de uma base de dados. Um modelo básico é construído fundamentalmente por três tipos de elementos: entidades, associações e atributos. Figura 1. Excerto de um diagrama E-A de exemplo O modelo entidade-associação (modelo E-A), pode ser convertido para o modelo relacional com base em regras de conversão bem definidas. O modelo relacional é especificado em termos de um conjunto de tabelas cuja estrutura reflecte o desenho conceptual expresso no modelo E-A. No exemplo do diagrama da figura 1, a conversão para um modelo relacional poderia resultar num conjunto de tabelas com a seguinte estrutura de atributos: Customer (customer_id: integer, customer_name: string, customer_street: string, customer_city: integer) Account (account_number: integer, balance: real) Depositor (customer_id: integer, account_number: integer, access_date: date) customer_id : FK(customer) account_number : FK(account) No modelo relacional, uma entidade informacional conceptualmente é da seguinte forma: Tabela (atributo1:tipo, atributo2:tipo, atributo3:tipo, atributo4:tipo, atributo5:tipo, …) Esta estrutura de dados apresenta os seguintes elementos base:

Ficha de Laboratório SEI - fenix.tecnico.ulisboa.pt · Exercício 5. Para cada um dos cenários descritos, análise o texto para levantamento de requisitos/ For each of the described

Embed Size (px)

Citation preview

Departamento de Engenharia Informática

Sistemas de Informação e Bases de Dados ..

Lab 01: Modelo Entidade-Associação

IST/DEI Pág. 1 de 15

Resumo Teórico

O diagrama entidade-associação (ou Diag. Entidade Relacionamento – DER) é usado para representar o modelo conceptual de uma base de dados. Um modelo básico é construído fundamentalmente por três tipos de elementos: entidades, associações e atributos.

Figura 1. Excerto de um diagrama E-A de exemplo

O modelo entidade-associação (modelo E-A), pode ser convertido para o modelo relacional com base em regras de conversão bem definidas. O modelo relacional é especificado em termos de um conjunto de tabelas cuja estrutura reflecte o desenho conceptual expresso no modelo E-A. No exemplo do diagrama da figura 1, a conversão para um modelo relacional poderia resultar num conjunto de tabelas com a seguinte estrutura de atributos:

Customer (customer_id: integer, customer_name: string, customer_street: string, customer_city: integer)

Account (account_number: integer, balance: real) Depositor (customer_id: integer, account_number: integer, access_date: date)

customer_id : FK(customer) account_number : FK(account)

No modelo relacional, uma entidade informacional conceptualmente é da seguinte forma:

Tabela (atributo1:tipo, atributo2:tipo, atributo3:tipo, atributo4:tipo, atributo5:tipo, …)

Esta estrutura de dados apresenta os seguintes elementos base:

SIBD

IST/DEI Pág. 2 de 15

Tabela – nome da entidade informacional que está a ser modelada. No DER corresponde aos rectângulos (i.e., substantivos, pronomes, determinantes)

Atributos – nome dos campos que descrevem a entidade informacional. No DER são representados por elipses

Tipo – parâmetro que define o tipo do atributo. Embora na conversão do DER para o modelo relacional a definição do tipo dos atributos seja opcional, esta é uma boa prática que ajudará depois na escrita do SQL de criação da entidade

No modelo relacional os verbos tendem a representar acções que mapeiam relações entre entidades informacionais

Nota: Quanto maior for o esforço de analise e modelação dos dados menor o risco na fase de implementação do modelo da base de dados que foi desenhada pelo Analista. Os atributos sublinhados definem a chave primária da tabela, ou seja, são atributos que identificam o registo na tabela. As chaves estrangeiras e outras restrições podem ser apresentadas na seguinte forma:

atributo4 : FK(tabela2) atributo5 : unique etc.

O diagrama de um modelo de dados relacional contém, normalmente, múltiplas entidades informacionais (numerosas relações) que se encontram associadas entre si através de tuplos comuns. Por norma, um atributo chave estrangeira (Foreign Key) corresponde a um atributo numa tabela que é chave primária (Primary Key) numa outra tabela, ou seja, são atributos que relacionam tuplos entre duas entidades informacionais distintas.

Ter em atenção que um atributo chave externa numa tabela não tem de ser chave primária na outra tabela. O atributo apenas tem de ser único.

O diagrama de um modelo de dados relacional mapeia um conjunto de esquemas de relações sujeitos a um conjunto de restrições de integridade.

As restrições de integridade são regras de funcionamento do modelo de negócio para o qual o modelo da estrutura da Base de Dados está a ser desenhado. Estas regras definem a validade dos dados e asseguram que o modelo de dados mapeia a realidade do negocia, sem qualquer ambiguidade ou redundância. Por exemplo:

O valor do atributo Nome não pode ser nulo

O Salário tem que ser superior ao valor do salário mínimo nacional

A Data de nascimento tem que ser maior que 01-01-1900 e menor que a data actual

SIBD

IST/DEI Pág. 3 de 15

Estas regras fazem parte da definição da tabela e por conseguinte constitui um requisito de modelação da responsabilidade do Analista aquando do levantamento das entidades informacionais. Após a implementação do DER, sempre que um dado é inserido, alterado ou apagado o SGBD deverá verificar se as regras definidas são respeitadas.

Uma relação (i.e., Tabela) é definida como um conjunto de tuplos. Por definição, todos os elementos de um conjunto são distintos, pelo que os tuplos têm que ser necessariamente diferentes entre si. Isto quer dizer que numa relação não pode haver dois tuplos com a mesma combinação de valores para todos os seus atributos. Na prática a criação de uma chave primária numa relação permite definir um subconjunto de atributos que nunca se repetem.

Colaborador (Emp: integer, Nome: string, Categoria: sting, Dep: integer, Data_Nasc:date)

Nota: Embora as boas práticas recomendem a definição de pelo menos um atributo como chave, uma entidade informacional pode ser criada sem qualquer atributo chave. Neste caso, o SGBD deixa de assegurar de forma automática a unicidade dos tuplos (i.e., registos) de uma relação. Essa responsabilidade passa a ser do utilizador.

Restrições de Integridade

Integridade de domínio

São a forma mais elementar de restrição de integridade.

São regras que se aplicam aos atributos de uma dada tabela, definindo o domínio de cada atributo.

Testam condições sobre valores a introduzir em atributos. Fazem-no, restringindo o domínio do atributo em causa.

Integridade de entidade

Aplica-se ao atributo chave cujo valor identifica um tuplo (i.e., linha) de uma relação. Por vezes essa identificação unívoca só é possível através duma chave composta que consiste na menor combinação

SIBD

IST/DEI Pág. 4 de 15

de atributos com essa propriedade.

O(s) atributo(s) que compõem uma chave primária não podem conter o valor nulo.

Ao declararmos um atributo como chave primária da relação o SGBD não deixa que a relação tenha dois tuplos com o mesmo valor nesse atributo.

Integridade de referencial

As restrições de integridade referencial definem as regras que relacionam duas ou mais relações.

A associação entre duas relações faz-se através da chamada chave estrangeira, que é um atributo, ou grupo de atributos, que desempenham o papel de chave primária noutra relação, servindo portanto de elo de ligação entre elas. Dependendo das situações é possível que uma chave estrangeira aceite valores nulos.

A integridade referencial é uma restrição estabelecida entre duas relações com o objectivo de manter a consistência dos dados entre os tuplos dessas relações.

A integridade referencial determina que uma linha numa relação A que está referida numa outra relação B tem obrigatoriamente que estar ligada a uma linha existente na relação B.

Integridade de negócio

Restrições de integridade mais complexas que não podem ser definidas na estrutura da base de dados. São verificadas pelos programas de aplicação ou em alguns casos pelo SGBD. Por exemplo:

O salário de um colaborador do quadro não pode ser inferior ao ordenado mínimo nacional;

Um colaborador não pode ganhar mais do que o seu chefe.

SIBD

IST/DEI Pág. 5 de 15

Exercícios Práticos

Exercício 1. Traduza para português os seguintes diagramas entidade/associação:

a)

b)

c)

d)

Com base na informação do DER elabore também o modelo relacional correspondente.

Exercício 2. Desenhe os seguintes diagramas entidade/associação e indique três atributos relevantes para cada uma das entidades:

a) Um aluno realiza vários trabalhos. Um trabalho é realizado por vários alunos.

b) Um director dirige no máximo um departamento. Um departamento tem no máximo um director.

c) Um autor escreve vários livros. Um livro pode ser escrito por vários autores.

d) Uma equipa é composta por vários jogadores. Um jogador pode jogar apenas numa equipa.

e) Um cliente realiza várias encomendas. Uma encomenda diz respeito no máximo a um cliente.

SIBD

IST/DEI Pág. 6 de 15

Exercício 3. Decida de forma plausível qual o tipo de participação (obrigatória/não obrigatória) para as seguintes situações:

Exercício 4.

Cenário A. (Livro do Ramakrishnan, Chp2, exercise 2.2)

A university database contains information about professors (identified by social security number, or SSN) and courses (identified by courseid). Professors teach courses; each of the following situations concerns the Teaches relationship set. For each situation, draw an ER diagram that describes it (assuming no further constraints hold) and the corresponding Relational Model.

A.1. Professors can teach the same course in several semesters, and each offering must be recorded.

A.2. Professors can teach the same course in several semesters, and only the most recent such offering needs to be recorded. (Assume this condition applies in all subsequent questions.)

A.3. Every professor must teach some course.

A.4. Every professor teaches exactly one course (no more, no less).

A.5. Every professor teaches exactly one course (no more, no less), and every course must be taught by some professor.

A.6. Now suppose that certain courses can be taught by a team of professors jointly, but it is possible that no one professor in a team can teach the course. Model this situation, introducing additional entity sets and relationship sets if necessary.

SIBD

IST/DEI Pág. 7 de 15

Cenário B. (Livro do Ramakrishnan, Chp2, exercise 2.4)

Draw an ER diagram that captures the information presented in the following context.

A company database needs to store information about employees (identified by ssn, with salary and phone as attributes), departments (identified by dno, with dname and budget as attributes), and children of employees (with name and age as attributes). Employees work in departments; each department is managed by an employee; a child must be identified uniquely by name when the parent (who is an employee; assume that only one parent works for the company) is known. We are not interested in information about a child once the parent leaves the company.

Exercício 5.

Para cada um dos cenários descritos, análise o texto para levantamento de requisitos/ For each of the described scenarios analyze the text for following requirements:

a) Quais são as Entidades e respectivos atributos/ What are the entities and their corresponding attributes

b) Quais são as relações entre entidades e quando aplicável identificar eventuais atributos/ What are the relationships between entities and when applicable the corresponding attributes

c) Quais as Restrições de Integridade de negócio descritas no texto/ What are the Business Integrity Constraints identified in the text

Cenário A/ Scenario A.

O cartão do cidadão para além de identificar o nome completo, morada actualizada, local de

residência definido pelo código postal, nº de BI e NIF também contempla o nº de utente. A base de

dados armazena também dados sobre género, estado civil e categoria profissional do cidadão. Um

cidadão activo poderá ter beneficiários associados; dependendo da categoria profissional existem

vários tipos de subsistemas nos quais poderá inscrever o(s) seu(s) beneficiário(s). O nome do

beneficiário é identificado pelo nº de beneficiário que expira dois anos após a sua emissão e só é

válido enquanto a categoria profissional e/ou local de residência do cidadão não for alterada.

Associado a uma receita médica está sempre uma consulta, onde a especialidade do médico é

identificada pelo nº Mecanográfico do mesmo. Por norma o médico pertence a um prestador de

serviços na mesma área de residência do cidadão. A área de residência também identifica a freguesia

e região de saúde. Dependendo do subsistema ao qual o cidadão ou beneficiários estão associados, a

taxa de comparticipação de medicamentos prescritos pode variar. Ter em atenção que uma receita

identifica univocamente quem prescreveu os medicamentos e quais os que são comparticipados. Uma

receita pode ter vários medicamentos e notas médicas sobre o procedimento de toma de cada

SIBD

IST/DEI Pág. 8 de 15

medicamento. A comparticipação dos medicamentos é feita apenas nos 90 dias após a emissão da

receita pelo médico.

English version:

The citizen's card besides identifying the patient complete name, his/her current address, place of

residence set out by zip code, number of BI and NIF also includes the patient identification number.

The database also stores data on gender, marital status and professional category of the citizen. An

active citizen may have associated beneficiaries; depending on the professional category there can be

several types of subsystems in which to enroll their beneficiaries. Each beneficiary is identified by the

beneficiary number; the validation of this number expires two years after its emission and is valid

only while the professional category and/or the location of residence of the citizen do not change.

Associated with a prescription is always a physician consultation, where the specialty of the physician

is identified by the physician code number. Usually the doctor belongs to a healthcare service

provider in the same area of residence of the citizen. The residence location (i.e., area of residence)

also identifies the county and health region. Depending on the subsystem to which citizens or

beneficiaries are associated with, the reimbursement rate for drugs prescription can vary. Note that a

prescription uniquely identifies who prescribed the drugs and which medications are reimbursed. A

prescription can have several drugs and medical notes about the procedure for taking each

medication. The reimbursement of medicines is made only within 90 days after being prescribed by

the doctor.

Cenário B/ Scenario B.

Uma receita médica identifica univocamente o utente bem como a quantidade de medicação prescrita.

Por questões de segurança, a medicação prescrita não pode ser repetida no mesmo dia para o mesmo

utente, identificado pelo número de utente, idade, local de residência e sexo. A região de saúde do

utente é definida pelo código postal do seu local de residência. Um utente poderá subscrever apenas

um subsistema de forma a beneficiar de uma taxa de desconto em determinados tipos de

medicamentos. A gestão do medicamento constitui uma política do Ministério que decretou quais os

medicamentos de venda livre e quais os de prescrição obrigatória (i.e., venda apenas com receita

médica) e destes quais os que são comparticipados e os que não são comparticipados. Cada

medicamento comparticipado poderá ser substituído por um genérico equivalente, seleccionado de

uma lista pré-definida. Todos os medicamentos têm um custo, um nome comercial e uma descrição.

Um subsistema apenas pode financiar medicação prescrita, pelo que terá de financiar pelo menos um

tipo de medicamento para captar o interesse dos utentes na sua subscrição. Segundo decreto

legislativo os medicamentos comparticipados têm pré-definido um desconto base que acresce à taxa

de desconto praticada pelo subsistema. A farmácia é a entidade responsável por aviar as receitas aos

utentes e por conseguinte pela venda dos medicamentos. Para cada venda, além da data é obrigatório

o registo do total dessa venda. Uma farmácia tem de ter um director, um número de registo e

SIBD

IST/DEI Pág. 9 de 15

múltiplos contactos para situações de emergência. Por decreto do Ministério não pode haver mais do

que duas farmácias com o mesmo código postal.

English version:

A medical prescription uniquely identifies the patient as well as the amount of medication prescribed.

For safety reasons, prescribed medication cannot be repeated on the same day for the same patient,

identified by the patient number, age, place of residence and sex. The patient health region is defined

by the zip code of his/her area of residence. A patient can subscribe to only one subsystem in order to

qualify for a discount rate on certain types of medications. The management of drugs is a policy

decreed by the Health Ministry identifying which drugs require a medical prescription (i.e., no drug

can be sold without a prescription) and from those which are reimbursed and those that are not. Each

reimbursed brand-name drug can be replaced by a generic equivalent, selected from a predefined list.

All drugs have a cost, a trade name and a description. A subsystem can only fund prescribed

medication, so it have to finance at least one type of drug to motivate patients to attend to the

subscription of the system. According to a Legislative Decree, reimbursed drugs have a pre-defined

base discount that adds to the discount rate charged by the subsystem. The pharmacy is responsible to

dispatch prescriptions to patients and therefore for the sale of medications. For each sale, besides

registering the sale date, pharmacies have also to register the total sale cost. A pharmacy must have a

director, a registration number and multiple contacts for emergency situations. By decree of the

Health Ministry there can be no more than two pharmacies within the same zip code.

Exercício 6. Num grupo empresarial cada departamento possui um carro que só pode ser usado por empregados do departamento devidamente autorizados. Supondo a seguinte estrutura:

Analise o DER e responda às seguintes questões:

a) Se souber o número de um colaborador, esta estrutura permitirá determinar qual o carro que poderá utilizar?

b) Se souber o número de registo de um carro poderá saber quais os colaboradores autorizados a usá-lo? Como pode o diagrama ser estendido (por adição de uma associação) para que represente utilizadores autorizados?

SIBD

IST/DEI Pág. 10 de 15

c) Como podem ser representados utilizadores autorizados se for permitido adição de um novo atributo?

d) Discuta as vantagens de substituir a associação “Requisitado”entre Carro e Departamento por uma associação “Requisitado”entre Carro e Empregado.

e) Sugira uma alteração nas regras da empresa que mantendo o diagrama inalterado elimine a potencial ambiguidade entre Carro e Empregado.

Exercício 7. Apresente o diagrama entidade-associação que modela o problema descrito para cada um dos cenários.

Cenário A.

Uma empresa de importação efectua as suas compras através de contratos. Cada contrato

(identificado por um número) é assinado com um dado fornecedor e diz respeito a várias mercadorias

(identificadas por um código e com um nome). Do contrato consta também a data da assinatura, o

prazo de validade, a moeda e o valor. É fixado no contrato o preço unitário de compra de cada

mercadoria, a quantidade comprada especificada numa unidade de medida que é sempre a mesma

para cada mercadoria independentemente do contrato. É necessário manter informação sobre os

fornecedores (nome, endereço, telefone e fax) que são identificados por um código. As mercadorias

envolvidas num contrato são todas enviadas num único transporte (identificado por um número). Para

cada transporte é necessário conhecer o tipo de transporte, a data de partida e a data de chegada.

Cenário B.

Imagine que tinha sido contratado pela Federação Internacional de Futebol (FIFA) para desenhar e

implementar uma base de dados que permita gerir a informação sobre os jogadores e equipas de

futebol do próximo campeonato do mundo. A base de dados deve ter em consideração os seguintes

aspectos:

Para cada jogador deve ser guardado pelo menos a seguinte informação: nome, data de nascimento, e nacionalidade. Embora seja raro, pode perfeitamente haver jogadores com o mesmo nome. Por exemplo, o Rui Costa do A.C. Milan, e o Rui Costa do F.C. Gondomar.

Um clube de futebol tem um nome, um país ao qual pertence, e um conjunto de jogadores que fazem parte do seu plantel. Num dado instante, um jogador só pode pertencer a um clube.

Deve ser mantido um histórico das transferências dos jogadores. Uma transferência envolve 5 coisas: um jogador, o clube de origem, o clube de destino, a data da transferência, e o montante pago pelo clube destino ao clube de origem pela contratação do jogador.

SIBD

IST/DEI Pág. 11 de 15

Cenário C.

Pretende-se criar uma base de dados para efectuar a gestão de uma empresa agrícola, onde seja

registada informação relativa aos seus trabalhadores e à produção e venda. Sobre cada trabalhador

pretende-se registar o seu nome, data de nascimento e especialidade. Sobre cada produto da

exploração agrícola pretende-se conhecer a sua designação, área cultivada e qual o trabalhador

responsável. Em relação aos compradores e aos fornecedores, pretende-se conhecer a sua

identificação, morada e telefone. Para cada matéria-prima pretende-se registar a sua designação e

quantidade armazenada. Para cada produto vendido deverá ser registado o comprador, a data da

venda, a quantidade vendida, o valor da venda e a data do recebimento. Para a matéria-prima

consumida pretende-se registar os produtos a que esta se destina, a data da utilização e a quantidade

utilizada. Para cada aquisição de matéria-prima deve-se conhecer o fornecedor, a data da compra, a

quantidade comprada, o valor da compra e a data de pagamento.

Exercício 8. Para cada um dos cenários apresentados abaixo a) Apresente o diagrama E-A desenvolvido para cada um dos cenários. b) Apresente a conversão do modelo E-A para modelo relacional.

Cenário A. (Livro do Ramakrishnan, Chp2, exercise 2.7)

Pretende-se desenhar uma base de dados para uma cadeia de farmácias. Após uma análise cuidada do

assunto, chegou-se às seguintes conclusões:

Os pacientes são identificados pelo número de BI, morada e idade.

Os médicos são identificados pelo número de BI. O nome, especialidade e anos de experiência também devem ser guardados.

Cada laboratório é identificado pelo nome e tem um número de telefone.

Para cada medicamento, têm de ser registado o nome comercial e a substância activa. Cada medicamento é fabricado por um laboratório, e o nome comercial identifica o medicamento unicamente dentro do conjunto de produtos desse laboratório. Se um laboratório deixar de existir, não é necessário manter informação sobre os seus produtos.

Cada farmácia tem um nome, morada e número de telefone.

Todos os pacientes têm apenas um médico. Cada médico tem pelo menos um paciente.

Cada farmácia vende vários medicamentos com um certo preço. Um medicamento pode ser vendido em várias farmácias a preços diferentes.

Os médicos passam receitas aos pacientes. Um médico passa uma receita de um ou mais medicamentos a vários pacientes, e um paciente pode obter receitas de vários médicos. Cada receita tem uma data e quantidade do medicamento receitado.

SIBD

IST/DEI Pág. 12 de 15

As farmácias estabelecem contratos com laboratórios. Cada laboratório também estabelece contratos com várias farmácias. Cada contrato tem uma data de início, data de fim, e um texto.

As farmácias designam um supervisor para cada contrato.

Cenário B. (Livro do Ramakrishnan, Chp2, exercise 2.3)

Considere a seguinte informação acerca de uma base de dados de uma universidade:

Os professores têm número de BI, nome, idade, categoria e área de investigação.

Os projectos têm um número, uma entidade financiadora (p.ex. FCT), uma data de início, uma data de fim e um orçamento (em euros)

Os alunos de pós-graduação têm número de BI, idade e grau (p.ex. mestrado, doutoramento)

Cada projecto é gerido por um professor.

Em cada projecto trabalham um ou mais professores.

Os professores podem gerir ou trabalhar em vários projectos.

Em cada projecto trabalham um ou mais alunos pós-graduados.

Para cada aluno pós-graduado que trabalhe num projecto existe um professor orientador. Os alunos podem trabalhar em vários projectos, podendo ter um orientador diferente em cada um deles.

Os departamentos têm um número, uma sigla, e uma sala onde funciona a secretaria.

Cada departamento tem um professor que desempenha as funções de presidente.

Os professores podem trabalhar em mais do que um departamento, e a cada departamento dedicam uma percentagem do seu tempo.

Os alunos de pós-graduação têm um departamento onde trabalham para obter o seu grau.

Cada aluno de pós-graduação tem um outro aluno, mais sénior, que serve como conselheiro e lhe recomenda as disciplinas que deve frequentar.

Cenário C. (Livro do Ramakrishnan, Chp2, exercise 2.5)

Uma editora discográfica decidiu guardar informação sobre os álbuns que edita, os músicos, e outra

informação da empresa, numa base de dados.

Cada músico tem um número de BI, uma morada e um número de telefone. Alguns músicos partilham a mesma morada. Cada morada só tem um número de telefone.

Os instrumentos que a editora usa nas gravações têm um nome (p.ex. guitarra, sintetizador, flauta) e uma tonalidade (p.ex. Dó, Si maior, Mi menor, etc.)

Cada álbum tem um título, uma data, um formato (CD ou CD Single), e um identificador único.

Cada música tem um título e autor.

Cada músico pode tocar vários instrumentos, e cada instrumento pode ser tocado por vários músicos.

SIBD

IST/DEI Pág. 13 de 15

Cada álbum tem um conjunto de músicas, mas nenhuma música aparece em mais do que um álbum.

Em cada música participam um ou mais músicos, e cada músico pode naturalmente participar em várias músicas.

Cada álbum tem exactamente um músico que é o produtor desse álbum. Cada músico pode produzir vários álbuns.

Cenário D.

A clínica veterinária PetVip necessita de guardar numa base de dados a seguinte informação:

Os donos são identificados pelo seu número de BI e pretende-se guardar também o seu nome e telefone.

Cada animal é identificado pelo seu número de registo e guarda-se também o seu nome, raça e data de nascimento.

Um animal tem apenas um único dono, mas cada dono pode ter vários animais.

As visitas à clínica podem ser para consulta, vacinação, ou ambas. No caso de uma consulta deve ficar registado o motivo. No caso de uma vacinação deve ficar registada o nome da vacina administrada. Para todas as visitas pretende-se guardar a data da visita e o seu custo.

Exercício 9. Para cada um dos cenários apresentados abaixo a) Identifique quais dos principais intervenientes. b) Desenhe um diagrama Entidade-Associação onde identifica as respectivas restrições de

integridade para o cenário descrito. c) Apresente a conversão do modelo E-A para modelo relacional.

Cenário A. (Exame 10.01.2012)

A agência de viagem VIPTravel dispõe de uma rede de balcões de atendimento. Em cada localidade, os

balcões têm um identificador único e um nome comercial constituído por VIPTravel e nome do local. A

carteira de clientes é partilhada por todos os balcões de forma a saberem a nacionalidade, data

nascimento, nome e apelido dos clientes. O identificador do cliente é definido pela junção do

identificador do balcão da agência que angariou o cliente e por um número sequencial. Dado relevante

quando são efectuadas reservas de voos para o respectivo cliente, por um dos balcões da agência. Se um

cliente informar que mudou de agência de viagem então deixa de haver interesse em manter reservas

associadas a esse cliente. Uma reserva identifica univocamente a data/hora do voo, operador aéreo,

número do voo, destino e preço. Para cada reserva, o cliente tem 20 dias para emitir o bilhete senão pode

perder a reserva efectuada pela agência. Segundo a política da agência um cliente pode viajar por lazer ou

a trabalho. Se for a trabalho, tem de haver um registo do número de colaborador na empresa empregadora

porque o pagamento da emissão do bilhete é a crédito em nome da empresa. Se for uma viagem de lazer,

SIBD

IST/DEI Pág. 14 de 15

o bilhete é emitido em nome pessoal pelo que tem de haver um registo do modo de pagamento (i.e.,

Dinheiro, Multibanco, Cheque); em ambos os casos é efectuado o registo da data de emissão do bilhete.

Os bilhetes só podem ser emitidos se existir pelo menos uma reserva válida associada ao cliente para o

dia e voo pretendido. Para viagens a trabalho, o desconto do bilhete emitido varia em função do protocolo

estabelecido entre a agência e a entidade empregadora. A agência dispõe dos seguintes dados da entidade

empregadora: nome comercial, múltiplos contactos e um identificador dado pelo NIF.

Cenário B. (Exame 28.01.2012).

A agência de viagem VIPTravel dispõe de uma rede de balcões de atendimento. A carteira de clientes é

partilhada por todos os balcões de forma a saberem os contactos, nacionalidade, data nascimento, nome e

apelido dos clientes. Dados relevantes para a emissão dos bilhetes de voo dos clientes. Um bilhete

emitido, para além de ter um E-Ticket único, identifica também a data de emissão do bilhete, número do

voo e cliente. Para cada bilhete emitido, o cliente poderá cancelar a viagem até 48h antes do voo com uma

penalização de 20%. Todos os voos têm de ter forçosamente um operador, identificado por um acrónimo

de 3 letras. O registo de um operador contempla um nome comercial, localidade da sede e data de início

da sua actividade. Nem todos os operadores dispõem de uma frota de aeronaves, mas como as aeronaves

possam ser vendidas é importante manter um registo sobre qual o actual operador dono de uma

determinada aeronave. Apenas aeronaves registadas podem operar, sendo necessário disporem de uma

matrícula, modelo, capacidade de carga e de número de passageiros. A configuração da aeronave pode ser

para transporte de passageiros e carga ou apenas para transporte de carga. Apenas voos com aeronaves

associados são realizados, pelo que importa identificar para cada voo qual o aeroporto origem e destino,

hora e dia do voo. Aquando da emissão de um bilhete é possível escolher qual o lugar pretendido, de entre

os lugares disponíveis na aeronave que irá operar o voo. De igual modo, o cliente poderá escolher qual o

tipo de refeição que pretende em função da sua classificação (e.g., natural, vegetariana, biológica, kids,

etc.). A política generalizada dos operadores é aplicar um desconto aos clientes que simultaneamente são

seus colaboradores. O preço do bilhete emitido varia em função da taxa de ocupação da aeronave. Uma

taxa de ocupação até 50% é aplicado o valor do preço base, acima desta taxa de ocupação acresce 5% ao

valor do preço base por cada incremento de 10% na taxa de ocupação.

Cenário C. (Exame 17.01.2011).

O cartão do cidadão para além de identificar o nome completo, morada actualizada, local de residência

definido pelo código postal, nº de BI e NIF também contempla o nº de utente. A base de dados armazena

também dados sobre género, estado civil e categoria profissional do cidadão. Um cidadão activo poderá

ter beneficiários associados; dependendo da categoria profissional existem vários tipos de subsistemas

nos quais poderá inscrever o(s) seu(s) beneficiário(s). O nome do beneficiário é identificado pelo nº de

beneficiário que expira dois anos após a sua emissão e só é válido enquanto a categoria profissional e/ou

local de residência do cidadão não for alterada. Associado a uma receita médica está sempre uma

consulta, onde a especialidade do médico é identificada pelo nº Mecanográfico do mesmo. Por norma o

médico pertence a um prestador de serviços na mesma área de residência do cidadão. A área de residência

SIBD

IST/DEI Pág. 15 de 15

também identifica a freguesia e região de saúde. Dependendo do subsistema ao qual o cidadão ou

beneficiários estão associados, a taxa de comparticipação de medicamentos prescritos pode variar. Ter em

atenção que uma receita identifica univocamente quem prescreveu os medicamentos e quais os que são

comparticipados. Uma receita pode ter vários medicamentos e notas médicas sobre o procedimento de

toma de cada medicamento. A comparticipação dos medicamentos é feita apenas nos 90 dias após a

emissão da receita pelo médico.

Cenário C. (Exame 02.02.2011).

Uma receita médica identifica univocamente o utente bem como a quantidade de medicação prescrita. Por

questões de segurança, a medicação prescrita não pode ser repetida no mesmo dia para o mesmo utente,

identificado pelo número de utente, idade, local de residência e sexo. A região de saúde do utente é

definida pelo código postal do seu local de residência. Um utente poderá subscrever apenas um

subsistema de forma a beneficiar de uma taxa de desconto em determinados tipos de medicamentos. A

gestão do medicamento constitui uma politica do Ministério que decretou quais os medicamentos de

venda livre e quais os de prescrição obrigatória (i.e., venda apenas com receita médica) e destes quais os

que são comparticipados e os que não são comparticipados. Cada medicamento comparticipado poderá

ser substituído por um genérico equivalente, seleccionado de uma lista pré-definida. Todos os

medicamentos têm um custo, um nome comercial e uma descrição. Um subsistema apenas pode financiar

medicação prescrita, pelo que terá de financiar pelo menos um tipo de medicamento para captar o

interesse dos utentes na sua subscrição. Segundo decreto legislativo os medicamentos comparticipados

têm pré-definido um desconto base que acresce à taxa de desconto praticada pelo subsistema. A farmácia

é a entidade responsável por aviar as receitas aos utentes e por conseguinte pela venda dos medicamentos.

Para cada venda, além da data é obrigatório o registo do total dessa venda. Uma farmácia tem de ter um

director, um número de registo e múltiplos contactos para situações de emergência. Por decreto do

Ministério não pode haver mais do que duas farmácias com o mesmo código postal.