### 数据库系统概论设计报告知识点解析 #### 1. SPJ数据库系统介绍与构建 在本案例中,我们构建了一个名为“SPJ”的数据库,该数据库由四个主要的关系模式组成:供应商表(S)、零件表(P)、工程项目表(J)以及供应情况表(SPJ)。下面对这四个表进行详细介绍。 **供应商表(S)** - **SNO** (供应商编号): 主键,用于唯一标识每个供应商。 - **SNAME** (供应商名称): 描述供应商的名称。 - **STATUS** (状态): 供应商的状态信息,例如信誉等级等。 - **CITY** (城市): 供应商所在的城市。 **零件表(P)** - **PNO** (零件编号): 主键,用于唯一标识每个零件。 - **PNAME** (零件名称): 描述零件的名称。 - **COLOR** (颜色): 零件的颜色。 - **WEIGHT** (重量): 零件的重量。 **工程项目表(J)** - **JNO** (项目编号): 主键,用于唯一标识每个工程项目。 - **JNAME** (项目名称): 工程项目的名称。 - **CITY** (城市): 项目所在的城市。 **供应情况表(SPJ)** - **SNO** (供应商编号): 外键,对应供应商表中的主键。 - **PNO** (零件编号): 外键,对应零件表中的主键。 - **JNO** (项目编号): 外键,对应工程项目表中的主键。 - **QTY** (数量): 供应商向某个项目提供的某种零件的数量。 - **联合主键**: 由SNO、PNO和JNO共同组成,确保每条记录的唯一性。 #### 2. SQL语句创建SPJ数据库及表结构 为了构建SPJ数据库及其表结构,首先创建了数据库`spj2`,然后分别创建了S、P、J和SPJ四张表,并插入了一些示例数据。具体步骤如下: ```sql CREATE DATABASE spj2; USE spj2; CREATE TABLE S ( SNO CHAR(4) PRIMARY KEY, SNAME CHAR(20), STATUS INT, CITY CHAR(8) ); INSERT INTO S VALUES ('S1', '精益', 20, '天津'); INSERT INTO S VALUES ('S2', '盛锡', 10, '北京'); INSERT INTO S VALUES ('S3', '东方红', 30, '北京'); INSERT INTO S VALUES ('S4', '丰泰盛', 20, '天津'); INSERT INTO S VALUES ('S5', '为民', 30, '上海'); CREATE TABLE P ( PNO CHAR(4) PRIMARY KEY, PNAME CHAR(20), COLOR CHAR(4), WEIGHT INT ); INSERT INTO P VALUES ('P1', '螺母', '红', 12); INSERT INTO P VALUES ('P2', '螺栓', '绿', 17); INSERT INTO P VALUES ('P3', '螺丝刀', '蓝', 14); INSERT INTO P VALUES ('P4', '螺丝刀', '红', 14); INSERT INTO P VALUES ('P5', '凸轮', '蓝', 40); INSERT INTO P VALUES ('P6', '齿轮', '红', 30); CREATE TABLE J ( JNO CHAR(4) PRIMARY KEY, JNAME CHAR(20), CITY CHAR(8) ); INSERT INTO J VALUES ('J1', '三建', '北京'); INSERT INTO J VALUES ('J2', '一汽', '长春'); INSERT INTO J VALUES ('J3', '弹簧厂', '北京'); INSERT INTO J VALUES ('J4', '造船厂', '天津'); INSERT INTO J VALUES ('J5', '机车厂', '唐山'); INSERT INTO J VALUES ('J6', '无线电厂', '常州'); INSERT INTO J VALUES ('J7', '半导体厂', '南京'); CREATE TABLE SPJ ( SNO CHAR(4), PNO CHAR(4), JNO CHAR(4), QTY INT, PRIMARY KEY (SNO, PNO, JNO) ); INSERT INTO SPJ VALUES ('S1', 'P1', 'J1', 200); INSERT INTO SPJ VALUES ('S1', 'P1', 'J3', 100); INSERT INTO SPJ VALUES ('S1', 'P1', 'J4', 700); -- ... 更多插入语句 ``` #### 3. 使用关系代数语言完成查询任务 接下来,我们将根据题目要求,使用SQL来模拟关系代数语言完成如下查询任务: **(1) 查询所有向J1项目供货的供应商编号** ```sql SELECT DISTINCT SNO FROM SPJ WHERE JNO = 'J1'; ``` 这个查询将返回所有向项目编号为“J1”的工程项目提供零件的供应商的编号。 **(2) 查询所有供货的供应商编号** ```sql SELECT DISTINCT SNO FROM SPJ; ``` 这个查询将返回所有有过供货记录的供应商编号,不论他们向哪个项目提供了零件。 通过以上步骤,我们不仅构建了一个包含四个关系模式的数据库模型,还利用SQL语言完成了两个基本的查询任务。这些操作展示了如何使用SQL来实现关系代数中的选择、投影和笛卡尔积等基本操作。这种实践对于理解和掌握数据库原理非常重要,也有助于提升解决实际问题的能力。



























- tyhjsjj2012-03-07跟标准答案一个样,哈哈
- Paulnet2013-07-15我们前段时间用来考试的,现在回想起来....这些题还是拿来练感觉的,不错。
- mootin2012-07-26很好..就是答案~多谢了
- fl1231231232012-11-14不错,还是很好的
- dt25456367772012-10-01不错,答案正确!

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 智慧城市-未来科技社会的生存智慧.docx
- 【精华】环保倡议书锦集10篇.doc
- 造价员竣工结算常识.doc
- 周围环境中微生物观察及分离实验.pdf
- ISO9001EN-CN.pdf
- 下半软件设计师下午试题以及答案.doc
- 企业薪酬激励策略研究.doc
- 云计算对现代教育的影响.docx
- 大数据时代下的人力资源管理.docx
- 教你看懂建筑施工图及费用签证的填写技巧.docx
- 智能家居控制系统的设计与实现.docx
- 第10章--混凝土结构设计的一般原则和方法.ppt
- 安全检查专项培训.ppt
- 转让技术秘密和补偿贸易合作生产合同.doc
- 《一页纸项目管理》读后感.doc
- 多媒体技术在技工院校计算机教学中的问题及其对策探析.docx


