实验资料 实验源码

实验目的

  1. 巩固ER模型的基本概念;
  2. 巩固ER模型到关系数据模型的转换规则;
  3. 加强使用SQL创建关系模式;
  4. 加强使用SQL创建主键和外键约束;
  5. 加强使用SQL添加数据库表的实例数据。

实验原理

  1. 采用PostgreSQL数据库作为实验用DBMS;
  2. 根据需求描述构建ER模型,绘制ER图;
  3. 根据转换规则,将ER模型转换为关系模型;
  4. 使用SQL创建数据库的关系模式;
  5. 使用SQL创建关系模式的主键和外键约束;
  6. 使用SQL添加数据库表的实例数据。

实验内容

详情见实验指导书

实验步骤

  1. 建表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
CREATE TABLE shipper(
id INT,
name VARCHAR,
address VARCHAR
);
CREATE TABLE carrier(
id INT,
name VARCHAR,
point INT
);
CREATE TABLE waybill(
id INT,
goods_name VARCHAR,
loading_addr VARCHAR,
unloading_addr VARCHAR,
freight INT,
order_time DATE
);
CREATE TABLE bid(
id INT,
shipper_id INT,
carrier_id INT,
waybill_id INT,
bid_time DATE,
price INT
);
  1. 建立约束
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- PRIMARY KEY
ALTER TABLE shipper ADD CONSTRAINT pk_shipper PRIMARY KEY(id);
ALTER TABLE carrier ADD CONSTRAINT pk_carrier PRIMARY KEY(id);
ALTER TABLE waybill ADD CONSTRAINT pk_waybill PRIMARY KEY(id,freight);
ALTER TABLE bid ADD CONSTRAINT pk_bid PRIMARY KEY(id);

-- FOREIGN KEY
ALTER TABLE bid ADD CONSTRAINT fk_bid_shipper
FOREIGN KEY(shipper_id)
REFERENCES shipper(id);
ALTER TABLE bid ADD CONSTRAINT fk_bid_carrier
FOREIGN KEY(carrier_id)
REFERENCES carrier(id);
ALTER TABLE bid ADD CONSTRAINT fk_bid_waybill
FOREIGN KEY(waybill_id,price)
REFERENCES waybill(id,freight);

实验结果

E/R模型图

1

实验总结

经过此次实验,知道E/R图可以帮助我更好地理解各表之间的关系,也可以帮助我更轻松的建立主键与外键约束。同时,可以更加熟练地运用SQL语句进行建表以及建立约束等操作。