数据库设计题

数据库设计题

2023年7月27日发(作者:)

数据库设计题

数据库设计题(3小题,每题10分,共30分)

题目要求:根据材料,要求画出对应的E-R图,并将E-R图转换为对应的关系模式,最后利用SQL语言,根据关系模式建表。(注意:实体、属性、联系)

1.设某商场销售数据库中的信息有:员工号、员工名、工资、销售组名、销售负责人、商品号、商品名、单价、销售日期、销售量、供应者号、供应者名、供应者地址。假定:一个员工仅在一个销售组;一个销售组可以销售多种商品,一种商品只能由一个组销售;一种商品每天有一个销售量;一个供应者可以供应多种商品,一种商品可以多渠道供货。

(1)E-R图:附表

(2)关系模式:员工(员工号、员工名、工资、销售组名)

销售(销售组名、负责人)

商品(商品号、商品名、单价、销售组)

供应商(供应者号、供应者名、地址)

商品供应(商品号、供应者号)

商品销售(商品号、销售日期、销售量、销售组名)

(3)SQL语言建表:

Create table 员工

( 员工号int primary key ,

员工名Char(10) ,

工资int ,

销售组名Char(20) ,

Foreign key 销售组名references 销售组(销售组名)

)

Create table 销售组

( 销售组名Char(20) primary key ,

负责人Char(10) )

Create table 商品

( 商品号int primary key ,

商品名Char(20) ,

单价int ,

销售组名Char(20) ,

Foreign key 销售组名references 销售组(销售组名)

)

Create table 供应商

( 供应商号int primary key ,

供应者名Char(20) ,

地址Char(40)

)

Create table 商品供应

( 商品号int ,

供应者号int ,

Primary key ( 商品号, 供应者号) ,

Foreign key 商品号references 商品(商品号) ,

Foreign key 供应者号references 供应商(供应者号)

)

2.某学校有若干系,每个系有若干学生、若干课程,每名学生选修若干课程,每门课程有若干学生选修,某一门课程可以为不同系开设,现要建立该校学生选修课程的数据库。

(1)E-R图:附表

(2)关系模式:学生(学号、姓名、性别、系号、年龄)

系(系号、系名、系主任、电话)

课程(课号、课名)

选课(学号、课号、成绩)

开课(系号、课号)

(3)SQL语言建表: Create table 学生

( 学号int primary key ,

姓名Char(20) ,

性别Char(10) ,

系号int ,

年龄int ,

Foreign key 系号references 系(系号)

)

Create table 系

( 系号int primary key ,

系名Char(20) ,

系主任Char(20) ,

电话Char(20)

)

Create table 课程

( 课号int primary key ,

课名Char(20)

)

Create table 选课

( 学号int ,

课号int ,

成绩int ,

Primary key ( 学号, 课号) ,

Foreign key 学号references 学生(学号) ,

Foreign key 课程references 课程(课号)

)

Create table 开课

( 系号int ,

课号int ,

Primary key ( 系号, 课号) , Foreign key 系号references 系(系号) ,

Foreign key 课号references 课程(课号)

)

3.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。

(1)E-R图:附表

(2)关系模式:产品(产品号、产品名)

零件(零件号、零件名)

原材料(原材料号、原材料名、类别、仓库号)

仓库(仓库号、仓库名)

产品组成(产品号、零件号)

零件制造(零件号、原材料号)

零件存储(零件号、仓库号)(3)SQL语言建表:

Create table 产品

( 产品号int primary key ,

产品名Char(20)

)

Create table 零件

( 零件号int primary key ,

零件名Char(20)

)

Create table 原材料

( 原材料号int primary key ,

原材料名Char(20) ,

类别Char(20) ,

仓库号int ,

Foreign key 仓库号references 仓库(仓库号) )

Create table 仓库 ( 仓库号int primary key ,

仓库名Char(20) ,

)

Create table 产品组成

( 产品号int ,

零件号int ,

Primary key ( 产品号, 零件号) ,

Foreign key 产品号references 产品(产品号) ,

Foreign key 零件号references 零件(零件号)

)

