Aula 1 - Textos BD
Aula 1 - Textos BD
Sendo assim, a informação, além de ser precisa, deve ser cada vez mais Vejamos alguns deles:
ágil e instantânea. Essa busca pela informação tem ajudado no desenvolvimento • Coleção de dados persistentes usados pelos sistemas de aplicação de
dos chamados sistemas de processamento de informações. determinada empresa;
• Conjunto de dados inter-relacionados representando informações de um
1.1 Dado x informação
domínio específico;
É importante destacar a diferença entre dado e informação, pois no • Sistema que registra e mantém dados baseados em computador;
cotidiano é comum serem utilizados como sinônimos. Porém, quando se trata de • Sistema computadorizado de armazenamento de registros, cujo objetivo
computadores, é importante que tenhamos a diferença bem definida entre esses é armazenar informações e permitir aos usuários buscar e atualizar essas
dois termos. informações quando necessário;
Para exemplificarmos essa diferença de forma simples, vamos imaginar • Todo o conjunto de dados que segue determinado modelo de dados.
uma simples fórmula matemática de adição. Ela é composta por dados que Resumindo, um Banco de Dados (BD) é o local onde são armazenados
serão processados pelo computador. O resultado obtido é a informação. os dados de uma aplicação.
Vejamos: Exemplo de um Banco de Dados: sistema de delivery, em que a empresa
deseja armazenar as informações sobre os clientes, produtos, entregadores,
Figura 1 – Dado x informação
restaurantes, entre outros. Cada um desses elementos serão as entidades
básicas sobre as quais a aplicação de delivery precisará registrar informações.
Fonte: Albano; Albano, 2022. É a representação do Banco de Dados, demonstrando a relação existente
entre os dados.
Perceba que a fórmula apresentada na imagem acima possui três dados:
Os modelos de Banco de Dados são:
dois números e a operação a ser realizada (símbolo da adição).
À medida que os dados são organizados ou agrupados de uma forma • Hierárquico;
significativa, tornam-se uma informação. Portanto, podemos afirmar que a • Rede;
informação é um conjunto de fatos organizados de tal forma que adquirem um • Orientado a objetos;
valor adicional além do valor do dado em si. Dessa forma, devido ao seu grande • Relacional;
valor, necessitam ser armazenadas de forma apropriada, permitindo o rápido • NoSQL ou não-relacional.
acesso e, ao mesmo tempo, garantindo a integridade e segurança desses fatos
organizados. Para isso, existe o Banco de Dados que trataremos logo a seguir. 1.2.1.1 Modelo hierárquico
3 4
de Dados, conhecida como DL/I, desenvolvida pela IBM e a North American definição do comportamento de cada um, cuja manipulação é feita por meio de
Aviation. métodos. Não apresenta a obrigatoriedade referente às limitações quanto aos
Nesse modelo os dados são armazenados em estruturas no formato de tipos de dados característicos de um SGBD e as linguagens de consulta.
árvore. Cada estrutura de dados parte de um nodo raiz (nó) e se ramifica criando
relações pai-filho com outras classes de dados, gerando relações de um para
1.2.1.4 Modelo relacional
muitos elementos.
O Modelo de Dados Relacional (Relational Data Model – RDM) foi criado
A desvantagem está na rigidez da estrutura de dados, em que, no caso
na década de 1970 por um pesquisador da IBM, Dr. Edgar Frank Codd, sendo
de alterações da classe principal ou de classes dependentes, obrigaria que fosse
descrito no artigo “Relational Model of Data for Large Shared Data Banks”. Tal
refeito todo o Banco de Dados.
modelo é, inclusive, considerado o primeiro modelo de dados descrito
1.2.1.2 Modelo de rede teoricamente e tinha por objetivo desenvolver uma representação mais simples
dos dados, por meio de um modelo matemático de conjuntos de tabelas inter-
Também conhecido como Sistema de Banco de Dados em Rede (Network relacionadas.
Database System – NDS), esse modelo surgiu entre as décadas de 1960 e 1970 Esse modelo era bastante inovador, pois deixava de lado todos os
como uma extensão do modelo hierárquico, adicionando recursos para criação conceitos anteriores e apresentava uma visão totalmente nova com estruturas
de mais de uma relação pai-filho e estabelecendo relações entre os seus mais flexíveis, tanto na forma de representação das relações entre os dados
elementos. como também no processo de manutenção da estrutura.
Esse modelo possui a vantagem de uma pesquisa mais rápida e flexível, O Banco de Dados relacional está estruturado em relações (tabelas)
pois não depende de um único nó raiz como vetor de inicialização da pesquisa. relacionadas entre si, relações essas que possuem atributos. Tais conceitos
Apesar disso, o modelo de rede ainda apresenta os problemas relatados no serão estudados em um próximo momento.
modelo anterior no que se refere à relação ao projeto de estrutura do modelo Vale salientar que, nesse estudo, adotaremos o Banco de Dados relacional.
hierárquico. Qualquer alteração feita em uma classe de dados implicaria na
criação de uma nova estrutura para suportar àquela alteração.
1.2.1.5 Modelo NoSQL ou modelo não-relacional
Nesse caso, as relações entre os registros são feitas por meio de
Atualmente, além do modelo de Banco de Dados relacional, existem
ponteiros que armazenam endereços de memória, indicando os endereços em
também os Bancos de Dados denominados NoSQL, que armazenam e
que os dados realmente se encontram armazenados.
manipulam as informações de uma forma diferente, sendo utilizados de forma
O modelo em rede trabalha com registros vinculados uns aos outros,
mais flexível no acesso e manipulação de grandes volumes de dados e em
gerando conjuntos de dados.
situações em que a informação é apresentada de forma não estruturada ou
5 6
simples, qualquer formato de dados. Dessa forma, possibilita-se não só Como objetivos, o SGBD deve:
um desenvolvimento mais rápido, mas também uma melhor performance
• Ocultar dos usuários os detalhes mais técnicos de funcionamento do
no tratamento de volumes muito grandes de requisições, gerando
Banco de Dados, também conhecido como abstração de dados;
respostas mais rápidas;
• Prover independência de dados às aplicações (estrutura física de
• Escalabilidade: são projetados para expandir seus recursos de forma
armazenamento e a estratégia de acesso).
horizontal, isto é, adicionando máquinas comuns (nodes) a estrutura já
Destacamos alguns SGBDs amplamente utilizados: DB2 (IBM), Microsoft
disponível, bem mais baratas que os caros servidores.
SQL Server, Oracle, MySQL, PostgreSQL, entre outros.
Consequentemente, expande-se sua capacidade para suportar o
aumento de tráfego, sua disponibilidade no recebimento de requisições e
2.1 Características de um SGBD
aumenta a performance em tempo de execução e resposta;
• Alta performance: focado na otimização de modelos de dados e padrões Um SGBD deve ter algumas características que são essenciais para o seu
de acesso, gerando maior performance em comparação a outros modelos funcionamento, tais como:
de dados.
• Controle de redundância: consiste no armazenamento de uma mesma
No NoSQL existem quatro tipos principais de modelos de dados: chave- informação em locais diferentes, provocando duplicidade e possíveis
valor, documento, gráfico e família de colunas. inconsistências. Em um Banco de Dados, as informações encontram-se
Vale salientar que existem situações em que sua aplicação não é armazenadas em um único local, não existindo duplicação dos dados;
considerada a mais adequada e, dessa forma, o Banco de Dados relacional é a • Compartilhamento dos dados e concorrência: o SGBD deve incluir o
melhor alternativa. controle de concorrência no acesso aos dados, possibilitando o
compartilhamento dos dados e garantindo que, se vários usuários
TEMA 2 – SISTEMA GERENCIADOR DE BANCO DE DADOS (SGBD) E
realizarem operações de atualização sobre um mesmo conjunto de
APLICAÇÕES DE BANCO DE DADOS dados, o resultado dessas operações será correto;
• Controle de acesso: o SGDB deve disponibilizar recursos para o
Entre os dados armazenados fisicamente no disco rígido e os usuários do
gerenciamento de acesso dos usuários, definindo permissões, como, por
sistema, que manipulam esses dados, existe uma camada de software
exemplo, um usuário poderá ter acesso total, enquanto outro usuário terá
conhecida como Sistema Gerenciador de Banco de Dados (SGBD).
apenas acesso de leitura de dados;
O Sistema Gerenciador de Bancos de Dados é a interface entre os dados
• Controle de transações: uma transação é um conjunto de operações
de baixo nível, armazenados em um Banco de Dados, e os usuários e as
sobre o Banco de Dados que devem ser executadas integralmente e sem
aplicações, que desejam acessar e manipular esses dados.
falhas ou interrupções;
O sistema de Banco de Dados é um sistema de manutenção de registros
• Possibilidade de múltiplas interfaces: um SGBD pode ser acessado por
por computador e, para tanto, possui diversos recursos à disposição do usuário,
diversas interfaces diferentes (aplicação WEB, aplicativo mobile, entre
possibilitando a realização de várias operações, como por exemplo:
outros). Logo, o SGBD deve garantir que todos tenham acesso aos dados
• Adição, remoção e atualização de tabelas no Banco de Dados; da mesma forma;
• Inserção de novos dados; • Restrições de integridade: deve garantir que as regras de integridades
• Recuperação, atualização e exclusão de dados. definidas no momento da criação do Banco de Dados sejam aplicadas
7 8
corretamente. Por exemplo, a data de nascimento não pode ser maior que 1. Hardwares: dispositivos em que as informações são armazenadas
a data atual; fisicamente;
• Backup e recuperação de dados: garantir o backup e a restauração de 2. SGBD: software que permite o acesso dos usuários às informações
dados é tarefa essencial para qualquer SGBD, mesmo que as falhas não armazenadas no Banco de Dados;
sejam originadas pelo próprio SGBD, mas sim falhas de software ou 3. Aplicações: softwares que realizam requisições para o SGBD com a
hardware; finalidade de interagir com as informações do Banco de Dados;
• Independência de dados: os dados armazenados no Banco de Dados 4. Usuários: estão divididos em três categorias:
devem ser totalmente independentes de qualquer aplicação que o acesse. o Programador de aplicações – responsável pela definição dos
Inclusive, os aplicativos não possuem a descrição real de como os dados programas de aplicação que utilizam o Banco de Dados;
estão fisicamente armazenados; o Administrador de Banco de Dados ou DBA – responsável pelo controle
• Eliminação de inconsistências: trata-se do armazenamento da informação e gerenciamento;
em um único local com acesso descentralizado, sendo compartilhado por o Usuário final – interage com o sistema a partir de um computador
vários sistemas, mantendo uma informação confiável. A inconsistência conectado ao Banco de Dados.
ocorre quando um mesmo campo tem valores diferentes em sistemas
Figura 2 – Representação de um sistema de Banco de Dados
diferentes;
• Padronização dos dados: permite que os atributos sejam definidos
baseando-se em um formato de armazenamento predeterminado. Por
exemplo, os atributos de data armazenados no formato “aaaa/mm/dd”.
manipuladas por uma grande quantidade de usuários. Banco de Dados, esses profissionais são responsáveis pela autorização de
acesso ao Banco de Dados para os demais usuários, coordenação e
2.3 Sistema de Banco de Dados monitoração do uso, ou seja, são eles que coordenam todas as atividades do
sistema de Banco de Dados e possuem conhecimento sobre os recursos de
Um sistema de Banco de Dados é um ecossistema que engloba quatro
informação da empresa e suas necessidades. Suas funções incluem:
componentes principais:
9 10
• Definição do Banco de Dados; 4. Modelo físico.
• Estrutura de armazenamento e definição de acesso aos dados; Aqui compartilhamos uma pequena dica com você: todo e qualquer
• Esquema físico e organização dos dados; projeto é guiado do início ao fim pelas regras de negócio, que representam as
• Conceder acesso aos usuários; orientações e restrições que servem como reguladoras das operações de uma
• Cuidar da integridade dos dados; empresa. Essas regras são fornecidas pelo solicitante ou contratante.
• Acompanhar o desempenho do Banco de Dados; Podemos citar alguns exemplos de regras de negócio:
• Atividades de manutenção e backups. • Uma pessoa para se matricular em um curso superior, obrigatoriamente,
deverá apresentar o certificado de conclusão do Ensino Médio ou
TEMA 3 – MODELAGEM DE DADOS
equivalente;
• Um candidato a ser motorista de aplicativo deverá possuir a carteira de
O objetivo da modelagem de dados é a representação do cenário
habilitação válida.
observado e suas necessidades, analisando, documentando, normalizando e
detectando como as informações relacionam-se entre si, bem como fornecendo Figura 3 – Fases de um projeto de Banco de Dados
processos de validação que nos permitem avaliar a veracidade dos modelos
desenvolvidos.
Um Banco de Dados pode ser descrito ou modelado em vários níveis de
abstração, sendo, assim, definidos três modelos básicos:
1. Modelo conceitual;
2. Modelo lógico;
3. Modelo físico.
11 12
• Somente as entidades e campos principais; • Adequação ao padrão de nomenclatura;
• Independente da implementação e do SGBD; • Relações e atributos documentados;
• Descrição mais abstrata do Banco de Dados; • Dependente do SGBD.
• Ponto de partida para o projeto de um Banco de Dados. O modelo lógico do Banco de Dados relacional deve definir quais as
Uma das técnicas mais utilizadas entre os profissionais da área é a relações (tabelas) e quais os atributos que compõem as relações, bem como os
abordagem Entidade-Relacionamento (ER), em que o modelo é representado tipos de dados (número inteiro, data, cadeia de caracteres, entre outros) que
por meio do Modelo Entidade-Relacionamento (MER). serão armazenados nesses atributos.
Baseado no exemplo anterior, podemos definir o modelo lógico conforme:
Figura 4 – Exemplo de Modelo Entidade-Relacionamento (MER)
• Cliente: codigo (integer), nome (varchar), endereco (varchar) e codcidade
(integer);
• Cidade: codigo (integer), descricao (varchar) e UF (char).
O modelo acima nos apresenta informações sobre as entidades Cliente e Figura 5 – Exemplo de modelo lógico
Cidade, em que para cada cliente será armazenado seu código de identificação,
nome, endereço e código da cidade onde reside. Para cada cidade
armazenaremos o código, o nome da cidade e a unidade federativa
correspondente.
Vale salientar que, no exemplo acima, a relação ou associação existente
entre as duas entidades se baseia na premissa que UM cliente reside apenas
em UMA cidade, mas UMA cidade poderá ter NENHUM ou VÁRIOS clientes
residentes. Essa relação é denominada cardinalidade e será abordada com mais
detalhes em um próximo tópico desse material de estudo.
Fonte: Albano; Albano, 2022.
13 14
• Pode variar segundo o SGBD; formar as tabelas do Banco de Dados. Por exemplo, informações sobre
• Pode ter tabelas físicas (log); clientes, produtos, entregadores, restaurantes, entre outros;
• Descrição detalhada de como a base de dados está armazenada • Campo: características particulares de cada entidade. Por exemplo, o
internamente; cliente possui nome, data de nascimento, cidade onde reside, entre outras
• Linguagens e notações para o modelo físico variam de produto para informações. O conjunto de informações contidas nos campos formam o
produto (SGBD). que chamamos de registro;
• Relacionamento: representa a associação entre duas ou mais entidades.
Figura 6 – Exemplo de modelo físico
Por exemplo, o cliente reside em determinada cidade.
4.1 Entidade
create table cliente (
• codigo int, Como já mencionamos, a entidade no modelo conceitual representa um
• nome varchar (100) , objeto do qual desejamos armazenar as informações que serão utilizadas em
• endereco varchar (100) , uma aplicação.
• codCidade int ) ; Por exemplo, o sistema de delivery necessita armazenar informações
sobre os clientes. Como existem diversas informações sobre cada cliente, nesse
create table cidade ( caso, se faz necessário criar uma entidade com a função de representar esse
• codigo int, objeto.
• descricao varchar (100) ,
• uf char (02) ) ; 4.1.1 Tipos de entidades
conceitos fundamentais: primária não é composta pela chave primária de nenhuma outra entidade. Dessa
forma, a entidade fundamental não necessita da existência de qualquer outra
• Entidade: representação abstrata de um objeto do mundo real que
entidade para existir, pois é independente.
desejamos armazenar informações e, que na maioria dos casos, irão
15 16
Por exemplo, entidades Cliente, Produto, Entregador, Restaurante, entre 4.1.2 Instância de uma entidade
outras.
São as informações armazenadas nos campos de uma entidade, as quais
4.1.1.2 Entidade associativa podem ser concretas (pessoa, conta, livro, entre outras) ou abstratas (pedido,
transação, entre outras).
É a entidade definida a partir da simplificação de um relacionamento de
Instâncias do mesmo assunto são agrupadas sob uma mesma entidade.
muitos para muitos entre duas ou mais entidades. Por exemplo, em um
Por exemplo, o registro contendo as informações Wilquison Souza, CPF.
relacionamento entre a entidade Pedido e a entidade Produto, ocorre a seguinte
789.123.456.11, residente na Avenida 7 de Setembro, 1, caracteriza-se por ser
situação: um pedido pode conter um ou vários produtos e um produto pode ser
uma instância da entidade Pessoa.
vendido em nenhum ou vários pedidos.
Com esse tipo de relacionamento surge a necessidade da criação de uma Figura 8 – Instância de uma entidade
17 18
Figura 9 – Exemplo de representação de uma entidade • O quadro de funcionários dessa empresa também precisa ser
contemplado, pois a empresa necessita dessas informações;
• Clientes, restaurantes, entregadores e produtos seguem a mesma
linha de raciocínio;
• Quanto a movimentação dos pedidos, a empresa precisa ter um controle
Fonte: Albano; Albano, 2022.
do que foi vendido, para quem foi vendido e qual restaurante vendeu.
4.1.5 Estudo de caso Perceba que cada objeto que armazena informações foi definido como
uma entidade. É possível que você tenha encontrado outras entidades que não
Para aprimorar os conceitos, vamos implementar passo a passo um
foram listadas nesse momento. Não se preocupe, durante a evolução do modelo
estudo de caso sobre uma rede de restaurantes que decidiu ter um aplicativo de
é comum a inclusão e a exclusão de entidades até chegarmos ao modelo ideal.
delivery.
Isso faz parte do processo de construção do projeto de Banco de Dados.
O restaurante “Comer é Bom Demais” forneceu, inicialmente, as seguintes
Baseado nas entidades que já descobrimos, vamos analisar qual a
regras de negócio:
relação que cada uma pode possuir com as demais:
1. O restaurante possui diversas filiais espalhadas pelo território nacional,
• Restaurante:
podendo ter mais de uma filial na mesma cidade. Essas informações
o Possui várias filiais que estão instaladas em diferentes cidades;
devem estar devidamente cadastradas.
o Cada filial receberá vários pedidos por meio do aplicativo;
2. O restaurante possui vários funcionários.
o Possui muitos funcionários em cada filial;
3. Os pedidos são entregues por entregadores autônomos.
• Cliente:
4. O aplicativo deverá possuir produtos.
o Realiza um pedido por meio do aplicativo;
5. Os pedidos referentes a cada restaurante deverão ser devidamente
o Reside em uma cidade;
armazenados.
• Funcionário:
6. Para fazer um pedido no sistema de delivery, o cliente deverá estar
o Faz parte do quadro de funcionários de uma das filiais;
previamente cadastrado.
o Reside em uma cidade;
Vale ressaltar que, ao longo do desenvolvimento do modelo, serão • Entregador:
incluídas novas regras de negócio com o objetivo de aprofundar e aplicar os o Realiza as entregas dos pedidos;
conceitos aqui discutidos. o Está locado em uma cidade;
Para começar, vamos definir as entidades que representaram cada objeto • Pedido:
do mundo real da empresa de delivery, baseando-se sempre nas regras de o Precisa-se manter as informações sobre quem fez o pedido, para qual
negócio já conhecidas. filial e qual(is) foi(ram) o(s) produto(s) escolhido(s);
Avalie as regras de negócio perguntando-se sobre quais objetos ou itens • Produto:
têm características ou informações próprias a serem armazenadas. Pensando o Sempre será referenciado dentro de um pedido;
dessa forma, já podemos identificar as seguintes entidades:
• Cidade:
• Como a empresa atua em âmbito nacional, seria importante o Pertence a um estado;
armazenarmos informações sobre os estados e as cidades; • Estado:
19 20
o Possui diversas cidades em seu território. 4.2 Campos
A partir dessa análise prévia, vamos construir nosso primeiro modelo
São as propriedades que caracterizam uma entidade, isto é,
conceitual (MER).
características particulares do objeto que está sendo analisado. Os campos são
Figura 10 – Estudo de caso: Primeiro modelo conceitual baseados nas informações definidas nas regras de negócio.
No caso do nosso exemplo sobre o sistema de delivery, a entidade Cliente
possuirá como campos o nome, o endereço, a data de nascimento, o sexo, o
CPF e as demais características necessárias.
• Obrigatório;
• Opcional;
• Simples;
• Composto;
• Monovalorado;
• Multivalorado;
• Derivado.
Fonte: Albano; Albano, 2022.
O próximo passo é aprendermos sobre os campos que pertencem a cada 4.2.1.1 Campo obrigatório
uma das entidades do nosso modelo conceitual.
É aquele campo que deve possuir, para uma instância de uma entidade
ou relacionamento, obrigatoriamente um valor, ou seja, o campo deve ter um
conteúdo, não podendo ficar sem informação. Por exemplo, nome do cliente,
descrição do produto, nome da cidade, entre outros.
21 22
4.2.1.3 Campo simples ou atômico • Código do cliente: o domínio é definido como um conjunto de números
inteiros positivos com quatro algarismos;
São os campos que não podem ter o seu conteúdo dividido, ou seja, não • Nome do entregador: conjunto de caracteres alfanuméricos com no
há como separar os dados. Campos desse tipo não são divisíveis ou máximo 100 caracteres;
decompostos. Por exemplo, estado civil, bairro, gênero, raça, entre outros.
• Salário: valor numérico positivo com duas casas decimais;
• Gênero: são os mnemônicos M ou F.
4.2.1.4 Campo composto
4.2.3 Regras para nomear um campo
Os campos compostos podem ser divididos em partes menores que,
dependendo do caso, podem inclusive gerar novos campos.
• Devem ser únicos na entidade;
O próprio nome de uma pessoa pode ser classificado como um campo
• Nomes sem espaços em branco;
composto, pois pode ser estruturado em prenome, nome intermediário e
• Nomes sem caracteres especiais;
sobrenome.
• Utilizar nomes significativos que identifiquem o seu conteúdo;
Todo e qualquer campo que possua um único valor para uma entidade é 4.2.4 Formas de representação de um campo
considerado um campo monovalorado. Por exemplo, nome, CPF, gênero, data
No Modelo Entidade-Relacionamento (MER) o campo é representado por
de nascimento, entre outros.
meio de uma linha que o liga a uma determinada entidade que o corresponde.
4.2.1.6 Campo multivalorado Essa linha também possui uma ponteira que representa a prioridade que o
campo exerce dentro da entidade, podendo ser um campo principal da entidade,
Os campos que podem possuir mais de um valor para uma entidade são denominado chave primária ou Primary Key (PK, o único campo a ser
chamados de campos multivalorados. Por exemplo, uma pessoa pode possuir representado pela ponteira preenchida), campos que assumem as funções de
mais de um número de telefone. chave secundária (Secondary Key), estrangeira (Foreign Key – FK) ou,
4.2.1.7 Campo derivado simplesmente, um campo comum.
Um campo derivado é aquele que é derivado de outros campos ou
Figura 11 – Exemplo de representação de campos
entidades relacionados a ele. Por exemplo, o campo idade é derivado dos
campos data de nascimento e data atual.
25 26
• Caso a chave primária seja composta na origem, a chave estrangeira 4.2.6 Estudo de caso
também será composta;
• O valor da chave estrangeira poderá se repetir; Baseado no conhecimento adquirido sobre campos, vamos continuar o
desenvolvimento do nosso projeto de Banco de Dados sobre um aplicativo de
• Não poderá ser composta por campo opcional, ou seja, campo que aceite
delivery.
um valor nulo.
Regras adicionais:
Exemplo:
• O acesso ao aplicativo, tanto por clientes quanto por funcionários, deverá
Figura 13 – Exemplo de chave estrangeira ser por meio de um login e uma senha, sendo que o login corresponde ao
e-mail do usuário;
• Como é um sistema de delivery, o endereço de entrega deve ser bem
detalhado, contemplando as seguintes informações: nome da rua, número
do imóvel, complemento (caso houver), bairro, ponto de referência e CEP;
• O restaurante sempre presenteia os aniversariantes com um desconto;
• Os pedidos possuem um status, isto é, a situação em que se encontra,
podendo estar no estado “A confirmar”, “Em preparação”, “Saiu para a
entrega”, “Entregue” e “Cancelado”;
• Os entregadores autônomos, obrigatoriamente, deverão ter registrada a
carteira de habilitação no sistema;
• Os produtos são divididos em categorias, sendo: lanches, pratos prontos,
bebidas e sobremesas.
Fonte: Albano; Albano, 2022.
Vale salientar que, além das regras adicionais, alguns campos se fazem
Analisando a entidade Cliente podemos verificar que ela possui um campo necessários, por exemplo, informações do cliente, do produto, do funcionário,
que armazenará a cidade onde reside cada cliente. Essa informação, porém, tem entre outros.
uma característica repetitiva, em que é possível que a mesma cidade seja usada Importante ressaltar que o modelo conceitual apresentado não contempla
em diversos registros de clientes. Dessa forma, para garantir agilidade e precisão os campos resultantes dos relacionamentos entre as entidades. Tais campos
nos dados informados foi criada uma nova entidade chamada Cidade. serão incluídos no momento da aplicação das regras de cardinalidade.
No caso da entidade Cidade, ela conterá todos os registros de cada uma
das cidades e, dessa forma, a entidade Cliente apenas irá fazer a referência ao
código correspondente a cidade desejada.
Perceba que as duas entidades se comunicam apenas por meio do código
da cidade, que é a chave estrangeira dessa relação.
27 28
Figura 14 – Inclusão de campos no modelo conceitual Figura 15 – Representação de relacionamento
29 30
O autorrelacionamento pode possuir uma cardinalidade do tipo 1:1 (um Lembre-se, havendo um relacionamento, teremos um ou mais campos em
para um), 1:n (um para muitos) ou n:n (muitos para muitos), dependendo da comum entre as entidades envolvidas, que são responsáveis pela ligação entre
política de negócio que estiver envolvida. O tema cardinalidade será discutido elas.
posteriormente nesse material de estudo. De forma básica, a cardinalidade é representada de três formas:
1. Um para um (1:1);
4.3.3 Especialização e generalização
2. Um para muitos / muitos para um (1:n) / (n:1);
A especialização ocorre quando existe a presença de propriedades 3. Muitos para muitos (n:n) / (n:m).
particulares em uma entidade, provocando uma subdivisão devido a Além dos tipos citados acima, também abordaremos a cardinalidade
necessidade de campos específicos para cada situação. máxima e mínima, extremamente utilizadas.
No caso da generalização, essa é exatamente o inverso da
especialização, isto é, agregando as similaridades presentes das 5.1 Um para um (1:1)
especializações. É quando as entidades podem ser reunidas em apenas uma.
Ocorre quando UMA instância da entidade está associada a apenas UMA
O clássico exemplo do cliente pessoa física ou pessoa jurídica ilustra
instância de outra entidade e, de forma inversa, o mesmo acontece.
claramente como ocorre uma situação de especialização. Analisando o conjunto
Por exemplo, baseado na regra de negócio que uma pessoa só pode estar
de campos é possível verificar que uma pessoa física possui campos diferentes
casada legalmente com outra pessoa (cônjuge), como estabeleceríamos a
de uma pessoa jurídica, mas ambos são clientes.
cardinalidade existente entre as entidades?
Veja o modelo a seguir:
Passo a passo:
31 32
Figura 20 – Exemplo de cardinalidade 1:1 Vale ressaltar que quando ocorrer um relacionamento 1:1, sua existência
é opcional, ou seja, analisando as entidades envolvidas no relacionamento você
pode decidir eliminar uma delas. No exemplo, a entidade Cônjuge poderia ser
transformada em um campo da entidade Pessoa. Eliminar ou não a entidade é
uma decisão pessoal de quem está modelando, não havendo uma regra definida.
Fonte: Albano; Albano, 2022. 1. UM cliente (1) reside em apenas UMA cidade (1).
2. Leitura inversa: UMA cidade (1) possui MUITOS residentes (n).
5.1.1 Definição da Chave Estrangeira – Foreign Key (FK) 3. Perceba que a leitura da cardinalidade apresentou diferenças. Por causa
disso, devemos aplicar a regra da precedência do n em relação a
Em um relacionamento 1:1 a chave estrangeira poderá ficar em qualquer
cardinalidade 1, resultando em uma cardinalidade de 1:n.
uma das entidades. Como é um relacionamento exclusivo (1:1), não faz
diferença se a chave primária da entidade Pessoa for adicionada na entidade Figura 22 – Exemplo de cardinalidade 1:n
Cônjuge ou de forma inversa.
33 34
5.2.1 Definição da chave estrangeira – Foreign Key (FK) Passo a passo:
5.3 Muitos para muitos (n:n / n:m) • Podemos adicionar a chave primária da entidade Conta na entidade
Cliente?
Neste caso, uma entidade está associada a várias instâncias de outra
• Ou adicionar a chave primária da entidade Cliente na entidade Conta?
entidade e o inverso ocorre da mesma maneira.
A resposta para as duas questões é não, pois em ambos os casos
Por exemplo, considere a regra de negócio que define que um cliente
teríamos que armazenar mais de um valor em um mesmo campo. Então, qual é
poderá possuir várias contas e que uma conta poderá ser conjunta, isto é,
a solução?
pertencer a mais de um cliente.
35 36
Relacionamentos cuja cardinalidade resulte em n:n sempre gerarão uma Saiba mais
nova entidade. Essa entidade, como já vimos, é conhecida como entidade Após finalizar a aplicação da cardinalidade no Modelo Entidade-
associativa. Nela adicionaremos a chave primária das entidades envolvidas no Relacionamento (MER), não poderá existir nenhum relacionamento n:n. Todos
relacionamento, nesse caso, as entidades Conta e Cliente. Inclusive, se houver os relacionamentos resultantes deverão apresentar cardinalidades 1:n e 1:1.
necessidade, podemos adicionar mais campos.
A partir do momento em que ocorre a inclusão dessa nova entidade, o
5.4 Cardinalidades mínima e máxima
relacionamento torna-se automaticamente 1:n.
Com a evolução do modelo conceitual (MER) e com o objetivo de melhorar
Outro aspecto importante nessa situação que precisamos avaliar é: qual
a implementação das regras de negócio, foi introduzido o conceito de
será a chave primária dessa nova entidade?
cardinalidades mínima e máxima. Tal conceito representa a frequência de
Existem duas alternativas para a definição dessa chave:
relações entre as entidades, isto é, restringe a quantidade de ocorrências que
1. A chave primária será composta pelas chaves estrangeiras das entidades
podem existir entre as entidades que participam do relacionamento. Essas
Conta e Cliente. Isso mesmo que você está lendo, um campo pode ser
ocorrências também são denominadas instâncias.
chave estrangeira e fazer parte da chave primária ao mesmo tempo.
A cardinalidade é representada por uma cardinalidade mínima e uma
2. Criar uma chave artificial, denominada Surrogate Key (chave substituta),
cardinalidade máxima, possuindo uma notação (m, M), onde:
que será um campo com a função de diferenciar uma instância da outra.
• Cardinalidade mínima (m) – Estabelece o número mínimo de instâncias
Figura 25 – Formas de representação de uma entidade associativa que podem existir entre uma entidade e outras entidades participantes do
relacionamento;
• Cardinalidade máxima (M) – Define o número máximo de instâncias que
podem existir entre uma entidade e outras entidades envolvidas no
relacionamento.
37 38
É importante ressaltar que a notação da cardinalidade é sempre Figura 28 – Tipos de notações de cardinalidades
apresentada no lado oposto. Por exemplo, na relação existente entre as
entidades Cliente e Cidade:
39 40
Entendendo as cardinalidades: • Produto/Pedido: um pedido pode ter um ou vários produtos e um produto
pode estar em nenhum ou vários pedidos. A cardinalidade resultante n:n.
• Estado/Cidade: uma cidade pertence a um estado e um estado pode
Aqui devemos observar que é necessário criar uma entidade associativa
possuir várias cidades em seu território. Cardinalidade resultante 1:n. A
e, nesse caso, vamos chamar a entidade de PedidoProduto. Tal entidade
chave estrangeira será o ID da entidade Estado na entidade Cidade.
possuirá como campos as chaves primárias das entidades Produto e
Recorde que a chave estrangeira sempre será inserida na entidade cuja
Pedido, que assumem a função de chave estrangeira. Como chave
cardinalidade resultou em muitos (n).
primária usaremos a chave artificial ID. Além disso, outras informações
• Funcionário/cidade: um funcionário mora em uma cidade e uma cidade
também devem ser armazenadas nessa entidade, a quantidade do
pode ter nenhum ou vários funcionários morando. Cardinalidade
produto, o valor unitário do produto e o desconto do produto
resultante 1:n. A chave estrangeira será o ID da entidade Cidade na
(aniversariantes).
entidade Funcionário.
• Restaurante/Cidade: um restaurante está instalado em uma cidade e uma Com a aplicação da cardinalidade, concluímos o desenvolvimento do
cidade pode ter nenhum ou vários restaurantes instalados. Cardinalidade modelo conceitual do nosso estudo de caso.
resultante 1:n. A chave estrangeira será o ID da entidade Cidade na
FINALIZANDO
entidade Restaurante.
• Entregador/Cidade: um entregador trabalha em uma cidade e uma cidade Nesta etapa aprendemos sobre os conceitos fundamentais de Banco de
pode ter nenhum ou vários entregadores trabalhando. Cardinalidade Dados, conhecemos os modelos de armazenamento de dados, dos mais antigos
resultante 1:n. A chave estrangeira será o ID da entidade Cidade na (rede, hierárquico e orientação a objetos) até os atuais (relacional e No-SQL) e
entidade Entregador. entendemos, ainda, como se dá a estrutura do Banco de Dados, com suas
• Cliente/Cidade: um cliente reside em uma cidade e uma cidade pode ter entidades, campos e relacionamentos.
nenhum ou vários clientes residindo. Cardinalidade resultante 1:n. A Discutimos também sobre a importância do SGBD, que é o software que
chave estrangeira será o ID da entidade Cidade na entidade Cliente. faz a comunicação entre o Banco de Dados, os usuários e as aplicações que
• Funcionário/Restaurante: um funcionário trabalha em um restaurante e acessam esses dados.
um restaurante pode ter um ou vários funcionários trabalhando. Aprendemos sobre as etapas do projeto de Banco de Dados e, juntos,
Cardinalidade resultante 1:n. A chave estrangeira será o ID da entidade desenvolvemos um modelo conceitual, baseado em um estudo de caso. O
Restaurante na entidade Funcionário. modelo desenvolvido é uma abstração de alto nível, ou seja, não apresenta a
• Restaurante/Pedido: um pedido é recebido por um restaurante e um definição de detalhes técnicos.
restaurante recebe um ou vários pedidos. Cardinalidade resultante 1:n. A Compreendemos o que é uma entidade, seus tipos, campos e os
chave estrangeira será o ID da entidade Restaurante na entidade Pedido. relacionamentos entre as entidades. Aprendemos sobre conceitos de chave
• Entregador/Pedido: um pedido será entregue por um entregador e um primária, que diferencia uma instância das outras em uma entidade, e de chave
entregador faz a entrega de um ou vários pedidos. Cardinalidade 1:n. A estrangeira, que é o campo que faz a ligação entre as entidades.
chave estrangeira será o ID da entidade Entregador na entidade Pedido. Por fim, estudamos o que é cardinalidade, seus tipos (1:1, 1:n e n:n) e
• Cliente/Pedido: um pedido será realizado por um cliente e um cliente descobrimos que um relacionamento muitos para muitos (n:n) provoca o
realiza um ou vários pedidos. Cardinalidade 1:n. A chave estrangeira será surgimento de uma nova entidade. Com isso, pudemos perceber a importância
o ID da entidade Cliente na entidade Pedido. que a cardinalidade exerce na definição dos relacionamentos entre as entidades
41 42
do modelo, conceitos esses que também foram aplicados passo a passo no REFERÊNCIAS
desenvolvimento do nosso estudo de caso.
Procure revisar os conceitos e os exemplos apresentados neste material CHEN, Peter. Modelagem de Dados: A abordagem entidade-relacionamento
para que você esteja preparado para os próximos passos que abrangerão a para projeto lógico. São Paulo: Makron Books, 1990.
43 44