Bancos de Dados - Aula 05 – Modelo Relacional (R) – características, formalização e restrições
Introdução ao Modelo Relacional
O que é o Modelo Relacional?
- O modelo relacional representa um banco de dados como uma coleção de relações, onde cada relação é uma tabela. Cada linha da tabela representa um conjunto de valores relacionados, enquanto as colunas representam os atributos dessa relação.
- As aulas anteriores abordaram entidades e relacionamentos no modelo entidade-relacionamento, conceitos que também são aplicáveis ao estudo do modelo relacional, mas com uma nova perspectiva.
Implementação do Modelo Relacional
- O modelo relacional é o mais próximo da implementação em sistemas gerenciadores de banco de dados (SGBD), sendo utilizado em SGBDs relacionais ou objeto-relacionais que suportam características do modelo.
- É essencial entender a nomenclatura formal do modelo relacional e seu mapeamento para a terminologia comum utilizada nas empresas que desenvolvem projetos de banco de dados.
Conceitos Fundamentais do Modelo Relacional
- Quatro conceitos principais no modelo relacional: relação (ou tabela), atributo (coluna), domínio (tipo de dado) e tupla (linha). A relação pode ser vista como uma tabela, os atributos como colunas e os domínios como tipos dos dados.
- Um exemplo prático é a relação "funcionário", que possui vários atributos organizados em colunas. Cada linha representa um fato real sobre um funcionário específico.
Estrutura das Relações
Esquema da Relação
- O esquema da relação R é composto por uma lista de atributos. Cada atributo pode assumir diferentes valores conforme definido pelo domínio associado a ele.
- No exemplo do esquema "funcionário", temos atributos como identificador, nome, endereço, salário e data de nascimento. Cada atributo tem um tipo específico que define o conjunto possível de valores.
Composição das Tuplas
- Uma tupla é composta por uma lista ordenada de valores correspondentes aos atributos definidos na relação. Isso implica que a ordem dos elementos dentro da tupla é importante para sua interpretação correta.
- A notação para referenciar valores específicos dentro das tuplas utiliza índices baseados na posição dos elementos na lista ordenada. Por exemplo, t3 refere-se à terceira tupla no atributo nome.
Ordenação e Comparação nas Relações
Importância da Ordenação
- A ordenação das duplas em uma relação não importa; duas relações podem ter as mesmas duplas em ordens diferentes e ainda assim serem consideradas iguais. Contudo, a ordem dos valores dentro das duplas deve ser respeitada para garantir precisão nos dados representados.
Relações e Atributos no Modelo Relacional
Diferenças nas Relações
- A ordem dos atributos em diferentes relações pode afetar a interpretação dos dados, mesmo que os valores sejam os mesmos. Por exemplo, na relação "dente" e "nome", a ordem é diferente da relação "ser".
Valores nos Atributos
- Os valores inseridos nos atributos devem ser atômicos. Atributos compostos ou multivalorados do modelo entidade-relacionamento não são permitidos no modelo relacional.
Representação de Valores Desconhecidos
- O valor "nulo" é utilizado para representar informações desconhecidas ou que não se aplicam a um determinado atributo. É importante distinguir entre "nulo" e "não aplicável".
Restrições do Modelo Relacional
- O modelo relacional possui várias restrições que garantem a integridade dos dados, sendo uma delas a restrição de domínio, que especifica que cada valor deve ser atômico e pertencer a um domínio definido.
Chaves e Superchaves
- Cada relação deve ter elementos únicos; isso implica que as duplas (tuplas) em uma relação não podem ter combinações idênticas de valores para todos os seus atributos.
Conceito de Superchave
- Uma superchave é qualquer conjunto de atributos cuja combinação garante unicidade entre as tuplas. Toda relação tem pelo menos uma superchave composta por todos os seus atributos.
Definição de Chave Primária
- A chave primária é um subconjunto mínimo de uma superchave capaz de identificar unicamente as tuplas dentro da relação. Um identificador único é suficiente para diferenciar funcionários, por exemplo.
Chaves Candidatas
- Uma relação pode ter múltiplas chaves candidatas, das quais uma será escolhida como chave primária. As demais serão consideradas chaves alternativas.
Implicações das Restrições
Integridade de Entidades e Referencial em Modelos Relacionais
Integridade de Entidades
- A integridade de entidades assegura que nenhum valor nulo seja permitido em atributos definidos como chave primária, pois estes são essenciais para identificar dados dentro de uma relação.
- Para garantir a consistência dos dados, a integridade de entidade proíbe o cadastro de valores nulos nas chaves primárias, sendo essa responsabilidade do sistema gerenciador de banco de dados (SGBD).
Integridade Referencial
- A integridade referencial é crucial para manter a consistência entre duas relações. Por exemplo, um funcionário deve referenciar um departamento existente no sistema.
- Não é permitido cadastrar um funcionário que trabalhe para um departamento inexistente, pois isso causaria inconsistências nos dados.
Implementação da Integridade Referencial
- A implementação da integridade referencial envolve o uso de chaves estrangeiras que fazem referência a chaves primárias em outras relações.
- As restrições incluem que os atributos da chave estrangeira devem ter o mesmo domínio dos atributos da chave primária na relação referenciada.
Exemplos Práticos
- No modelo relacional apresentado, a relação "Funcionário" possui um atributo identificador chamado "dente", enquanto "Departamento" tem "número" como chave primária.
- O atributo "b num tributo" na relação Funcionário é uma referência ao número da chave primária do Departamento, indicando que cada funcionário está associado a um departamento específico.
Importância das Restrições
- É fundamental garantir que as referências entre as relações sejam consistentes; ou seja, cada funcionário deve se relacionar com um departamento já existente.