云南大学数据库期末大课后复习-数据库设计

  • 格式:doc
  • 大小:360.52 KB
  • 文档页数:20

下载文档原格式

  / 20
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

云南大学软件学院实验报告

课程:数据库原理与实用技术实验学期:任课教师:

专业:学号:姓名:成绩:

期末大作业:Electronic Ventor 数据库设计

一、实验目的

(1)掌握数据库设计的基本方法

(2)掌握各种数据库对象的设计方法

(3)熟练掌握DBA必须具备的技能

二、实验内容

1、根据项目的应用和项目的需求说明文档,进行详细的需求分析,给出需求分析的结果。

(1)客户可以在网站上注册,注册的客户要提供客户的姓名、电话、地址,以方便售后和联系,姓名即作为用户名,和密码一起用于注册和登录,客户编号可唯一识别用户,卡号可网上支付。其中地址、电话以方便联系和寄货;

(2)网站管理员可以登记各种商品,供客户查询,订购。登记商品时要提供商品的名称、价格,商店中现有商品量,商品编号可唯一识别商品;

(3)类别表示商品所属类别,类别编号可唯一识别类别,其中包含了,商品类别名称和制造厂商,可以对商品进行分类售卖;

(4)客户可以在网上下订单,也可以到实体店购物,其在订单上所选择的支付方式不同(信用卡、借记卡、现金,现金代表实体店购物),网站管理员可以查看订单,并及时将订单的处理情况更新(比如货物已寄出的信息,订单状态:0:未处理,1:已处理,2:已发货);订单编号可唯一识别订单,订单中包含订单产生时间,订单状态,支付方式和支付总额;

(5)实体商店有自己的店名,卖多种商品,每个商店都有固定的地址,顾客可以到店中买商品,(注:在实体店中购买商品的顾客一律将顾客名默认为佚名),当商店中的库存量小于10时会有提醒到仓库中拿货;

(6)配送单中包含查询号可唯一识别配送单,配送人,联系方式;

(7)仓库中仓库编号可唯一识别仓库,其中每个仓库都有区号,代表其地址。

(8)各实体间关系

1)一个客户可以购买多种商品,一种商品可以被多个客户购买;

2)一个商品属于且仅属于一种类别,一种类别的商品可以包含多个商品或没有;

3)一种商品放在多个商店中销售,一个商店至少销售一种或销售多种商品;

4)一个订单对应一个客户,一个客户对应多个订单;

5)一个订单对应至少有一件商品或多件,一个商品对应多个订单;

6)一个订单可以有一个商品配送单

7)一个仓库可以存放多种商品,一种商品可以存放在一个仓库;

2、数据库逻辑设计:用文字简要描述实体之间的联系,画出E-R图(标出各联系中实体的基数)。

客户-商品:n-n;

商品-类别:n-1;

商品-商店:n-n;

客户-订单:1-n;

订单-商品:1-n;

订单-配送当:1-1;

仓库-商品:1-n

3、数据库物理设计:将E-R图转换为数据表。需要给出详细的转换规则,对应生成的表,属性(主属性、描述性属性,多值属性,符合属性等),主键,外键,约束(取值是否NULL等),索引(三种类型的索引至少每种出现一次)等。

在客户,配送单,类别中建立索引,语句在4题中

如3中,有2个n-n关系,分生成订购表和销售表

4、SQL中创建语句的使用:根据第二步中的结果,将相应的表,属性,主键,外键,约束等使用标准的SQL CREATE语句实现。(要求给出创建的标准语句,以及创建之后在SQL数据库中的脚本和截图)。

create table 客户

(

客户编号char(5) not null unique,

姓名varchar(10),

密码varchar(15),

电话numeric(11),

地址varchar(20),

卡号char(19),

constraint PK_客户primary key (客户编号)

);

create table 类别

(

类别编号char(5) not null unique,

类别名称varchar(10),

制造商varchar(10) ,

constraint PK_类别primary key (类别编号)

);

create unique index 类别_PK on 类别(

类别编号ASC

);

create table 仓库

(

仓库编号char(5) not null unique,

仓库区号varchar(5),

constraint PK_仓库primary key (仓库编号)

);

create table 商品

(

商品编号char(5) not null unique,

仓库编号char(5) not null,

类别编号char(5) not null,

商品名称varchar(50),

价格float,

constraint PK_商品primary key (商品编号),

constraint fk_仓库编号foreign key(仓库编号) references 仓库, constraint fk_类别编号foreign key(类别编号)references 类别);

create unique clustered index 客户_PK on 客户(

客户编号ASC

);

create table 订单

(

订单编号char(5) not null,

客户编号char(5),

订购时间varchar(10),

支付方式varchar(10),

订单状态numeric,

总额float ,

constraint PK_订单primary key (订单编号),

constraint fk_客户编号foreign key(客户编号)references 客户);

create table 配送单

(

查询号char(10) not null unique,

订单编号char(5) not null,

配送人varchar(10),