Create table 零件制造

( 零件号int ,

原材料号int ,

Primary key ( 零件号, 原材料号) ,

Foreign key 零件号references 零件(零件号) ,

Foreign key 原材料号references 原材料(原材料号)

)

Create table 零件存储

( 零件号int ,

仓库号int ,

Primary key ( 零件号, 仓库号) ,

Foreign key 零件号references 零件(零件号) ,

Foreign key 仓库号references 仓库(仓库号)

)

4.假设一个部门的数据库包括以下的信息:

职工的信息:职工号、姓名、地址和所在部门。

部门的信息:部门所有职工、经理和销售的产品。

产品的信息:产品名、制造商、价格、型号及产品内部编号。

制造商的信息:制造商名称、地址、生产的产品及价格。

其中,部门与职工是一对多的联系;部门与产品、制造商与产品均是多对多的联系。(1)E-R图:附表

(2)关系模式:职工(职工号、姓名、地址、部门名)

部门(部门名、经理)

制造商(制造商名、地址)

产品销售(部门名、内部编号)

产品(内部编号、产品名、制造商、价格、型号)

产品生产(制造编号、内部编号)

(3)SQL语言建表:

Create table 职工

( 职工号int primary key ,

姓名Char(20) ,

住址Char(20) ,

部门名Char(20) ,

Foreign key 部门名references 部门(部门名)

)

Create table 部门

( 部门名Char(20) primary key ,

经理Char(20)

)

Create table 制造商

( 制造商名Char(20) primary key ,

地址Char(20)

)

Create table 产品

( 内部编号int primary key ,

产品名Char(20) ,

制造商Char(20) ,

价格int ,

型号Char(20)

) Create table 产品销售

( 部门名Char(20) ,

内部编号int ,

Primary key ( 部门名, 内部编号) ,

Foreign key 部门名references 部门(部门名) ,

Foreign key 内部编号references 产品(内部编号)

)

Create table 产品生产

( 制造商名Char(20) ,

内部编号int ,

Primary key ( 制造商名, 内部编号) ,

Foreign key 制造商名references 制造商(制造商名) ,

Foreign key 内部编号references 产品(内部编号)

)

5.设有如下实体:

学生:学号、单位、姓名、性别、年龄、选修课程名。

课程:编号、课程名、开课单位、任课教师。

教师:教师号、姓名、性别、职称、讲授课程编号。

单位:单位名称、电话、教师号、教师名。

上述实体中存在如下联系:一个学生可选修多门课,一门课程可以被多个学生选修,一个教师可讲授多门课程,

一门课程可以被多个教师讲授,一个单位可以有多个教师,一个教师只能属于一个单位。(1)E-R图:附表

(2)关系模式:学生(学号、姓名、性别、年龄、单位名称)

课程(编号、课程名)

教师(教师号、姓名、性别、职称、单位名称)

单位(单位名称、电话)

学生选课(学号、课程编号)

教师授课(教师号、课程编号)

(3)SQL语言建表: Create table 学生

( 学号int primary key ,

姓名Char(20) ,

性别Char(10) ,

年龄int ,

单位名称Char(20) ,

Foreign key 单位名称references 单位(单位名称)

)

Create table 课程

( 编号int primary key ,

课程名Char(20) ,

)

Create table 教师

( 教师号int primary key ,

姓名Char(20) ,

性别Char(10) ,

职称Char(20) ,

单位名称Char(20) ,

Foreign key 单位名称references 单位(单位名称)

)

Create table 单位

( 单位名称Char(20) primary key ,

电话Char(20)

)

Create table 学生选课

( 学号int ,

课程编号int ,

Primary key ( 学号, 课程编号) ,

Foreign key 学号references 学生(学号) ,

Foreign key 课程编号references 课程(编号) )

Create table 教师授课

( 教师号int ,

课程编号int ,

Primary key ( 教师号, 课程编号) ,

Foreign key 教师号references 教师(教师号) ,

Foreign key 课程编号references 课程(编号)

)

6.请设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:读者号、姓名、地址、性别、年龄、

