Logic languages are free from the ambiguities of natural languages, and are therefore specially suited for use in computing. Model theory is the branch of mathematical logic which concerns the relationship between mathematical structures and logic languages, and has become increasinglyimportant in areas such as computing, philosophy and linguistics. As the reasoning process takes place at a very abstract level, model theory applies to a wide variety of structures. It is also possible to define new structures and classify existing ones by establishing links between them. Theselinks can be very useful since they allow us to transfer our knowledge between related structures. This book provides a clear and readable introduction to the subject, and is suitable for both mathematicians and students from outside the subject. It includes some historically relevant informationbefore each major topic is introduced, making it a useful reference for non-experts. The motivation of the subject is constantly explained, and proofs are also explained in detail.