Buscar

Gerenciamento de Banco de Dados

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 106 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 106 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 106 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

GERENCIAMENTO DE BANCO DE DADOS 
CURRÍCULO LATTES 
 
Prof. Dr. Hudson Sérgio de Souza 
E-mail: hudson.souza@fatecie.edu.br 
Currículo Lattes: http://lattes.cnpq.br/3650215843884230 
 
 
 
FORMAÇÃO ACADÊMICA 
 
Doutorado 
2014-2018 Universidade Estadual de Maringá – UEM 
Área: Agronomia – ênfase: Fitopatologia / Agro-Informática – Maringá-PR 
 
Mestrado 
2012-2014 Universidade Estadual de Maringá – UEM 
Área: Agronomia – ênfase: Fitopatologia / Agro-Informática – Maringá-PR 
 
Especialização 
2018 – Universidade Tecnológica Federal do Paraná – UTFPR - EAD 
Curso: Especialização Informática Instrumental Aplicada à Educação 
 
2009 – Universidade Federal do Mato Grosso do Sul UFMS 
– Campo Grande-MS 
Curso: Especialização em Educação Pedagógica em Educação a 
Distância 
 
2007 – Centro Universitário de Maringá – UniCesumar – Maringá-PR 
Curso: Especialização em Desenvolvimento Orientado a Objetos - Java 
 
 
Graduação 
2006 – Universidade Paranaense - UNIPAR – Campus Paranavaí 
Curso: Bacharelado em Sistemas de Informação – Paranavaí-PR 
 
Experiência na área de analista de desenvolvimento de sistemas, programador, 
docente da área de computação, coordenador do curso de Sistemas para Internet. 
APRESENTAÇÃO DA APOSTILA 
 
Seja muito bem-vindo(a) ! 
 
Prezado(a) aluno(a), se você se interessou pelo assunto desta disciplina, isso já é 
o início de uma grande jornada que vamos trilhar juntos a partir de agora. Proponho, junto 
com você, construir nosso conhecimento sobre os conceitos fundamentais do 
Gerenciamento de Banco de Dados, ou seja, a forma de armazenar e manipular os dados 
para transformá-los em informação. Além de conhecer seus principais conceitos e 
definições vamos explorar as mais diversas aplicações de um banco de dados aplicado 
ao desenvolvimento de software. 
A disciplina de Gerenciamento de Banco de Dados é desenvolvida juntamente 
com as demais disciplinas dos cursos de computação, priorizando as disciplinas de: 
Análise de Projetos, Algoritmos e Lógica de Programação e Desenvolvimento Web, que 
atuam diretamente com o armazenamento e manipulação dos dados. 
Na unidade I – Conceitos de Banco de Dados, começaremos a nossa jornada pelo 
conceito das principais características do sistemas de banco de dados, suas transações 
e abordando as vantagens da utilização do SGBD. Esta noção é necessária para que 
possamos trabalhar a segunda unidade do livro, que versará sobre o modelo relacional. 
Já na unidade II – Modelo Relacional, vamos ampliar nossos conhecimentos sobre 
banco relacional. Para isso, vamos detalhar cada uma das etapas criação e manipulação 
de usuários, permissões e dos dados atribuídos ao SGBD. 
Depois, nas unidade III – SQL Básico, vamos tratar especificamente dos principais 
comandos utilizados para manipulação de um SGBD através dos comandos SQL, a 
permissões e restrições atribuídas aos usuários do banco de dados, os comandos de 
manipulação dos dados em SQL e as consultas básicas utilizando SQL. 
Por fim na unidade IV – vamos entender o papel dos tipos de consultas envolvendo 
NULL, a consultas aninhadas, a utilização do Joins, os comandos de alteração do 
Schema, a manipulação dos registros através da inserção, alteração e exclusão, as 
transações efetivadas, os utilização de visões e a preocupação com a segurança do 
dados. 
Aproveito para reforçar o convite a você, para junto conosco percorrer esta jornada 
de conhecimento e multiplicar os conhecimentos sobre tantos assuntos abordados em 
nosso material. Esperamos contribuir para seu crescimento pessoal e profissional. 
 
Muito obrigado e bom estudo! 
 
 
UNIDADE I 
CONCEITOS DE BANCO DE DADOS 
Prof. Dr. Hudson Sérgio de Souza 
 
 
Plano de Estudo: 
• Conceitos e Definições das características do SGBD; 
• Tipos de transações existentes; 
• Abordagem sobre as principais vantagens do uso SGBD. 
 
 
Objetivos de Aprendizagem: 
• Conceituar e contextualizar o sistema gerenciados de banco de dados; 
• Compreender os tipos de transações envolvendo armazenagem dos dados; 
• Estabelecer a importância da utilização de um SGBD. 
 
 
INTRODUÇÃO 
 
Olá caros acadêmicos! 
Sejam bem vindos ao Módulo I – Conceito de Banco de Dados. 
 Neste módulo iremos tratar sobre os temas que irão contextualizar o tema central 
da disciplina Gerenciamento de Banco de Dados, iniciando pelos conceitos e definições 
das características do Sistema de Gerenciamento de Banco de Dados (SGBD), 
passando a definir os tipos de transações existentes e por fim, abordando as principais 
vantagens de se trabalhar utilizando um SGBD. 
 Conhecer os princípios do SGBD é fundamental para toda empresa que necessite 
armazenar, buscar, alterar ou até mesmo deletar grandes volumes de dados, 
provenientes de clientes, produtos, transações, colaboradores ou outros dados que 
sejam vitais para o bom andamento da organização. 
 
 
 
 
 
 
 
1 CONCEITOS E DEFINIÇÕES DAS CARACTERÍSTICAS DO SGBD 
Imagem do Tópico: 1651132153 
 
 Um Sistema de Gerenciamento de Banco de Dados (SGBD), proveniente do 
inglês Data Base Management System (DBMS), é responsável pela gestão de uma 
coleção de banco de dados, assim como os recursos necessários para a manipulação 
dos dados e do dicionário destes dados. 
 O SGBD tem como objetivo tirar da responsabilidade do sistema do cliente de 
realizar o gerenciamento do acesso, da manipulação e organização dos dados 
armazenados no banco de dados. 
 No banco de dados relacional a interface possui uma Application Programming 
Interface/Interface de Programação de Aplicação (API) ou drivers do SGBD, utilizados 
para a execução comandos da linguagem Structured Query Language/Linguagem de 
Consulta Estruturada (SQL). 
 O SGBD é responsável pela forma de como os dados são armazenados, através 
de uma descrição completa do banco de dados, das informações da estrutura de cada 
Entidade (tabela), do tipo e do formato de armazenamento de cada dado, das restrições 
de acesso, etc. 
 Denominamos como “dados persistentes” todos os dados que encontram-se 
armazenados em um banco de dados, conforme Figura 1. 
 Basicamente o Sistema de Gerenciamento de Banco de Dados oferece os 
recursos de manipulação e manutenção dos dados armazenados em Entidades (tabela) 
dentro de um Banco de Dados, como: cria banco de dados, insere, consulta, altera e 
deleta, tanto os dados, quanto a entidade e o banco de dados. 
 Outra função ofertada pelo SGBD é a criação e manutenção da conta de usuários, 
seus privilégios (permissões) de acesso, há três tipos distintos de contas de usuários: 
● Usuário de aplicação: utiliza o banco de dados de forma indiretamente, 
tendo um programa de computador servindo como interface entre o usuário e o banco 
de dados, além de gerenciar as ações requisitadas pelo usuário; 
 
● Usuário de desenvolvedor: utilização o banco de dados para realizar testes 
gerais para certificar que as ações implementadas no sistema estejam sendo executadas 
corretamente; 
● Usuário DBA: Administrador do Banco de Dados, possui os privilégios 
(permissões) para manipular o banco de dados, entidades, atributos, dados, privilégios 
de outros usuários, backup, restauração, entre outros. 
 
Figura 01 - Esquema conceitual de um banco de dados 
 
 
 
 
 
 
 
 
 
 
 
 
 
Fonte: O autor, 2020. 
 
 Um dos principais benefícios da utilização de um banco de dados é que os 
registros e dados existentes em diferentes tabelas podem ser acessados, organizados e 
recuperados de forma fácil e rápida através da utilização de um SGBD. 
 O banco de dados deve possuir algumas características essenciais, tais como: 
● Gestão de acesso aos dados; 
● Múltiplas interfaces aos usuários; 
● Gestão de redundância de dados; 
● Dados compartilhados; 
● Representação de associação complexa; 
● Gestão de recuperação de falhas; 
● Restrições de integridade dos dados. 
 
 A aplicabilidadede um SGBD é muito ampla, dentre as principais podemos citar: 
dados oriundos de pesquisa científica aplicada, dados de inventário, dados de um 
biblioteca, dados contábeis, conversar de listas de discussão, dados contábeis, dados 
de clientes e dados de fornecedores. 
 Algumas características são fundamentais para definir um SGBD, assim como: 
catálogo, independência de dados, múltiplas visões dos dados, compartilhamento e as 
transações. 
 O catálogo em um SGBD ampara o banco de dados, a definição e a descrição 
das estruturas e dos registros armazenados no banco. 
 A independência de dados em um SGBD possibilita aos usuários uma visão 
abstrata dos dados armazenados, ocultando detalhes de como os dados estão 
fisicamente salvos no banco. 
 Já as múltiplas visões dos dados disponíveis em um SGBD possibilita que cada 
tipo de usuário possa ter a sua visão personalizada dos dados armazenados em um 
banco de dados. 
 O SGBD possui as funções de compartilhamento e transações, para realizar a 
gestão do controle de concorrência. 
 Uma coleção organizada de dados recebe a denominação de Banco de Dados, 
estes dados podem se relacionar entre si de forma organizada e cronológica gerando 
informações importantes para futuras tomadas de decisões, passando maior segurança 
e credibilidade tanto para pesquisa, quanto para estudos. 
 Para as empresas os banco de dados são fundamentais para que possam 
continuar a crescer e alavancar novos negócios, através de informações sobre os 
clientes, seus fornecedores, sobre os produtos comercializados, o controle de estoque, 
fluxo de caixa, folha de pagamentos, entre outras. 
 
 
 
2 TIPOS DE TRANSAÇÕES EXISTENTES 
Imagem do Tópico: 613593986 
 
 Um banco de dados relacional oferece suporte ao controle de transação e as 
propriedades da Atomicidade, Consistência, Isolamento e Durabilidade, comumente 
conhecida pela sigla ACID, uma propriedade do “tudo ou nada” de se concretizar 
qualquer alteração no banco de dados em sua plenitude ou desfazer todas as ações 
parcialmente executadas. 
 Uma transação pode ser definida por uma sequência de operações onde são 