单位。对每本书存有:书号、书名、作者、出版社。对每本被借出的书存有读者号、借出日期和应还日期。(1)E-R图:附表

(2)关系模式:读者(读者号、姓名、地址、性别、年龄、单位)

书(书号、书名、作者、出版社)

借书(书号、读者号、借出日期、应还日期)

(3)SQL语言建表:

Create table 读者

( 读者号int primary key ,

姓名Char(20) ,

地址Char(20) ,

性别Char(10) ,

年龄int ,

单位Char(20)

)

Create table 书

( 书号int primary key ,

书名Char(20) ,

作者Char(20) ,

出版社Char(20)

) Create table 借书

( 书号int ,

读者号int ,

借出日期time ,

应还日期time ,

Primary key ( 书号, 读者号) ,

Foreign key 书号references 书(书号) ,

Foreign key 读者号references 读者(读者号)

)

7.经需求分析可知,某医院病房计算机管理系统中需要管理以下信息:

科室:科室名、科室地址、科室电话、医生姓名

病房:病房号、床位号、所属科室

医生:工作证号、姓名、性别、出生日期、联系电话、职称、所属科室

病人:病历号、姓名、性别、出生日期、诊断记录、主管医生、病历号

其中,一个科室有多个病房,多个医生,一个病房只属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只能由一个。

(1)E-R图:附表

(2)关系模式:科室(科室名、科室地址、电话)

医生(工作证号、姓名、性别、出生日期、联系电话、职称、科室名)

病人(病历号、姓名、出生日期、性别、主管医生、病房号)

病房(病房号、床位号、科室名)

(3)SQL语言建表:

Create table 科室

( 科室名Char(20) primary key ,

科室地址Char(20) , 电话Char(20)

)

Create table 医生

( 工作证号int primary key ,

姓名Char(20) ,

性别Char(10) ,

出生日期Char(20) ,

联系电话Char(20) ,

职称Char(20) ,

科室名Char(20) ,

Foreign key 科室名references 科室(科室名)

)

Create table 病人

( 病历号int primary key ,

姓名Char(20) ,

出生日期Char(20) ,

性别Char(10) ,

主管医生int ,

病房号int ,

Foreign key 主管医生references 医生(工作证号) Foreign key 病房号references 病房(病房号)

)

Create table 病房

( 病房号int primary key ,

床位号int ,

科室名Char(20) ,

Foreign key 科室名references 科室(科室名)

)

8.职工科研管理系统情况如下:

部门:包括部门号、部门名、办公室,每个部有多名职工。 职工:包括职工号、姓名、性别、年龄、职称、专业。

项目:包括项目编号、项目名称、项目经费、项目来源、负责人。

每名职工可参加多个项目,每个项目可多名员工参加。

(1)E-R图:附表

(2)关系模式:部门(部门号、部门名、办公室)

职工(职工号、姓名、性别、年龄、专业、职称、部门号)

项目(项目编号、项目名称、项目经费、项目来源、负责人)

参加(职工号、项目编号)

(3)SQL语言建表:

Create table 部门

( 部门号int primary key ,

部门名Char(20) ,

办公室Char(20)

)

Create table 职工

( 职工号int primary key ,

姓名Char(20) ,

性别Char(10) ,

年龄int ,

专业Char(20) ,

职称Char(20) ,

部门号int ,

Foreign key 部门号references 部门(部门号)

)

Create table 项目

( 项目编号int primary key ,

项目名称Char(20) ,

项目经费int ,

项目来源Char(20) ,

负责人Char(20) )

Create table 参加

( 职工号int ,

项目编号int ,

Primary key ( 职工号, 项目编号) ,

Foreign key 职工号references 职工(职工号) ,

Foreign key 项目编号references 项目(项目编号) )

9.设有如下实体:

学生:学号、专业、姓名、性别、年龄、选修课程名。课程:编号、课程名、开课单位、任课教师。

教师:教师号、姓名、性别、职称、讲授课程编号。

专业:专业名称、电话、教师号、教师名。

发布者:admin,转转请注明出处:http://www.yc00.com/web/1690432247a349041.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信