programação e sistemas da informação módulo 13 técnicas de modelação de dados

31
Programação e Sistemas Programação e Sistemas da Informação da Informação Módulo 13 Módulo 13 Técnicas de Modelação de Dados

Upload: internet

Post on 17-Apr-2015

160 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Programação e Programação e Sistemas da Sistemas da InformaçãoInformação

Módulo 13Módulo 13

Técnicas de Modelação de Dados

Page 2: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Participação obrigatória

Vamos ver os passos a seguir para passar um diagrama E-R para as

tabelas relacionadas que vão constituir a base de dados. Mas para se lá

chegar, para além das relações entre as entidades e dos seus atributos,

há ainda outro pormenor que se revela importante: o da “participação

obrigatória” ou obrigatoriedade do preenchimento de dados nas

tabelas. A questão é fácil de explicar com exemplos.

Page 3: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Relação 1:N com participação obrigatória “do lado N”

Imagina o caso de uma base de dados com as turmas de uma escola e os seus alunos; trata-se de uma relação 1:N entre as entidades Turma e Alunos, já que cada turma possui “N” alunos. A questão é que, aqui, cada turma tem necessariamente alunos, senão não existia! Então, dizemos que se trata de uma relação 1:N com participação obrigatória “do lado N”.

Page 4: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Regra de passagem do diagrama E-R para tabelas relacionadas

Numa relação 1:N com obrigatoriedade de participação

“do lado N”, é necessária a criação de duas tabelas

correspondentes às duas entidades e em que a chave da

entidade “do lado 1” tem de aparecer na tabela “do lado N”.

Turma composta por

Alunos

Código Ano Número Nome Morada

Turmas

Código da turmaAno

Alunos

Código da turmaNúmero do alunoNome Morada

1 N

Page 5: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Relação 1:N sem participação obrigatória “do lado N”

Imagina agora o caso de uma escola de informática que oferece vários cursos de uma semana de duração. Pode acontecer que, nalgumas semanas, não haja inscrições nalguns cursos. Por isso, a relação 1:N entre um curso de uma dada semana e os seus “N” alunos tem de ser uma relação 1:N sem participação obrigatória “do lado N”.

Page 6: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Regra de passagem do diagrama E-R para tabelas relacionadas Numa relação 1:N sem obrigatoriedade de participação

“do lado N”, é necessária a criação de três tabelas: duas correspondentes a cada uma das duas entidades e uma terceira, de ligação entre as duas, composta pelas chaves de ambas.

Curso frequentado por

Alunos

Código

Data de início

Nome MoradaData de conclusão

Número

Cursos

Código do cursoData de inícioData de conclusão

Alunos

Número do alunoNomeMorada

Alunos/Cursos

Código do cursoNúmero do aluno

Page 7: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Relação 1:1 com participação obrigatória de ambos os lados

Supõe que na tua escola se organiza um torneio de futebol em que:- todas as turmas têm de participar com uma equipa;- cada turma tem de ter um professor de Educação Física para treinador;- cada professor só treina a equipa de uma turma;A relação entre as turmas e os professores de educação física é de 1:1 com participação obrigatória de ambos.

Page 8: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Regra de passagem do diagrama E-R para tabelas relacionadas Numa relação 1:1 com obrigatoriedade de participação de

ambos os lados, é recomendável a criação de uma única tabela, em que a chave pode ser qualquer das chaves das entidades envolvidas.

Turmas e professores

Código da turmaAno da turmaCódigo do professorNome do professor

Turma treinada por

Professor

CódigoAno

Código Nome

Page 9: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Relação 1:1 sem participação obrigatória de qualquer dos lados

Supõe o torneio de futebol da escola tem agora as seguintes regras:- apenas participam as turmas que desejarem;- cada turma pode pedir um professor de Educação Física para treinador, mas não é obrigada a isso;- cada professor só treina a equipa de uma turma;A relação entre as turmas e os professores de educação física é de 1:1 sem participação obrigatória de qualquer deles.

Page 10: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Regra de passagem do diagrama E-R para tabelas relacionadas Numa relação 1:1 sem obrigatoriedade de participação de

qualquer dos lados, é recomendável a criação de três tabelas: duas correspondentes a cada uma das duas entidades e uma terceira, de ligação entre as duas, composta pelas chaves de ambas.

