- ```markdown # ER图 ## 1. 基本概念 ### 1.1 定义 - 实体关系图(Entity-Relationship Diagram) - 用于数据库设计的可视化工具 - 1976年由Peter Chen提出 ## 2. 核心要素 ### 2.1 实体(Entity) #### 2.1.1 强实体 - 独立存在的实体 - 示例:学生、课程 - 表示方式:矩形 #### 2.1.2 弱实体 - 依赖其他实体存在 - 示例:订单项(依赖订单) - 表示方式:双边框矩形 ### 2.2 属性(Attribute) #### 2.2.1 属性类型 - 简单属性:不可再分(年龄) - 复合属性:可分解(地址→省/市/区) - 单值属性:唯一值(学号) - 多值属性:多个值(联系电话) - 派生属性:可计算(年龄←出生日期) - 存储属性:持久保存 - 空值属性:允许空值 #### 2.2.2 属性表示 - 椭圆表示基本属性 - 虚线椭圆表示派生属性 - 双线椭圆表示主键 ### 2.3 关系(Relationship) #### 2.3.1 关系类型 - 结构分类: - 1:1(部门-经理) - 1:N(部门-员工) - M:N(学生-课程) - 存在性分类: - 标识关系(强关联) - 非标识关系(弱关联) #### 2.3.2 基数约束 - 强制参与:(1,1) - 可选参与:(0,N) - 示例:员工必须属于1个部门(1,1),部门可能有0-N员工(0,N) ### 2.4 键(Key) #### 2.4.1 键类型 - 候选键:可唯一标识实体的属性组合 - 主键:选定的候选键 - 外键:关联其他实体的属性 - 超键:可能包含冗余的标识属性集 - 代理键:人工添加的标识符(如自增ID) ## 3. 扩展元素 ### 3.1 特殊关系处理 - 多值属性转换: - 转换为弱实体 - 创建单独关系表 - 关联实体:用于处理M:N关系的中间实体(如选课记录) ### 3.2 约束规则 - 参与约束:完全/部分参与 - 覆盖约束:父实体删除时的级联规则 - 互斥约束:XOR关系(如员工不能同时是教师和行政人员) ## 4. 绘制步骤 1. 确定实体集合 2. 定义实体属性 3. 识别实体关系 4. 确定主键/外键 5. 绘制初步ER图 6. 验证与优化 7. 添加约束说明 ## 5. 应用场景 - 数据库设计 - 系统需求分析 - 业务流程建模 - 数据仓库设计 ## 6. 常用符号系统 - Chen表示法:原始符号系统 - Crow's Foot:现代流行符号 - UML类图:面向对象表示法 - Barker表示法:Oracle专用 ## 7. 优化原则 - 消除冗余关系 - 合并相似实体 - 拆分复杂属性 - 验证范式合规性 - 保持适当抽象层级 - ```
复制内容 下载markdown文件 在线编辑