You would want one database that contains all tables related to the project. Each table will contain data related to one group of information (i.e. one for agents and one for addresses).
What you are asking about is called Database Normalization. Here's a tutorial:
An Introduction to Database Normalization
intro-to-normalization.html
The only difference in the admin side and the public side is who is allowed acess to the pages. You would use Security Assist to protect the admin pages. The admin pages will allow you to create, read, update, and delete (called CRUD) items in your tables, while the public side reads the information in the same tables.
You store links to images in an image folder and use an entry in the database to point to them. I would use the same ID that you assign to the property as the image name.