ER-Model
Relationships
实体——矩形,属性——椭圆,二者直线相连;
关系ralationship——菱形,连接多个实体;
Relations——两个集合的笛卡尔积的子集;
关系多对多、多对一、一对一;圆箭头表示有且仅有一个,尖箭头表示至多一个;
关系的属性可以转化为一个与关系相连的新实体的属性
如果在一个关系中两次用到同一个实体:
多路关系转二路
Subclasses子类~isa:一对一关系,三角形的顶点与父类(superclass)相连,底边与子类相连。(与powerdesigner正好相反)
主键:每个实体至少有一个属性集合作为键。isa情况下,只有根实体有键,且作为所有子类的键。选择一个键作为主键。
弱实体集合:弱实体集合用双边矩形。与其他实体有一个或多个 多对一的关系,关系用双边菱形,但并不是与它相连的关系都是supporting relationship。它的键等于自身下划线属性加上supporting entity sets的键。
成为实体应满足以下两个条件之一:1、有一个不属于键的属性;2、是多对一或多对多关系的“多”端。
练习
Question 1: If entity set A currently has 100 entities, which of the following could be the number of B entities?
Ⅰ. 1
Ⅱ. 100
Ⅲ. 200
(a) Ⅰor Ⅱ (b) Ⅱ or Ⅲ (c) Ⅱ only (d)Ⅰ,Ⅱor Ⅲ
一个百货公司有若干连锁店,每家连锁店经营若干商品,同一种商品可以在任何一家连锁店中销售;每家连锁店有若干职工,但每个职工只能服务于一家商店。现该百货公司准备建一个计算机管理系统,请你帮助它设计一个数据库模式,基于该数据库模式百货公司经理可以掌握职工信息、连锁店信息和商品销售信息。已知基本信息有:
连锁店:连锁店名、地址、经理职工号;
职工:职工号、职工名、年龄、性别;
商品:商品号、商品名、价格、生产厂家;
Relational Data Model
实体完整性(主属性(主键中的属性)不能为空)、参照完整性(外键)和用户定义的完整性
Schema 模式:
关系的模式:关系名+属性名,每个属性可加上数值类型
Product(Name, Price, Category, Manufacturer)
Product(Name:string, Price:real, Category:string, Manufacturer:string)
数据库的模式:关系模式的集合
Instance 实例:(注意值与属性位置相对应)
ER图转关系图
实体—>关系表;关系—>关系表
特殊情形
关系表合并:多对一关系,将关系与多端合并;多对多关系不能合并。
弱实体集合:它的表中要有完整的键(可能来自其他实体的属性),支持关系不需要表。
子类:Product有两个子类EducationalProduct、SoftwareProduct
1、OO,面向对象:4张表
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)
2、E/R方法:3张表
Product(name, price, category, manufacturer)
EducationalProduct( name, ageGroup, topic)
SoftwareProduct( name, platforms, requiredMemory)
3、空值方法:1张表
Product ( name, price, category, manufacturer, age-group, topic, platforms, required-memory)
练习
Question2: If we convert the E/R diagram to relations in the standard way, which set of attributes would not appear in the schema of some relation?(图同Q1)
(a) (b,c,e) (b) (a,b) (c) (a,d) (d) (c,f)
注意A不是一个弱实体集合!它的关系表中只有a,d