how does a vector database work