实验十 数据库设计
一. 【实验目的】
1.分析实际问题,进行需求分析的能力。
2.掌握功能结构和数据流图的能力
二. 【题目设置】
1. 宿舍分配管理系统
1) 管理员能够添加、删除、查找宿舍。可以为学生安排宿舍,调宿舍
2) 可以按学生查找所在宿舍,可以按宿舍查找所住的学生。
1)能够管理宿舍(添加、删除、查找)
2)能够管理学生(添加、删除、查找),为学生安排宿舍(住在哪个宿舍,调宿舍)。
2. 超市进销存管理系统
1)能够管理商品(属性:编号,名称,库存量,销售价,单位,规格)。
2)能够销售。销售单(销售编号,日期,收款,找零,实收,操作员),销售详单(销售编号,商品号,数量)
3)能够入库。入库单(采购员),入库详单。
3. 员工互评绩效考核系统
1) 能够管理员工。员工表(编号,姓名,性别,电话,部门号)
2) 能够互评打分。打分表(打分人编号,被评人编号,分数)
4. 图书管理系统
5. 课程选课管理系统
6. 火车票订票系统
7. 比赛管理系统
1. 管理球队
2.比赛的组织
3. 能够得到一个排行榜。
8. 工资查询系统
1. 员工可以查自己的工资(最近一期,或指定年月,或者指定起始年月和终止年月查询这之间的工资)
2. 管理员可以添加、删除工资。
9. 新闻管理系统
1. 显示新闻(列表方式、单页显示一个新闻)
2. 添加,删除,查找新闻的功能。
三. 【需求分析】
1.功能分析
用功能结构图和用例图来辅助说明。
图1 系统用例图
2.数据分析
1)超市管理系统的数据流图(Data Flow Diagram DFD)。
图2 顶层图
图3 一层图
图4 二层图
2)数据字典举例
1.商品编号
名称:商品编号
类型:字符char
长度:20
含义:商品的唯一标识。
产生时间:商品第一次入库时,分配商品编码
2.销售单号
3.应收金额
4.实收金额
3 表单(单据)示例
图5 发票示意图
3. 逻辑模型
1) 实体关系图(Entity Relationship ER)
图6 超市管理系统E-R图(部分)
2)关系模式
商品(编号,名称,库存量,价格,单位)
销售单(编号,日期,时间,合计)
详单(销售单号,商品号,销售数量)
根据以上设计的关系模式,实现打印发票获取数据的过程。
1、 指定单号(例如:123545-22)的销售单信息
Select *
From 销售单
Where 编号= ‘123545-22’
2、 销售的明细从详单中取得。详单(销售单号,商品号,销售数量)
Select 名称,销售数量,单价,销售数量*单价 as 合计
From 商品,详单
Where 商品.编号=详单.商品号 and 销售单号= ‘123545-22’
4. 物理模型
1)安装辅助开发工具(PowerDesign或者Astah)
2)在Astah中设计ER图。
图7 ER图
图7的上图中实体商品与销售单实体具有多对多的联系,用两个一对多来实现,即商品与销售详单为一个一对多联系,销售单与销售详单为第二个一对多联系。
图7的下图,两个实体间具有一个一对多的联系,通过在多的这方实体引用一的实体的主码。(注意:两图内的一对多表现形式不同下图为虚线,上图为实线。虚线表示外码不做主码,而实线表示外码做主码)
设计实体的逻辑名和物理名。
图8 商品表的逻辑名SP
图9 商品表的属性
3)通过ER图导出SQL语句。
选取菜单。
图10 导出ER图的SQL语句菜单
导出选项。
图11 导出SQL的选项(选择实体)
导出后的代码:
CREATE TABLE SP (
ID INT NOT NULL,
Name VARCHAR(20) NOT NULL,
Num INT,
Price NUMERIC(10),
Danwei VARCHAR(10)
);
ALTER TABLE SP ADD CONSTRAINT PK_SP PRIMARY KEY (ID);
CREATE TABLE XSD (
ID INT NOT NULL,
DT DATETime,
Total NUMERIC(10)
);
ALTER TABLE XSD ADD CONSTRAINT PK_XSD PRIMARY KEY (ID);
CREATE TABLE XSXD (
SID INT NOT NULL,
XSID INT NOT NULL,
sl CHAR(10)
);
ALTER TABLE XSXD ADD CONSTRAINT PK_XSXD PRIMARY KEY (SID,XSID);
ALTER TABLE XSXD ADD CONSTRAINT FK_XSXD_0 FOREIGN KEY (SID) REFERENCES SP (ID);
ALTER TABLE XSXD ADD CONSTRAINT FK_XSXD_1 FOREIGN KEY (XSID) REFERENCES XSD (ID);
MS Sql server内运行代码。