Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database design 泛化与专业化的区别_Database Design_Entity Relationship - Fatal编程技术网

Database design 泛化与专业化的区别

Database design 泛化与专业化的区别,database-design,entity-relationship,Database Design,Entity Relationship,我似乎无法理解它们之间的区别,因为它们似乎与我非常相似,尽管我的课堂讲稿说它们是相反的 以此为例: 显然,绿色区域是一个泛化区域,而红色区域是一个特化区域。但我不明白,因为在我看来,它们都可以被视为泛化 有人能帮我澄清一下吗?这取决于你如何解释盒子的方向性。一般化和专门化是完全对立的,或者说是同一枚硬币的两面。泛化是指获取一组类、提取它们的共享属性并将它们放在一个超类或基类中的过程(术语取决于您最喜欢的编程语言)。专门化是指获取单个类并将其拆分为两个或多个彼此不同的实例的过程 在您的示例中,如

我似乎无法理解它们之间的区别,因为它们似乎与我非常相似,尽管我的课堂讲稿说它们是相反的

以此为例:

显然,绿色区域是一个泛化区域,而红色区域是一个特化区域。但我不明白,因为在我看来,它们都可以被视为泛化


有人能帮我澄清一下吗?

这取决于你如何解释盒子的方向性。一般化和专门化是完全对立的,或者说是同一枚硬币的两面。泛化是指获取一组类、提取它们的共享属性并将它们放在一个超类或基类中的过程(术语取决于您最喜欢的编程语言)。专门化是指获取单个类并将其拆分为两个或多个彼此不同的实例的过程

在您的示例中,如果您的数据模型从Person类开始,然后您意识到谈论“Persons”对于您的目的来说太笼统了。然后介绍4种不同类型的人,即学生、普通员工、讲师和导师,所有这些人都具有与人相同的属性。这个过程称为专门化。如果您决定其中3种类型共享一些相同的属性,并引入另一种类型来处理它,则该过程称为泛化


但归根结底,这两个术语都表示对象之间的继承关系。你可以说X是Y和Z(泛化)的父代,当然你可以说Y和Z是X(特化)的子代

因此,每个DVD都有一个独特的类型,这类内容将使用泛化来建模,对吗?在这种情况下,DVD类是泛型类,每个类型都是DVD类的一个特化(戏剧DVD、喜剧DVD等)。另一个不相关的注意事项是,最好有一个电影基础课,让孩子们学习戏剧电影、喜剧电影等。这是因为DVD可以存储不一定是电影或音乐的东西。是的,这是有意义的。非常感谢你的回答,他们非常有帮助