Novo no Agile e não sei por onde começar.
Depois de ler sua postagem, acho que você está entendendo errado e deve começar lendo o que o ágil realmente significa e tenta realizar.
A idéia é criar pequenas partes do projeto em sprints.
Perto, mas não perto o suficiente. A idéia é fornecer software de trabalho no final de cada sprint (uma parte do sistema pode caber em um sprint ou não). O banco de dados pode ser visto como software de trabalho se, e somente se, o banco de dados for o que você entrega ao cliente.
No entanto, o projeto no qual estou trabalhando exige um banco de dados e o banco de dados deve estar quase funcional para fazer qualquer coisa com o projeto.
Por que tem que ser quase funcional? Todos os recursos do sistema usam todo ou parte do conteúdo do banco de dados? Porque, se não, não há sentido em projetar todo o banco de dados de antemão.
Então, como os projetos Agile lidam com isso, você começa criando o banco de dados?
O Agile não lida com design de banco de dados ou sistema. Ele mostra como gerenciar seu projeto. Com isso em mente, você começa identificando todos os recursos do sistema e os coloca no backlog do produto. Em seguida, você, juntamente com o proprietário do produto, atribui prioridades aos recursos no backlog. Depois de fazer isso, comece a usar os recursos do backlog e a criar sprints (geralmente de 2 a 4 semanas). Quando um sprint termina, você deve ter um novo recurso de trabalho no sistema que possa ser entregue ao cliente.
Como você faria isso, por exemplo, se estivesse usando o Scrum, como faria as histórias dos usuários e testaria o banco de dados.
Posso estar errado, mas não faz sentido testar o banco de dados. Você pode testar o código que atualiza o banco de dados. Obviamente, você pode testar sua parte programável do banco de dados, mas isso pode ser alcançado testando o código que o chama.
Você prefere fazer partes do banco de dados em uma história que também requer código.
Sim.
O Agile não é de forma alguma um ponto de destaque para o gerenciamento de projetos e pode significar um desastre quando não é aplicado corretamente. Tente dedicar algum tempo a ler sobre isso (você pode encontrar muitos recursos aqui ou no stackoverflow), talvez encontre alguém que já tenha agido com agilidade e possa ajudá-lo a se atualizar.