Quinta-feira, 31 de julho de 2003 às 01h59

Migrando do Access para o MySQL - Parte 03 - Chaves primárias e chaves

Conheça o curso ao vivo: Redes e Protocolos TCP/IP Avançado com Laboratório

Continuando a série, neste artigo iremos abordar as diferentes formas de trabalhar com as chaves primárias e chaves estrangeiras, tendo como comparação o Access com o MySQL.

Iniciaremos a comparação através do Microsoft Access, que tem uma interface gráfica muito interessante e didática, ideal para quem está iniciando o estudo de banco de dados. A construção de uma tabela no Access, utilizando o modo estrutura, é bastante intuitiva. A figura abaixo apresenta uma tabela criada no modo estrutura do Access.

Podemos notar que realmente é muito intuitivo a criação de uma chave primária em uma tabela do Access. Ao criar o campo, basta clicar no ícone da chave para estabelecer esse campo como chave primária. Depois disso, no menu propriedades do campo, é só preencher dizendo o tipo de dado, se esse campo é ou não autonumeração e se ele pode ou não ter registros duplicados. O mesmo acontece quando o programador for criar um relacionamento do tipo um para muitos entre uma ou mais tabelas do banco. Nesse caso, basta clicar no campo e arrastá-lo até o outro campo. A figura abaixo mostra alguns relacionamentos entre tabelas de um banco no Access.

A interface gráfica agradável, combinada com a simplicidade de utilização do Access, fez com que muitos desenvolvedores web optassem por esse banco de dados para os seus sites. Mas se a performance for uma questão chave para os desenvolvedores, estes podem muito bem optar pela utilização do MySQL. O MySQL é muito utilizado e conhecido porque é utilizado junto como o Personal Home Page (PHP), mas com o driver MyODBC podemos utilizá-lo também com outras linguagens como o Active Server Pages (asp), por exemplo.

Para que se possa trabalhar satisfatoriamente com o MySQL, primeiramente é necessário o conhecimento da linguagem SQL, que é a linguagem de consulta padrão utilizada em todos os bancos de dados. Embora cada banco de dados faça a sua implementação da linguagem SQL, o estudo dessa linguagem garante para o programador flexibilidade não só para criar consultas complexas e gerar relatórios como também para conhecer outros softwares.

Continuando a comparação, para criarmos uma tabela com chave primária no MySQL é necessário que tenhamos noção da instrução SQL create table. O exemplo abaixo apresenta uma tabela simples criada no MySQL com uma chave primária.

CREATE TABLE usuarios (
                 codigo INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
                 nome VARCHAR(40),
                 cidade VARCHAR(40)
);

Com relação às chaves estrangeiras, é importante observarmos que elas não são usadas no SQL para ligar tabelas, mas na maioria das vezes são usadas para consistir integridade referencial (foreign key constraints). Se você deseja obter resultados de múltiplas tabelas de uma instrução SELECT, você pode fazer isto ligando tabelas:

SELECT * from table1,table2 where table1.id = table2.id;

O MySQL até a versão 4.0.14 (versão atualmente recomendada para download) não suporta o uso de chaves estrangeiras. Na documentação do MySQL temos que a sintaxe FOREIGN KEY existe somente para compatibilidade com os comandos CREATE TABLE de outros fabricantes, mas na verdade ela não faz nada. Algumas aplicações ODBC podem usar isto para produzir cláusulas WHERE automáticas, mas é normalmente ignorada. FOREIGN KEY é algumas vezes usado para verificação (constraint check), porém, esta verificação é praticamente desnecessária se registros são inseridos nas tabelas na ordem correta. O MySQL suporta somente estas cláusulas porque algumas aplicações dependem delas para existir (não levando em consideração se elas funcionam ou não). Podemos fazer um parêntese aqui e dizer que o tipo de tabela innoDB, a partir da versão 3.23.44 do MySQL suporta verificações em chaves estrangeiras, incluindo CASCADE, ON DELETE e ON UPDATE. Está previsto que em um futuro próximo essas verificações serão extendidas para todas as tabelas do MySQL.

No próximo artigo iremos completar essa série de artigos ao abordar algumas maneiras de exportação e importação de dados entre o Access e o MySQL.

Bom estudo!

1 comentário

 Peterson
13/05/2010 09h30

Prezado, estou precisando de uma ajuda, como faço para puxar os dados para uma outra tabela digitando apenas o codigo, por exemplo:
- tenho uma tabela chamada cadastro de obras no modo formulario na outra tabela tambem no modo formulario quero digitar o codigo da obra e os dados como nome da obra, endereço, resnponsavel, etc. vim para esta tabela? Eu sei que é um relacionamento mas não estou conseguindo.
Desde ja agradeço
Peterson

Cancelar resposta

Qual a sua opinião?

Se você já possui conta iMasters, o login será feito abaixo.

Atenção: comentários considerados spams e/ou ofensivos serão moderados.

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.