数据库系统笔记4: ER模型

基本概念

  • Entity(实体):对象,如学生、教师,用方形表示
  • Entity Set(实体集):类
    • 一个实体集必须至少有一个非主键的属性
    • 或者它是多对一/多对多关系中的“多”
  • Attribute(属性):如学号、姓名,用圆形表示
  • Relationship(关系):两个实体间的关系,用棱形表示

关系

  • “一对一”关系可以看作是“多对一”关系的特殊情况
  • 注意在“一”的实体集合内可以有空的,如one-one中的b,如果实体集合内每一个元素都有且仅有一个实体与它对应,则该“一”用圆箭头表示

子类

  • 继承关系:用三角形表示
  • 子类继承父类的所有属性,还可以有自己的属性

Constraint 约束

Entity Integrity 实体完整性

  • 每个实体集必须有一个主键,不可以为空,不可以重复
  • 主键用下划线表示
  • 主键可以是一个或多个属性
  • 有继承关系的实体,主键必须在父类上,该主键是父类和所有子类的主键

Referential Integrity 参照完整性

  • foreign key(外键):一张表中的某个属性是参照另一张表的主键,则称该属性为外键
  • 外键必须取参照关系中的某个主键值,或者为空

Weak Entity Set 弱实体集

  • 确定该实体集需要依赖该实体集的主键和另一个实体集的主键,那么该实体集是一个弱实体集
  • 弱实体集用双边方形表示,两个实体集之间的关系用双边棱形表示
  • 两个实体集之间的关系称为支持联系

 设计原则

  • 避免冗余
  • 当增加一个属性就可以时,不要增加一个实体集
  • 小心使用弱实体集

ER模型转化为关系模型

关系的转化

  • 关系的表中,属性有其连接的实体集合的主键和关系上的属性
  • 在“多对一”关系中,可以把关系的表合并到“多”的一方。如在下图中,我们不需要额外增加一张表Favorite(drinker, beer),而是合并到Drinkers表中,Drinkers(name, addr, favorite_beer)

  •  在“多对多”关系中,如果按照上述方法合并,会造成冗余

弱实体集的转化

  • 对于弱实体集,它的属性还需要包括支持实体集的主键
  • 不需要为支持联系额外设置一张表

子类的转化

  • OO方式:子类继承父类的所有属性,这样可能造成冗余
    • Product(name, price, category, manufacturer)
    • EducationalProduct(name, price, category, manufacturer, ageGroup, topic)
    • SoftwareProduct(name, price, category, manufacturer, platforms, requiredMemory)
    • EducationalSoftwareProduct(name, price, category, manufacturer,ageGroup, topic, platforms, requiredMemory)
  • ER方式:子类只继承父类的主键,这样避免了冗余,但查询的时候可能需要多表查询
    • Product(name, price, category, manufacturer)
    • EducationalProduct(name, ageGroup, topic)
    • SoftwareProduct(name, platforms, requiredMemory)
  • 空值方式:只有一张表,允许出现空值,但浪费空间
    • Product(name, price, category, manufacturer,ageGroup, topic, platforms, requiredMemory)
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以给你提供一些数据库系统概论的期末复习笔记,帮助你进行复习。 1. 数据库系统的组成部分: - 数据库:存储有组织的数据的集合 - 数据库管理系统(DBMS):管理数据库的软件 - 数据库应用程序:通过DBMS与数据库进行交互的软件 2. 数据库系统的基本概念: - 实体:可以在数据库中存储的对象或事物 - 属性:实体的特征或属性,如姓名、年龄等 - 关系:实体之间的联系,如学生和课程之间的联系 - 模式:数据库中所有数据的逻辑结构 - 视图:特定用户或应用程序所看到的数据库子集 3. 数据库设计过程: - 需求分析:确定数据库的需求和目标 - 概念设计:创建数据库的概念模型 - 逻辑设计:将概念模型转换为逻辑模型 - 物理设计:将逻辑模型转换为物理模型,包括数据类型、索引等 4. SQL语言: - 数据定义语言(DDL):用于定义数据库对象,如表、索引、触发器等 - 数据操作语言(DML):用于插入、更新、删除数据 - 数据查询语言(DQL):用于查询数据 5. 数据库管理系统的类型: - 层次型数据库管理系统(HDBMS):数据以树形结构组织,不适用于复杂的数据结构 - 网状型数据库管理系统(NDBMS):数据以网状结构组织,可以处理更复杂的数据结构 - 关系型数据库管理系统(RDBMS):数据以表格形式组织,最常用的类型 - NoSQL数据库管理系统:非关系型数据库,适用于大数据和分布式系统 希望这些笔记能够对你的复习有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值