I was interested to read Ian Murphy's story about SQL Anywhere. Despite the availability of embedded databases, it seems to me that the database (in the DBMS sense) hasn't really come to mobile devices like phones yet. This is largely because of resource constraints - they're back in the 1970s mindset before enterprise databases …
There are other solutions
Very small portable C application with bindings in many languages. Works extremely well.
What are you talking about!
The normalization that you see in a mobile phone's contact database is not the fault of the database, but that of the database designer and the app developer.
It is also a problem with how people interpret "normalization" of data.
Many forget that their is a context for the data. So that its a combination of the context and the data. Also its not the precise data itself, but the data elements that should be normalized.
In this case, the contacts database may just put a link to a table to store the addresses and if they are going to keep just one copy of the address, then they need to track the link count when they delete a record.
What you're experiencing is poor interaction between a database DBA and the app developer.
"The normalization that you see in a mobile phone's contact database is not the fault of the database, but that of the database designer and the app developer."
Exactly - and I thought that was what I said. Check out the penultimate paragraph.
Synchronization matters too
[disclaimer - I work for Sybase]
Your point about it being "not just the database software" is a good one. It will be interesting to see how quickly developers working on mobile phones move towards thinking about storage in relational terms, and I hope you are right that SQL Anywhere 10 catalyzes that change. Given the changes in data storage and wireless networks it has to happen sooner or later, so it might as well be sooner.
There is another part that matters though, which is data synchronization. Data on the phone is rarely isolated - especially if it is for business use -- so sclable and efficient data synchronization matters as well as data storage. Which is one of the reasons that we think SQL Anywhere is a particularly good solution for developers' needs, and not just one more database that can fit in a mobile phone.
And what about...
And let's not forget Java DB (aka Apache Derby and IBM Cloudscape)...
People who work for vendors (as long as they own up to it) are welcome to comment here. They often have special knowledge - and we're all adults and can make our own minds up about what they say, after all.
As for synchronisation, yes I agree. But isn't this what we used to call "an implementation detail"? A well organised DBMS with a good underlying theory that supports distributed use (like Relational) ought to support synchronisation well. Of course, some RDBMSs might be more equal than others...
"It will be interesting to see how quickly developers working on mobile phones move towards thinking about storage in relational terms"
- yes, indeed.
- Updated Zucker punched: Google gobbles Facebook-wooed Titan Aerospace
- Elon Musk's LEAKY THRUSTER gas stalls Space Station supply run
- Android engineer: We DIDN'T copy Apple OR follow Samsung's orders
- Windows 8.1, which you probably haven't upgraded to yet, ALREADY OBSOLETE
- VMware reveals 27-patch Heartbleed fix plan