Bird
Raised Fist0
Prompt Engineering / GenAIml~20 mins

Vector database operations (CRUD) in Prompt Engineering / GenAI - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Vector Database Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding Vector Database Insert Operation

Which statement best describes what happens during the insert operation in a vector database?

AThe vector database adds new vectors along with their metadata to the storage, making them available for future queries.
BThe vector database removes vectors that match a given query from the storage permanently.
CThe vector database compresses all stored vectors to save space without changing their content.
DThe vector database updates the similarity scores of existing vectors without changing the stored vectors themselves.
Attempts:
2 left
💡 Hint

Think about what it means to add new data to a database.

Predict Output
intermediate
2:00remaining
Output of Vector Deletion Code

What will be the output of the following code snippet that deletes a vector by ID and then queries the database?

Prompt Engineering / GenAI
vectors = {'v1': [0.1, 0.2], 'v2': [0.4, 0.5]}

# Delete vector with ID 'v1'
del vectors['v1']

# Query remaining keys
print(list(vectors.keys()))
A['v1', 'v2']
B[]
C['v2']
DKeyError
Attempts:
2 left
💡 Hint

Deleting a key removes it from the dictionary.

Model Choice
advanced
2:00remaining
Choosing the Best Model for Vector Similarity Search

You want to build a vector database that supports fast similarity search on high-dimensional image embeddings. Which model type is best suited for this task?

AA pre-trained transformer model fine-tuned for text generation
BA vector embedding model trained to produce compact, meaningful image feature vectors
CA dense neural network trained for classification tasks
DA clustering algorithm like K-means used directly as a model
Attempts:
2 left
💡 Hint

Think about which model creates vectors that capture image features well.

Hyperparameter
advanced
2:00remaining
Effect of Changing Vector Search 'k' Parameter

In a vector database query, the parameter k controls how many nearest neighbors are returned. What happens if you increase k from 5 to 20?

AThe query will fail because <code>k</code> must be less than 10.
BThe query returns fewer vectors, making the search faster but less comprehensive.
CThe query ignores the <code>k</code> value and returns all vectors in the database.
DThe query returns more vectors, increasing the chance of finding relevant results but taking more time.
Attempts:
2 left
💡 Hint

Think about what increasing the number of neighbors means for results and speed.

🔧 Debug
expert
2:00remaining
Debugging Vector Update Operation

Given the following code to update a vector in a vector database, what error will it raise?

Prompt Engineering / GenAI
vectors = {'v1': [0.1, 0.2], 'v2': [0.4, 0.5]}

# Attempt to update vector 'v3'
vectors['v3'][0] = 0.9

print(vectors)
AKeyError because 'v3' does not exist in the dictionary
BIndexError because the vector has no elements
CTypeError because list elements cannot be assigned
DNo error; the vector 'v3' is created and updated
Attempts:
2 left
💡 Hint

Consider what happens when you try to access a key that is not in a dictionary.

Practice

(1/5)
1. What does the CRUD acronym stand for in vector database operations?
easy
A. Connect, Run, Undo, Deploy
B. Compute, Retrieve, Upload, Download
C. Create, Read, Update, Delete
D. Cache, Refresh, Use, Drop

Solution

  1. Step 1: Understand CRUD basics

    CRUD is a common term in databases meaning the four basic operations you can do with data.
  2. Step 2: Match each letter to its meaning

    C stands for Create (add new data), R for Read (get data), U for Update (change data), and D for Delete (remove data).
  3. Final Answer:

    Create, Read, Update, Delete -> Option C
  4. Quick Check:

    CRUD = Create, Read, Update, Delete [OK]
Hint: Remember CRUD as basic data actions: add, get, change, remove [OK]
Common Mistakes:
  • Confusing CRUD with unrelated terms
  • Mixing up the order of operations
  • Thinking CRUD only applies to files, not vectors
