On 2013.09.02 6:06 AM, Simon Slavin wrote:
The 'R' stands for 'relational' -- the sort of things SQLite implements with FOREIGN KEYS. A user model was assumed as part of Ted Codd's description of a 'proper' DBMS but he didn't require it, he only said that if you had a user model, the DBMS should let you manipulate it using data-base commands (i.e. users are entries in a table) rather than using a different system.
In a general sense, the definition of a relational database is very simple, which is that the database presents all of its contents in terms of relation-typed variables, which SQL calls tables, and provides operators for working with them.
People often think that the ability to do joins or having foreign keys is what makes a database relational, but that isn't true. Fundamentally "relationships" exist between all the individual attributes within a relation or columns within a table, where they are 1:1, eg that a business name is related to a business id, and such, and having multiple relations or tables lets you also have N:M relationships.
Most of the stuff people associate with relational databases are strictly optional, though some of that is best to have in practice.
-- Darren Duncan _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users