By the way, I'm not sure how you're planning on doing this, but if the server is actually one of the players, then it would be slightly different than using a dedicated server. For simplicity I'm going to assume for now that the server is one of the players.
Quote: "How do you tell the each user's computer that one of your units have been updated or does each computer download all of the data base to check for updates."
When something changes, you can either:
1. Send data about it right then to everyone.
2. Queue the data up to send at a set time - this avoids the flooding effect that would occur if you were creating loads of buildings one by one.
I would personally prefer #1 in some situations because I feel it would be better to keep players as up-to-date with your data as possible. In situations like when you create multiple buildings of the same type, you could have an option where you perhaps drag the mouse cursor to create a group of buildings, then send data about all those buildings at the same time. #1 would be best for data regarding the new waypoints of units.
If #2 is used for certain things, then you'll need to queue the events, and when you send all the data at once you need to send the current progress of that event. For example, if constructing a building, you must send data for the progress of the building; if moving units, you must send data for the current position of the units.
The most difficult problem I think you'll probably have is when it comes to moving units - you don't want another player to calculate a different path for units you have moved, otherwise you will have synchronization issues. The most sensible thing would be to have the server calculate all paths for units - yes, even for units of the other players.
Considerations exist in the side of the other players (the clients). When another player does something - for example starting the production of a unit - this event data should first go to the server, then the server will give some sort of reply telling the client to show the player that production has started. The delay might be annoying if one side has a slow connection, but it's the only way to be sure that everything is synchronized.