Escolar Documentos
Profissional Documentos
Cultura Documentos
IESDE BRASIL
2020
© 2020 – IESDE BRASIL S/A.
É proibida a reprodução, mesmo parcial, por qualquer processo, sem autorização por escrito do autor e do
detentor dos direitos autorais.
Projeto de capa: IESDE BRASIL S/A. Imagem da capa: DrHitch/Shutterstock
3 Modelagem de dados 51
3.1 O que é e para que serve um modelo de dados? 51
3.2 Vantagens e desvantagens de um modelo de dados 55
3.3 Criação e manutenção de um modelo de dados 62
3.4 Tipos de modelos de dados 72
7 Gabarito 149
Vídeo APRESENTAÇÃO
O desenvolvimento de novos sistemas de informação
corporativos, para uso pessoal e até de aplicativos para
celulares (apps) tem exigido – com grande frequência e dos
programadores – o conhecimento de técnicas de criação e
manipulação dos bancos de dados. Qualquer sistema, por mais
simples que seja, em algum momento terá a necessidade de
criar, manter e consultar determinado tipo de dado.
A evolução das tecnologias de armazenamento, manipulação
e consulta a fontes de dados criou um conjunto específico de
conhecimentos dentro da área de informática, que se chama
banco de dados (BD). Esse é o tema que abordaremos nesta
obra, preparando você para poder compreender e se aprimorar
nessa nova área de conhecimento.
No Capítulo 1, conheceremos a importância do uso de um
BD como fonte de dados para sistemas, como um banco de
dados é criado e quais são os benefícios que podemos obter de
sua utilização. Você conhecerá um universo de informações que
lhe permitirá prosseguir no estudo desse rico conteúdo.
No Capítulo 2, ao compreendermos o papel que um BD
poderá ter para os sistemas de informação, será possível
conhecermos os sistemas gerenciadores de bancos de dados
(SGBDs), programas criados para gerenciar os bancos de dados.
Existem diferentes abordagens de sistemas gerenciadores de
bancos de dados, as quais incorporam diferentes recursos e
restrições de uso. Os SGBDs podem exigir diferentes requisitos,
e podem, ou não, atender às necessidades conforme o tipo de
projeto a executar.
No Capítulo 3, iniciaremos o caminho rumo à construção
de um banco de dados. O processo de criação de um BD
não é intuitivo e livre; ele conta com uma metodologia ou um
processo padronizado/estruturado para transportar requisitos
de informação de acordo com as necessidades de um sistema.
Nesse sentido, a criação de um modelo de dados conceitual é o
alicerce de todo o processo de construção de um BD. O modelo
de dados representa algo como o desenho da planta baixa de uma casa: ele
não é a casa, mas a representa. Assim, o modelo de dados não é o banco de
dados, mas o representa por intermédio de um diagrama.
Ao sabermos como construir um modelo de dados, estaremos preparados,
no Capítulo 4, para converter esse diagrama inicial em um modelo lógico
relacional, base do projeto do banco de dados. Conheceremos os requisitos
do modelo relacional – as vantagens e desvantagens em utilizá-lo – e
aprenderemos o método de conversão de um modelo de dados conceitual
em um modelo de dados relacional. As regras de conversão são apresentadas
para que os requisitos do modelo relacional possam ser atendidos e,
finalmente, construir o banco de dados.
No Capítulo 5, ao termos um modelo de dados relacional definido,
poderemos, enfim, projetar o BD, dando origem a um modelo físico, no qual
todos os detalhes para a alocação física de uma estrutura de dados seja
feita. Para tanto, é necessário conhecer mais alguns requisitos e conceitos
que poderão proporcionar um desempenho adequado para o acesso aos
dados. A aplicação desses elementos garante maior flexibilidade para o
compartilhamento dos dados e atendimento aos requisitos de inserção,
de atualização e de consulta aos dados, feitas por um ou mais sistemas
de informação. Essa é a última etapa da construção de um BD; com base
nesse ponto, é possível ter um banco de dados projetado e pronto para ser
construído.
No Capítulo 6, conheceremos a Structured Query Language (SQL),
linguagem criada especificamente com a finalidade de prover meios de
interação com o banco de dados. Ao ter em mãos o projeto físico finalizado, é
possível construir o BD por meio de comandos SQL, os quais permitirão criar
banco de dados, tabelas dentro do BD e colunas dentro destas, bem como
armazenar, atualizar, excluir e consultar conteúdos. Além disso, conheceremos
algumas sintaxes dessa rica linguagem de acesso a dados, como ela pode ser
incorporada nos programas hospedeiros – em que lugar a SQL será agregada
para permitir o acesso ao BD –, benefícios de seu uso, entre outros.
Com todo esse conteúdo, você participará de uma jornada que começa
com os primeiros conceitos, passa por métodos de construção de modelos
de dados – conceituais, lógicos ou físicos – e chega, por fim, à construção e
manipulação dos dados dentro de um BD.
Esperamos que você tenha uma gratificante experiência com a leitura
desta obra. Bons estudos!
1
Introdução a banco de dados
Neste capítulo, vamos conhecer alguns conceitos essencial-
mente importantes para a adoção de estruturas de bancos de
dados como elementos de suporte providos para os sistemas de
informação. Atualmente, a ideia de iniciar a criação de um sistema
de informação ou de um app sem considerar a adoção de um ban-
co de dados como elemento de sustentação para os dados que
serão manuseados por esse sistema é pouco aceita. O uso do ban-
co de dados é amplamente difundido e não é mais questionado.
Contudo, o fato de essa estratégia ser amplamente aceita não
significa que é dispensável ter conhecimento dos fatores que levam
a tal escolha. Talvez, em alguma situação particular, essa escolha
possa ser reavaliada. Nesse sentido, é necessário ter conhecimen-
tos dos chamados critérios de avaliação.
Desse modo, vamos conhecer os principais conceitos e as fun-
ções envolvidas no processo de adoção dos bancos de dados. Esse
será um importante ponto de partida para nossa jornada rumo à
implantação desses mecanismos em nossos sistemas.
Figura 1
Modelo de dados da entidade “Pessoa”
PESSOA
• nome
• data de nascimento
• altura
• peso
Fonte: Elaborada pelo autor.
Fonte: Elaborada pelo autor.
Figura 2
Modelo de dados da entidade “Casamento”
CASAMENTO
• Data
• Horário
• Regime de comunhão de bens
• Tipo de decoração
Fonte: Elaborada pelo autor.
10 Banco de Dados I
1.1.2 Informação
Informações são elementos e conclusões geradas por meio da ma-
nipulação dos dados que dispomos. A informação é o dado trabalha-
do, isto é, o dado traduzido. A manipulação dos dados pode envolver,
comparar, apresentar, separar e formatar dados; já a transformação
pode envolver, somar, subtrair e contar dados. A figura a seguir sinte-
tiza esses processos:
Figura 3
Processo de transformação de dados em informações
Figura 4
Transformação de um dado em várias informações
Signo do zodíaco
Peso Transformação ou
manipulação
Índice de Massa Corporal
Data de nascimento (risco de enfarte)
12 Banco de Dados I
rio muito processamento ou muito trabalho para obtenção dos resul-
tados esperados.
Criava-se, então, uma nova era: a era dos bancos de dados, isto é,
a era dos sistemas de informação desenvolvidos com bases de dados
e não mais com arquivos. Esses bancos ainda não eram os atuais que
conhecemos hoje, mas já apresentavam diferenciais e facilidades.
Figura 5
Seleção da porção do mundo real a ser mapeada
Data de nascimento
Tipo sanguíneo
Data de nascimento
Peso
Peso
Seleção
Altura
Altura
Pressão arterial
Nome
Nome
Temperatura
14 Banco de Dados I
Dessa forma, delimitar o escopo dos objetos observados, bem como
o escopo dos dados a serem mapeados para cada um desses objetos
não é um defeito, mas um objetivo do processo.
Figura 6
Mapeamento dos dados das entidades “casamento” e “pessoa”
CASAMENTO PESSOA
• Data do evento • Nome
• Horário • Data de nascimento
• Regime de comunhão de bens
• Tipo de decoração
• Nome do noivo
• Nome da noiva
16 Banco de Dados I
quantidade de registros de dados que conterá, como serão divididos
os casamentos de cada diferente país, estado, cidade, entre outros. Em
resumo, um pequeno BD de casamentos feitos em uma cidade ou um
enorme BD de casamentos feitos em todo o mundo poderão requerer
características diferenciadas.
Figura 7
Surgimento das tecnologias para dados
Sistemas BD BD BD BD
de arquivo Hierárquico Rede Relacional Pós-relacional
Anos 1950 Anos 1960 Anos 1970 Anos 1980 Anos 1990
18 Banco de Dados I
Durante a década de 1950 e até o início da década de 1960, a es-
trutura de dados predominante era a dos sistemas de arquivo, primei-
ramente sequenciais (na qual, para ler um registro de número 3, era
necessário primeiramente ler o registro de número 1 e, em seguida, o
de número 2), e, depois, também indexados – que permitiam acesso di-
reto a um registro sem necessidade de ler todos os registros anteriores.
20 Banco de Dados I
Esses dois profissionais têm papéis complementares: um modela ou
prepara a estrutura nativa dos dados, o outro implementa essa estru-
tura utilizando recursos do SGBD. Em empresas com equipes menores,
um mesmo profissional pode assumir essas duas funções simultanea-
mente. Já em empresas com equipes mais especializadas é comum
existir separadamente um administrador de dados e um administrador
de banco de dados, uma vez que as competências são diferenciadas.
Ao utilizar um SGBD para manter um BD, passa-se a ter um método de acesso único, provido
também por meio de uma linguagem estruturada (SQL – linguagem padrão para banco de
Facilidade de acesso dados relacionais) que padroniza e facilita o reaproveitamento de códigos gerados para
aos dados interação com o banco de dados. Se cada aplicação tivesse o seu próprio arquivo, seria possível
ter diferentes métodos de acesso e haveria dificuldades para compartilhar códigos e funções já
criadas em outros sistemas.
(Continua)
22 Banco de Dados I
Outro importante recurso disponível nos SGBDs são os diversos mecanismos de controle de
segurança para acesso e para atualização dos dados do BD. Tanto as permissões que definem
Melhoria da quem pode ou não acessar um dado quanto os mecanismos de garantia das atualizações feitas
segurança no BD (redo log) irão contribuir para a segurança lógica e física dos dados. Pode-se limitar o acesso
de uma pessoa ou um sistema a todo um conjunto de dados (uma tabela inteira) ou a somente
parte dos dados (algumas colunas ou linhas da tabela) por meio da criação de visões de dados.
Fonte: Elaborado pelo autor com base em Date, 2004; Silberschatz, Korth, Sudarshan, 2012.
Quadro 2
Desvantagens do banco de dados
Quando tratamos de centralização, A interdependência criada pela Imagine que foi atualizado todo um
seja de dados, de processos, centralização dos dados também cadastro de pessoas, corrigindo os
de pessoas, de equipamentos, poderá afetar, de certo modo, números de CEP das residências
temos naturalmente a perda de determinada aplicação ou a de cada um dos colaboradores.
autonomia sobre esses mesmos aplicação de terceiros. No caso de Em paralelo, outro programa foi
itens. Quando determinado dado somente um arquivo próprio, com executado por outra aplicação,
é definido, criado, atualizado ou os dados que o sistema requer, mudando também os telefones dos
excluído e compartilhado com talvez esse arquivo nunca fosse colaboradores. Agora, imagine que, em
outras aplicações, é necessário impactado por outro sistema que razão de um problema no processo
realizar essas operações ciente de resolvesse inserir outras 200 mil de atualização do CEP, todos os dados
que outras pessoas podem vir a pessoas em um cadastro que tinha atualizados ficaram errados, sendo
ser impactadas. Se, por exemplo, somente mil. Um BD que tinha necessário voltar ao estágio anterior
ao resolver mudar o número de somente os dados de “pessoa” e para reprocessar a atualização. Isso
identificação de 6 dígitos para 7 de “casamento” em poucos meses seria muito fácil de ser feito, caso
dígitos, porque o sistema requer poderá ter dados de outros 100 não fosse compartilhado um BD
esse novo tamanho, qual será o ou 200 objetos, relacionados com com outras aplicações. É importante
impacto nos demais sistemas que “pessoa” e com “casamento” de lembrar que os dados não são mais
já usam esse código? Talvez a troca um modo não antes imaginado. individuais e estar preparado para
não seja tão fácil como seria em um Contudo, é importante lembrar que esse e outros tipos de situações em
arquivo individual. os dados não são mais individuais. que a sincronização dos dados entre
diferentes aplicações será dependente
do tempo, ou de quando for feita.
Fonte: Elaborado pelo autor com base em Date, 2004; Silberschatz, Korth, Sudarshan, 2012.
24 Banco de Dados I
Isso significa que a criação de um banco de dados pode começar
muito antes do surgimento da necessidade de um novo sistema ou de
um novo aplicativo. Podemos perceber que se o administrador de da-
dos realmente cumprir o papel de mapear os dados da empresa, ele
estará, na verdade, antecipando o trabalho dos futuros analistas de sis-
temas ou administradores de banco de dados no momento em que se
tenha a demanda de criação de novos BDs.
Modelagem conceitual
O próximo passo a ser seguido na criação do banco de dados é rea-
lizar a modelagem conceitual dos dados que o escopo da demanda re-
quer. Como vimos, todo BD representa uma porção do mundo real em
um dado momento. Precisamos, então, delimitar a nossa porção de
mundo real e iniciar a modelagem conceitual desses dados.
Livro
Mas o que é a modelagem conceitual? Segundo Heuser (2009), ela é
um processo de criação de uma representação gráfica e textual de basi-
camente dois elementos: as entidades e os relacionamentos. Esse pro-
cesso identifica os objetos ou fatos do mundo real a serem mapeados
(as entidades) e os relacionamentos que existem entre esses objetos
(por meio de regras). Em nosso exemplo, teríamos a entidade “pessoa”
e a entidade “casamento” (que são os objetos e fatos) e a regra relacio-
namento, que seria “uma pessoa é noivo em um ou mais casamentos”.
processo incremental e cíclico que gera um conjunto compartilhado e HEUSER, C. A. 6. ed. Porto Alegre:
coerente de dados. Bookman, 2009.
Modelagem física
Após gerado o modelo lógico, que já está pronto para os requisitos do
SGBD, chegamos à última etapa de construção do banco de dados, que é
a modelagem física, também chamada de projeto do banco de dados.
26 Banco de Dados I
Segundo Heuser (2009), como em todo projeto, é nesse momento
que detalhes, mecanismos de otimização, cálculos de ocupação de es-
paços, mecanismos de segurança, ente outros elementos são agrega-
dos. Até o ponto em que se tem o modelo lógico, não há preocupação
com detalhes como:
•• Quantos registros serão armazenados em cada tabela?
•• Qual o tamanho de cada registro?
•• Qual será a necessidade de acesso a essa tabela? Eventual?
On-line?
•• Como esse dado será compartilhado? Somente em um local? Na
web?
Dicionário de dados
É importante saber que todas as informações sobre o modelo de da-
dos conceitual – lógico e físico – deverão ser registradas em um reposi-
tório que chamamos de dicionário de dados. Nele temos registros de um
determinado campo (por exemplo, “data de nascimento”), a saber:
•• A qual entidade pertence.
•• Como é alimentado.
•• Quando é atualizado.
•• Quem é o responsável pela criação.
•• Quem é o responsável pela atualização.
•• É um campo de preenchimento obrigatório?
•• Que conteúdo terá se não for preenchido? Uma data padrão?
•• Qual o formato? Tem só dia, mês e ano ou precisa de hora e
minuto?
•• Por que foi escolhido esse formato? Existe uma norma que exige?
Processos operacionais
Estando o BD criado fisicamente e pronto para uso, inicia-se a fase
de definição e implementação de procedimentos operacionais de ad-
ministração do banco de dados. Entre esses processos temos:
•• monitoração do acesso aos dados;
•• monitoração da performance de acesso;
•• rotinas de salvamento (backup);
•• planos de recuperação e contingência para falhas no BD;
•• rotinas de compactação de dados (para redução do espaço em
disco);
•• rotinas de criação e recriação de índices (melhoria de performance).
28 Banco de Dados I
1.4 Tipos de bancos de dados
Vídeo O processo modelagem pode se aplicar, com pequenas adaptações, à
construção de diferentes tipos de bancos de dados. Alguns desses tipos
foram historicamente importantes e não são mais usados com frequên-
cia. Outros ainda têm usos isolados em aplicações desenvolvidas há mui-
to tempo, mas que se mantêm ativas, por exemplo, no setor bancário,
o qual ainda preserva aplicações antigas, mas estáveis e em operação.
É certo que esse tipo de BD ainda tinha grandes restrições para im-
plementar todo tipo de relacionamento entre diferentes conjuntos de
dados, pois, como o próprio nome sugere, ele só era capaz de imple-
mentar hierarquias, isto é, estruturas em árvore.
30 Banco de Dados I
No BD relacional, deixou-se de ter ponteiros para associar registros
– pois eles eram campos “artificiais”, usados somente com finalidade
associativa – e passou-se a utilizar, então, associações feitas por meio
de campos naturais. Isso significa que, por exemplo, caso seja necessá-
rio associar um “professor” a uma “disciplina” que ele ministra, basta ir
ao registro da “disciplina” e inserir o código da matrícula do professor.
Passamos a relacionar a disciplina com o professor com dados natu-
rais (aqueles que existem no mundo real) e não com dados artificiais
(aqueles criados somente para viabilizar um relacionamento entre da-
dos naturais).
Termo genérico adotado para Os BDs não relacionais utilizam os recursos do ambiente relacional
representar os bancos de dados (SQL), mas agregam outras facilidades típicas dos modelos orientados
não relacionais.
a objetos, bem como outras para gerenciamento de distribuição de da-
dos em grandes volumes. Imagine uma base de dados de indexação
de páginas web que é usada pelo buscador Google para atender a um
pedido de filtro feito no browser. Que tamanho deve ter essa base? E
onde ela está localizada? Qual comando de filtro é aplicado para se-
lecionar os registros que interessam? Com certeza um banco de da-
dos relacional convencional não daria conta de tudo isso. Para tanto, o
próprio Google, em 2003, criou uma iniciativa de um software livre de
banco de dados chamado Hadoop, que manuseia grandes volumes de
dados estruturados e não estruturados. Essa plataforma hoje é um dos
grandes exemplos de soluções NoSQL.
A denominação NoSQL não implica que esse tipo de BD não utilizará
o SQL, mas que implementará outros recursos além dele. É importante
ressaltar que a sigla NoSQL significa “not only SQL” (“não apenas SQL”,
em tradução livre), e não “not SQL” (“não SQL”, em tradução livre). Ele
7
preserva e expande o modelo SQL.
Grandes BDs que armazenam
massas de dados de proporções Finalmente, nas últimas décadas, temos visto pesquisas orientadas
muito grandes quando com- para novas arquiteturas de bancos de dados que possam gerenciar
paradas aos bancos de dados 7
comerciais. grandes volumes de dados em função do novo conceito de big data ,
que passou a ser agregado a uma série de aplicações. Esse é um tema
em amplo desenvolvimento e que promete ainda grandes surpresas.
32 Banco de Dados I
CONSIDERAÇÕES FINAIS
Neste capítulo, vimos que a criação de um banco de dados é mais do
que uma escolha técnica por um software de SGBD. Temos uma grande
responsabilidade em criar algo que será compartilhado com toda a orga-
nização e não somente com nossos próprios sistemas.
Precisamos conhecer os dados, identificar suas características, verifi-
car o modo como se relacionam com outros dados e tantos outros deta-
lhes. Portanto, é importante lembrar: os dados não são seus, eles são da
organização. Aquilo que você cria hoje poderá amanhã ser alterado e até
mesmo excluído por outra pessoa. Assim, todo o cuidado no estabeleci-
mento de regras de utilização desses dados deve ser tomado.
Não tenha pressa de criar seu banco de dados. Aqui vale um velho
ditado: “se você tem duas horas para cortar uma árvore, gaste uma hora
e meia afiando seu machado”.
ATIVIDADES
1. Por que podemos afirmar que, ao criar um banco de dados, os dados
não são nossos?
3. Por que um banco de dados deve ser sempre visto como uma porção
do mundo real?
REFERÊNCIAS
DATE, C. J. Introdução a sistemas de bancos de dados. 8. ed. Rio de Janeiro: Elsevier, 2004.
HEUSER, C. A. Projeto de banco de dados. 6. ed. Porto Alegre: Bookman, 2009.
HOUAISS, A. (org.). Houaiss eletrônico. Rio de Janeiro: Objetiva, 2009. 1 CD-ROM.
NAVATHE, S. B.; ELMASRI, R. Sistema de banco de dados. 4. ed. São Paulo: Person Brasil,
2005.
SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de banco de dados. 6. ed. Rio de
Janeiro: Elsevier, 2012.
34 Banco de Dados I
dos privilegiados – usados para definir regras de segurança, controles
de acesso, definição de perfis (roles) etc.
Figura 1
Arquitetura de um SGBD
Programadores
de aplicação
PROGRAMAS DE Usuários
Equipe DBA Usuários casuais APLICAÇÃO parametrizáveis
Pré-compilador
COMANDOS PESQUISA
COMANDOS DDL
PRIVILEGIADOS INTERATIVA
Compilador da
linguagem hospedeira
TRANSAÇÕES
Compilador COMANDOS
COMPILADAS
de pesquisa DML
(CUSTOMIZADAS)
E Catálogo do A
Compilador
sistema /
DDL dicionário de B Compilador
dados DML
Processador de
C banco de dados
em tempo execução
execução de execução
(runtime)
BANCO DE DADOS
ARMAZENADO
Figura 2
Grupos de comandos do SQL
Figura 3
Interface gráfica do Ms-SqlServer para a criação de tabelas
36 Banco de Dados I
Dentre os profissionais envolvidos nas atividades diretamente liga-
das ao SGBD, podemos elencar o administrador de banco de dados,
projetistas e arquitetos de soluções. Além desses, há os usuários even-
tuais ou parametrizáveis, os analistas de sistemas e programadores, os
fornecedores de ferramentas e as equipes de suporte e operação. O
Quadro 1, a seguir, descreve a atribuição de cada profissional:
Quadro 1
Profissionais ligados ao SGBD e suas atribuições
2.2.1. Vantagens
Dentre as vantagens apontadas por Navathe e Elmasri (2006), e re-
ferenciadas também por outros autores, serão descritas as seguintes:
•• Natureza de autodescrição de um sistema de banco de dados
01 REGISTRO-PESSOA
05 CODIGO-PESSOA PIC 9(006)
05 NOME-PESSOA PIC X(050)
38 Banco de Dados I
mos um erro durante a execução desse programa, pois os dados físicos
existentes em disco não seriam compatíveis com o mapeamento que o
programa estava fazendo.
Nas tabelas a seguir, podemos ver que, para uma relação contendo
várias colunas e várias linhas, é possível produzir diferentes views des-
tes dados, seja pela segmentação horizontal (onde os dados de algu-
mas linhas são selecionados), pela segmentação vertical (onde alguns
dados de algumas colunas são selecionados) ou, ainda, pela combina-
ção simultânea da segmentação horizontal e vertical.
Tabela 1 Tabela 2
Segmentação horizontal e vertical de uma tabela View com segmentação vertical (colunas
Tabela original Nome + Sexo)
Cód. Data de
Nome pessoa Sexo Raça Nome pessoa Sexo
Pessoa nascimento
000015 JOAO DA SILVA 25/03/1962 Masculino Branco JOAO DA SILVA Masculino
Tabela 3
View com segmentação horizontal (filtro para “sexo masculino”)
40 Banco de Dados I
mas realizassem operações simultâneas de atualização e exclusão
caso, no SGBD, não tivesse um conjunto de facilidades prontas para
essa finalidade. Pode-se dizer que seria praticamente inviável compar-
tilhar e controlar as operações de atualização simultânea se não exis-
tisse, no SGBD, esse controle já automatizado.
2.2.2. Desvantagens
Abordaremos, a seguir, as desvantagens de se utilizar um SGBD na
implementação de uma estrutura de suporte a dados para um sistema
de informações.
•• Recursos de infraestrutura
42 Banco de Dados I
2.3 Criação e manutenção de um SGBD
Vídeo Dentre as funções do SGBD, podemos destacar o fato de ele servir
como ferramenta para integrar três níveis existentes na arquitetura de
três esquemas (NAVATHE; ELMASRI, 2006).
Figura 5
Criação da estrutura física do banco de dados
44 Banco de Dados I
Na Figura 5, podemos ver a alocação de 5 megabytes para uma área
de dados, chamada Exemplo, com incrementos de 1 megabyte em um
diretório físico localizado em “C:\ProgramFiles\MicrosoftSQLServer”.
Há também uma segunda área física com 1 megabyte, chamada
Exemplo_log, com incrementos de 10% em outro diretório da rede. Es-
ses são todos os aspectos físicos que o SGBD gerencia no nível físico
para que tenhamos sempre o banco de dados como capaz de armaze-
nar novos dados.
Figura 6
Criação de usuários e esquemas
46 Banco de Dados I
2.4 Tipos de SGBD
Após termos definido que iremos usar um SGBD para dar suporte
Vídeo
aos dados de nossas aplicações, chega o momento
da definição de qual será o SGBD escolhido. Muitas Vídeo
características podem influenciar essa escolha: a O vídeo Banco de Dados – Sexta
oferta de SGBDs no mercado é ampla, há diversos Aula – SGBD – Sistemas Geren-
ciadores de Banco de Dados, pu-
fornecedores e um mesmo fabricante pode oferecer blicado pelo canal Wopenheimer,
diversos modelos de SGBD. Em resumo, não basta apresenta um resumo de todas
escolher o fornecedor, é necessário atentar ao mo- as características de um SGBD
e pode ser bastante útil como
delo oferecido e verificar o que mais se adéqua a elemento de fixação dos conceitos
nossa necessidade. Na Figura 8, a seguir, podemos apresentados neste capítulo.
ver que o fornecedor Microsoft tem várias edições Disponível em: https://youtu.be/
Fw5Ulwo6NvQ.
para o SGBD SQL-Server 2017 (modelos), cada um
Acesso em: 27 fev. 2020.
aplicável a um perfil de projeto.
Figura 8
Edições disponíveis no SQL-Server 2017
Acesse recursos de Encontre recursos de Crie pequenos aplicativos Crie, teste e demonstre
missão crítica para programação avançados, web e móveis, controlados aplicativos em um
alcançar escala, inovações de segurança por dados de até 10 GB, ambiente que não seja de
segurança, alta e performance rápida com esse banco de dados produção com esta edição
disponibilidade e para aplicativos de nível de nível básico. Disponível completa do SQL Server
performance líder intermediário e data gratuitamente. 2017.
incomparáveis para seus marts. Faça upgrade
workloads de nível 1 facilmente para a
de Advanced Analytics, Enterprise Edition sem
business intelligence e precisar alterar nenhum
bancos de dados. código.
O CTP envolve não apenas custos com software, mas também cus-
tos com hardware e, principalmente, custos com mão de obra (talvez
o mais significante dos três custos). Optar por um SGBD open-source
(sem custos de aquisição) muitas vezes pode trazer outros custos indi-
retos que o façam ter um custo de propriedade final maior do que o de
uma ferramenta proprietária (com custos de aquisição).
Artigo
https://becode.com.br/principais-sgbds/
48 Banco de Dados I
Também podemos considerar o fator da padronização de softwares
– um requisito de governança de TI – como um elemento forte na deci-
são por um SGBD. Muitas vezes, a empresa para a qual iremos criar um
novo sistema já adota um modelo ou diferentes modelos de um SGBD
de um mesmo fabricante, e, consequentemente, a definição para um
novo projeto irá ser conduzida para que se escolha um SGBD da mesma
família de produtos. Se uma empresa optou por uma linha de produtos
da Microsoft, por exemplo, o SGBD escolhido será o SQL Server, seja
qual for a edição que se pretenda usar. Não se trata somente de man-
ter um padrão, mas, sim, de reduzir o custo de propriedade, pois pode-
remos ter um único administrador de banco de dados para gerenciar
todos os SGBDs dentro da empresa. Além disso, o compartilhamento
de recursos pode ser facilitado tanto entre equipes de desenvolvedo-
res quanto equipes de suporte, instrutores etc.
Atualmente, um outro fator tem surgido como forte influenciador:
a oferta de SGBDs na nuvem. Assim, alguns provedores de serviços na
nuvem eventualmente oferecem alguns modelos e marcas de SGBD
conforme suas políticas comerciais de modo diferenciado, induzindo
algumas empresas a diversificar suas escolhas ou até a manter um
parque heterogêneo de SGBDs, já que os serviços de administração e
suporte estarão inclusos nos serviços contratados, reduzindo o custo
de propriedade. Isso nos faz considerar que a topologia ou arquitetura
tecnológica também exercerá um papel importante na seleção de um
SGBD. Um sistema de uso corporativo construído para uma empresa
local ou nacional terá requisitos muito diferentes de um sistema cons-
truído para uso global por meio de um modelo baseado na nuvem.
CONSIDERAÇÕES FINAIS
Neste capítulo, pudemos conhecer as características, a aplicabilidade e
os diversos tipos de sistemas gerenciadores de bancos de dados. Esse co-
nhecimento permitirá a escolha correta do SGBD para cada projeto, caso
você opte por ser um administrador de banco de dados ou um arquiteto
de soluções. Vimos que esta escolha dependerá de muitos fatores e que
a oferta de opções de SGBD no mercado é bastante ampla.
Recomendamos que você procure avaliar de modo equilibrado os ato-
res envolvidos nessa escolha e que, se necessário, busque o auxílio de
um administrador de banco de dados experiente. Profissionais com mais
experiência poderão ter maior facilidade em identificar benefícios e restri-
ções em uma avaliação final.
REFERÊNCIAS
DATE, C. J. Introdução a sistemas de bancos de dados. 8. ed. Rio de Janeiro: Elsevier, 2004.
EDIÇÕES disponíveis do SQL Server 2017. Microsoft. Disponível em: https://www.microsoft.
com/pt-br/sql-server/sql-server-2017-editions#CP_StickyNav_1. Acesso em: 26 fev. 2020.
ELMASRI, R.; NAVATHE, S. Sistemas de banco de dados. 4. ed. São Paulo: Pearson; Addison
Wesley, 2006.
SILBERSCHATZ, A.; KORTH; H. F.; SUDARSHAN, S. Sistema de banco de dados. 6. ed. Rio de
Janeiro: Elsevier, 2012.
50 Banco de Dados I
3
Modelagem de dados
Muitas pessoas imaginam que a criação de um banco de dados
seja uma tarefa essencialmente intuitiva, na qual basta ter acesso
a um sistema gerenciador de banco de dados e, então, criar todas
as tabelas de que necessitam para armazenar seus dados, sem um
planejamento prévio. No entanto, isso não se aplica caso nosso ob-
jetivo seja a criação de um conjunto de tabelas inter-relacionadas
de modo coerente e que expressem um conjunto de dados que
realmente representem uma porção do mundo real.
Até é possível criar tabelas aleatórias por meio de um método
intuitivo e não planejado, mas isso resulta em um simples conjunto
de tabelas, não necessariamente em um banco de dados. Para a
criação de um conjunto coerente de tabelas, é necessário um mé-
todo planejado, denominado modelagem de dados.
Neste capítulo, estudaremos os objetivos, os benefícios, os mé-
todos de criação e os tipos de modelos de dados que poderemos
produzir, por meio do uso de técnicas formais de modelagem de
dados, para que sejamos capazes de produzir estruturas de ban-
cos de dados com um excelente desempenho.
Modelagem de dados 51
Antes desse advento, somente a descrição verbal de informações
era usada para representar pessoas e fatos. Desse modo, se alguém
precisasse descrever uma pessoa, precisaria elaborar um descritivo
textual ou verbal, enumerando todas as características do indivíduo.
Embora esse seja um método possível, podemos concordar que não é
o mais sintético e objetivo em muitas situações.
52 Banco de Dados I
humano é uma representação biológica de um homem. Uma fotografia
é uma representação pictórica de um homem. Uma pintura é uma re-
presentação formal ou abstrata de um homem, conforme o estilo que
o próprio pintor utiliza, e assim por diante. Todas essas representações
podem até ser do mesmo homem, mas elas conterão diferentes níveis
de informação, de detalhes, de fidelidade com o objeto real e, principal-
mente, diferentes finalidades.
Modelagem de dados 53
Quando um modelo incorpora características que não pertencem
realmente ao objeto observado, ele passa a ser incoerente ou até erra-
do. Além disso, se ele deixa de representar as características mínimas
do objeto observado, o modelo criado deixa de ser verídico.
54 Banco de Dados I
usados para descrever o mesmo conteúdo que talvez em uma única
página de representação gráfica poderia ser igualmente descrito.
Artigo
https://www.devmedia.com.br/modelo-entidade-relacionamento-mer-e-diagrama-entidade-
relacionamento-der/14332
3.2.1 Vantagens
Dentre as diversas vantagens que podemos apontar na criação de
um modelo de dados, temos a capacidade de planejar a estrutura do
banco de dados. Como toda atividade de planejamento, nessa fase,
com pequenos custos e com grande flexibilidade, poderemos experi-
mentar alternativas de solução para criação de nosso banco de dados.
Modelagem de dados 55
ou descobriríamos que seria impossível criar um novo quarto no pavi-
mento superior, pois não havíamos preparado a fundação da casa para
suportar esse peso extra.
56 Banco de Dados I
mos, por meio do modelo construído ainda em papel, verificar se as futu-
ras estruturas do banco de dados, construídas por meio de um Sistema
de Gerenciamento de Banco de Dados (SGBD), terão a capacidade de
atender a nossas demandas de informação. Essa, talvez, possa ser apon-
tada como uma das principais vantagens em questão. Antes da adoção
dos modelos de dados, restava ao administrador de dados (ou naquela
época ainda ao analista de sistemas) realizar entrevistas, questionários e
levantamentos das fontes dos dados que ele iria consumir ou alimentar
por meio do sistema de informação que criaria.
Modelagem de dados 57
departamento ou representará o fato de que é o chefe do departa-
mento, mas não ambas as informações simultaneamente. O impacto
será alterar a estrutura do banco de dados, a documentação gerada, o
dicionário de dados, as especificações feitas pelos analistas etc.
58 Banco de Dados I
da cliente. Aparentemente, seriam três tabelas distintas se o modelo
de dados, complementado pelo dicionário de dados, não mostrasse
que, na verdade, as três tabelas poderiam ser representadas por uma
única denominada empresa e que, conforme o papel que essa empre-
sa desempenhasse em um processo, ela poderia ser qualificada como
fornecedor, franqueador ou cliente. Isso demonstra a importância de
compartilharmos o entendimento sobre o que ou quem é um fornece-
dor, um franqueado ou um cliente.
Modelagem de dados 59
fornecedores que, depois, é capaz de derivar modelos físicos para os
principais fornecedores de mercado.
3.2.2 Desvantagens
Se, por um lado, documentar e planejar as estruturas de dados,
antes de criá-las efetivamente em uma ferramenta de gerenciamen-
to de banco de dados, podem ser apontados como vantagem, pelos
benefícios que a documentação produz, por outro, algumas pessoas
podem apontar justamente a atividade como uma desvantagem, pelo
tempo que ela demanda. Realmente, a tarefa de documentação, seja
na criação de um banco de dados ou em qualquer outra etapa do ci-
clo de construção de um sistema de informação, sempre é vista como
um gasto de tempo adicional, mas isso não significa que ela não seja
importante ou que não deva ser feita. O equilíbrio entre o que pode e
o que precisa ser documentado é possível de ser obtido com a práti-
ca. Esse deve ser um ponto a ser observado com cuidado, pois quanto
mais experiente se torna um administrador de banco de dados, mais
tendência ele tem em pensar que a simples agregação de mais uma ta-
bela no banco de dados pode ser uma tarefa simples e que não deman-
da muito formalismo. Se a falta de prática pode trazer riscos, a prática
também pode. Contudo, com a prática podemos adquirir habilidades
para que a tarefa de documentação seja feita de modo mais objetivo e
produtivo.
60 Banco de Dados I
tempo gasto em sua criação poderia ter sido aplicado para criar o ban-
co de dados mais cedo.
Modelagem de dados 61
formação pode ser uma excelente estratégia para favorecer a futura
criação de estruturas de bancos de dados que realmente suportem as
necessidades de informação desses sistemas.
62 Banco de Dados I
Figura 1
Elementos utilizados para a modelagem de dados
Entidade
Mundo real
Abstração
observado
Relacionamento
Figura 2
Modelo entidade-relacionamento para proprietários e veículos
1 N
PROPRIETARIO possui VEICULO
Modelagem de dados 63
•• Existe um conjunto de pessoas que são proprietários de veículos.
•• Pessoas que não possuem veículos não fazem parte do nosso
modelo.
•• Temos um conjunto de veículos que pertencem a um proprietário.
•• Um veículo não pode ter mais de um proprietário.
•• Veículos que não pertencem a um proprietário não fazem parte
do modelo.
64 Banco de Dados I
portanto, um banco de dados não coerente. Havia o risco de, mesmo
aplicando o modelo entidade-relacionamento, criarem-se bancos de
dados não coerentes.
Hoje, sabemos que a abstração das entidades pode ser feita por
meio de cinco critérios básicos, ou seja, podemos procurar no mundo
real por cinco tipos de elementos (Quadro 1) e, se os encontrarmos,
podemos estabelecê-los como entidades e representá-los em nossos
modelos (COUGO, 1997).
Quadro 1
Elementos indicativos de entidades
Modelagem de dados 65
Ao observar o Quadro 1, podemos sintetizar um conceito principal:
entidades são elementos sobre os quais podemos identificar e arma-
zenar dados ou são elementos que possuem dados de interesse para
nosso modelo. Observaremos mais à frente que, automaticamente,
uma entidade se transformará em uma tabela em nosso banco de da-
dos e que os dados mapeados para essa entidade serão, então, arma-
zenados nessa tabela.
66 Banco de Dados I
dade de portas” não tinha. O atributo “número do chassi” poderá ser
indicado também como identificador único da entidade. Um identi-
ficador único é um atributo que servirá para distinguir um elemento
do conjunto dos carros de modo único entre os demais elementos do
mesmo grupo. Ao referenciar o “número do chassi”, identificaremos de
modo único um carro dentre todos os demais.
Modelagem de dados 67
da entidade “pessoa”. A figura demonstra que em uma “cirurgia” po-
demos ter vários médicos, mas somente 1 paciente; entretanto, por
outro lado, um paciente pode participar de muitas cirurgias, assim
como um médico.
Figura 3
Modelo entidade-relacionamento com generalização-especialização
M N
MEDICO executa
PESSOA CIRURGIA
1
N
PACIENTE participa
Para esse fim, Chen (1990) também definiu alguns simples elemen-
tos gráficos que poderiam agregar a semântica necessária ao modelo
de dados criado. Basicamente, o único elemento gráfico utilizado é um
losango. A ele são atribuídos valores representativos da cardinalidade
do relacionamento, ou seja, o número de elementos que o relaciona-
mento envolve, baseado na regra de associação que o próprio mundo
real observado possui.
68 Banco de Dados I
Figura 4
Exemplo de um relacionamento de cardinalidade 1:1
1 N
VAGA é ocupada FUNCIONARIO
Figura 5
Exemplo de um relacionamento de cardinalidade 1:N
1 N
DEPARTAMENTO tem alocado FUNCIONARIO
Modelagem de dados 69
Figura 6
Exemplo de um relacionamento de grau M:N
M N
FUNCIONARIO executa TAREFA
Figura 7
Mapeamento do relacionamento M
1 N N 1
FUNCIONARIO participa ALOCACAO e de uma TAREFA
70 Banco de Dados I
conceitual, proposto por Chen (1990), não há restrições em manter os
relacionamentos com grau M:N no modelo.
Figura 8
Exemplo de um autorrelacionamento.
FUNCIONARIO gerencia
Modelagem de dados 71
3.4 Tipos de modelos de dados
O modelo de dados proposto por Chen (1990) na abordagem en-
Vídeo
tidade-relacionamento é independente de arquitetura de implemen-
tação, ou seja, não é hierárquico, nem rede nem relacional. Ele é um
modelo conceitual.
72 Banco de Dados I
Por outro lado, a terceira regra de conversão se aplica ao relaciona-
mento de grau 1:1. Ela determina que, sempre que existir um relaciona-
mento 1:1 entre a entidade A e B, deveremos criar, na entidade B, uma
nova coluna que seja cópia da coluna chave da entidade A ou vice-versa.
Como a relação é do grau 1:1, tanto faz se importarmos para a entidade
A a chave da entidade B ou da entidade B para a entidade A. Se, por
exemplo, importamos a chave da entidade A para a entidade B, dizemos
que esta tem, agora, a chave estrangeira da entidade A (Figura 9).
Figura 9
Processo de conversão de um relacionamento 1:1
1 1
CARRO pertence a PESSOA
Modelagem de dados 73
Portanto, entendemos que a aplicação de poucas regras de con-
versão sobre um modelo conceitual poderá produzir um modelo ló-
gico orientado a uma topologia, seja ela relacional ou não, de modo
a permitir que a implementação de um banco de dados físico seja
concretizada.
CONSIDERAÇÕES FINAIS
Neste capítulo, pudemos conhecer o processo de modelagem de da-
dos usando a abordagem entidade-relacionamento, que foi aperfeiçoada
ao longo de muitos anos de utilização.
Podemos aqui destacar que, além de conhecer os detalhes de um
sistema gerenciador de banco de dados, o mais importante no proces-
so de construção de um modelo de dados coerente é ter a capacidade
de observar o “mundo real” que iremos modelar e sermos capazes de
abstrair as entidades e relacionamentos que o compõem. Caso nosso mo-
delo entidade-relacionamento tenha sido construído de modo coerente,
sua conversão em um modelo relacional será uma tarefa muito simples,
baseada em poucas regras padronizadas.
Assim, é necessária concentração na tarefa de observação e abstra-
ção de entidades e relacionamentos, para assegurar futuramente que seu
modelo de dados esteja estável, coerente, fidedigno e realista.
Além disso, podemos destacar que a criação de modelos de entidade-
-relacionamento é uma tarefa, como as demais, que se aprimora com a
experiência. Essa tarefa de modelagem é desafiadora no sentido de que
exige cada vez mais conhecimento dos “mundos reais”, os quais nunca
tínhamos parado para observar. O desafio do aprendizado terá, então,
sido transformado no prazer de descobrir tantas informações antes
desconhecidas.
ATIVIDADES
1. Justifique por que a criação de um banco de dados não é uma atividade
intuitiva que possa ser realizada sem planejamento.
3. Explique por que uma entidade não pode existir sem pelo menos um
atributo.
Modelagem de dados 75
4
Modelo relacional e
normalização
O modelo relacional é, hoje, a principal alternativa para a cons-
trução de um banco de dados de um sistema de informação, seja
de uso pessoal, corporativo, um app para celular ou, ainda, para
um grande sistema de gestão empresarial a ser executado e aces-
sado por meio de nuvem.
A grande quantidade de fornecedores e produtos oferecidos na
categoria de sistemas gerenciadores de BD relacionais (SGBDR) –
que vão desde as opções open-source (aquelas que podemos usar
sem pagar) até aquelas que podem custar milhares ou milhões
de dólares – faz com que mesmo um simples sistema de gestão
de finanças pessoais, por exemplo, possa utilizar uma plataforma
relacional para armazenar seus dados. De outro lado, podemos
encontrar sistemas que integram milhares de pessoas em torno de
gigantescas bases de dados.
Isso demonstra que esse ambiente relacional não apresenta
maior complexidade para sua compreensão nem para sua adoção
como uma tecnologia para desenvolvimento de sistemas. Também
demonstra que este ambiente é flexível e escalável para atender a
pequenas, médias e grandes demandas.
Assim, vamos conhecer, neste capítulo, os principais conceitos
utilizados para estabelecer as regras e o modo de funcionamento
de todo o modelo relacional. Se você está curioso para conhecer
mais sobre este assunto, acompanhe-nos em mais esta etapa.
76 Banco de Dados I
4.1 O que é e para que serve um
modelo relacional?
Vídeo O ponto de partida do modelo relacional está baseado em conceitos
muito simples que certamente você já viu nos seus primeiros anos na
escola, em especial no ensino fundamental. Esse conteúdo ao qual nos
referimos é a teoria dos conjuntos.
78 Banco de Dados I
Quadro 1
Conceitos da teoria dos conjuntos usados no modelo relacional
• Coluna
• Chave primária
Características Propriedades comuns que cada elemento
• Chave secundária
dos elementos possui com os demais do seu conjunto.
• Chave candidata
• Índice
• Integridade de identidade
Garantia de que valores ou referências
Integridade • Integridade referencial
entre elementos sejam sempre válidos.
• Integridade de domínio
TABELA CIDADE
CIDADE CWB RJ SP
Cód. Nome Pop.
01 CWB 3 m.
1 02 RJ 5 m.
03 SP 10 m.
nascem
TABELA FUNCIONARIO
80 Banco de Dados I
A coleção de colunas que dará origem a uma tabela será depen-
dente da coleção de atributos que foram levantados no momento da
modelagem entidade-relacionamento. Adicionalmente à lista dos atri-
butos inerentes a cada entidade, devemos lembrar que, também em
nossas tabelas, teremos que incorporar dois tipos de colunas adicio-
nais: as chaves primárias e as chaves estrangeiras.
82 Banco de Dados I
O último conceito são as operações que acontecem por meio das
funções de união (ou junção), intersecção, diferença ou produto car-
tesiano entre dois conjuntos ou entre duas tabelas, já que as tabelas
acabam por representar os conjuntos. Vejamos cada um dos casos.
Figura 2
Junção de duas tabelas no modelo relacional
TABELA JUNCAO
84 Banco de Dados I
Isso significa que a junção utilizará um relacionamento ou uma relação
existente entre os dois conjuntos para somar os dados das tabelas ori-
ginais em torno da relação que pôde ser estabelecida.
86 Banco de Dados I
A regra diz, também, que não podemos cadastrar chaves primárias
duplicadas. Isso atende a outro requisito da teoria dos conjuntos que
diz, por exemplo, que, no conjunto das FRUTAS, não podemos ter os
elementos melancia, melão, jaca e, novamente, melancia. Não faz sen-
tido criar uma lista de nomes de frutas e cadastrar duas vezes o mesmo
elemento. Então, em uma tabela do modelo relacional, também não
é permitido que um mesmo elemento (com o mesmo valor de chave
primária) seja cadastrado duas vezes.
Figura 3
Implementação da integridade referencial no modelo relacional
TABELA 2 – FUNCIONARIO
TABELA 1 – CIDADE
Chave Nome Sexo Chave Estrangeira
Chave Nome Pop.
15 Jose M 01 (com integridade)
01 CWB 3 m.
23 Joao M 02 (com integridade)
02 RJ 5 m.
37 Maria F 02 (com integridade)
03 SP 10 m.
43 Carlos M 05 (sem integridade)
88 Banco de Dados I
4.2 Vantagens e desvantagens de se
usar um modelo relacional
Vídeo Após definir o modelo relacional, Codd estabeleceu um total de 12
regras para avaliar o grau de aderência de cada sistema gerenciador
de banco relacional fornecido no mercado de software. O objetivo des-
sas regras é orientar os fabricantes quanto aos recursos importantes
de serem observados, de modo que o SGBD criado pudesse oferecer
os benefícios esperados. Nessa época, muitos fabricantes já tinham
produtos orientados ao modelo relacional. Com isso, muita discussão
surgiu em torno do tema, pois nem todos os SGBDs existentes proviam
todas as facilidades requeridas.
Essas regras foram e são, até hoje, usadas para verificar a fidelidade
de um banco de dados ao modelo relacional. Elas servem para avaliar
qual SGBD está mais ou menos próximo de fornecer os benefícios es-
perados. Se você está buscando um SGBD relacional, poderá usá-las
como mais um critério de seleção. Descreveremos cada regra a seguir.
O SGBD deve prover uma linguagem de alto nível para definição dos
dados no BD (criação de tabelas, colunas e índices, alteração de tabe-
las, entre outros), manipulação (leitura, atualização, exclusão de dados
nas tabelas), bem como para definição de permissões ou remoção dos
direitos de acesso. Isso evitará que seja necessário construir progra-
mas complexos ou conhecer várias linguagens diferentes.
90 Banco de Dados I
7. Tratamento de alto nível para inserção, atualização e eliminação
de dados.
O SGBD deverá prover meios para que operações que afetam não
somente uma linha de uma tabela (ou de várias tabelas) possam ser
executadas por meio de um comando único e padronizado. Incluir, al-
terar ou excluir registros no banco de dados é uma ação que pode afe-
tar um ou vários registros simultaneamente por meio de uma mesma
linguagem de programação.
92 Banco de Dados I
instante em que o modelo está sendo concebido, pois algumas ferra-
mentas de construção já o fazem orientado para o modelo relacional e,
portanto, já incorporam as chaves primárias, chaves estrangeiras etc.
O segundo momento ocorre quando o modelo E-R já está pronto e se
deseja iniciar a criação das tabelas no SGBD. Dessa maneira, as regras
genéricas de derivação do modelo E-R podem agregar novos conceitos
do modelo relacional (chaves primárias, chaves estrangeiras etc.), com-
plementando o processo de derivação.
A primeira regra – que trata da conversão de entidades e menciona
que todos os atributos dessa entidade serão transformados em colu-
nas nas tabelas – requer atenção especial quanto à escolha da chave
primária e das chaves secundárias, que agora são essenciais. É impor-
tante, ainda, que os atributos convertidos em colunas tenham seus ti-
pos de dados definidos de modo a minimizar o consumo de espaço em
disco e, ao mesmo tempo, promovam consultas eficientes e garantam
que suas propriedades inerentes não sejam comprometidas.
Uma situação especial que pode surgir em alguns modelos e que
pode ser resolvida nesta etapa de derivação é o fato de que alguns re-
lacionamentos podem ter atributos. Imagine um relacionamento entre
uma entidade PESSOA e uma entidade AUTOMOVEL. Esse relacionamen-
to indica quais pessoas são proprietárias de quais carros. Em vez de criar
uma nova entidade COMPRA (um fato) no modelo proposto, a pessoa
que elaborou o modelo escolheu armazenar no próprio relacionamento
os atributos “data da aquisição” e “valor da aquisição”. Isso significa que,
ao relacionarmos a PESSOA com o AUTOMOVEL, indicamos no relaciona-
mento em que data e por qual valor a aquisição se deu.
Figura 4
Modelo E-R com um relacionamento 1:N tendo atributos
1 N
PESSOA E dona de AUTOMOVEL
Figura 5
Modelo E-R com um relacionamento M:N tendo atributos
M N
ALUNO faz matricula CURSO
94 Banco de Dados I
que referenciam valores, respectivamente, de ALUNO e de CURSO, mas
também formam a chave primária da tabela associativa, o que implica
não ser possível ter um relacionamento duplicado entre aluno e curso
(chaves primárias não permitem duplicação).
Artigo
https://medium.com/@diegobmachado/
normaliza%C3%A7%C3%A3o-em-banco-de-dados-5647cdf84a12
A segunda forma normal (2FN) diz que a tabela deverá estar pri-
meiramente na 1FN, logo todos os atributos não pertencentes à cha-
ve primária deverão depender totalmente da chave primária. Aqueles
que dependem parcialmente da chave primária deverão dar origem
a outra tabela, na qual o atributo da chave que gerou a dependência
parcial será a chave primária da nova tabela. Já o atributo que tem a
dependência parcial será um atributo dessa tabela. Por exemplo, ima-
gine uma tabela COMPRA, na qual a chave primária é composta de dois
atributos, “placa do carro + CPF”, indicando qual pessoa comprou qual
carro.
96 Banco de Dados I
pende da coluna “código do fabricante”. Assim, temos a seguinte transi-
tividade: “nome do fabricante” depende de “código do fabricante” que,
por sua vez, depende de “placa do carro”. Nesse caso, criamos uma
nova tabela com a chave “código do fabricante” e com a coluna “nome
do fabricante”. Com isso, damos origem à tabela FABRICANTE pelo pro-
cesso de normalização. Na tabela CARRO, mantemos somente a coluna
“código do fabricante” como chave estrangeira.
CONSIDERAÇÕES FINAIS
Neste capítulo, vimos que o modelo relacional – hoje amplamente utili-
zado na implementação de sistemas de informação – evoluiu naturalmen-
te da estrutura de dados sugerida para a construção de BDs. Isso ocorre
em virtude de esse modelo ter uma simplicidade e uma comprovação
matemática de seus conceitos e operações. Ao aliar simplicidade e for-
malismo, o modelo relacional se tornou irrefutável e confiável, o que nos
leva a acreditar que será, por muito tempo, predominante no mercado de
sistemas de informação.
98 Banco de Dados I
ATIVIDADES
1. Explique quais benefícios são obtidos ao se aplicar a teoria dos
conjuntos à teoria relacional.
4. Por que um SGBD precisa ter pelo menos uma estrutura tabular para
ser considerado relacional?
REFERÊNCIAS
CODD, E. F. A relational model of data for large shared data banks. Communications of the
ACM, Nova Iorque, NY, v. 13, n. 6, jun.1970.
DATE, C. J. Introdução a sistemas de bancos de dados. 8. ed. Rio de Janeiro: Elsevier, 2004.
NAVATHE, S. B.; ELMASRI, R. Sistemas de bancos de dados. São Paulo: Pearson Education, 2005.
Imagine que seu banco de dados é acessado somente por uma apli-
cação departamental, que usa os dados de funcionários para processar
a folha de pagamento. Imagine também que, em alguns meses, um
aplicativo para celular é liberado a todos os funcionários para que eles
mesmos tenham acesso a seus dados pessoais e possam atualizá-los
e consultá-los. O que mudaria no projeto físico? Teríamos que mudar
os métodos de acesso aos dados e passar a controlar níveis de segu-
rança de acesso diferenciados? Além disso, teríamos que imaginar um
aumento de quantidade de acessos por dia aos cadastros de funcioná-
rios? Com certeza.
zenamento de dados e índices. Ademais, vamos projetar a distribui- Disponível em: https://www.
devmedia.com.br/projeto-fisico-
ção desses dados considerando aspectos como velocidade de acesso, -de-banco-de-muito-alem-do-
largura de banda de conexão de rede e tipos de dados que trafegarão -create-table/3581.
Acesso em: 6 maio 2020.
(vídeos, áudio, imagens, mapas etc.), garantindo que, ao final, o BD seja
útil e apropriado ao acesso de todos os que têm demandas a serem
atendidas.
Figura 1
Tabela normalizada e tabela desnormalizada
VENDA VENDA
TIPO PAGAMENTO
Data Tipo Valor Data Tipo Valor
Cód. Nome
01/01 1 10,00 01/01 à vista 10,00
1 à vista
02/01 1 15,00 02/01 à vista 15,00
2 parcelado
03/01 2 12,00 03/01 parcelado 12,00
Perceba que temos várias opções para uma simples coluna que
armazene um nome. Essa mesma preocupação pode acontecer para
uma coluna que armazene um número, uma data, um texto longo ou
até uma imagem. Cada situação pode ter impactos de consumo de es-
paço em disco e de recursos de processamento para o tratamento do
conteúdo que está armazenado em uma determinada coluna.
Saber, por exemplo, quantos bytes são consumidos para cada coluna
conforme o tipo de dado escolhido para mapeá-la, quais são as estrutu-
ras de headers (campos de controle do banco de dados) e de ponteiros
(estruturas internas do banco de dados) que serão usadas ou até qual é
o tempo consumido em milissegundos para que um bloco de dados seja
lido em disco e transferido para a memória podem fazer com que uma ou
outra estratégia de armazenamento de dados seja escolhida pelo ABD.
Somado a essa complexidade, podemos ainda ter as particularidades de
cada diferente sistema gerenciador de banco de dados (SGDB). Talvez o
modo como um fabricante tenha implementado sua estrutura física in-
terna seja diferente do modo como outro fabricante a realize, mudando,
desse modo, o resultado final da estrutura que iremos construir.
Artigo
https://www.devmedia.com.br/entendendo-e-usando-indices/6567
Tudo isso nos leva, durante essa fase de projeto, a avaliar quais são
as chaves primárias não só sobre o ponto de vista conceitual e relacio-
nal, mas também sobre o ponto de vista físico. Será que não devería-
mos mudar nossa chave primária de uma tabela que usa 50 bytes na
coluna X para outra chave primária na coluna Y que só tenha 10 bytes?
Isso reduziria nossos índices? Isso é relevante para o volume de dados
que vamos manipular e que trará redução de espaço em disco? Além
do mais, isso vai trazer redução de consumo de memória? Considere
que, muitas vezes, os índices são carregados em memória para serem
acessados mais agilmente pelos algoritmos de busca. São todas per-
guntas que o ABD deverá avaliar e responder.
Vejamos um exemplo para tudo ficar mais claro. Imagine que você
já tem experiência na criação de bancos de dados e conhece todos os
requisitos desde o modelo lógico, o modelo relacional e o projeto físi-
co, assim você inicia a criação de um novo modelo conceitual de um
novo BD. Sabendo que, ao chegar à etapa do modelo relacional será
necessário escolher uma chave primária – e que, na fase do projeto,
poderá também eleger outras colunas da sua tabela para serem chaves
alternativas ou chaves secundárias (colunas que terão índices únicos)
–, você com certeza já terá seus olhos voltados, na fase de projeto con-
ceitual, para quais atributos suas entidades poderão ter e que servirão
para futuras chaves de acesso. Assim, também na etapa de derivação
do modelo relacional, acabará por escolher as melhores chaves primá-
rias para as tabelas, já conhecendo o impacto que essa escolha terá no
momento em que os índices venham a ser definidos.
A cada vez que o SGDB tiver que alocar novos 10% de espaço, ele
irá interromper todas as atividades de acesso a dados no BD. Neste
tempo em que a interrupção estiver ativa, novas páginas (unidades de
alocação física para guardar dados) estarão sendo formatadas e agre-
gadas ao espaço físico gerenciado. Isso significa que, nesse período,
haverá uma degradação percebida pelas aplicações que requisitam ou
que desejam armazenar dados novos no BD. Podemos falar de milisse-
gundos ou de segundos, tudo vai depender de quanto espaço terá que
Os pontos que vimos até aqui são tarefas executadas pelo ABD nas
estruturas que estão sendo planejadas e construídas na fase de projeto
do banco de dados. Existe, porém, outra atividade da qual o adminis-
trador de banco de dados participa, mas que não interfere na estrutura
do BD e sim nos programas que serão criados ou nos programas que
já existem e que hoje manipulam o banco de dados. Essa atividade é
o ajuste dos comandos SQL (structured query language) que são utili-
zados pelos programadores para consultar e atualizar dados no BD.
Muitas vezes, a performance final, que é desejada para uma transação
de negócio que interage com o banco de dados, pode não estar sendo
atingida apesar dos cuidados já tomados na criação das estruturas do
BD. Nesse caso, será necessário rever e alterar os comandos SQL usa-
dos nos programas.
CONSIDERAÇÕES FINAIS
O projeto físico tem um papel vital no processo de criação de um ban-
co de dados. Ele exige um amplo conhecimento dos recursos oferecidos
pelo SGBD. As vantagens e benefícios obtidos pelo uso de um ou outro
recurso nem sempre serão aplicáveis a todos os projetos. Assim, o traba-
lho do administrador de banco de dados precisa ser realizado sempre de
modo coerente com as demandas de cada projeto.
Entretanto, atribuir a responsabilidade pelo sucesso da criação de um
BD somente ao administrador de banco de dados não é correto. Como vi-
ATIVIDADES
1. Explique por que o uso de índices nem sempre pode ser a melhor
solução para melhorar a performance de um banco de dados.
4. Por que cada projeto físico pode ser diferente de outro já realizado
anteriormente?
REFERÊNCIAS
CODD, E. F. A relational model of data for large shared data banks. Communications of the
ACM, Nova Iorque, NY, v. 13, n. 6, jun.1970.
HEUSER, C. A. Projeto de banco de dados. 6. ed. Porto Alegre: Bookman, 2009.
NAVATHE, S.; ELMASRI, R. Sistemas de bancos de dados. São Paulo: Pearson, 2005.
SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de banco de dados. 6. ed. Rio de
Janeiro: Elsevier, 2012.
nais. Isso fez com que, no ano de 1979, a Oracle – Disponível em: https://youtu.be/
I604SeSK_d8. Acesso em: 27 maio
2020.
BOX 2
BOX 1
BOX 3
Figura 2
Comandos SQL divididos por grupos de comandos
(Continua)
Figura 3
Transposição da linguagem fluente para um comando SQL
Figura 4
Exemplo de um SQL simples sendo expandido
Como vários dos campos são opcionais, podemos ter como exem-
plo prático a execução de um comando com a seguinte sintaxe: CREATE
DATABASE TESTE, no qual o nome TESTE é o nome do BD criado.
Figura 6
Sintaxe do comando CREATE TABLE
onde restrição_de_coluna é:
[ CONSTRAINT nome_da_restrição ]
{ NOT NULL |
NULL |
UNIQUE parâmetros_do_índice |
PRIMARY KEY parâmetros_do_índice |
CHECK ( expressão ) |
REFERENCES tabela_referenciada [ ( coluna_referenciada ) ] [
MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
[ ON DELETE ação ] [ ON UPDATE ação ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY
IMMEDIATE ]
Figura 7
Exemplo de um comando CREATE TABLE
supanut piyakanont/Shutterstock
Adicionar uma restrição para a tabela.
Figura 8
Sintaxe do comando ALTER TABLE
Figura 9
Sintaxe do comando SELECT
Imagine uma tabela chamada PRODUCT. Para recuperar todos os campos dessa ta-
bela, que está associada ao schema Production, é necessário gerar como saída uma
lista classificada pela coluna Name:
SELECT *
FROM Production.Product
ORDER BY Name ASC;
Ou
SELECT p.*
FROM Production.Product AS p
ORDER BY Name ASC;
A ordem das colunas pode ser alterada sem restrições, desde que
na lista de valores seja realizada a mesma alteração de ordem, ou seja,
os nomes e valores precisam possuir uma equivalência direta. Todas
as colunas que tenham indicativo de “not null” (não aceitam ficar sem
conteúdo) deverão ter seus dados informados na lista de colunas do
comando INSERT. Somente as colunas nas quais esteja definida a regra
de restrição “null” (aceitam valores nulos) poderão ficar sem valores
durante a inserção de um registro na tabela.
Figura 10
Sintaxes do comando GRANT
Figura 11
Sintaxe dos comandos COMMIT e ROLLBACK
Artigo
https://kb.elipse.com.br/linguagem-sql-capitulo-6-comandos-sql/
ATIVIDADES
1. Explique o motivo de a padronização proposta para a linguagem SQL
não ter sido mantida integralmente por todos os fornecedores de
sistemas gerenciadores de bancos de dados.
2. Por que os comandos SQL se tornaram facilmente compreensíveis,
reconhecidos e utilizados pelos programadores?
3. Explique o que significa o fato de o padrão SQL ser um padrão de
direito e não somente um padrão de fato.
4. Por que alguns comandos, como o CREATE, têm tantas sintaxes
diferentes ?
Gabarito 149
2. O compartilhamento pode ser, e normalmente é, seletivo. Isso significa
que é possível compartilhar dados, mas não necessariamente todo
o escopo daqueles mapeados e carregados no BD. Se o SGBD é o
elemento que provê o controle de acesso aos dados existentes no banco
de dados, necessariamente ele deve prover algum tipo de recurso que
permita ocultar algumas linhas e colunas das tabelas a serem criadas.
Isso também contribui para aspectos de segurança, o que é, novamente,
uma função do SGBD.
3 Modelagem de dados
1. Como todo processo de construção, seja de um sistema, de uma
casa, ou de outro artefato, a construção de um banco de dados deve
também ser precedida de um projeto ou planejamento. Desse modo,
será mais fácil adequar e ajustar o plano antes que se inicie a efetiva
construção, fase na qual todos os impactos de mudança são mais
complexos e mais custosos para serem realizados.
Gabarito 151
5 Projeto de banco de dados
1. Índices podem melhorar a performance somente em situações nas
quais o acesso aleatório e direto aos dados de uma tabela é requerido.
Porém, outras situações nas quais a performance esteja sendo
comprometida podem requerer outros tipos de intervenção, como
segmentar os dados em diferentes servidores ou até eventualmente
remover índices que estejam causando sobrecarga nas atividades de
inserção ou exclusão de registros.
Gabarito 153
BANCO DE DADOS I
Paulo Sérgio Cougo