tratadas com um único bloco indivisível, durante o processo de recuperação de falhas. 
As transações são executadas completamente ou não serão executadas, assim caso 
houver uma falha em qualquer tipo de manipulação do dado em um banco de dados, 
esta transação poderá ser desfeita, retornando assim os dados originais ao banco de 
dados. 
 A transação é tratada como uma unidade única, onde suas ações não suportam 
ser mescladas com outras operações que estejam sendo executadas no banco de dados, 
que não participem do escopo desta transação em particular. 
 A execução de somente um comando SQL pode significar diversos acessos a um 
banco de dados separadamente, onde uma transação por sua vez consiste da execução 
de diversos comandos SQL. 
 Toda transação deve ser executada em sua totalidade, ou não será executada, 
caso haja alguma falha por qualquer motivo que ocorra, essa transação pode ser 
desfeita, sendo essa característica denominada de Atomicidade. 
 Uma transação, deve sobretudo manter a consistência dos dados armazenados 
no banco de dados, sendo essa característica denominada de Consistência. 
 Neste contexto, fica evidente que o Sistema Gerenciador de Banco de Dados 
necessita executar tarefas especiais que garantam a execução da transação até o fim 
de forma ininterrupta e que não haja a interferência de execução de comandos SQL 
sendo executados no banco de dados de forma simultânea, sendo essa característica 
denominada de Isolamento. 
 
 O sistema gerenciador de banco de dados precisa garantir que uma transação 
executada com êxito, não venha a se perder em uma provável falha posterior, sendo que 
as transações devam persistir à falhas. Outra característica importante é que a uma 
transação só pode ser desfeita através da execução de outra transação, sendo essa 
característica denominada de Durabilidade. 
 
2. 1 Operações de dados por transação 
 
 Entre diversas possibilidades de executar operações de dados por transação, a 
mais utilizada é o CRUD, sigla em inglês create, read, update, delete / criar, ler, alterar, 
deletar. 
 Assim o Sistema Gerenciador de Banco de Dados (SGBD) necessita garantir que 
seja executada corretamente a transação, ocorrendo ou não uma falha, desta forma a 
transação é executada por completo ou nenhuma operação será executada, abortando 
a transação. 
 Observando os código fonte da linguagem SQL, se observa que que a transação 
é definida por meio de declarações de formato, que designam o início e o fim da 
declaração, devendo ser executada como se fosse uma única instrução, sendo que para 
manter a integridade dos dados o SGBD deve priorizar as propriedade da ACID, 
conforme Figura 2. 
 
Figura 02 - Trecho de código fonte em linguagem SQL, indicando o escopo destinado a 
operação única 
 
1 
2 
3 
4 
5 
6 
begin transaction 
. 
. 
. 
. 
end transaction 
 
Fonte: O autor, 2020. 
 
 
 
2. 2 Commit e Rollback 
 
 O comando “Commit” se aplica quando a transação tenha sido executada com 
sucesso, assim o banco de dados é alterado de forma permanente e o dado gravado em 
disco. 
 Para corrigir qualquer problema por falhas com natureza diversas, será utilizado 
o comando “Rollback”, retornando o banco de dados ao estado de início da transação, 
sem a eventual transação executada parcialmente devido a falha. 
 Podemos exemplificar através de uma transação financeira no valor de R$ 150,00 
de uma conta corrente de um cliente “A” para outra conta corrente de um cliente “B” do 
mesmo banco, conforme Figura 3. 
 
Figura 03 - Trecho de código fonte da linguagem SQL, descrito em código Portugol, realizando 
uma transação financeira de transferência de recursos da conta corrente de um cliente para 
outro 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
inicio transacao transferencia_A_B 
 vlr_transf = 150.00 
 
 ler(A) 
 A = A – vlr_transf 
 gravar(A) 
 
 
 ler(B) 
 B = B + vlr_transf 
 gravar(B) 
end transaction 
 
Fonte: O autor, 2020. 
 
Onde, 
 vlr_transf: recebe o valor a ser transferido de uma conta corrente para outra 
 ler(A): transfere os dados físicos do banco de dados do cliente “A” para 
uma área de memória (buffer) 
 A = A – vlr_transf: debita o valor da ser transferido (vlr_transf) do saldo da cota 
corrente do cliente “A” 
 
 gravar(A): realiza a transferência dos dados do cliente “A” alocados na 
memória Buffer, para o banco de dados armazenado em disco; 
 ler(B): transfere os dados físicos do banco de dados do cliente “B” para 
uma área de memória (buffer) 
 A = B + vlr_transf: credita o valor transferido (vlr_transf) ao saldo da cota corrente 
do cliente “B” 
 gravar(B): realiza a transferência dos dados do cliente “B” alocados na 
memória Buffer, para o banco de dados armazenado em disco. 
 Em caso de sucesso da transação, o SGBD seguirá com o procedimento com o 
comando “Commit” efetivando a transação. 
 Caso ocorra algum qualquer tipo de falha na transação, o SGBD executará o 
comando “Rollback” cancelando a transação de transferência, desfazendo todas as 
ações executadas, como por exemplo: 
● Houver uma falha de comunicação; 
● O saldo da conta corrente do cliente “A” for insuficiente para debitar o valor da 
transferência; 
● Ocorre uma falha no momento de creditar o valor transferido na conta corrente do 
cliente “B”. 
 
2. 3 Recuperação de Falhas 
 
 O sistema gerenciador de recuperação de falhas assegura que ocorra a 
atomicidade e a durabilidade na execução das transações. 
 Sendo que a atomicidade desfaz as ações decorrentes das transações que não 
obtiveram êxito e não foi realizado o “Commit”. Já a durabilidade garante com que todas 
as transações com êxito e que realizaram o “Commit” para efetivar a ações, tornam-se 
persistentes no banco de dados físico. 
Oalgoritmo de recuperação possui três fases distintas: 
● Analisar: percorrer o log do sistema para frente, partindo do último ponto 
de verificação, identificando as transações ativas e as transações que estavam em 
execução no momento da falha; 
 
● Refazer: percorrer e refazer todas as transações que estavam em 
execução no momento da falha, garantindo assim que as atualizações sejam registradas 
no log do sistema e devidamente salvas no banco de dados físico; 
● Desfazer: todas as transações que estavam em execução no momento da 
falha serão desfeitas, recuperando os valores iniciais anteriores ao processo que gerou 
a falha, e atualizando o registro de log do sistema, fazendo a varredura de trás para 
frente. 
 
2. 4 Controle de Concorrências 
 
 Um sistema de controle de concorrência descreve uma arquitetura do sistema de 
gerenciamento de banco de dados do mais baixo nível, estando relacionado às 
operações de entrada e de saída, simultaneamente a troca dos blocos de memórias 
secundários para a memória principal e/ou vice-versa (ATZENI et al. 2000). 
 Tanto a operação de escrita, quanto a de leitura, são gerenciadas pelo módulo 
Scheduler (escalonador), que define se a requisição pode ou não ser satisfeita. 
 O sistema de gerenciamento de banco de dados oferece suporte a várias 
aplicações, que permite acesso concorrente dos dados. Enquanto maior for a permissão 
ao nível de concorrência, melhor será o tempo de resposta do sistema. 
 Os mecanismos de controle e concorrência facilitam os processos de paralelismo 
no núcleo do sistema gerenciador de banco de dados. Em um cenário de banco de dados 
distribuídos, torna-se fundamental a implementação de um sistema de paralelismo, 
sendo que os nós da rede atuam de maneira independente, mesmo o controle de 
concorrência sendo efetivados de forma global. 
 
 
 
 
 
3 ABORDAGEM SOBRE AS PRINCIPAIS VANTAGENS DO USO SGBD 
Imagem do Tópico: 1637979406 
 
 Em um Sistema de Gerenciamento de Banco de Dados normalmente os dados 
são armazenados em um banco de dados, que pode estar alocado em uma máquina 
física (servidor) ou uma máquina alocada nas nuvens (servidor virtual), ambos podendo 
ser uma máquina de grande porte ou uma máquina de menor capacidade de quantidade 
de armazenamento e de potencial de processamento, onde irá receber as requisições 
de dados das demais estações de trabalho (computador cliente). 
 Ao armazenar os dados dos usuários em um único local (servidor físico ou virtual) 
a possibilidade de haver uma redundância (repetição) dos dados é praticamente nula. 
 O SGBD através da função de multiusuário, possibilita o compartilhamento dos 
dados entre diversos usuários acessando o mesmo banco de dados de forma 
simultânea, onde vários sistemas integrados possam acessar o mesmo banco de dados. 
Uma das responsabilidades do SGBD é realizar o controle de concorrência, garantindo 
que as atualizações resultem em respostas às requisições de forma correta, 
possibilitando também a construção de visões distintas para cada tipo de usuário. 
 Outra vantagens disponível no sistema de gerenciamento de banco de dados é o 
sistema de segurança, amplamente utilizado pelo Database Administrator/ Administrador 
de Banco de Dados (DBA), que cria regras bem definidas para cada grupo de usuário, 
assim como suas permissões, restrições de acesso e visibilidade dos dados e 
informações armazenadas dentro do banco de dados. Este pacote de segurança é 
aplicado tanto ao acesso aos dados por parte dos usuários, quanto a utilização de 
softwares interligados ao sistema de gerenciamento de banco de dados. 
 Um banco de dados tem capacidade de armazenar uma grande quantidade de 
dados que se encontram inter-relacionados de diversas formas. O SGBD fornece 
recursos de representação da forma de relacionamento entre os dados, assim como as 
operações de inserção, atualização, exclusão e recuperação dos dados armazenados 
de forma rápida, eficiente e prática. 
 Um Sistema de Gerenciamento de Banco de Dados propicia uma variedade de 
vantagens para sua utilização, tais como: 
 
● Independência entre os dados e o sistema; 
● Independência entre sistema e operação; 
● Suporte a visões; 
● Controle de Redundância. 
 
3. 1 Independência entre os dados e o sistema 
 
 A definição de estrutura de dados em um Sistema de Gerenciamento de Banco 
de Dados tem por característica possuir um catálogo ou dicionário de dados, denominado 
como metadados, ou seja, um detalhamento sobre os dados armazenados. Desta forma, 
quando ocorre alteração na estrutura de dados, não afetará a alteração dos softwares 
de manipulação dos dados. 
 
3. 2 Independência entre sistema e operação 
 
 Quando se trata de Sistema de Gerenciamento de Banco de Dados Orientado a 
Objetos (OO), relacional/objeto, função/procedimento, ao manipular dados armazenados 
em um banco de dados, as informações sobre os detalhes de armazenamento e 
implementação encontra-se ocultos, esta função denomina-se como abstração de 
dados. Caso a interface desta função permaneça inalterada no banco de dados, os 
sistemas que utilizam esta função não precisam ser alterados/tratados quando a função 
mudar, esta operação é denominada como independência entre sistema e operação. 
 
