Eng. de Software | Projeto e otimização de banco de dado | Modelo Relacional
Conceitos do modelo relacional
O Modelo Relacional é um modelo de dados proposto pelo pesquisador Edgar F. Codd em 1970 e tem seus fundamentos na teoria de conjuntos. Está baseado no princípio de que os dados são guardados em tabelas relacionais, também chamadas de relações.
Uma tabela ou relação consiste em uma entidade bidimensional, constituída de linhas (ou tuplas) e colunas (ou atributos). Cada linha da tabela representa uma coleção de valores de dados relacionados, que podem ser interpretados como fatos que descrevem uma entidade ou um relacionamento.
O nome da tabela e os nomes das colunas são usados para ajudar na interpretação do significado dos valores em cada linha da tabela. Um banco de dados relacional é um banco de dados que modela os dados de tal forma que eles sejam percebidos pelo usuário como tabelas. O termo está relacionado aos dados organizados segundo o Modelo Relacional, ou a um Sistema Gerenciador de Banco de Dados Relacional (SGBDR) – do inglês Relational Database Management System (RDBMS) – um software que implementa a abstração.
Definição matemática de relação
Considere conjuntos, não necessariamente disjuntos D1, D2, …, Dn de valores atômicos.
R é uma relação sobre estes conjuntos (domínios de R), se e somente se R é um conjunto de n-uplas (tuplas) ordenadas <d1, d2, … , dn>, tal que para i=1, 2, …, n di pertence a Di.
Exemplo:
A = {1, 2, 3, 4, 5}
B = {2, 3, 4, 6, 7}
R = B é o dobro de A
R = {(2,1), (4,2), (6,3)}
Conceitos do modelo relacional
Vejamos agora os conceitos do modelo relacional:
Relação = Tabela bi-dimensional, composta de linhas e colunas de dados
Relação recursiva = Relaciona o objeto a si mesmo
Atributo = Coluna
Grau de uma relação = Número de atributos
Tupla = Cada linha da relação
Domínio de um atributo = Conjunto ao qual pertence os valores de um atributo
Exemplo:
O atributo SEXO de uma tabela ALUNO só pode conter os valores M (masculino) e F (feminino).
Valor nulo de um atributo de uma tupla = Atributo inaplicável ou com valor desconhecido
Esquema de Banco de Dados Relacional = Nomes das relações seguidos pelos nomes dos atributos, com os atributos chaves sublinhados e com as chaves estrangeiras identificadas (duplo sublinhado).
Projeto (design) de bancos de dados
Temos aqui um esquema de um projeto (design) de um banco de dados. Veja como é o seu funcionamento:
Exemplo de Esquema (Modelo Lógico):
FUNCIONÁRIO (MAT, NOME, ENDERECO, CPF, DT_ADM, CODDEPTO, CODCARGO)
CARGO (CODCARGO, DESC_CARGO)
DEPARTAMENTO (CODDEPTO, NOME_DEPTO)
Exemplo de diagrama de entidades e relacionamentos (modelo conceitual)
Observe o exemplo de um diagrama de entidades e relacionamentos (modelo conceitual) e suas características:
Exemplo de relações ou tabelas (modelo físico)
Vejamos agora um exemplo de um modelo físico em forma de tabelas:
Conceitos
Entenda o conceito de cada item de uma relação:
Atributo identificador:
O atributo ou conjunto de atributos que será utilizado para identificar instâncias de uma entidade faz parte do modelo conceitual.
Chave
Designa o conceito de item de busca, isto é, um atributo ou conjunto de atributos que será utilizado nas consultas à base de dados. É um conceito lógico da aplicação.
Índice
É um recurso físico que visa otimizar a recuperação de uma informação via método de acesso. O banco de dados usa o índice de maneira semelhante ao índice remissivo de um livro, verifica um determinado assunto no índice e depois localiza a sua posição em uma determinada página.
Obs.: Uma chave pode ser utilizada como índice, mas um índice não é, necessariamente, uma chave.
Chave candidata
Deve ser única, ou seja, nenhuma tupla de uma mesma relação pode ter o mesmo valor para o atributo escolhido como chave candidata. Deve ser irredutível, nenhum subconjunto da chave candidata pode ter sozinho a propriedade de ser único. Pode ser:
Simples: quando é composta por apenas um atributo;
Composta: quanto possui mais de um atributo para formar a chave.
Chave primária
É um caso especial da chave candidata. É a escolhida entre as candidatas para identificar unicamente uma tupla.
Chave estrangeira
É quando um atributo de uma relação é chave primária em outra. Constitui um conceito de vital importância no modelo relacional: é o elo lógico entre as tabelas (relacionamentos).
Através das operações com as chaves estrangeiras que se garante a Integridade Referencial do banco de dados que você verá a seguir.
Regras de integridade do modelo relacional
Conheça agora as regras de integridade do modelo relacional:
Regras de integridade
Regras que devem ser obedecidas em todos os estados válidos da base de dados (podem envolver uma ou mais linhas de uma ou mais tabelas. São elas:
a) Domínio
b) Chave
c) Entidade
d) Referencial
Integridade de domínio
Especificam que dentro de cada tupla o valor de cada atributo deve ser um valor atômico. Os tipos de dados associados aos domínios incluem:
• Inteiros (inteiro curto, inteiro e inteiro longo);
• Números reais (ponto flutuante e flutuante de precisão dupla);
• Caracteres booleanos;
• Cadeias de caracteres (data, hora, timestamp) etc.
Integridade de chave
A chave é um atributo ou conjunto de atributos cujo valor ou combinação de valores deve ser único em qualquer instância da relação.
Integridade de entidade
O valor da chave não pode ser vazio (nulo). A chave primária serve como representante na base de dados de uma entidade – se a chave primária for vazia, a linha não corresponde a nenhuma entidade.
Integridade referencial
As chaves estrangeiras tem que ser respeitadas, ou seja, se existe um determinado valor para o atributo na tabela onde ele é chave estrangeira esse valor deve existir na tabela onde ele é chave primária.
Integridade semântica
Restrições de integridade semântica ou regras do negócio também podem ser especificadas no Banco de Dados. Essas restrições dependem da semântica do negócio ou da aplicação. Exemplos:
Um funcionário só pode participar de 3 projetos ao mesmo tempo.
O menor salário da empresa deve ser maior ou igual ao salário mínimo vigente.
Todo funcionário deve estar lotado em um departamento.
Atividade Proposta
(AOCP/BRDE – 2011 – ANALISTA DE SISTEMAS) Na terminologia formal do modelo relacional, encontramos os seguintes termos: tupla, atributo, relação e domínio. Defina-os individualmente.
Chave de resposta:
Existem alguns termos utilizados na terminologia do modelo relacional formal, entre eles destacam-se os abaixos relacionados e suas respectivas definições:
• O termo Tupla refere-se a uma linha de uma relação;
• O termo Atributo refere-se a um cabeçalho de coluna de uma relação;
• O termo Relação refere-se a uma tabela;
• O termo Domínio (D) refere-se a um conjunto de valores atômicos. Considerando que, por atômicos, entendemos que cada valor no domínio é indivisível no que diz respeito ao modelo relacional.
Referências
ELMASRI, R.; NAVATHE, S., Sistemas de banco de dados. 4. ed. Pearson Education do Brasil, 2005.
SILBERSCHATZ, Abraham; KORTH, Henry F; SUDARSHAN, S. A. 5. ed. Sistema de banco de dados. Rio de Janeiro: Campus, 2006.
Notas
Atributo identificador: Conjunto de atributos que será utilizado para identificar instâncias de uma entidade.
Chave Estrangeira (Foreing Key): Mecanismo que permite a implementação de relacionamentos no modelo relacional.
Chave Primária (Primary Key): Um campo ou conjunto de campos escolhidos pelo projetista do banco de dados como de significado principal para a identificação exclusiva de um registro dentro de uma tabela de dados.
Chave: Designa o conceito de item de busca.
Domínio (Domain): Conjunto de valores que um determinado atributo (ou campo) pode assumir.
Índice: Recurso físico que visa otimizar a recuperação de uma informação.
Integridade Referencial: Utilizada para garantir a integridade dos dados entre tabelas relacionadas.
Regras de integridade: Regras que estabelecem quando uma base de dados está correta.
Eng. de Software | Projeto e otimização de banco de dado | Modelo Relacional