Modelo Relacional Professor Edson Emílio Scalabrin telefone: 0xx41-330-1786 e-mail: [email protected] download: http://www.ppgia.pucpr.br/~scalabrin 1 Modelo Relacional Objetivo • introduzir os principais conceitos do modelo de dados relacional 2 Modelo Relacional Sistemas Operacionais: Geralmente implementados através de banco de dados relacionais. Sistemas Analíticos: Geralmente implementados através de um banco de dados dimensional. SISTEMA OPERACIONAL PROJETO BOTTOM-UP SISTEMA ANALÍTICO PROJETO TOP-DOWN 3 Modelo Relacional Definição: Representa os dados como uma coleção de tabelas. Tabela Produto Chave_produto Descrição Tabela Loja Chave_loja endereço Marca Categoria Preço Compra Preço Venda nome Tabela Venda Chave_venda Chave_produto Chave_loja quantidade nota data 4 Relacionamento No modelo relacional, as tabelas mantém um relacionamento entre si. No exemplo abaixo, os registros da tabela venda se relacionam com os registros das tabelas loja e produto. venda No modelo relacional os dados do produto não precisam ser duplicados para cada registro de venda. 1 2 3 produto 4 loja X a b Y 5 Implementação Física do Relacionamento Os relacionamentos são implementados fisicamente através do relacionamento das chaves primárias de cada tabela que compõe o relacionamento. Tabela Produto Chave_produto Descrição Tabela Loja Chave_loja endereço Tabela Venda Chave_venda Marca nome Chave_produto Categoria Preço Compra Preço Venda Chaves estrangeiras Chave_loja quantidade nota data 6 Formas Normais Regras desenvolvidas para: • Evitar inconsistências lógicas nas operações de atualização das tabelas. • Evitar redundância na organização das tabelas. Primeira Forma Normal Segunda Forma Normal Terceira Forma Normal Aumenta as restrições Diminui o desempenho 7 Primeira Forma Normal – 1FN Definição: o domínio de todos os atributos das tabelas deve ser atômico (indivisível) • Cada coluna da tabela deve conter só um tipo de atributos Tabela Pessoa id_pessoa nome contato Brigadeiro Franco 233-3932 [email protected] Não Satisfaz 1FN Satisfaz Tabela Pessoa id_pessoa nome endereço telefone email 1FN 8 Segunda Forma Normal – 2FN Definição: cada tabela deve satisfazer a 1FN, cada registro deve ter uma chave primária e cada campo não chave deve depender totalmente da chave primária. chave primária: id_pessoa, conta Não Satisfaz 2FN id_pessoa nome endereço conta saldo agência endereço_agência Satisfaz 2FN chave primária: id_pessoa id_pessoa nome endereço conta os campos dependem apenas de parte da chave primária, alguns apenas de conta outros apenas de id_pessoa chave primária: conta conta saldo agência endereço_agência 9 Terceira Forma Normal – 3FN Definição: cada tabela deve satisfazer a 2FN e cada atributo não chave primária depende diretamente da chave primária. id_pessoa nome endereço conta o endereço da agência não depende da conta, mas da agência. conta saldo agência endereço_agência conta saldo agência Não Satisfaz 3FN Satisfaz 3FN agência endereço_agência 10 Integridade Devem ser observados dois tipos de integridade: • a) Integridade de Entidades (cada tabela deve ter exatamente uma chave primária) • b) Integridade Referencial (cada chave estrangeira deve ser consistente com sua chave primária correspondente) Chave primária Chave estrangeira Tabela Pessoa id_pessoa nome endereço id_empresa Tabela Empresa id_empresa nome_da_empresa endereço 11 Integridade Referencial O valor da chave estrangeira deve existir na tabela empresa ou ser NULO. Quando um registro da tabela empresa for excluído, todas os registros da tabela pessoa que façam referência a esse registro devem ter o valor da sua chave estrangeira alterado para NULO. Tabela Pessoa id_pessoa nome endereço id_empresa 1 Adao YYY 2 2 Eva YYY 2 Tabela Empresa id_empresa nome_da_empresa endereço 2 ZZZZ WWW 12 Características do Modelo Relacional Reduz a redundância das informações armazenadas, diminuindo o espaço total gasto para armazenar-las. Simplifica significativamente as operações de escrita, tanto na inserção de novas informações quanto a alteração de informações existentes. Complica as operações de leitura. Quanto mais normalizado for o modelo do banco de dados operacional, mais lenta e trabalhosa será a operação de leitura. 1a FORMA NORMAL Redução no volume de dados e aumento da consistência 2a FORMA NORMAL 3a FORMA NORMAL Desempenho na leitura 13 Modelo Relacional: Conclusões Operação: ESCRITA: • Apenas um pequeno número de registros precisa ser alterado. • Por exemplo, para associar uma nova conta ao usuário os dados do usuário não precisam ser recadastrados. Operação: LEITURA: • Várias tabelas precisam ser associadas para obter a resposta. • Por exemplo, para obter o faturamento total que uma loja obteve com um dado produto, num dado período. ESCRITA LEITURA 14