数据库设计应遵循哪些核心原则?