Edgar Frank Codd desenvolveu o modelo relacional de dados. Na época, Frank era pesquisador da IBM quando publicou o artigo “Relational Model of Data for Large Shared Data Banks” na revista ACM. Neste artigo, Edgar demonstra a teoria de banco de dados relacional, na qual utiliza tabelas (linhas e colunas) e operações da lógica matemática e teoria dos conjuntos para interagir com os dados.
Pelo fato de que grande parte dos clientes utilizavam produtos de tecnologias anteriores ao relacional, a IBM decidiu inicialmente não implementar o modelo. Codd então vai até os grandes clientes da IBM e mostra a eles a simplicidade e eficiência do seu modelo. Assim, vendo que as ideias de Codd tinham muito potencial, os próprios clientes pressionaram a IBM para implementar a nova tecnologia.
Conceitos básicos para compreensão do Modelo relacional
Entidade: elemento do campo de atuação do sistema que possui propriedades que o distingue.
Ex: Carro, Pessoa, Animal
Atributo: propriedade da entidade. Sinônimos: Coluna, Campo;
Ex: cor, nome, tamanho
Tupla: conjunto de atributos de uma entidade. Sinônimos: Linha, registro.
Ex: Cachorro (rex, preto, 8)
Relação: conjunto de tuplas. Sinônimos: Tabela, Arquivo.
Ex: Cachorro (nome, cor, idade)
Chave Primária
Conhecida no Diagrama de Entidade e relacionamento (DER) como atributo identificador, a chave primária no modelo lógico é o conjunto de um ou mais atributos de uma entidade. Tem como função garantir que não haverá tuplas duplicadas, repetidas em uma relação.
Quando a chave primaria possui um único campo é chamada Chave primária simples. Quando possui mais de um campo, Chave primária composta.
A chave primária de uma relação vem sublinhada.
Exemplos de aplicação
Em uma relação Pessoa(cpf, numero_identidade, nome, idade) podemos dizer que o cpf e o numero_identidade são chaves candidatas, ou seja, chaves que podem servir como chave primaria por serem únicas para cada pessoa. Nesse caso escolhemos o cpf para ser chave primária. A representação no modelo lógico fica assim:
Pessoa(cpf, numero_identidade, nome, idade)
Agora, se nenhum dos atributos de uma relação lhe garantir unicidade, podemos criar um atributo. Nesse mesmo exemplo supomos que seja somente Pessoa(nome, idade), nem nome nem idade garantem a unicidade da tupla, pode existir pessoas que tenham o mesmo nome e a mesma idade. Sendo assim, podemos criar o nosso próprio atributo identificador, chamaremos de id_pessoa e a cada pessoa criada, acrescentamos, incrementamos +1 a esse atributo. Fica assim:
Pessoa(id_pessoa, nome, idade)
OBS: Não é regra que a chave primaria fique no começo da tupla, mas normalmente adota-se essa convenção.
Chave Estrangeira
Uma chave externa ou estrangeira é criada quando há um relacionamento entre tabelas. Essa chave é um campo que referencia a chave primaria de uma outra relação.
Considere os esquemas a seguir:
Moto(placa, modelo, cor, cpfProprietario)
Proprietario(cpf, id, nome, endereço)
Nessas relações podemos afirmar: placa é chave primaria (atributo identificador) de Moto; cpfProprietario é chave estrangeira em Moto que referencia o Proprietário da mesma; cpf é chave primaria de Proprietario; id é chave candidata.
Conclusão
Nesse post foram vistos o conceitos de atributo, tupla, relação, chave primaria e chave estrangeira. Para o próximo post veremos o assunto “mapeando do modelo conceitual para o modelo lógico relacional”.
Fontes: https://pt.wikipedia.org/wiki/Chave_prim%C3%A1ria
https://pt.wikipedia.org/wiki/Chave_estrangeira
0 comentário