关系数据库是目前各类数据库中最重要、最流行的数据库,也是目前使用最广泛的数据库系统。20世纪70年代以后开发的数据库管理系统产品几乎都是基于关系的。在数据库发展的历史上,最重要的成就就是关系模型。
关系数据库模型使用E-R图来描述,将世界看作是由实体和联系构成的,其中的信息是以二维表来存储的。为了描述表的结构及表与表之间的联系,E-R图包含以下3部分。
1.实体
实体是指客观存在、可相互区分的事物。实体可以是具体的对象,如一个学生、一门课程、一艘船、一幢房子、一件产品、一座仓库等;也可以是抽象的事件,如一次选课、一次购房、一次订货等。在关系模型中,实体通常是以表的形式来表现的。表的每一行描述实体的一个实例,表的每一列描述实体的一个特征或属性。
2.属性
实体集中的所有实体都具有一组相同的特性,如学生实体集中的每个实体都有学号、姓名、年龄、性别、系、籍贯等特性。实体所具有的某一特性称为属性。
3.实体间的联系
实体间的联系就是实体集与实体集之间的联系,这种联系共有以下3种。
(1)一对一联系:如果对于实体集E1中的每个实体,在实体集E2中至多只有一个实体与之对应,反之亦然,则称实体集E1与E2之间的联系是一对一联系,记为“1∶1”。例如,影剧院中观众和座位之间就具有一对一的联系,因为在一个座位上最多坐一个观众,而一个观众也只能坐在一个座位上。
(2)一对多联系。如果对于实体集E1中的每个实体,在实体集E2中有任意个(零个或多个)实体与之相对应,而对于E2中的每个实体,却至多和E1中的一个实体相对应,则称实体集E1与E2之间的联系是一对多联系,记为“1∶n”。例如,学校的专业与学生之间、公司的部门与其职工之间、球队与球员之间,都具有一对多的联系。(www.xing528.com)
(3)多对多联系。如果对于实体集E1中的每个实体,在实体集E2中有任意个(零个或多个)实体与之相对应,反之亦然,则称实体集E1与E2之间的联系是多对多联系,记为“m∶n”。例如,学校的学生与课程之间就具有多对多的联系,因为一个学生可以选修多门课,一门课也可以被多个学生选修。公司的产品与其客户之间也具有多对多联系,因为一个产品可以被多个客户订购,一个客户也可以订购多个产品。
在数据库管理系统中,需要维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作,必须有一定的约束条件,可以通过数据完整性来实现。具体是指数据的正确性和可靠性。关系数据库具有3类完整性,包括实体完整性、域完整性和参照完整性。
1.实体完整性
实体完整性要求表中所有的行具有唯一的标识符,即primary key、unique、identity。是否可以改变主键值或删除一整行,取决于主键和其他表之间要求的完整性级别。在学生表中,学号定义为主键,则在学生表中不能同时出现2个学号相同的学生,也就是通过学号这个主键实现了学生表的实体完整性。
2.域完整性
域完整性指定一组对列有效的数据值,并确定是否允许有空值。通常使用有效性检查强制域完整性,也可以通过限定列中允许的数据类型、格式或可能值的范围来强制数据完整性。例如,学生的年龄定义为两位整数,范围还太大,可以写如下规则,把年龄限制在15~30岁之间:check(age between 15 and 30)。
3.参照完整性
参照完整性也称为引用完整性,该完整性确保始终保持主键(在被引用表中)和外键(在引用表中)的关系。如果有外键引用了某行,那么不能删除被引用表中的该行,也不能改变主键,除非允许级联操作。可以在同一个表中或两个独立的表之间定义参照完整性。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。