What is an oxidation number? Is it always positive or negative?
An oxidation number is a value applied to an atom in a molecule or ion mainly for the purpose of determining whether that molecule or ion undergoes oxidation or reduction in a particular reaction. It can be either positive, negative or zero.
To see where oxidation numbers come from, one imagines a world in which all bonds are ionic. Electrons are lost or gained in every case - none of that complicated electron-sharing business.
Then, when a true covalent bond is encountered, you "give" the bonding electrons to the more electronegative atom. Once this imaginary process is complete for a molecule (or ion) the charge each atom acquires is its oxidation number.
For example, in water, each H atom is bonded to the oxygen atom. If you give the bonding electrons to the more electronegative oxygen atom, (with the usual full electron shell occurring) that oxygen would be considered an ion with charge -2. Hence, we say its oxidation number (in water) is -2. Likewise, each H atom, having lost one electron is considered to be an ion of charge +1, and its oxidation number is +1. In this way, it is a sort of false charge. This is handy to know, because oxidation numbers, in many ways behave like real charges.
When a redox reaction occurs, one atom will always show an increase in oxidation number as it changes from reactant to product. The particle in which this atom is found has been oxidized (lost electrons). Another atom must necessarily show a decrease. This particle has been reduced (gained electrons).
Whether or not the atom showing the change in oxidation number was the one that actually gained or lost the electrons does not matter. Something in that molecule underwent the change, and so we know the molecule was oxidized (or reduced).
Of course, in practice, we don't actually assign the numbers this way, by determining all the bonding arrangements, etc. Too complicated! There is a set of rules for assigning them, which can be found in all standard texts.