The "Database Size" on the properties page is showing the size of the data file. This will be the size of your data, with some empty space for new data. You can configure the rate at which this empty space is allocated in the database properties.
It says space available 0.03Mb because you've shrunk the data file down - it will grow by itself to allow for new records - this is normal and intended behaviour. This "Available Space" is what's left in the current data file, NOT the difference between your current database size and the licensed limit of 10GB.
You can verify the edition that is installed by checking the General page in the Server properties under Product. In the management studio header it only shows the general version, not the product edition.
When you delete a lot of records, you will end up with free space left in the file. This will not be automatically shrunk unless you set up a maintenance task for it.
On the question of the size of things, first of all you said that you shrank a database, so that would reduce the DB size of the space that was discarded during the shrink. John M also provided some clarification.
Regarding the numbers in the bottom picture, they are:
select (2585832 / 1024.0) /* KB from the Reserved in the bottom picture to MB */
+ 43.96 /* MB free */
SpaceAllocated
---------------
2569.186562
So you can see that 2569.19 MB is essentially the same as 2569.73 MB
The other numbers in the bottom picture are showing you how that database is allocated:
reserved data index_size unused
----------- ---------- --------- ---------
2585832 KB = 2315184 KB + 137216 KB + 133432 KB
So it is pretty straight-forward and actually gives you some useful insight into your space utilization.
Additional Notes: Yes, when you shrink a database, it actually compacts the data and then releases the no longer used disk space. Of course, SQL Server 2005 Express can have many databases that are 4 GB. (If you update to a more recent version of SQL Server Express, the limit is 10 GB per database, not including the log space.)
Within a database the unused
column in the example, defines how much space currently exists in the database file that could be used for adding more data. However, the database can be expanded to its maximum size or you can set autogrowth to allow it to grow in selected increments. (Use exact growth values, not percentages.)
Best Answer
Here is a good script I shamelessly ripped from here:
This is good because it will give you the free space in each DB file (you might have multiple files and perhaps someone set it up to put some objects in each) as well as the free size.
For example, you have have a 4GB data file which has 3GB of free space. Maybe you have 1 MDF without a lot of data but a NDF with lots of data. This query will tell you the free size in each file and what DB that file is allocated to. Remember to add up all the 'SPACE_USED_MB' for each DB to get the total size.
Good luck!
Edit: Removed a unsupported and buggy command that I thought I could get away with posting in here for this query. :(