北工大-数据库实验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

17110113王禹心数据库原理上机报告教师评语:成绩:指导教师签字评阅日期:年月日17110113王禹心1.选题背景通过创建销售管理系统,实现对销售商品的销售情况,从中查看商品的销售情况。同时,从中能够查看出商品销售热度以及对商品的管理。也可通过销售管理系统营业员的销售总计来查看营业员的业绩。同时,方便用户查看商品信息,商品销售信息,营业员的销售业绩等等。总体说来,就是为用户实现一个方便的,简单的,可视化的商品销售管理平台。在一个销售管理系统中应该包含以下几种情况:进货时入库登记,以便日后查看和统计进货情况;销售时把相应数量的商品从现存商品库中减去,并记录于另外的一个销售库中,以便日后查看和统计销售信息;还要能够随时查看各种信息表,如营业员信息、商品信息、销售信息。除了以上一些基本的需求外,实际中公司还有用来精心决策和管理分析的数据。如希望查看各个时间段(如今日、本月、本年度等)的进货和销售情况,以便对以后的运作进行一个准确的预测和正确的决断。为了调动员工的积极性,员工的薪水应该和他的销售情况挂钩的,因此还需要能够查看各员工的销售情况,以便对他们的业绩进行考核和评比。本系统正是针对一般销售公司的都有的以上需求而设计的,可以有效管理数据。主要功能有厂商进货,交易管理,包括进货商品登记管理、销售登记管理、营业员信息管理;销售统计管理,其中包括有关进货的各种统计数据表,如进货商品统计,商品信息登记等;员工销售业绩的考核,可以很方便的地查看各员工的销售情况,以便对各员工的业绩进行考核比较;客户订单详情,包括所购买的商品单价数量和总价等,能清晰直观的看出销售情况。2.问题描述2.1实体集销售管理系统的后台数据管理系统中应含有如下实体集:1.厂家“厂家”实体集含有的属性有:厂家名称,厂家编号,负责人,和商品出厂价。其中厂家编号是它的主键。2.商品“商品”实体集含有的属性有:商品出售价格,规格,商品名,商品编号,保质期,和备注。其中商品编号是它的主键。17110113王禹心3.销售经理“销售经理”实体集含有的属性有:经理编号,性别,姓名。其中经理编号是它的主键。4.营业员“营业员”实体集含有的属性有:营业员姓名,编号,性别,基本工资。其中营业员编号是它的主键。5.客户“客户”实体集含有的属性有:客户姓名,和身份证号。其中身份证号是它的主键。6.订单“订单”是一个弱实体集,一个确定的客户和订单中的流水单号可以确定一个订单。其中含有的属性有:结算时间,流水单号,和完成订单的营业员编号。其中客户的身份证号和流水单号共同组成它的主键。7.购买商品“购买商品”实体集包含的属性有:购买商品的总价,单价,数量和商品编号,其中商品编号是它的主键。8.产地“农夫山泉”是“商品”的子集。除“商品”所含属性外,其还包含“海外”,“国内”这两个额外属性。2.2联系销售管理系统的后台数据管理系统中,含有如下联系:1.厂家和商品间的联系f_p一个厂家可以生产多种商品,但一种商品只能由一个厂家生产。它们的联系是“多对一”的。2.商品和销售经理的联系p_m一种商品可以被唯一的销售经理分配,一个管理员可以分配多种商品。它们的联系是“多对一”的。17110113王禹心3.销售经理和营业员的联系m_a一个销售经理能管理很多营业员,但一个营业员只能被一个管理员管理。它们的联系是“多对一”的。4.营业员和客户的联系a_c一个营业员可以负责多位客户,一个客户也可以找多个营业员办理不同的业务。它们的联系是“多对多”的。5.客户和订单的联系一个客户能有很多订单,但一个订单只属于一个客户。它们的联系是“一对多”的。6.订单和购买商品的联系b_bp一个订单能包含很多商品,但一个购买商品只能存在一个订单中。它们的联系是“多对一”的。3.数据查询与更新需求3.1数据查询对于销售商品的销售员,可以按照不同得查找方法排序他们的销售业绩。按所有订单中某个特定商品的销售总量降序输出销售员的编号并附带其销售量,若对此商品的总销量相同,则按完成此产品销售的完成度排名。(如张三被分配销售300瓶农夫山泉,成功售出200瓶;李四被分配销售250瓶农夫山泉,也成功售出200瓶,则李四排名在张三之上。)除此种查询方式外,也可按照所有订单的销售总额降序输出销售员编号,若销售总额相同,则按照销售员所拥有的客户数量降序输出销售员的编号。3.2数据更新厂家可以添加或删除所供给的商品,并且决定提供商品的数量和价格。销售经理可以将不同的商品分发给不同的销售员进行销售。这些操作都会带来数据的更新。4.ER图17110113王禹心根据前三节所述,用于销售管理系统后台数据的数据库的ER模型如图4.1所示。图4.1ER图5.关系模式依据4.1中ER模型建立关系模式:厂家(厂家编号,厂家的其他属性)商品(商品编号,商品的其他属性)销售经理(经理编号,销售经理的其他属性)营业员(营业员编号,营业员的其他属性)17110113王禹心客户(客户身份证号,客户的其他属性)订单(客户身份证号,订单流水号,其他属性)(此处应设置多值主键)购买商品(商品编号,购买商品的属性)产地(商品编号,商品的其他属性,产地的属性)(此处应设置外键)厂家-商品(厂家编号,商品编号)商品-销售经理(商品编号,经理编号)销售经理-营业员(经理编号,营业员编号)营业员-客户(营业员编号,客户身份证号)订单-购买商品(订单流水号,购买商品编号)6.数据库基本表如图所示,数据库test中共有14个基本表,分别是工厂(factory)、营业员(assistants)、订单(booking)、购买商品(buyproducts)、客户(clients)、销售经理(manager)、产地(place)、商品(products)、营业员-客户(a_c)、订单-购买商品(b_bp)、工厂-商品(f_p)、销售经理-营业员(m_a)、商品-销售经理(p_m)。17110113王禹心6.1厂家(factory)6.1.1数据类型6.1.2表中数据6.2商品(products)6.2.1数据类型6.2.2表中数据17110113王禹心6.3销售经理(manager)6.3.1数据类型6.3.2表中数据6.4营业员(assistant)6.4.1数据类型17110113王禹心6.4.2表中数据6.5客户(clients)6.5.1数据类型6.5.2表中数据6.6订单(booking)6.6.1数据类型6.6.2表中数据17110113王禹心6.7购买商品(buyproducts)6.7.1数据类型6.7.2表中数据6.8产地(place)6.8.1数据类型17110113王禹心6.8.2表中数据6.9厂家-商品(f_p)6.9.1数据类型6.9.2表中数据17110113王禹心6.10商品-销售经理(p_m)6.10.1数据类型6.10.2表中数据6.11销售经理-营业员(m_a)6.11.1数据类型6.11.2表中数据17110113王禹心6.12营业员-客户(a_c)6.12.1数据类型6.12.2表中数据6.13订单-购买商品(b_bp)6.13.1数据类型6.13.2表中数据17110113王禹心7.实验过程7.1实验1:数据库的创建与删除如图7.1所示,使用showdatabases命令显示当前数据库服务器上所有的数据库;使用CREATEDATABASE[databasename]命令创建数据库,如果已有同名数据库存在,则不能成功创建。使用DROPDATABASE[databasename]命令删除数据库。图7.1创建数据库的创建与删除17110113王禹心7.1.1思考题1.数据库文件有哪些增长方式?按百分比(按数据库文件的总长度的百分之几增长)或.按固定长度2.日志文件的作用是什么?日志文件(log文件)记录系统(程序)运行的状态。可以通过log文件查询历史操作,在发生“灾难性”问题时可以通过log文件找回信息,发现问题。7.2实验2:基本表的创建与删除7.2.1基本表的创建如图7.2所示,使用CREATETABLE命令创建基本表,创建过程中可对表中各项数据的特点进行设置。以图中为例,表中factory-id列被设置为主键,并且为其添加了自动增加的属性。使用SHOWTABLES查看当前数据库中所有基本表,使用DESC[tablename]命令查看基本表中各项数据的属性。7.2基本表的创建17110113王禹心7.2.2基本表的设置如图7.3所示,使用:ALTERTABLEfactoryAUTO_INCREMENT=1000图7.3基本表的设置命令设置表中factory-id自动从1000开始增长;7.2.3基本表的修改使用:ALTERTABLEfactoryMODIFY`factory-name`VARCHAR(80);命令修改表中factory-name列类型为VARCHAR(80);17110113王禹心图7.4基本表修改7.2.4基本表的删除如图7.4所示,使用DROPTABLE[tablename]命令删除基本表,删除前后使用SHOWTABLES查看数据库中基本表列表的变化。图7.5基本表的删除7.2.5思考题1.什么叫做外键?公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。17110113王禹心2.外键的作用是什么?保持数据一致性,完整性。7.3实验3:数据的增、删、改7.3.1数据的增加如图7.5所示,使用INSERTINTO命令向基本表中增加数据,命令格式如下:INSERTINTOtable_nameVALUES(v1,v2,...)INSERTINTOtable_name(column1,column2,...)VALUES(v1,v2,...)图7.6使用INSERTINTO命令增加数据7.3.2数据的删除使用:DELETEFROM[tablename]WHERE[columnname]=value;命令删除基本表中数据,如图7.7所示。17110113王禹心图7.7数据的删除使用:TRUNCATE[tablename]命令删除表中所有数据,如图7.8所示。图7.8删除表中全部数据7.3.3数据的更新使用:UPDATE[tablename]SETcolumn1=value1,17110113王禹心column2=value2,…WHEREkey_value=some_value;命令对表中原始数据进行更新,如图7.9所示。图7.9数据的更新7.3.4思考题1.MySQLServer提供了哪些类型的完整性约束?五种完整性约束,分别是:(1)NOTNULL:非空约束非空约约束就是限制必须为某个列提供值。空值(NULL)是不存在值,它既不是数字0,17110113王禹心也不是空字符串,而是不存在、未知的情况。(2)UNIQUE:唯一约束唯一约束使用UNIQUE关键字来定义。唯一约束的值必须是唯一的,且不能为空(NULL)。在MySQL中,唯一约束与主键之间存在以下两点区别。1.一个表只能创建一个主键,但可以定义多个唯一约束。2.定义主键约束时,系统会自动创建PRIMARYKEY索引,而定义候选键约束时,系统会自动创建UNIQUE索引。(3)PRIMARYKEY:主键约束主键可以是表中的某一列,也可以是表中的多个列所构成的一个组合;其中,由多个列组合而成的主键也称为复合主键。在MySQL中,主键列必须遵守以下规则。1.每一个表只能定义一个主键。2.唯一性原则。主键的值,也称键值,必须能够唯一表示表中的每一条记录,且不能为NULL。3.最小化规则。复合主键不能包含不必要的多余列。也就是说,当从一个复合主键中删除一列后,如果剩下的列构成的主键仍能满足唯一性原则,那么这个复合主键是不正确的。4.一个列名在复合主键的列表中只能出现一次。(4)FOREIGNKEY:外键约束指定该行记录从属于主表中的一条记录,主要用于参照完整性(5)CHECK:检查约束检查约束用来指定某列的可取值的范围,它通过限制输入到列中的值来强制域的完整性。2.

1 / 48
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功