DSC II
• O que deve ser especificado?
– mapeamento do esquema conceitual
• definição das tabelas e chaves
• justificativas de mapeamento (se necessário)
– restrições de integridade (RIs)
• integridade referencial
• restrições de domínio
– valores e transições de valores permitidos
– pode ocorrer checagem predicados e disparo em gatilhos
• transações e procedimentos persistentes
– podem ser definidos para encapsular conjuntos de operações sobre os dados
» em sintonia com o projeto da aplicação
– visões
– grupos de usuários e suas permissões
Dicas de Projeto Lógico Relacional
• Vantagens de uso de uma visão (view)
– traduzida e otimizada “uma única vez” pelo SGBD
• gera um plano ótimo de acesso a dados uma única vez
– encapsula uma consulta complexa
• relatório ou consulta freqüente ao BD
• evita que a consulta seja formulada explicitamente pelo usuário toda vez que for necessária
– pode ser formulada de várias formas, nem sempre ótima
– requer tradução e otimização a cada formulação
• Vantagens do uso de um procedimento persistente (stored procedure)
– reduz o código da aplicação
– invocado por qualquer aplicação que acessa o BD
– traduzido e otimizado para acesso a dados “uma única vez” pelo SGBD
Estudo de Caso (Parcial) –
Vídeo Locadora VHS
Estudo de Caso – Vídeo Locadora
• Supor dois grupos de usuários
– Funcionários
– Clientes
• Especificação do Esquema Relacional
Categorias (código, nome)
Funcionários: I, E, A, C
Estudo de Caso – Vídeo Locadora
Filmes (id, título, categoria)
Funcionários: I, E, A, C
RIs:
a) categoria não nulo
b) categoria faz referência a Categorias
E: impedimento
A: cascata
c) I ou A com categoria inexistente: impedimento d) transação:
I de f ∈Filmes ⇒ I de ft ∈Fitas : ft.filme = f.id (pelo menos 1 tupla)
Estudo de Caso – Vídeo Locadora
Filmes (cont.) visão FilmeCat(f.id, f.título, count(ft.número)) com f ∈Filmes, ft