3. 3 Suporte a visões 
 
 O mesmo conjunto de dados armazenados em um banco de dados fisicamente, 
pode ser apresentado de formas distintas a clientes específicos, por exemplo: os 
detalhes dos dados dos acadêmicos, notas e faltas, podem ser apresentados de forma 
mais simplificada aos acadêmicos e de forma mais detalhada aos docentes. 
 
3. 4 Controle de Redundância 
 
 
 Uma característica do controle de redundância dos dados, que pode ser 
considerado como uma desvantagem, é o desperdício do espaço de armazenamento. 
Exemplificando: em um processo comum de arquivos onde cada usuário possui seus 
próprios arquivos e dados armazenados, pode ocorrer redundância, ou seja, repetições 
de arquivos ou dados. Durante o processo de atualização todos os arquivos ou dados 
devem ser atualizados simultaneamente, mantendo assim a integridade dos dados 
dentro do banco de dados, o que acarreta uma redundância das informações e a 
ocupação desnecessária de espaço em disco. 
 
3. 5 Desvantagens da utilização do SGBD 
 
 Uma desvantagens da utilização do sistema de gerenciamento de banco de dados 
é o alto custo inicial com investimento financeiro para compra de novos hardwares e 
softwares, assim como a contratação de um profissional especializado em administração 
de banco de dados para que possa projetar a infraestrutura física das instalações e a 
estrutura interna para o armazenamento dos dados no banco de dados. 
 A desvantagem da diversidade de sistemas trabalhando simultaneamente, sendo 
softwares desenvolvidos de linguagens de programação diferentes, salvando os dados 
em banco de dados e estrutura interna de armazenamentos diferentes. Estes aspectos 
geram dados e arquivos sendo armazenados em mais de um lugar (duplicidade), onde 
os conteúdos podem não ser os mesmos (inconsistência). 
 Exemplo: Digamos que o gerente de uma loja de departamentos esportivos 
necessite de um relatório específico que liste todos os clientes de uma determinada rua 
onde ocorrerá um evento esportivo ao ar livre. O relatório deve trazer informações como: 
nome, rede social, telefone, tipo de modalidade esportiva e, será consultado pelo número 
do CEP da rua. Como o software não foi projetado inicialmente para emitir esse relatório, 
os desenvolvedores farão uma adequação para atender a demanda atual. Para atender 
a segunda, terceira e as demais demandas que surgirão no futuro, os desenvolvedores, 
que não necessariamente serão as mesmas pessoas, irão fazer alterações no software 
onde podem ocorrer inconsistência dos dados futuramente. 
 
 A desvantagem de haver dados isolamento, ou seja, dados armazenados em 
locais diferentese tipos de armazenamentos diferentes, se reflete no momento de 
desenvolver um novo módulo para a aplicação, sendo que se torna difícil recuperar os 
dados de onde muitas vezes não se conhece a estrutura, o local ou o próprio banco de 
dados onde o dados se encontra armazenado. 
 A inconsistência dos dados é um fenômeno de preocupação constante, sendo que 
é possível que ocorra anomalias referente a acessos concorrentes, como por exemplo 
no caso do aprimoramento do desempenho global de um software, obtendo um tempo 
de resposta menor, muitos desenvolvedores adotam práticas que permitem que múltiplos 
usuários tenham acesso aos mesmos dados e realizem atualizações simultâneas nos 
mesmos dados, o que pode vir a ocorrer uma inconsistência no conteúdo armazenado 
deste dado. Um exemplo clássico é o acesso e a realização simultânea de saque na 
conta corrente entre dois clientes bancários em uma mesma conta corrente. 
 Existem problemas decorrentes da segurança dos dados, quando se trata de 
acesso a estes dados por todos os usuários do sistema sem critérios ou hierarquia de 
controle. Por exemplo: o usuário responsável pelo Departamento Pessoal pode ter 
acesso aos dados cadastrais dos colaboradores da empresa e ao cadastro do clientes, 
porém não deve ter acesso aos dados financeiros dos clientes, ao histórico de compras 
ou pedidos em aberto. Outra situação preocupante são os novos módulos de aplicação 
agregados ao sistema, que muitas vezes não há como restringir o acesso a dados 
específicos. 
 Um problema de integridade de valores de dados armazenados, tem relação a 
satisfazer algum tipo de restrição de um dado, como por exemplo, o controle de estoque 
não permite que um certo produto tenha estoque inferior a 10 unidades, no caso de uma 
implementação futura de um novo módulo do sistema, talvez essa restrição acaba sendo 
esquecida de ser implementa ou tenha passado despercebido no momento do 
levantamento de requisitos para implementação do novo módulo, o que será descoberto 
no momento em que o sistema estiver em uso prático no dia a dia da empresa. 
 
 
SAIBA MAIS 
 
INTEGRIDADE DE DADOS 
 
Nessa era da informação sob demanda não podemos nos contentar que os dados 
são apenas registros armazenados em um banco de dados. Sem a devida garantia de 
sua integridade também não é possível transformá-los em informação. 
De nada adianta termos imensos bancos de dados armazenando incontáveis 
bytes de dados, que são constantemente inseridos, modificados, eliminados, se não 
podemos transformá-los em informação. 
 
Fonte: PIMENTEL, Fabricio. Integridade de dados: Parte 01. Disponível em: 
https://www.devmedia.com.br/integridade-de-dados-parte-01/8831. Acesso em: 25 mar. 2020. 
 
#SAIBA MAIS# 
 
 
 
 
 
REFLITA 
 
Meus filhos terão computadores, sim, mas antes terão livros. Sem livros, sem 
leitura, os nossos filhos serão incapazes de escrever - inclusive a sua própria história. 
 
Bill Gates. 
 
Fonte: STARTSE, Turismo de Negócios. Veja 10 frases de Bill Gates, fundador da Microsoft, que 
completa 40 anos de fundação. Disponível em: https://www.startse.com/noticia/educacao/veja-10-
frases-de-bill-gates-fundador-da-microsoft-que-completa-40-
anos#:~:text=A%20empresa%20se%20tornou%20uma,se%20relacionam%20com%20os%20computado
res.&text=Meus%20filhos%20ter%C3%A3o%20computadores%2C%20sim,inclusive%20a%20sua%20pr
%C3%B3pria%20hist%C3%B3ria. Acesso em: 30 jun. 2021. 
 
#REFLITA # 
 
 
 
 
 
CONSIDERAÇÕES FINAIS 
 
 Para compreender e tirar o melhor proveito das funcionalidades do Sistema de 
Gerenciamento de Banco de Dados (SGBD) é necessário compreender todos os 
contextos, características, vantagens e desvantagens desta importante ferramenta de 
gerenciamento. 
 Neste sentido, foram explorados e exemplificando os conceitos e definições do 
SGBD, os tipos de transações existentes e analisar as principais vantagens e 
desvantagens do uso do sistema de gerenciamento de banco de dados na prática 
aplicado ao armazenamento dos dados de empresas de pequeno, médio e grande porte. 
 
 
 
 
LEITURA COMPLEMENTAR 
 
TOP 10 principais SGBDs do mercado global! 
 
Mas afinal, o que é um SGBD? 
Os Sistemas de Gerenciamento de Banco de Dados, ou SGBDs, são conjuntos 
de softwares utilizados para o gerenciamento de uma base de dados, ou seja, são os 
programas utilizados para controlar, organizar, acessar e proteger as informações de 
uma empresa. 
 
Fonte: SCUDERO, Erick. TOP 10 principais SGBDs do mercado global! Disponível em: 
https://becode.com.br/principais-sgbds/. Acesso em: 22 mar. 2020. 
 
 
 
 
 
 
 
 
LIVRO 
 
 
 
 
 
 
 
 
 
 
 
 
Título: Sistema de Gerenciamento de Banco de Dados 
Autor: Raghu Ramakrishnan e Johannes Gehrke. 
Editora: McGraw Hill. 
Sinopse: Este livro apresenta uma abordagem clara e atualizada dos fundamentos dos 
sistemas de banco de dados. Os professores podem optar por dar ênfase a aplicações 
de bancos de dados ou a sistemas. O livro traz muitos exemplos e aplicações, incluindo 
SQL e Oracle, e aplicações para a Internet. Além disso, são introduzidos padrões 
atuais, como JDBC e XML, e desenvolvimento de aplicações em três camadas. 
 
 
 
 
FILME/VÍDEO 
 
 
 
 
 
 
 
 
 
 
Título: O Quinto Poder 
Ano: 2014. 
Sinopse: Benedict Cumberbatch entrega uma performance brilhante como Julian 
Assange, o narcisista fundador do WikiLeaks, em O QUINTO PODER. Este drama 
baseado em fatos reais revela a busca das importantes figuras da Internet para expor a 
trapaça e a corrupção do poder - transformando-os na organização mais ferozmente 
debatida do século 21. Depois que Assange e seu colega Daniel Domscheit-Berg (Daniel 
Brühl) se unem para jogar luz sobre as trevas de segredos governamentais e de crimes 
corporativos, eles se veem lutando entre si sobre o custo de expor a verdade para o 
público ser muito alto. Inteligente e instigante, O QUINTO PODER provoca a polêmica 
pergunta: "Herói ou traidor?" 
Link do vídeo: https://www.youtube.com/watch?v=raCapBWlpaw 
 
 
 
 
 
WEB 
 
Banco de Dados 
 
Um banco de dados é uma coleção organizada de informações - ou dados - 
estruturadas, normalmente armazenadas eletronicamente em um sistema de 
computador. 
Um banco de dados é geralmente controlado por um sistema de gerenciamento 
de banco de dados (DBMS). Juntos, os dados e o DBMS, juntamente com os aplicativos 
associados a eles, são chamados de sistema de banco de dados, geralmente abreviados 
para apenas banco de dados. 
 
Fonte: ORACLE Brasil. Banco de dados. Disponível em: https://www.oracle.com/br/database/what-is-
database.html. Acesso em: 23 mar. 2020. 
 
 
 
https://www.oracle.com/br/database/what-is-database.html
https://www.oracle.com/br/database/what-is-database.html
 
REFERÊNCIAS 
 
ALVES, William Pereira. Banco de dados. São Paulo: Érica, 2014. Minha Biblioteca. 
https://integrada.minhabiblioteca.com.br/#/books/9788536518961/. VBID: 
9788536518961. 
 
ATZENI, Paolo; CERI, STEFANO; Paraboschi. Database Systems: concepts, 
languages & architectures. São Paulo: McGraw Hill, p.349-90, 2000. 
 
