连锁超市数据库及代码.docx

上传人:b****5 文档编号:8103867 上传时间:2023-01-28 格式:DOCX 页数:16 大小:216.79KB
下载 相关 举报
连锁超市数据库及代码.docx_第1页
第1页 / 共16页
连锁超市数据库及代码.docx_第2页
第2页 / 共16页
连锁超市数据库及代码.docx_第3页
第3页 / 共16页
连锁超市数据库及代码.docx_第4页
第4页 / 共16页
连锁超市数据库及代码.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

连锁超市数据库及代码.docx

《连锁超市数据库及代码.docx》由会员分享,可在线阅读,更多相关《连锁超市数据库及代码.docx(16页珍藏版)》请在冰豆网上搜索。

连锁超市数据库及代码.docx

连锁超市数据库及代码

实验7数据库设计

一、实验目的

使学生能够对给定的实际需求,选择一种编程语言或开发工具,完成数据库设计,并实现数据的查询等操作,从而掌握数据库应用系统的设计方法和步骤。

熟悉大型数据库管理系统的结构与组成;

熟悉数据库应用系统的设计方法和开发过程;

掌握一种大型数据库管理系统(SQLSERVER或ORACLE)的应用技术和开发工具的使用;

熟悉数据库设计工具的使用;

熟悉数据库安全的相关知识和技术;

熟悉数据库系统的管理和维护。

二、实验时数4学时

三、实验内容

完整实践数据库应用系统设计的工程过程:

需求分析\概念设计\逻辑设计\物理设计\实施\编写应用程序:

(1)需求分析:

选定一个应用,对所设计的数据库系统有一定的调研分析,其结果应该以简单的需求分析说明书\数据字典和数据流图(2级数据流即可)表示;

(2)概念分析:

使用E-R图作为描述工具.描述出局部和全局的E-R图;

(3)逻辑设计:

将E-R图转化为相应的关系模式,并根据范式理论进行优化分析,关系模式不少于3个;

(4)物理设计:

根据需要设计必要的索引等结构;

(5)实施:

以某种DBMS为工具创建出完整的数据库.在数据库中要表现出的知识点包括:

