MODELO LÓGICO • Modelo lógico – É a próxima etapa do projecto de base de dados • Actualmente, grande parte dos sistemas de base de dados utiliza o modelo relacional
• Uma base de dados relacional é composto por:
– Tabelas (também denominadas relações)
Mauro Ribeiro Introduçãa a Base de Dados 2
Conceitos Básicos • TABELA – Estrutura bi-dimensional composta por linhas (tuplas) e campos (ou atributos).
Mauro Ribeiro Introduçãa a Base de Dados 3
CHAVE PRIMARIA (PK- Primary Key)
• Chave Primaria (PK)
– Atributo através do qual seja possível identificar determinado registro. – não pode ser repetida, o conjunto de valores que constituem a chave primária deve ser único dentro de uma tabela.
Mauro Ribeiro Introduçãa a Base de Dados 4
Tipos de Chaves Primarias
• Chave primaria simples
– apenas um atributo (campo) compõe a chave primária • Chave primaria composta – mais de um atributo compõe a chave primária
Mauro Ribeiro Introduçãa a Base de Dados 5
CHAVE UNICA (Unique) • Chave Unica (Unique) – Utilizada quando determinado campo não deve ser repetido e não é chave primária. – Aumenta a consistência da base de dados • Exemplo: – Num cadastro de funcionários cada um recebe um código único (PK) mas para maior segurança e consistência podemos optar que o campo NUIT também seja único, evitando que o mesmo funcionário seja cadastrado duas vezes.
Mauro Ribeiro Introduçãa a Base de Dados 6
Exemplo:
NUIT
Mauro Ribeiro Introduçãa a Base de Dados 7
CHAVE ESTRANGEIRA (FK – Foreign Key) • Chave Estrangeira (fk – foreign key) – Utilizada quando queremos que o valor de um atributo seja validado a partir do valor de atributo de outra tabela. – Criamos assim uma relação de dependência (um relacionamento) entre as tabelas. • Exemplo: – Antes de efectuar a alocação de um funcionário em um departamento é necessário que o departamento em questão conste na tabela de departamentos.
Mauro Ribeiro Introduçãa a Base de Dados 8
Exemplo
Mauro Ribeiro Introduçãa a Base de Dados 9
RELACIONAMENTOS • Relacionamentos – Associação estabelecida entre campos comuns de duas tabelas.
– Dessa forma permitimos o estabelecimento de
correspondência entre registros de diferentes tabelas.
Mauro Ribeiro Introduçãa a Base de Dados 10
CLASSIFICAÇÃO DE RELACIONAMENTOS • Os relacionamentos apresentam a seguinte classificação quanto à sua cardinalidade: – Relacionamento um-para-um (1:1) – Relacionamento um-para-muitos (1:N) – Relacionamento muitos-para-muitos (N:N) • No modelo logico – não é possível efectuar Relacionamento muitos-para- muitos de forma directa – para tal, deve-se construir uma terceira tabela com as chave primária composta de dois campos e as chaves estrangeiras provenientes das duas tabelas originais.
Mauro Ribeiro Introduçãa a Base de Dados 11
NOTAÇÃO RESUMIDA PARA MODELOS LÓGICOS • Observe o exemplo a seguir:
– Departamento (CodDept, Nome)
– Funcionario (CodFunc, Nome, NUIT, CodDept) CodDept referencia Departamento
Mauro Ribeiro Introduçãa a Base de Dados 12
Exemplo: • A notação resumida acima representa o seguinte relacionamento entre as tabelas Departamento e Funcionario:
– Observe que através da notação resumida não é
possível determinar se o relacionamento é do tipo 1:1 ou 1:N Mauro Ribeiro Introduçãa a Base de Dados 13 INTEGRIDADE DE DADOS • Integridade de Dados – Impor a integridade de dados garante a qualidade dos dados em uma base de dados. – Os dados devem refletir correctamente a realidade representada pela base e também devem ser consistentes entre si.
Mauro Ribeiro Introduçãa a Base de Dados 14
INTEGRIDADE DE DOMINIO • Integridade de Dominio – Zela pelos valores ideais e necessario para um atributo – Para isso definimos algumas regras de validação por meio de expressões compostas de valores constantes. • Exemplos: – Não permitir um stock negativo – Impedir uma data de nascimento superior à data actual – Não permitir que o valor de um produto seja negativo
Mauro Ribeiro Introduçãa a Base de Dados 15
INTEGRIDADE DE ENTIDADE • Integridade de Entidade – Tem o objectivo de validar os valores permitidos a partir de valores já inseridos na própria entidade. – Após uma “auto-consulta” a entidade vai permitir ou não a gravação do novo registro. • Exemplos: – Não permitir duas pessoas com o mesmo NUIT – Impedir o aluguar uma Filme que já está alugado
Mauro Ribeiro Introduçãa a Base de Dados 16
INTEGRIDADE REFERENCIAL • Integridade Referencial – Zela pela consistência dos registros de uma entidade a partir de valores provenientes de outras entidades – isto é, determinado registro vai “depender” directamente de um registro de outra tabela.
Mauro Ribeiro Introduçãa a Base de Dados 17
Exemplo: • Exemplos: – Um registro em uma tabela pai pode ter um ou mais registros em uma tabela filho. – Um registro em uma tabela filho sempre tem um registro coincidente em uma tabela pai. – Para a inclusão de um registro em uma determinada tabela filho, é necessário que exista um registro pai coincidente. – Um registro pai só poderá ser excluído se não possuir nenhum registro filho.
Mauro Ribeiro Introduçãa a Base de Dados 18
CONSTRAINTS (RESTRICOES) • Constraints (Restricoes) – Observe a seguir as principais constraints ou restrições utilizadas nas bases de dados relacionais – principalmente durante o processo de criação das tabelas, para implementar os tipos de integridade anteriormente descritos:
Mauro Ribeiro Introduçãa a Base de Dados 19
CONSTRAINTS (RESTRICOES)
Mauro Ribeiro Introduçãa a Base de Dados 20
NOMENCLATURA DE TABELAS E DE CAMPOS • Os sistemas de gerenciamentos de bases de dados geralmente impõem certas restrições quanto aos caracteres válidos para denominar tabelas, campos (colunas), bem como outros objectos da base de dados. • Observe a seguir o que deve ser evitado: – Não utilizar caracteres especiais (excepto o underscore “_”); – Começar com uma letra e não com um número; – Evitar acentuação e “ç”; – Não utilizar espaços.