1,现有论文和作者两个实体,论文实体的属性包括题目、期刊名称、年份、期刊号;作者实体的属性包括姓名、单位、地址;一篇论文可以有多个作者,且每一位作者写过多篇论文,在每一篇论文中有作者的顺序号。请完成以下操作: (1)画出E-R图 (2)将E-R图转换成关系模式,并指出每个关系模式的主键(加 下划线)和外键(加波浪线)。
CREATE TABLE 发表 (姓名 CHAR(7) NOT NULL, 题目 CHAR(6) NOT NULL, 顺序号 INT DEFAULT NULL, PRIMARY KEY (姓名, 题目), FOREIGN KEY (姓名) REFERENCES 论文 ON DELETE CASCADE, FOREIGN KEY (题目) REFERENCES 作者 ON DELETE RESTRICT);
2,
某企业集团有若干工厂,每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的计划数量生产产品,计划数量不低于300;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名、技术等级。请: (1)该集团进行概念设计,画出E-R图。 (2)E-R图转换成关系模式,并指出每个关系模式的主键和外键。
CREATE TABLE 生产 (工厂编号 CHAR(7) NOT NULL, 产品号 CHAR(6) NOT NULL, 数量 DEC(5,2), PRIMARY KEY (工厂编号,产品号), FOREIGN KEY (工厂编号) REFERENCES 工厂 ON DELETE CASCADE, FOREIGN KEY (产品号) REFERENCES 产品 ON DELETE RESTRICT, CHECK (数量 >=300) );
3,
设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有车牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。设车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有聘期;司机与车辆之间存在着“使用”联系,司机使用车辆有使用日期和公里数,每个司机可以使用多辆汽车,每辆车可被多个司机使用。 要求: (1)试画出ER图,并在图上注明属性、联系类型; (2)将ER图转换成关系模式,并说明主键和外键。
关系模式: 1) 车队(车队号、车队名) 主键:车队号 2)车辆(车牌照号、厂家、出厂日期) 主键:车牌照号
3) 司机(司机编号、姓名、电话,聘期,车队号) 主键:司机编号,外键:车队号
4) 使用(司机编号,车牌照号,使用日期,公里数) 主键:(司机编号,车牌照号,使用日期); 外键1:司机编号,外键2:车牌照号
4,
在校田径运动会中设置了各类比赛,每一比赛类别有类别编号、类别名称和主管等属性,每一比赛类别包含很多比赛项目;每一比赛项目有项目编号、项目名称、比赛时间和级别等属性;各个系团队有团编号、团名称、领队等属性,每一代表团有多名运动员组成,运动员有编号,姓名,年龄,性别等属性;每一名运动员可以参加多个比赛项目,每一比赛项目也有多名运动员参加,运动员参加比赛有成绩属性,成绩限定在0~7分。 1) 根据上述语义画出ER图, 2) 将ER图转换成关系模式,并指出每个关系模式的主键和外键。 3) 用DDL语句定义反映运动员与比赛项目之间的“参与”关系表。
CREATE TABLE 参加 (项目编号 CHAR(7) NOT NULL , 运动员编号 CHAR(6) NOT NULL , 成绩 INT , PRIMARY KEY (项目编号, 运动员编号) , FOREIGN KEY (项目编号) REFERENCES 比赛项目(项目编号) ON DELETE RESTRICT , FOREIGN KEY (运动员编号) REFERENCES 运动员(运动员编号) ON DELETE RESTRICT , CHECK (成绩 BETWEEN 0 AND 7) ) ;