超市管理系统 ()
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、医药超市管理系统
需求分析
根据用户对该系统需求的描述,系统包括以下几个子系统:
1.职工管理
要求能够查询某家门店的职工情况,职工的详细信息;能够添加、删除及更新。
2.门店管理
要求能够提供销售情况。如某门店在某天销售了哪些药品,销售额是多少,某月各门店日平均销售额是多少;能够添加、删除及更新。
3.药品管理
要求能够查询某家门店的某药品存量,或某药品在哪个门店有货,有多少;
能够添加、删除及更新。
4.供应商管理
要求能够查询某门店的某种药品来自于哪个供应商,来自于哪个城市;
能够添加、删除及更新。
关系模式
根据ER图设计关系模式如下:
将每个实体转化为一个关系模式,职工与门店的m:1的联系与m端的关系模式合并,门店与药品的m:n的销售联系和储存联系转化为单独的关系模式,门店、药品与供应商之间的m:n:p的联系转化为单独的关系模式,得到所有的关系模式如下(下划线的属性为主码):
职工(编号,姓名,性别,年龄,职务,所属门店编号)
Employee ( Eno ,Ename , Esex ,Eage , Estate , SHno );
门店(编号,地址,邮编,电话)
Shop ( SHno , SHaddress , SHpost , SHtel );
药品(编号,名称,条码)
Drug ( Dno , Dname , Dnum );
供应商(编号,名称,城市,地址,电话)
Supplier ( SUno , SUname , SUcity , SUaddress , SUtel );
销售(门店编号,药品编号,数量,单价,日期)
Sale ( SHno , Dno , SAamout , SAprice , SAdate );
储存(门店编号,药品编号,存货量)
Store ( SHno , Dno , STamout );
供应(门店编号,供应商编号,药品编号,单价,数量,日期)
Supply ( SHno , SUno , Dno , Sprice , Samout ,Sdate)。
一、规范化
1.职工(编号,姓名,性别,年龄,职务,所属门店编号)
每个职工的编号是唯一的,允许同名。
该关系模式的函数依赖:{ 编号→姓名,编号→性别,编号→年龄,编号→职务,编号→所属门店编号}
非主属性完全函数依赖于码,并且不存在非主属性对码的传递依赖,属3NF。
2.门店(编号,地址,邮编,电话)
每个门店的编号是唯一的。
该关系模式的函数依赖:{ 编号→地址,编号→邮编,编号→电话}
非主属性完全函数依赖于码,并且不存在非主属性对码的传递依赖,属3NF。
3.药品(编号,名称,条码)
每种药品的编号是唯一的,条码也是唯一的。
该关系模式的函数依赖:{ 编号→名称,编号→条码,条码→名称,条码→编号}
非主属性完全函数依赖于码,并且不存在非主属性对码的传递依赖,属3NF。
4.供应商(编号,名称,城市,地址,电话)
该关系模式的函数依赖:{ 编号→名称,编号→城市,编号→地址,编号→电话}
非主属性完全函数依赖于码,并且不存在非主属性对码的传递依赖,属3NF。
5.销售(门店编号,药品编号,数量,单价,日期)
该关系模式的函数依赖:{ (门店编号,药品编号,日期)→数量,(门店编号,药品编号,日期)→单价}
非主属性完全函数依赖于码,并且不存在非主属性对码的传递依赖,属3NF。
6.储存(门店编号,药品编号,存货量)
该关系模式的函数依赖:{ (门店编号,药品编号)→存货量}
非主属性完全函数依赖于码,并且不存在非主属性对码的传递依赖,属3NF。
7.供应(门店编号,供应商编号,药品编号,单价,数量,日期)
该关系模式的函数依赖:{ (门店编号,供应商编号,药品编号,日期)→单价,(门店编号,供应商编号,药品编号,日期)→数量}
非主属性完全函数依赖于码,并且不存在非主属性对码的传递依赖,属3NF。
建表语句
create table Employee
( Eno CHAR(5) PRIMARY KEY,
Ename VARCHAR(6) NOT NULL,
Esex CHAR(2) NOT NULL,
Eage SMALLINT(1) CHECK(Eage>=18),
Estate VARCHAR(10) NOT NULL,
SHno CHAR(5) NOT NULL,
FOREIGN KEY(SHno) REFERENCES Shop(SHno)
);
create table Shop
( SHno CHAR(5) PRIMARY KEY,
SHaddress VARCHAR(50) NOT NULL,
SHpost CHAR(6),
SHtel VARCHAR(15) NOT NULL
);
create table Drug
( Dno CHAR(5) PRIMARY KEY,
Dname VARCHAR(20) NOT NULL,
Dnum VARCHAR(20) NOT NULL UNIQUE
);
create table Supplier
( SUno CHAR(5) PRIMARY KEY,
SUname VARCHAR(20) NOT NULL,
SUcity VARCHAR(20),
SUaddress VARCHAR(20),
SUtel VARCHAR(20)
);
create table Sale
( SHno CHAR(5),
Dno CHAR(5),
SAamout SMALLINT CHECK(SAamout>=0),
SAprice FLOAT(10) CHECK(SAprice>=0),
SAdate DATE NOT NULL,
PRIMARY KEY (SHno , Dno , SAdate)