Turma treinada por

Professor

CódigoAno

Código Nome

Turmas

Código de turmaAno da turma

Turmas e professores

Código da turmaCódigo do professor

Professores

Código de professorNome do professor

Page 11: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Relação 1:1 com participação obrigatória de apenas um dos lados

Supõe o torneio de futebol da escola tem agora as seguintes regras:- todas as turmas têm de participar com uma equipa;- cada turma pode pedir um professor de Educação Física para treinador, mas não é obrigada a isso;- cada professor só treina a equipa de uma turma;A relação entre as turmas e os professores de educação física é de 1:1 com participação obrigatória apenas do lado das turmas.

Page 12: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Regra de passagem do diagrama E-R para tabelas relacionadas Numa relação 1:1 com obrigatoriedade de participação de

apenas um dos lados, é recomendável a criação de duas tabelas, em que a chave da entidade com participação não obrigatória tem de entrar como campo na tabela da outra.

Turma treinada por

Professor

CódigoAno

Código Nome

Turmas

Código de turmaAno da turmaCódigo do professor

Professores

Código de professorNome do professor

Page 13: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Relação M:N

Aqui a questão da obrigatoriedade de participação de qualquer dos lados é irrelevante, já que as relações do tipo M:N têm sempre o mesmo tipo de solução. Supõe o caso, comum entre os professores das disciplinas de Informática, em que cada professor pode leccionar mais do que uma disciplina e cada disciplina é leccionada por vários professores. É uma relação M:N.

Page 14: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Regra de passagem do diagrama E-R para tabelas relacionadas Numa relação M:N, é necessária a criação de três tabelas: duas

correspondentes a cada uma das duas entidades e uma terceira, de ligação entre as duas, composta pelas chaves de ambas.

Professor lecciona Disciplina

CódigoNome

Código DesignaçãoAno

Professores

Código de professorNome

Professores/Disciplinas

Código de professorCódigo de disciplina

Professores

Código de disciplinaAnoDesignação

Page 15: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Para resumir isto tudo (1/2)

Basta dizer-te agora que, num diagrama E-R, quando queremos

assinalar a obrigatoriedade nas entidades, usamos a seguinte

notação:

Participação obrigatória

Participação não obrigatória

Notação Crow’s Foot (para utilização no Visio)

Page 16: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Para resumir isto tudo (1/2)

RelaçãoNúmero

de tabelas

Comentário

1A chave primária pode ser a chave de qualquer das entidades.

2A chave da entidade com participação não obrigatória tem de entrar como atributo na tabela da outra

3A tabela do relacionamento terá como atributos as chaves de ambas as entidades

2A chave da tabela da entidade do lado 1 tem de ser atributo da tabela da entidade do lado N.

3A entidade do relacionamento terá como atributos as chaves de ambas as entidades

3A tabela do relacionamento terá como atributos as chaves de ambas as entidades

1:1

1:1

1:1

1:N

1:N

M:N

Page 17: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

Um exemplo

Uma base de dados de uma colecção de CD áudio. Para veres como tantos slides se resumem em tão poucos!

Page 18: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A colecção de CD áudio

Vais agora, com a nossa ajuda, conceber uma base de dados relacional de uma forma intuitiva, usando o exemplo da colecção pessoal de CD áudio e seguindo os passos que antes te apresentámos.

Page 19: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A colecção de CD áudio

Passo 1: O propósito da base de dados

A nossa base de dados será sobre uma colecção pessoal de

CD áudio. Queremos que a nossa colecção contenha dados

sobre os CD e sobre os seus intérpretes. Assim, pega no teu

caderno e faz um esboço. Depois, compara com o nosso:

Page 20: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A colecção de CD áudio

CDNúmero do CDTítulo do CDCapaTipo de músicaAno de ediçãoData de aquisiçãoModo de aquisiçãoNotas

FaixasNúmero da faixaTítulo da faixaDuração

IntérpretesNúmero do intérpreteNome do intérpreteFotoData de nascimentoPaís de origemNotas

Page 21: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A colecção de CD áudio

