1.2 数据描述与数据模型
1.2.1 数据的3种范畴
数据不能直接从现实世界存放到数据库中,它需要经过人们的认识、理解、整理、规范和加工,也就是说,数据从现实世界进入到数据库中经历了3个层次,即现实世界、信息世界和机器世界,称为数据的3种范畴。
1.现实世界
现实世界也称为客观世界。人们头脑之外的客观事物及其相互联系就在这个世界中。现实世界中所有客观存在的事物及其相互之间的联系只是处理对象最原始的表现形式。
2.信息世界
信息世界又称为观念世界,是现实世界在人们头脑中的反映,或者说,在信息世界中所存在的信息是现实世界中的客观事物在人们头脑中的反映,并经过一定的选择、命名和分类。
3.机器世界
当信息进入计算机后,即进入机器世界范畴或存储世界范畴。其中机器世界也称为数据世界。
由于计算机只能处理数据化的信息,所以对信息世界中的信息必须进行数据化。信息经过加工、编码后即进入数据世界,由计算机来进行处理。因此,数据世界中的对象是数据。现实世界中的客观事物及其联系在数据世界中是用数据模型来描述的。
数据化后的信息称为数据,所以说数据是信息的符号表示。
1.2.2 信息世界中所涉及的基本概念
(1) 实体(Entity)。实体是客观存在的事物在人们头脑中的反映,或者说,客观存在并可相互区别的客观事物或抽象事件称为实体。实体可以指人,如一名教师、一名护士等;也可以指物,如一把椅子、仓库、一个杯子等。实体不仅可以指实际的事物,还可以指抽象的事物,如一次访问、一次郊游、订货、演出、足球赛等;甚至还可以指事物与事物之间的联系,如“学生选课记录”和“教师任课记录”等。
(2) 属性(Attribute)。在观念世界中,属性是一个很重要的概念。所谓属性是指实体所具有的某一方面的特性。一个实体可由若干属性来刻画。例如,教师的属性有姓名、年龄、性别、职称等。
属性所取的具体值称为属性值。例如,某一教师的姓名为李辉,这是教师属性“姓名”的取值;该教师的年龄为45,这是教师属性“年龄”的取值,等等。
(3) 域(Domain)。一个属性可能取的所有属性值的范围称为该属性的域。例如,教师属性“性别”的域为男、女;教师属性“职称”的域为助教、讲师、副教授、教授等。
由此可见,每个属性都是一个变量,属性值就是变量所取的值,而域则是变量的变化范围。因此,属性是表征实体的最基本的信息。
(4) 码(Key)。唯一标识实体的属性集称为码。例如,学号是学生实体的码。
(5) 实体型(Entity Type)。具有相同属性的实体必然具有共同的特性和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,教师(姓名,年龄,性别,职称)就是一个实体型。
(6) 实体集(Entity Set)。同一类型实体的集合。例如,某一学校中的教师具有相同的属性,他们就构成了实体集“教师”。
在信息世界中,一般就用上述这些概念来描述各种客观事物及其相互的区别与联系。
1.2.3 机器世界中所涉及的基本概念
与信息世界中的基本概念对应,在数据世界中也涉及一些相关的基本概念。
(1) 数据项(字段,Field):对应于信息世界中的属性。例如,在实体型“教师”中的各个属性中,姓名、性别、年龄、职称等就是数据项。
(2) 记录(Record):每个实体所对应的数据。例如,对应于某一教师的各项属性值李辉、45、男、副教授等就构成一条记录。
(3) 记录型(Record Type):对应于信息世界中的实体型。
(4) 文件(File):对应于信息世界中的实体集。
(5) 关键字(Key)。能够唯一标识一个记录的字段集。
1.2.4 实体间的联系
在现实世界中,事物内部及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。
两个实体型之间的联系可以分为以下3类。
1.一对一联系(1∶1)
如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1 : 1,用图1-3表示。
图1-3 1 : 1联系
例如,实体集“学院”与实体集“院长”之间的联系就是1 : 1的联系。因为一个院长只领导一个学院,而且一个学院也只有一个院长。再如学校里,实体集“班级”与实体集“班长”之间也具有1 : 1联系,一个班级只有一个班长,而一个班长只在一个班中任职。
2.一对多联系(1 ∶ n)
如果对于实体集A中的每一个实体,实体集B中有n个(n≥0)实体与之联系,反之,对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1 : n,用图1-4表示。
图1-4 1 : n联系
例如,实体集“班级”与实体集“学生”就是一对多联系。因为一个班级中有若干名学生,而每个学生只在一个班级中学习。
3.多对多联系(m ∶ n)
如果对于实体集A中的每一个实体,实体集B中有n个(n ≥0)实体与之联系。反之,对于实体集B中的每一个实体,实体集A中也有m个(m ≥0)实体与之联系,则称实体集A与实体集B具有多对多联系,记为m : n,用图1-5表示。
图1-5 m : n联系
例如,实体集“课程”与实体集“学生”之间的联系是多对多联系(m : n)。因为一个课程同时有若干名学生选修,而一个学生可以同时选修多门课程。实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。