数据库系统原理复习题——相金亮数据库设计题(3小题,每题10分,共30分)题目要求:根据材料,要求画出对应的E-R图,并将E-R图转换为对应的关系模式,最后利用SQL语言,根据关系模式建表。(注意:实体、属性、联系)1.设某商场销售数据库中的信息有:员工号、员工名、工资、销售组名、销售负责人、商品号、商品名、单价、销售日期、销售量、供应者号、供应者名、供应者地址。假定:一个员工仅在一个销售组;一个销售组可以销售多种商品,一种商品只能由一个组销售;一种商品每天有一个销售量;一个供应者可以供应多种商品,一种商品可以多渠道供货。(1)E-R图:附表(2)关系模式:员工(员工号、员工名、工资、销售组名)销售(销售组名、负责人)商品(商品号、商品名、单价、销售组)供应商(供应者号、供应者名、地址)商品供应(商品号、供应者号)商品销售(商品号、销售日期、销售量、销售组名)(3)SQL语言建表:Createtable员工(员工号intprimarykey,员工名Char(10),工资int,销售组名Char(20),Foreignkey销售组名references销售组(销售组名))Createtable销售组(销售组名Char(20)primarykey,负责人Char(10))Createtable商品(商品号intprimarykey,商品名Char(20),单价int,销售组名Char(20),Foreignkey销售组名references销售组(销售组名))Createtable供应商(供应商号intprimarykey,供应者名Char(20),地址Char(40))Createtable商品供应(商品号int,供应者号int,Primarykey(商品号,供应者号),Foreignkey商品号references商品(商品号),Foreignkey供应者号references供应商(供应者号)数据库系统原理复习题——相金亮)2.某学校有若干系,每个系有若干学生、若干课程,每名学生选修若干课程,每门课程有若干学生选修,某一门课程可以为不同系开设,现要建立该校学生选修课程的数据库。(1)E-R图:附表(2)关系模式:学生(学号、姓名、性别、系号、年龄)系(系号、系名、系主任、电话)课程(课号、课名)选课(学号、课号、成绩)开课(系号、课号)(3)SQL语言建表:Createtable学生(学号intprimarykey,姓名Char(20),性别Char(10),系号int,年龄int,Foreignkey系号references系(系号))Createtable系(系号intprimarykey,系名Char(20),系主任Char(20),电话Char(20))Createtable课程(课号intprimarykey,课名Char(20))Createtable选课(学号int,课号int,成绩int,Primarykey(学号,课号),Foreignkey学号references学生(学号),Foreignkey课程references课程(课号))Createtable开课(系号int,课号int,Primarykey(系号,课号),Foreignkey系号references系(系号),Foreignkey课号references课程(课号))数据库系统原理复习题——相金亮3.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。(1)E-R图:附表(2)关系模式:产品(产品号、产品名)零件(零件号、零件名)原材料(原材料号、原材料名、类别、仓库号)仓库(仓库号、仓库名)产品组成(产品号、零件号)零件制造(零件号、原材料号)零件存储(零件号、仓库号)(3)SQL语言建表:Createtable产品(产品号intprimarykey,产品名Char(20))Createtable零件(零件号intprimarykey,零件名Char(20))Createtable原材料(原材料号intprimarykey,原材料名Char(20),类别Char(20),仓库号int,Foreignkey仓库号references仓库(仓库号))Createtable仓库(仓库号intprimarykey,仓库名Char(20),)Createtable产品组成(产品号int,零件号int,Primarykey(产品号,零件号),Foreignkey产品号references产品(产品号),Foreignkey零件号references零件(零件号))Createtable零件制造(零件号int,原材料号int,Primarykey(零件号,原材料号),Foreignkey零件号references零件(零件号),Foreignkey原材料号references原材料(原材料号))数据库系统原理复习题——相金亮Createtable零件存储(零件号int,仓库号int,Primarykey(零件号,仓库号),Foreignkey零件号references零件(零件号),Foreignkey仓库号references仓库(仓库号))4.假设一个部门的数据库包括以下的信息:职工的信息:职工号、姓名、地址和所在部门。部门的信息:部门所有职工、经理和销售的产品。产品的信息:产品名、制造商、价格、型号及产品内部编号。制造商的信息:制造商名称、地址、生产的产品及价格。其中,部门与职工是一对多的联系;部门与产品、制造商与产品均是多对多的联系。(1)E-R图:附表(2)关系模式:职工(职工号、姓名、地址、部门名)部门(部门名、经理)制造商(制造商名、地址)产品销售(部门名、内部编号)产品(内部编号、产品名、制造商、价格、型号)产品生产(制造编号、内部编号)(3)SQL语言建表:Createtable职工(职工号intprimarykey,姓名Char(20),住址Char(20),部门名Char(20),Foreignkey部门名references部门(部门名))Createtable部门(部门名Char(20)primarykey,经理Char(20))Createtable制造商(制造商名Char(20)primarykey,地址Char(20))Createtable产品(内部编号intprimarykey,产品名Char(20),制造商Char(20),价格int,型号Char(20))Createtable产品销售(部门名Char(20),内部编号int,数据库系统原理复习题——相金亮Primarykey(部门名,内部编号),Foreignkey部门名references部门(部门名),Foreignkey内部编号references产品(内部编号))Createtable产品生产(制造商名Char(20),内部编号int,Primarykey(制造商名,内部编号),Foreignkey制造商名references制造商(制造商名),Foreignkey内部编号references产品(内部编号))5.设有如下实体:学生:学号、单位、姓名、性别、年龄、选修课程名。课程:编号、课程名、开课单位、任课教师。教师:教师号、姓名、性别、职称、讲授课程编号。单位:单位名称、电话、教师号、教师名。上述实体中存在如下联系:一个学生可选修多门课,一门课程可以被多个学生选修,一个教师可讲授多门课程,一门课程可以被多个教师讲授,一个单位可以有多个教师,一个教师只能属于一个单位。(1)E-R图:附表(2)关系模式:学生(学号、姓名、性别、年龄、单位名称)课程(编号、课程名)教师(教师号、姓名、性别、职称、单位名称)单位(单位名称、电话)学生选课(学号、课程编号)教师授课(教师号、课程编号)(3)SQL语言建表:Createtable学生(学号intprimarykey,姓名Char(20),性别Char(10),年龄int,单位名称Char(20),Foreignkey单位名称references单位(单位名称))Createtable课程(编号intprimarykey,课程名Char(20),)Createtable教师(教师号intprimarykey,姓名Char(20),性别Char(10),职称Char(20),单位名称Char(20),数据库系统原理复习题——相金亮Foreignkey单位名称references单位(单位名称))Createtable单位(单位名称Char(20)primarykey,电话Char(20))Createtable学生选课(学号int,课程编号int,Primarykey(学号,课程编号),Foreignkey学号references学生(学号),Foreignkey课程编号references课程(编号))Createtable教师授课(教师号int,课程编号int,Primarykey(教师号,课程编号),Foreignkey教师号references教师(教师号),Foreignkey课程编号references课程(编号))6.请设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:读者号、姓名、地址、性别、年龄、单位。对每本书存有:书号、书名、作者、出版社。对每本被借出的书存有读者号、借出日期和应还日期。(1)E-R图:附表(2)关系模式:读者(读者号、姓名、地址、性别、年龄、单位)书(书号、书名、作者、出版社)借书(书号、读者号、借出日期、应还日期)(3)SQL语言建表:Createtable读者(读者号intprimarykey,姓名Char(20),地址Char(20),性别Char(10),年龄int,单位Char(20))Createtable书(书号intprimarykey,书名Char(20),作者Char(20),出版社Char(20))Createtable借书(书号int,读者号int,数据库系统原理复习题——相金亮借出日期time,应还日期time,Primarykey(书号,读者号),Foreignkey书号references书(书号),Foreignkey读者号references读者(读者号))7.经需求分析可知,某医院病房计算机管理系统中需要管理以下信息:科室:科室名、科室地址、科室电话、医生姓名病房:病房号、床位号、所属科室医生:工作证号、姓名、性别、出生日期、联系电话、职称、所属科室病人:病历号、姓名、性别、出生日期、诊断记录、主管医生、病历号其中,一个科室有多个病房,多个医生,一个病房只属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只能由一个。(1)E-R图:附表(2)关系模式:科室(科室名、科室地址、电话)医生(工作证号、姓名、性别、出生日期、联系电话、职称、科室名)病人(病历号、姓名、出生日期、性别、主管医生、病房号)病房(病房号、床位号、科室名)(3)SQL语言建表:Createtable科室(科室名Char(20)primarykey,科室地址Char(20),电话Char(20))Createtable医生(工作证号intprimarykey,姓名Char(20),性别Char(10),出生日期Char(20),联系电话Char(20),职称Char(20),科室名Char(20),Foreignkey科室名references科室(科室名))Createtable病人(病历号intprimarykey,姓名Char(20),出生日期Char(20),性别Char(10),主管医生int,病房号int,Foreignkey主管医生references医生(工作证号)Foreignkey病房号references病房(病房号)数据库系统原理复习题——相金亮