segunda-feira, setembro 27, 2004
NC Normalização Passo a Passo
1 - Faça um levantamento dos dados a serem armazenados. Procure organizá-los de forma a retirar todas as multivalorações, deixando cada linha com apenas um valor por coluna. Com isso obtemos tabelas na 1FN;
2 - Para cada tabela na 1FN, elimine as dependências funcionais parciais (movendo para outra tabela os atributos que dependem de parte da chave primária). Esse passo produzirá tabelas na 2FN;
3 - Para cada tabela na 2FN , elimine as dependências funcionais transitivas (movendo para outra tabela os atributos que não dependem somente da chave primária). Esse passo produzirá tabeas na 3FN.
4 - Para cada tabela na 3FN que possua mais de uma chave candidata com sobreposição, elimine as dependências funcionais em que o determinante não seja um chave candidata (movendo os atributos dependentes para outra tabela).
Esse passo produzirá tabelas na FNBC. As regras de 2 a 4 podem ser resumidas em uma única orientação: "Obtenha projeções das tabelas originais até eliminar todas as DFs em que o determinante não seja a chave candidata";
5 - Para cada tabela na FNBC, verifique se existe mais de uma DMV Dependencia multivalorada (que não seja também DF) de um mesmo multi-determinante e , se existir, se ela são independentes. Nesse caso, elemine-as, migrando essas colunas para outra tabela. Esse passo produzirá tabelas na 4FN.
6 - Para cada tabela na 4FN, verifique e elimine quaisquer DJs que não sejam determinadas pos chaves candidatas - embora talvez devamos acrescentar: "se você conseguir encontrá-las". Este passo produzirá uma coleção de tabelas em 5FN.
2 - Para cada tabela na 1FN, elimine as dependências funcionais parciais (movendo para outra tabela os atributos que dependem de parte da chave primária). Esse passo produzirá tabelas na 2FN;
3 - Para cada tabela na 2FN , elimine as dependências funcionais transitivas (movendo para outra tabela os atributos que não dependem somente da chave primária). Esse passo produzirá tabeas na 3FN.
4 - Para cada tabela na 3FN que possua mais de uma chave candidata com sobreposição, elimine as dependências funcionais em que o determinante não seja um chave candidata (movendo os atributos dependentes para outra tabela).
Esse passo produzirá tabelas na FNBC. As regras de 2 a 4 podem ser resumidas em uma única orientação: "Obtenha projeções das tabelas originais até eliminar todas as DFs em que o determinante não seja a chave candidata";
5 - Para cada tabela na FNBC, verifique se existe mais de uma DMV Dependencia multivalorada (que não seja também DF) de um mesmo multi-determinante e , se existir, se ela são independentes. Nesse caso, elemine-as, migrando essas colunas para outra tabela. Esse passo produzirá tabelas na 4FN.
6 - Para cada tabela na 4FN, verifique e elimine quaisquer DJs que não sejam determinadas pos chaves candidatas - embora talvez devamos acrescentar: "se você conseguir encontrá-las". Este passo produzirá uma coleção de tabelas em 5FN.
NC Tipos de Dados PostgreSQL
Dados Caracter
Char - 4 + n bytes (fixo)
VarChar - 4 + m bytes (variável)
Text - equivalente varchar(4.000.000.000 ) (variável)
Dados Numéricos
smallint ou int2 2 bytes (16 bits)
int, integer ou int4 4 byte (32 bits)
int8, bigint 8 bytes (64 bits)
float4 ou float e float8
decimal é sinônimo de numeric
Char - 4 + n bytes (fixo)
VarChar - 4 + m bytes (variável)
Text - equivalente varchar(4.000.000.000 ) (variável)
Dados Numéricos
smallint ou int2 2 bytes (16 bits)
int, integer ou int4 4 byte (32 bits)
int8, bigint 8 bytes (64 bits)
float4 ou float e float8
decimal é sinônimo de numeric
NC Isolamento PotsgreSQL
Dirty Read - Ocorre quando os dados não "comitados " de uma transação são lidos por outra transação.
Nom-repeatable reads - os dados lidos numa transação podem sofrer alterações em outras transações. Numa segunda leitura, no mesmo contexto transacional, os dados recuperados podem ser diferentes da primeira leitura.
Phantom read - Uma transação recupera um conjunto de registros a partir de uma condição. Outra transação insere um ou mais registros que atendam a condição citada. caso a primeira transação recupere novamente omesmo conjunto de linhas, as linhas inseridas na transação concorrentes serão exibidas.
Read Commited - Lê todas alterações já commitadas.
Serialize - Lê somente a própria transação e transações fechadas commitadas.
Nom-repeatable reads - os dados lidos numa transação podem sofrer alterações em outras transações. Numa segunda leitura, no mesmo contexto transacional, os dados recuperados podem ser diferentes da primeira leitura.
Phantom read - Uma transação recupera um conjunto de registros a partir de uma condição. Outra transação insere um ou mais registros que atendam a condição citada. caso a primeira transação recupere novamente omesmo conjunto de linhas, as linhas inseridas na transação concorrentes serão exibidas.
Read Commited - Lê todas alterações já commitadas.
Serialize - Lê somente a própria transação e transações fechadas commitadas.