Se o teu esboço for muito diferente do nosso – mas não deve ser! – podes adaptar as instruções que vamos apresentar à tua ideia, ficando assim com a base de dados ao teu gosto. Se não incluíste campos como o Número do CD ou o Número do intérprete, não te preocupes. Nós fizemo-lo porque já estamos habituados a criar atributos deste tipo para se candidatarem a chaves das suas entidades.

Page 22: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A colecção de CD áudioPasso 2: estabelecer as relações entre as entidades

É a altura de criar o diagrama E-R. Para não tornar o diagrama

muito pesado, vamos incluir apenas as entidades e as suas

relações. Tenta fazer o teu e depois compara-o com o nosso.

Page 23: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A colecção de CD áudio

CDcompostos

porFaixas

interpretadas por

Intérpretes

1 N1

1

Page 24: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A colecção de CD áudio

Sabemos que antes do passo seguinte temos de escolher

chaves para as tabelas. Vamos então examinar cada entidade:

Page 25: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A colecção de CD áudio

CD – o título do CD não é um bom candidato, na

medida em que podem existir CD com títulos

idênticos. Visto que os outros atributos são ainda

piores candidatos, criámos um campo específico para

ser chave: Número de CD, começando no número 1

e crescendo até onde for preciso.

Page 26: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A colecção de CD áudio Faixas – Na tabela das faixas não há nenhum campo

que seja bom candidato a chave. Então, tal como no caso dos CD, podíamos criar uma chave com uma numeração sequencial, mas esse campo nem sequer seria útil. Ora, aprendeste antes que, nas relações 1:N, como a que existe entre as tabelas CD e Faixas, o campo chave da tabela “do lado 1” deve ser copiado para a tabela “do lado N”. Pois bem, o par composto por Número do CD e Número da faixa nunca se repete, logo este par serve perfeitamente como chave desta tabela.

Page 27: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A colecção de CD áudio

Intérpretes – Prevenindo a hipótese de poder haver

intérpretes com nomes iguais, criámos aqui um novo campo

denominado Número do intérprete, que será um número

associado a cada intérprete e que só vai ser usado

internamente pelo SGBD. Vê este “número do intérprete”

como um “número de sócio”. Como cada intérprete pode ter

vários CD, a relação entre as tabelas Intérpretes e CD será

1:N e o campo Número de intérprete vai ter de ser colocado

na tabela Faixas para estabelecer a relação entre as duas.

Page 28: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A colecção de CD áudioPasso 3: determinar as tabelas, os seus campos e as

suas relações.

Já temos as três entidades com os seus campos chave

definidos e as suas relações. Vamos agora tratar das tabelas

que delas derivam, de acordo com as regras que aprendeste.

Page 29: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A colecção de CD áudio relação entre CD e Faixas: é uma relação 1:N, na medida em

que cada CD possui várias faixas; e como tem de possuir pelo menos uma, é uma relação 1:N com participação obrigatória “do lado N”. Então, obtemos as seguintes tabelas:

CD

Número do CDTítulo Tipo de músicaAno da ediçãoData de aquisiçãoModo de aquisiçãoNotas

Faixas

Número do CDNúmero da faixaTítuloDuração

N1

Page 30: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A colecção de CD áudio relação entre Faixas e Intérpretes: é uma relação 1:1, na

medida em que cada faixa tem um intérprete; mas pode acontecer, como no caso de compilações de canções, que haja faixas sobre cujos intérpretes não temos dados. Então, a relação entre estas duas entidades é uma relação 1:1 com participação obrigatória apenas de um dos lados (o das faixas). Dizem as regras que a chave da entidade cuja participação não é obrigatória – o Número do intérprete no nosso caso – deve surgir como atributo na tabela correspondente à outra entidade.

IntérpretesNúmero do intérpreteNomeFotoData de nascimentoPaís de origemNotas

FaixasNúmero do CDNúmero da faixaTítuloDuraçãoNúmero do Intérprete

1

1

Page 31: Programação e Sistemas da Informação Módulo 13 Técnicas de Modelação de Dados

A base de dados de CD áudio

CDNúmero do CDTítulo Tipo de músicaAno da ediçãoData de aquisiçãoModo de aquisiçãoNotas

FaixasNúmero do CDNúmero da faixaTítuloDuraçãoNúmero do Intérprete

N1

IntérpretesNúmero do intérpreteNomeFotoData de nascimentoPaís de origemNotas

1

1