This is a summary from a post that I wrote for Open Knowledge Foundation discussion list
Open Source licenses control the use of computer programs (software) while open data licenses such as Open Database License (ODbL) concern primarily the use of databases and their content. Nevertheless a database often constitutes part of the software. Therefore there is some overlap between the two. The following questions and answers demonstrate a real life scenario that is based on MEDILIG project.
Why do you apply two licenses ODbL and GPL for the MEDILIG project ?
MEDILIG project is a software product/service and it also includes a database. The use of the database cannot be covered with a GPL license.
Software is normally covered by software licenses. Why did not you apply only GPL license ?
GPL does not tell you anything about who controls the database and what are the rights of the user on the database. For example consider the deployment scenario where the software is open but the database is locked. Does the user have the right to unlock the database, does he have the right to export or import his data from/to the database and in what extent? Can he create a derivative database or use the existing one collectively as part of other system developed? Software developers and/or vendors often use databases as leverage to lock users into support contracts and licenses. ODbL grant rights to the user and prevents this behaviour. It is section 3.0 and 4.0 of the full license text .
What parts of the database you cover with OdBL ?
Section 2.2a of ODbL license says that it is likely to cover database model or schema. This is true, you may cover the general design, but you cannot cover specific details of the database schema, e.g. Microsoft SQL Server implementation. You can do that only by GPL because it is coding. Another useful distinction between ODbL and GNU GPL.
What about the contents of the database ?
There is the content of look-up tables which is usually static, it hardly ever changes, and the content of main tables where you expect to find all sort of information that is added dynamically or exists, such as factual data, images, etc. In my opinion there should be a distinction of the two because look-up data is part of the design and/or customisation of the database. On the contrary content data that the user added on an empty database delivered by the developer have a separate copyright.