Diagrama entidade associação O que é? Técnica para modernizar os dados de um sistema de informação; Modelo conceptual independente da tecnologia. Entidade Qualquer objecto ou conceito com interesse para a organização sobre o qual se quer guardar informação e que se possa ser identificável de forma evidente. Exemplos: Contrato Produto Cliente Fornecedor Nome Atributos Propriedade que caracteriza uma entidade Exemplos: Nº de cliente Nome de cliente Morada de cliente Propriedades de entidade “Cliente” Elementos atómicos que assumem valores de um domínio. “Cliente” Trabalho elaborado por: Sandra Augusto Correia 09/06/2010 Chave Primária é o conjunto mínimo de atributos que permite determinar univocamente uma instância numa entidade. Chaves externas As tabelas relacionam-se umas e outras através de chaves. Uma chave é um conjunto de um ou mais atributos que determinam a unicidade de cada registo. Por exemplo, se um banco de dados tem como chaves Código do Produto e ID sistema, sempre que acontecer uma inserção de dados o sistema de gerenciamento de banco de dados irá fazer uma consulta para identificar se o registro já não se encontra gravado na tabela. Neste caso, um novo registro não será criado, resultando esta operação apenas da alteração do registro existente. A unicidade dos registros, determinada por sua chave, também é fundamental para a criação dos índices. Temos dois tipos de chaves: Chave primária: (PK - Primary Key) é a chave que identifica cada registro dando-lhe unicidade. A chave primária nunca se repetirá. Chave Estrangeira: (FK - Foreign Key) é a chave formada através de um relacionamento com a chave primária de outra tabela. Define um relacionamento entre as tabelas e pode ocorrer repetidas vezes. Caso a chave primária seja composta na origem, a chave estrangeira também Um para um (1 para 1) - indica que as tabelas têm relação unívoca entre si. Você escolhe qual tabela vai receber a chave estrangeira; Um para muitos (1 para N) - a chave primária da tabela que tem o lado 1 vai para a tabela do lado N. no lado N ela é chamada de chave estrangeira; Muitos para muitos (N para N) - quando tabelas têm entre si relação N.N, é necessário criar uma nova tabela com as chaves primárias das tabelas envolvidas, ficando assim uma chave composta, ou seja, formada por diversos campos-chave de outras tabelas. A relação então se reduz para uma relação 1.N, sendo que o lado n ficará com a nova tabela criada. Relacionamento Os relacionamentos ligam as classes/objectos entre si criando relações lógicas entre estas entidades. Os relacionamentos podem ser dos seguintes tipos. Associação: É uma conexão entre classes, e também significa que é uma conexão entre objectos daquelas classes. Em UML, uma associação é definida com um relacionamento que descreve uma série de ligações, onde a ligação é definida como a semântica entre as duplas de objectos ligados. Com o advento do modelo de entidades e relacionamentos foi causada uma confusão entre os termos relação e relacionamento O Modelo Relacional, quando descrito de forma matemática, é definido como um elemento do conjunto relação. modelo formado por relações (no sentido matemático) entre os domínios. Ou seja, a relação é a tabela. Um relacionamento do Modelo de Entidades e Relacionamentos é uma associação entre entidades distintas. Não há relação directa entre o nome relacionamento e o nome relação. Porém, um relacionamento, do Modelo de Entidades e Relacionamentos é traduzido para a criação de atributos com chaves externas do Modelo Relacional. Esta tradução é feita ligandose um campo de uma tabela X com um campo de uma tabela Y, por meio da inclusão do campo chave da tabela Y como um campo (conhecido como chave estrangeira) da tabela X. Por meio das chaves estrangeiras, é possível implementar restrições nos SGBDR. Existem alguns tipos de relacionamentos possíveis no MER. Normalização O Processo de normalização aplica uma série de regras sobre as tabelas de uma base de dados, para verificar se estas estão correctamente projectadas. Embora existam 5 formas normais (ou regras de normalização), na prática usamos um conjunto de 3 formas normais. Normalmente após a aplicação das regras de normalização, algumas tabelas acabam sendo divididas em duas ou mais tabelas, o que no final gera um número maior de tabelas do que o originalmente existente. Este processo causa a simplificação dos atributos de uma tabela, colaborando significativamente para a estabilidade do modelo de dados, reduzindo-se consideravelmente as necessidades de manutenção. Vamos entender o processo de normalização na prática, através de exemplos. Primeira forma normal Uma Tabela está na Primeira Forma Normal quando seus atributos não contêm grupos de repetição. Por isso dissemos que uma Tabela que possui grupos de repetição não está na primeira Forma Normal. Considere a estrutura da tabela indicada na Tabela que não está na primeira forma normal. Uma tabela com esta estrutura apresentaria diversos problemas. Por exemplo se um casal tiver mais de um filho teremos que digitar o nome do pai e da mãe diversas vezes, tantas quantos forem os filhos. Isso forma um grupo de repetição. Além do mais pode ser que por erro de digitação o nome dos pais não seja digitado exactamente igual todas as vezes, o que pode acarretar problemas na hora de fazer pesquisas ou emitir relatórios. Este problema ocorre porque misturamos assuntos em uma mesma tabela. Segunda Forma Normal Ocorre quando a chave Primária é composta por mais de um campo. Neste caso, devemos observar se todos os campos que não fazem parte da chave dependem de todos os campos que compõem a chave. Se algum campo depender somente da parte da chave composta, então este campo deve pertencer a outra tabela. A chave primária composta e formada pela combinação dos campos número da matrícula e código do curso. O campo avaliação depende tanto do código do curso quanto do número da matrícula, porém o campo descrição do curso, depende apenas do código do curso, ou seja, dado o código do curso é possível localizar a respectiva descrição, independentemente do número da matrícula. Com isso temos um campo que não faz parte da chave primária e depende apenas de um dos campos que compõem a chave primária composta, por isso que dizemos que esta tabela não está na segunda forma normal. A Resolução para este problema também é simples: "Dividimos a Tabela que não está na Segunda Forma Normal em duas outras tabelas, conforme indicado pela figura abaixo, sendo que as duas tabelas resultantes estão na Segunda Forma Normal. Informações sobre Avaliações e Cursos em Tabelas Separadas. OBS -> A Distinção entre a Segunda e a Terceira forma normal, que veremos logo em seguida, muitas vezes é confusa. A Segunda Forma normal está ligada a ocorrência de chaves primárias compostas. Terceira forma normal Na definição dos campos de uma entidade podem ocorrer casos em que um campo não seja dependente directamente da chave primária ou de parte dela, mas sim dependente de um outro campo da tabela, campo este que não a Chave Primária. Quando isto ocorre, dizemos que a tabela não está na Terceira forma normal, conforme indicado pela tabela da figura abaixo: Tabela com um Campo dependente de Outro campo que não a Chave Primária. Não está na Terceira Forma Normal. Observe que o campo descrição do cargo depende apenas do campo Código do cargo, o qual não faz parte da Chave Primária. Por isso dizemos que esta tabela não está na terceira forma normal. A Solução deste problema também é simples. Pós-Graduação em SIG TMLC Pág. 4/4 Novamente basta dividir a tabela em duas outras, conforme indicado pela figura a seguir. As duas tabelas resultantes estão na Terceira forma normal. Tabelas resultantes que estão na terceira forma normal. Com isso podemos concluir que como resultado do processo de normalização, iremos obter um número maior de tabelas, porém sem problemas de redundância e inconsistência dos dados.