概念
首先需要知道的是:在数据建模中,属性和实体之间存在一种内在的关系
- 属性是实体的属性或特征。换句话说,实体是属性的宿主,而属性则是描述实体的各种特性的方式。
- 属性可以用来描述实体的某些属性,比如一个人的姓名、年龄、性别,一个公司的名称、地址、电话等等。
- 属性可以帮助标识实体,如一个人的身份证号码是一个主要的属性,在存在众多人的情况下,可以通过身份证号码来确定某个特定的人。
- 属性之间的关系非常重要,因为它们可以为实体提供有关它们自身的有用信息。例如,一个人的出生日期可以用来计算他/她的年龄,因此出生日期和年龄之间具有关联性。
- 每个实体可以有多个属性,每个属性也可以被多个实体所共享。例如,多个人可以共享一个地址,同样一个公司也可以有多个电话号码。
在数据建模中,属性和实体的关系需要精心设计,以确保数据的完整性、准确性和一致性。在设计关系时应该考虑多种情况,并且必须确保每个实体都具有足够的属性来描述它。
分类
在数据建模中,属性通常被划分为以下几个分类:
- 简单属性:简单属性是指不能再分解成更小单位的属性。简单属性通常是最基本的属性,例如,一个人的名字、身高、体重等。
- 复合属性:复合属性是由两个或多个简单属性组合而成的属性。例如,一个人的地址可以被分解成省、市、区等简单属性的组合。
- 派生属性:派生属性是由其他属性计算而得到的属性。例如,一个人的BMI指数可以通过身高和体重计算而得出,是人的身高和体重的衍生属性。
- 空属性:空属性是一个没有值的属性。在某些情况下,属性可能没有相关的值,此时将属性设置为空属性。
- 多值属性:一个实体可以有多个相同类型的值,称为多值属性。例如,一个人可以有多个电话号码,这些电话号码都属于此人的多值属性。
- 必选属性:如果一个属性是实体的必要属性,则称为必选属性。必选属性必须填写某种类型的值。
- 唯一属性:唯一属性的值是不重复的。例如,一个人的社会保障号码是唯一属性,每个人都有唯一的社会保障号码。
取值范围
如下表是属性各种类型的取值范围的
数据类型 | 取值范围 | 例子 |
---|---|---|
整数型 | 所有整数 | 1,-3,1000 |
浮点型 | 所有实数 | 3.14,-2.5,0.00005 |
字符型 | 字母、数字等组合 | "Hello", "123", "aBcD" |
布尔型 | 真或假 | true,false |
枚举型 | 固定的几个取值 | "男","女","未知" |
日期型 | 日期、时间等 | 2022-11-11,14:20:30 |
范围型 | 指定范围内的数值 | 1-100,5.5-10.0 |
集合型 | 多个取值组合形成的集合 | {"red", "yellow", "blue"}, {1, 2, 3} |
举个例子
假设正在建模一个学生信息系统,可以根据以下属性和取值来定义学生信息:
属性 | 数据类型 | 取值范围 | 例子 |
---|---|---|---|
学号 | 整数型 | 所有正整数 | 1001,5555,8888 |
姓名 | 字符型 | 不限制 | "张三","Li Lei","Marry" |
性别 | 枚举型 | {"男","女","其他"} | "男","女","其他" |
年龄 | 整数型 | 1~200 | 18,20,30 |
身高 | 范围型 | 80~220cm | 170,190,200 |
体重 | 范围型 | 30~200kg | 70,80,100 |
学院 | 字符型 | 不限制 | "计算机学院","外语学院","艺术学院" |
专业 | 字符型 | 不限制 | "计算机科学与技术","英语","音乐" |