Buscar

curso 9207 aula 05 v1

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 137 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 137 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 137 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aula 05
Informática p/ Prefeitura de Niterói - Fiscal de Tributos
Professores: Celson Junior, Victor Dalton
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 1 de 136 
AULA 05: Bancos de dados 
 
SUMÁRIO PÁGINA 
1.Bancos de Dados: Conceitos Básicos 2 
 1.1 Definições 2 
 1.2 SGBD 6 
 1.3 Características de um banco de dados 8 
 1.4 Trabalhadores envolvidos 11 
 1.5 Vantagens da abordagem SGBD 15 
 1.6 Desvantagens da abordagem SGBD 15 
 1.7 Arquitetura três esquemas de um SGBD 16 
 1.8 Categorias de modelos de dados 17 
 1.9 Tipos de modelos de dados 20 
 1.10 Modelo Entidade-Relacionamento 24 
 1.11 Cardinalidade 26 
 1.12 Modelo Relacional 37 
 1.13 Gerenciamento de Transações 48 
 1.14 Catálogo de Dados 49 
 1.15 Views 51 
 1.16 Normalização de dados 54 
Exercícios Comentados 59 
Considerações Finais 109 
Exercícios 110 
Gabarito 136 
 
 
Olá pessoal! 
Vamos ministrar Banco de Dados. Particularmente acho a matéria muito 
interessante. É o tipo de assunto que, uma vez aprendido, dificilmente os 
conhecimentos básicos saem da cabeça. 
Já sei que você se assustou com o tamanho da apostila! Mas BD é um 
assunto extenso mesmo, é bom digeri-lo aos poucos. 
Vamos ao que interessa? 
 
 
 
 
 
 
 
Observação importante: este curso é protegido por direitos 
autorais (copyright), nos termos da Lei 9.610/98, que altera, 
atualiza e consolida a legislação sobre direitos autorais e dá 
outras providências. 
 
Grupos de rateio e pirataria são clandestinos, violam a lei e 
prejudicam os professores que elaboram os cursos. Valorize o 
trabalho de nossa equipe adquirindo os cursos honestamente 
através do site Estratégia Concursos ;-) 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 2 de 136 
BANCOS DE DADOS 
 
 
 
1. BANCOS DE DADOS: CONCEITOS BÁSICOS 
 
 
1.1 Definições 
 
 
Antes do estudo de SGBDs propriamente dito, cabe destacar a 
diferença entre dado, informação e conhecimento. 
 
Um dado é uma seqüência de símbolos quantificados ou 
quantificáveis. Quantificável significa que algo pode ser quantificado e 
depois reproduzido sem que se perceba a diferença para com o original. 
Portanto, um texto é um dado. De fato, as letras são símbolos 
quantificados, assim como os números. Também são dados fotos, figuras, 
sons gravados e animação, pois todos podem ser quantificados ao serem 
introduzidos em um computador, a ponto de se ter eventualmente 
dificuldade de distinguir a sua reprodução com o original. É muito 
importante notar-se que, mesmo se incompreensível para o leitor, 
qualquer texto constitui um dado ou uma sequência de dados. Descrevem 
um acontecimento, um fato, sem fornecer julgamento nem interpretação. 
 
Uma informação é uma abstração informal (isto é, não pode ser 
formalizada através de uma teoria lógica ou matemática), que está na 
mente de alguém, representando algo significativo para essa pessoa. Por 
exemplo, a frase "Paulo tem 23 anos" é um exemplo de informação ± 
desde que seja lida ou ouvida por alguém, desde que "Paulo" signifique 
para essa pessoa um nome (ou alguém conhecido) e "23 anos" tenha a 
compreensão devida, englobando o conceito de idade. 
 
Se a representação da informação for feita por meio de dados, como 
na frase sobre Paulo, pode ser armazenada em um computador. Mas, 
cuidado, o que é armazenado na máquina não é a informação, mas a sua 
representação em forma de dados. Assim, não é possível processar 
informação diretamente em um computador. Para isso é necessário 
reduzi-la a dados. No exemplo, "23 anos" teria que ser quantificado, 
usando-se por exemplo uma escala numérica, e associando a idade a 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 3 de 136 
algum tipo de atributo. Para um receptor humano, essa informação teria 
sido reduzida a um dado, que ele poderia interpretar como informação. 
 
Uma distinção fundamental entre dado e informação é que o 
primeiro é puramente sintático e a segunda contém 
necessariamente semântica. É interessante notar que é impossível 
introduzir e processar semântica em um computador, porque a máquina 
mesma é puramente sintática (assim como a totalidade da matemática). 
Portanto, a informação requer um componente humano no processo. 
 
Conhecimento, por sua vez, envolve habilidade adquirida por uma 
pessoa por experiência ou educação. O conhecimento por prática ou 
teoria. Conhecimento de um assunto, com a habilidade de usá-lo para um 
propósito. 3RU�H[HPSOR��DR�DQDOLVDU�³3DXOR�HP����DQRV´��R�FRQKHFLPHQWR�
de um idoso pode interpretar que Paulo é jovem, e tem pouca experiência 
de vida. Por outro lado, um adolescente pode entender que Paulo é 
adulto, vivido, e tem muitas dicas para passar. Portanto, o conhecimento 
depende (e muito) de quem o possui. 
 
2�FRQKHFLPHQWR��SRU�ILP��SRGH�OHYDU�j�WRPDGD�GH�GHFLV}HV��³3UHFLVR�
RULHQWDU�3DXOR´��RX�³3UHFLVR�DSUHQGHU�FRP�3DXOR´��RX�³$LQGD�p�FHGR�SDUD�
SURPRYHU� 3DXOR´� �GHFLV}HV� GH� QHJyFLR�, etc. Quando o conhecimento é 
aproveitado, alcançamos a inteligência, que se encontra no topo dessa 
hierarquia. Veremos mais sobre produção de conhecimento e inteligência 
em Business Intelligence (Inteligência de Negócio). 
 
 
Entendidos esses aspectos, podemos responder o que é Banco de 
Dados. 
 
AcredLWR� TXH� YRFr� Mi� WHQKD� XPD� ³GHVFRQILDQoD´� GR� TXH� VHMD� XP�
banco de dados. Entretanto, a definição correta de banco de dados gira 
em torno de duas ideias chave: relacionamento e finalidade. 
 
Um banco de dados é um conjunto de dados relacionados com uma 
finalidade específica. Esta finalidade pode a produção de informação, 
para determinado público alvo (uma empresa, ou um órgão público, por 
exemplo), bem como suportar um negócio (como o estoque de produtos 
de um fornecedor, ou um cadastro de funcionários, ou tudo isso junto). 
 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 4 de 136 
Um banco de dados tem alguma fonte da qual o dado é derivado, 
algum grau de interação com eventos no mundo real e um público 
interessado no seu conteúdo. Para que um banco de dados seja preciso e 
confiável o tempo todo, as mudanças no minimundo (mundo real) 
precisam ser refletidas nele o mais breve possível. 
 
Um banco de dados pode ter qualquer tamanho e complexidade. As 
informações precisam ser organizadas e gerenciadas de modo que os 
usuários possam consultar, recuperar e atualizar os dados quando 
necessário. 
 
Um banco de dados pode ser gerado e mantido manualmente ou 
computadorizado. Um banco de dados computadorizado pode ser criado e 
mantido por um grupo de programas de aplicação específicos para essa 
tarefa ou por um sistema gerenciador de banco de dados. 
 
Eu costumo brincar, e acho que isso ajuda a memorizar, que não se 
GHYH� FRQIXQGLU� %DQFR� GH� 'DGRV� FRP� ³%DQGR� GH� 'DGRV´�� 'DGRV�
desorganizados não servem para nada; um conjunto dados que se 
relacionam, com alguma finalidade, esses sim compõem um Banco de 
Dados. 
 
%DQFRV� GH� GDGRV�� QRUPDOPHQWH�� VmR� D� ³EDVH´� GH� XP� VLVWHPD�� RX�
software. Um sistema de venda de produtos online, por exemplo, 
provavelmente possui em seu banco de dados uma vasta quantidadede 
registros de clientes e produtos. Esses dados provavelmente relacionam-
se através dos pedidos, que devem conter dados dos clientes e dos 
produtos. Os pedidos também serão dados. Começou a visualizar? 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 5 de 136 
 
�ŽŶƐĞŐƵĞ�ŝŵĂŐŝŶĂƌ�ƋƵĞ ?�ƉŽƌ� ?ƚƌĄƐ ?�ĚĞƐƐĞ�ƐŝƐƚĞŵĂ ?�ĞdžŝƐƚĞ�Ƶŵ��ĂŶĐŽ�ĚĞ��ĂĚŽƐ ? 
 
Nossa próxima definição importante é a de Esquema de Banco de 
Dados. 
 