BARBOZA, Fabrício Felipe Meleto; FREITAS, Pedro Henrique Chagas. Modelagem e 
desenvolvimento de banco de dados. Porto Alegre-RS: Sagah, 2018. Minha 
Biblioteca. https://integrada.minhabiblioteca.com.br/books/9788595025172. VBID: 
9788595025172. 
 
MACHADO, Felipe Nery Rodrigues. Banco de Dados: Projeto e Implementação. 3.ed. 
São Paulo: Érica, 2014. Minha Biblioteca. 
https://integrada.minhabiblioteca.com.br/books/9788536518978. VBID:9788536518978. 
 
ORACLE Brasil. Banco de dados. Disponível em: 
https://www.oracle.com/br/database/what-is-database.html. Acesso em: 23 mar. 2020. 
 
PIMENTEL, Fabricio. Integridade de dados: Parte 01. Disponível em: 
https://www.devmedia.com.br/integridade-de-dados-parte-01/8831. Acesso em: 25 mar. 
2020. 
 
RAMAKRISHNAN, Raghu; GEHRKE, Johannes. Sistemas de gerenciamentode 
banco de dados. 3.ed. Porto Alegre-RS: AMGH, 2011. Minha Biblioteca: 
https://integrada.minhabiblioteca.com.br/books/9788563308771. VBID: 
9788563308771. 
 
SCUDERO, Erick. TOP 10 principais SGBDs do mercado global! Disponível em: 
https://becode.com.br/principais-sgbds/. Acesso em: 22 mar. 2020. 
 
SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de Banco de Dados. 
Editora Pearson. Terceira Edição, 2010. 
 
STARTSE, Turismo de Negócios. Veja 10 frases de Bill Gates, fundador da 
Microsoft, que completa 40 anos de fundação. Disponível em: 
https://www.startse.com/noticia/educacao/veja-10-frases-de-bill-gates-fundador-da-
microsoft-que-completa-40-
anos#:~:text=A%20empresa%20se%20tornou%20uma,se%20relacionam%20com%20
os%20computadores.&text=Meus%20filhos%20ter%C3%A3o%20computadores%2C%
20sim,inclusive%20a%20sua%20pr%C3%B3pria%20hist%C3%B3ria. Acesso em: 30 
jun. 2021. 
 
 
UNIDADE II 
MODELO RELACIONAL 
Prof. Dr. Hudson Sérgio de Souza 
 
 
Plano de Estudo: 
• Conceitos e Definições de Modelo Relacional; 
• Introdução à Modelagem; 
• Campos de estudo dos Atributos; 
• Domínio e Chave Estrangeira. 
 
 
Objetivos de Aprendizagem: 
• Conceituar e contextualizar o Modelo Relacional; 
• Compreender os tipos de Atributos; 
• Estabelecer a importância da Chave Estrangeira. 
 
 
INTRODUÇÃO 
 
 Nesta Unidade II serão abordados os principais conceitos e definições de modelo 
relacional, uma introdução sobre a modelagem de banco de dados, sua forma abstrata 
de nomenclatura das entidades e atributos que se assemelham ao mundo real. 
 A forma de armazenamento dos dados depende diretamente do tipo dos dados 
que se pretende armazenar, dessa forma existem tipos de atributos coerentes aos tipos 
de dados, também denominados de domínios. 
 A base do relacionamentos do banco de dados relacional atua sobre chaves 
primárias e estrangeiras, para interligar diversas entidades e atributos, processando seus 
dados e os transformando em informações relevantes. 
 
 
 
 
1 CONCEITOS E DEFINIÇÕES DE MODELO RELACIONAL 
Imagem do Tópico: 571378933 
 
 O pesquisador e matemático britânico Edgar Frank Codd no ano de 1970 
trabalhava na IBM e descreveu os fundamentos da estrutura e funcionamento de um 
modelo de banco de dados relacional. 
 O modelo relacional tem por característica a flexibilidade e adequação a diversos 
tipos de soluções para resolução de problemas a nível de criação e implantação de banco 
de dados relacional. 
 A principal estrutura de um modelo relacional se baseia no relacionamento entre 
a Entidade (Tabela), a qual possui seus Atributos ou Campo (Colunas), os seus Registros 
ou Tuplas (Linhas) e os Dados, conforme Figura 1. 
 
Figura 01 - Nomenclatura das partes de uma entidade (tabela) 
 
 
 
Fonte: O autor, 2020. 
 
 Segundo Korth (1995), o modelo de banco de dados relacional representa um 
conjunto de Entidades, cada uma com nome único, tendo cada Registro representado 
por uma linha da Entidade, composto por um conjunto de dados relacionados, 
classificados pelos atributos que definem os tipos de cada dado. 
 
 O modelo relacional implementa uma estrutura de dados na forma de Entidades, 
as quais possuem restrições para resguardar os dados de particularidades não 
desejáveis, como: duplicação de informações (integridade referencial), impossibilidade 
de representar uma informação (chaves) e a perda da informação (integridade 
relacional). 
 A arquitetura de um banco de dados relacional, conforme ANSI/SPARC, é 
composta por três componentes: 
● Entidades: coleção de estrutura de dados, que compõe o nível conceitual; 
● Linguagem SQL: os operadores, a álgebra e os cálculos relacionais; 
● Integridade: coleção de restrições de integridade, que define a consistência 
do estado da base de dados e de suas alterações. 
 Um modelo de banco de dados relacional pode representar os dados através de 
uma coleção de relações, as quais são representadas por meio de Entidades (Tabelas), 
onde cada Registro (Linha) se refere a uma coleção de dados relacionados entre si. 
 Estas características contribuem no desenvolvimento de softwares que utilizam 
banco de dados relacional, facilitando o acesso e o processamento das consultas de 
dados e/ou informações processadas requisitadas pelos usuários, sendo amplamente 
aplicado a softwares comerciais atendendo a pequenas, médias e grandes empresas ou 
indústrias. 
 Para garantir que cada Registro seja único dentro de uma Entidade, existe a um 
Atributo denominado como Chave Primária, onde os valores desta Tupla não se repita 
dentro desta Entidade, normalmente trata-se de uma numeração sequencial, porém pode 
ser utilizado um dado específico que não se repita dentro da Entidade, como o número 
do CPF, por exemplo. 
 
 
2 INTRODUÇÃO À MODELAGEM 
Imagem do Tópico: 1096670732 
 
 
 A modelagem de dados se aplica no desenvolvimento de estruturas de 
armazenamento que sejam eficientes e escaláveis, auxiliando a busca por dados ou 
informações processadas de forma fácil e amigável. 
 Um dado pode ser compreendido com um valor em seu estado bruto que esteja 
armazenado dentro de uma estrutura de banco de dados. Por outro lado, a informação 
pode ser interpretada com um conjunto de dados inter-relacionados, que foram tratados 
respeitando critérios pré estabelecidos para que se tornem relevantes. 
 O número 30 (trinta) basicamente é um dado bruto ao ser analisado isoladamente, 
porém dentro de um contexto “A régua possui 30 centímetros”, este mesmo número se 
torna relevante para uma pessoa que busca por um instrumento de medição que possua 
30 cm de comprimento. 
 
2. 1 Modelagem Conceitual 
 
 O modelo conceitual trata da análise de fenômenos e elementos relevantes a uma 
realidade observada ou pensada, a qual será transformado em um modelo abstrato 
denominado Modelo de Entidade-Relacionamento (MER), que pode ser descrito de 
forma visual através de um diagrama denominado Diagrama Entidade-Relacionamento 
(DER). 
 O Modelo Entidade Relacionamento (MER), comumente chamado de Modelo ER, 
trata-se de um modelo conceitual usado na Ciências da Computação para determinar as 
Entidades (objetos) que fazem parte do sistema, assim como seus atributos 
(características) e os relacionamentos envolvidos. 
 O MER representa o modelo abstrato da estrutura interna do banco de dados que 
será desenvolvida, contendo: as entidades, os atributos, entidades intermediárias, 
chaves primárias, chaves estrangeiras e relacionamentos usados em uma base de dados 
relacional. 
 
 Devido a complexidade e tamanho do sistema a ser desenvolvido, atualmente a 
maioria dos sistemas são desenvolvidos em módulos menores, sendo que ao final todos 
os módulos de relacionam e se interligam, realizando a trocas de informações entre si, 
para que o sistema funcione como se fosse um único e grande módulo. Esta metodologia 
de dividir os problemas a serem solucionados em em partes menores, garante uma 
melhor implementação, alternativas de soluções, rapidez na entrega do módulo pronto e 
a possibilidade de constantes atualizações. 
 
2. 2 Entidades 
 
 As Entidades (tabelas) podem ser armazenadas em um meio físico ou lógico, 
conforme sua permanência no mundo real. 
 Uma entidade física é tangível, podendo ser visualizada e tocada no mundo real, 
normalmente estão armazenadas dentro de servidores. 
 Uma entidade lógica pode ser armazenada nas nuvens e sua existência se 
justifica pelas interações com outra entidade física, fornecendo subsídios ao domínio de 
negócios. 
 A nomenclatura das entidades normalmente são baseados em substantivos 
abstratos ou concretos, expressando de forma clara e objetiva sua função em um 
determinado domínio do negócio, como por exemplo, a entidade: pessoa, produto, 
cliente, fornecedor, venda, itens_venda, curso, turma, disciplina, função, etc. 
 As entidades podem ser classificadas de acordo com a forma de sua existência:● Entidade Forte: sua existência não depende de outra entidade, essa 
entidade sozinha possui todos os atributos e dados para sua existência. Exemplo: um 
sistema de vendas, onde a entidade produto, não necessita de nenhuma outra entidade 
para existir; 
● Entidade Fraca: sua existência depende diretamente de outra entidade 
para existir, sendo que isoladamente não há sentido a sua existência, por exemplo, a 
entidade venda depende da entidade produto para existir, não há sentido realizar uma 
vendo sem que já um produto; 
 
● Entidade Associativa: a existência desta entidade está ligada diretamente 
à necessidade de associar (interligar) duas outras entidades que venham a se relacionar 
entre si. Uma vez que o Modelo Entidade Relacionamento (MER) não prevê em alguns 
casos um relacionamento direto entre entidades, foi criada uma nova entidade para 
justamente permitir este relacionamento. 
 
2.3 Relacionamento entre Entidades 
 
 A partir da identificação das Entidades, o próximo passo é realizar o 
