Beruflich Dokumente
Kultur Dokumente
CENTRO DE CINCIAS EXATAS E TECNOLGICAS DEPARTAMENTO DE CINCIA DA COMPUTAO Curso Sistemas de Informao
Apostila:
Janeiro 2006
Sumrio
Passos para derivao do Modelo Lgico .......................................................................01 Modelo Relacional...........................................................................................................01 1. Normalizao..............................................................................................................02 1.1 Primeira Forma Normal ........................................................................................02 1.2 Segunda Forma Normal ........................................................................................05 1.3 Terceira Forma Normal.........................................................................................07 Resumo Geral..............................................................................................................09 2. Derivao de Relacionamentos .................................................................................10 2.1 Relacionamento 1:1 sem atributos ........................................................................10 2.2 Relacionamento 1:1 com atributos .......................................................................10 2.3 Relacionamento 1:N sem atributos .......................................................................11 2.4 Relacionamento 1:N sem atributos .......................................................................11 2.5 Relacionamento N:N com ou sem atributos .........................................................12 2.6 Auto-relacionamento.............................................................................................12 2.6.1 Auto-relacionamento 1:1 .............................................................................12 2.6.2 Auto-relacionamento 1:N ............................................................................13 2.6.3 Auto-relacionamento N:N ..........................................................................13
O modelo relacional implementa as estruturas de dados independentemente de seus tipos, atravs de uma nica viso: Tabelas. Relaes = Tabelas Tuplas = Linhas Domnios = Colunas Ex.: Relao : Clientes Esquema : CPF, Nome e Sexo. Domnios: CPF
NOME
SEXO
Tabela: Cliente CPF 82306516634 25896314785 36985214785 NOME Roberto Antnio Adriana Domnio 1 SEXO Masculino Masculino Feminino esquema tupla
REGRAS DE DERIVAO
1. NORMALIZAO
A normalizao uma tcnica para a obteno de organizaes de dados estveis. Ela pode ser usada como tcnica de anlise de dados ou para enxugar o modelo obtido pela anlise de entidades e relacionamentos. Uma base de dados relacional composta por um grupo de tabelas vinculadas, a normalizao permite a simplificao destas tabelas. Observao: Possui carter organizativo. Pode ocorrer durante a concepo do modelo conceitual, durante a derivao do modelo lgico para o relacional, ou aps a derivao do modelo lgico.
Benefcios da normalizao: Estabilidade do modelo lgico : capacidade de um modelo manter-se inalterado face a mudanas que venham a ser percebida ou introduzidas no ambiente que tenha sido modelado. Flexibilidade: capacidade de adaptao a demandas diferenciadas, a expanso e reduo, a omisso ou presena, etc. Integridade: diz respeito qualidade do dado. Um dado mapeado em mais de um local de modo diferente, com valores instanciados de modo diferentes, pode ser indcio de que no h integridade entre eles. Economia: no espao de armazenamento; no custo em manipulao de dados (que representa todo e qualquer esforo, tempo, ou valor agregado ao fato de manipularmos volumes de dados maiores do que os efetivamente necessrios); custo causado pelo atraso do fornecimento da informao desejada. Fidelidade ao Ambiente Observado: ajuda a definir elementos que foram despercebidos durante o processo de modelagem.
Passos para obteno da 1FN 1. Definir chaves candidatas e escolher a chave primria Poder ser utilizado tantos atributos (ou colunas) quantos forem necessrios formao da chave da tabela, mesmo que tenhamos que chegar concatenao de todos os atributos de uma linha. Na prtica, o grade nmero de colunas formando chave pode causar transtornos, por isso, nesse caso, pode-se criar uma coluna-artificial do tipo contadori ou n seqencial. 2. Transformar atributos compostos em atmicos Os atributos compostos que claramente tenham elementos distintos em sua estrutura, devero ser separados. Ex.: Telefone Prefixo Nmero (038)3221-3050 (038) 3221-3050
3. Em cada tabela eliminar grupos repetitivos gerando novas linhas, uma para cada ocorrncia de item repetitivo, mantendo os valores dos demais itens. Para cada tabela eliminar os grupos repetitivos gerando uma nova tabela, na qual cada um dos itens repetitivos dar origem a uma nova linha e na qual a chave primria ser a concatenao da chave da tabela original com uma nova coluna que identifique de modo unvoco a linha. Exemplo: Uma empresa composta por vrias filiais. Cada filial efetua pedidos a seus fornecedores diretamente. Cada um dos pedidos pertence a somente um fornecedor, mas um pedido pode requisitar mais de um produto.
Pedido Num
003
Data Emisso:
20/02/2001
Endereo: Rua Lapa, 785 centro Cod. Produto 0035 002M 158I Nome Produto SQL Server 2000 Corew Draw 11.0 Windows 2000 workstation Qtde 02 01 03 Preo Unitrio 5.650,00 2.200,00 800,00
Filial
Pedido
Entidade: PEDIDO Atributos: N Pedido Data Emisso Nome Fornecedor CGC Fornecedor Endereo Fornecedor Produtos contendo: Cdigo Produto Nome Produto Quantidade Pedida
Produtos Endereo
Rua c, 212 Rua D, 5
Cd
01 02 03 01
Nome
SQL Windows Corew SQL
Qtde
2 1 1 3
Preo Unitrio
2.320,00 800,00 852,00 2.320,00
006
3/2/04
Brasoft
5556
04
DOS
230,00
NORMALIZANDO: 1. Acabar com itens de repetio: tomar cada item de repetio e com eles dar origem a novas linhas da tabela onde o contedo das demais colunas ser o mesmo da linha original Num Pedido 002 002 002 006 006 Data Nome CGC Emisso Fornecedor 2/2/02 2/2/02 2/2/02 3/2/04 3/2/04 House SW House SW House SW Brasoft Brasoft Produtos Endereo Cd 01 02 03 01 04 Nome SQL Windows Corew SQL DOS Qtde 2 1 1 3 2 Preo Unitrio 2.320,00 800,00 852,00 2.320,00 230,00
8521 Rua c, 21 8521 Rua c, 21 8521 Rua c, 21 5556 Rua D, 5 5556 Rua D, 5
2. Transformar os atributos compostos em atributos atmicos Endereo: contm o nome da rua e o n da casa. Dados de natureza completamente distintas, representando caractersticas completamente diferentes. Num Pedido 002 002 002 006 006 Data Emisso 2/2/02 2/2/02 2/2/02 3/2/04 3/2/04 Nome CGC Rua Fornecedor House SW House SW House SW Brasoft Brasoft 8521 8521 8521 5556 5556 c c c D D Produtos N 21 21 21 5 5 Cd 01 02 03 01 04 Nome SQL Windows Corew SQL DOS Qtde 2 1 1 3 2 Preo Unitrio 2.320,00 800,00 852,00 2.320,00 230,00
3. Definir uma chave para que tenhamos unicidade nas linhas da tabela. Num Pedido + Num Produto Num Pedido 002 002 002 006 006 Cd Data Nome CGC Rua Produto Emisso Fornecedor 01 2/2/02 House SW 8521 c 02 2/2/02 House SW 8521 c 03 2/2/02 House SW 8521 c 01 3/2/04 Brasoft 5556 D 04 3/2/04 Brasoft 5556 D N 21 21 21 5 5 Nome Produto SQL Windows Corew SQL DOS Qtde Prod 2 1 1 3 2 Preo Unit Produto 2.320,00 800,00 852,00 2.320,00 230,00
Exemplo: Num Pedido 002 002 002 006 006 Cd Data Nome CGC Rua Produto Emisso Fornecedor 01 2/2/02 House SW 8521 c 02 2/2/02 House SW 8521 c 03 2/2/02 House SW 8521 c 01 3/2/04 Brasoft 5556 D 04 3/2/04 Brasoft 5556 D N 21 21 21 5 5 Nome Produto SQL Windows Corew SQL DOS Qtde Prod 2 1 1 3 2 Preo Unit Produto 2.320,00 800,00 852,00 2.320,00 230,00
1. Analisar as colunas no chaves.... Colunas: Data Emisso, Nome Fornecedor, CGC, Rua, N, Nome Produto, Qtde Prod., Preo Unit. Produto. 2. Identificando dependncias Parciais... Coluna Data Emisso Nome Fornecedor CGC Rua N Nome Produto Qtde Produto Preo Unit Dependncia Parcial Parcial Parcial Parcial Parcial Parcial Total Total Chave N Pedido N Pedido N Pedido N Pedido N Pedido Cdigo Produto N Pedido + Cdigo Produto N Pedido + Cdigo Produto
3. Criando novas tabelas com as colunas dependentes parcialmente das chaves, e excluindo essas colunas da tabela original Tabela 1 (Tabela Original) Num Pedido 002 002 002 006 006 Cd Produto 01 02 03 01 04 Qtde Prod 2 1 1 3 2 Preo Unit Produto 2.320,00 800,00 852,00 2.320,00 230,00
Tabela 2 - obtida por dependncia Parcial (chave n pedido) Num Pedido 002 002 002 006 006 Data Nome CGC Rua Emisso Fornecedor 2/2/02 House SW 8521 c 2/2/02 House SW 8521 c 2/2/02 House SW 8521 c 3/2/04 Brasoft 5556 D 3/2/04 Brasoft 5556 D N 21 21 21 5 5 6
Tabela 3 - obtida por dependncia Parcial (chave cdigo produto) Cd Produto 01 02 03 01 04 Nome Produto SQL Windows Corew SQL DOS
2. identificando as dependncias transitivas Tabela 1 o valor de uma coluna Qtde Prod no pode ser d efinido com base no valor da coluna Qtde e vice-versa Tabela 2 o valor de uma Data Emisso no possvel determinar o Nome Fornecedor, CGC, Rua e N; e atravs de quaisquer outras colunas no e possvel determinar o valor da coluna Data Emisso. - o valor da coluna CGC possvel determinar um e s um valor para as colunas Nome Fornecedor, Rua e N. Isso denota uma dependncia transitiva dessas trs colunas em relao coluna CGC.
3. criando novas tabelas onde a chave primria ser(o) a(s) coluna(s) que determinou(aram) o valor da coluna analisada, agregando a essas tabelas as colunas dependentes transitivamente, e excluir das tabelas de origem as colunas dependentes transitivamente mantendo a coluna que determinou a transitividade. Tabela 1 J est na 3FN Num Pedido 002 002 002 006 006 Cd Produto 01 02 03 01 04 Qtde Prod 2 1 1 3 2 Preo Unit Produto 2.320,00 800,00 852,00 2.320,00 230,00
Tabela 2 - mantendo a coluna CGC que determinou a transitividade e sem as demais colunas que eram determinadas transitivamente. Num Pedido 002 002 002 006 006 Data Emisso 2/2/02 2/2/02 2/2/02 3/2/04 3/2/04 CGC 8521 8521 8521 5556 5556
Tabela 3 J na 3NF Cd Produto 01 02 03 01 04 Nome Produto SQL Windows Corew SQL DOS
Tabela 4 obtida a partir da tabela 2, por dependncia transitiva do CGC CGC 8521 8521 8521 5556 5556 Nome Fornecedor House SW House SW House SW Brasoft Brasoft Rua c c c D D N 21 21 21 5 5
RESUMO:
1FN Eliminar dependncias parciais em relao chave primria. (somente quando esta for concatenada)
3FN
2. DERIVAO DE RELACIONAMENTOS
2.1 Relacionamentos 1:1 sem atributos Cada entidade se transforma em uma tabela e a chave principal de uma tabela herdada pela outra como chave estrangeira.
Ou ainda migrar todos os dados das entidades A e B para uma nica tabela.
Tabela nic a Coluna B1 (PK) Coluna B2 Coluna B3... Coluna A1 Coluna A2 Coluna A3...
2.2 Relacionamentos 1:1 com atributos Cada entidade se transforma em uma tabela e criar uma entidade R que ter como chave principal as chaves herdadas das entidades A e B.
A
Tabela A Coluna A1 (PK) Coluna A2 Coluna A3....
B
Tabela B Coluna B1 (PK) Coluna B2 Coluna B3....
Ou, cada entidade se transforma em uma tabela e a chave principal de uma das tabelas herdada pela outra como chave estrangeira. E os atributos do relacionamento so migrados para a Tabela A ou para a Tabela B 10
A
Tabela A Coluna A1 (PK) Coluna A2 Coluna A3....
B
Tabela B Coluna B1 (PK) Coluna B2 Coluna B3.... Coluna A1 (FK) Coluna R1 Coluna R2...
2.3 Relaes 1:N sem atributos Cada entidade se transforma em uma tabela e a chave principal de entidade A herdada pela entidade B como chave estrangeira.
2.4 Relaes 1:N com atributos Cada entidade se transforma em uma tabela e a chave principal de entidade A herdada pela entidade B como chave estrangeira. Os atributos do relacionamentos so, tambm, herdados pela entidade B.
Tabela B Coluna B1 (PK) Coluna B2 Coluna B3.... Coluna A1 (FK) Coluna R1 Coluna R2...
11
Cada entidade se transforma em uma tabela; o relacionamento tambm se transformar em uma tabela e ter como chave principal as chaves herdadas das entidades A e B.
A
Tabela A Coluna A1 (PK) Coluna A2 Coluna A3....
B
Tabela B Coluna B1 (PK) Coluna B2 Coluna B3....
2.5 Relacionamento N:N com ou sem atributos Cada entidade se transforma em uma tabela; o relacionamento tambm se transforma em uma tabela e ter como chave principal as chaves herdadas das entidades A e B. Caso haja atributos no relacionamento, estes ficaro na tabela R.
A
Tabela A Coluna A1 (PK) Coluna A2 Coluna A3....
B
Tabela B Coluna B1 (PK) Coluna B2 Coluna B3....
2.6 Auto-relacionamento 2.6.1 Auto-relacionamento 1:1 Migra-se a chave da tabela A para a tabela A
Tabela A
1 R 1
12
1 R N
N R N
Tabela A Tabela R Coluna A1 - A (PK) (FK) Coluna A1 B (PK) (FK) Coluna R1.... Coluna R2...
13