1 Normalização de dados Vantagens da normalização A normalização permite: Agrupar os atributos de uma entidade de forma a reduzir o número de dependências funcionais existentes entre os dados numa base de dados, diminuindo a redundância Garantir a integridade, a consistência e a fiabilidade dos dados estruturados em relações segundo o modelo relacional Minimizar o espaço utilizado pelos dados criando bases de dados simples e flexíveis A qualquer utilizador aplicar com certa facilidade as suas formas normais
2 Normalização de dados Regras de transformação do diagrama ER no modelo relacional A normalização de dados pode ser feita a partir de modelos de dados resultantes da modelação com diagramas ER A seguir, apresenta-se um conjunto de regras para obter essa transformação, tendo em conta o tipo e o grau do relacionamento Toda a entidade do diagrama ER traduz-se numa relação no modelo relacional, com os mesmos atributos e chaves Nos relacionamentos 1:1, com participação obrigatória em ambos os lados, pode-se construir uma ou duas relações No caso de serem criadas duas relações, cada uma contém uma chave estrangeira Uma chave estrangeira de uma relação é a repetição da chave primária de outra relação, permitindo o relacionamento
Normalização de dados Nos relacionamentos 1:1 com participação obrigatória apenas de um dos lados, constroem-se duas relações A chave estrangeira encontra-se na relação com participação não obrigatória Nos relacionamentos 1:1 com participação opcional em ambos os lados, constroem-se três relações Uma das relações corresponde à entidade associação que contem as chaves estrangeiras das duas entidades iniciais Podem ser precisos mais atributos para constituir a sua chave primária Podem-se criar outros atributos na entidade associativa 3
Normalização de dados Nos relacionamentos 1:M, constrói-se primeiro a relação de cardinalidade 1 e, depois, a de cardinalidade M, adquirindo esta a chave da primeira no caso de existir obrigatoriedade dos dois lados ou apenas do lado 1 Nos relacionamentos de 1:M, constroem-se três relações no caso de existir obrigatoriedade do lado M ou no caso dos dois lados serem de obrigatoriedade opcional Uma das relações corresponde à entidade associação que contem as chaves das duas entidades iniciais Nesta relação, pode ser preciso acrescentar mais atributos para constituir a sua chave primária, assim como outros atributos descritores 4
5 Normalização de dados Nos relacionamentos M:M, constroem-se primeiro as relações de cardinalidade M e, depois, a relação que corresponde à entidade associação Esta relação adquire a chave das entidades iniciais Nesta relação, pode ser preciso acrescentar mais atributos para constituir a sua chave primária, assim como outros atributos descritores
6 Normalização de dados O quadro 14 resume a informação relacionada com o número de relações que se podem derivar do modelo ER de acordo com o tipo e o grau de cardinalidade de associação presente entre as entidades, de forma a garantir que não haja em cada uma atributos com valores que não estejam definidos Na coluna Descrição são, inicialmente, apresentadas as entidades e o respectivo diagrama ER Por fim, são apresentadas as relações obtidas para o modelo relacional De salientar que o símbolo @ é utilizado para identificar a chave primária e o sublinhado é utilizado para identificar uma chave primária
Normalização de dados 7
Normalização de dados 8
Normalização 9
Normalização 10
Normalização 11
12 Normalização A partir do diagrama da figura 1.20 exemplifica-se a aplicação das regras de transformação de um modelo ER num esquema relacional, descrevendo-se a seguir as relações do modelo relacional obtidas
Normalização 13
14 Normalização Atleta = @codatleta + nomenascimento + datanascimento Modalidade = @codmodalidade + nomemodalidade + pavilhão + codtreinador Cacifo = @codcacifo + local + dataaluga + codatleta Treinador = @codtreinador + nometreinador Inscrito = @codatleta + @codmodalidade + datainscrição
4.2.5. Esquema de tabelas 15
16 Esquema de tabelas Durante a análise de um sistema têm sido utilizados diferentes diagramas ou desenhos, representando, modelando ou idealizando esse sistema Estes desenhos permitem mostrar como podem vir a ser realmente implementados esses sistemas O esquema de tabelas é um desenho que se debruça sobre os dados armazenados no sistema e que se designa por modelo estático
17 Esquema de tabelas Na aplicação do modelo estático, parte-se do princípio que é preciso garantir uma redundância reduzida entre os dados, minimizar o número de tabelas e garantir a integridade e fiabilidade dos dados Sendo assim, obter um esquema de tabelas é derivar do modelo ER as relações para uma base de dados relacional Esta derivação é conseguida quando se aplicam ao modelo ER as regras de normalização e da cardinalidade
18 Esquema de tabelas A normalização aplica-se sobre um modelo ER quando as suas entidades ainda não estão normalizadas como, por exemplo, no caso apresentado no ponto Fases da normalização, relativamente à entidade inicial Encomenda Encomenda = @Número_encomenda + Data_encomenda + Código_cliente + Nome_cliente + Telefone + {Código_produto + Nome_produto + Preo_unitário + Quantidade} + Total_encomenda
19 Esquema de tabelas As regras da cardinalidade (quadro 14) aplicam-se sobre o modelo ER quando as suas entidades já se encontram normalizadas O ponto Regras de transformação do diagrama ER no modelo relacional é o exemplo de como se obtêm as relações de um modelo relacional a partir do modelo ER Aqui, é de salientar que uma relação nem sempre deriva de uma entidade
20 Esquema de tabelas Podem surgir relações de entidades associativas Estas relações passam a ter atributos identificadores de outras entidades e que se designam por chaves estrangeiras Por exemplo, das relações do Modelo relacional obtidas a partir da figura 1.20, codatleta e codmodalidade não são atributos da entidade ER inscrito Inscrito = @codatleta + @codmodalidade + datainscrição
21 Esquema de tabelas Há, também, relações derivadas de entidades ER que contêm atributos de outras entidades Por exemplo, das relações do Modelo relacional obtidas a partir da figura 1.20, codtreinador e codatleta são respectivamente atributos das entidades ER Atleta e Treinador Modalidade = @codmodalidade + nomemodalidade + pavilhão + codtreinador Cacifo = @codcacifo + Local + codatleta + dataaluga
22 Esquema de tabelas Observando o exemplo da figura 1.20, de quatro entidades e três relacionamentos derivaram cinco relações O objectivo do esquema de tabelas é conseguir obter um número mínimo de tabelas, garantindo que todos os atributos estejam correctamente definidos dentro dos objectivos do modelo relacional
23 Esquema de tabelas A figura 1.21 apresenta um esquema de tabela característico da representação de relações O nome da tabela corresponde ao nome da relação A chave primária é constituída pelos atributos identificadores, isto é, atributos que identificam de forma exclusiva cada ocorrência de uma relação Os atributos descritores são atributos que descrevem a relação As chaves estrangeiras são atributos identificadores de outras relações
24 Esquema de tabelas A figura 1.22 exemplifica o esquema de tabelas das relações obtidas do modelo ER da figura 1.20
4.2.6. Especificação estrutural 25
26 Especificação estrutural O modelo dinâmico debruça-se sobre as interligações existentes entre os componentes do sistema e utiliza as ferramentas diagrama de estrutura e diagrama de acção para especificar estruturalmente um sistema segundo um conjunto de módulos, pequenos, independentes, simples, flexíveis e dispostos hierarquicamente em árvore O modelo dinâmico permite estruturar as operações do sistema de forma sequencial e no tempo Outra característica importante é a possibilidade de especificar aspectos de controlo do sistema
27 Especificação estrutural A partir do Diagrama de Fluxo de Dados, do Dicionário de Dados e do esquema de tabelas, é possível segmentar o sistema e obter uma hierarquia de módulos Esta modularização tem como objectivo facilitar o desenvolvimento, a manutenção e a visualização dos sistemas ao segmentar um problema complexo em problemas menores e mais simples, pois cada módulo funciona como uma caixa preta em que se conhecem as entradas, as saídas e a função que transforma as entradas em saídas previsíveis
28 Especificação estrutural Diagramas de estrutura Um diagrama de estrutura é uma ferramenta gráfica que segmenta o sistema em módulos, mostrando a sua organização e hierarquia, a sua função, as suas interfaces de comunicação e a comunicação entre eles O quadro 15 apresenta os símbolos utilizados por esta ferramenta gráfica para se desenhar a estrutura de um sistema baseada em três componentes básicos como os módulos, as ligações e as comunicações (chamadas) No caso de um sistema informático, os módulos podiam representar sub-rotinas de programação e as ligações, os fluxos de dados e/ou controlo
Especificação estrutural 29
30 Especificação estrutural Quadro 15 (continuação)
31 Especificação estrutural Diagramas de estrutura (continuação) A figura 1.23 mostra dois diagramas de estrutura, um errado (A) e outro correcto (B) O diagrama A não apresenta nenhuma ligação de dados, o nome do módulo de Obter registo do funcionário não abrange a função abaixo, Calcular salário, e os módulos predefinidos não podem apresentar módulos subordinados Portanto, os nomes dos módulos devem ser claros e de forma a apresentarem a sua função e a de todos os módulos que ficam hierarquicamente abaixo Os módulos predefinidos, apesar de poderem ter muitos módulos subordinados, nunca apresentam esses módulos subordinados num diagrama de estrutura
Especificação estrutural 32
Especificação estrutural Diagramas de acção Como se pode perceber, um diagrama de estrutura não mostra o funcionamento interno dos módulos, os dados acedidos por eles e a sequência das operações no tempo Cabe a um diagrama de acção mostrar detalhadamente a lógica de funcionamento da função do módulo e o modo como os dados de entrada são transformados em dados de saída A implementação de um diagrama de acção consiste na utilização de uma linguagem de codificação para especificar os módulos Consoante a complexidade do módulo, assim se podem utilizar linguagens com maior ou menor detalhe Podem ser utilizadas simples especificações ou linguagens mais estruturadas ou, ainda, pseudocódigos mais próximos das linguagens de programação 33
Especificação estrutural Diagramas de acção (continuação) A seguir, apresenta-se um exemplo de um diagrama de acção, utilizando uma linguagem simples, que codifica o diagrama de estrutura da figura 1.23 B Emitir cheque pagamento Para cada empregado Lê o nome e salário-base do do registo do empregado Calcula salário Salário é igual ao salário-base menos os descontos Imprime no cheque o nome do empregado, montante a receber, data de emissão e localidade 34