Validation is where you check user submitted data to make sure it meets the formatting requirements you expect. For instance in a password you might want to limit it to alphanumeric characters and 6-16 character length, in which case you'd run it against a regexp like ^[a-zA-Z0-9]{6-16}$ or something similar. The purpose is to limit the range of things a user can do and thus limit the range of unexpected circumstances you have to deal with, which result in bugs. For instance if you're storing your passwords in a database, and your password field is limited to 16 characters, what happens when you send it an 18 character password? Splat.
Sanitation is where you strip out potentially dangerous characters and escape characters that you want to keep, but that may have special significance to your data structure. When you sanitize a forum post for instance you remove or escape HTML tags to prevent people from breaking the forum layout or inserting malicious scripts. As another example, suppose you store some user submitted information in a file and you seperate each field by a comma. In that case you want to either strip out commas, replace them with a dummy character that you'll replace with a comma again before displaying information, or escape them by using an html entity or a backslash, so that the code you write to read the field doesn't pick up the comma as a separator by mistake.
Oh, the reason people use databases is they're a lot faster, more efficient and easier to maintain than file based storage, what need are you looking to meet by not using a database? It seems like you're actually going to end up with a more complicated system, rather than a less complicated one.