Buscar

Aula 6 - Abordagem Relacional

Prévia do material em texto

Abordagem relacional
Banco de dados 1
Fabrício Nogueira
fabricio.silva@uva.br
Objetivo
• Organização de um banco de dados relacional
• Estruturas
• Relacionamentos
• Não detalhar as técnicas de manipulação de dados (linguagem)
• SGBDs apresentam o domínio de armazenamento de dados no 
mercado
Composição de um BD relacional
• Tabelas (relações)
• Conjunto não ordenado de linhas (tuplas)
• Cada linha é composta por vários campos (atributos)
Empregado
Codigo Nome Departamento CategoriaFuncional
E5 Souza D1 C5
E3 Santos D2 C5
E2 Silva D1 C2
E1 Soares D1 -
Empregado 
Coluna
Tabela vs Arquivos
• As linhas da tabela não têm ordenação
• A ordem de recuperação dos dados é arbitrária, a não ser que se use 
uma cláusula de ordenação. Ex.: Obter os empregados ordenados 
pelo salários
• Não é possível referenciar linhas de uma tabela pela sua posição
• Os valores de cada campo de uma tabela são atômicos e 
monovalorados
• Linguagens de consultas em bases de dados relacionais permitem o 
acesso por quaisquer critérios envolvendo os campos de uma ou mais 
linhas
Composição de um BD relacional
• Chave
• Identificar unicamente as diversas linhas
• Estabelecer relações entre linhas de tabelas
• Basicamente há três tipos de chaves
• Chave primária
• Chave alternativa
• Chave estrangeira
Composição de um BD relacional
• Chave primária
• Coluna ou conjunto de colunas que distingue uma linha das demais
Empregado
Codigo Nome Departamento CategoriaFuncional
E5 Souza D1 C5
E3 Santos D2 C5
E2 Silva D1 C2
E1 Soares D1 -
Composição de um BD relacional
• Chave primária
• Coluna ou conjunto de colunas que distingue uma linha das demais
Dependente
CodEmp NoDepen Nome Tipo DataNasc
E1 01 Joao Filho 12/01/2001
E1 02 Maria Filha 20/10/2003
E2 01 Ana Esposa 12/12/1970
E5 01 Paula Esposa 14/08/1981
E5 02 José Filho 03/05/1985
Composição de um BD relacional
• Chave estrangeira
• Coluna ou combinação de colunas, cujos valores aparecem necessariamente 
na chave primária de uma tabela.
• Mecanismo que implementa os relacionamentos no banco de dados
Departamento
CodigoDepto NomeDepto
D1 Compas
D2 Engenharia
D3 Vendas
Empregado
CodEmp Nome CodDepto CategFuncional CPF
E1 Souza D1 - 132.123.111-11
E2 Santos D2 C5 321.113.764-32
E3 Silva D2 C5 432.123.123-09
E5 Soares D1 C2 653.220.874-22
Todo empregado deve estar 
associado a um departamento
Composição de um BD relacional
• Chave estrangeira
• A existência de uma chave estrangeira impõe restrições que devem ser 
garantidas durante as alterações de dados
• Inclusão de uma linha em uma tabela que possui chave estrangeira
• Alteração do valor de um campo chave estrangeira
• Exclusão de uma linha que contém chave primária referenciada pela chave estrangeira
• Alteração do valor de uma chave primária referenciada por uma chave estrangeira
Composição de um BD relacional
• Chave estrangeira
• Uma chave estrangeira pode referenciar uma chave primária da mesma 
tabela (implementação do auto-relacionamento)
Empregado
CodEmp Nome CodigoDepto CodEmpGerente
E1 Souza D1 -
E2 Santos D2 E5
E3 Silva D2 E5
E5 Soares D1 E2
Composição de um BD relacional
• Chave estrangeira
• Uma chave estrangeira pode referenciar uma chave primária da mesma 
tabela (implementação do auto-relacionamento)
Empregado
CodEmp Nome CodigoDepto CodEmpGerente
E1 Souza D1 -
E2 Santos D2 E5
E3 Silva D2 E5
E5 Soares D1 E2
Composição de um BD relacional
• Chave alternativa
• Em alguns casos, mais de uma coluna ou combinação de colunas podem 
servir para distinguir uma linha das demais
• Uma das colunas (ou combinação de colunas) é escolhida como chave 
primária
• As demais colunas ou combinações são denominadas chaves alternativas
Empregado
CodEmp Nome CodDepto CategFuncional CPF
E1 Souza D1 - 132.123.111-11
E2 Santos D2 C5 321.113.764-32
E3 Silva D2 C5 432.123.123-09
E5 Soares D1 C2 653.220.874-22
Composição de um BD relacional
• Chave alternativa
• Que critério usar para determinar qual das possíveis colunas será a chave 
primária?
• Por que CodEmp é chave primária e não cpf?
• Se considerarmos apenas a tabela em que a coluna aparece, não há diferença 
entre uma coluna ou outra.
• Ao considerarmos chaves estrangeiras, a diferenciação entre chave primária e 
chave alternativa passa a ser relevante
• Quando especificamos uma chave primária, a mesma garante a unicidade de 
valores e a possibilidade de ser usada nas chaves estrangeiras
Composição de um BD relacional
• Domínio e valores vazios
• Para cada coluna de uma tabela definida no banco de dados, é necessário 
especificar os tipos de dados que nela serão contidos. Ex.: Texto, número, 
data, etc Domínio
• Adicionalmente, pode ser especificado se os campos podem estar vazios 
(null)
• Colunas nas quais não são admitidos valores vazios, são chamadas de colunas 
obrigatórias
• Por padrão colunas de chave primária são obrigatórias
• Colunas nas quais podem aparecer campos vazios, são chamadas colunas 
opcionais
Composição de um BD relacional
• Restrições de integridade
• Um dos objetivos de um SGBD é a manutenção da integridade de dados sob 
seu controle
• O que significa que eles refletem corretamente a realidade representada pelo 
banco e que são consistentes entre si
• Restrições de integridade são regras de consistência de dados que são 
garantidas pelo próprio SGBD
• Integridade de domínio
• Integridade de vazio (null)
• Integridade de chave
• Integridade referencial
Modelo de banco de dados relacional
• Deve conter no mínimo a definição dos seguintes itens:
• Tabelas
• Colunas
• Restrições de integridade
• Notação textual
• Notação diagramática
Notação textual
• Notação incompleta
• Compacta
• Útil para discussões sobre a estrutura geral do banco de dados, quando não se 
deseja entrar no maior nível de detalhe
• Lista de tabelas
• Para cada tabela, enumerados, entre parênteses as colunas que compõem as 
tabelas
• Colunas que compõem a chave primária são sublinhadas
• Após a definição de cada tabela, aparecem as definições das chaves estrangeiras 
que aparecem na tabela:
• <nome de coluna ch. Estrangeira> referencia <nome da tabela>
Notação textual
• Empregado (CodEmp, Nome, CodigoDepto, CategFuncional, CPF) CodigoDepto
referencia Departamento
• Departamento (CodigoDepto, Nome)
Notação diagramática
• Muito utilizada em ferramentas CASE
• Tabelas representadas por retângulos
• Colunas listadas dentro do retângulo
• Indicação do domínio (tipo de dados das tabelas)
• Chaves primárias são indicadas pela representação <pk>
• Chaves estrangeiras são indicadas pela representação <fk>
• Setas representando a associação entre tabelas
Notação diagramática
Departamento
CodigoDepto INTEGER <PK>
Nome VARCHAR(40)
Empregado
CodigoEmpregado INTEGER <PK>
CodigoDepto INTEGER <FK>
Nome VARCHAR(40)
CategFuncional INTEGER
CPF VARCHAR(40)
Exercícios
• Considere o banco de dados relacional definido parcialmente abaixo:
• Empregado (CodEmpregado, Nome, CPF)
• Dependente (CodEmpregado, NoDependente, Nome) CodEmpregado
referencia Empregado
• Na tabela Empregado, tanto CodEmpregado quanto CPF podem ser 
chave primária. Qual deveria ser escolhido? Por quê?
Exercícios
• Identifique no esquema abaixo, as chaves primárias e estrangeiras
• Aluno (CodigoAluno, Nome, CodigoCurso)
• Curso (CodigoCurso, Nome)
• Disciplina (CodigoDisciplina, Nome, Creditos, CodigoDepartamento)
• Curriculo(CodigoCurso, CodigoDisciplina, Obrigatoria_Opcional)
• Conceito (CodigoAluno, CodigoDisciplina, Ano_Semestre, Conceito)
• Departamento (CodigoDepartamento, Nome)
Exercícios
• Considere o esquema de banco de dados relacional abaixo:
• Paciente (CodigoConvenio, NumeroPaciente, Nome) CodigoConvenio referencia 
Convenio
• Convenio (CodigoConvenio, Nome)
• Medico (CRM, Nome, Especializacao)
• Consulta (CodigoConvenio, NumeroPaciente, CRM, DataHora) (CodigoConvenio, 
NumeroPaciente) refrencia Paciente CRM referencia Medico
• Quais verificações deve ser feitas no SGBD para garantir a integridade 
referencial nas situações abaixo:
• Inclusão de uma consulta
• Exclusão de um paciente
• Alterção de um CRM de uma Consulta
• Alterção de um CRM de um Médico

Continue navegando