关系模式(Relation Schema)[2]是数据库设计中最基本的理论基础之一,其描述了数据在关系型数据库中的结构和组织方式。一个关系模式需指出该关系的结构,包括构成属性、属性所属的域、属性和域之间的映射关系等。1970年,英国数学家爱德加·科德(E. F. Codd)在其经典论文中首次提出关系模型的概念,奠定了关系数据库的理论基础,在关系模型中,关系是用于描述数据的主要结构,关系模式则是对关系的简洁表示。1972年,为支持基于关系模型的数据库设计,E.F.Codd博士提出了规范化技术。在20世纪80年代,范式化设计作为一种评价和规范关系模式设计的方法,被广泛应用于设计更加规范和高效的数据库模式。同时,随着数据库应用场景的扩大和复杂化,为了平衡数据冗余和一致性的同时提高系统查询效率和简化数据模型,人们在设计数据库时开始更多的关注反范式化设计的使用。而20世纪末到21世纪初,随着大数据的兴起和应用以及复杂数据结构的需求,对象关系模型(ORM)和NoSQL(Not Only SQL)数据库的出现提供了更加灵活和可扩展的数据存储方案,使得数据的存储和操作更加灵活和方便。关系模式定义了数据库中包括表名、列名、数据类型、主键、外键等关于表的结构的信息以及主键约束、唯一约束、外键约束、检查约束等各种约束条件,为数据存储提供了规范和结 构化的基础,减少了如文件系统等传统的数据管理方法存在的数据冗余、一致性维护困难等问题。 发展演变
1970年,英国数学家E. F. Codd在论文《A Relational Model of Data for Large Shared Data Banks》中提出了关系模型的概念[3],包括关系、元组、属性等,并首次将数据组织为一组二维表格(关系)的形式。关系模式则指出了该关系的结构,描述了数据在关系型数据库中的结构和组织方式。因此,在关系数据库中,一张表结构可称为一个关系模式,表中的内容称为一个关系,关系模型则是由若干个关系模式组成的集合。1972年,科德在《Further Normalization of the Data Base Relational Model》中提出了规范化技术。规范化通常作为对表结构的一系列测试来决定它是否满足或符合给定范式。Codd的范式化设计作为一种评价和规范关系模式设计的方法,成为了数据库设计的重要技术之一,包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。1974年,科德和美国科学家Raymond F. Boyce 在《Recent Investigations into Relational Data Base Systems》中对原来的3NF作了进一步的修正,提出了更为严格的定义,即Boyce-Codd范式(BCNF)。范式化技术通过分解不符合要求的关系模式,得到符合范式要求的更小的关系模式,以达到减少数据冗余、提高数据一致性和完整性的目的。1985年,科德在“Computer Worold”杂志上提出的完全关系型的12条严格标准,即科德十二定律(Codd's12 rules),其确立了关系模式在数据库系统中应该如何被处理和实现的标准。Codd's12 rules包括准则0、信息准则、保证访问准则、空值的系统化处理、基于关系模型的动态的联机数据字典、统一的数据子语言、视图更新准则、高级的插入、修改和删除操作、数据的物理独立性、数据逻辑独立性、数据完整的独立性、分布独立性和无破坏准则。这些规则被认为是关系数据库的基本要求,奠定了关系数据库理论的基础,并对数据库管理系统的发展产生了深远影响。20世纪80年代末和90年代初,随着关系数据库系统的发展和应用的深入,人们意识到范式化设计在某些场景下可能导致性能下降问题,反范式化设计也在实际应用中的意识逐渐增强。反范式化设计,即有意放弃范式要求,以提高查询效率、减少联接的复杂性或简化应用程序代码等为目的。常见的反范式化技术包括冗余设计、使用非规范化表等,其具体操作为在一个表中增加另一个表的冗余字段,减少了两个表查询时的关联,即减少连接运算,从而提高查询效率。20世纪90年代末,对象/关系数据库出现,其表示对某些初始的SQL产品向上兼容的扩展,如DB2和Informix。面向对象的方法和技术对计算机各个领域,包括程序设计语言、信息系统设计等方面都产生了深远的影响,同时促进了数据库中面向对象数据模型的研究和发展。许多关系数据库厂商为了支持面向对象模型,对关系模型做了扩展从而产生了对象关系数据模型,其将数据库中的关系模式映射为面向对象的模型,使数据的存储和操作更加灵活和方便。20世纪末至21世纪初,NoSQL(Not Only SQL)数据库的出现提供了更加灵活和可扩展的数据存储方案。随着互联网应用的发展和大数据兴起,传统的关系数据库模型在某些场景下显得力不从心,无法应对很多PB级及以上数据库处理任务。2009年在亚特兰大举行的“no:sql(east)”讨论会强调NoSQL是传统关系型数据库的有益补充,其放宽了关系模式对数据一致性和完整性的要求,以获取更高的性能和可伸缩性。 基本语法
概述