Question
Tarefas Inserir registros ficticios para simular a operação dos eventos. "Realizar consultas para: -Listar todos os eventos e suas sessoes. Verificar as inscrições em uma sessão especifica. Mostrar os palestrantes e suas sessōes. Atualizar informações de um evento. - Listar os participantes que se inscreveram em mais de uma sessão.
Solution
3.7
(262 Votos)
Emerson
Profissional · Tutor por 6 anos
Resposta
Para realizar as tarefas solicitadas, você pode utilizar uma linguagem de programação como Python e uma biblioteca de gerenciamento de banco de dados como o SQLAlchemy. Abaixo estão exemplos de como você pode implementar cada uma das tarefas:1. Inserir registros fictícios para simular a operação dos eventos:```pythonfrom datetime import datetime, timedeltafrom sqlalchemy import create_engine, Table, MetaData# Criar um motor SQLAlchemy e definir o esquemaengine = create_engine('postgresql://usuario:senha@host:porta/banco_de_dados')metadata = MetaData()metadata.reflect(bind=engine)# Inserir registros fictíciosinsere_evento = Table('evento', metadata, autoload_with=engine)insere_sessao = Table('sessao', metadata, autoload_with=engine)insere_inscricao = Table('inscricao', metadata, autoload_with=engine)data_atual = datetime.now()data_há_3_dias = data_atual - timedelta(days=3)data_há_7_dias = data_atual - timedelta(days=7)# Inserir eventosevento1 = { 'titulo': 'Evento 1', 'data_inicio': data_há_3_dias, 'data_fim': data_há_3_dias + timedelta(days=1), 'localizacao': 'Localização 1'}insere_evento.insert().values(evento1)evento2 = { 'titulo': 'Evento 2', 'data_inicio': data_há_7_dias, 'data_fim': data_há_7_dias + timedelta(days=5), 'localizacao': 'Localização 2'}insere_evento.insert().values(evento2)# Inserir sessõessessao1 = { 'titulo': 'Sessão 1', 'data_inicio': data_há_3_dias, 'data_fim': data_há_3_dias + timedelta(hours=2), 'evento_id': insere_evento.insert().insert(evento1)['id']}insere_sessao.insert().values(sessao1)sessao2 = { 'titulo': 'Sessão 2', 'data_inicio': data_há_7_dias, 'data_fim': data_há_7_dias + timedelta(hours=3), 'evento_id': insere_evento.insert().insert(evento2)['id']}insere_sessao.insert().values(sessao2)# Inserir inscriçõesinscricao1 = { 'usuario_id': 1, 'essao_id': insere_sessao.insert().insert(sessao1)['id'], 'data_inscricao': datetime.now()}insere_inscricao.insert().values(inscricao1)inscricao2 = { 'usuario_id': 2, 'essao_id': insere_sessao.insert().insert(sessao2)['id'], 'data_inscricao': datetime.now()}insere_inscricao.insert().values(inscricao2)```2. Realizar consultas:```python import create_engine, Table, MetaData# Criar um motor SQLAlchemy e definir o esquemaengine = create_engine('postgresql://usuario:senha@host:porta/banco_de_dados')metadata = MetaData()metadata.reflect(bind=engine)# Consulta para listar todos os eventos e suas sessõesconsulta_eventos = """SELECT e.id, e.titulo, e.data_inicio, e.data_fim, e.localizacao, s.id, s.titulo, s.data_inicio, s.data_fimFROM evento eLEFT JOIN sessao s ON s.evento_id = e.id"""resultado_eventos = engine.connect().execute(consulta_eventos)eventos = []for row in resultado_eventos: evento = { 'id': row[0], 'titulo': row[1], 'data_inicio': row[2], 'data_fim': row[3], 'localizacao': row[4], 'essao_id': row[5], 'essao_titulo': row[6], 'essao_data_inicio': row[7], 'essao_data_fim': row[8] } eventos.append(evento)# Consulta para verificar as inscrições em uma sessão específicaconsulta_inscricoes = """SELECT i.id, i.usuario_id, i.sessao_id, i.data_inscricaoFROM inscricao iWHERE i.sessao_id = :sessao_id"""resultado_inscricoes = engine.connect().execute(consulta_inscricoes, sessao_id=sessao_id)inscritos = []for