Um esquema do banco de dados é uma coleção de objetos de um 
banco de dados que estão disponíveis para um determinado usuário ou 
grupo. Os objetos de um esquema são estruturas lógicas que se referem 
diretamente aos dados do banco de dados. Eles incluem estruturas, tais 
como tabelas, visões, seqüências, procedimentos armazenados, 
sinônimos, índices, agrupamentos e links de banco de dados. Falaremos 
mais sobre esses elementos ao longo da apostila, fique tranquilo. 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 6 de 136 
 
 
Ou seja, ao se elaborar um sistema, seu projeto de banco de dados é 
idealizado em um esquema (como a figura acima). 
 
)DOHL��SRXFR�DQWHV��TXH�RV�VRIWZDUHV�QRUPDOPHQWH�HVWmR� ³HP�FLPD´�
de um Banco de Dados. O esquema é essa ferramenta utilizada para a 
representação do banco como um todo, podendo servir tanto para facilitar 
o entendimento do Banco de Dados como para implementar o próprio 
Banco de Dados. 
 
Com base no esquema acima, por exemplo, um Administrador de 
Dados já consegue criar o Banco. Visualize a imagem acima, veja as 
tabelas e os relacionamentos, e não se incomode se estiver entendendo 
pouco ou quase nada. Iremos ver e rever essa imagem, explicando os 
detalhes dela aos poucos. Tudo bem? 
 
 
1.2 SGBD 
 
 
Imagine agora um sistema de uma grande vendedora de produtos 
online, ou mesmo o sistema de vendas de uma grande companhia aérea. 
Essas empresas vendem produtos e serviços por segundo, para usuários 
distribuídos geograficamente pelo mundo inteiro. Deste simples exemplo, 
percebe-se que Bancos de Dados precisam de gerenciamento próprio, e 
eficiente, para coordenar um volume gigantesco de operações 
simultâneas. 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 7 de 136 
 
Para tal, existem os Sistemas Gerenciadores de Bancos de 
Dados. O SGBD é o conjunto de programas de computador (softwares) 
responsáveis pelo gerenciamento de uma (ou mais) base de dados. 
Seu principal objetivo é retirar da aplicação cliente (o sistema da empresa 
propriamente dito) a responsabilidade de gerenciar o acesso, a 
manipulação e a organização dos dados. O SGBD disponibiliza uma 
interface para que seus clientes possam incluir, alterar ou consultar dados 
previamente armazenados. Em bancos de dados relacionais a interface é 
constituída pelas APIs (Application Programming Interface) ou drivers do 
SGBD, que executam comandos na linguagem SQL (Structured Query 
Language). 
 
Certamente você já ouviu falar de alguns SGBDs, como o Oracle, o 
IBM DB2, o Microsoft SQL Server, MySQL, ou até mesmo o 
PostgreSQL, que é gratuito. 
 
Sistemas Gerenciadores de Bancos de Dados: softwares comerciais. 
 
 
Os SGBDs facilitam o processo de definição, construção, manipulação 
e compartilhamento de bancos de dados entre diversos usuários e 
aplicações. 
ł�'HILQLU�XP�EDQFR�GH�GDGRV�HQYROYH�HVSHFLILFDU�RV�WLSRV��HVWUuturas 
e restrições dos dados a serem armazenados. 
ł�&RQVWUXLU�XP�EDQFR�GH�GDGRV�p�R�SURFHVVR�GH�DUPD]HQDU�RV�GDGRV�
em algum meio controlado pelo SGBD. 
ł� 0DQLSXODU� XP� EDQFR� GH� GDGRV� LQFOXL� IXQo}HV� QR� EDQFR� GH� GDGRV�
como consultas para recuperar dados específicos, atualização que reflita 
mudanças no minimundo e geração de relatórios com base nos dados. 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 8 de 136 
ł� &RPSDUWLOKDU� EDQFR� GH� GDGRV� p� SHUPLWLU� TXH� GLYHUVRV� XVXiULRV� H�
programas acessem-no simultaneamente. 
Outras funções importantes fornecidas pelo SGBD incluem proteção e 
manutenção do banco de dados por um longo período. A proteção pode 
ser contra defeitos (falhas) de hardware e software ou contra acesso não 
autorizado ou malicioso (segurança). A manutenção permite a evolução 
do sistema de banco de dados ao longo do ciclo de vida, à medida que os 
requisitos mudem com o tempo. 
 
 
Sistema de Banco de Dados: ilustração 
 
 
1.3 Características de um banco de dados 
 
 
Na abordagem de banco de dados, um único repositório mantém 
dados que são definidos uma vez e depois acessados por vários usuários. 
Os nomes ou rótulos de dados são definidos uma vez, e usados 
repetidamente por consultas, transações e aplicações. 
 
 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 9 de 136 
Natureza de Autodescrição de um Sistema de Banco de Dados 
 
Na abordagem de banco de dados, seu sistema contém não apenas o 
banco de dados, mas também uma definição ou descrição completa de 
sua estrutura e restrições. 
 
Essa definição é armazenada no catálogo do SGBD (falaremos mais 
sobre ele adiante). A informação armazenada no catálogo é chamada 
metadados (também será melhor explicado posteriormente). 
 
O catálogo é usado pelo software de SGBD e também pelos usuários 
do banco de dados que precisam de informações sobre a estrutura do 
banco de dados (tipo e o formato dos dados). O software SGBD precisa 
trabalhar de forma satisfatória com qualquer quantidade de aplicações de 
banco de dados. 
 
Isolamento Entre Programas e Dados, e Abstração de Dados 
 
Na maioria dos casos, qualquer mudança na estrutura de dados do 
SGBD não exige mudanças nos programas que acessam o banco de 
dados. A estrutura dos arquivos de dados é armazenada no catálogo do 
SGBD separadamente dos programas de acesso. 
 
Essa propriedade é chamada de independência programa-dados. 
 
Em alguns tipos de sistemas de banco de dados os usuários podem 
definir operações (funções ou métodos) sobre como os dados como parte 
das definições de banco de dados. A interface de uma operação inclui o 
nome da operação e os tipos de dados de seus argumentos (parâmetros). 
A implementação (método) da operação é especificada separadamente e 
pode ser alterada sem afetar a interface. Isso é chamado de 
independência programa-operação. 
 
 
A independência programa-dados e a independência programa-
operação só são possíveis em virtude de uma característica do SGBD, que 
é a abstração de dados. 
 
Um SGBD oferece aos usuários uma representação conceitual de 
dados, que não inclui muitos detalhes de como os dados são armazenados 
ou como as operações são implementadas. Um modelo de dados é um 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 10 de 136 
tipo de abstração de dados usado para oferecer essa representação 
conceitual. 
 
Na abordagem de banco de dados, a estrutura detalhada e a 
organizaçãode cada arquivo são armazenadas no catálogo. Os usuários 
do banco de dados e os programas de aplicação se referem à 
representação conceitual dos arquivos, e o SGBD extrai os detalhes do 
armazenamento do arquivo do catálogo quando estes são necessários 
para os módulos de acesso a arquivo do SGBD. 
 
Suporte para Múltiplas Visões dos Dados 
 
Cada usuário do banco de dados pode exigir um ponto de vista ou 
visão (view) diferente do banco de dados. Uma visão pode ser um 
subconjunto do banco de dados ou conter dado virtual que é derivado dos 
arquivos de banco de dados, mas não estão armazenados explicitamente. 
Um SGBD multiusuário precisa oferecer facilidades para definir 
múltiplas visões. 
 
Compartilhamento de Dados e Processamento de Transação 
Multiusuário 
 
Um SGBD multiusuário precisa permitir que múltiplos usuários 
acessem o banco de dados ao mesmo tempo. O SGBD precisa incluir um 
software de controle de concorrência para garantir que vários usuários 
tentando atualizar o mesmo dados faça isso de uma maneira controlada, 
de modo que o resultado dessas atualizações seja correto. Esses tipos de 
aplicações são chamados OLTP (On-Line Transaction Processing, 
processamento de transações on-line). 
 
Por exemplo, se vários agentes de viagem tentam reservar um 
assento em um voo de uma companhia aérea. O SGBD precisa garantir 
que cada assento só possa ser acessado por um agente de cada vez para 
que seja atribuído a um único passageiro. 
 
Um papel do software SGBD multiusuário é garantir que as 
transações concorrentes operem de maneira correta e eficiente. 
 
Uma transação é um programa em execução ou processo que inclui 
um ou mais acessos ao banco de dados, como a leitura ou atualização de 
seus registros. Uma transação executa um acesso logicamente correto a 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 11 de 136 
um banco de dados quando ele é executada de forma completa e sem 
interferência de outras operações. Também falaremos adiante sobre 
Gerenciamento de Transações. 
 
 
 
1.4 Trabalhadores envolvidos 
 
 
Sistemas de Bancos de Dados são projetados, administrados e 
utilizados por diversos profissionais. Sem exageros, pode-se visualizar um 
³FLFOR�GH�YLGD´�SDUD�XP�6LVWHPD�GH�%DQFR�GH�'DGRV��FRP�D�SDUWLFLSDomR�
de diversos personagens. São eles, segundo Elmasri e Navathe (2006): 
 
Administradores de Banco de Dados 
 
Em um ambiente de banco de dados o banco de dados é o recurso 
principal, e o SGBD e os softwares são os recursos secundários. A 
administração desses recursos é de responsabilidade do administrador de 
banco de dados (DBA ± database administrator). O DBA é responsável 
por: 
 
