Prévia do material em texto
Armazenamento e Consulta
de Dados
AUTORIA
Ronie Cesar Tokumoto
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 1/20
Aproveitando conceitos estudados de definição de projeto de banco de dados usando
o modelo ER e conhecendo a base da linguagem SQL, é possível imaginar uma
pequena aplicação de exemplo para o emprego destes conceitos. Para isso, o foco é a
etapa de desenvolvimento de um pequeno projeto experimental utilizando o SGBD
MySQL que foi introduzido nos estudos para aplicar o que foi estudado até o
momento e que pode continuar servindo de base para a continuidade dos estudos.
Para iniciar este trabalho, é preciso primeiro idealizar uma aplicação fictícia e,
partindo da ideia, seguir os passos seguintes de projeto básico deste banco de dados,
para que depois ele possa servir de base para o desenvolvimento no SGBD MySQL.
Partindo da proposta da criação de um banco de dados para gerenciamento de
vendas de produtos para clientes de uma pequena loja, é preciso então compreender
as regras de negócio deste estabelecimento, pois não existe uma padronização
universal para as atividades do mercado e é preciso conhecer o máximo possível do
negócio.
Regras do Negócio e Requisitos do
Sistema
Os requisitos de um sistema representam toda a abstração obtida a partir do que é
real e pode ser implementado de forma digital em software, ignorando elementos
supérfluos e desnecessários, e organizando bem os requisitos relevantes para que
forneçam boa base para o projeto.
Para os produtos, a loja trabalha com o ramo de motopeças e precisa que um
cadastro destes itens contenha uma descrição da peça, modelo de moto que a utiliza,
anos que aceitam a peça, quantidade disponível para venda e valor para venda. Após
Supondo que a pequena loja necessite controlar apenas um cadastro
de produtos, clientes e vendas no banco de dados, é preciso
compreender que dados são relevantes nestes cadastros. Neste
negócio, o cadastro de clientes é composto por algumas informações
essenciais dos clientes de forma a possibilitar identificação dos
mesmos e geração de notas fiscais eletrônicas se desejado pelo
cliente. Com isso, fica definido que para o cadastro de clientes são
necessários o nome, CPF, endereço que não precisa ser dividido em
atributos separados, e telefone com DDD.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 2/20
a identificação dos atributos para venda, verificou-se que um módulo adicional seria
interessante, pois a quantidade disponível e o valor de venda são informações que
dependem das compras destes produtos para revenda, pois não são itens fabricados
no local.
Partindo dessa necessidade adicional identificada, foram definidos os atributos de
compra, como nota fiscal de compra não obrigatória, pois existem produtos que são
adquiridos sem nota fiscal, como peças adquiridas de uma oficina caseira de um
mecânico que as fornece informalmente para venda como itens usados, e com isto,
adicionando a ideia de que é interessante adicionar um atributo de estado da peça
no cadastro de produto.
Também existe a parte da venda na qual, basicamente, o processo envolve a
indicação do cliente que realiza a compra, quais produtos ele comprou, a data da
compra e o valor total da compra, sendo que a forma de pagamento não foi citada
como relevante, pois o proprietário não se importa em praticar formas distintas de
valores de acordo com a forma de pagamento e, assim, os valores finais podem sofrer
algum tipo de desconto aplicado ao final apenas e, assim, podendo afetar
diretamente o valor recebido na venda.
Criando um Banco de Dados
O trabalho de criação de um banco de dados usando a linguagem SQL será
demonstrado a partir do uso da SGBD MySQL que teve sua instalação explicada em
outra aula, de forma que agora é preciso preparar um ambiente para
desenvolvimento prático para complementar o que foi estudado até então.
Para isso, é preciso antes de iniciar o uso da linguagem SQL em si, preparar o SGBD
para o processo, e além do uso do MySQL, será instalado um servidor web para que se
possa simular um banco de dados inserido em um servidor.
Para este material será utilizado o servidor Apache Xampp que no momento de
criação do material estava em sua versão 3.2.4, assim como o SGBD MySQL estava em
sua versão 8.0.23, mas independentemente da versão, os aspectos essenciais de
funcionamento, normalmente, não são tão afetados por mudanças de versão e basta
algum tempo dedicado, e é possível conhecer os diferenciais de novas versões
lançadas posteriormente.
Após download do instalador do repositório oficial Xampp, e um processo de
instalação bastante simples e intuitivo, chega-se ao ponto no qual basta acionar o
servidor e para efeitos de estudo nesta disciplina, ativar com a opção Start, os dois
primeiros módulos do servidor (Apache e MySQL), e depois de ativados por meio do
botão Admin, é possível acompanhar o andamento do desenvolvimento do banco no
servidor.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 3/20
Após a instalação e inicialização dos serviços do servidor terem ocorrido com sucesso
(observar a indicação das portas de comunicação para verificar o processo), como se
pode conferir na Figura 1, é possível iniciar o uso do SGBD MySQL normalmente.
Existe a necessidade de utilização de um servidor para banco de dados, pois sem a
existência de um, qualquer banco de dados gerado seria considerado local e não
disponível para conectividade web, por exemplo, tornando-o de uso bastante limitado
em um computador local que poderia servir para estudos, mas que ficaria muito
distante do que ocorre na realidade.
Figura 1
Fonte: O autor.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 4/20
Ao abrir o SGBD, verifica-se logo na interface inicial de boas-vindas a existência da
opção de criação de conexão de banco de dados gerados com o servidor Xampp,
como indicado na Figura 2.
Ao ser clicada, a opção abre uma janela para criação da conexão, bastando que seja
dado um nome para a mesma livremente no campo Connection Name, mostrado na
Figura 3.
Figura 2
Fonte: O autor.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 5/20
Depois de criada a conexão, ela aparece como opção na tela de boas-vindas, como
mostrado na Figura 4 e, ao ser clicada, abre a interface de desenvolvimento, mas
antes, pode ser exibida uma mensagem de aviso na qual basta que seja utilizada a
opção Continue Anyway.
Figura 3
Fonte: O autor.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 6/20
Já na interface de gerenciamento de banco de dados, existe todo um enorme
conjunto de opções e ferramentas a serem conhecidas e que podem ser aos poucos
exploradas, mas para os estudos nesta disciplina, serão utilizadas apenas as opções
essenciais de forma a otimizar o aprendizado, focando em parte do que é mais
comum que se utilize.
Na Figura 5 é visível, inicialmente, diversas opções de gerenciamento da conexão com
o servidor, mas, neste momento, como a conexão já foi criada e se mantém funcional,
interessa o que pode ser utilizado na opção Schemas, destacada na parte esquerda
da imagem.
Figura 4
Fonte: O autor.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html7/20
Na área livre do menu esquerdo, é possível acionar o menu sensível ao contexto
ativado pelo clique do botão direito do mouse para que se possa acionar a opção
Create Schema e dar início ao desenvolvimento.
Figura 5
Fonte: O autor.
Figura 6
Fonte: O autor.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 8/20
Na Figura 6, é mostrada a tela que traz o comando SQL para criação de um Schema
livro vendas, que pode servir de base para o início do desenvolvimento, gerando o
resultado da Figura 7, onde é exibida a estrutura criada do banco de dados com seus
principais elementos como tabelas e visões.
Este resultado obtido no SGBD pode também ser verificado no Xampp clicando-se na
opção Admin do painel de controle, para que uma interface semelhante à da Figura 8
mostre que o banco de dados gerado também aparece no servidor através de sua
conexão definida, anteriormente.
Figura 7
Fonte: O autor.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 9/20
Figura 8
Fonte: O autor.
Próximos Passos
Para que se possa, então, seguir uma lógica de estudos e aplicação prática, será
excluído o banco criado livro venda, clicando-se em seu nome na janela esquerda e
escolhendo-se Drop Schema.
Em seguida, será então utilizada a linguagem SQL puramente para que todo o
processo seja executado, ignorando opções específicas deste SGBD MySQL, obtendo-
se algo mais geral que pode valer para outros SGBDs também.
Como mostrado na imagem 36, reinicia-se o desenvolvimento de forma manual com
o uso do comando create database vendas, observando que todo comando em SQL
para ser completo, necessita que seja incluso um sinal de ponto e vírgula ao final, pois
a ausência deste indica ao SGBD que ainda podem ser adicionados parâmetros ao
comando atual.
Depois, basta seguir a sequência padrão de uso do botão para executar comando
destacado na imagem 39, na parte direita da janela, observando a mensagem na
janela Output, que exibe o resultado dos comandos. Ali diz que o comando foi
executado com sucesso por meio do ícone verde e a mensagem de 1 linha afetada,
que representa que foi criado o banco de dados.
Para confirmar o processo, é preciso sempre que for executado um comando, que se
crie ou altere a estrutura do banco, o botão de atualização dos Schemas destacado na
parte esquerda da janela, como mostrado também na Figura 9.
Figura 9
Fonte: O autor.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 10/20
Para que o banco seja criado de forma mais adequada, é possível adicionar
parâmetros ao comando create database de forma a garantir que os caracteres
inseridos sejam mais fielmente aceitos e armazenados quando inseridos.
Depois de criado o banco de dados, inicia-se a criação das tabelas para conter os
conjuntos de entidades, e estas também podem ser criadas com comandos SQL, mas
antes, é muito importante lembrar que as tabelas são definidas por um nome, mas
também, por atributos que devem ter seus respectivos nomes e domínios de dados
aceitos, mais comumente chamados de tipos.
Estes tipos podem ser variados, e no caso da linguagem SQL, existem muitas
variantes possíveis de serem usadas, permitindo que o banco tenha entidades bem
ajustadas, reduzindo desperdício de espaço de armazenamento.
NA PRÁTICA
Existem países com conjuntos de caracteres diferentes do usado no
português e nos padrões de teclado utilizados no país e, assim, existe o
risco de que dados tenham sua integridade prejudicada. A fim de reduzir
esta possibilidade, é possível usar os parâmetros adicionais, a seguir,
sempre que criar um novo banco de dados, de forma que o padrão utf8
seja usado, mais adequado ao nosso idioma.
create database nome
default character set utf8
default collate utf8_general_ci;
Isso evita que algum conjunto de caracteres de um idioma diferente
daquele utilizado no país seja usado e ocorram erros na inserção de
dados como perda de acentuação ou aparecimento de caracteres
trocados ou indesejados nos dados.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 11/20
Sempre é preciso ter em mente que um banco de dados terá a função de armazenar
conjuntos de entidades, e a quantidade de entidades armazenadas pode ser tão
grande que qualquer ajuste pode influenciar este armazenamento.
Os tipos principais de domínios para dados são, numérico, data e hora, texto e
espacial, sendo cada tipo ideal para determinado domínio de dados e para que haja
uma melhor otimização dos atributos, todos possuem subdivisões como se pode
conferir na Tabela 1
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 12/20
Tabela 1
Tipo
Básico
Variante Descrição
Numérico
tinyint
Tipos numéricos inteiros que armazenam desde pequenos valores a valores
muito grandes, podendo ter parâmetros que definem a quantidade de
dígitos aceita.
smallint
int
mediumint
bigint
decimal
Tipos decimais de valores com maior ou menor precisão e aceitando valores
menores ou muito grandes para fins científicos.
float
double
real
numeric Tipo genérico SQL para números inteiros ou reais.
bit
Tipos mais voltados a avaliações de valor verdadeiro ou falso.
boolean
Data e
Hora
date
Tipos específicos para armazenamento de dados temporais, muito
importantes na construção de banco de dados.
datetime
timestamp
time
year
Texto char
Tipo padrão para atributos de texto como nomes, endereços, etc.
varchar
tinytext
Tipos atribuídos a dados de texto maiores como atributos de respostas de
questões de provas com várias linhas.
text
mediumtext
longtext
tinyblob Blob ou binary large object representa uma coleção de dados binários como
arquivos inteiros diversos como PDF, imagens, etc.
blob
mediumblob
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 13/20
Como são muitos tipos, e muitos deles apenas variações entre si, alguns serão
utilizados nos exemplos deste material para exemplificar a forma de uso, enquanto
outros ficam em aberto para que o aluno possa complementar seus estudos,
posteriormente, com fontes alternativas como os livros utilizados na bibliografia.
Partindo dos tipos disponíveis indicados na imagem 40, é possível definir como
seriam os atributos básicos para uma tabela cliente para cadastro do conjunto de
entidades relativa a esse conjunto de dados.
longblob
enum
Tipos específicos para listas de dados textuais específicas como dias da
semana, etc.
Set
Espacial
geometry
Tipo de dados específicos para aplicações gráficas baseadas em polígonos e
coordenadas.
geography
Fonte: O autor.
CONECTE-SE
Cada SGBD como MySQL ou SQL Server, por exemplo, possuem
particularidades na interface de uso, opções e ferramentas disponíveis,
mas existem também diferenças na parte estrutural de sua linguagem
SQL, e para os tipos de dados, podem ser observados pontos de atenção
em consultas às documentações de um SGBD. Observe como são os
tipos de dados no padrão SQL Server.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 14/20
https://go.eadstock.com.br/z1
https://go.eadstock.com.br/z1
create table cliente (
cod_cliente int,
nome_cliente varchar(30),
cpf_cliente numeric(11,0));
Observando o exemplo, são definidos os atributos cod_cliente como dado do tipo
inteiro, escolhido entre as cinco opções de valores sem casas decimais, nome_cliente
como texto para até 30 caracteres, onde foi escolhido o tipo varchar ao invés de char
pela otimização que se obtém no armazenamento de dados, e cpf_cliente com até 11
dígitos numéricos sem casas decimais indicado com o tipo numeric para este fim
específico.
Os tipos inteiros, por exemplo, são simples e sua escolha se baseia mais nos maiores
ou menores valores que seriam aceitos pelos atributos, pois o tipo inteiro trabalha na
faixa de -2.147.483.648 a 2.147.483.647, ao passo que smallint usa a faixa de -32.768 a
32.767 nitidamente mais restrita, e o menor tipo tinyint de 0 a 255, equivalente a 1
byte apenas.
Já os tipos relacionados com números decimais permitem que parâmetros decidam
detalhes como casas decimais e a quantidade de bits utilizados para armazenar os
valores e cada SGBD pode delimitar de diferentes formas esta categoria de dados
com maior especificidade que os tipos inteiros, por exemplo.
REFLITA
As escolhas de tipos para atributos não são feitas apenas pelas categorias
de valores que se espera armazenar, mas envolve uma análise mais
profunda no que se espera destes atributos e seus requisitos
identificados.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 15/20
Em MySQL, por exemplo, o tipo chamado decimal, muito utilizado, é definido por dois
parâmetros decimais (m,n), sendo m o tamanho total do número em si a ser
armazenado em dígitos, sendo que pela documentação oficial da versão utilizada, o
máximo aceito para a quantidade de dígitos neste tipo numérico é de 65, e para a
parte decimal n, o máximo é de 30 dígitos para definir a quantidade de casas
decimais de precisão. Se estes valores não forem informados o MySQL assume m=10 e
n=0.
O tipo float aceita valores muito grandes, e a composição hardware e sistema
operacional podem variar estes valores que, de qualquer forma, são enormes e
indicados para aplicações matemáticas e científicas cuja precisão é de enorme
importância, com valores que podem ter dezenas de casas decimais, por exemplo.
É comum pensar em números tão grandes que, normalmente, se utiliza a chamada
notação científica para delimitá-los gerando, assim, valores limites como -3.40E+38 a
3.40E+38 que seriam equivalentes a números com 39 dígitos fora o ponto, por
exemplo.
Os dados do tipo texto são mais simples de serem delimitados e compreendidos, mas
existem alguns pontos relevantes e os dois principais tipos são chamados de char(m)
e varchar(m), sendo que o primeiro possui uma definição de que uma quantidade m
de caracteres será armazenada, independentemente do texto significativo a ser
inserido, ao passo que varchar também estabelece um limite m de caracteres, mas
apenas os caracteres significativos são armazenados, reduzindo desperdício de
espaço em disco.
Assim, caso sejam definidos dois atributos char(3) e varchar(3), ambos podem ocupar
3 bytes de armazenamento, lembrando que, em geral, a quantidade de bytes equivale
a de caracteres, mas com a definição utf-8, este valor pode ser diferente, pois esta
codificação aceita caracteres que ocupam mais de 1 byte de espaço de
armazenamento.
De qualquer forma, digamos que sendo armazenado o caractere ‘a’ em ambos os
atributos, no primeiro, algo como ‘a’ seria armazenado, ocupando os 3 bytes, mas no
caso de varchar, seria realmente armazenado ‘a’ ocupando apenas 1 byte.
Outro tipo relevante que pode ser utilizado se chama text(m) e aceita textos longos
de até 216 caracteres praticamente ou 65535 caracteres podendo, então, configurar
vários parágrafos de texto, podendo ser definido um limite através de um valor para
m, e outro tipo chamado blob aceita cerca de 224 bytes, praticamente, ou 16.777.215
de caracteres como outra opção para textos longos.
Um tipo importante de texto se chama enum e define listas de dados fixas que são
ótimas opções para conjuntos delimitados de opções de escolhas para atributos
como sexo que, geralmente, é identificado com apenas 1 caractere, dias da semana
com os nomes dos sete dias abreviados ou não, meses do ano, nomes de pessoas
específicas, cargos, etc.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 16/20
Complementando os tipos básicos de texto que podem ser utilizados ao longo do
material, o tipo set traz a possibilidade de se criar conjuntos de dados textuais no qual
a quantidade de 0 a 64 dados, sendo que os dados aceitos são predeterminados na
definição do atributo.
create table listagem (cores set('azul', 'verde', 'amarelo’,
'branco'));
insert into listagem (cores) values
('amarelo,verde,verde,cinza,roxo');
select cores from listagem
Neste exemplo, a tabela listagem é definida de forma que possa receber entidades
com dados apenas pertencentes ao conjunto delimitado no parâmetro col set, e cada
tupla a ser inserida conterá dados não repetidos dentre as opções oferecidas,
avisando apenas em caso de dados repetidos estarem colocados no comando insert.
Como resultado da inserção, a consulta traria amarelo e verde como dados inseridos
na tabela, apenas, pois a repetição de verde é ignorada, e os dados cinza e roxo
descartados por não pertencerem ao conjunto de dados aceitos no domínio.
Por fim, um tipo de dado bastante utilizado se refere ao trabalho com datas e horas
importantes para que não seja necessário utilizar tipos numéricos que deixariam os
componentes de data ou hora separados, ou texto que dificultaria cálculos de tempo.
O tipo date, por exemplo, suporta datas formatadas em um intervalo de 1000-01-01 a
9999-12-31 seguindo o padrão ano-mês-dia do SGBD, mas pode ser ajustado o
formato da data para nosso padrão dia-mês-ano através do uso de date_format para
converter o formato tanto na inserção, quanto na consulta ao banco, por exemplo.
insert into cliente set data_nasc = str_to_date ( ‘27/02/1990’,
‘%m/%d/%y’ );
select date_format (data_nasc, ‘%d/%m/%y’ ) from cliente;
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 17/20
A hora também segue o mesmo modelo de uso, e como padrão utiliza
hora:minuto:segundo que não se altera nas diferentes regiões do mundo, e pode ser
trabalhado com o comando date, estando limitado ao intervalo -838:59:59.000000 a
838:59:59.000000, sendo pouco provável que seja utilizada uma faixa tão grande de
tempo, exceto em dados históricos.
Outros tipos podem ser utilizados de acordo com as necessidades de cada projeto, e
uma consulta ao material oficial de cada SGBD utilizado juntamente com consultas a
livros e à web pode ser um bom caminho para se aperfeiçoar os conhecimentos sobre
tipos de dados que podem ser utilizados em banco de dados.
Com a aquisição dos conceitos dos tipos de dados, é possível analisar o contexto da
Figura 10, que traz um script para criação de uma tabela com maior detalhamento e
otimização dos atributos.
Neste script da Figura 10, é importante estar atento aos tipos utilizados nos atributos,
mas também, a outros parâmetros que foram já incluídos para que se compreenda
quão detalhada pode ser a definição de um banco de dados.
No primeiro atributo, é importante destacar que, além de se utilizar o tipo tinyint que
reduz bem a quantidade de entidades aceitas, dando a impressão de uma ótima
otimização, é importante se lembrar da limitação do tipo a valores entre 0 e 255,
Figura 10
Fonte: O autor.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html18/20
permitindo então a inserção de no máximo 256 tuplas de dados, insuficiente para a
maioria dos bancos de dados, sendo que para bancos grandes nem o tipo int seria
adequado.
Também consta o parâmetro not null que impede o atributo de ser mantido vazio,
obrigando a inserção de um valor, mas este valor é definido automaticamente pelo
sistema em função do parâmetro auto_increment que adiciona uma unidade a cada
nova entidade neste atributo, garantindo a não repetição de dados.
Isso foi definido para este atributo em função do que vem na última linha de
parâmetro de atributos do comando create table, que indica o atributo cod_cliente
como chave primária através do parâmetro primary key.
O segundo atributo nome_cliente está ajustado para aceitar até 30 caracteres
ajustando o armazenamento apenas aos caracteres significativos do texto e sendo
obrigatória sua inserção (not null).
O terceiro atributo utiliza o tipo numeric(11,0) para que possa ser um campo
numérico e não textual para o CPF, permitindo validação do mesmo pela regra
matemática de CPFs, sendo que o formato padrão atual deste documento utiliza 11
caracteres, sem afetar os documentos mais antigos que possuem menos dígitos que
este padrão atual.
São onze números sem o uso de casas decimais, fazendo com que 11 e 0 sejam valores
que delimitam bem a entrada de dados, impedindo números com mais de 11 dígitos,
mas aceitando menos que isso, e não aceitando a inserção de pontos ou vírgulas na
digitação.
Por fim, apenas é colocado um parâmetro adicional ao final do comando para definir
o padrão utf8 para que seja aceito um conjunto maior de caracteres, apenas para
ilustração, pois os dados utilizados nos atributos definidos são bastante comuns, e
não seria necessária a especificação deste padrão em casos assim.
Atributos bastante específicos como sexo e dia da semana podem ser representados
como tipo enum, onde podemos indicar uma lista de dados aceitos e que são
validados na entrada de dados pelo usuário, como podemos ver no exemplo em que
o uso da palavra default garante que o atributo não seja cadastrado em branco na
ausência de um dado informado a ele, pois em casos assim, assumiria o dado
informado como padrão.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 19/20
CONCEITUANDO
Compreender os conceitos relacionados aos atributos é importante para
poder elaborar tabelas para o armazenamento de conjuntos de
entidades de forma adequada e funcional. Observar quais os tipos de
dados corretos para os atributos é uma tarefa importante, assim como
verificar se devem ser marcados como obrigatórios, se devem ter seus
dados preenchidos, automaticamente, se possuem valores padrão de
preenchimento para facilitar a inserção de dados, etc. Mas talvez o mais
importante seja definir, corretamente, e se possível, a composição de
atributos para formar a chave primária de cada tabela, observando se nas
tabelas, seria necessária a inserção de chaves estrangeiras e outros
pontos importantes.
17/07/2025, 19:44 Armazenamento e Consulta de Dados
https://ava.graduacaoead.unicv.edu.br/pluginfile.php/2597117/mod_resource/content/2/book/armazenamento-e-consulta-de-dados.html 20/20