relacionamento com outras Entidades, a fim de realizar uma troca de dados dentro do 
sistema, os quais serão processados e se transformarão em informações úteis aos 
usuários. No Modelo Entidade Relacionamento há três tipos de relacionamentos 
disponíveis: 
● Relacionamento Um-para-Um (1-1): O relacionamento ocorre entre duas 
Entidades, onde a referência obrigatória se dá entre dois atributos chaves. Exemplo: A 
entidade Pessoa possui um relacionamento (1-1) entre a Entidade Autenticação 
[Pessoa] 1----------1 [Autenticação], neste cenário pode-se dizer que uma Pessoa 
possui só e somente uma Autenticação e, que uma Autenticação está vinculado a só e 
somente uma Pessoa, conforme Figura 2; 
● Relacionamento Um-para-Muitos (1-n): O relacionamento ocorre entre 
duas Entidades, porém uma das Entidades pode se referenciar a várias unidades da 
outra Entidade. No entanto, as unidades da segunda Entidades só podem se relacionar 
com apenas uma unidade da primeira Entidade. Exemplo: A Entidade Professor possui 
um relacionamento 1-n (Um-para-Muitos) entre a Entidade Aluno [Professor] 1----------n 
[Aluno], sendo de um Professor leciona para muitos Alunos, porém cada um destes 
Alunos (unidades) só podem se relacionar exclusivamente com apenas um Professor, 
conforme Figura 3; 
● Relacionamento Muitos-para-Muitos (n-n): este relacionamento pode 
ocorrer entre duas ou mais Entidades, sendo que cada Entidade de ambos os lados, 
pode conter múltiplas referências de unidades da outra Entidade. Exemplo: Um Autor 
pode escrever vários Livros, enquanto que um Livro também pode ser escrito por vários 
 
Autores. A entidade Autor pode ser relacionada com uma ou várias unidades da Entidade 
Livro, assim como a entidade Livro pode se relacionar com uma ou várias unidades da 
Entidade Autor, [Autor] 1,n-----------1,n [Livro]. Desta forma, um objeto do tipo Autor 
pode se relacionar com um ou muitos objetos do tipo Livro e vice-versa, conforme Figura 
2. 
 
Figura 02 - Tipo de relacionamento Muitos-para-Muitos (*-*) em banco de dados 
 
Figura 2 – Tipo de relacionamento Um-para-Um (1-1) em banco de dados 
Fonte: O autor, 2020. 
 
 
 
 
 
 
 
Figura 3 – Tipo de relacionamento Um-para-Muitos (1-*) em banco de dados 
Fonte: O autor, 2020. 
 
 
 
 
 
 
 
 Fonte: O autor, 2020. 
 
 
 
3 CAMPOS DE ESTUDO DO ATRIBUTOS 
Imagem do Tópico: 762698440 
 
3. 1 Atributos 
 
 Os Atributos podem ser descritos como as características de um Entidade, que 
esteja inserido dentro de um Domínio. 
 Durante o período de levantamento de dados na Análise de Requisitos, são 
identificados Entidades, Atributos e Relacionamentos que farão parte de um sistema, 
como por exemplo, em uma entidade Pessoa haverá os atributos característicos e que 
sejam relevantes ao sistema, como: nome, e-mail e celular. 
 É importante ressaltar que cada tipo e aplicação de sistema possui suas 
características próprias a qual irão definir seus tipos de atributos que serão armazenados 
no banco de dados. Para um sistema comercial, os atributos mencionados anteriormente 
(nome, e-mail e celular), são fundamentais para um sistema aplicado a um comércio de 
ao varejo. Logo, características físicas do cliente, como: sexo, altura, peso, cor dos olhos 
e tipo sanguíneo, são aplicáveis a um sistema votado a uma clínica médica. 
 A classificação dos atributos por função, divide-se em três níveis: descritivo, 
nominativo e referencial. 
● Descritivo: descreve características específicas de uma determinada 
entidade, como o nome ou etnia; 
● Nominativo: além de absorver as características descritivas, possui o papel 
de identificar e delinear um objeto, como o código, nome, etnia, data de nascimento, 
endereço; 
● Referencial: corresponde a ligação ocorrida entre as entidades em um 
relacionamento. Em uma entidade Venda o atributo “cpf”, está relacionado com o atributo 
“cpf” na entidade Pessoa. 
 
 Os atributos podem ser classificados pela sua estrutura, assim como: simples ou 
composto. 
 
● Simples: com um único atributo, é possível descrever um características de 
uma entidade, como o nome e peso; 
● Composto: para definir uma informação complexa de um entidade, são 
utilizados vários atributos, assim como um endereço residencial, que pode ser 
armazenado em atributos distintos, como a rua, o número, o bairro, o cep, a cidade, o 
estado e o país. 
 Atributos específicos em uma entidade recebem a denominação de Chave 
Primária, que possuem o papel de representar um valor único ao identificar uma entidade 
dentro de um domínio, como por exemplo o atributo “cpf” de uma pessoa. 
 Assim como um atributo referencial recebe a denominação de Chave Estrangeira, 
o qual normalmente está interligado a chave primária de uma outra entidade que esteja 
relacionada. 
 
3. 2 Tipos de Atributos 
 
 Como em qualquer linguagem de programação, a linguagem de manipulação 
Structured Query Language/Linguagem de Consulta Estruturada (SQL) também tem 
seus tipos próprios de atributos (dados). 
 O banco de dados MySQL possui capacidade de armazenamento de tipos 
distintos de atributos, que estão subdivididos em: numérico, data e carácter. 
 O Quadro 1 descreve os principais tipos de atributos armazenados no banco de 
dados MySQL, assim como os campos, tamanhos de armazenamento e exemplo. 
 
 
Quadro 01 - Tipos de dados armazenados no banco de dados MySQL 
TIPO CAMPO ARMAZENAMENTO EXEMPLO 
Numérico 
smallint 2 bytes 1 
int 4 bytes 1 
bigint 8 bytes 1 
float 4 bytes 1.0 
double 8 bytes 1.0 
real 8 bytes 1.0 
decimal(m,d) 
M+2 btes se D>0, 
M+1 byte se D=0 
1.05 
Data 
date 3 bytes 2018-07-16 
datetime 8 bytes 2018-07-16 09:37:12 
timestamp 4 bytes 
2018-07-16 09:37:12 (utc) 
“fuso horário” 
Caractere 
char(n) n bytes 'a' 
varchar(n) n+1 bytes “Mauro Pedreira” 
 
Fonte: O autor, 2020. 
 
 Os operadores dos tipos aritméticos, relacional e lógico, são utilizados na 
linguagem SQL para realização de tarefas, como: somar ou substituir valores 
(aritméticos), realizar a comparação entre valores fixos ou variáveis (relacional) e a 
tomada de decisão (lógico). 
 Estes diferentes tipos de operadores garantem uma filtragem na busca (query) 
dos dados armazenados no banco de dados MySQL, podendo transformar estes dados 
brutos em informações relevantes, conforme o Quadro 2. 
 
 
Quadro 2: Operadores utilizados pelo banco de dados MySQL. 
OPERADOR TIPO 
+ soma 
Aritmético 
- subtração 
* produto 
/ divisão 
= igual 
Relacional 
> maior 
< menor 
>= maior igual 
<= menor igual 
<> diferente 
AND e 
Lógico OR ou 
NOT não 
 
Fonte: O autor, 2020. 
 
 
 
 
 
 
 
 
 
4 DOMÍNIO E CHAVE ESTRANGEIRA 
Imagem do Tópico: 390313318 
 
4. 1 Domínio 
 
 O Domínio em um banco de dados refere-se ao conjunto de possíveis valores que 
podem ser armazenados a um atributo, obedecendo os critérios do tipo desse atributo.Os tipos de atributos mais comuns para a atribuição e armazenamento de 
domínios (valores), conforme Figura 3, são: 
● Integer ou int: números inteiros – exemplo: 15; 
● Decimal: números com casas decimais – exemplo: 1564.35; 
● Varchar: alfanuméricos letras, número e caracteres especiais – exemplo: 
az-AZ-09-”!@#$%*()_+. 
● 
 É importante ressaltar que existem alguns critérios que devem ser aplicados aos 
tipos de atributos: 
● Atributo Atômico: são formados por campo únicos e não divisíveis – 
exemplo: altura, peso, quantidade; 
● Atributo Composto: possibilita a decomposição de um atributo em vários – 
exemplo: nome, nome_meio, sobrenome; 
● Atributo Identificador: possui um valor único e possibilita a identificação de 
um registro dentro de uma entidade – exemplo: id_pessoa; 
● Atributo candidato: em uma chave composta por três atributos, um deles 
será a chave primária e os demais recebem a nomenclatura de chave candidata – 
exemplo: cpf(PK), nome, email; 
● Atributo de Chave Estrangeira: faz referência e recebe o mesmo valor que 
o atributo de chave primária em outra entidade – exemplo: Pessoa.id_pessoa=123456 
(PK) 1-------n Livro.id_pessoa=123456 (FK). 
 
Figura 03 - Possíveis valores que foram o domínio em 
um banco de dados 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Fonte: O autor, 2020. 
 
4. 2 Chave Estrangeira (Foreign Key) 
 
 O conceito de chave estrangeira se refere a um conjunto de atributos que 
compõem um relacionamento entre as Entidades. Sendo que o mesmo domínio 
(conteúdo do atributo/dado) do atributo identificado na relação como chave primária na 
primeira Entidade, será obrigatoriamente atribuído e armazenado na segunda Entidade 
em um atributo denominado como chave estrangeira. 
 A checagem das referências entre a chave primária da primeira Entidade com a 
chave estrangeira da segunda Entidade se dá através da comparação entre ambos os 
domínios/dados, conforme Figura 4. 
 
 
Figura 04 - Diagrama de classe Estado-Cidade demonstrando o 
relacionamento com chave estrangeira (FK) 
 
 
 
 
 
 
 
Fonte: O autor, 2020. 
 
 A Figura 4, ilustra o diagrama de classe entre as entidades Estado e Cidade, onde 
a cardinalidade indica um relacionamento Um-para-Muitos (1-*), sendo que “um Estado 
possui muitas Cidades”. 
 No Quadro 3, houve o preenchimento dos domínios (dados) das entidades Estado 
e Cidade para melhor descrever quais os atributos em ambas as Entidades são 
responsáveis pelo relacionamento e a comparação dos domínios/dados. A entidade 
Estado possui o atributo “id_estado” a qual é a Chave Primária (PK). Na entidade Cidade 
o atributo “id_cidade” representa a Chave Primária (PK) e o atributo “cid_id_estado” 
representa a Chave Secundária (FK) da relação Um-para-Muitos (1-*). 
 
Quadro 3: Preenchimento da Entidades Estado-Cidade com seus respectivos 
domínios(dados) 
Estado Cidade 
id_estado 
(PK) 
estado sigla 
id_cidade 
(PK) 
cidade abreviacao 
cid_id_estado 
(FK) 
001 Paraná PR 126 Paranavaí Pvaí 001 
002 Santa Catarina SC 438 Chapecó Chape 002 
003 Rio Grande do Sul RS 785 Bento Gonçalves Bento 003 
 237 Maringá Mgá 001 
 344 Londrina Ldna 001 
 