ł�$XWRUL]DU�R�DFHVVR�DR�EDQFR�GH�GDGRV� 
ł�&RRUGHQDU�H�PRQLWRUDU�VHX�XVR� 
ł�$GTXLULU�UHFXUVRV�GH�VRIWZDUH�H�KDUGZDUH�FRQIRUPH�D�QHFHVVLGDGH� 
ł�5HVSRQViYHO�SRU� UHVROYHU�SUREOHPDV��FRPR� IDOKas na segurança e 
demora no tempo de resposta do sistema. 
 
Projetista de Banco de Dados 
 
Em muitos casos, os projetistas estão na equipe de DBAs e são 
responsáveis por: 
 
ł�,GHQWLILFDU�RV�GDGRV�D�VHUHP�DUPD]HQDGRV� 
ł� (VFROKHU� HVWUXWXUDV� DSURSULDGDV� SDUD� UHSresentar e armazenar os 
dados. 
ł�6H�FRPXQLFDU�FRP�WRGRV�RV�SRWHQFLDLV�XVXiULRV�D�ILP�GH�HQWHQGHU�
suas necessidades e criar um projeto que as atenda. 
ł�'HVHQYROYHU�YLV}HV�GR�EDQFR�GH�GDGRV�TXH�FXPSUDP�RV�UHTXLVLWRV�
de dados e processamento de cada potencial grupo de usuários. 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 12 de 136 
 
 
Usuários Finais (ou usuários do banco de dados) 
 
O banco de dados existe primariamente para atender os usuários 
finais. Existem várias categorias de usuários finais: 
 
ł�Casuais: são os gerentes de nível intermediário ou alto. Utilizam 
uma linguagem sofisticada de consulta ao banco de dados para especificar 
suas necessidades. 
ł�Iniciantes ou paramétricos: são os caixas de banco, agentes de 
companhias aéreas, hotéis e locadoras de automóveis, funcionários nas 
estações de recebimento de transportadores, entre outros. Sua função 
principal gira em torno de consultar e atualizar o banco de dados 
constantemente, usando transações programadas, que foram 
cuidadosamente programadas e testadas. 
ł�Sofisticados: são os engenheiros, cientistas, analistas de negócios 
e outros que estão profundamente familiarizados com as facilidades do 
SGBD a ponto de implementar as próprias aplicações que atendam suas 
necessidades. 
ł�Isolados: que mantêm bancos de dados pessoais usando pacotes 
de programas prontos, que oferecem interfaces de fácil utilização, 
baseadas em menu ou gráficos. 
 
 
Atenção! 
 
Date (2011) acrescenta a figura do Administrador de Dados(DA), 
que seria uma pessoa que toma decisões estratégicas e de normas com 
relação aos dados da empresa. Nessa abordagem, o DA teria atribuições 
como: 
 
x Levantar os requisitos funcionais para o banco de dados; 
x Modelar conceitualmente o banco de dados; 
x Especificar as regras de negócio das aplicações; 
x Definir padrões de nomes para conceitos e variáveis, e 
x Determinar normas de incorporação e manuseio dos dados. 
x 
 Enquanto isso, o DBA acumularia as seguintes atribuições: 
 
x Mapear o modelo conceitual no modelo lógico; 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 13 de 136 
x Realizar o projeto físico do banco de dados; 
x Criar usuários, definir visões e permissões, além de regras de 
integridade; 
x Controlar os processos de back-up e recuperação, e 
x Garantir o bom desempenho no acesso e manuseio do banco 
pelos usuários. 
x 
Importante, quando tratar-se de personagens envolvidos, prestar 
DWHQomR� QHVVH� GHWDOKH�� WHQWDU� ³DGLYLQKDU´� D� ELbliografia do enunciado, 
para não confundir o Administrador de Dados com o Administrador de 
Banco de Dados. Pior: até mesmo uma mesma banca pode cobrar 
conteúdo de autores diferentes. Eu já vi isso -. 
 
 
Analistas de Sistemas e Engenheiros de Software 
 
Os analistas de sistemas identificam as necessidades dos usuários 
finais, especialmente os iniciantes e paramétricos, e definem as 
especificações das transações padrão que atendam a elas. 
 
Os programadores de aplicações (engenheiros de software e 
desenvolvedores de sistemas de software) implementam essas 
especificações como programas, testam, depuram, documentam e 
mantêm essas transações programadas. 
 
 
 
 
 
 
1) (FGV ± MPE/MS ± Analista de Sistemas ± 2013) Com relação ao 
WHPD� ³6LVWHPDV� JHUHQFLDGRUHV� GH� EDQFRV� GH� GDGRV´�� DQDOLVH� DV�
afirmativas a seguir. 
 
I. Cabe ao administrador de banco de dados de uma organização definir e 
modificar esquemas por meio da execução de instruções de definição de 
dados, conceder diferentes tipos de autorização para acesso a dados e 
manter rotinas que têm por objetivo garantir a integridade do sistema. 
 
II. Cabe ao administrador de banco de dados de uma organização 
escolher, dentre as diversas ferramentas disponíveis no mercado, as mais 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 14 de 136 
adequadas e desenvolver aplicações que utilizem o sistema gerenciador 
de bancos de dados e que ofereçam interfaces amigáveispara os usuários 
finais. 
 
III. Cabe ao administrador de banco de dados de uma organização 
acessar o banco de dados e monitorar as tarefas que estão sendo 
executadas pelos usuários e garantir que o desempenho do sistema não 
seja prejudicado por elas. 
 
Assinale: 
 
a) se somente a afirmativa I estiver correta. 
b) se somente a afirmativa II estiver correta. 
c) se somente a afirmativa III estiver correta. 
d) se somente as afirmativas II e III estiverem corretas. 
e) se somente as afirmativas I e III estiverem corretas. 
 
 
Analisando os itens: 
I. Cabe ao administrador de banco de dados de uma organização definir e 
modificar esquemas por meio da execução de instruções de definição de 
dados, conceder diferentes tipos de autorização para acesso a dados e 
manter rotinas que têm por objetivo garantir a integridade do sistema. ± 
Correto. Esta é uma tarefa rotineira, intrínseca ao DBA. 
 
II. Cabe ao administrador de banco de dados de uma organização 
escolher, dentre as diversas ferramentas disponíveis no mercado, as mais 
adequadas e desenvolver aplicações que utilizem o sistema gerenciador 
de bancos de dados e que ofereçam interfaces amigáveis para os usuários 
finais. ± Errado! Perceba que essa é uma atribuição de alto nível na 
organização. Ou será tarefa do Administrador de Dados (se existir), ou do 
Projetista. 
 
III. Cabe ao administrador de banco de dados de uma organização 
acessar o banco de dados e monitorar as tarefas que estão sendo 
executadas pelos usuários e garantir que o desempenho do sistema não 
seja prejudicado por elas. ± Correto. Mais uma tarefa rotineira do DBA. 
 
Resposta certa, alternativa e). 
 
 
 
 
 
 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 15 de 136 
1.5 Vantagens da abordagem SGBD 
 
 
 
Via de regra, os SGBDs são ferramentas caríssimas, da ordem de 
milhares de dólares. Algumas de suas vantagens são: 
 
x Controle de redundância: quando os Bancos de Dados 
precisam ser replicados em mais de um lugar, o SGBD evita a 
inconsistência das diferentes bases de dados; 
x Restrição a acesso não autorizado: em Bancos de Dados 
com diferentes níveis de permissão de acesso, o SGBD realiza 
o controle dos diversos níveis de permissão; 
x Backup e restauração: o Sistema de Banco de Dados deve 
ser tolerante a falhas, ou seja, o SGBD deve ser capaz de 
voltar a um estado anterior à falha, a despeito de falhas de 
hardware ou software; 
x Forçar as restrições de integridade: os relacionamentos 
entre dos dados são implementados por meio de restrições de 
integridade. Será visto mais adiante. 
 
 
 
 
 
1.6 Desvantagens da abordagem SGBD 
 
 
 
Instalar e manter Sistemas de Bancos de Dados carregam consigo 
alguns ônus intrínsecos. São eles: 
 
