2025年《管理信息系统》数据库设计实操模拟卷.docxVIP

  • 0
  • 0
  • 约4.37千字
  • 约 6页
  • 2026-01-26 发布于山西
  • 举报

2025年《管理信息系统》数据库设计实操模拟卷.docx

2025年《管理信息系统》数据库设计实操模拟卷

考试时间:______分钟总分:______分姓名:______

一、

假设一个在线书店管理信息系统需要管理以下核心业务:用户信息、图书信息、订单信息、订单明细(用户购买的具体图书和数量)。请根据此场景,进行需求分析。

1.列出该系统涉及的核心实体,并说明每个实体的主要属性(至少包含一个唯一标识属性)。

2.分析实体之间的关系,明确每个关系的类型(一对一、一对多、多对多),并说明理由。

3.假设一个用户可以下多个订单,一个订单包含多本图书,一本图书可以出现在多个订单明细中。请用文字清晰描述“用户”与“订单”之间、“订单”与“订单明细”之间、“图书”与“订单明细”之间的关系,包括它们各自的基数(Cardinality)。例如:“一个用户可以下多个订单,一个订单属于一个用户,满足一对多关系,记为1:N。”

二、

根据上一题的需求分析结果,请绘制对应的E-R图(文字描述即可,无需图形符号)。在描述中,需明确指出每个实体的所有属性(包括主键)、每个关系的名称和参与实体。

三、

将第二题绘制的E-R图转换为关系模式(逻辑结构设计)。对于每个关系模式,请给出名称、所有属性(列名)、主键(PrimaryKey)和外键(ForeignKey)的指定。假设所有属性均为简单属性,无需分解。

四、

假设数据库已经按照第三题的设计创建了以下三个关系模式(请用SQL语句表示):

*`用户(用户IDINT,用户名VARCHAR(50),联系电话VARCHAR(20),地址VARCHAR(100))`

*`图书(图书IDINT,图书名称VARCHAR(100),作者VARCHAR(50),出版商VARCHAR(50),库存数量INT)`

*`订单(订单IDINT,下单日期DATE,用户IDINT,总金额DECIMAL(10,2))`

请完成以下操作:

1.使用SQL语句为`用户`表的`用户ID`属性设置为主键。

2.使用SQL语句为`订单`表的`用户ID`属性设置外键,参照`用户`表的`用户ID`属性。

3.假设订单明细信息存储在名为`订单明细`的表中,该表包含`订单明细ID`(INT,主键),`订单ID`(INT),`图书ID`(INT),`购买数量`(INT)。请使用SQL语句创建`订单明细`表,并为`订单ID`和`图书ID`属性设置外键,分别参照`订单`表的`订单ID`和`图书`表的`图书ID`属性。

4.写一个SQL查询语句,查询所有订单的总金额以及对应的用户名。

五、

分析以下关系模式的设计是否存在问题。如果存在问题,请指出具体问题(如冗余、更新异常等),并提出优化方案(可以通过添加冗余字段或分解关系模式等方式),并简要说明优化理由。

```sql

CREATETABLE订单信息(

订单号CHAR(8)PRIMARYKEY,

客户名VARCHAR(50),

订单日期DATE,

产品号CHAR(6),

产品名VARCHAR(50),

单价DECIMAL(8,2),

数量INT,

总价DECIMAL(10,2)

);

```

试卷答案

一、

1.核心实体:用户、图书、订单、订单明细。

*用户:用户ID(主键),用户名,密码(假设),联系方式,地址等。

*图书:图书ID(主键),图书名称,作者,出版社,出版日期,价格,库存数量等。

*订单:订单ID(主键),用户ID(外键),下单日期,总金额,状态(如已支付、已发货)等。

*订单明细:订单明细ID(主键),订单ID(外键),图书ID(外键),购买数量,单价等。

2.实体间关系:

*用户与订单:一对多(One-to-Many)。一个用户可以下多个订单,一个订单只属于一个用户。

*订单与订单明细:一对多(One-to-Many)。一个订单可以包含多条订单明细,一条订单明细只属于一个订单。

*图书与订单明细:一对多(One-to-Many)。一本图书可以出现在多条订单明细中,一条订单明细只涉及一本图书。

3.关系描述:

*用户与订单:一个用户可以下多个订单,一个订单属于一个用户。关系名为“用户下单”,基数:1:N。

*订单与订单明细:一个订单包含多条订单明细,一条订单明细属

文档评论(0)

1亿VIP精品文档

相关文档