Modelo de Dados Relacional

Modelo de Dados Relacional

1. Conceitos do Modelo Relacional

- O modelo relacional representa o banco de dados como uma coleção de relações;
- Uma relação pode ser vista como uma tabela ou arquivo;
- Quando uma relação é vista como uma tabela, cada linha é representa uma coleção de dados relacionados;
- Ou seja, pode ser encarada como uma instância de uma entidade ou de um relacionamento;
- Na terminologia do modelo relacional formal, cada linha é uma tupla, o nome de uma coluna é chamado de atributo e uma tabela é chamada de relação;
- Os tipos de dados de cada coluna são chamados domínios;
- Para um domínio é dado um nome, tipo de dado e um formato;

Um esquema de relação é feito de um nome de relação (R) e uma lista de atributos (A1, A2, .., An). Cada atributo Ai é o nome desempenhado por algum domínio D no esquema R. O grau de uma relação é o número de atributos (n) de seu esquema de relação. Uma relação pode ser definida matematicamente como um subconjunto do produto cartesiano dos domínios que definem o esquema R.



2. Características de Relações

- Uma relação é diferente de uma tabela ou arquivo.
- Ordem de tuplas em uma relação. Uma relação é definida como um conjunto de tuplas.
- Matematicamente falando, elementos de um conjunto não têm ordem entre eles.
- Entretanto, muitas ordens lógicas podem ser especificadas para uma relação, embora, pela definição de relação, não exista qualquer ordem. Quando uma relação é implementada como um arquivo, uma ordem física tem que ser imposta.
Ordem de valores dentro de uma tupla. De acordo com a definição de relação dada acima, uma tupla é uma lista ordenada de valores. Nesta situação, é importante a ordem em que os atributos aparecem em um esquema de relação. Entretanto, esta ordem não é realmente importante, desde que seja mantido a correspondência entre atributos e valores.
Valores nas tuplas. Cada valor em uma tupla terá um valor atômico, ou seja, atributos compostos ou multivalorados não são permitidos. Esta é a chamada primeira forma normal. Um valor especial, chamado null, é usado para quando não se sabe o valor do atributo ou o valor não é aplicável.
Interpretação de uma relação. Um esquema de relação pode ser interpretado como um fato (ou assertiva); ou pode ser visto como a representação de entidades ou de relacionamentos; ou ainda, pode ser visto como predicados, neste caso, os valores das tuplas representariam os valores que satisfazem os predicados.


3. Restrições Relacionais

Restrições de Domínio. Especifica que o valor de cada atributo A deve ser um valor atômico do domínio dom(A).
Restrições de chave. Por definição, todos os elementos de um conjunto são distintos. Consequentemente, todas as tuplas em uma relação devem também serem distintas. Isto significa que não deve existir duas tuplas com a mesma combinação de valores para todos os atributos. Usualmente, existem outros subconjuntos de atributos com a mesma propriedade acima, que são chamados super-chave, que especifica a restrição de ser único. Toda a relação tem, no mínimo, uma super-chave que é a junção de todos os atributos. Uma super-chave pode ter, entretanto, atributos redundantes (ou seja não necessários para serem únicos). Um conceito mais útil é o de chave, que é uma super-chave com a propriedade de que se eliminarmos qualquer atributo leva a um conjunto de atributos que não mais é uma super-chave. A restrição de ser única é para todo o estado da relação no esquema, ou seja, deve ser atingida mesmo quando novas tuplas são inseridas na relação. Se uma relação tem mais de uma chave, estas são chamadas chaves candidatas. Uma das chaves candidatas é designada chave primária.
Restrição de nulo. Pode ser especificado se valor nulo pode ou não ser permitido.


4. Bancos de Dados Relacionais e Esquemas

Um banco de dados relacional contem muitas relações e as tuplas (das relações) de alguma forma estão relacionadas.
Um esquema de banco de dados relacional é um conjunto de esquemas de relações e um conjunto de restrições de integridade.
O estado de um banco de dados relacional é um conjunto de estados de relação.