x Custos: além do preço elevado das ferramentas de SGBD, 
manter um Sistema de Banco de Dados implica em hardware, 
software e pessoal especializados; 
x Gerenciamento Complexo: o Sistema necessita interfacear 
com diferentes tecnologias, afetando os recursos e cultura da 
empresa; 
x Dependência do fornecedor: o investimento inicial alto 
WHQGH� D� ³SUHQGHU´� R� FOLHQWH�� 0RGLILFDU� XP� 6*%'� p� RQHURVR� H�
complexo; 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 16 de 136 
x Manutenção e atualização: como todo software, o SGBD 
deve ser mantido atualizado. Além disso, periodicamente 
VXUJHP� QRYDV� YHUV}HV�� FRP� PDLV� IXQFLRQDOLGDGHV�� ³H[LJLQGR´�
substituições periódicas, com novos custos de hardware, 
software e treinamento de pessoal. 
 
 
 
1.7 Arquitetura três esquemas de um SGBD 
 
A arquitetura três esquemas é uma abordagem, que ilustra a 
separação entre usuário e aplicação. Nesta arquitetura, os esquemas 
podem ser descritos em três níveis: 
 
 
Arquitetura três esquemas, Elmasri e Navathe (2006) 
 
Nível externo: abrange os esquemas externos, ou visões de 
usuário. Cada esquema descreverá apenas a visão pertinente de cada 
usuário a respeito do Banco de Dados, ocultando o restante. Por exemplo, 
para um aluno, de um sistema de aulas online, somente determinada 
parte do BD lhe é relevante, provavelmente relacionada aos cursos que 
realiza. Para um administrador financeiro desse sistemas, por sua vez, 
aspectos administrativos serão mais relevantes, relacionados aos 
pagamentos dos cursos e de pessoal. 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 17 de 136 
Nível conceitual: possui um esquema conceitual, que descreve o 
banco de dados como um todo. Oculta detalhes do armazenamento físico, 
enfatizando entidades, tipos de dados e restrições. 
 
Nível interno: apresenta um esquema interno, descrevendo a 
estrutura de armazenamento físicos do banco de dados. 
 
 
 
1.7.1 Independência lógica e independência física dos 
dados 
 
Dois conceitos relacionados à arquitetura três esquemas que, não 
raro, aparecem em questões de concursos são a independência lógica e a 
independência física dos dados. 
 
Independência lógica é a capacidade de alterar o esquema 
conceitual sem precisar modificar os esquemas externos. 
 
Independência física é a capacidade de alterar o esquema interno 
sem precisar modificar o esquema conceitual. 
 
Esses esquemas e seus respectivos mapeamentos são guardados no 
catálogo do banco de dados. Ele será visto na próxima aula. 
 
 
 
 
1.8 Categorias de modelos de dados 
 
 
Projetar um banco de dados, como você provavelmente deve 
imaginar, é uma atividade que requer planejamento e organização. 
Didaticamente, pode-se dividir esta tarefa em etapas. 
 
A primeira fase do projeto do banco é o levantamento e análise de 
requisitos, que na prática, é a especificação das necessidades do 
usuário do banco. Entrevista-se o usuário do banco para entendimento e 
documentação dos seus requisitos de dados. 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 18 de 136 
A segunda fase é o projeto conceitual, em que já se criam 
descrições detalhadas de tipos de entidades, relacionamentos, atributos e 
restrições. A modelagem conceitual empregada baseia-se no mais alto 
nível e deve ser usada para envolver o cliente. Os exemplos de 
modelagem de dados visto pelo modelo conceitual são mais fáceis de 
compreender, já que não há limitações ou aplicação de tecnologia 
específica. O modelo normalmente utilizado é o modelo entidade-
relacionamento, com a construção do Diagrama de Entidade e 
Relacionamento. Este diagrama é a chave para a compreensão do modelo 
conceitual de dados. Cria-VH� R� TXH� FKDPDPRV� GH� ³PLQL-PXQGR´�� D�
observação da realidade mapeada dentro do sistema que se deseja 
desenvolver. O modelo e-r é muito importante e será bastante explorado 
nos exercícios. 
 
 
Ilustração de modelagem conceitual usando o Diagrama E-R. 
 
Posteriormente ocorre as especificações das necessidades 
funcionais, depreendidas do próprio projeto conceitual. Caso exista 
algum impedimento funcional para a implementação do banco, talvez seja 
necessário voltar ao projeto conceitual e realizar algumas modificações. 
 
Em seguida aparece o projeto lógico, ou mapeamento do modelo 
de dados. A modelagem lógica (ou representacional, ou de 
implementação),por sua vez, já realiza o mapeamento do esquema 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 19 de 136 
conceitual para o modelo de dados que será usado. O modelo de dados de 
implementação normalmente é o modelo de dados relacional, que 
também é importantíssimo, muito cobrado em provas e será bastante 
abordado nos exercícios. Tal projeto consolidará a escrita do script do 
banco, com a criação do seu esquema. 
 
Modelagem relacional: ilustração com tabelas e atributos 
 
 
Por fim, temos o projeto físico, durante a qual são definidas as 
estruturas de armazenamento interno, índices, caminhos de acesso e 
organizações de arquivo para os arquivos do banco de dados. Já passa a 
depender de regras de implementação e restrições tecnológicas. 
 
 
Figura: Do modelo conceitual ao físico(MAXEY,2002) 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 20 de 136 
 
 
 
 
2) (FGV ± MPE/MS ± Banco de Dados ± 2013) Um modelo de dados é 
uma descrição formal das estruturas de dados presentes em um banco de 
dados. Os dois níveis de abstração dos modelos de dados considerados 
em um projeto de banco de dados são: 
 
a) modelo conceitual e modelo lógico. 
b) modelo lógico e modelo físico. 
c) modelo conceitual e modelo físico. 
d) modelo de classes e modelo de entidades. 
e) modelo de entidades e modelo de relacionamentos. 
 
Os dois principais níveis de abstração são modelo conceitual e modelo 
lógico. 
 
Resposta certa, alternativa a). 
 
 
 
1.9 Tipos de modelos de dados 
 
 
Apoiando a estrutura de um banco de dados está o modelo de 
dados: uma coleção de ferramentas conceituais para descrever dados, 
relações de dados, semântica de dados e restrições de consistência. Um 
modelo de dados oferece uma maneira de descrever o projeto de um 
banco de dados no nível físico, lógico e de visão. 
 
Existem vários modelos de dados diferentes. Vejamos alguns: 
 
Modelo hierárquico: O modelo hierárquico foi o primeiro a ser 
reconhecido como um modelo de dados. Nele, os registros são conectados 
em uma estrutura de dados em árvore, similar a uma árvore invertida (ou 
às raízes de uma árvore). 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 21 de 136 
 
Neste modelo, uma ligação é uma associação entre dois 
registros. O relacionamento entre um registro-pai e vários registros-
filhos possui cardinalidade 1:N, ou 1:1, sendo N =1. Os dados 
organizados segundo este modelo podem ser acessados segundo uma 
sequência hierárquica com uma navegação do topo para as folhas e da 
esquerda para direita. Um registro pode até estar associado a vários 
registros diferentes, desde que seja replicado. 
 
 
Neste exemplo, perceba que os registros da tabela empregado 
possuem hierarquia direta em relação aos registros da tabela 
departamento. 
 
O modelo hierárquico possui muitas limitações. Ele pode ser útil para 
modelar esquemas fortemente hierárquicos (como classificações para 
espécies dos reinos animal e vegetal, corporações, hierarquias 
governamentais, etc.), mas apresenta limitações quando representa 
modelos não-hierárquicos. Isto provocou o surgimento do modelo em 
rede. 
 
Modelo em rede: o modelo em rede acabou eliminando a 
hierarquia, pois passou a permitir que, em tese, cada registro filho 
pudesse ser ligado a mais de um registro pai. 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 22 de 136 
 
Nesse caso, a estrutura em árvore se desfaz, e passa a se 
assemelhar a uma estrutura em grafo. Relacionamentos N:M também 
passam a ser permitidos (lembrando que o relacionamento é estabelecido 
entre registros). 
 
Perceba que, neste modelo, é possível colocar um empregado 
vinculado a mais de um departamento, o que não era possível no modelo 
hierárquico. 
 
Os modelos de dados em rede e hierárquicos precederam o modelo 
de dados relacional, que é o mais utilizado atualmente. São muito pouco 
utilizados nos dias de hoje, a não ser em bancos de dados antigos que 
ainda estejam em vigor. 
 
Modelo relacional: O modelo relacional usa uma coleção de tabelas 
para representar os dados e as relações entre eles. Foi o modelo que eu 
utilizei para explicar os conceitos básicos de banco de dados, e é o 
modelo mais utilizado (e cobrado em provas). Cada tabela possui diversas 
colunas, e cada coluna possui um nome único. Tabelas também são 
chamadas de relações.(Deixei isso pra depois de propósito: não 
confunda relação com os relacionamentos entre as tabelas). Cada tabela 
contém tuplas. Cada tupla possui um número fixo de campos, ou 
atributos. As colunas das tabelas correspondem aos atributos do tipo de 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 23 de 136 
registro. Este modelo é o mais utilizado na fase de projeto lógico do 
BD. 
 
Modelo Entidade/Relacionamento: O modelo de Entidade-
Relacionamento (E-R) é baseado na percepção de um mundo real que 
consiste em uma coleção de objetos básicos, chamados entidades, e os 
relacionamentos entre esses objetos (existem autores que falam em 
relação para descrever relacionamentos. Preste atenção em uma eventual 
questão de prova, para saber o que a banca quer). Uma entidade é uma 
³FRLVD´�RX� ³REMHWR´�QR�PXQGR� UHDO�TXH�p�GLVWLQJXtYHO�GRV�RXWURV�REMHWRV�
(como pessoa, ou carro). É um modelo mais alto nível, empregado na 
fase do projeto conceitual, que é anterior à fase do projeto lógico, no 
qual se utiliza o modelo relacional. Também cai em provas. 
 
Modelo de dados orientado a objetos: É uma extensão do modelo 
ER com noções de encapsulamento de identidade do objeto (isso será 
visto em programação). 
 
Modelo de dados objeto-relacional: Combina características do 
modelo relacional com o modelo orientado a objetos. 
 
 
P.S: Não se surpreenda em ter visto os modelos relacional e entidade 
relacionamento também neste tópico. Os tipos de modelos de dados 
apresentados não deixam de ter um caráter histórico, refletindo a 
evolução dos modelos ao longo do tempo. Por isso, os modelos relacional 
e E-R acabaram se consolidando nas categorias vistas anteriormente. 
 
 
 
 
 
 
 
 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 24 de 136 
