百度了很久,感觉大家说的都是头头是道,但是谁也没说清楚到底什么是模式,什么是模型。
首先依据 高等教育出版社 王珊老师的数据库系统概论。
我们可以将数据库模型简单地理解为抽象表达现实生活中的实体之间联系的方式,例如层次模型,网状模型,以及关系模型。
因为数据库模型的三要素就是数据结构,数据操作和完整性约束条件,层次模型的数据结构就是层次结构,这三者决定的是整个数据库系统的结构和运行方式,层次数据库,网状数据库,关系数据库,这是一个关于你使用的数据库软件如何抽象化实体之间关系的问题,和用户如何定义自己的数据库是截然不同的概念,换句话说,如今的数据库基本都是关系数据库,只有数据库设计者才会考虑数据库模型层面的问题。
而数据库模式分为内模式,模式和外模式,其定义了包括数据的存储方式,数据的逻辑结构,乃至用户/应用能够看到的数据的逻辑结构等内容,数据库的模式是用户可以创建的,如果只考虑实际的应用,我们可以简单地将模式理解为工作空间,例如多个公司共用一个数据库,那么为每个公司创建一个模式并在对应的模式下创建表,各个公司在自己的工作空间里面调整修改创建自己的表就可以了,这个模式就是这个工作空间,只不过我们认为模式是这个工作空间下所有数据以及关系的抽象表示,包括数据如何存储,表的结构表示,以及表之间的关系,以及用户如何看到的逻辑结构,也就是对应了内模式,模式和外模式。
总而言之,模型可以理解为编写数据库软件时需要考虑的东西,模式则是一个工作空间,我们也可以理解为是一个数据库的抽象表示,其与其他的工作空间相互分离。
个人理解,如果有能完全讲清楚的模式与模型的大佬,欢迎指出文中谬误。