5. Integridade de Entidade, Integridade Referencial e Chaves Estrangeiras

A restrição de integridade de entidade diz que nenhum valor de chave primária pode ser nulo. Esta restrição (assim como a restrição de chave) é aplicada em relações individuais.
A restrição de integridade referencial é especificada entre duas relações e é usada para manter a consistência entre tuplas das duas relações. Informalmente, a restrição de integridade referencial diz que uma tupla da relação (R1), que refere-se a outra relação (R2), deve referir-se a uma tupla existente em R2.
Uma chave estrangeira especifica uma restrição de integridade referencial entre duas relações R1 e R2, de tal forma que, se um conjunto de atributos FK no esquema de relação R1 é uma chave estrangeira de R1 que referencia a relação R2 se esta satisfaz as seguintes duas regras: (i) Os atributos de FK tem o mesmo domínio que os atributos da chave primária PK de R2, onde os atributos FK são ditos que se referem a relação R2; (ii) Um valor de FK em uma tupla t1 de R1, ou ocorre em uma tupla t2 de R2 ou tem valor nulo.
As restrições de integridade referencial tipicamente vem dos relacionamentos entre entidades representadas pelo esquema de relação.
Uma chave estrangeira pode referir-se a sua própria relação. O relacionamento de supervisão na entidade empregado, por exemplo.
É possível mostrar diagramaticamente as restrições de integridade através de uma seta que liga cada chave estrangeira a respectiva chave primária da relação referenciada.
As restrições de integridade referencial não incluem uma grande classe de restrições mais gerais conhecidas como restrições de integridade semântica. Exemplos dessas restrições podem ser: (a) o salário de um empregado não pode exceder o salário de seu supervisor; ou (b) o número máximo de horas que um empregado pode trabalhar em todos os projetos por semana não pode ultrapassar 40 horas.
Triggers podem ser usados para esta função.
Dois tipos de restrições existem: (i) restrições de estado (ou restrições estáticas); e (ii) restrições de transição (ou restrições dinâmicas). Um exemplo de transição de transição pode ser que o salário de um empregado só pode aumentar nunca diminuir.




6. Operação de Atualização e Violação de Restrições

6.1. Operação de inserção

Provê uma lista de valores de atributos para uma nova tupla que deverá ser inserida na relação R
Pode violar:
Restrição de domínio (valor não correspondente ao domínio especificado)
Restrição de chave (se um valor de chave já existe)
Integridade de entidade (se a chave primária é nula)
Integridade referencial (se o valor da chave estrangeira refere-se a uma tupla que não existe na relação referenciada)
Geralmente o SGBD deve rejeitar uma inserção que viole essas restrições


6.2. Operação de deleção

Pode violar somente integridade referencial.
Ocorre quando a tupla sendo deletada é referenciada pela chave estrangeira de outras tuplas no banco de dados.
Três opções estão disponíveis:
Rejeitar a deleção
Propagar a deleção
Modificar o valor do atributo sendo referenciado, seja colocando o valor null ou colocar um outro valor válido. Se o atributo referenciado fizer parte da chave primária o atributo não poderá assumir valor nulo, senão será violada a restrição de integridade.


6.3. Operação de Atualização

Usada para alterar os valores de um ou mais atributos em uma tupla
Atributos que não são chaves primárias ou estrangeiras, não tem problemas, exceto a checagem de tipos e domínios
Modificar uma chave primária é a mesma coisa que apagar uma tupla e inserir outra em seu lugar. Inserção e deleção se aplica aqui.
Se uma chave estrangeira é modificada, o SGBD tem que garantir que o novo valor refere-se a uma tupla existente na relação referenciada.
Postar um comentário

Postagens mais visitadas deste blog

MANUAL DE REDAÇÃO DA PRESIDÊNCIA DA REPÚBLICA

Plural de substantivos compostos