1.10 O Modelo Entidade-Relacionamento 
 
 
 
Aqui estamos diante de um diagrama ER, do modelo entidade-
relacionamento. Aquele mais conceitual, alto nível. Façamos uma breve 
legenda: 
 
Retângulos: são as entidades. 
Losangos: representam os relacionamentos. 
Elipses: representam os atributos (ausente neste diagrama). 
Linhas: vinculam conjuntos de entidades a conjuntos de 
relacionamentos. 
Linhas duplas: indicam participação total de uma entidade em um 
conjunto de relacionamentos. 
 
Esta notação, de retângulos e losangos, também é chamada de 
notação Chen, em homenagem ao seu autor, Peter Chen. 
Esta abordagem, como você podeperceber, consegue mostrar para 
um usuário, até mesmo o leigo em banco de dados, algumas 
características desse banco hipotético, ilustrado no modelo. Dele, é 
possível compreender que: 
Empregados gerenciam departamentos; 
Empregados trabalham em projetos;e 
Departamentos controlam projetos (perceba as sentenças no 
estilo entidade-relacionamento-entidade, em lógica de primeira ordem). 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 25 de 136 
Perceba que, com as informações apresentadas, detalhes de 
implementação do banco de dados ainda não são conhecidos. Quais são 
as tabelas desse banco? Você ainda não sabe. 
Um primeiro destaque nesse modelo, comumente cobrado em 
provas, é a indicação de participação parcial ou participação total no 
relacionamento, representados, respectivamente, por linhas simples em 
duplas. 
Uma participação parcial indica que aquele relacionamento não é 
obrigatório para aquela entidade. Preste atenção apenas nesse trecho da 
figura, abaixo: 
 
A linha simples entre Empregado e Gerencia indica que não há 
obrigatoriedade de que um empregado gerencie um departamento. 
Por outro lado, a linha dupla em Departamento indica que todo 
Departamento deve ter um Empregado que o gerencie. Compreendeu? 
Fugindo um pouco do modelo E-R, mas, com o objetivo de fazê-lo 
entender melhor essa obrigação (ou não), imagine uma fotografia de 
duas tabelas de banco de dados com as seguintes informações: 
 
EMPREGADO 
CodEmpregado NomeEmpregado Gerente? 
001 Marcos S 
002 Paula N 
003 Roberta S 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 26 de 136 
004 Marcelo N 
 
DEPARTAMENTO 
CodDepartamento NomeDepartamento CodGerente 
MKT Marketing 001 
ADM Administração 003 
 
Neste exemplo, materializei duas tabelas que mostram Marcos 
gerenciando o Departamento de Marketing, e Roberta gerenciando o 
Departamento de Administração. Do jeito que montei as tabelas, todo 
departamento terá um gerente, mas nem todo empregado será gerente. 
Razoável, não é mesmo? 
P.S.: as fotografias das tabelas não fazem parte do modelo E-
R! Apenas estão aí para facilitar o seu entendimento! 
O segundo aspecto importante, também retratado nas imagens, é a 
questão da cardinalidade (1, N, M). Para tal, trataremos em tópico 
específico. 
 
 
 
1.11 Cardinalidade 
 
 
Podemos ver a mesma imagem novamente? 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 27 de 136 
 
A cardinalidade serve para expressar o número de entidades que 
uma entidade pode associar-se, por meio de um relacionamento. 
 
A figura acima retrata os três tipos possíveis de cardinalidade. 
Na cardinalidade (1:1), uma entidade E1 pode relacionar-se a, no 
máximo, uma outra entidade E2, por meio de um relacionamento, e vice-
versa. É o caso entre Empregado e Departamento, ilustrado no tópico 
anterior. 
 
Na cardinalidade (1:N), uma entidade E1 pode relacionar-se com 
várias entidades E2, porém, uma entidade E2 pode relacionar-se apenas 
com uma entidade E1. É o que acontece entre Departamento e Projeto. 
Preste atenção na imagem e na leitura das frases a seguir: um 
Departamento pode controlar N Projetos, e um Projeto pode ser 
controlado por um Departamento. Captou? Gostaria de enxergar isso em 
tabelas? 
 
DEPARTAMENTO 
CodDepartamento NomeDepartamento CodGerente 
MKT Marketing 001 
ADM Administração 003 
 
 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 28 de 136 
PROJETO 
CodProjeto NomeProjeto CodDepResponsavel 
P01 Inovação MKT 
P02 Reestruturação ADM 
P03 Vender Mais MKT 
P04 Novo Produto MKT 
 
Captou? Do jeito que montei as tabelas, os Departamentos podem 
ter vários projetos, mas cada projeto tem apenas um Departamento 
responsável. 
 
P.S.: as fotografias das tabelas não fazem parte do modelo E-
R! Apenas estão aí para facilitar o seu entendimento! 
 
Por último, falemos da cardinalidade (N:M) ou (N:N). Nela, uma 
entidade E1 pode relacionar-se com várias entidades E2, assim como uma 
entidade E2 pode relacionar-se apenas com várias entidades E1. É o que 
acontece entre Empregado e Projeto. 
 
Um Empregado pode trabalhar em M Projetos, e um Projeto pode 
³VHU� WUDEDOKDGR´� SRU� N Empregados. Captou? Em tabelas, isso fica um 
pouco diferente: 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 29 de 136 
PROJETO 
CodProjeto NomeProjeto CodDepResponsavel 
P01 Inovação MKT 
P02 Reestruturação ADM 
P03 Vender Mais MKT 
P04 Novo Produto MKY 
 
 
EMPREGADO 
CodEmpregado NomeEmpregado Gerente? 
001 Marcos S 
002 Paula N 
003 Roberta S 
004 Marcelo N 
 
TRABALHA 
CodEmpregado CodProjeto 
001 P01 
001 P02 
002 P03 
003 P01 
 
Nesta estrutura, você percebe que a tabela Trabalha serve para 
materializar o relacionamento entre Empregado e Projeto, e que, desta 
forma, empregados podem trabalhar em vários projetos, e projetos 
podem ter vários empregados, sem restrições. 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 30 de 136 
Agora, reveja aquele esquema de banco de dados, do início da 
apostila: 
 
 
O relacionamento entre as tabela usuario e comentario indicam, do 
lado usuario (1,1), e do lado comentario (0,n). Isso retrata um 
relacionamento (1:N) entre essas entidades. Ou seja, Cada usuário 
cadastrado na tabela usuario pode fazer de zero a muitos comentários. 
Cada comentário, por sua vez, deverá ter sido feito por apenas um único 
usuário, entendeu? 
 
Mais um pouco: veja as tabelas usuario, usr_ai e area_interesse. A 
tabela usuario possui um relacionamento de cardinalidade (1:N) com a 
tabela usr_ai. Ou seja, isso implica que cada usuário pode ter zero ou 
mais áreas de interesse. Por exemplo, Paulo pode se interessar por 
esportes, ficção e romance. 
 
Por sua vez, area_de_interesse possui um relacionamento de 
cardinalidade (1:N) com a tabela usr_ai. Ou seja, isso implica que cada 
área de interesse pode estar relacionada a zero ou mais usuários. 
 
Captaram? Na realidade, existe um relacionamento de cardinalidade 
(N:N), também chamado de (N:M), entre usuario e area_interesse. Só 
que, para implementar o banco de dados de uma maneira organizada, foi 
necessário fazer uma tabela de ligação entre usuario e area_interesse. 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 31 de 136 
A cardinalidade pode ser expressada de diferentes formas, de acordo 
com o modelo ilustrado. Inclusive, como no esquema acima, ficaram 
explícitas as cardinalidades mínimas e máximas, uma vez que o 
esquema não possui linhas simples e duplas para tal. Uma cardinalidade 
(1:N), porexemplo, foi retratada pelos pares (1,1) e (0,n), indicando que 
uma entidade E1 pode ser relacionar com 0 a n entidades E2, ao passo 
que uma entidade E2 deve se relacionar com uma, e apenas uma 
entidade E1. Compreendido? 
 
 
 
1.11.1 Notação Engenharia da Informação (pé de 
galinha) 
 
A notação Engenharia da Informação é uma forma alternativa de 
representar entidades e relacionamentos no modelo E-R. Criada por 
James Martin, é apelidada por notação pé-de-galinha, pelo símbolo 
característico que representa a cardinalidade n. Vejamos um pouco sobre 
esta notação: 
 
Entidades: retângulos 
 
Atributos: dentro do retângulo 
 
Relacionamentos: linhas, apenas. 
 
Cardinalidades: linha simples representa 1, pé-de-galinha 
representa N (na horizontal), circunferência representa relacionamento 
opcional (cardinalidade mínima zero). 
 
Veja o exemplo comparativo, abaixo, que ilustra bem a comparação 
entre a notação Chen e a notação pé-de-galinha: 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 32 de 136 
 
Um relacionamento 1-1 é ilustrado, na notação pé-de-galinha, por duas listras verticais, ³||³�
(1-1). Zero é representado por ³o´ e N pelo ³pé-de-galinha.´ 
 
 
 
 
 
 
1.11.2 Modelo E-R Estendido (ou modelo EER) 
 
