Your RPM DB could be corrupted (this can happen specially if you interrupt ongoing rpm operations).
Check if there are __db* files on /var/lib/rpm; if you find them, these are lock files and mean that some rpm operation aborted. Assuming there are no rpm operations going on, it is safe to do this (as root):
rm -f /var/lib/rpm/__db*
rpm --rebuilddb -vv
(rebuilddb usually takes a while)
If for any reason DB rebuild fails, you might have a more 'delicate' probl, and maybe these can help you:
http://www.rpm.org/hintskinks/repairdb/
https://bugzilla.redhat.com/bugzilla....cgi?id=106459
HTH