E-R 模型(实体-联系模型,Entity-Relationship Model)是数据库设计中用于概念建模的核心工具

E-R 模型(实体-联系模型,Entity-Relationship Model)是数据库设计中用于概念建模的核心工具 E-R 模型实体-联系模型Entity-Relationship Model是数据库设计中用于概念建模的核心工具由Peter Chen于1976年提出。它通过图形化方式描述现实世界中的数据结构帮助数据库设计者在逻辑层面抽象和表达数据需求为后续关系模式转换如规范化、映射为关系表奠定基础。E-R 模型包含三个基本要素实体Entity现实世界中可区分的独立对象如“学生”“课程”“教师”用矩形框表示属性Attribute实体或联系所具有的特征如“学生”的学号、姓名、年龄用椭圆形表示主键属性常加下划线标识联系Relationship实体之间的关联如“学生选修课程”用菱形表示并标注联系的基数约束如1:1、1:N、M:N和参与约束全参与/部分参与。此外还支持弱实体依赖于强实体存在、复合属性、多值属性、派生属性等扩展概念。E-R图最终可系统性地转换为关系模式如每个实体→一张表M:N联系→独立关联表是数据库系统从需求分析走向逻辑设计的关键桥梁。-- 示例将“学生-选课-课程”E-R结构映射为关系表CREATETABLEStudent(snoCHAR(10)PRIMARYKEY,snameVARCHAR(20),ageINT);CREATETABLECourse(cnoCHAR(8)PRIMARYKEY,cnameVARCHAR(30));CREATETABLESC(-- M:N联系“选修”转化为独立关系表snoCHAR(10),cnoCHAR(8),gradeDECIMAL(4,1),PRIMARYKEY(sno,cno),FOREIGNKEY(sno)REFERENCESStudent(sno),FOREIGNKEY(cno)REFERENCESCourse(cno));在E-R图中三元联系Ternary Relationship是指三个实体集之间同时发生的关联而非两两二元联系的组合用于表达无法被分解为多个二元联系的语义约束。例如“供应商S向项目P供应零件J”这一业务规则中仅知道“谁供应了什么”和“供应给哪个项目”是不够的必须明确“哪个供应商、向哪个项目、供应哪种零件”三者共同构成一次供应行为——此时需用三元联系建模。✅E-R图表示方法用菱形表示三元联系名称标注于菱形内如“供应”将参与的三个实体如Supplier、Project、Part用直线分别连接至该菱形在每条连线上标注基数比如1:N、M:N和参与约束单线部分参与双线全参与若联系本身有属性如供应数量、日期则用椭圆连接到菱形。⚠️ 注意不能简单用三个二元联系替代三元联系否则会引入语义丢失或冗余组合如可能错误推导出未实际发生的(S,P)、(P,J)、(S,J)组合。✅转换为关系模式的处理方式标准方法为三元联系单独创建一个关系表其主键由三个参与实体的主键组合构成即复合主键若该联系为全参与total participation且基数均为1:1或1:N需根据具体约束判断是否可简化但一般仍建议独立建表以保语义完整若联系具有属性如quantity、date这些属性作为该关系表的非键字段各外键字段需定义对应实体表的外键约束确保参照完整性。 示例供应关系CREATETABLESupply(snoCHAR(5),-- Supplier主键pnoCHAR(6),-- Project主键jnoCHAR(4),-- Part主键qtyINT,supply_dateDATE,PRIMARYKEY(sno,pno,jno),-- 复合主键FOREIGNKEY(sno)REFERENCESSupplier(sno),FOREIGNKEY(pno)REFERENCESProject(pno),FOREIGNKEY(jno)REFERENCESPart(jno)); 补充说明若某三元联系中存在一个实体对联系是1端如1:N:N且业务上允许将联系“降维”为二元属性如“项目-零件”为主实体“供应商”作为该联系的属性则需谨慎评估——这通常破坏语义完整性不推荐除非经严格分析确认无歧义。