Upload
nguyennhan
View
214
Download
1
Embed Size (px)
Citation preview
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 1
Aborda gem relacional
Capítulo 4
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 2
Aborda gem Relacional
• Abordagem de modelagem de dados usada nossistemas de gerência de banco de dados do tiporelacional
• Modelagem a nível lógico e não conceitual
• Aqui apresentados– conceitos necessários à compreensão do projeto
de bancos de dados relacionais
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 3
Composi ção de um Banco de DadosRelacional
• Tabelas– compostas de
• Linhas
• Colunas
• Chaves primárias– relacionadas através de
• Chaves estran geiras
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 4
Terminolo gias
tabela
valor de atributovalor de campo
atributocoluna
tuplalinha
relação
acadêmicaprofissional
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 5
Tabelas
EmpCódigoEmp Nome CodigoDepto CategFuncional
E5 Souza D1 C5E3 Santos D2 C5E2 Silva D1 C2E1 Soares D1 —
Coluna(atributo)
valor do campo(valor do atributo)
nome do campo(nome do atributo)
linha (tupla)
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 6
Características de tabelas
• Linhas de uma tabela não estão ordenadas
• Valor de campo– atômico– monovalorado
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 7
Acesso a tabelas
• Acesso por quaisquer critérios envolvendo oscampos de uma ou mais linhas
• Programadores escrevem consultas semconsiderar 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
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 8
Chaves
• Conceito usado para especificar restri ções deintegridade básicas de um SGBD relacional
• Três tipos– chave primária– chave alternativa– chave estrangeira
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 9
Chave primária
Uma chave primária é uma coluna ou umacombinação de colunas cujos valores
distinguem uma linha das demais dentrode uma tabela
Uma chave primária é uma coluna ou umacombinação de colunas cujos valores
distinguem uma linha das demais dentrode uma tabela
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 10
Chave primária
DependenteCódigoEmp NoDepen Nome Tipo DataNascE1 01 João Filho 12/12/91E1 02 Maria Esposa 01/01/50E2 01 Ana Esposa 05/11/55E6 01 Paula Esposa 04/07/60E6 02 José Filho 03/02/85
chave primária
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 11
Chave estran geira
• Uma coluna ou uma combina ção de colunas,cujos valores aparecem necessariamente nachave primária de uma tabela
• Mecanismo que permite a implementa ção derelacionamentos em um banco de dadosrelacional
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 12
CodigoDepto em EMP é uma chave estrangeira em relação
a tabela DEPTO
Chave estran geira
CodigoDepto NomeDeptoD1 ComprasD2 EngenhariaD3 Vendas
CodigoEmp Nome CodigoDepto CategFuncional CICE1 Souza D1 - 132.121.331-20E2 Santos D2 C5 891.221.111-11E3 Silva D2 C5 341.511.775-45E5 Soares D1 C2 631.692.754-88
EMP
DEPTO
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 13
Chave estran geiravalida ção pelo SGBD (1)
• Quando da inclusão de uma linha na tabela quecontém a chave estrangeira– o valor da chave estrangeira deve aparecer na
coluna da chave primária referenciada
• Quando da altera ção do valor da chaveestrangeira– o novo valor de uma chave estrangeira deve
aparecer na coluna da chave primária referenciada
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 14
Chave estran geiravalida ção pelo SGBD (2)
• Quando da exclusão de uma linha da tabela quecontém a chave primária referenciada pela chaveestrangeira– na coluna chave estrangeira não deve aparecer o
valor da chave primária que está sendo excluída
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 15
Chave estran geira na mesma tabela
EmpCódigoEmp Nome CodigoDepto CodigoEmpGerenteE5 Souza D1E3 Santos D2 E5E2 Silva D1 E5E1 Soares D1 E2
Chave estrangeirareferencia chave primária naprópria tabela
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 16
Chave alternativa
• Mais de uma coluna ou combina ções de colunaspodem servir para distinguir uma linha dasdemais
• Uma das colunas (ou combina ção de colunas) éescolhida como chave primária
• As demais colunas ou combina ções sãodenominadas chaves alternativas
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 17
Chave alternativa
EmpCodigoEmp Nome CodigoDepto CategFuncional CICE1 Souza D1 - 132.121.331-20E2 Santos D2 C5 891.221.111-11E3 Silva D2 C5 341.511.775-45E5 Soares D1 C2 631.692.754-88
chave alternativa
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 18
Domínio de coluna
Conjunto de valores que podem aparecerem uma coluna (atributo)
Conjunto de valores que podem aparecerem uma coluna (atributo)
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 19
Valor vazio
• Um valor de campo pode assumir o valorespecial vazio (“ null ” em inglês)
• Colunas nas quais não são admitidos valoresvazios são chamadas de colunas obrigatórias
• Colunas nas quais podem aparecer camposvazios são chamadas de colunas opcionais
• Abodagem relacional– todas colunas que compõem a chave primária
devem ser obrigatórias– demais chaves podem conter colunas opcionais
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 20
Restri ções de inte gridade
• Objetivo primordial de um SGBD– garantir a integridade de dados.
• Para garantir a integridade de um banco de dados– SGBD oferecem o mecanismo de restri ções de
integridade
• Uma restri ção de integridade é uma regra deconsistência de dados que é garantida pelopróprio SGBD
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 21
Restri ções de inte gridadebásicas
• Integridade de domínio
• Integridade de vazio
• Integridade de chave
• Integridade referencial
• Restri ções acima– garantidas automaticamente por um SGBD
relacional
• Não é exigido que o programador escrevaprocedimentos para garanti-las explicitamente
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 22
Restri ções de inte gridadesemânticas
• Há muitas outras restri ções de integridade quenão se encaixam nas categorias básicas
• Essas restri ções são chamadas de restri çõessemâ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 queseu superior imediato.
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 23
Especifica ção de banco de dadosrelacional
• A especifica ção de um banco de dados relacional(chamada de esquema do banco de dados) deveconter no mínimo a defini ção do seguinte:– Tabelas que formam o banco de dados– Colunas que as tabelas possuem– Restri ções de integridade
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 24
Exemplo de esquemade modelo relacional
Emp (CodigoEmp,Nome,CodigoDepto,CategFuncional,CIC)
CodigoDept referencia Dept
Dept (CodigoDepto,Nome)
sublinhado indica chave primária
definição dechave estrangeira
©Carlos A. Heuser - Transparências para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 1999 25
Consulta à base de dadosSQL
SELECTEMP.NOME
FROM EMP, DEPT
WHERE DEPT.NOME LIKE “COMPUTAÇÃO” AND
EMP.CODIGODEPTO = DEPT.CODIGODEPTO AND
EMP. CATEGFUNCIONAL=“PROGRAMADOR”