知识卡片

模式与子模式:共享数据同时限制访问范围

专业/工作 · 1293.a

内容

模式是整个数据库结构的完整描述,子模式则是只与特定用户需求相关的那一部分描述——比如大学数据库的模式里,学生记录会关联到指导教师的完整记录(包括工作经历),但注册处的子模式可以只暴露”谁是哪个学生的导师”这一层关联,完全不包含教师的工作经历,而薪资部门的子模式则相反,能看到工作经历却看不到师生关联。这样一来,同一份底层数据库可以安全地服务于需求完全不同、甚至互相不该看到对方所需信息的多个用户群体。发散:模式/子模式机制体现的是”数据共享”和”访问控制”这两个看似矛盾的目标可以同时达成的关键思路——不是靠复制出多份阉割版数据(那样又会带来[[数据库通过多维链接超越平面文件的单一视角|平面文件式]]的冗余和不一致问题),而是靠在同一份完整数据之上,为不同用户定义不同的”可见范围”,这与现代权限系统里”基于角色的视图裁剪”是同一个思路的早期形态。

参考来源

《计算机科学概论》第9章《数据库系统》