Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resposta

Para o primeiro casa do Banco, foi utilizado o Banco de dados relacionais devido ao fato dos dados bancarios precisarem de uma rigidez maior em seus dados.

conn = sqlite3.connect('dados_bancarios.db')
cursor = conn.cursor() 

cursor.execute("""
    CREATE TABLE IF NOT EXISTS Clientes (
        id INTEGER PRIMARY KEY,
        nome TEXT NOT NULL,
        idade INTEGER NOT NULL,
        saldo REAL NOT NULL
    )
""")


cursor.execute("""
    INSERT INTO Clientes (nome, idade, saldo) VALUES
    ('João Silva', 30, 1500.00),
    ('Maria Oliveira', 25, 2500.50),
    ('Carlos Santos', 40, 500.75) 
""")

conn.commit()


cursor.execute("SELECT * FROM Clientes")
clientes = cursor.fetchall()
print("Clientes cadastrados:")
for cliente in clientes:  
    print(f"Nome: {cliente[1]}, Idade: {cliente[2]}, Saldo: R${cliente[3]:.2f}")

No segundo caso foi utilizado o não relacional, pois em uma rede social os dados precisam ser mais dinamicos. Foi usado o modelo da aula, mas poderia utilizar um banco de dados baseado em grafos, o que ajudaria no processo de conexões e encontrar novos amigos.

client = MongoClient('mongodb://localhost:27017/')
db = client['rede_social']
estudantes = db['membros']

estudantes.insert_many([
    {"Nome": 'Ana Beatriz', "Idade": 22, "Cidade": 'São Paulo', "Interesses": ['Música', 'Fotografia'], "Comentários": ['Adoro viajar', 'Gosto de cozinhar']},
    {"Nome": 'Lucas Pereira', "Idade": 28, "Cidade": 'Rio de Janeiro', "Interesses": ['Esportes', 'Tecnologia'], "Comentários": ['Sou fã de futebol', 'Gosto de programação']},
    {"Nome": 'Mariana Costa', "Idade": 19, "Cidade": 'Belo Horizonte', "Interesses": ['Artes', 'Cinema'], "Comentários": ['Amo pintar', 'Adoro filmes clássicos']},
])

for membro in estudantes.find():
    print(f"Nome: {membro['Nome']}, Idade: {membro['Idade']}, Cidade: {membro['Cidade']}, Interesses: {', '.join(membro['Interesses'])}, Comentários: {', '.join(membro['Comentários'])}")
1 resposta

Olá, Vitor! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou o SQLite para estruturar dados bancários com Python, utilizou muito bem o MongoDB para modelar informações dinâmicas em uma rede social e ainda compreendeu a importância da escolha do banco de dados para atender diferentes necessidades de rigidez ou flexibilidade.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Normalização: em bancos relacionais, aplicar regras de normalização para evitar redundância.
  • Indexação: em bancos não relacionais, criar índices para melhorar consultas em coleções grandes.
  • Modelagem híbrida: avaliar cenários que podem se beneficiar da combinação de bancos relacionais e não relacionais.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Ah, uma pergunta: você prefere continuar praticando com exemplos simples de bancos relacionais e não relacionais para consolidar fundamentos ou acha mais interessante avançar para arquiteturas completas que integrem ambos em um mesmo projeto?

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!