Cursos / Informática para Internet / Banco de dados / Aula

arrow_back Aula 03 - Modelo Relacional

Outros conceitos do Modelo Relacional

Um dos grandes desafios em se projetar um banco de dados com sucesso é a correta determinação das Tabelas que existirão nele, bem como dos atributos de cada tabela (BATISTI, 2010).

Neste momento da aula, você irá aprender outros dois conceitos que são importantes para manter a integridade do Modelo Relacional: chaves primárias e chaves estrangeiras.

Chave primária

Na aula anterior, vimos que entidades podem possuir um atributo chave que é usado para garantir a distinção entre as ocorrências das entidades. No Modelo Relacional, o conceito de chave primária equivale ao conceito de atributo chave do modelo ER. Um atributo que for chave primária em uma tabela não pode ter tuplas (registro) com o mesmo valor para aquele atributo e também não pode conter nenhuma tupla sem valor. Um registro que não possui valor é chamado de registro nulo (do inglês null). As chaves primárias identificam de maneira única cada registro/tupla de uma tabela. Veja exemplos de campos que podem ser definidos como chaves primárias.

  • Campo CPF em uma tabela de cadastro de clientes.
  • Campo CNPJ em uma tabela de cadastro de fornecedores.
  • Matrícula do aluno em uma tabela de cadastro de alunos.
  • Código da Peça em uma tabela de cadastro de peças.
  • Matrícula do funcionário em uma tabela de cadastro de funcionários.
  • Número do pedido em uma tabela de cadastro de pedidos.

Na Figura 13, temos uma tabela com uma chave primária no atributo Matrícula.

Tabela com chave primária

Bom, até agora aprendemos a criar uma tabela e inserir atributos, mas, como vamos inserir uma chave primária?

Para inserirmos a chave primária, temos que marcá-la como tal. Na Figura 14 há vários quadradinhos ao lado de cada atributo com algumas opções, vamos marcar a opção PK, que é a nossa chave primária. O termo PK vem do inglês Primary Key, e em português quer dizer chave primária.

Tabela com chave primária.

 

Chave estrangeira

Uma questão importante no Modelo Relacional é a integridade das informações armazenadas. Para garantir essa integridade, é necessário que as informações em uma tabela estejam relacionadas com outras informações em outras tabelas. Por exemplo, a Figura 15 mostra a tabela “Dependente”, que possui o atributo Matrícula. Esse atributo refere-se à matrícula do Empregado pela qual o dependente depende. Ou seja, para ser íntegro, toda a matrícula que for cadastrada na tabela dependente deve estar cadastrada na tabela “Empregado”. Isso irá garantir que um dependente depende de um empregado cadastrado.

Tabela Dependente sem relação de integridade com a Tabela Empregado.

No entanto, como garantir tal regra de integridade? A resposta para essa pergunta chama-se chave estrangeira. Uma chave estrangeira estabelece uma relação de integridade referencial com uma chave primária de outra tabela. Isso garante que os valores de um atributo (chave estrangeira) em uma tupla de Dependente só serão aceitos se o mesmo valor existir em outro atributo (chave primária) da tabela “Empregado”.

Bom, vamos aprender agora como inserimos nossa chave estrangeira utilizando a ferramenta MySQL Workbench. Para inserirmos a chave estrangeira, temos que fazer duas coisas. O primeiro passo é marcar nos quadradinhos ao lado do atributo Matrícula na tabela Dependente a opção NN (not null). O segundo passo é ir à aba Foreign Keys e definir o nome da chave estrangeira no campo Foreign Key name, veja o exemplo na Figura 16.

Definindo chave estrangeira no <span class='italico'>MySQL Workbench</span>.

Depois disso, você deve informar qual tabela (referenced table) essa chave estrangeira irá se referenciar. No nosso caso, a tabela referenciada é a tabela Empregado. Para finalizar, você deve informar qual atributo da tabela Empregado será utilizada para controlar a integridade da tabela dependente. Nesse caso, você deve marcar o atributo Matrícula.

Depois do exemplo da Figura 16, a tabela “Dependente” só aceitará Matriculas que estiverem cadastradas na tabela “Empregado”. Note que esse controle é feito automaticamente pelo SGBD, uma vez que você utilizou o recurso de chave estrangeira. Se a chave estrangeira não fosse utilizada, você teria que implementar tal controle no próprio sistema. Na maioria dos casos, isso não é recomendado.

Versão 5.3 - Todos os Direitos reservados