设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、车队名等;
二是“车辆”实体集,属性有车牌照号、厂家、出厂日期等;
三是“司机”实体集,属性有司机编号、姓名、电话等。
车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于- -个车队,车队聘用司机有聘期;
司机与车辆之间存在着“使用”联系,司机使用车辆有使用日期和公里数,每个司机可以使用多辆汽车,每辆车可被多个司机使用。
要求:
(1) 画出E-R图,并将E-R图转换成关系模式,标明主键和外键。
(2)根据关系模式创建数据表。
(3)在每个数据表中插入两条数据。
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
根据题目描述,可以画出如下的 E-R 图:
车队(Fleet) 1 ---- * 司机(Driver) * ---- * 车辆(Vehicle)
将 E-R 图转换成关系模式,可以得到如下的关系模式:
根据上述关系模式,可以创建如下的数据表:
CREATE TABLE Fleet (
Fleet_ID INT PRIMARY KEY,
Fleet_Name VARCHAR(50)
);
CREATE TABLE Vehicle (
Vehicle_ID INT PRIMARY KEY,
License_Plate VARCHAR(20),
Manufacturer VARCHAR(50),
Production_Date DATE
);
CREATE TABLE Driver (
Driver_ID INT PRIMARY KEY,
Name VARCHAR(50),
Phone_Number VARCHAR(20)
);
CREATE TABLE Employment (
Fleet_ID INT,
Driver_ID INT,
Employment_Date DATE,
Expiration_Date DATE,
PRIMARY KEY (Fleet_ID, Driver_ID),
FOREIGN KEY (Fleet_ID) REFERENCES Fleet(Fleet_ID),
FOREIGN KEY (Driver_ID) REFERENCES Driver(Driver_ID)
);
CREATE TABLE Usage (
Driver_ID INT,
Vehicle_ID INT,
Usage_Date DATE,
Mileage INT,
PRIMARY KEY (Driver_ID, Vehicle_ID),
FOREIGN KEY (Driver_ID) REFERENCES Driver(Driver_ID),
FOREIGN KEY (Vehicle_ID) REFERENCES Vehicle(Vehicle_ID)
);
然后,可以向每个数据表中插入两条数据,示例如下:
INSERT INTO Fleet (Fleet_ID, Fleet_Name) VALUES (1, 'A Fleet');
INSERT INTO Fleet (Fleet_ID, Fleet_Name) VALUES (2, 'B Fleet');
INSERT INTO Vehicle (Vehicle_ID, License_Plate, Manufacturer, Production_Date) VALUES (1, 'ABC123', 'Toyota', '2022-01-01');
INSERT INTO Vehicle (Vehicle_ID, License_Plate, Manufacturer, Production_Date) VALUES (2, 'DEF456', 'Honda', '2021-05-01');
INSERT INTO Driver (Driver_ID, Name, Phone_Number) VALUES (1, 'John', '1234567890');
INSERT INTO Driver (Driver_ID, Name, Phone_Number) VALUES (2, 'Mary', '0987654321');
INSERT INTO Employment (Fleet_ID, Driver_ID, Employment_Date, Expiration_Date) VALUES (1, 1, '2022-01-01', '2022-12-31');
INSERT INTO Employment (Fleet_ID, Driver_ID, Employment_Date, Expiration_Date) VALUES (2, 2, '2021-05-01', '2022-04-30');
INSERT INTO Usage (Driver_ID, Vehicle_ID, Usage_Date, Mileage) VALUES (1, 1, '2022-01-01', 10000);
INSERT INTO Usage (Driver_ID, Vehicle_ID, Usage_Date, Mileage) VALUES (2, 2, '2021-06-01', 20000);
注意:上述示例代码中的日期格式为 YYYY-MM-DD,可以根据实际需要进行修改。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