电子商务数据库练习参考答案应用题.docx

上传人:b****6 文档编号:5130644 上传时间:2022-12-13 格式:DOCX 页数:17 大小:112.16KB
下载 相关 举报
电子商务数据库练习参考答案应用题.docx_第1页
第1页 / 共17页
电子商务数据库练习参考答案应用题.docx_第2页
第2页 / 共17页
电子商务数据库练习参考答案应用题.docx_第3页
第3页 / 共17页
电子商务数据库练习参考答案应用题.docx_第4页
第4页 / 共17页
电子商务数据库练习参考答案应用题.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

电子商务数据库练习参考答案应用题.docx

《电子商务数据库练习参考答案应用题.docx》由会员分享,可在线阅读,更多相关《电子商务数据库练习参考答案应用题.docx(17页珍藏版)》请在冰豆网上搜索。

电子商务数据库练习参考答案应用题.docx

电子商务数据库练习参考答案应用题

第一章

1.举出适合用文件系统而不是数据库系统的例子;再举出适合用数据库系统的应用例子。

(1)适用于文件系统而不是数据库系统的应用例子:

数据的备份、软件或应用程序使用过程中的临时数据存储一般使用文件比较合适。

早期功能比较简单、比较固定的应用系统也适合用文件系统。

(1)适用于数据库系统而非文件系统的应用例子:

目前,几乎所有企业或部门的信息系统都以数据库系统为基础,都使用数据库,如库存管理系统、物资采购系统、作业调度系统、设备管理系统、人事管理系统等;学校的学生管理系统,人事管理系统,图书馆的图书管理系统,等等都适合用数据库系统。

2.试述网状模型的概念,举出三个网状模型的实例。

满足下面两个条件的基本层次联系集合为网状模型。

1)允许一个以上的结点无双亲;

2)一个结点可以有多于一个的双亲。

实例1:

 

实例2:

 

实例3:

 

第三章

1.建立一个关于系、学生、班级、学会等诸信息的关系数据库。

学生:

学号、姓名、出生年月、系名、班号、宿舍区。

班级:

班号、专业名、系名、人数、入校年份。

系:

系名、系号、系办公地点、人数。

学会:

学会名、成立年份、办公地点、人数。

语义如下:

一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。

一个系的学生住在同一宿舍区。

每个学生可参加若干学会,每个学会有若干学生。

学生参加某学会有一个入会年份。

(1)请给出关系模式。

各关系模式如下:

●学生(学号,姓名,出生年月,系名,班级号,宿舍区)

●班级(班级号,专业名,系名,班级人数,入校年份)

●系(系名,系号,系办公地点,系人数)

●学会(学会名,成立年份,办公地点,人数,姓名)(这里加入一个“姓名”,否则无法实现函数依赖)

(2)写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖。

每个关系模式的最小函数依赖集如下:

●学生的最小函数依赖集为:

FMIN={学号→姓名,学号→出生年月,学号→班级号,学号→系名,系名→宿舍区}

●班级的最小函数依赖集为:

FMIN={(系名,专业名)→班级号,班级号→班级人数,班级号→入校年份}系的最小函数依赖集为:

FMIN={系号→系名,系号→系办公地点,系号→系人数)

●学会的最小函数依赖集为:

FMIN={学会号→成立年份,学会号→办公地点,学会号→人数,姓名→SYEAR)

(3)对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。

以上关系模式中存在传递函数依赖,如:

学号→系名,系名→宿舍区,对于函数依赖左部是多属性的情况,函数依赖是完全函数依赖(假设系中专业名可以相同)

(4)指出各关系模式的候选码、外部码,有没有全码存在?

各关系的候选键、外部键如下:

●学生:

候选键是学号,外部键是姓名,系名,班级号。

●班级:

候选键是班级号,外部键是系名。

●系:

候选键是系号,外部键是系名。

●学会:

候选键是学会号,外部键是姓名。

2.设有关系模式:

学生(学号、姓名、所属系、专业、班级),试确定该模式中的所有候选键。

候选键是学号,如果姓名不能重复则姓名也是候选键。

3.设有关系模式:

商品(商品编号、类别、商品名称、单价、数量、总价),分析该关系模式上的函数依赖关系。

●商品编号→商品名称;

●商品编号→类别;

●商品编号→单价;

●(单价,数量)→总价

4.设有关系模式R(U,F),其中U={A,B,C,D,E},F={AB→C,B→D,D→E,C→B},试问R最高为第几范式,并解释原因。

如果R不是3NF,要求将其分解为3NF。

解:

因为AB为只在左部出现的属性,又AB+=ABCDE,因此AB是R唯一的候选码。