O modelo EER adota tudo o que vimos anteriormente acerca do 
modelo E-R, mas inclui os conceitos de subclasse, superclasse e 
herança, além dos consequentes conceitos de especialização e 
generalização. 
O modelo EER é mais adequado quando percebe-se que algumas 
entidades podem ser especializadas ou generalizadas. Por exemplo, 
suponha que o banco de dados de uma empresa irá cadastrar seus 
Funcionários. Todos eles possuem um nome e um código, porém, 
aqueles que forem Engenheiros terão um número de CREA, e aqueles 
que forem Médicos terão um CRM e uma especialidade. 
Portanto, uma conduta interessante seria transformar Funcionário 
em uma superclasse, mantendo nele os atributos comuns às 
subclasses Engenheiro e Médico. 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 33 de 136 
 
Especialização de Funcionário em Engenheiro e Médico, utilizando a notação EER. 
 
Engenheiro e Médico herdam os atributos comuns de Funcionário. 
Assim sendo, Engenheiro e médicos são especializações da entidade 
Funcionário, em uma abordagem top-down. Se Funcionário fosse uma 
FODVVH� FULDGD� ³DSyV´� D� FULDomR� GDV� HQWLGDGHV� 0pGLFR� H� (QJHQKHLUR�� HP�
uma abordagem bottom-up, diríamos que houve uma generalização das 
classes citadas. Tranquilo? Vejamos outro exemplo abaixo: 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 34 de 136 
 
Pagamento: no crediário ou no cartão? 
 
Pagamento é uma superclasse, e Crediario e Cartao são subclasses 
que especializam Pagamento. 
Neste caso há uma sutil variação na notação, substituindo o triângulo 
SRU�XPD�FLUFXQIHUrQFLD��H�FRP�GXDV�³VHWDV´�FLUFXODUHV�DSRQWDQGR�SDUD�DV�
classes herdeiras. Tais classes são chamadas assim porque elas herdam 
os atributos das superclasses (os atributos das superclasses são atributos 
comuns, pertencentes também às subclasses). 
A generalização/especialização pode ocorrer segundo quatro 
variáveis, combinadas duas a duas. Ela pode ser exclusiva (também 
chamada disjunta) ou compartilhada, bem como total ou parcial. Os 
exemplos abaixo elucidarão essas características. 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 35 de 136 
 
Compartilhado (c): pessoas podem ser funcionários e associados simultaneamente. 
 
 
Exclusiva ou disjunta (x ou d): se uma mídia é livro, ela não pode ser DVD, e vice-versa. 
 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 36 de 136 
 
Total (t): todas as pessoas são funcionários ou associados. 
 
 
Parcial (p): nem todas as mídias são livros ou DVDs. 
 
 
Assim sendo, são possíveis combinações XT, XP, CT e CP. 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 37 de 136 
 
3) (FGV ± MPE/MS ± Banco de Dados ± 2013) Segundo o modelo de 
entidade e relacionamento, a cardinalidade mínima representa o número 
mínimo de ocorrências de uma entidade que estão relacionadas a uma 
ocorrência de outra entidade através de um relacionamento. Os valores 
das cardinalidades mínimas podem ser 
 
a) zero ou um. 
b) zero ou n. 
c) um ou n. 
d) um número inteiro n menor que zero ou n. 
e) um número inteiro n menor que zero ou zero. 
 
A cardinalidade mínima implica em obrigação ou não de pertencer a um 
relacionamento. Seus valores são zero (participação parcial) ou um 
(participação total). 
 
Resposta certa, alternativa a). 
 
 
 
 
 
1.12 Modelo Relacional 
 
 
Vamos agora tratar do modelo relacional. 
 
Apenas relembrando, o modelo relacional está ligado ao Projeto 
Lógico, aquele em um nível intermediário entre o modelo conceitual e o 
modelo físico. Está lembrado? 
 
Vamos ver aquele esquema novamente: 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 38 de 136 
 
 
Creio que você já o entenda mais do que quando o viu pela primeira 
vez. Mas vamos entendê-lo ainda mais, pois ele está carregado de 
informações do modelo relacional. 
 
Perceba que as tabelas (que também podem ser chamadas de 
relações) são os principais elementos do banco. comentario, contato, 
categoria, recado, area_interesse... 
 
Os atributos são componentes das entidades. Na entidade 
comentário, por exemplo, temos os atributos código, conteudo, 
data_criacao, cod_usuario_remetente e cod_arquivo. 
 
As informações colocadas ao lado dos atributos, conforme visualizado 
neste esquema, são os metadados. Código será um inteiro de até 11 
dígitos, conteúdo será um varchar com até 1000 caracteres (varchar, 
basicamente, quer dizer que o número de caracteres é variável, indo até 
o limite estabelecido), data_criacao será uma informação do tipo data-
hora, e assim sucessivamente. 
 
Por fim, temos os registros da tabela, ou tuplas. Registros e tuplas 
são sinônimos. A imagem acima, utilizada como exemplo, é um modelo 
que mostra o que deverá conter no banco. O banco de dados, 
efetivamente, são essas tabelas efetivamente preenchidas. Um exemplo 
da tabela comentario preenchida com dados poderia ser: 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 39 de 136 
 
E continuemos vendo detalhes! 
 
 
 
 
 
1.12.1 Tipos de Atributos 
 
 
Os atributos, como já vimos, são os elementos que compõem as 
entidades. Eles podem receber várias classificações.Atributos Compostos versus Simples (Atômicos). Os atributos 
compostos são aqueles que podem ser divididos em partes 
menores, que representam a maioria dos atributos básicos com 
significados independentes. Por exemplo, um atributo Endereço, em uma 
tabela hipotética, pode ser subdividido em EnderecoRua, Cidade, Estado e 
CEP, com os valores 'Av. Rangel Pestana, 300', 'São Paulo', 'SP' e '01017-
911'. Os atributos que não são divisíveis são chamados simples ou 
atributos atômicos. E os atributos compostos podem formar uma 
hierarquia; por exemplo, EnderecoRua pode ser subdividido, ainda, em 
três atributos simples: Rua, Número e Apartamento. O valor de um 
atributo composto é a concatenação dos valores componentes dos seus 
atributos simples. Os atributos simples são indivisíveis. 
 
Atributos Monovalorados versus Multivalorados. A maioria dos 
atributos tem um valor único para uma dada tupla; esses atributos são 
chamados monovalorados. Por exemplo, Idade é um atributo 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 40 de 136 
monovalorado de uma pessoa. Em alguns casos, um atributo pode ter um 
conjunto de valores para a mesma entidade ² por exemplo, um atributo 
Cor para um carro ou um atributo Titulação para uma pessoa. Os carros 
com uma cor têm um valor único, enquanto aqueles com dois tons 
contêm dois valores para Cor. Da mesma forma, uma pessoa pode não 
ter um título acadêmico, outra pessoa pode ter um e, uma terceira 
pessoa, dois ou mais títulos, portanto, pessoas diferentes podem ter 
números de valores diferentes para o atributo Titulação. Esses atributos 
são chamados multivalorados. Um atributo multivalorado deve ter limite 
inferior e superior para restringir o número de valores permitidos a cada 
entidade individual. Por exemplo, o atributo Cor de um carro pode ter 
entre um e três valores, se presumirmos que um carro possa ter, no 
máximo, três cores. 
 
Atributos Armazenados versus Derivados. Em alguns casos, dois 
(ou mais) valores de atributos estão relacionados ² por exemplo, os 
atributos Idade e DataNascimento de uma pessoa. Para uma tabela 
pessoa em particular, o valor de Idade pode ser determinado pela data 
corrente (hoje) e o valor de DataNascimento da pessoa. Portanto, o 
atributo Idade é chamado atributo derivado, e é dito derivado do atributo 
DataNascimento, que, por sua vez, é chamado atributo armazenado. 
Alguns valores de atributos podem ser derivados de entidades 
relacionadas; por exemplo, um atributo NumerodeEmpregados, de uma 
entidade departamento, pode ser derivado da contagem do número de 
empregados relacionados (que trabalham) nesse departamento. 
 
Valores nulls (Nulos). Em alguns casos, determinada tabela pode 
não ter um valor aplicável a um atributo. Por exemplo, o atributo 
Apartamento de um endereço se aplica apenas a endereços que estão em 
edifícios de apartamentos, e não a outros tipos de residência, como as 
casas. Por analogia, um atributo Titulação só se aplica a pessoas com 
titulação acadêmica. Para essas situações é criado um valor especial 
chamado null (nulo). Um endereço de uma casa teria valor null para seu 
atributo Apartamento, e uma pessoa sem titulação acadêmica teria valor 
null para Titulação. O valor null pode ser usado também quando não 
conhecemos o valor de um atributo para uma entidade em particular; por 
exemplo, se não soubermos o telefone residencial de 'Joao Paulo'. O 
sentido do primeiro tipo de null corresponde a não aplicável, ao passo que 
o sentido do último se refere a desconhecido. A categoria 'desconhecido' 
de null pode ser, ainda, classificada em dois casos. O primeiro aparece 
quando se sabe que o valor do atributo existe mas está faltando ² por 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 41 de 136 
exemplo, se o atributo Altura de uma pessoa é dado como null. O 
segundo caso surge quando não se sabe se o valor do atributo existe ² 
por exemplo, se o atributo FoneResidencial de uma pessoa é null. 
Atributos Complexos. Observa-se que os atributos compostos e 
multivalorados podem ser aninhados de uma maneira arbitrária. Podemos 
representar essa organização arbitrária agrupando os componentes de um 
atributo composto entre parênteses (), separando os componentes por 
meio de vírgulas e mostrando os atributos multivalorados entre chaves 
{}. Esses atributos são chamados atributos complexos. Por exemplo, se 
uma pessoa pode ter mais de uma residência e cada uma delas pode ter 
múltiplos telefones, um atributo EnderecoFone para uma pessoa pode ser 
especificado contendo mais de um atributo, como por exempo contendo 
os atributos Endereco e Telefone. Ex: 
{EnderecoFone({Fone(CodigoArea,NumeroFone)},Endereco(EnderecoRua
(Numero, Rua, Apartamento),Cidade, Estado, CEP))}. 
 
 
Não confunda! 
 
 
Simples Monovalorado 
indivisível um único valor na tupla 
 
 
Composto Multivalorado 
pode ser dividido em várias partes mais de um valor dentro da mesma 
tupla 
 