Fonte: O autor, 2020. 
 
SAIBA MAIS 
 
 
Quais são os principais bancos de dados e suas diferenças? 
 
Antes de explicar os tipos de bancos de dados disponíveis, é necessário definir 
suas duas categorias: banco de dados relacionais e não relacionais. 
Bancos de dados relacionais são fundamentados no paradigma da orientação a 
conjuntos. Seus dados são armazenados em estruturas denominadas tabelas. Cada 
tabela é composta por colunas (atributos e linhas), tuplas ou registros. 
 
Fonte: OPSERVICES. Gerenciamento de TI e Dashboards em tempo real. Disponível em: 
https://www.opservices.com.br/banco-de-dados/. Acesso em: 16 abr. 2020. 
 
ORACLE Brasil. Banco de dados. Disponível em: https://www.oracle.com/br/database/what-is-
database.htm. Acesso em: 23 Mar. 2020. 
 
#SAIBA MAIS# 
 
 
REFLITA 
 
"O que a nova tecnologia faz é criar novas oportunidades para fazer um trabalho 
que os clientes querem feito." 
Tim O’Reilly. 
 
 
Fonte: EUNERD. 15 frases para o dia do profissional de TI. Disponível em: 
https://encontreumnerd.com.br/blog/dia-do-profissional-ti. Acesso em: 16 abr. 2020. 
 
KORTH, Henry F. Sistema de banco de dados. São Paulo: Markon, 1995. 
 
#REFLITA # 
 
 
 
 
 
CONSIDERAÇÕES FINAIS 
 
 Os estudos abordados nesta Unidade II descreveram os principais conceitos 
sobre o modelo de banco de dados relacional, assim como uma visão abstrata do 
levantamento de requisitos, aos quais são utilizados para a construção da estrutura 
interna do banco de dados, com nomenclaturas semelhantes aos requisitos levantados, 
dando nomes às entidades e atributos. 
 Da mesma forma como existem diversos tipos de dados diferentes, também 
existem tipos de dados específicos para armazenar estes dados. 
 Para que seja possível transformar dados brutos em informações relevantes, é 
necessário que haja um relacionamento entre as entidades e atributos, através das 
chaves primárias e estrangeiras. 
 
 
 
 
LEITURA COMPLEMENTAR 
 
A Tecnologia de Mineração de Textos 
Christian Aranha, Emmanuel Passos 
 
Resumo 
Mineração de textos, também conhecido como mineração de dados textuais ou 
descoberta de conhecimento de bases de dados textuais, em geral, se refere ao 
processo de extração de informações de interesse e padrões não-triviais ou descoberta 
de conhecimento em documentos de texto não-estruturados. Pode ser visto como uma 
extensão da mineração de dados ou da descoberta de conhecimento em bases de dados 
estruturadas. Como muitas informações (mais de 80%) estão armazenadas em formato 
texto, acredita-se que as técnicas de mineração de textos possuam um grande valor 
comercial. O objetivo deste tutorial é apresentar algumas técnicas de mineração de 
textos, bem como casos de uso e resultados obtidos 
 
Palavras-chave: Mineração de textos; Sistemas de Informação Inteligentes; Mineração 
de dados. 
 
Fonte: ARANHA, Christian; PASSOS, Emmanuel. A tecnologia de mineração de textos. Revista 
Eletrônica de Sistemas de Informação. ISSN: 1677-3071. v.5, n.2, 2006. Disponível em: 
http://periodicosibepes.org.br/index.php/reinfo/article/view/171. Acesso em: 15 abr. 2021. 
 
 
 
 
 
 
 
 
 
 
 
LIVRO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
• Título: Acessando Banco de dados com APP Inventor 
• Autor: Vitor Amadeu Souza. 
• Editora. Cerne. 
• Sinopse: O intuito desta obra é apresentar como acessar um banco de dados interno 
(no aparelho) e externo (na internet) programando o smartphone/tablet Android usando 
o MIT App Inventor. Desta forma, será desenvolvido um aplicativo que permitirá salvar 
e resgatar informações nestas duas modalidades de banco de dados (BD). 
 
 
 
 
FILME/VÍDEO 
 
 
 
 
 
 
 
 
 
 
 
• Título: Invasores: Nenhum Sistema Está a Salvo 
• Ano: 2015. 
• Sinopse: Benjamin (Tom Schilling) gênio da informática é uma pessoa solitária. Sua 
vida se resume ao mundo virtual, onde pode ser quem desejar. Logo, ele se junta a um 
grupo de hackers em Berlim que provocam atividades divertidas em busca de fama e 
reconhecimento de outros hackers. Mas o que começa como um jogo, acaba se 
intensificando a algo perigoso entre o amor e a morte. 
Link: https://www.youtube.com/watch?v=k97MWnFD-7g 
 
 
 
 
 
 
 
REFERÊNCIAS 
 
ALVES, William Pereira. Banco de dados. São Paulo: Érica, 2014. Minha Biblioteca. 
https://integrada.minhabiblioteca.com.br/#/books/9788536518961/. VBID: 
9788536518961. 
 
ARANHA, Christian; PASSOS, Emmanuel. A Tecnologia de Mineração de Textos. RESI 
- Revista Eletrônica de Sistemas de Informação. DOI: 
https://doi.org/10.21529/RESI.2006.0502001 n.2, 2006. Disponível em: 
http://periodicosibepes.org.br/index.php/reinfo/article/view/171. Acesso em: 16 abr. 
2020. 
 
ATZENI, Paolo; CERI,STEFANO; Paraboschi. Database Systems: concepts, 
languages & architectures. São Paulo: McGraw Hill, p.349-90, 2000. 
 
BARBOZA, Fabrício Felipe Meleto; FREITAS, Pedro Henrique Chagas. Modelagem e 
desenvolvimento de banco de dados. Porto Alegre-RS: Sagah, 2018. Minha 
Biblioteca. https://integrada.minhabiblioteca.com.br/books/9788595025172. VBID: 
9788595025172. 
 
EUNERD. 15 frases para o dia do profissional de TI. Disponível em: 
https://encontreumnerd.com.br/blog/dia-do-profissional-ti. Acesso em: 16 abr. 2020. 
 
KORTH, Henry F. Sistema de banco de dados. São Paulo: Markon, 1995. 
 
MACHADO, Felipe Nery Rodrigues. Banco de Dados: Projeto e Implementação. 3.ed. 
São Paulo: Érica, 2014. Minha Biblioteca. 
https://integrada.minhabiblioteca.com.br/books/9788536518978. VBID: 
9788536518978. 
 
OPSERVICES. Gerenciamento de TI e Dashboards em tempo real. Disponível em: 
https://www.opservices.com.br/banco-de-dados/. Acesso em: 16 abr. 2020. 
 
ORACLE Brasil. Banco de dados. Disponível em: 
https://www.oracle.com/br/database/what-is-database.html. Acesso em: 23 Mar. 2020. 
 
PIMENTEL, Fabricio. Integridade de dados: Parte 01. Disponível em: 
https://www.devmedia.com.br/integridade-de-dados-parte-01/8831. Acesso em: 25 mar. 
2020. 
 
RAMAKRISHNAN, Raghu; GEHRKE, Johannes. Sistemas de gerenciamento de 
banco de dados. 3.ed. Porto Alegre-RS: AMGH, 2011. Minha Biblioteca: 
https://integrada.minhabiblioteca.com.br/books/9788563308771. VBID: 
9788563308771. 
 
SCUDERO, Erick. TOP 10 principais SGBDs do mercado global! Disponível em: 
 
https://becode.com.br/principais-sgbds/. Acesso em: 22 mar. 2020. 
 
SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de Banco de Dados. 
Editora Pearson. Terceira Edição, 2010. 
 
UNIDADE III 
SQL BÁSICO 
Prof. Dr. Hudson Sérgio de Souza 
 
 
Plano de Estudo: 
• Conceitos e Definições de SQL; 
• Linguagens DDL e DCL; 
• Restrições SQL; 
• Chave Estrangeira e Check. 
 
 
Objetivos de Aprendizagem: 
• Conceituar e contextualizar o SQL; 
• Compreender os tipos de restrições; 
• Estabelecer a importância dos comandos básicos SQL. 
 
 
INTRODUÇÃO 
 
 Na Unidade III será abordado tanto os conceitos, quanto às práticas dos 
comandos MySQL utilizados nos conceitos e definições do SQL, nas restrições 
implementadas sobre o SQL, na realização de consultas básicas junto do banco de 
dados MySQL, assim como os principais comando para realização do CRUD (Create, 
Read, Update e Delete) os quais são utilizados inserir dados ao banco de dados MySQL, 
realizar consultas, alterar os conteúdos do dados armazenados e apagar registros 
inteiros armazenados na Entidade do banco de dados MySQL. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1 CONCEITOS E DEFINIÇÕES DE SQL 
Imagem do Tópico: 1361342690 
 
1.1 Linguagem SQL 
 
 A Structured Query Languege/Linguagem de Consulta Estrutura (SQL) é a 
linguagem de acesso e manipulação do SGBD mais utilizada para realizar a gestão dos 
dados armazenados em sua base de dados. Esta linguagem possui características 
padrão de consulta do banco de dados, de criação da estrutura dos dados e para 
modificar os dados armazenados no banco de dados. 
 A linguagem possui comandos específicos para gerenciar a segurança de acesso 
aos dados e das privilégios (permissões) de acesso por parte dos usuários. 
 Através da linguagem SQL é possível: 
● Criar, alterar e remover esquemas lógicos; 
● Realizar a manipulação dos dados armazenados no banco de dados; 
● Possibilita a inserção de novos dados, a alteração ou remoção de dados 
antigos no banco de dados; 
● Definir os privilégios (permissões) de acesso e transação dos usuários aos 
dados contidos no banco de dados. 
 É importante salientar que a linguagem SQL é semelhante a uma linguagem de 
programação tradicional, como Java, PHP, Python, C++, porém foi projetada 
especificamente para realizar a manipulação do banco de dados, conforme Figura 1. 
 
 
Figura 01 - Linguagem de 
manipulação SQL 
 
 
 
 
 
 
 
 
 
 
 
 
Fonte: O autor, 2020. 
 
 A linguagem SQL possui alguns subconjuntos da linguagem, dentre as principais 
estão: 
● A DML que manipula os registros, exemplo select; 
● A DDL que manipula os objetos, exemplo create table; 
● A DCL que manipula os utilizadores, exemplo revoke. 
 
1. 2 Linguagem DML 
 
 A Data Manipulation Language/Linguagem de Manipulação de Dados (DML) trata-
se de um subconjunto da Linguagem SQL, que realiza as funções de inserir, atualizar, 
consultar e deletar os dados contidos no banco de dados. 
 Caso a linguagem DML seja utilizada de forma independente, ela passará a se 
