programação e sistemas da informação módulo 13 técnicas de modelação de dados
TRANSCRIPT
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
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.
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”.
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
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”.
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
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.
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
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.
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
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.
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
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.
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
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)
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
Um exemplo
Uma base de dados de uma colecção de CD áudio. Para veres como tantos slides se resumem em tão poucos!
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.
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:
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
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.
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.
A colecção de CD áudio
CDcompostos
porFaixas
interpretadas por
Intérpretes
1 N1
1
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:
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.
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.
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.
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.
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
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
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