Escolar Documentos
Profissional Documentos
Cultura Documentos
DISTANCIA (IED)
Modelo Relacional
Conteúdos
Introdução
Este tópico é dos mais essenciais no estudo em formação sobre sistemas de base de dados, pois aqui se
busca combinar as teorias relacionadas a esquemas e modelos conceituais e sua interacção no processo
de desenvolvimento de bases de dados relacionais. O domínio de conceitos Entidade Relacional ajuda
o futuro projectista de sistemas de bases de dados simples e completas para pessoas ou instituições
interessadas.
Durante o estudo deste tópico, é importante que o estudante procure não apenas ler os conceitos
apresentados neste texto de apoio, mais ler e fazer na pratica os exemplos usados. Usar uma folha á
parte para ir rabiscando os exemplos de modo que possa compreender melhor os conceitos aqui tratados
como são os casos de domínio, relação, atributos, entidade e tuplas, buscar compreender a diferenca
entre tuplas e atributos e este ultimo de domínio.
O modelo relacional
O modelo relacional representa o banco de dados como uma colecção de relações. Informalmente, cada
relação é semelhante a uma tabela de valores ou, até certo ponto, a um arquivo plano de registros. Ele
é chamado de arquivo plano porque cada registro tem uma simples estrutura linear ou plana. Por
exemplo, o banco de dados de arquivos mostrado na Figura 1 é semelhante à representação do modelo
relacional básico. No entanto, existem diferenças importantes entre relações e arquivos, conforme
veremos em breve.
Quando uma relação é considerada uma tabela de valores, cada linha na tabela representa uma colecção
de valores de dados relacionados. Uma linha representa um fato que normalmente corresponde a uma
entidade ou relacionamento do mundo real. Os nomes da tabela e de coluna são usados para ajudar a
interpretar o significado dos valores em cada linha. Por exemplo, a primeira tabela da Figura 1 é
chamada de ALUNO porque cada linha representa fatos sobre uma entidade particular de aluno. Os
nomes de coluna — Nome, Numero_aluno, Tipo_aluno e Curso — especificam como interpretar os
valores de dados em cada linha, com base na coluna em que cada valor se encontra. Todos os valores
em uma coluna são do mesmo tipo de dado.
Na terminologia formal do modelo relacional, uma linha é chamada de tupla, um cabeçalho da coluna
é chamado de atributo e a tabela é chamada de relação. O tipo de dado que descreve os tipos de valores
que podem aparecer em cada coluna é representado por um domínio de valores possíveis. Agora, vamos
definir esses termos — domínio, tupla, atributo e relação — de maneira formal.
Domínio
Um domínio D é um conjunto de valores atómicos. Com atómico, queremos dizer que cada valor no
domínio é indivisível em se tratando do modelo relacional formal. Um método comum de especificação
de um domínio é definir um tipo de dado do qual são retirados os valores de dados que formam o
domínio.
Também é útil especificar um nome para o domínio, para ajudar na interpretação de seus valores. alguns
exemplos de domínio são: Lista telefónica, Nomes, Idades de funcionários, etc.).
Um tipo de dado ou formato também é especificado para cada domínio. Por exemplo, o tipo de dado
para o domínio Numeros_telefone_nacional pode ser declarado como uma sequência de caracteres na
forma (dd)dddd-dddd, onde cada d é um dígito numérico (decimal) e os dois primeiros dígitos formam
um código de área de telefone válido. O tipo de dado para Idades_funcionario é um número inteiro entre
15 e 80.
Um domínio, portanto, recebe um nome, tipo de dado e formato. Informações adicionais para interpretar
os valores de um domínio também podem ser dadas; por exemplo, um domínio numérico como
Pesos_pessoa deveria ter as unidades de medida, como gramas ou quilos. O tipo de dados que descreve
os tipos de valores que podem aparecer em cada coluna é chamado de domínio
Atributo
Compreende-se por atributos as propriedades que descrevem entidades. Eles podem ser simples ou
compostos, de valor único ou multi-valorado.
derivados de entidades relacionadas, como o número de alunos de uma entidade CURSO pode ser
derivado contando o número de alunos que cursam o curso.
Um esquema relacional R, indicado por R(A1,A2, ..., An), é composto de um nome de relação R e uma
lista de atributos, A1, A2, ..., An. Cada atributo Ai é o nome de um papel desempenhado por algum
domínio D no esquema de relação R. D é chamado de domínio de Ai, e indicado por dom(Ai). Um
esquema de relação é usado para descrever uma relação; R é chamado de nome dessa relação. O grau
(ou aridade) de uma relação é o número de atributos n desse esquema de relação. O grau (ou aridade)
de uma relação é o número de atributos n desse esquema de relação.
Uma relação de grau sete, que armazena informações sobre alunos universitários, teria sete atributos
descrevendo cada aluno, da seguinte forma:
ALUNO(Nome, Cpf, Telefone_residencial, Endereco,Telefone_comercial, Idade, Media)
Para este esquema de relação, ALUNO é o nome da relação, que tem sete atributos. Na definição
anterior, mostramos a atribuição de tipos genéricos, como string ou inteiro, aos atributos. Mais
precisamente, podemos especificar os seguintes domínios já definidos para alguns dos atributos da
relação ALUNO: dom(Nome) = Nomes; dom(Cpf) = Cadastro_pessoa_ fisica;
dom(Telefone_residencial) = Numeros_telefone_ nacional, 3 dom(Endereco),
dom(Telefone_comercial) = Numeros_telefone_nacional e dom(Media) = Media. Também é possível
referenciar atributos de um esquema de relação por sua posição dentro da relação; assim, o segundo
atributo da relação ALUNO é Cpf, enquanto o quarto atributo é Endereço.
Entidade: é uma coisa ou objecto no mundo real com existência independente e de existência física
como carro, casa, pessoa, etc. ou de existência conceitual como uma empresa, Curso, Universidade,
projecto, etc.
Tuplas: na terminologia do modelo relacional, uma linha é chamada de tupla veja a figura 2.
Uma relação (ou estado de relação) r do esquema de relação R(A1 , A2 , ..., An ), também indicada por
r(R), é um conjunto de n tuplas r = {t 1 , t 2 , ..., t m}. Cada n tuplas t é uma lista ordenada de n valores
t =, em que cada valor vi , 1 ≤ i ≤ n, é um elemento de dom(Ai ) ou é um valor especial NULL. O valor
i -ésimo na tupla t, que corresponde ao atributo Ai , é referenciado como t[Ai ] ou t.Ai (ou t[i] se usarmos
a notação posicional). Os termos intenção da relação para o esquema R e extensão da relação para o
estado de relação r(R) também são comumente utilizados.
A Figura 2 mostra um exemplo de uma relação ALUNO, que corresponde ao esquema ALUNO já
especificado. Cada tupla na relação representa uma entidade de aluno em particular (ou objecto).
Apresentamos a relação como uma tabela, onde cada tupla aparece como uma linha e cada atributo
corresponde a um cabeçalho de coluna, indicando um papel ou interpretação dos valores nesta coluna.
Valores NULL representam atributos cujos valores são desconhecidos ou não existem para alguma tupla
individual de ALUNO.
1. Restrições que são inerentes no modelo de dados. Chamamos estas de restrições inerentes baseadas
no modelo ou restrições implícitas.
2. Restrições que podem ser expressas directamente nos esquemas do modelo de dados, em geral
especificando-as na DDL. Chamamos estas de restrições baseadas em esquema ou restrições
explícitas.
3. Restrições que não podem ser expressas directamente nos esquemas do modelo de dados, e, portanto,
devem ser expressas e impostas pelos programas de aplicação. Chamamos estas de restrições baseadas
na aplicação ou restrições semânticas ou regras de negócios.
Por exemplo, a restrição de que uma relação não pode ter tuplas duplicadas é uma restrição inerente.
As restrições que discutimos nesta seção são da segunda categoria, a saber, restrições que podem ser
expressas no esquema do modelo relacional por meio da DDL.
As restrições baseadas em esquema incluem restrições de domínio, restrições de chave, restrições sobre
NULLs, restrições de integridade de entidade e restrições de integridade referencial.
Restrições de Domínio
As restrições de domínio especificam que, dentro de cada tupla, o valor de cada atributo A deve ser um
valor indivisível do domínio dom(A). Os tipos de dados associados aos domínios normalmente incluem
os tipos de dados numéricos padrão para inteiros (como short integer, integer e long integer) e números
reais (float e double). Caracteres, booleanos, cadeia de caracteres de tamanho fixo e cadeia de caracteres
de tamanho variável também estão disponíveis, assim como data, hora, marcador de tempo, moeda ou
outros tipos de dados especiais. Outros domínios possíveis podem ser descritos por um subintervalo dos
valores de um tipo de dados ou como um tipo de dado enumerado, em que todos os valores possíveis
são explicitamente listados.
Suponha que indiquemos um subconjunto de atributos desse tipo como SCh; então, para duas tuplas
distintas quaisquer t1 e t2 em um estado de relação r de R, temos a restrição de que:
t1 [SCh] ≠ t2 [SCh]
Qualquer conjunto de atributos SCh desse tipo é chamado de superchave do esquema de relação R. Uma
superchave SCh especifica uma restrição de exclusividade de que duas tuplas distintas em qualquer
estado r de R não podem ter o mesmo valor de SCh. Cada relação tem pelo menos uma superchave
padrão — o conjunto de todos os seus atributos. Uma chave Ch de um esquema de relação R é uma
superchave de R com a propriedade adicional de que a remoção de qualquer atributo A de Ch deixa um
conjunto de atributos Ch’ que não é mais uma superchave de R. Logo, uma chave satisfaz duas
propriedades:
1. Duas tuplas distintas em qualquer estado da relação não podem ter valores idênticos para (todos) os
atributos na chave. Essa primeira propriedade também se aplica a uma superchave.
2. Ela é uma superchave mínima — ou seja, uma superchave da qual não podemos remover nenhum
atributo e ainda mantemos uma restrição de exclusividade na condição 1. Essa propriedade não é exigida
por uma superchave.
relação ALUNO da Figura 2. O conjunto de atributos {Cpf} é uma chave de ALUNO porque duas
tuplas de aluno não podem ter o mesmo valor para Cpf. Qualquer conjunto de atributos que inclua Cpf
— por exemplo, {Cpf, Nome, Idade} — é uma superchave. No entanto, a superchave {Cpf, Nome,
Idade} não é uma chave de ALUNO, pois remover Nome ou Idade, ou ambos, do conjunto ainda nos
deixa com uma superchave. Em geral, qualquer superchave formada com base em um único atributo
também é uma chave. Uma chave com múltiplos atributos precisa exigir que todos os seus atributos
juntos tenham uma propriedade de exclusividade.
O valor de um atributo de chave pode ser usado para identificar exclusivamente cada tupla na relação.
Por exemplo, o valor de Cpf 305.610.243-51 identifica exclusivamente a tupla correspondente a Bruno
Braga na relação ALUNO. Observe que um conjunto de atributos constituindo uma chave é uma
propriedade do esquema de relação; essa é uma restrição que deve ser mantida sobre cada estado de
relação válido do esquema. Uma chave é determinada com base no significado dos atributos, e a
propriedade é invariável no tempo: ela precisa permanecer verdadeira quando inserimos novas tuplas
na relação. Por exemplo, não podemos e não deve mos designar o atributo Nome da relação ALUNO
da Figura 2 como uma chave porque é possível que dois alunos com nomes idênticos existam em algum
ponto em um estado válido.
Em geral, um esquema de relação pode ter mais de uma chave. Nesse caso, cada uma das chaves é
chamada de chave candidata.
Por exemplo, a relação CARRO na Figura 3 tem duas chaves candidatas: Placa e Numero_chassi. É
comum designar uma das chaves candidatas como chave primária da relação. Essa é a chave candidata
cujos valores são usados para identificar tuplas na relação. Usamos a convenção de que os atributos que
formam a chave primária de um esquema de relação são sublinhados, como mostra a Figura 3. Observe
que, quando um esquema de relação tem várias chaves candidatas, a escolha de uma para se tornar a
chave primária é um tanto quanto arbitrária; porém, normalmente é melhor escolher uma chave primária
com um único atributo ou um pequeno número de atributos. As outras chaves candidatas são designadas
como chaves únicas (unique keys), e não são sublinhadas.
Outra restrição sobre os atributos especifica se valores NULL são permitidos ou não. Por exemplo, se
cada tupla de ALUNO precisar ter um valor válido, diferente de NULL, para o atributo Nome, então
Nome de ALUNO é restrito a ser NOT NULL.
Em algumas versões antigas do modelo relacional, era feita uma suposição de que o mesmo conceito
do mundo real, quando representado por um atributo, teria nomes de atributo idênticos em todas as
relações. Isso cria problemas quando o mesmo conceito do mundo real é usado em diferentes papéis
(significados) na mesma relação. Por exemplo, o conceito de Cadastro de Pessoa Física aparece duas
vezes na relação FUNCIONARIO da Figura 4: uma no papel do CPF do funcionário e outra no papel
do CPF do supervisor. Precisamos dar-lhes nomes de atributo distintos — Cpf e Cpf_supervisor,
respectivamente — porque eles aparecem na mesma relação e a fim de distinguir seu significado.
Restrições de integridade são especificadas em um esquema de banco de dados e espera-se que sejam
mantidas em cada estado de banco de dados válido desse esquema. Além das restrições de domínio,
chave e NOT NULL, dois outros tipos de restrições são considerados parte do modelo relacional:
integridade de entidade e integridade referencial.
A restrição de integridade referencial é especificada entre duas relações e usada para manter a
consistência entre tuplas nas duas relações. Informalmente, a restrição de integridade referencial afirma
que uma tupla em uma relação que referencia outra relação precisa se referir a uma tupla existente nessa
relação. Por exemplo, na Figura 5, o atributo Dnr de FUNCIONARIO fornece o número de
departamento para o qual cada funcionário trabalha; logo, seu valor em cada tupla FUNCIONARIO
precisa combinar com o valor de Dnumero de alguma tupla na relação DEPARTAMENTO.
Para definir a integridade referencial de maneira mais formal, primeiro estabelecemos o conceito de
uma chave estrangeira (ChE — foreign key). As condições para uma chave estrangeira, dadas a seguir,
especificam a restrição de integridade referencial entre os dois esquemas de relação R1 e R2. Um
conjunto de atributos ChE no esquema de relação R1 é uma chave estrangeira de R1 que referencia a
relação R2 se ela satisfizer as seguintes regras:
1. Os atributos em ChE têm o mesmo domínio (ou domínios) que os atributos de chave primária ChP
de R2; diz-se que os atributos ChE referenciam ou referem-se à relação R2.
2. Um valor de ChE em uma tupla t1 do estado actual r1 (R1) ocorre como um valor de ChE para alguma
tupla t2 no estado actual r2 (R2) ou é NULL. No primeiro caso, temos t1[ChE] = t2[ChP], e dizemos que
a tupla t1 referencia ou refere-se à tupla t2.
Para especificar essas restrições, primeiro devemos ter um conhecimento claro do significado ou papel
que cada atributo, ou conjunto de atributos, que fazem parte nos diversos esquemas de relação do banco
de dados. As restrições de integridade referencial surgem com frequência dos relacionamentos entre as
entidades representadas pelos esquemas de relação.
Por exemplo, considere o banco de dados mostrado na Figura 5. Na relação FUNCIONARIO, o atributo
Dnr refere-se ao departamento para o qual um funcionário trabalha; portanto, designamos Dnr para ser
a chave estrangeira de FUNCIONARIO que referencia a relação DEPARTAMENTO. Isso significa
que um valor de Dnr em qualquer tupla t1 da relação FUNCIONARIO precisa combinar com um valor
da chave primária de DEPARTAMENTO — o atributo Dnumero — em alguma tupla t2 da relação
DEPARTAMENTO, ou o valor de Dnr pode ser NULL se o funcionário não pertencer a um
departamento ou for atribuído a um departamento mais tarde. Por exemplo, na Figura 5, a tupla para o
funcionário ‘João Silva’ referencia a tupla para o departamento ‘Pesquisa’, indicando que ‘João Silva’
trabalha para esse departamento.
Figura 5: Um estado de banco de dados possível para o esquema de banco de dados relacional EMPRESA.
Observe que uma chave estrangeira pode se referir a sua própria relação. Por exemplo, o atributo
Cpf_supervisor em FUNCIONARIO refere-se ao supervisor de um funcionário; este é outro
funcionário, representado por uma tupla na relação FUNCIONARIO. Logo, Cpf_supervisor é uma
chave estrangeira que referencia a própria relação FUNCIONARIO. Na Figura 5, a tupla que o
funcionário ‘João Silva’ referencia é a tupla do funcionário ‘Fernando Wong’, indicando que ‘Fernando
Wong’ é o supervisor de ‘João Silva’.
Figura 6: Restrições de integridade referencial exibidas no esquema de banco de dados relacional EMPRESA
Todas as restrições de integridade deverão ser especificadas no esquema de banco de dados relacional
(ou seja, definidas como parte de sua definição) se quisermos impor essas restrições sobre os estados
do banco de dados. Logo, a DDL inclui meios para especificar os diversos tipos de restrições de modo
que o SGBD possa impô-las automaticamente. A maioria dos SGBDs relacionais admite restrições de
chave, integridade de entidade e integridade referencial. Essas restrições são especificadas como uma
parte da definição de dados na DDL.
Para melhor entendimento deste tema temos como exemplo uma aplicação simples de base de dados de
uma UNIVERSIDADE, que a usaremos para fazer compreender os conceitos básicos do modelo ER.
O banco de dados UNIVERSIDADE mantém dados dos alunos, professores, disciplinas, cursos e
departamentos da universidade. Suponha que após a fase de colecta e análise de requisitos os
projectistas do banco de dados provêm a seguinte informação sobre o mini-mundo - a parte da
universidade que deve ser representada no banco de dados.
Uma disciplina é oferecida por um professor e nessa oferta diversos alunos podem se matricular.
Para cada disciplina ofertada é necessário armazenar o ano e o semestre em que foi ofertada.
Para cada aluno que participa dessa oferta de disciplina é necessário armazenar a nota e a
frequência obtidas.
A figura 7, como o esquema para essa aplicação de banco de dados pode ser representado por meio de
um diagrama entidade-relacionamento. De seguida são apresentados os passo-a-passo para a geração
desse diagrama bem como os conceitos associados serão apresentados nos textos a seguir.
Atributos Chave
Uma importante restrição aos registros de uma entidade é a chave ou restrição de unicidade em atributos.
Uma entidade comumente tem um ou mais atributos que têm que ser distintos para cada registro dessa
entidade. Esse atributo é chamado de atributo chave e pode ser usado para identificar um registro
unicamente. Por exemplo, para a entidade ALUNO o atributo chave é a Matricula. Às vezes mais de
um atributo juntos formam a chave, por exemplo a entidade DEPARTAMENTO, que tem como chaves
o nome e o número. Um atributo chave é identificado no modelo ER com o nome sublinhado.
Um tipo de relacionamento R relaciona n tipos de entidades E1; E2; : : : ;En e define um conjunto de
relações entre esses tipos de entidades. Cada relacionamento ri do tipo de relacionamento R é uma
associação de entidades, onde a associação inclui exactamente uma entidade de cada tipo de entidade
envolvida. Por exemplo, considere o tipo de relacionamento TRABALHA entre PROFESSOR e
DEPARTAMENTO, que relaciona cada professor com o departamento no qual ele trabalha. A colecção
de todos os elementos de um tipo de relacionamento é chamada conjunto do relacionamento. Nos
diagramas ER tipos de relacionamentos são representados como losangos que são conectados por linhas
retas às entidades que dele participam.
relacionamento de grau dois é chamado binário, enquanto um relacionamento de grau três é chamado
ternário. Um exemplo de relacionamento ternário é OFERTA, que relaciona uma DISCIPLINA a um
PROFESSOR e a um ALUNO. Nesse caso oferta foi representada como uma entidade associativa
ligando as três entidades que relaciona. Raramente um relacionamento envolve mais de três entidades.
Cada entidade que participa de um relacionamento representa um determinado papel. Por exemplo, no
relacionamento TRABALHA o PROFESSOR representa o papel de empregado e o departamento
representa o papel de empregador. Em alguns casos a mesma entidade participa mais de uma vez num
mesmo relacionamento em diferentes papéis. Esses são os relacionamentos recursivos. Por exemplo, a
entidade DISCIPLINA participa duas vezes do relacionamento PREREQUISITO, uma no papel de
“depende de” e outra no papel de “é necessária para”.
Restrições em Relacionamentos
Comumente relacionamentos têm restrições que limitam seu número de participantes. Essas restrições
são derivadas do mini-mundo que o modelo ER representa. Por exemplo, um PROFESSOR deve ser
associado a exactamente um DEPARTAMENTO. Esses tipos de restrições devem ser representados no
modelo. Há dois tipos principais de restrições em relacionamentos: as de taxa de cardinalidade e de
participação.
Um exemplo de relacionamento 1:1 é OFERECE, que associa um departamento ao curso que oferece.
O relacionamento CONTEM é um relacionamento M:N pois um curso contém várias disciplinas e uma
disciplina pode estar presente em vários cursos.
As restrições de taxa de cardinalidade são representadas na ponta da linha que liga o relacionamento à
entidade. Uma ponta com um traço indica participação individual da entidade no relacionamento; uma
ponta tripla representa a participação de N elementos da entidade no relacionamento. Por exemplo, na
Figura 7 participam do relacionamento TRABALHA um DEPARTAMENTO e N entidades de
PROFESSOR.
Restrições de Participação
A restrição de participação especifica se a existência de uma entidade depende dela ser relacionada a
outra via relacionamento. Essa restrição especifica um número mínimo de entidades que deve participar
Como exemplo, não se espera que cada departamento ofereça um curso, dessa forma a participação de
DEPARTAMENTO no relacionamento OFERECE é parcial, significando que alguns departamentos
são relacionados a um curso via OFERECE, mas não necessariamente todos. Um exemplo dessa
situação é o departamento de ciências exactas em um instituto de engenharia. Esse departamento oferece
diversas disciplinas, mas não é responsável por nenhum dos cursos de engenharia. As restrições de taxa
de cardinalidade e de participação são consideradas conjuntamente como as restrições estruturais de um
relacionamento.
As restrições de participação são representadas também na ponta da linha que conecta o relacionamento
à entidade, antes do indicador de taxa de cardinalidade. Uma participação total é representada por um
círculo e uma participação parcial é representada por um traço. Por exemplo, considere na Figura 7 que
há uma participação parcial de DEPARTAMENTO no relacionamento OFERECE e uma participação
total de CURSO nesse mesmo relacionamento.
Atributos de Relacionamentos
Relacionamentos também podem ter atributos. Por exemplo, a nota que um aluno obteve em uma
OFERTA de disciplina pode ser incluída como um atributo do relacionamento OFERTA. Outro
exemplo é a DataInicio em que um professor começou a trabalhar em um departamento, que pode ser
definido como um atributo do relacionamento TRABALHA.
Entidades Fracas
Entidades que não têm atributos chave próprios são chamadas entidades fracas. Registros pertencentes
a uma entidade fraca são identificadas por serem relacionadas a outras entidades em combinação com
um ou mais de seus atributos. Essa outra entidade é chamada entidade proprietária e o relacionamento
que relaciona a entidade fraca a sua proprietária é chamado relacionamento identificador da entidade
fraca.
Uma entidade fraca sempre tem uma restrição de participação total em seu relacionamento identificador.
Por exemplo, a entidade DEPENDENTE, relacionada a um PROFESSOR. Os atributos de um
dependente são seu nome, sua data de nascimento e relacionamento (com o professor). É possível que
dois dependentes de dois professores distintos tenham o mesmo nome, género e relacionamento. Esses
são identificados como registros distintos apenas ao examinar o professor com o qual estão
relacionados.
Uma entidade fraca normalmente tem uma chave parcial, que é o atributo que pode identificar
unicamente registros de uma entidade fraca que são relacionadas à mesma entidade proprietária. Nos
diagramas ER, ambas entidades fracas e seu relacionamento identificador são distinguidos por conter
linhas duplas no rectângulo e losango que os representam.
Referencias bibliográficas
Navathe, E. &. (2011). Sistemas de Banco de Dados. In T. Baboaka & R. Trimer (Eds.), Journal
of Chemical Information and Modeling (6th ed., Vol. 6ed). Sao Paulo, Brasil:
França, C. T. P. L., & Celestino Jr., J. (2015). Computação Banco Banco de Dados (2nd ed.;
(Conselho Editorial), Ed.). Fortaleza-Ceará: EdUECE;