Atributo composto pode ser monovalorado? SIM! 
 
Atributo simples pode ser multivalorado? SIM! Exemplo: 
 
Carro Cor 
Gol Preto, Azul, Amarelo 
 
Cor é um atributo simples, mas pode ter mais de um valor, dado um 
único registro. 
 
Quando o atributo é composto e multivalorado simultaneamente, 
ele é complexo. 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 42 de 136 
 
1.12.2 Restrições de Integridade 
 
 
Pois então, um banco de dados relacional, em sua concepção, 
necessita de suas tabelas, das colunas das tabelas(os seus atributos), e 
de suas restrições de integridade, fundamentais para a consistência do 
banco de dados. Tabelas e colunas você já conhece. Agora, falemos dessa 
característica importantíssima, que são as restrições de integridade. 
 
Por meio das restrições de integridade é que são assegurados o 
correto relacionamento entre as tabelas. As restrições de integridades 
podem ser de: 
x Domínio ± amarrando os possíveis valores de um atributo 
(inteiro, string, não nulo, positivo, tipo, etc.) 
x Vazio ± dizer se um campo pode ou não ser null. Não deixa 
de ser um subitem da integridade de domínio. 
x Chave ± impedindo que uma chave primária se repita, ou 
seja nula; 
x Referencial ± assegurando que uma chave estrangeira 
possua respectiva associação na tabela de origem; 
 
As restrições de domínio e vazio são relativamente intuitivas. As de 
chave e referencial são as chaves primárias e estrangeiras, as quais 
veremos a seguir. 
 
 
 
1.12.3 Chave Primária x Chave Estrangeira 
 
 
Todo registro em um banco de dados precisa de um atributo, ou 
vários, que possibilitem caracterizar aquele registro no banco como 
único. Ex: 
 
 
codigo_cliente endereco telefone cidade estado 
1 Rua do Imperador 
Dom Pedro II, SN 
0800-
2851244 
Recife PE 
2 Rua do Imperador 
Dom Pedro II, SN 
0800-
2851244 
Recife PE 
3 Rua José Augusto (81) 3183- Olinda PE 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 43 de 136 
Moreira, 1037 5941 
4 Rua José Augusto 
Moreira, 1037 
(81) 3183-
5941 
Olinda PE 
 
Perceba que, intencionalmente, escrevi tuplas parecidíssimas, 
diferenciadas apenas pelo atributo codigo_cliente.O por quê disso? Imagine que a tabela acima possui um 
relacionamento com outra tabela, como a tabela abaixo: 
 
codigo_cliente Nome 
1 Jader 
2 Afonso 
3 André 
4 Simone 
 
Agora você percebe um motivo. Dois clientes diferentes, que 
possuem um mesmo endereço. Logo, em um banco de dados relacional 
são necessárias duas coisas: diferenciar uma tupla da outra e 
relacionar as tabelas. 
 
Neste pequeno exemplo, a diferenciação entre as tuplas se faz por 
meio da chave primária. No caso, o atributo codigo_cliente. 
 
Voltando ao esquema que eu tanto tenho repetido, perceba que ali 
WHPRV� DOJXQV� DWULEXWRV� FRP� FKDYHV� HP� ³GRXUDGR´�� RXWURV� FRP� FKDYH�
³SDUFLDOPHQWH�GRXUDGD´�H�RXWURV�FRP�FKDYH�³SUDWHDGD´� 
 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 44 de 136 
 
 
A chave primária é o atributo(coluna) ou atributos(colunas), 
que asseguram que cada tupla (linha) da tabela é única. 
 
codigo é a chave primária de comentario; codigo é a chave primária 
de categoria;cod_usuario e cod_usuario_contato são a chave primária de 
contato; e por aí vai. 
 
Mesmo que composta por vários atributos, a chave primária é 
única e o seu papel é o de restrição de chave, ou seja, garantir que 
tuplas não sejam repetidas. Nesse esquema, as chaves douradas são 
chaves primárias. 
 
Um outro conceito interessante referente às restrições de chave é o 
conceito de chave candidata, ou chave alternativa. Às vezes, mais de 
um atributo de uma tabela são únicos. Tenha como exemplo uma tabela 
em que existam os campos CPF, TituloEleitor e Identidade. Todos esses 
atributos serão únicos, e eles são chamados de chaves candidatas. Uma 
dessas chaves convenientemente será escolhida como chave primária e 
as demais permanecerão como chaves candidatas. 
 
A chave estrangeira, por sua vez, exerce o papel de restrição 
referencial�� $� FKDYH� HVWUDQJHLUD� ³DPDUUD´� RV relacionamentos entre as 
tabelas, e explica o porquê das tabelas possuírem linhas interligando-as, 
nos modelos. Isso ainda implica que todo valor preenchido na tabela com 
chave estrangeira possua uma respectiva associação na tabela onde a 
chave associada é primária. No esquema, as chaves prateadas são chaves 
estrangeiras. 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 45 de 136 
 
cod_usuario_remetente e cod_arquivo são chaves estrangeiras na 
tabela comentario, pois referenciam, respectivamente, a chave primária 
codigo na tabela usuário e a chave primária codigo na tabela arquivo; 
cod_usuario e cod_usuario_contato, que juntos compõem a chave 
primária de contato, também são chaves estrangeiras, pois referenciam, 
respectivamente, a chave primária codigo na tabela usuário e a chave 
primaria codigo na tabela usuário (sim, isso mesmo, a mesma chave na 
mesma tabela). E assim sucessivamente. Procure enxergar todos os 
demais relacionamentos nesta tabela. 
 
Perceba que, mesmo que um mesmo atributo possa ser (ou compor) 
chave primária e ser chave estrangeira, as funções da chave são bem 
distintas. A primária restringe unicidade ou nulidade, enquanto a 
estrangeira restringe relacionamento. No esquema, as chaves 
parcialmente douradas estão fazendo o papel de chave primária, mas 
funcionam ao mesmo tempo como chaves estrangeiras, na mesma tabela. 
 
Por fim, acho interessante que você saiba que, no modelo relacional, 
podemos descrever as tabelas, seus atributos e restrições da seguinte 
forma abaixo, com os atributos entre parênteses e as chaves sublinhadas: 
 
Comentario (codigo, conteudo, data_criacao, cod_usuario, 
cod_arquivo) 
Usuario (codigo, nome, email, login, senha) 
Contato(cod_usuario, cod_usuario_contato) 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 46 de 136 
+i�DXWRUHV�TXH�VXEOLQKDP�³FKHLR´�DV�FKDYHV�SULPiULDV�H�³SRQWLOKDGR´�
as chaves estrangeiras. Em questões de concursos, porém, nunca vi esta 
GLIHUHQFLDomR��HVWDQGR�DV�FKDYHV�VHPSUH�VXEOLQKDGDV�³FKHLDV´� 
 
 
 
1.12.4 Outras chaves 
 
 
Chave substituta: A chave substituta, ou surrogate key, ou 
chave artificial, é um campo, normalmente auto incremental, que pode 
(não é obrigatório) ser utilizado para definir a chave primária de uma 
tabela, de uma maneira genérica. É útil, particularmente, para substituir 
chaves primárias compostas por muitos atributos, o que costuma 
impactar negativamente a performance do banco de dados. 
* Nome Telefone 
1 Paulo (11) 99999-8888 
2 Paulo (11) 99999-7777 
3 Paulo (11) 3030-3131 
4 Marta (11) 5678-9012 
5 Marta (11) 99988-9876 
6 Rita (11) 98765-4321 
Chave substituta: coluna não identificada, marcada com * 
 
Algumas características da chave substituta: 
x O valor é único para a tabela, portanto nunca reutilizado (ou 
seja, em caso de exclusão, o número não será reutilizado); 
x O valor é gerado pelo sistema(automaticamente); 
x O valor não é manipulável pelo usuário ou aplicação; 
x O valor não contém nenhum significado semântico; 
x O valor não é visível para o usuário ou aplicação (no caso de 
modelagem relacional); 
x O valor não é composto de vários valores a partir de diferentes 
domínios. 
 