①设置数据完整性(参照完整性、实体完整性、自定义完整性(包括触发器)。

②设置用户,并相应设计用户的权限和角色(用户设计至少3个,有不同的权限)。

③建立存储过程完成相关操作至少2个,以文件方式保存。

(6)编写应用程序:

利用开发工具C++、JAVA、.NET平台或其它动态网页开发工具编写应用程序;

(7)以上内容,请详细描述,并有必要抓图;

(8)提交系统的源码程序、设计性实验报告。

 

表名

中文名

MerchInfo

商品信息表

Factory

供货表

Provide

供货商表

Supermaket

超市表

Sale

销售表

Users

顾客表

Member

会员表

商品信息表(MerchInfo)

字段名

字段类型

长度

字段值约束

主/外键

对应中文名

MerchID

Int

4

Notnull

F

商品编号

MerchName

varchar

50

Notnull

商品名称

MerchPrice

varchar

50

Notnull

商品价格

BarCode

money

4

Notnull

条形码

顾客表(User)

字段名

字段类型

长度

字段值约束

主/外键

对应中文名

UserID

varchar

10

Notnull

F

顾客编号

UserName

varchar

25

Notnull

顾客名称

UserPW

varchar

50

Notnull

顾客密码

UserStyle

int

2

Notnull

顾客类型

 

会员表(Member)

字段名

字段类型

长度

字段值约束

主/外键

对应中文名

MemberName

varchar

10

Notnull

F

会员姓名

MemberCard

varchar

20

Notnull

会员卡号

TotalCost

Money

4

Notnull

累计金额

RegDate

Datetime

8

Notnull

注册日期

销售表(Sale)

字段名

字段类型

长度

字段值约束

主/外键

对应中文名

SaleID

varchar

10

Notnull

F

流水账号

MerCHID

varchar

10

Notnull

P

商品编号

SaleDate

Datetime

8

Notnull

销售日期

SaleNum

Int

4

Notnull

销售数量

SalePrice

Money

4

Notnull

销售金额

UserID

varchar

10

Notnull

P

顾客编号

供货表(Factory)

字段名

字段类型

长度

字段值约束

主/外键

对应中文名

FactoryID

varchar

10

Notnull

F

供货编号

FactoryDate

varchar

Notnull

供货日期

FactorySL

varchar

4

Notnull

供货数量

MerCHID

varchar

10

Notnull

P

商品编号

ProvideID

varchar

10

Notnull

P

供货商号

供货商表(Provide)

字段名

字段类型

长度

字段值约束

主/外键

对应中文名

ProvideID

varchar

10

Notnull

F

供货商号

ProvideName

varchar

50

Notnull

供货商名称

ProvideAddress

varchar

250

Notnull

供货商地址

ProvidePhone

varchar

25

Notnull

供货商电话

仓库表(Supermaket)

字段名

字段类型

长度

字段值约束

主/外键

对应中文名

SupermaketID

int

10

Notnull

F

仓库编号

SupermaketName

varchar

50

Notnull

仓库名称

SupermaketAddress

varchar

250

Notnull

仓库地址

库存表

字段名

字段类型

长度

字段值约束

对应中文名

KCL

varchar

10

Notnull

库存量

SPBH

varchar

10

Notnull

商品编号

CKBH

varchar

10

Notnull

仓库编号

创建数据库

createdatabaseSuperMarketdb

onprimary(

name=SuperMarketdb,

filename='C:

\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\SuperMarketdb.mdf',

size=100MB,

maxsize=200MB,

filegrowth=20MB)

logon(

name=SuperMarketlog,

filename='C:

\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\SuperMarketdb.ldf',

size=60MB,

maxsize=200MB,

filegrowth=20MB)

go   

/*创建商品信息表*/ 

CREATETABLEMerchInfo(

MerchIDintPrimarykey,

MerchNamevarchar(50)NOTNULL,

MerchPricemoneyNOTNULL,

BarCodevarchar(20)NOTNULL,

GO

/*创建供货表*/ 

CREATETABLEFactory(

FactoryIDvarchar(10)Primarykey,

FactoryDateDatetimeNOTNULL,

FactorySLChar(4)NOTNULL,

MerCHIDvarchar(10)NOTNULL,

ProvideIDvarchar(10)NOTNULL)

GO

/*创建供货商表*/ 

CREATETABLEProvide(

ProvideIDvarchar(10)Primarykey,

ProvideNamevarchar(50)NOTNULL,

ProvideAddressvarchar(250)NOTNULL,

ProvidePhonevarchar(25)NOTNULL)

GO 

/*创建仓库表*/ 

CREATETABLESupermaket(

SupermaketIDintPrimarykey,

SupermaketNamevarchar(10)NULL,

SupermaketAddressvarchar(10)NULL)

GO

/*创建会员表*/ 

CREATETABLEMember(

MemberNamevarchar(10)Primarykey,

MemberCardvarchar(20)NOTNULL,

TotalCostmoneyNOTNULL,

RegDatedatetimeNOTNULL)

GO

/*创建购买表*/ 

CREATETABLESale(

SaleIDintPrimarykey,

MerCHIDvarchar(10)NOTNULL,

SaleDatedatetimeNOTNULL,

SaleNumintNOTNULL,

SalePricemoneyNOTNULL,

UserIDvarchar(10)NOTNULL)

GO

/*创建顾客表*/ 

CREATETABLEUsers(

UserIDvarchar(10)Primarykey,

UserNamevarchar(25)NOTNULL,

UserPWvarchar(50)NOTNULL,

UserStyleintNOTNULL,)

GO

/*----------添加表信息----------*/

MerchInfo:

INSERTINTOMerchInfo(MerchID,MerchName,MerchPrice,BarCode)

VALUES('001','德芙巧克力','20','11112222');

INSERTINTOMerchInfo(MerchID,MerchName,MerchPrice,BarCode)

VALUES('002','上好佳','2','11113333');

INSERTINTOMerchInfo(MerchID,MerchName,MerchPrice,BarCode)

VALUES('003','火腿肠','5','11114444');

INSERTINTOMerchInfo(MerchID,MerchName,MerchPrice,BarCode)

VALUES('004','面包','4','11115555');

Users:

INSERTINTOUsers(UserID,UserName,UserPW,UserStyle)

VALUES('001','张一','985211','1');

INSERTINTOUsers(UserID,UserName,UserPW,UserStyle)

VALUES('002','王二','211985','2');

INSERTINTOUsers(UserID,UserName,UserPW,UserStyle)

VALUES('003','朱三','369852','2');

INSERTINTOUsers(UserID,UserName,UserPW,UserStyle)

VALUES('004','郭四','456321','1');

Member:

INSERTINTOMember(MemberName,MemberCard,TotalCost,RegDate)

VALUES('张一','001','200','2014-12-1');

INSERTINTOMember(MemberName,MemberCard,TotalCost,RegDate)

VALUES('王二','002','100','2014-11-1');

INSERTINTOMember(MemberName,MemberCard,TotalCost,RegDate)

VALUES('朱三','003','350','2014-9-3');

INSERTINTOMember(MemberName,MemberCard,TotalCost,RegDate)

VALUES('郭四','004','700','2014-8-1');

Sale:

INSERTINTOsale(SaleID,MerCHID,SaleDate,SaleNum,SalePrice,UserID)

VALUES('0000','001','2014-12-28','30','750','002');

INSERTINTOsale(SaleID,MerCHID,SaleDate,SaleNum,SalePrice,UserID)

VALUES('0001','002','2014-12-16','10','500','001');

INSERTINTOsale(SaleID,MerCHID,SaleDate,SaleNum,SalePrice,UserID)

VALUES('00002','003','2014-12-15','15','400','003');

Factory:

INSERTINTOfactory(FactoryID,FactoryDate,FactorySL,MerCHID,ProvideID)

VALUES('005','2014-12-1','500','002','010');

INSERTINTOfactory(FactoryID,FactoryDate,FactorySL,MerCHID,ProvideID)

VALUES('006','2014-12-11','200','001','012');

INSERTINTOfactory(FactoryID,FactoryDate,FactorySL,MerCHID,ProvideID)

VALUES('007','2014-12-24','500','003','011');

Provide:

INSERTINTOprovide(ProvideID,ProvideName,ProvideAddress,ProvidePhone)

VALUES('003','蒙牛','内蒙古','36363636');

INSERTINTOprovide(ProvideID,ProvideName,ProvideAddress,ProvidePhone)

VALUES('004','伊利','太原','56565656');

INSERTINTOprovide(ProvideID,ProvideName,ProvideAddress,ProvidePhone)

VALUES('005','飞鹤','唐山','78787878');

Supermaket:

INSERTINTOSupermaket(SupermaketID,SupermaketName,SupermaketAddress)

VALUES('01','一号超市','中华大街');

INSERTINTOSupermaket(SupermaketID,SupermaketName,SupermaketAddress)

VALUES('02','二号超市','光明大街');

INSERTINTOSupermaket(SupermaketID,SupermaketName,SupermaketAddress)

VALUES('03','三号超市','人民路');

/*----------创建表间约束----------*/ 

/*供货表中商品编号、供应商号分别与商品信息表、供应商表之间的外键约束*/

ALTERTABLEFactoryADD

CONSTRAINTFK_Factory_MerCHIDFOREIGNKEY(MerCHID)REFERENCESMerchInfo(MerCHID),

CONSTRAINTFK_Factory_ProvideFOREIGNKEY(ProvideID)REFERENCESProvide(ProvideID)

/*销售表中商品编号与商品信息表之间的外键约束*/

ALTERTABLESaleADD

CONSTRAINTFK_Sale_MerchInfoFOREIGNKEY(MerChID)REFERENCESMerchInfo(MerchID)ONDELETECASCADE

/*入库表中商品编号与商品信息表之间的外键约束*/

ALTERTABLEStockADD

CONSTRAINTFK_Stock_MerchInfoFOREIGNKEY(MerchID)REFERENCESMerchInfo(MerchID)ONDELETECASCADE

GO  

/*----------创建索引 ----------*/

--在顾客表上建立一个以顾客编号、顾客密码为索引项的非聚集索引

CREATEnonclusteredINDEXIX_UsersONUsers(UserID,UserPW)

GO

--在商品信息表上建立一个以商品编号为索引项的非聚集索引

CREATEnonclusteredINDEXIX_MerchInfoONMerchInfo(MerchID)

GO

--在购买表上建立一个以购买编号、购买日期为索引项的非聚集索引

CREATEnonclusteredINDEXIX_SaleONSale(SaleID,SaleDate)

GO

--在供货商表上建立一个以供货商号、供货商名称为索引项的非聚集索引

CREATEnonclusteredINDEXIX_ProvideONProvide(ProvideID,ProvideName)

GO

/*----------创建视图----------*/ 

--创建用于查看商品信息情况的视图 

CREATEVIEWv_MerchInfo

AS

SELECTMerchIDas商品编号,

MerchNameas商品名称,

MerchPriceas商品价格,

BarCodeas条形码

FROMMerchInfo

GO 

创建用于查询销售明细记录的视图

CREATEVIEWv_Sale

AS

SELECTMerchInfo.MerchNameas商品名称,

MerchInfo.BarCodeas条形码,

MerchInfo.MerchPriceas商品价格,

Sale.SalePriceas销售金额,

Sale.SaleNumas销售数量,

Sale.SaleDateas销售日期

FROMSaleINNERJOIN

MerchInfoONSale.MerChID=MerchInfo.MerchID

GO

创建用于供货情况的视图 

CREATEVIEWv_Factory

AS

SELECTFactory.FactorySLas供货数量,

Factory.FactoryDateas供货日期,

Provide.ProvideNameas供货商,

Provide.ProvideAddressas供货地址,

Provide.ProvidePhoneas供货电话

FROMFactoryINNERJOIN

ProvideONFactory.ProvideID=Provide.ProvideID

GO

--1.查询顾客表姓名为张一的信息

select*

fromusers

whereusername='张一';

--2.查询供货商编号为的货物信息

select*

fromProvide

whereProvideID='003'

--3.为供应商表添入一条数据

insert

intoprovide

values('007','豆奶','邯郸','89898989')

--4.创建角色Super并对顾客修改,查询和插入的功能赋给角色Super

createroleSuper

grantupdate,select,insert

onUsers

toSuper

--5.收回角色Super顾客表插入的功能

revokeinsert

onUsers

fromSuper

--6.删除角色Super

droproleSuper

--7.使用exists语句查询供货商地址为唐山的货物编号,货物名称和供货商电话

selectProvideID,ProvideName,ProvidePhone

fromProvide

whereexists

(select*fromProvide

whereProvide.Providename='唐山')

--8.建立触发器,当向供应商表插入新信息后,打印出:

添加一条供应商信息字样

createtriggerprovide_insert

onprovideafterinsert

asbeginprint'添加一条供应商信息'

end

go

insertintoprovide

values('008','芝麻糊','石家庄','67676767')

--9.创建查看一个超市信息的存储过程

createprocedurepro_Supermaket

as

selectSupermaketID,SupermaketName,SupermaketAddressfromSupermaket;

execpro_Supermaket

 

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

当前位置:首页 > 工作范文 > 行政公文

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

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