Each owner owns one or more cats, and every cat has exactly one owner.

• The name and surname of each owner must be stored in the database.
• The name of each cat must be stored in the database.
• Each cat belongs to one specific breed, and many cats can belong to the same breed.
• The description of each breed must be stored in the database.
• A cat can enter many competitions, and many cats can enter the same competition.
• The description of each competition must be stored in the database.
Assume that the database has been populated with data. Write the SQL code to
list all the cats belonging to owner Thabo Ndlovu in ascending alphabetical order.

SELECT name_of_cat

FROM cats
WHERE owner_id = (
SELECT owner_id
FROM owners
WHERE name = 'Thabo' AND surname = 'Ndlovu'
)
ORDER BY name_of_cat ASC;

To list all the cats belonging to owner Thabo Ndlovu in ascending alphabetical order, you can use the following SQL code:

```
SELECT cat.name
FROM cat
INNER JOIN owner ON cat.owner_id = owner.owner_id
WHERE owner.first_name = 'Thabo' AND owner.last_name = 'Ndlovu'
ORDER BY cat.name ASC;
```

Explanation:
1. The `SELECT` statement is used to retrieve the data from the database.
2. We select the `cat.name` column to display the names of the cats.
3. The `FROM` clause specifies the tables involved in the query, in this case, `cat` and `owner`.
4. The `INNER JOIN` is used to combine matching rows from both tables based on the `owner_id` column.
5. The `WHERE` clause is used to filter the results and only retrieve the cats belonging to owner Thabo Ndlovu.
6. The `ORDER BY` clause is used to arrange the cats' names in ascending alphabetical order.