Cap. 5-1 Modelo Relacional, Normalização e Diagramas E-R 1 Programa Chaves Relacionamentos Modelo de Dados relacional Integridade Normalização: 1.ª, 2.ª e 3.ª Forma Normal Diagramas E-R 2 1
Conceito de Entidade e Atributo Entidade: Abstracção de objectos ou conceitos do mundo real acerca dos quais queremos guardar informação. Atributos de uma entidade: Características comuns aos objectos ou conceitos representados pela entidade. Exemplo de entidade e seus atributos: CÃO (nome, raça, sexo, data_nascimento) 3 Atributos => O nome de cada atributo deve ser único, singular e não ambíguo (=> utilizar prefixos ou sufixos. Exemplo: Data => Data_entrega ) Para reduzir as informações a uma forma normalizada importa que todos os atributos sejam não decomponíveis. Diz-se então que os atributos são atómicos, ou que são atributos elementares O conjunto de todos os valores possíveis para um dado atributo constitui o domínio desse atributo Existem vários tipos de atributos: simples, compostos, multivalor e derivados 4 2
Atributos => Exemplo de atributo não atómico e não singular: Disciplinas Nome_aluno Número Disciplinas José Silva 1234 Física, Química, História......... 5 Tipos de Atributos => NPróprio BI Nome Apelido Sexo Localizações Número Tempo_Actividade Data_ínicio_activ Funcionário Departamento Atributos Simples (Exemplo: BI) Atributos Compostos (Exemplo: Nome) => Um atributo composto pode ser considerado simples, dependendo da situação a tratar. => Quando os atributos básicos são tratados separadamente, um atributo composto entra na entidade com todos os seus atributos básicos ( Funcionário: BI, Npróprio, Apelido, Sexo) 6 3
Tipos de Atributos => NPróprio BI Nome Apelido Sexo Localizações Número Tempo_Actividade Data_ínicio_activ Funcionário Departamento Atributos Derivados (Exemplo: Tempo_actividade) => Estes atributos devem ser identificados na análise mas não devem fazer parte da entidade pois podem ser calculados Atributos Multivalor (Exemplo: Localizações) => Para cada atributo multivalor cria-se uma nova entidade Exemplo(Loc_Dep: Número, Localização) 7 Que atributos considerar na descrição de uma entidade? Entidades CÃO e DONO_DO CÃO vistas pelo veterinário: CÃO nome_do_cão raça sexo nome_do_dono data_nasc peso DONO_DO_CÃO nome_do_dono endereço saldo_da_conta 8 4
Que atributos considerar na descrição de uma entidade? Entidades CÃO e DONO_DO CÃO vistas pela administração municipal: CÃO nome_do_cão raça sexo nome_do_dono data_licen. peso DONO_DO_CÃO nome_do_dono endereço O atributo endereço deveria ser subdividido? É possível determinar número de cães por freguesia? => endereço é um atributo composto que neste caso deveria ser subdividido 9 Chave Primária e Candidata Instância: Ocorrência particular de uma entidade. Cada instância tem de ser identificada univocamente Chave ou Identificador de uma entidade: Atributo ou conjunto de atributos que permitem identificar univocamente uma instância de uma entidade. Chave primária: Corresponde a uma das chaves possíveis e possui as seguintes características: unívoca - os atributos da chave primária têm um valor unívoco para qualquer instância; não redundante - se algum dos atributos que formam a chave primária for retirado, os restantes atributos deixam de ser unívocos não nula - nenhum dos atributos que formam a chave primária poderá ter um valor nulo. 10 5
Chave Primária e Candidata Chave candidata: Atributo ou conjunto de atributos que podem ser usados como chave primária de uma entidade Exemplo: Nome N_Eleitor N_BI Freguesia Rua Chaves candidatas: N_BI N_Eleitor, Freguesia Obs. Não podem existir na mesma freguesia eleitores com o mesmo número 11 Chave Forasteira ou Externa Chave forasteira ou chave externa: Atributo ou conjunto de atributos que aparecem como chave primária numa outra entidade relacionada. A chave forasteira permite estabelecer uma ligação (relacionamento) entre as entidades representadas. Uma entidade pode conter tantas chaves forasteiras quantas as necessárias. Exemplo: CÃO nome_do_cão raça sexo nome_do_dono data_nasc peso DONO_DO_CÃO nome_do_dono endereço saldo_da_conta O atributo nome_do_dono : na entidade CÃO é uma chave estrangeira na entidade DONO_DO_CÃO é a chave primária => Este atributo permite estabelecer uma ligação entre as entidades CÃO e DONO_DO_CÃO 12 6
Relacionamento As entidades não estão isoladas, estão relacionadas com outras entidades => é necessário identificar relacionamentos para ser possível representar correctamente o mundo real. Relacionamento: Associação entre entidades Relacionamento binário: Associação entre duas entidades Tipos de relacionamentos binários entre entidades O número de ocorrências de uma entidade, que podem estar associadas com uma ocorrência de outra entidade permitem distinguir 3 tipos de relacionamentos: Relacionamento 1:1 (1 para 1) Relacionamento 1:N (1 para N) Relacionamento N:M (N para M) 13 Relacionamento Tipos de relacionamentos binários entre entidades Relacionamento 1:1 Departamento 1 Dirigido 1 Funcionário Um departamento é dirigido por um funcionário e um funcionário só pode dirigir um departamento Relacionamento 1:N Departamento 1 Constituído N Funcionário Um departamento é constituído por vários funcionários e um funcionário só pertence a um departamento Relacionamento N:M Funcionário N Trabalha M Projecto Um funcionário pode trabalhar em vários projectos e num projecto podem trabalhar vários funcionários 14 7
Modelo de Dados Relacional Todos os dados bem como os relacionamento existentes entre estes são representados por um conjunto de tabelas (relações) relacionadas entre si: Cada tabela (entidade) tem um nome único pelo qual é referenciada; Cada coluna da tabela (atributo) tem um nome e refere-se a um dado aspecto do objecto representado; Cada coluna contém valores atómicos pertencentes ao domínio do atributo; Cada linha da tabela (tuplo) representa uma única instância ou um relacionamento entre entidades; Cada relação contém zero ou mais tuplos. 15 Integridade Existem três tipos de integridade: Integridade de domínio: os valores de cada coluna devem ser atómicos e pertencentes ao domínio do atributo; Integridade de entidade: os valores dos atributos que correspondem à chave primária não podem ser nulos nem iguais a outros já existentes na tabela. Notar que, como os tuplos são diferenciados pela chave primária, se os valores dos atributos correspondentes à chave primária fossem nulos não seria possível distinguir entre tuplos. Integridade referencial: a chave forasteira numa tabela deve referenciar sempre uma chave primária existente numa outra tabela. 16 8
Normalização Normalização: É o processo de identificação dos agrupamentos necessários e da localização correcta de cada atributo consiste num conjunto de técnicas designadas por normalização. A normalização converte cada entidade, gradualmente, para Formas Normais, através da aplicação sucessiva de regras que alteram o formato dos dados da 1ªForma Normal até à 3ª Forma Normal (FNBC e 4.ª e 5.ª em casos especiais). 17 Normalização: Formas Normais 1ª Forma Normal Uma relação está na 1ª forma normal (1FN) quando: os domínios de todos os atributos consistem apenas em valores atómicos não existem subgrupos de atributos repetidos Passagem de uma entidade à 1FN: Eliminar subgrupos repetidos (aqueles que descrevem a mesma característica), decompondo a relação em duas (ou mais) relações. Chave Primária (A) Atributo singular (B) A B C D Atributos repetidos (C e D), valores não atómicos A A B C D 18 9
Normalização: Formas Normais 2ª Forma Normal Uma relação está na 2ª forma normal (2FN) quando: estiver na 1FN; todos os atributos que não pertencem à chave dependem de toda a chave (e não de um subconjunto da chave). Passagem de uma entidade à 2FN: Separar os atributos que dependem de um subconjunto da chave, decompondo a relação em duas (ou mais) relações. A B C D Chave primária + atributo(s) que depende(m) de toda a chave Chave primária + atributo(s) que só depende(m) dessa parte da chave A B B D C 19 Normalização: Formas Normais 3ª Forma Normal Uma relação está na 3ª forma normal (3FN) quando: estiver na 3FN; os atributos que não pertencem à chave não dependem de nenhum atributo que também não pertence à chave. Passagem de uma entidade à 3FN: Separar os atributos que dependem de outro atributo não pertencente à chave, decompondo a relação em duas (ou mais) relações. A B C D E E depende de C A C B E C D 20 10
Construção de modelo de dados pelo método de Entidade-Relacionamento Passos Necessários: Identificar todas as entidades e todos os relacionamentos importantes para a situação a tratar; Construir o diagrama de Entidade-Relacionamento (DER) Encontrar o conjunto de entidades preliminares e identificar as respectivas chaves; Identificar todos os outros atributos relevantes e associá - los a uma das entidades preliminares já definidas, mantendo a solução normalizada. 21 Diagrama de Entidade-Relacionamento Nome Designação NDoc... #Disc... Docente Ensina Disciplina Entidade: Coisa relativa ao problema a tratar e sobre o qual há interesse em guardar/manipular informação; Uma entidade deve ter ocorrências e deve ser possível identificar uma ocorrência de outra ocorrência. Relacionamento: Ligação entre entidades. Atributo: Propriedade de uma entidade (em certos casos também de um relacionamento). 22 11
Diagrama de ocorrências Exemplifica um relacionamento entre entidades. Professor Ensina Disciplina P1 P2 P3 P4 D1 D2 D3 D4 23 Relacionamento binário de grau 1:1 Caso 1 (1:1) - participação obrigatória das duas entidades: Todos os docentes têm de leccionar uma só disciplina; Cada disciplina tem de ser assegurada por um docente. 1 1 P1 Docente Ensina Disciplina P2 P3 Relacionamento binário de grau 1:1 e participação obrigatória de ambas as entidades. Regra 1 D1 D2 D3 É apenas necessário uma entidade; A chave primária dessa relação pode ser a chave primária de qualquer das entidades. 24 12
Resumo das regras do método Entidade-Relacionamento A regra mostrada no acetato anterior é apenas um caso de entre muitos possíveis, de acordo com o grau e obrigatoriedade de participação de cada entidade e do tipo de relacionamento. Ao lado mostra-se um resumo dos casos possíveis, número de entidades / tabelas geradas e algumas dicas adicionais. A explicação mais detalhada poderá ser encontrada no cap. 5-1 da sebenta da disciplina. Relacionamento Nº Entidades Observações 1:1 1:1 1:1 1:N 1:N N:M 1 2 3 2 3 3 A Chave primária pode ser a chave de qualquer das entidades. A Chave da entidade c/ participação não obrigatória tem de ser atributo na outra. A entidade do relacionamento terá como atributos as chaves de ambas as entidades A Chave da entidade do lado 1 tem de ser atributo na entidade do lado N. A entidade do relacionamento terá como atributos as chaves de ambas as entidades. A entidade do relacionamento terá como atributos as chaves de ambas as entidades. N+1 A entidade do relacionamento terá como atributos as chaves de todas as entidades. 25 13