As other have said, a backup is full copy of the database. BACKUP works on a low level, and does not really understand tables. It simply writes pages to disk (or tape).
If you think some data is missing, a possible explanation is that you did something like this:
BACKUP DATABASE db TO DISK = 'C:\temp\existingfile.bak'
RESTORE DATABASE db FROM DISK = 'C:\temp\existingfile.bak'
In this case, BACKUP appends the backup to the existing file, but when you restore the database, RESTORE picks the first backup.
You can do this:
RESTORE HEADERONLY FROM DISK = 'C:\temp\yourbackup.bak'
If you see more than row, this means that you have multiple backups. If there are five rows, and you want the most recent one, you need to add WITH FILE = 5 to your RESTORE command.
And, no, this is not the most user-friendly design.