http://www.mso.anu.edu.au/~ralph/OPTED/
This is what I always used when I need a dictionary. It has definitions and part of speech, but not synonyms.
This is in plain text with some html formatting, however with a simple script I am sure you can parse it into a SQL database. Probably in the end it will be quite large.
source share