When you delete data in a SQL Server database, SQL Server just marks the pages as free, but does not overwrite the data. Just like any modern file system does not actually delete the files but instead just marks the disk blocks as free.
To clean out your database I would try the following:
- delete the data
- rebuild all indexes and heaps (rebuild, not reorganize)
- shrink each datafile with reorganization of the pages to the minimum possible size
- repeat 2 and 3 a few times
- execute a checkpoint
- detach the database and rename the logfile
- reattach the database forcing SQL Server to recreate a new empty log file (http://www.mssqltips.com/sqlservertip/1894/attach-a-sql-server-database-with-a-missing-transaction-log-file/)
- run a
DBCC CHECKDB
to make sure you did not break anything - take the backup
Now this is a very destructive process, so be sure to never do this to a database you want to keep using yourself, but it should remove all the deleted data.
Rebuilding the indexes is necessary, because otherwise a single deleted row might survive amongst non-deleted rows within a page. Reorganizing and shrinking removes unused pages. However sometimes it does not completely clean up, therefore you need to repeat the steps 2 and 3. 4, 5 and 6 make sure that there is no trace of the data left in the log file that otherwise would, depending on your recovery model, still contain the deleted data, potentially several times.