Overall, I'm trying to understand the differences between distributions, Operating systems and release code names (stable, experimental, testing) for Linux and how can those are listed in release files. I know some are based on toy story characters and I'm using Ubuntu but I'm not sure as to what the different names mean. Not where to look for them. When I run lsb_release it says ubuntu 14.04.3 but if cat /etc/debian_version it says jessie/sid.
As far as i understand the underlying thematics and your question, here are my two cents.
As i neither use Ubuntu nor Debian, this might be wrong, so feel free to correct me.
an O(perating)S(ystem) which is
a Linux distribution (based on Linux, in this case Debian)
Stable/testing/experimental refer to the general "completeness" (if you'd like to call it that way) of the release
- stable is, as the word stable implies, stable. This release should run without greater problems, or unsolved issues.
- experimental and testing on the other hand not. So you would expect at least some issues to be unresolved and not everything working like a charm.
Order of rank is experimental -> testing -> stable
You should probably check Faheem Mithas answer on a similar question.
As to the toy story thing you mentioned, have a look at here, in short:
...the release team chooses code names...
This is totally up to the ones releasing.
You could also name the release Debian-"enter_whatever_you_like".
And last but not least
When I run lsb_release it says ubuntu 14.04.3 but if cat /etc/debian_version it says jessie/sid.
Guessing upon the results you posted, i'd say
lsb_release shows you Ubuntus version, which apparently is 14.04.3,
cat/etc/debian_versionshows you the version of Debian on which Ubuntu version 14.04.3 is build upon.
Anyways, despite the two links i delivered here, have a look at the Related Posts section to the right, there should be more than enough answers to your question (which honestly is quite unclear to me, there are so many questions packed into one).