chamar de Query Language/Linguagem Consulta junto com a Linguagem SQL. 
 Os principais comandos da Linguagem DML são: 
● SELECT: realiza uma consulta “query” ao banco de dados, possibilitando 
passar a descrição do resultado esperado; 
 
● UPDATE: altera o valor do conteúdo de um ou mais Registros de uma 
Entidade; 
● DELETE: remove um ou mais Registros de uma Entidade existente; 
● TRUNCATE: remove todos os Registros de uma Entidade, esvaziando-a; 
● COMMIT: efetiva uma transação executada no banco de dados; 
● ROLLBACK: desfaz a transação corrente, fazendo com que as modificações 
sejam desfeitas. 
 
 
 
2 LINGUAGENS DDL E DCL 
Imagem do Tópico: 571378933 
 
2.1 Linguagem DDL 
 
 A Data Definition Language/Linguagem de Definição de Dados (DDL) é aplicada 
na definição da estrutura do banco de dados pelos projetistas e analistas de banco de 
dados. 
 O Sistema Gerenciador de Banco de Dados (SGBD) possui um interpretador 
próprio para a Linguagem DDL, que se responsabiliza pela execução dos comandos, 
pelo processamento da DDL e por guardar o esquema determinado na estrutura interna 
do banco de dados. 
 Estando os dados devidamente armazenados no banco de dados, esses dados 
estão disponíveis para serem manipulados através de uma série de operações de acesso 
a estes dados. 
 A linguagem DDL dispõe de comandos para realizar a alteração das tabelas, as 
visões e os índices das tabelas. 
 Os principais comandos da linguagem DDL são: 
● CREATE: cria uma Entidade (objeto) dentro de um banco de dados; 
● ALTER: permite alterar a estrutura de uma Entidade (objeto); 
● DROP: apaga uma Entidade (objeto) de dentro de um banco de dados 
existente. 
 
2. 2 Linguagem DCL 
 
 A Data Control Language/Linguagem de Controle de Dados (DCL) realiza o 
controle do acesso e das transações dos dados que se encontram armazenados no 
banco de dados. Gerencia os diferentes níveis de acesso, através das restrições de 
acesso aos usuários. 
 Os principais comandos da linguagem DCL são: 
● GRANT: realiza a gestão de privilégios a um usuário para acessar ou realizar 
operações em um determinado Banco, Entidade ou Atributo; 
 
● REVOKE: remove os privilégios de um usuário de executar operações; 
● SET: parâmetros definidos em tempo de execução, para execução de uma 
tarefa; 
● LOCK: bloqueia explicitamente o acesso a uma determinada Entidade, 
através de controle de acesso concorrente. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3 RESTRIÇÕES SQL 
Imagem do Tópico: 790723873 
 
 Neste módulo será abordado a forma de manipulação das restrições às Entidades 
através dos comandos SQL, onde as principais restrições são: 
● Chave primária; 
● Unique; 
● Chave estrangeira; 
● Check; 
● Not null. 
 
 A aplicação das restrições pode ser recomendado para manter a integridade 
referencial das Entidades dentro de um Banco de Dados. 
 As restrições podem ser aplicadas diretamente sobre as Entidades e Tuplas 
através da linguagem SQL, permitindo um maior controle sobre os dados armazenados 
na Entidade. 
 A limitação dos dados brutos armazenados por tipos de dados, por si só já são 
um tipo de restrição, embora não possuam um refinamento adequado para atenderas 
necessidades de softwares mais aprimorados. Por exemplo, o valor de um produto deve 
ser armazenado com as casas decimais do valor, o tipo de dado Decimal “vlr_produto 
decimal(15,2);” é apropriado para isso, no entanto não consegue restringir que todos 
dados armazenados sejam positivos. 
 Para estes casos de ajustes específicos, a linguagem SQL possibilita delimitar 
restrições na Tuplas (coluna) afetando somente o dados a ser armazenado, caso o 
usuário insira um valor não apropriado a uma Tupla violando a regra de uma restrição 
específica, imediatamente será gerado um erro e o dado não será armazenado. É 
importante conhecer as regras de restrição, devido a elas se aplicam até mesmo a 
valores padrão dos Atributos. 
 
 
 
 
Chave Primária 
 
 A chave primária é empregada para identificar de maneira única cada Registro de 
uma Entidade, normalmente fazendo parte do Registro atual ou um atributo artificial que 
não esteja no mesmo registro. 
 A chave primária deve conter valor único, não pode haver valores nulos. Esta 
chave pode ser composta por um ou mais Atributos da Entidade. Chave Composta é a 
denominação dada ao se utilizar vários Atributos como chave primária. 
 A definição da chave primária pode ser feita no momento de criação da Entidade, 
com a utilização do comando CREATE TABLE, ou após criada a Entidade, alterando a 
Entidade através do comando ALTER TABLE. 
 Exemplo de atribuição da chave primária durante a criação da Entidade: 
 
CREATE TABLE pessoa ( 
 id_pessoa int(11) primary key, 
 nome varchar(255) 
); 
 
 Exemplo de atribuição da chave primária após a criação da Entidade, por meio de 
alteração da entidade: 
 
ALTER TABLE pessoa ADD PRIMARY KEY (id_pessoa); 
 
 A descrição da tabela “pessoa” pode ser visualizada através do comando: 
 
describe pessoa; 
+-----------+--------------+------+-----+---------+-------+ 
| Field | Type | Null | Key | Default | Extra | 
+-----------+--------------+------+-----+---------+-------+ 
| id_pessoa | int(11) | NO | PRI | NULL | | 
| nome | varchar(255) | YES | | NULL | | 
+-----------+--------------+------+-----+---------+-------+ 
2 rows in set (0.00 sec) 
 
 
Unique 
 
 A restrição do tipo UNIQUE assegura que todos os dados contidos em um Atributo 
sejam diferentes uns dos outros. 
 Na entidade “Carro”, o atributo “id_carro” possui um restrição que não permite 
incluir dados duplicados, ou seja, com o mesmo valor. Desta forma, ao forçar a inserção 
de um dado repetido neste atributo, irá gerar um ERRO, uma vez que já existe o mesmo 
valor do dados no atributo “id_carro”. 
 Criando a Entidade “Carro”. 
 
CREATE TABLE carro ( 
 id_carro int(11) UNIQUE, 
 modelo varchar(255), 
 ano int(11) 
); 
 
describe carro; 
+----------+--------------+------+-----+---------+-------+ 
| Field | Type | Null | Key | Default | Extra | 
+----------+--------------+------+-----+---------+-------+ 
| id_carro | int(11) | YES | UNI | NULL | | 
| modelo | varchar(255) | YES | | NULL | | 
| ano | int(11) | YES | | NULL | | 
+----------+--------------+------+-----+---------+-------+ 
 
 
 A primeira vez que o dado seja inserido, será armazenado com sucesso. 
 
INSERT INTO carro 
(id_carro, modelo, ano) 
VALUES 
(1, 'Civic', 2017), 
(2, 'Opala', 1985), 
(3, 'Mercedes', 2020) 
; 
 
 Listando os dados armazenados. 
 
select * from carro; 
+----------+----------+------+ 
| id_carro | modelo | ano | 
+----------+----------+------+ 
 
| 1 | Civic | 2017 | 
| 2 | Opala | 1985 | 
| 3 | Mercedes | 2020 | 
+----------+----------+------+ 
 
 Já na segunda que se tentar inserir o mesmo valor do dado, irá gerar um erro e o 
dados não será armazenado. 
 
INSERT INTO carro 
(id_carro, modelo, ano) 
VALUES 
(1, 'Kombi', 1953); 
 
 Mensagem de ERRO ao tentar inserir um número já existente no Atributo 
“id_carro”: 
 
INSERT INTO carro 
 -> (id_carro, modelo, ano) 
 -> VALUES 
 -> (1, 'Kombi', 1953); 
 
ERROR 1062 (23000): Duplicate entry '1' for key 'id_carro' 
 
 
 
 
4 CHAVE ESTRANGEIRA E CHECK 
Imagem do Tópico: 598806239 
 
Chave Estrangeira 
 
 A função de uma Foreign Key/Chave Estrangeira entre o relacionamento de duas 
ou mais Entidades é de apontar o mesmo conteúdo de um Atributo de uma Chave 
Primária de uma Entidade “A”, em um Atributo de mesma tipagem em uma Entidade “B”. 
 Para melhor compreensão, suponha-se duas Entidade denominadas “Estado” e 
“Município”, simultaneamente, em um relacionamento com cardinalidades de Um para 
Muitos (1-*), onde: Um Estado possui Muitos Municípios. 
 
 
 
 
 
 
 
 
### Entidade: tb_estado 
CREATE TABLE tb_estado ( 
 id_estado int(11) not null primary key auto_increment, 
 estado varchar(150), 
 sigla varchar(2) 
); 
 
 
### Entidade: tb_cidade 
CREATE TABLE tb_cidade ( 
 id_cidade int(11) not null primary key auto_increment, 
 cidade varchar(255), 
 avreviacao varchar(30), 
 cid_id_estado int(11), 
 foreign key (cid_id_estado) references tb_estado (id_estado) 
); 
 
 
 
Check 
 
 
 Uma restrição do tipo CHECK possibilita a realização de uma condição prévia a 
ser validada em operações dos tipos INSERT e UPDATE. 
 Uma vez que o resultado da transação for validado como TRUE (verdadeiro) a 
operação será concluída com sucesso. Caso o resultado da transação seja validado 
como FALSE (falso) a operação será concluída, retornando uma mensagem de erro. 
 Para exemplificar será utilizado um semáforo onde serão validados três cores: 
vermelho, amarelo e verde. Caso sua inserção não seja exatamente uma destas três 
cores, a transação de inserção falhará. 
 Criação da Entidade: 
 
CREATE TABLE tb_semaforo ( 
 id_semaforo int(11) not null primary key auto_increment, 
 cruzamento varchar(255), 
 cor varchar(10), 
 CONSTRAINT ck_semafaro CHECK (cor IN('vermelho', 'amarelo', 'verde')) 
); 
 
 Observe que não há nenhuma descrição da CONSTRAINT na descrição da 
Entidade. 
 
mysql> describe tb_semaforo; 
+-------------+--------------+------+-----+---------+----------------+ 
| Field | Type | Null | Key | Default | Extra | 
+-------------+--------------+------+-----+---------+----------------+ 
| id_semaforo | int(11) | NO | PRI | NULL | auto_increment | 
| cruzamento | varchar(255) | YES | | NULL | | 
| cor | varchar(10) | YES | | NULL | | 
+-------------+--------------+------+-----+---------+----------------+ 
3 rows in set (0.01 sec) 
 
 Inserindo os valores dos dados corretos na Entidade. 
 
