From memorization to generalization: a theoretical framework for diffusion-based generative models