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. 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 ER 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 Código 1 N composta por Ano Número Turmas Código da turma Ano Alunos Nome Alunos Código da turma Número do aluno Nome Morada Morada 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 ER 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. Código Curso Data de conclusão frequentado por Data de início Cursos Código do curso Data de início Data de conclusão Número Alunos/Cursos Código do curso Número do aluno Alunos Nome Morada Alunos Número do aluno Nome Morada 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 ER 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. treinada Turma Código Professor por Código Ano Turmas e professores Código da turma Ano da turma Código do professor Nome do professor 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 ER 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. treinada por Turma Código Ano Turmas Código de turma Ano da turma Professor Código Turmas e professores Código da turma Código do professor Nome Professores Código de professor Nome 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 ER 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. treinada por Turma Código Ano Turmas Código de turma Ano da turma Código do professor Professor Código Professores Código de professor Nome do professor Nome 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 ER 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. lecciona Professor Disciplina Código Código Ano Designação Nome Professores Código de professor Nome Professores/Disciplinas Código de professor Código de disciplina Professores Código de disciplina Ano Designaçã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: Notação Crow’s Foot (para utilização no Visio) Participação não obrigatória Participação obrigatória Para resumir isto tudo (1/2) Relação 1:1 Número de tabelas Comentário 1 A chave primária pode ser a chave de qualquer das entidades. 2 A chave da entidade com participação não obrigatória tem de entrar como atributo na tabela da outra 3 A tabela do relacionamento terá como atributos as chaves de ambas as entidades 2 A chave da tabela da entidade do lado 1 tem de ser atributo da tabela da entidade do lado N. 3 A entidade do relacionamento terá como atributos as chaves de ambas as entidades 3 A tabela do relacionamento terá como atributos as chaves de ambas as entidades 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 CD Número do CD Título do CD Capa Tipo de música Ano de edição Data de aquisição Modo de aquisição Notas Faixas Número da faixa Título da faixa Duração Intérpretes Número do intérprete Nome do intérprete Foto Data de nascimento País de origem Notas 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 áudio Passo 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 CD 1 compostos por Faixas N 1 interpretadas por 1 Intérpretes 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 áudio Passo 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 CD Título Tipo de música Ano da edição Data de aquisição Modo de aquisição Notas Faixas 1 Número do CD N Número da faixa Título Duração 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. Faixas Número do CD Número da faixa Título Duração Número do Intérprete Intérpretes 1 1 Número do intérprete Nome Foto Data de nascimento País de origem Notas A base de dados de CD áudio CD Número do CD Título Tipo de música Ano da edição Data de aquisição Modo de aquisição Notas Faixas 1 N Número do CD Número da faixa Título Duração Número do Intérprete 1 Intérpretes Número do intérprete Nome Foto Data de nascimento País de origem Notas 1