mysql> INSERT INTO tb_semaforo 
(id_semaforo, cruzamento, cor) 
VALUES 
(NULL, 'Av. Brasil com Rua Paraná', 'amarelo'); 
Query OK, 1 row affected (0.04 sec) 
 
 
 Ao inserir um dado incorreto na Entidade com a cor ‘azul’, irá retornar uma 
mensagem de erro. 
 
mysql> INSERT INTO tb_semaforo 
 -> (id_semaforo, cruzamento, cor) 
 -> VALUES 
 -> (NULL, 'Av. Brasil com Rua Paraná', 'azul'); 
 
ERROR 4025 (23000): CONSTRAINT `ck_semafaro` failed for 
`db_prof_hudson`.`tb_semaforo` 
 
 Para confirmar que a transação que obteve falha na CONSTRAINT não inseriu 
nenhum dados na Entidade, será dado o comando de Select (consulta) para demonstrar 
qual registro encontra-se inserido. 
 
mysql> SELECT * FROM tb_semaforo; 
+-------------+----------------------------+---------+ 
| id_semaforo | cruzamento | cor | 
+-------------+----------------------------+---------+ 
| 1 | Av. Brasil com Rua Paraná | amarelo | 
+-------------+----------------------------+---------+ 
1 row in set (0.02 sec) 
 
Not Null 
 
 A restrição do tipo NOT NULL aplicada a um Atributo (coluna) de uma Entidade, 
assegura que não aceitará a inserção (INSERT) ou alteração (UPDATE) deum dado 
com valor nulo (NULL). 
 
CREATE TABLE tb_profissao ( 
 id_profissao int(11) not null primary key auto_increment, 
 nome varchar(255) not null, 
 profissao varchar(150) 
); 
 
 
Descrição da Entidade 'tb_profissao'. 
 
 
mysql> describe tb_profissao; 
 
+--------------+--------------+------+-----+---------+----------------+ 
| Field | Type | Null | Key | Default | Extra | 
+--------------+--------------+------+-----+---------+----------------+ 
| id_profissao | int(11) | NO | PRI | NULL | auto_increment | 
| nome | varchar(255) | NO | | NULL | | 
| profissao | varchar(150) | YES | | NULL | | 
+--------------+--------------+------+-----+---------+----------------+ 
3 rows in set (0.01 sec) 
 
 Inserindo dados corretos, observe que o segundo registro será inserido e aceito o 
campo vazio. 
 
mysql> INSERT INTO tb_profissao 
 -> (id_profissao, nome, profissao) 
 -> VALUES 
 -> (NULL, 'Mauro', 'Cozinheiro'); 
Query OK, 1 row affected (0.07 sec) 
 
mysql> INSERT INTO tb_profissao 
 -> (id_profissao, nome, profissao) 
 -> VALUES 
 -> (NULL, '', 'Motorista'); 
Query OK, 1 row affected (0.05 sec) 
 
 Tentativa de inserção de dados com o Atributo ‘nome’ nulo, seguido da mensagem 
de erro de que o campo “nome” não pode ser nulo. 
 
mysql> INSERT INTO tb_profissao 
 -> (id_profissao, nome, profissao) 
 -> VALUES 
 -> (NULL, NULL, 'Padeiro'); 
ERROR 1048 (23000): Column 'nome' cannot be null 
 
 Listando o conteúdo da Entidade. 
 
mysql> SELECT * FROM tb_profissao; 
+--------------+-------+------------+ 
| id_profissao | nome | profissao | 
+--------------+-------+------------+ 
| 1 | Mauro | Cozinheiro | 
| 2 | | Motorista | 
+--------------+-------+------------+ 
2 rows in set (0.01 sec) 
 
 Com isso, é possível afirmar que o comando NOT NULL atribuído a um Atributo 
 
durante a criação de uma Entidade, permite que o Registro seja inserido com sucesso 
uma vez que haja conteúdo no Campo identificado como NOT NULL ou que este campo 
esteja vazio. Porém não sendo possível a inserção de um Registro que possui um campo 
NULL (nulo) desde que o Atributo tenha sido atribuído NOT NULL. 
 
 
SAIBA MAIS 
 
Diferentes tipos: Categorias de instruções (Transact-SQL) 
Data Manipulation Language (DML) 
Data Definition Language (DDL) 
Data Control Language (DCL) 
Transactional Control Language (TCL) 
 
Fonte: ROSSITO, Thomaz. Comandos: DML, DDL, DCL, TCL – SQL Server. Set. 2017. Disponível em: 
http://www.thomazrossito.com.br/comandos-dml-ddl-dcl-tcl-sql-server/. Acesso em: 18 set. 2020. 
 
#SAIBA MAIS# 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
REFLITA 
 
"Quando uma nova tecnologia passa por você, se você não faz parte dela, fará 
parte do caminho." 
 
Stewart Brand. 
 
Fonte: TUTIDA, Daniel. 15 frases para o dia do profissional de TI. Disponível em: 
https://encontreumnerd.com.br/blog/dia-do-profissional-ti. Acesso em: 18 set. 2020. 
 
#REFLITA # 
 
 
 
 
CONSIDERAÇÕES FINAIS 
 
 Ao final deste módulo foi possível evidenciar os principais conceitos e definições 
em torno do SQL, assim como as restrições que envolvem as chaves primárias e 
estrangeiras das Entidades, sua prerrogativas de definição automáticas de valor de 
chaves, o que garante a exclusividade de uma única chave que não se repete dentro da 
mesmo entidade. 
 Para isso foram apresentados os principais conceitos da chave primária, unique, 
chave secundária, check e not null. 
 Uma das principais funções do banco de dados é proporcionar ações de 
manipulação aos elementos armazenados ao banco de dados MySQL, assim como o 
CRUD (Create, Read, Update e Delete), utilizado para inserir dados ao banco de dados, 
realizar consultas, alterar os conteúdos do dados armazenados e deletar registros da 
Entidade que encontra-se armazenada no banco de dados MySQL. 
 
LEITURA COMPLEMENTAR 
 
Neste Guia Completo de SQL você encontrará todo o conteúdo que precisa para 
aprender sobre a SQL, linguagem de consulta estruturada utilizada por programadores 
e DBAs para a execução de consultas e comandos nos principais SGBDs do mercado. 
 
Fonte: DEVMedia. Guia Completo de SQL. Disponível em: https://www.devmedia.com.br/guia/guia-
completo-de-sql/38314. Acesso em: 18 set. 2020. 
 
 
 
 
 
 
 
 
LIVRO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
• Título: Aprendendo SQL: Dominando os Fundamentos de SQL 
• Autor: Alan Beaulieu. 
• Editora: Novatec. 
• Sinopse: Atualizado para os mais recentes sistemas de gerenciamento de banco de 
dados – incluindo MySQL 5.1, Oracle 11g e Microsoft SQL Server 2008 – este guia 
introdutório irá habilitar você a trabalhar com SQL rapidamente. Independentemente de 
precisar escrever aplicações de banco de dados, realizar tarefas administrativas ou gerar 
relatórios, Aprendendo SQL auxiliará você a dominar todos os fundamentos de SQL. 
 
 
 
 
 
FILME/VÍDEO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
• Título: A Rede Social 
• Ano: 2010. 
• Sinopse: O filme retrata a "pré-história" da maior e mais poderosa rede social do 
mundo: o Facebook. Tudo começa quando o jovem Mark Zuckerberg cria um site para 
facilitar a comunicação entre os estudantes de Harvard. Por que assistir? Criado em 
2003, o Facebook mudou para sempre a internet. De acordo com Velasco, o filme tem o 
mérito de mostrar ao estudante de tecnologia que, quando se pretende empreender na 
área, a capacidade de transformação e reinvenção faz toda a diferença. "The social 
network". 
Link: https://www.youtube.com/watch?v=YNrbyRA5d14 
 
 
 
 
 
 
 
WEB 
 
O Que É MySQL? Guia Para Iniciantes. 
 
Fonte: HOSTINGER Tutoriais. O Que É MySQL? Guia Para Iniciantes. 21 jan. 2019. Disponível em: 
https://www.hostinger.com.br/tutoriais/o-que-e-mysql/. Acesso em: 05 out. 2020. 
 
 
 
 
REFERÊNCIAS 
 
ALVES, William Pereira. Banco de Dados. São Paulo: Érica, 2014. [Minha Biblioteca]. 
Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9788536518961/cfi/0!/4/2@100:0.00. 
Acesso em: 5 out. 2020. 
 
DEVMedia. Guia Completo de SQL. Disponível em: 
https://www.devmedia.com.br/guia/guia-completo-de-sql/38314. Acesso em: 18 set. 
2020. 
 
HOSTINGER. Hostinger tutoriais. O Que É MySQL? Guia Para Iniciantes. 21 jan. 
2019. Disponível em: https://www.hostinger.com.br/tutoriais/o-que-e-mysql/. Acesso 
em: 5 out. 2020. 
 
MACHADO, Felipe Nery Rodrigues. Banco de dados: Projeto e implementação. 4.ed. 
São Paulo: Érica, 2020. [Minha Biblioteca]. Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9788536532707/cfi/2!/4/2@100:0.00. 
Acesso em: 5 out. 2020. 
 
ONE, Key Data. SQL Tutorial: Learn SQL Query Language. Disponível em: 
https://www.1keydata.com/sql/sql.html. Acesso em: 5 out. 2020. 
 
ROSSITO, Thomaz. Comandos: DML, DDL, DCL, TCL – SQL Server. Set. 2017. 
Disponível em: http://www.thomazrossito.com.br/comandos-dml-ddl-dcl-tcl-sql-server/. 
Acesso em: 18 set. 2020. 
 
TUTIDA, Daniel. 15 frases para o dia do profissional de TI. Disponível em: 
https://encontreumnerd.com.br/blog/dia-do-profissional-ti. Acesso em: 18 set. 2020. 
 
W3BAI.COM. SQL tutorial. Disponível em: https://www.w3bai.com/pt/sql/default.html. 
Acesso em: 5 out. 2020 
 
 
 
 
 
 
UNIDADE IV 
MAIS SQL 
Prof. Dr. Hudson Sérgio de Souza 
 
 
Plano de Estudo: 
● Criação do Banco de Dados e Usuários; 
● Acesso ao Banco e Criação de Entidades; 
● CRUD - Manipulação dos Registros; 
● Gerar Consulta de Informações Relevantes. 
 
 
Objetivos de Aprendizagem: 
● Criar de banco e usuários; 
● Analisar e criar Entidades com seus respectivos registros; 
● Conceituar e contextualizar os tipos de consultas. 
 
 
 
 
INTRODUÇÃO 
 
 Nesta última Unidade de número IV, será abordado mais questões sobre os

Continue navegando