+4

Técnicas de Normalização

criado por Phaser em 12/04/2002 9:59pm
Um dos fatores mais importantes no desenvolvimento de páginas dinâmicas é a definição de banco de dados. Se suas tabelas não estão definidas apropriadamente, isso pode lhe causar muita dor de cabeça quando você tiver executar chamadas SQL miraculosas no seu código PHP para extrair os dados que você deseja. Ao entender o relacionomento entre os dados e a
normalização de dados, você estará mais bem preparado para começar a desenvolver suas aplicações em PHP.

Trabalhando com MySQL ou Oracle, você deve conhecer os métodos de normalização do esquema de tabelas no seu sistema de banco de dados relacional. Eles podem ajudar a fazer seu
código PHP ser mais fácil de entender, mais fácil de expandir e, em alguns casos, acelerar sua aplicação.

Basicamente as Regras de Normalização são reforçadas pela
eliminação de redundância e dependências inconsistentes no projeto de suas tabelas. Eu irei explicar o que isso significa examinando os cinco passos progressivos de normalização de que você deve estar ciente para criar banco de dados funcionais e eficientes. Também irei detalhar os tipos de relacionomentos que sua estrutura de dados pode utilizar.

Digamos que nós queiramos criar uma tabela com informações de usuários, e que queiramos armazenar o Nome, Empresa, Endereço da Empresa, e alguns Bookmarks ou Urls de cada
usuário. Você pode começar definindo uma estrutura de tabela como esta:

Forma Zero

<table align="center" border="1" cellpadding="4" cellspacing="0" width="600" bgcolor="#FFFFFF" bordercolor="#CCCCCC" style="font-family: arial; font-size: 10pt;"> <tr align="center"> <td colspan="5" bgcolor="#DDDDDD">usuarios </td> </tr> <tr align="center"> <td>nome</td> <td>empresa</td> <td>empresa_endereco</td> <td>url1</td> <td>url2</td></tr><tr align="center"><td>Carlos</td><td>ABC</td> <td>Santos ummont,100</td><td>abc.com</td> <td>xyz.com</td></tr><tr align="center"><td>Flávia</td> <td>XYZ</td><td>Des. Moreira, 100</td><td>abc.com</td> <td>xyz.com</td></tr></table>

Iremos dizer que esta tabela é Forma Zero porque nenhuma das regras de normalização foi aplicada ainda. Note os campos url1 e url2 -- o que faremos se nossa aplicação precisar adicionar mais uma terceira url ? Você quer continuar
adicionando colunas em sua tabela e codificar mais este campo INPUT no seu código PHP ? Óbvio que não, você criaria um sistema funcional que poderia crescer com as novas exigências de
desenvolvimento. Olhemos para as regras para a Primeira Forma Normal, e então vamos aplicá-las a esta tabela.

Comentários:

Mostrando 1 - 5 de 5 comentários
Ederson disse:
estava testando aki, eu programo php com mysql no windows e qundo ta ok testo no linux, tive um problema de campos no mysql, onde os num posso usar maiusculas no nomes dos campos, tem que se rtudo minusculo....alguem ja passou por isso?
25/10/2004 1:46pm (~19 anos atrás)

isso foi o que eu não entendi, você quis dizer que se eu pegar as chaves estrangeiras de outras tabelas eu consigo reconstituir essa tabela de quinta forma ? :)
17/04/2002 11:36am (~22 anos atrás)

Phaser disse:
Opa André, acho que me enganei aqui nos emails, me desculpe.

Bem, quanto a quinta forma como não é algo muito utilizado o autor se restringiu a apenas comentá-la. Na verdade você faz a volta do que você fez, vai destrinchando as tabelas inferiores até chegar a uma tabela principal, na verdade é apenas ler o artigo de trás pra frente. É mais uma forma de se certificar que uma tabela está restringida ao máximo do que uma forma de construir a tabela principal.

[]s
17/04/2002 11:28am (~22 anos atrás)

Phaser disse:
Olá André...

...quando você vai começar a estruturar um banco de dados com tabelas e etc, você começa estabelecendo uma tabela no Formato Zero, como é mostrado no artigo. Você nunca começa com as tabelas já normalizadas, a não ser que você tenha uma boa experiência já e comece já fazendo uma normalização inicial.

Então, a princípio você estabelece uma tabela na Forma Zero e vai aplicando regras de normalização.

[]s
17/04/2002 11:17am (~22 anos atrás)

Acho que a Quinta forma ficou muito no "ar", seria interessante se você conseguisse exemplificar, como nas outras formas ! :-)
15/04/2002 10:42am (~22 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)