Escolar Documentos
Profissional Documentos
Cultura Documentos
Bancos de Dados/
Modelagem Relacional
e Linguagem SQL
1
Modelagem Relacional e
Linguagem SQL
• Professor: Henrique Batista da Silva
• Tópicos:
• Modelo Relacional
2
Introdução
• Banco de dados está presente no dia a dia:
• Saques e depósitos bancários.
• Reservas em hotel.
• Catálogo de uma biblioteca online.
• Compra de produtos em geral (livros, DVDs, etc.)
3
O que é um banco de dados
• Um banco de dados é uma coleção de dados relacionados e
acessíveis.
• Os dados são fatos que podem ser gravados e possuem um
significado implícito.
• Ex.: Um agenda telefônica com:
• Nome
• Telefone
• E-mail
• Diversos tipos de dados podem ser armazenados em um
banco de dados:
• Estruturados (Ex: Dados de uma Nota fiscal)
• Semiestruturados (Ex: Um dados no formato XML)
• Desestruturados (Ex: Um vídeo)
4
Sistema de Gerenciamento de
Banco de Dados (SGBD)
• Pacote de software que facilita a criação e
manutenção de um banco de dados.
• A manipulação dos dados é através da realização de
operações como consultas, alteração de dados,
emissão de relatórios, etc.
• Exemplos:
• Microsoft SQL Server
• Oracle
• MySQL
5
Sistema de Banco de Dados
• Sistemas de BD são sistemas desenvolvidos com
funções específicas, que usam Banco de dados,
desenvolvidos em SGBDs.
6
Sistema de Banco de Dados
Usuários/Programadores
Sistema de banco
Programas de Aplicações/Consultas (Queries)
de dados
Software SGBD
8
Modelo de Dados
• Banco de dados permitem a abstração dos dados,
ocultando detalhes do armazenamento, que são
desnecessários para o usuário.
9
Modelo de Dados
• Contém recursos necessários para alcançar o grau
desejado de abstração.
10
Modelo de Dados
• Categorias de modelos de dados:
• Modelos de dados conceituais (alto nível)
• Possuem conceitos que descrevem os dados como os usuários
percebem.
• Baseado em entidades, atributos e relacionamentos (Independentes
de SGBD).
11
Modelo de Dados
• Categorias de modelos de dados (níveis de
abstração):
Modelo Conceitual
Abstração
Modelo Lógico
Modelo Físico
12
Esquemas
• Descrição da estrutura de um Banco de Dados.
(pode ser textual ou gráfica).
13
Esquemas
• Exemplo: diagrama esquemático:
Obs.: exibe apenas alguns aspectos, tipo de dado e relacionamento não são exibidos.
15
Linguagens de SGBD
• A linguagem SQL se divide em três subgrupos:
• Linguagem de Definição de Dados (DDL - Data Denition
Language):
• Usada para definição dos esquemas
• Linguagem de Manipulação de Dados (DML - Data
Manipulation Language):
• Utilizada pelos usuários para manipulação dos dados
(recuperação, inclusão, alteração e exclusão).
• Linguagem de Controle de Dados (DCL - Data Control
Language):
• Utilizada para conceder e retirar privilégios de usuários de BD
em objetos de BD
16
Modelo Relacional
17
Modelo Relacional
• O modelo de dados relacional foi introduzido por
Edgar Codd em 1970.
18
Modelo Relacional
• A ideia de modelo relacional era representar
ambos, entidade e relacionamento, de maneira
uniforme.
19
Modelo Relacional
• Quando uma relação é pensada como uma tabela,
cada linha na tabela representa uma coleção de
valores de dados relacionados.
20
Modelo Relacional
• As colunas no modelo relacional (atributos de uma
entidade), especificam como interpretar os valores
de dados em cada linha.
21
Modelo Relacional
• Terminologia:
• Uma linha é chamada Tupla.
• Um cabeçalho de coluno é chamado Atributo.
• A tabela é chamada Relação.
• O conjunto de valores que um atributo pode ter se
chama Domínio.
22
Modelo Relacional
Coluna/Campo (atributo)
domínio da coluna/campo
(valor do atributo)
TABELA
(RELAÇÃO)
23
Modelo Relacional
• Um Domínio D, é um conjunto de valores
indivisíveis (atômicos) que um atributo pode ter.
• Exemplos:
• Nomes: o conjunto de nomes de pessoas. Cadeia de caracteres
contendo apenas letras.
• CPF: conjunto de 11 dígitos
• Idade_Empregado: valores de possíveis para idades de funcionários
da empresa. Número inteiro entre 16 e 70.
24
Modelo Relacional
• Um esquema de uma relação pode ser interpretado
como uma afirmação: cada aluno possui nome, CPF,
endereço, telefone e número de matrícula.
• Ex: Aluno (nome, CPF, endereço, telefone , número de
matrícula)
27
Características das Relações
• Uma relação é definida como um conjunto de
tuplas.
28
Características das Relações
• Cada valor em uma tupla é atômico.
• Não são permitidos atributos multivalorados ou
compostos, a não que estejam sendo tratados como
simples.
30
Restrições do Modelo Relacional
• Restrições de chave:
• Relação é um conjunto de tuplas. Por definição, todos os
elementos de um conjunto são distintos.
31
Restrições do Modelo Relacional
• Uma chave é um conjunto mínimo de valores dos
atributos que identifica unicamente uma tupla
(linha).
• Garante a restrição de unicidade entre as tuplas
de uma relação
• Exemplo:
• Matrícula é uma chave de ALUNO pois dois ou mais
alunos não podem ter a mesma matrícula.
• Não podemos indicar o “nome do aluno” como chave pois é
possível existirem dois alunos com o mesmo nome.
32
Restrições do Modelo Relacional
Empregado
CodEmp Nome DataNasc Cidade Estado CodDepto
1 José 21/04/1980 BH MG 1
2 Alberto 22/04/1980 BH MG 1
3 Maria 05/08/1970 BH MG 3
4 Ana 24/04/1980 BH MG 2
5 Pedro 05/08/1970 BH MG 1
6 Antônio 06/08/1970 BH MG 2
7 Maria 07/08/1970 BH MG 3
8 João 28/04/1980 BH MG NULL
9 Carlos 29/04/1980 BH MG NULL
33
Restrições do Modelo Relacional
Empregado
CodEmp Nome DataNasc Cidade Estado CodDepto
1 José 21/04/1980 BH MG 1
2 Alberto 22/04/1980 BH MG 1 Existem dois empregados
3 Maria 05/08/1970 BH MG 3 com o mesmo nome,
4 Ana 24/04/1980 BH MG 2 porém não há
5 Pedro 05/08/1970 BH MG 1 problemas, desde que o
6 Antônio 06/08/1970 BH MG 2 atributo Nome não seja
7 Maria 07/08/1970 BH MG 3 o Atributo Chave da
8 João 28/04/1980 BH MG NULL relação (e nem contenha
9 Carlos 29/04/1980 BH MG NULL a restrição Unique).
34
Restrições do Modelo Relacional
Empregado
CodEmp Nome DataNasc Cidade Estado CodDepto
1 José 21/04/1980 BH MG 1
2 Alberto 22/04/1980 BH MG 1 Existem dois empregados
3 Maria 05/08/1970 BH MG 3 com o mesmo nome,
4 Ana 24/04/1980 BH MG 2 porém não há
5 Pedro 05/08/1970 BH MG 1 problemas, desde que o
6 Antônio 06/08/1970 BH MG 2 atributo Nome não seja
7 Maria 07/08/1970 BH MG 3 o Atributo Chave da
8 João 28/04/1980 BH MG NULL relação (e nem contenha
9 Carlos 29/04/1980 BH MG NULL a restrição Unique).
36
Restrições do Modelo Relacional
C ó di goEm p N o me C ó di go Dept o
Chave Única
E3 Pa ulo D1
E1 Lu c ia na D2
E2 An t o nio D1
E4 Lu c ia D3
39
Restrições do Modelo Relacional
• Restrições de Integridade Referencial:
• É classificada entre duas relações e usada para manter
consistência entre as tuplas das duas relações.
• Informalmente:
• Uma tupla em uma relação, que faz referência a outra relação,
deve-se referir a uma tupla existe nesta relação.
40
Restrições do Modelo Relacional
• Exemplo (Restrição Integridade Referencial):
• O valor do atributo DNO (faz referencia ao departamento em que o
empregado trabalha) de EMPREGADO deve sempre corresponder
ao valor de DNUMERO em alguma tupla de Departamento
42
Restrições do Modelo Relacional
• Restrição Integridade Referencial
Chave Primária (PK)
CodigoDepto Nome
D1 Compras
R2 - DEPARTAMENTO
D2 V e n d as
D3 E n g e n h a ri a
Empregado Departamento
CodEmp Nome DataNasc Cidade Estado CodDepto CodDepto Nome
1 José 21/04/1980 BH MG 1 1 Matemática
2 Alberto 22/04/1980 BH MG 1 2 Física
3 Maria 05/08/1970 BH MG 3 3 Computação
4 Ana 24/04/1980 BH MG 2
5 Pedro 05/08/1970 BH MG 1
6 Antônio 06/08/1970 BH MG 2
7 Maria 07/08/1970 BH MG 3
8 José 28/04/1980 BH MG NULL
9 Carlos 29/04/1980 BH MG 4
44
Restrições do Modelo Relacional
• Restrição Integridade Referencial (Exemplo)
N 1
Empregado Trabalha Departamento
Empregado Departamento
CodEmp Nome DataNasc Cidade Estado CodDepto CodDepto Nome
1 José 21/04/1980 BH MG 1 1 Matemática
2 Alberto 22/04/1980 BH MG 1 2 Física
3 Maria 05/08/1970 BH MG 3 3 Computação
4 Ana 24/04/1980 BH MG 2
5 Pedro 05/08/1970 BH MG 1
6 Antônio 06/08/1970 BH MG 2
7 Maria 07/08/1970 BH MG 3
8 José 28/04/1980 BH MG NULL
9 Carlos 29/04/1980 BH MG 4
45
Restrições do Modelo Relacional
• Restrição Integridade Referencial (Exemplo)
N 1
Empregado Trabalha Departamento
Empregado Departamento
CodEmp Nome DataNasc Cidade Estado CodDepto CodDepto Nome
1 José 21/04/1980 BH MG 1 1 Matemática
2 Alberto 22/04/1980 BH MG 1 2 Física
3 Maria 05/08/1970 BH MG 3 3 Computação
4 Ana 24/04/1980 BH MG 2
5 Pedro 05/08/1970 BH MG 1
6 Antônio 06/08/1970 BH MG 2
7 Maria 07/08/1970 BH MG 3
8 José 28/04/1980 BH MG NULL
9 Carlos 29/04/1980 BH MG 4
46
Restrições do Modelo Relacional
• Restrição Integridade Referencial (Exemplo)
N 1
Empregado Trabalha Departamento
Empregado Departamento
CodEmp Nome DataNasc Cidade Estado CodDepto CodDepto Nome
1 José 21/04/1980 BH MG 1 1 Matemática
2 Alberto 22/04/1980 BH MG 1 2 Física
3 Maria 05/08/1970 BH MG 3 3 Computação
4 Ana 24/04/1980 BH MG 2
5 Pedro 05/08/1970 BH MG 1
6 Antônio 06/08/1970 BH MG 2
7 Maria 07/08/1970 BH MG 3
8 José 28/04/1980 BH MG NULL
9 Carlos 29/04/1980 BH MG 4
47
Restrições do Modelo Relacional
• Restrição Integridade Referencial (Exemplo)
N 1
Empregado Trabalha Departamento
Empregado Departamento
CodEmp Nome DataNasc Cidade Estado CodDepto CodDepto Nome
1 José 21/04/1980 BH MG 1 1 Matemática
2 Alberto 22/04/1980 BH MG 1 2 Física
3 Maria 05/08/1970 BH MG 3 3 Computação
4 Ana 24/04/1980 BH MG 2
5 Pedro 05/08/1970 BH MG 1
6 Antônio 06/08/1970 BH MG 2
7 Maria 07/08/1970 BH MG 3
Empregado 8, não faz
referência a nenhum
8 José 28/04/1980 BH MG NULL
departamento. Portanto
9 Carlos 29/04/1980 BH MG 4
seu valor é NULL.
48
Restrições do Modelo Relacional
• Restrição Integridade Referencial (Exemplo)
N 1
Empregado Trabalha Departamento
Empregado Departamento
CodEmp Nome DataNasc Cidade Estado CodDepto CodDepto Nome
1 José 21/04/1980 BH MG 1 1 Matemática
2 Alberto 22/04/1980 BH MG 1 2 Física
3 Maria 05/08/1970 BH MG 3 3 Computação
4 Ana 24/04/1980 BH MG 2
5 Pedro 05/08/1970 BH MG 1
6 Antônio 06/08/1970 BH MG 2
7 Maria 07/08/1970 BH MG 3
8 José 28/04/1980 BH MG NULL
Não existe o
departamento de código
9 Carlos 29/04/1980 BH MG 4
igual a 4. Portanto, valor
não Permitido. 49
Restrições do Modelo Relacional
• Considerações:
• As restrições de integridade fazem parte do esquema do BD.
• Assume-se que as restrições de integridade são mantidas em
todos os estados do banco de dados.
• As restrições de integridade referencial geralmente são
definidas a partir dos relacionamentos entre as entidades
(esquema conceitual).
• Todas as restrições de integridade devem ser especificadas
no esquema do banco de dados relacional se quisermos que
o SGBD as implemente.
• As restrições são especificadas usando a DDL (Linguagem de
Definição de Dados).
50
Restrições do Modelo Relacional
• Restrições de integridade referencial exibidas no
esquema de um banco de dados relacional EMPRESA
51
Copyright © 2011 Ramez Elmasri and Shamkant Navathe
Operações de Atualização sobre
Relações
• As operações de atualização precisam ser aplicadas
sem violar a integridade do banco de dados.
52
Operações de Atualização sobre
Relações
• INSERT fornece uma lista de atributos para uma
nova tupla 𝑡 que está sendo inserida em uma
relação 𝑅.
53
Operações de Atualização sobre
Relações
• Violação de Domínio (insert): violada se algum atributo não
estiver contido no domínio definido:
54
Operações de Atualização sobre
Relações
• Violação de Chave (insert): violada se o valor já existir em
outra tupla:
56
Operações de Atualização sobre
Relações
• Violação de Integridade referencial (insert): violada se o
valor de alguma chave estrangeira em t se referir a uma
tupla não existente na outra relação:
CodEmp Nome Sexo Cidade Estado CodDepto
1 José M BH MG 1
2 Alberto M BH MG 2
INSERT
3 Maria F BH MG 4
Departamento
CodDepto Nome O valor a ser inserido deve ser um valor
1 Matematica válido (existente) na relação que está
2 Física sendo referenciada.
3 Computação
57
Operações de Atualização sobre
Relações
• A operação DELETE é usada para excluir tuplas.
58
Operações de Atualização sobre
Relações
• Violação de Integridade referencial (delete):
Empregado
CodEmp Nome Sexo Cidade Estado CodDepto
1 José M BH MG 1
2 Alberto M BH MG 2
3 Maria F BH MG 3
Departamento
CodDepto Nome
1 Matematica A tupla a ser apagada está sendo
2 Física referenciada por outra tupla em uma
DELETE 3 Computação outra relação.
59
Operações de Atualização sobre
Relações
• Existem três comportamentos possíveis quando uma
operação de exclusão causa uma violação da integridade:
• Bloqueio (restrict): quando a tupla a ser excluída é referenciada em
outras relações (pela FK).
60
Operações de Atualização sobre
Relações
• Propagação (cascade):
Empregado
CodEmp Nome Sexo Cidade Estado CodDepto
1 José M BH MG 1
2 Alberto M BH MG 2
3 Maria F BH MG 3
Departamento
CodDepto Nome
1 Matematica
2 Física
DELETE 3 Computação
61
Operações de Atualização sobre
Relações
• Propagação (cascade):
Empregado
CodEmp Nome Sexo Cidade Estado CodDepto
1 José M BH MG 1
2 Alberto M BH MG 2
3 Maria F BH MG 3
Departamento
CodDepto Nome
1 Matematica
2 Física
DELETE
62
Operações de Atualização sobre
Relações
• Propagação (cascade):
Empregado
CodEmp Nome Sexo Cidade Estado CodDepto
1 José M BH MG 1
2 Alberto M BH MG 2
CASCADE
Departamento
CodDepto Nome
1 Matematica
2 Física
DELETE
63
Operações de Atualização sobre
Relações
• Propagação (SET NULL):
Empregado
CodEmp Nome Sexo Cidade Estado CodDepto
1 José M BH MG 1
2 Alberto M BH MG 2
SET NULL
3 Maria F BH MG NULL
Departamento
CodDepto Nome
1 Matematica
2 Física
DELETE
64
Operações de Atualização sobre
Relações
• A operação de atualização (UPDATE) muda os
valores de alguns atributos em tuplas existentes.
65
Operações de Atualização sobre
Relações
• As seguintes violações podem ser causadas
(update):
• Domínio: violada se algum atributo não estiver contido
no domínio definido.
• Chave e Entidade: modificar o valor de uma chave
primária é equivalente a excluir uma tupla e incluir
outra;
• as restrições e problemas de INSERT e DELETE têm que ser
observadas.
• Integridade referencial: possivelmente violada se algum
atributo de chave estrangeira for alterado;
• o SGBD deve garantir que o novo valor se refira a algum valor
existente na relação referenciada.
66
Referências Bibliográficas
• ELMASRI, Ramez. Sistemas de banco de dados:
fundamentos e aplicações. 3. ed. Rio de Janeiro:
LTC, 2002. 837 p. ISBN 852161313X.
67