其中,A和B为主属性,C、D、E都是非主属性,因为B→D,存在非主属性对码的部分函数依赖,因此R属于1NF。

将R先分解成2NF关系:

R1(A)F1={A→A}

R2(A,B,C)F2={AB→C,C→B}

R3(B,D,E)F3={B→D,D→E}

R3中存在着非主属性对码传递函数依赖,B→D,D→E,因此若要满足3NF,则需要将R3进一步分解,以去除非主属性对码的传递函数依赖。

R3可分解为R4(B,D)和R5(D,E)

最终R可分解为:

R1(A)F1={A→A}

R2(A,B,C)F3={AB→C,C→B}

R3(B,D)F3={B→D}

R4(D,E)F3={D→E}

第四章

1.设某商业集团的仓库管理系统数据库有三个实体集。

一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。

公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。

(1)试画出E-R图,并在图上注明属性、联系的类型;

(2)将E-R图转换成关系模型,并注明主键和外键。

●公司(公司编号,公司名,地址)主键:

公司编号

●仓库(仓库编号,仓库名,地址,公司编号)主键:

仓库编号,外键:

公司编号

●职工(职工编号,姓名,性别,仓库编号,聘期,工资)主键:

职工编号,外键:

仓库编号

2.设有如下教学环境:

一个班级有多名学生,一名学生只属于一个班;一名学生可以选修若干门课程,每门课程由多名学生选修;一位教师可以讲授若干门课程,一门课程只有一位教师主讲;每位教师属于一个系,一个系有若干名教师。

试用E-R图画出该教学环境的概念模型。

第五章

建立书籍信息管理系统数据库E_Bookstore。

(1)在该数据库中创建基本表。

①建立书籍基本信息表,包含以下内容:

书籍编号(主键)、书籍名称、ISBN、出版年份、类别名称。

Book(BookID,BookName,ISBN,PublishYear,CategoryName)