Superchave: Superchave é um conjunto de um ou mais atributos 
que, tomados coletivamente, nos permitem identificar de maneira unívoca 
uma entidade em um conjunto de entidades. Em outras palavras, não 
podem existir duas ou mais linhas da tabela com o(s) mesmo(s) valores 
de uma superchave. 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 47 de 136 
 
Perceba que a superchave é um conceito mais abrangente do que o 
conceito de chave primária. A chave primária é aquele atributo ou 
conjunto de atributos que garante que cada registro na tabela é único. A 
superchave, por sua vez, é qualquer conjunto de atributos que consegue 
a mesma coisa. 
 
Por exemplo, na tabela Comentário: 
 
Comentario (codigo, conteudo, data_criacao, cod_usuario, 
cod_arquivo) 
 
A chave primária é codigo. Isto posto, os atributos codigo e conteudo 
formam uma superchave, os atributos codigo, conteudo e data_criacao 
também formam uma superchave, e por aí vai. Qualquer conjunto de 
atributos escolhido que inclua a chave primária formará uma superchave. 
 
 
4) (FGV ± MPE/MS ± Banco de Dados ± 2013) Com relação ao tema 
³PRGHOR�UHODFLRQDO´��DQDOLVH�DV�DILUPDWLYDV�D�VHJXLU� 
 
I. Chave estrangeira é o mecanismo que permite a implementação de 
relacionamentos em um banco de dados relacional. 
 
II. Chave estrangeira é uma coluna única ou combinação de colunas cujos 
valores necessariamente aparecem como chave primária em outra tabela. 
 
III. Chave candidata é uma coluna cujos valores necessariamente 
aparecem como chave secundária em tabelas que participam de 
autoǦrelacionamentos. 
 
Assinale: 
 
a) se somente a afirmativa I estiver correta. 
b) se somente a afirmativa II estiver correta. 
c) se somente a afirmativa III estiver correta. 
d) se somente as afirmativas I e II estiverem corretas. 
e) se somente as afirmativas I e III estiverem corretas. 
 
Analisando os itens: 
I. Chave estrangeira é o mecanismo que permite a implementação de 
relacionamentos em um banco de dados relacional. ± Correto. Por meio 
dela é que astabelas se relacionam. 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 48 de 136 
 
II. Chave estrangeira é uma coluna única ou combinação de colunas cujos 
valores necessariamente aparecem como chave primária em outra tabela. 
± Correto. Se essa condição não fosse atendida, não teríamos restrição 
de integridade. 
 
III. Chave candidata é uma coluna cujos valores necessariamente 
aparecem como chave secundária em tabelas que participam de 
autoǦrelacionamentos. ± Errado! Que sentença absurda. Chave candidada 
é um atributo que tem potencial para ser chave primária, em função das 
suas características. 
 
Resposta certa, alternativa d). 
 
 
 
1.13 Gerenciamento de Transações 
 
 
Creio que podemos voltar a este aspecto, uma vez que você 
compreende um pouco mais sobre banco de dados. 
Lembra que, no começo da apostila, eu falei que o SGBD precisava 
gerenciar milhares de transações simultâneas, fazer controle de 
redundância, dentre outros? 
 
Acho que você compreende isso melhor agora. Basta imaginar uma 
simples transação modificando múltiplas tabelas, verificando restrições de 
integridade. Já não é algo simples para uma transação única. E quando as 
transações tentam modificar os mesmos campos de uma tabela ao 
mesmo tempo? É aí que entra o famoso controle de concorrência do 
SGBD, organizando as transações, impedindo que o Banco de Dados entre 
em um estado inconsistente. 
 
Idealmente, toda transação em um banco de dados deverá ser: 
 
Atômica: ou a transação é feita ou não é feita. Parece óbvio, mas 
transações complexas em um banco, envolvendo várias tabelas, podem 
sofrer interrupções inesperadas, ou não conseguirem terminar por entrar 
em conflito com outra que ocorra ao mesmo tempo. Nesse caso, o SGBD 
deverá ser capaz de reverter o que parcialmente foi modificado (realizar o 
rollback); 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 49 de 136 
Consistente: os dados deverão permanecer íntegros e obedientes 
às regras do banco de dados (metadados); 
 
 Isolada: o resultado de uma transação executada 
concorrentemente a outra deve ser o mesmo que o de sua execução de 
forma isolada. Operações exteriores a uma dada transação jamais verão 
esta transação em estados intermediários. 
 
Durável: os efeitos de uma transação em caso de sucesso (commit) 
devem persistir no banco de dados mesmo em presença de falhas. os 
dados modificados devem estar disponíveis em definitivo. 
 
Às vezes parece óbvio, mas os SGBDs de grandes corporações 
trabalham com grandes bases de dados, sofrendo constantes 
modificações, com dados distribuídos, inclusive, por várias partes do 
mundo. Assegurar o ACID é um verdadeiro desafio. 
 
 
 
1.14 Catálogo do sistema (dicionário de dados) 
 
 
Uma vez visto o modelo relacional, creio que seja mais simples 
entender o papel do catálogo, ou dicionário de dados. 
 
Um SGBD, ao implementar o modelo relacional, precisa armazenar 
não somente os dados propriamente ditos, mas também os metadados. 
Eles podem ser: 
x nomes das relações (tabelas); 
x nomes dos atributos das relações; 
x domínios dos atributos; 
x restrições de integridade; 
x mapeamentos (entre níveis externos, conceitual e interno). 
 
Além dos metadados, também podem ser armazenados: 
 
x nomes de usuários autorizados; 
x senhas; 
x índices, etc. 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 50 de 136 
Enfim, essa série de informações que possibilitam o correto 
gerenciamento da Base de Dados fica armazenada naquilo que chamamos 
de Catálogo, ou Dicionário de Dados. 
 
 
Catálogo de Dados: Ilustração 
 
 
 
 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 51 de 136 
1.15 Views 
 
Conforme explicado na arquitetura três esquemas de um SGBD, o 
nível externo descreve a cada usuário apenas a visão pertinente ao 
mesmo. Afinal de contas, pode não ser bom que todos os usuários finais 
vejam o esquema conceitual completo, seja por questões de segurança, 
ou até mesmo para sua compreensão. 
Para tal, um recurso muito eficiente é a utilização de visões 
(views). 
View é uma tabela única derivada de outras tabelas. Por não existir 
fisicamente, pode ser considerada uma tabela virtual. A visão, 
diferentemente das tabelas básicas, não contém suas tuplas armazenadas 
no banco de dados. 
 
Voltemos ao exemplo de Projeto e Departamento: 
 
 
DEPARTAMENTO 
CodDepartamento NomeDepartamento CodGerente 
MKT Marketing 001 
ADM Administração 003 
 
PROJETO 
CodProjeto NomeProjeto CodDepResponsavel 
P01 Inovação MKT 
P02 Reestruturação ADM 
P03 Vender Mais MKT 
P04 Novo Produto MKT 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 52 de 136 
Dadas estas tabelas, pode ser conveniente criar uma visão para o 
usuário, que mostre apenas o Projeto e o nome do Departamento 
Responsável. Abaixo: 
 
VISÃO PROJETO 
Projeto Departamento 
Responsável 
Inovação Marketing 
Reestruturação Administração 
Vender Mais Marketing 
Novo Produto Marketing 
 
Compreendeu a utilidade da visão? É vantajoso utilizá-la quando o 
usuário realiza consultas muito frequentes a determinadas tabelas. Ainda, 
campos que não sejam muito úteis ao usuário final, como CodigoProjeto e 
CodigoDepartamento, podem ficar ocultos. 
Entretanto, por sua natureza virtual, as visões apresentam algumas 
restrições. Vejamos a seguir. 
 
1.15.1 Views materializadas 
 
Certos SGBDs garantem que, em caso de modificação nas relações 
utilizadas em uma view, a mesma permanecerá atualizada. Essas views 
podem ser chamadas de views materializadas. 
A responsabilidade pela atualização da view será sempre do SGBD, e 
não do usuário. 
 
1.15.2 Atualização de uma view 
 
09079306622
09079306622 - Natalia
Informática para ISS-Niterói 
Prof Victor Dalton ʹ Aula 05 
 
 
 
Prof. Victor Dalton 
 www.estrategiaconcursos.com.br 53 de 136 
As views, por sua natureza virtual, apresentam restrições quanto à 
atualização, inserção ou exclusão de informações. 
 
Para ser atualizável, via de regra, uma view deverá: 
x Influenciar apenas uma tabela do banco de dados; 
x Em caso de atributos ocultos na view, ou esse atributo deve ser 
gerado automaticamente (no caso de um código, por exemplo), 
ou possuir valor default, ou poder ser nulo (null). 
 
Voltemos ao nosso exemplo: 
 
VISÃO PROJETO 
Projeto Departamento 
Responsável 
Inovação Marketing 
Reestruturação Administração 
Vender Mais Marketing 
Novo Produto Marketing 
 
Esta view não permite a modificação dos dados, pois ela envolve 
duas tabelas, Projeto e Departamento, lembra? 
Entretanto, caso ela viesse somente da tabela Projeto, poderíamos 
inserir, atualizar ou excluir algum dado da view. O atributo oculto 
CodProjeto, por ser gerado automaticamente (neste exemplo), não seria 
obstáculo para a modificação da view. 
Quando se

Continue navegando