Buscar

modelo relacional

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

�����������	
����
�
Abordagem Relacional
• Abordagem de modelagem de dados usada nos sistemas de gerência 
de banco de dados do tipo relacional.
• Modelagem em nível lógico (SGBD) e não conceitual.
• Aqui apresentados:
– conceitos mínimos necessários à compreensão do projeto de 
bancos de dados relacionais.
�
Composição de um Banco de Dados Relacional
• relações
– compostas de
• tuplas,
• atributos,
• Chaves primárias,
– relacionadas através de
• Chaves estrangeiras.
�
Tabela - conceitos
�
Emp:
�
Tabela - conceitos
�
Emp:
tabela ou relação
�
Tabela - conceitos
�
Emp:
nome da tabela
�
Tabela - conceitos
�
Emp:
linha ou tupla
�
Tabela - conceitos
�
Emp:
coluna ou atributo
�
Tabela - conceitos
�
Emp:
nome de campo
ou
nome de atributo
��
Tabela - conceitos
��
Emp: valor de campo
ou
valor de atributo
��
Terminologias
��
��
Terminologias
��
aqui
usada
�
Características de relações
• Tuplas de uma relação não estão ordenadas
• (Isto é, linhas de uma tabela não estão ordenadas).
• Valor de atributo:
– atômico,
– monovalorado.
�
��
Acesso a relações
• Acesso por quaisquer critérios envolvendo os atributos de uma ou 
mais tuplas.
• Programadores escrevem consultas sem considerar a existência de 
caminhos de acesso.
• Caminho de acesso:
• estrutura auxiliar (índice, cadeia de ponteiros,...).
– acelera a recuperação de registros por determinados critérios;
– evita a leitura exaustiva de todos registros de um arquivo.
��
��
Chave
• Conceito usado para especificar restrições de integridade básicas de 
um SGBD relacional.
• Três tipos:
– chave primária
– chave alternativa
– chave estrangeira
��
��
Chave primária
��
Chave primária
Uma chave primária é um atributo ou uma 
combinação de atributos cujos valores distinguem 
uma tupla das demais dentro de uma relação
��
Chave primária
��
chave primária
Dependente:
��
Chave primária - minimalidade
��
não é chave 
primária
Chave primária deve ser mínima.
Dependente
��
Chave estrangeira
• Mecanismo que permite a implementação de relacionamentos em um 
banco de dados relacional.
��
Chave estrangeira
Um atributo ou uma combinação de atributos, 
cujos valores aparecem necessariamente na 
chave primária de uma relação
����
Depto:
Emp:
chave 
estrangeira
Chave estrangeira
����
Depto:
Emp:
Emp.CodigoDepto é uma 
chave estrangeira em relação 
a relação Depto.
Chave estrangeira
��
Chave estrangeira
validação pelo SGBD (1)
• Quando da inclusão de uma tupla na relação que contém a chave 
estrangeira:
– o valor da chave estrangeira deve aparecer no atributo da chave 
primária referenciada.
• Quando da alteração do valor da chave estrangeira:
– o novo valor de uma chave estrangeira deve aparecer no atributo da 
chave primária referenciada.
��
�
Chave estrangeira
validação pelo SGBD (2)
• Quando da exclusão de uma tupla da relação que contém a chave 
primária referenciada pela chave estrangeira:
– No atributo chave estrangeira não deve aparecer o valor da chave
primária que está sendo excluída
�
��
Chave estrangeira na mesma relação
��
Emp:
��
Chave estrangeira na mesma relação
��
chave estrangeira
referencia a chave
primária da própria
relação
Emp
��
Chave alternativa ou única (SQL)
• Mais de um atributo ou combinações de atributos podem servir para 
distinguir uma tupla das demais.
• Um dos atributos (ou combinação de atributos) é escolhido como 
chave primária.
• Os demais atributos ou combinações são denominados chaves 
alternativas.
– (UNIQUE KEY em SQL)
��
��
Chave alternativa
��
Emp:
chave 
alternativa
��
Domínio de atributo
��
Domínio de atributo
Conjunto de valores que podem aparecer em uma 
atributo (coluna)
��
Valor vazio
• Um valor de atributo pode assumir o valor especial vazio (“null” em 
inglês).
• atributos nos quais:
a) não são admitidos valores vazios são chamadas de atributos 
obrigatórios;
b) podem aparecer valores vazios são chamados de atributos opcionais.
• Abordagem relacional:
a) Todos os atributos que compõem a chave primária devem ser 
obrigatórios;
b) as demais chaves podem conter atributos opcionais.
��
�
Restrições de integridade
• Objetivo primordial de um SGBD:
– garantir a integridade de dados.
• Para garantir a integridade de um banco de dados:
– SGBDs oferecem mecanismos de especificação de restrições de 
integridade.
• Uma restrição de integridade é uma regra de consistência de dados 
que é garantida pelo próprio SGBD.
�
�
Restrições de integridade
básicas
• Integridade de domínio
• Integridade de vazio
• Integridade de chave
• Integridade referencial
• Restrições acima:
– garantidas automaticamente por um SGBD relacional através de 
especificação declarativa.
– Não é exigido que o programador escreva procedimentos para 
garanti-las explicitamente
�
�
Restrições de integridade 
semânticas
• Há muitas outras restrições de integridade que não se encaixam nas 
categorias básicas.
• Essas restrições são chamadas de restrições semânticas (ou regras 
de negócio).
• Exemplos de restrições semânticas:
– Um empregado do departamento denominado “Finanças” não pode 
ter a categoria funcional “Engenheiro”.
– Um empregado não pode ter um salário maior que seu superior 
imediato.
�
Especificação de banco de dados relacional
• A especificação de um banco de dados relacional (chamada de 
esquema do banco de dados) deve conter no mínimo a definição do 
seguinte:
1. relações que formam o banco de dados,
2. atributos que as relações possuem,
3. Restrições de integridade.
�
Exemplo de esquema
de modelo relacional resumido
�
Emp (CodigoEmp,Nome,CodigoDepto,CategFuncional,CIC)
CodigoDepto referencia Dept
Dept (CodigoDepto,Nome)
Emp (CodigoEmp,Nome,CodigoDepto,CategFuncional,CIC)
CodigoDepto referencia Dept
Dept (CodigoDepto,Nome)
�
Exemplo de esquema
de modelo relacional resumido
�
Emp (CodigoEmp,Nome,CodigoDepto,CategFuncional,CIC)
CodigoDepto referencia Dept
Dept (CodigoDepto,Nome)
Emp (CodigoEmp,Nome,CodigoDepto,CategFuncional,CIC)
CodigoDepto referencia Dept
Dept (CodigoDepto,Nome)
chave primária 
sublinhada
�
Exemplo de esquema
de modelo relacional resumido
�
Emp (CodigoEmp,Nome,CodigoDepto,CategFuncional,CIC)
CodigoDepto referencia Dept
Dept (CodigoDepto,Nome)
Emp (CodigoEmp,Nome,CodigoDepto,CategFuncional,CIC)
CodigoDepto referencia Dept
Dept (CodigoDepto,Nome)
especificação de
chave estrangeira
�
Exemplo de esquema
de modelo relacional
�
Emp (CodigoEmp:int,Nome:varchar(100),CodigoDepto:int,
CategFuncional:varchar(20),CIC:char(15))
CodigoDepto referencia Dept
Dept (CodigoDepto:int,Nome:varchar(30))
Emp (CodigoEmp:int,Nome:varchar(100),CodigoDepto:int,
CategFuncional:varchar(20),CIC:char(15))
CodigoDepto referencia Dept
Dept (CodigoDepto:int,Nome:varchar(30))
especificação de
domínio de atributo
Esquema de relação 
– ������������� �������
�����
– R �� ������������� !�" �#���$��#���������%���
– &'�#(��)
– &�$��#�*	�
������� ��#�*	�
���������*	�
������	
����*	�
����!
– � R!�" �#������%��������$��#���������%���R
– &'�#(��)
– 	�
����� &�$��#�*	�
����!
Instância de relação
– +��,�����������
�� 
���-�	
���������%��!�����#������%�������
��(�	
.
	�����(����#���������
– /#����#������������" �#����(������(����������(����#����0���#��#��
�������
atributos
(ou colunas)
tuplas
(ou linhas)
Representando instâncias e tuplas 
de uma relação
– 1��#��#���������������	��2������3���3����4�3� �#������%�����" �#�
���	��2��������
3� '��3� '�� '�3�
5����������#������%���" �#�	��2������������(���� �������������!������
	�����
 ∈ 3
– &'�#(��)��6�
��#�*	�
���������78������6#
�0��9���:��;
����:<
���*	�
���������7��
���=���0��5��><
	
����*	�
������������7?���
������:���5
���.
���<
&���������7��� 8��������
���?���
���!��
 6#
�0��=���0���:�!�
 9���:��=���0���:�!�
 ;
����:��5��>��5
���.
���!�<
" �#������%��������� ��#�*	�
������'�����*	�
������'��	
����*	�
����!
Os valores entre {} 
representam um conjunto 
de tuplas da relação
Relações são desordenadas
• ������#�������(����" 
�����,����� �����(����(���#��������#�
�#������#����
��@�
�!
• &'�#(��)�����%���	�����	�#���(�����������������
��
Consulta à base de dados
SQL
• Consultas e alterações são escritas em linguagem declarativa (SQL).
• Exemplo:
��
SELECT Emp.Nome
FROM Emp, Dept
WHERE Dept.Nome LIKE “Computação” AND
Emp.CodigoDepto = Dept.CodigoDepto AND
Emp.CategFuncional=“Programador”
SELECT Emp.Nome
FROM Emp, Dept
WHERE Dept.Nome LIKE “Computação” AND
Emp.CodigoDepto = Dept.CodigoDepto AND
Emp.CategFuncional=“Programador”
Emp (CodigoEmp,Nome,CodigoDepto,CategFuncional,CIC)
CodigoDepto referencia Dept
Dept (CodigoDepto,Nome)
Emp (CodigoEmp,Nome,CodigoDepto,CategFuncional,CIC)
CodigoDepto referencia Dept
Dept (CodigoDepto,Nome)
Banco de Dados 
relacional

Outros materiais