CREATETABLEBook(

BookIDchar(5)PRIMARYKEY,

BookNamechar(60),

ISBNchar(13),

PublishYeardatetime,

CategoryNamechar(13)

②建立仓库基本信息表,包含以下内容:

仓库编号(主键)、仓库名称、地区、面积。

Warehouse(WarehouseID,WarehouseName,Location,area)

CREATETABLEWarehouse(

WarehouseIDchar(5)PRIMARYKEY,

WarehouseNamechar(60),

Locationchar(60),

Areaint

③建立库存基本信息表,包含以下内容:

书籍编号(主键)、仓库编号、库存量。

Stock(BookID,WarehouseID,StorageRate)

CREATETABLEStock(

BookIDchar(5)PRIMARYKEY,

WarehouseIDchar(5),

StorageRateint,

CONSTRAINTS_PRIKPRIMARYKEY(BookID,WarehouseID)

④建立快递员基本信息表,包含以下内容:

员工编号(主键)、姓名、性别、年龄、地区、薪金、奖金。

Courier(CourieredID,Name,Sex,Age,Location,Salary,Bonus)

CREATETABLECourier(

CourieredIDchar(5)PRIMARYKEY,

Namechar(5),

Sexint,

Ageint,

Locationchar(20),

Salaryint,

Bonusint,

(2)为书籍基本信息表增加以下内容:

版本、价格、折扣价格。

ALTERTABLEBook

ADD

Editint,

Pricemoney,

DiscountPricemoney;

(3)检查各个表的完整性约束,如果没有定义,请定义之,其中:

①定义快递员基本信息表中性别字段的完整性约束只能为“男”、“女”。

ALTERTABLECourier

ADDCONSTRIANTSex_CHKCHECK(Sex=’男’orSex=’女’)

②定义书籍基本信息表中的类别名称字段只能为“哲学类”、“文学类”、“计算机类”、“数学类”、“法学类”、“经济类”、“管理类”、“医学类”、“体育类”、“语言类”。

ALTERTABLEBook

ADDCONSTRIANTCategory_CHKCHECK(CategoryNameIN(‘哲学类’,’文学类’,’计算机类’,’数学类’,’法学类’,’经济类’,’管理类’,’医学类’,’体育类’,语言类’))

③定义书籍基本信息表中的版本字段只能为1-20版。

ALTERTABLEBook

ADDCONSTRIANTEdit_CHKCHECK(Edit>=1AndEdit<=20)

④定义快递员基本信息表的薪金字段只能为2000-5000元,奖金字段为0-8000元,收入字段计算公式为“收入=薪金+奖金”。

ALTERTABLECourier

ADDCONSTRIANTSalary_CHKCHECK(Salary>=2000AndSalary<=5000)

ADDCONSTRIANTBonusy_CHKCHECK(Bonus>=0AndBonus<=8000)

⑤定义仓库基本信息表的地区字段只能为“华南”、“华北”、“西南”、“西北”、“东北”。

ALTERTABLEWarehouse

ADDCONSTRIANTLocation_CHKCHECK(LocationIN(‘华南’,’华北’,’西南’,’西北’,’东北’))

(4)将快递员基本信息表中的员工编号的数据类型变为char(12)。

ALTERTABLECourier

ALTER COLUMN CourieredIDchar(12)

(5)删除快递员基本信息表中性别字段的完整性约束。

ALTERTABLECourier

DROPCONSTRAINTSex_CHK

(6)删除快递员基本信息表。

DROPTABLECourier

(7)在库存基本信息表的书籍编号和仓库编号字段上建立唯一性索引。

CREATEUNIQUEINDEXStock_IdxONStock(BookID,WarehouseID)

(8)在书籍基本信息表的书籍名称字段上建立聚集性索引。

CREATECLUSTEREDINDEXBook_IdxONBook(BookName)

(9)删除书籍基本信息表的索引。

DROPINDEXBook_Idx

(10)查询2010年出版的计算机类有库存的书籍信息。

SELECT*

FROMBook

WHEREBookIDIN(

SELECTBookIDFROMStockWHERE

StorageRateISNOTNULLANDStorageRate<>0

(11)查询所有价格低于30元的书籍的书籍名称。

SELECTBookName

FROMBook

WHEREPrice<30

(12)查询既不是“经济类”又不是“管理类”的书籍的书籍名称以及书籍编号。

SELECTBookID,BookName

FROMBook

WHERECategoryName!

=’经济类’ANDCategoryName!

=’管理类’

(13)查询所有书籍名称含有“数据库”的书籍的书籍名称与书籍编号。

SELECTBookID,BookName

FROMBook

WHEREBookNameLIKE‘%数据库%’

(14)查询库存位于仓库编号为“H0001”仓库的书籍的书籍名称。

SELECTBookName

FROMBook,Stock

WHEREBook.BookID=Stock.BookIDANDWareHouseID=’H0001’

(15)查询库存位于仓库名为“华南广州仓”的仓库的书籍的书籍名称与书籍编号。

SELECTBookName

FROMBook,Stock,WareHouse

WHEREBook.BookID=Stock.BookIDANDStock.WareHouseID=WareHouse.WareHouseIDANDWarehouseName=’华南广州仓’

(16)查询2012年出版的计算机类书籍的数量。

SELECTCOUNT(*)

FROMBook

WherePublishYear=2012ANDCategoryName=’计算机’

(17)统计每种类别的书籍的数量,要求输出类别名称和书籍数量,查询结果按书籍数量降序排列,若书籍数量相同,则按类别名称升序排列。

SELECTCategoryName,COUNT(*)

FROMBook

GROUPBYCategoryName

ORDERBYCOUNT(*)Des,CategoryName

(18)查询库存量大于等于1000本的书籍的书籍编号、书籍名称和类别名称,并把查询结果存放至一个命名为Book2的基本表中。

先创建一个基本表Book2

CREATTABLEBook2

BIDchar(5)PRIMARYKEY,

BNamechar(60),

CNamechar(13)

查询并存入基本表Book2中

SELECTStock.BookID,BookName,CategoryName

FROMStock,Book

WHEREStock.BookID=Book.BookID

GROUPBYStock.BookID

HAVINGCOUNT(*)>=1000

INTOBook2

(19)查询“华南广州仓”仓库库存量比“华南福建仓”仓库库存量大的所有书籍的书籍编号及其“华南广州仓”仓库库存量和“华南福建仓”仓库库存量。

SELECTBookID,StorageRate

FROM(SELECT*FROMStockWHEREWarehouseID=(SELECTWarehouseIDFROMWarehouseWHEREWarehouseName=’华南广州仓’))S1,(SELECT*FROMStockWHEREWarehouseID=(SELECTWarehouseIDFROMWarehouseWHEREWarehouseName=’华南福建仓’))S2

WHERES1.BookID=S2.BookIDANDS1.StorageRate>S1.StorageRate

(20)将库存在“华南广州仓”且库存量少于5本的书籍的库存量改为空值。

UPDATEStock

SETStorageRate=””

WHEREStorageRate<5ANDWarehouseIDIN(SELECTWarehouseIDFROMWarehouseWHEREWarehouseName=’华南广州仓’)

(21)将库存量少于10本的计算机类书籍的折扣价格提高5%

UPDATEBook

SETDiscountPrice=DiscountPrice*1.05

WHERECategoryName=’计算机类’AND

BookIDIN(SELECTBookIDFROMStockGROUPBYBookIDHAVINGCOUNT(*)<10)

(22)计算2012年出版的计算机类书籍的平均折扣价格。

SELECTAVG(DiscountPrice)asAvgDisPrice

FROMBook

WHEREPublishYear=2012ANDCategoryName=’计算机类’

(23)查询库存量超过1000本的仓库的仓库名称和库存量。

SELECTStock.WarehouseID,WarehouseName,SUM(StorageRate)

FROMStock,Warehouse

WHEREStock.WarehouseID=Warehouse.WarehouseID

GROUPBYStock.WarehouseID

HAVINGSUM(StorageRate)>1000

(24)查询每个仓库中库存量最小的书籍的书籍名称与书籍编号。

SELECTS1.BookID,BookName

FROMBookS1,(SELECTBookID,WarehouseID,MIN(StorageRate)FROMStockGROUPBYWarehouseID)S2

WHERES1.BookID=S2.BookID

(25)查询“华南广州仓”仓库中库存量高于书籍编号为“K0011”的书籍的库存量的所有书籍的书籍信息。

SELECT*

FROMBook

WHEREBookIDIN(

SELECTBookIDFROMStock,Warehouse

WHEREStock.WarehouseID=Warehouse.WarehouseIDANDWarehouseName=’华南广州仓’

GROUPBYBookID

HAVINGSUM(StorageRate)>(SELECTSUM(StorageRate)FROMStockWHEREBookID=’K0011’)

(26)列出在两个仓库的库存量都少于50本的书籍的书籍名称和书籍编号。

SELECTBook.BookID,BookName

FROMBook

WHEREBookIDIN

(SELECTBookIDFROMStockS1,StockS2WHERES1.BookID=S2.BookIDANDS1.StorageRate<50ANDS2.StorageRate<50ANDS1.WarehouseID<>S2.WarehouseID)

(27)统计库存量之和大于1500的书籍的库存量与书籍名称。

SELECTBookName,SUM(StorageRate)

FROMBook,Stock

WHEREBook.BookID=Stock.BookID

GROUPBYStock.BookID

HAVINGSUM(StorageRate)>1500

(28)列出在“华南广州仓”和“华南福建仓”都有库存的书籍的名称

SELECTBookName

FROMBook

WHEREBookIDIN

SELECTBookID

FROMStockS1,StockS2

WHERES1.BookID=S2.BookIDANDS1.WarehouseID=(SELECTWarehouseIDFROMWarehouseWHEREWarehouseName=’华南广州仓’)ANDS2.WarehouseID=(SELECTWarehouseIDFROMWarehouseWHEREWarehouseName=’华南福建仓’)

(29)建立计算机类书籍的基本信息的视图,包含书籍基本信息表的所有字段。

CREATEVIEWComputerBook

AS

SELCT*FROMBook

WHERECategoryName=’计算机类’

(30)建立计算机类书籍的库存量的视图,包含以下字段:

书籍编号、书籍名称、类别名称、仓库编号、库存量。

CREATVIEWBookStock

AS

SELECTBook.BookID,BookName,CategoryName,Stock.WarehouseID,StorageRate

FROMBook,Stock,Warehouse

WHEREBook.BookID=Stock.BookIDANDStock.WarehouseID=Warehouse.WarehouseID

第六章

第七章

编写程序,连接数据库,从书籍信息表中查找所有书籍的ISBN(ISBN)、书名(BookName)、作者(Author)、价格(Price),页数(Pages)和简介(About),并将这些字段读取出来。

Stringusername="sa";

Stringpassword="";

Stringurl="jdbc:

microsoft:

sqlserver:

//localhost:

1433;DatabaseName=E_Bookstore";

Class.forName("com.microsoft.jdbc.sqlserver.jdbc.SQLServerDriver").newInstance();

Connectionconn=DriverManager.getConnection(url,username,password);

Statementstmt=conn.createStatement();

Stringsql="selectISBN,BookName,Author,Price,Pages,AboutfromBook_Information";

ResultSetrs=stmt.executeQuery(sql);

while(rs.next()){

Stringa=rs.getString("ISBN");

Stringb=rs.getString("BookName");

Stringc=rs.getString("Author");

Stringd=rs.getString("Price");

Stringe=rs.getString("Pages");

Stringf=rs.getString("About");

}

第八章

1.编写一个用于展示出版社资料信息表信息的jsp文件。

建立的PressList.jsp文件如下:

<%@pagelanguage="java"contentType="text/html;charset=UTF-8"

pageEncoding="UTF-8"%>

<%@pageimport="java.sql.*"%>

出版社资料信息

出版社编号

出版社名称

电话

Email

地址

邮编

网址

<%

Stringusername="sa";

Stri

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1