云南大学数据库期末大作业:数据库设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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),