2. Which of the following is the correct syntax to add a vector with ID 'vec1' and values [0.1, 0.2, 0.3] to a vector database named db?
easy
A. db.push_vector(['vec1', 0.1, 0.2, 0.3])
B. db.insert('vec1', [0.1, 0.2, 0.3])
C. db.create_vector('vec1', 0.1, 0.2, 0.3)
D. db.add_vector('vec1', [0.1, 0.2, 0.3])

Solution

  1. Step 1: Identify the common method for adding vectors

    Most vector databases use a method like add_vector with an ID and a list of numbers.
  2. Step 2: Check method parameters

    The method should take the vector ID as a string and the vector values as a list or array.
  3. Final Answer:

    db.add_vector('vec1', [0.1, 0.2, 0.3]) -> Option D
  4. Quick Check:

    Add vector syntax = db.add_vector(id, vector) [OK]
Hint: Add vectors with add_vector(id, vector_list) method [OK]
Common Mistakes:
  • Using wrong method names like insert or push_vector
  • Passing vector values as separate arguments instead of a list
  • Mixing ID and vector in one list
3. Given the following code snippet, what will be the output?
db = VectorDB()
db.add_vector('v1', [1, 0, 0])
db.add_vector('v2', [0, 1, 0])
results = db.search([0.9, 0.1, 0], top_k=1)
print(results)
medium
A. [('v1', 0.9)]
B. [('v2', 0.9)]
C. [('v1', 0.1)]
D. [('v2', 0.1)]

Solution

  1. Step 1: Understand the vectors and query

    Vectors 'v1' = [1,0,0], 'v2' = [0,1,0], query = [0.9,0.1,0].
  2. Step 2: Calculate similarity or distance

    Assuming cosine similarity, 'v1' is closer to query (dot product ~0.9), 'v2' is less similar (~0.1).
  3. Final Answer:

    [('v1', 0.9)] -> Option A
  4. Quick Check:

    Closest vector = v1 with similarity 0.9 [OK]
Hint: Closest vector has highest dot product with query [OK]
Common Mistakes:
  • Confusing similarity with distance
  • Mixing up vector IDs in output
  • Assuming lower score means closer
4. The following code tries to update a vector but throws an error. What is the likely cause?
db = VectorDB()
db.add_vector('v1', [0.5, 0.5, 0.5])
db.update_vector('v2', [0.1, 0.1, 0.1])
medium
A. Vector 'v2' does not exist, so update fails
B. The update_vector method requires 4 arguments
C. Vector values must be integers, not floats
D. The add_vector method was not called before update_vector

Solution

  1. Step 1: Check vector existence before update

    Updating a vector requires it to exist in the database first.
  2. Step 2: Identify the error cause

    Since 'v2' was never added, trying to update it causes an error.
  3. Final Answer:

    Vector 'v2' does not exist, so update fails -> Option A
  4. Quick Check:

    Update needs existing vector [OK]
Hint: Update only existing vectors, else error occurs [OK]
Common Mistakes:
  • Assuming update creates new vectors
  • Thinking data type mismatch causes error
  • Ignoring vector existence check
5. You want to delete vectors with similarity less than 0.5 to a query vector [0, 1, 0] from your vector database. Which sequence of operations correctly achieves this?
hard
A. Delete all vectors, then add only those with similarity >= 0.5
B. Search vectors with similarity < 0.5, then delete each by ID
C. Update vectors with similarity < 0.5 to zero vectors
D. Add new vectors with similarity >= 0.5, ignoring deletion

Solution

  1. Step 1: Find vectors below similarity threshold

    Use a search or filter operation to get IDs of vectors with similarity less than 0.5.
  2. Step 2: Delete vectors by their IDs

    Use the delete operation on each vector ID found to remove them from the database.
  3. Final Answer:

    Search vectors with similarity < 0.5, then delete each by ID -> Option B
  4. Quick Check:

    Filter then delete unwanted vectors [OK]
Hint: Filter vectors first, then delete by ID [OK]
Common Mistakes:
  • Deleting all vectors instead of selective ones
  • Trying to update instead of delete
  • Ignoring the similarity filter step