Although ROLE_PRIVILEGE are defined in the core data, their parent rows that are supposed to be present in the PRIVILEGE table are added only in the demo-data. This means that people who install without demo data do not get these privileges and database is not in the correct FK constraints. Thus, the changeset which adds privilege needs to be moved from demo-data to core-data.
Similarly, the roles of "Authenticated" and "Anonymous" are used in core-data through the ROLE_PRIVILEGE table, but they are not added to the tables in core-data. These changesets also should be moved from demo-data to core-data.
Also, demo-data references in the CHILD_ROLE and PARENT_ROLE columns, "Clinician", "Data Assistant" and "Data Manager" roles, but does not add these in demo-data.xml, due to which even after complete installation, these roles are missing from the ROLE table and hence database violates FK constraints.