电费管理系统E-R图及数据库表设计
数据库E-R图
基本任务
消除不必要的冗余,设计生成基本E-R图
分E-R图
合并 初步E-R图 可能存在冗余的数据 和冗余的实体间联系 消除不必要的冗余
基本E-R图
1.冗余 消除不必要的冗余后的初步E-R图称为基本E-R图。 分析法消除冗余实例:
(1)例,教师工资单中包括该教师的基本工资、各种 补贴、应扣除的房租水电费以及实发工资。由于实发 工资可以由前面各项推算出来,因此可以去掉,在需 要查询实发工资时根据基本工资、各种补贴、应扣除 的房租水电费数据临时生成。 (2) 教室实体与班级实体的上课联系可以由教室与课程 之间的开设联系、课程与学生之间的选修联系、学生与 班级之间的组成联系三者推导出来,因此属于冗余联系, 可以消去。
3)M:N的联系,即多对多的联系 A中任意实体至少有一个实体对应B中的多个实体, 反之B中的任意实体至少有一个实体对应A中的多 个实体。 “学生”(A)是一种实体,“课程”(B)也是一种 实体。这两种实体之间存在一种联系,设这种联系 命名为“选课”,表示的是哪一个学生修了哪些门 课程。这个联系是M:N的,也就是说,一个学生 可以修多门课程,一门课程可以有多个学生来修, 但一个学生不一定修所有的课程,一门课程也不一 定被全部学生所选修。在E-R图中,这两种实体间 的联系可以表示如下图
1
拥有 成绩 m m 学生 选修 n
在E-R图中概念及术语 (1)实体与实体类型 实体:可以相互区别客观事物和概念的统一抽象。 是任何一种我们所关心的“事物”,可以指人,也 可以指物,可以是实际的东西,也可以是抽象的、 概念性的东西。 例 学生、回扣、医疗等。实体分为两级,一级为 “个体”,如“张三”、“国防科技大学”等;另 一级为“总体”,泛指某一类个体组成的集合,如 人泛指“张三”、 “李四”等。实体类型:将具 有共性的一类实体抽象为实体类型。在E-R图中, 实体这种基本成份用方框来表示。
例子 E-R图及数据库设计 精品
仓库
职工
零件号
名称
规格
单价
描述
项目号
预算
开工日期
零件 供应商号 姓名 地址 电话号码
项目 账号
供应商
2017年9月17日星期日 E-R图
13/23
例3
实体及其联系图
供应商
m
仓库
m
1
工作
n 1
职工
n
供应量
n
供应
p
库存
n
库存量
领导
项目
零件
2017年9月17日星期日
E-R图
10/23
例 3:某个工厂物资管理的概念模型
物资管理涉及的实体
仓库 零件 项目 职工
属性有:仓库号、面积、电话号码 属性有:零件号、名称、规格、单价、描述 属性有:项目号、预算、开工日期 属性有:职工号、姓名、年龄、职称
供应商 属性有:供应商号、姓名、地址、电话号码、账号
E-R图
医院病房管理
图书管理 工厂物资管理 教学管理 商业集团管理
2017年9月17日星期日
E-R图
1/23
例 1: 某医院病房计算机管理中需要如下信息:
科室 :科名、科地址、科电话、医生姓名 病房 :病房号、床位号、所属科室名 医生 :姓名、职称、所属科室名、年龄、工作证号 病人 :病历号、姓名、性别、诊断、主管医生、病房号
2017年9月17日星期日
E-R图
7/23
例2
E-R图
借书证号 姓名 单位
借书人
借书日期 还书日期
m 借阅 n 图书 n 出版 1 出版社
出版数量 出版社名 电报编号
书号
书名
数据库表设计—水电费缴费系统
数据库表设计—⽔电费缴费系统⽔电缴费管理系统数据表设计SQL建表脚本:1--建表2--管理⼈员表 admin3create table admin(4 admin_id varchar2(3) not null,5 admin_loginname varchar2(8) not null,6 admin_password varchar2(6) not null,7 admin_username varchar2(4) not null,8constraint pk_admin primary key(admin_id)9 );10 comment on column admin.admin_id is'管理员编号';11 comment on column admin.admin_loginname is'管理员登录⽤户名';12 comment on column admin.admin_password is'管理员登录密码';13 comment on column admin.admin_username is'管理员姓名';14--⽤户基本信息表 user15create table users(16user_id varchar2(10) not null,17 user_loginname varchar2(8) not null,18 user_password varchar2(6) not null,19 user_username varchar2(4) not null,20 user_address varchar2(20) not null,21 user_phone number(11) not null,22constraint pk_users primary key(user_id)23 );24 comment on column er_id is'⽤户编号';25 comment on column er_loginname is'⽤户登录名';26 comment on column er_password is'⽤户登录密码';27 comment on column er_username is'⽤户姓名';28 comment on column er_address is'⽤户地址';29 comment on column er_phone is'⽤户电话';30--⽔表 water31create table water(32 water_id varchar2(10) not null,33 userid varchar2(10) not null,34 water_count number(3,2) not null,35 water_time date not null,36 water_status number(1) not null,37 water_priceid varchar2(10) not null,38 water_beforecount number(3,2) not null,39constraint pk_water primary key(water_id)40 );41 comment on column water.water_id is'⽔表编号';42 comment on column erid is'⽤户编号';43 comment on column water.water_count is'⽔表跑数';44 comment on column water.water_time is'⽔表时间';45 comment on column water.water_status is'⽔费缴费状态';46 comment on column water.water_priceid is'⽔费价格编号';47 comment on column water.water_beforecount is'上⽉⽔表跑数'; 48--⽔表 power49create table power(50 power_id varchar2(10) not null,51 userid varchar2(10) not null,52 power_count number(3,2) not null,53 power_time date not null,54 power_status number(1) not null,55 power_priceid varchar2(10) not null,56 power_beforecount number(3,2) not null,57constraint pk_power primary key(power_id)58 );59 comment on column power.power_id is'电表编号';60 comment on column erid is'⽤户编号';61 comment on column power.power_count is'电表跑数';62 comment on column power.power_time is'电表时间';63 comment on column power.power_status is'电费缴费状态';64 comment on column power.power_priceid is'电费价格编号';65 comment on column power.power_beforecount is'上⽉电表跑数'; 66--价格表 money67create table price(68 price_id varchar2(10) not null,69 price_time date not null,70 isactive number(1) not null,71 waterprice number(2,2) not null,72 powerprice number(2,2) not null,73constraint pk_price primary key(price_id)74 );75 comment on column price.price_id is'价格编号';76 comment on column price.price_time is'价格⽇期';77 comment on column price.isactive is'价格状态';78 comment on column price.waterprice is'⽔费价格';79 comment on column price.powerprice is'电费价格';管理员表:⽤户表:⽔费表:电费表:价格表:。
学校水电交费系统E
学校水电交费系统E —R 图:1 NNN 1 N转化的关系模式如下:学生关系模式(智能卡号,姓名,学号,宿舍号) 教师关系模式(智能卡号,姓名,门牌号) 水关系模式(水单价,水类型) 电关系模式(电单价,电类型)水费关系模式(实用吨数,智能卡号,水单价,应交费用,上月水表数,本月水表数) 电费关系模式(实用电数,智能卡号,电单价,应交费用,上月电表数,本月电表数)建立水电缴费数据库SDJF数据库中新建6张表格(每个对象对应一张)学生 水费教师 电 电费 智能卡号姓名 门牌号实用吨数 本月水表读数 上月水表读数 上月电表数姓名 实用电数 本月电表数 智能卡号 宿舍号 学号 水类型 水单价 电单价 电类型 应交费用 应交费用水学生表student的结构列名描述数据类型允许空值说明card 智能卡号Char(12) No 主键S_name 姓名Char(8) yesS_no 学号Char(8) yesS_room 宿舍号Char(4)no教师表teacher的结构列名描述数据类型允许空值说明card 智能卡号Char(12)No 主键T_name 姓名Char(8)YesT_room 门牌号Char(4)no水表water的结构列名描述数据类型允许空值说明W_price 水单价Char(6)No 主键W_type 用水类型Char(4)yes电表electric的结构列名描述数据类型允许空值说明E_price 电单价Char(6)No 主键E_type 用电类型Char(4)yes水费表Watercost的结构列名描述数据类型允许空值说明Weight 实用吨数Char(10)No 主键Card 智能卡号Char(12)No 主键(同时是外键)W_price 水单价Char(6)No 主键(同时是外键)Cost 应缴费用CHAR(8) NoAmonth 上月水表数Char(7)NoPmonth 本月水表数Char(7) no水费表electriccost的结构列名描述数据类型允许空值说明degree 实用度数Char(10)No 主键Card 智能卡号Char(12)No 主键(同时是外键)E_price 电单价Char(6)No 主键(同时是外键)Cost 应缴费用CHAR(8) NoAmonth 上月电表数Char(7)NoPmonth 本月电表数Char(7) no。
基于UML的电能质量管理系统设计
基于UML的电能质量管理系统设计
电能质量是指电能对设备运行的影响程度,包括电压波动、频率偏差、谐波扰动、暂态电压和电流、电压暂降、电压暂增等,这些因素会对设备的正常运行和使用寿命产生不利影响。
电能质量管理系统成为了现代工业生产中必不可少的一部分。
本文设计的电能质量管理系统基于UML方法,通过建立系统的用例图、类图和活动图等,实现对电能质量的监测、分析和管理。
系统主要包括以下几个功能模块:
1. 用户管理模块:包括用户注册、登录、修改密码等功能。
用户可以通过注册账号登录系统,并可以根据权限的不同访问不同的功能模块。
2. 数据采集模块:通过传感器采集电能质量数据,包括电压、电流、频率等参数,并将数据存入数据库中。
该模块需要实时采集数据,并对数据进行预处理和异常处理。
3. 数据分析模块:根据采集到的数据进行分析,包括统计分析、频谱分析、波形分析等。
通过分析可以得出电能质量的评估结果,比如电能质量等级、谐波含量、电流不平衡度等。
4. 报警管理模块:当电能质量异常时,系统可以自动报警并发送通知给相关人员。
报警方式可以通过短信、邮件、微信等多种途径进行。
5. 历史数据查询模块:用户可以通过系统查询历史电能质量数据,包括实时数据和历史数据。
查询结果可以以图表形式展示,方便用户进行数据分析和比较。
6. 数据报表生成模块:系统可以根据用户需求生成电能质量的报表,包括日报、周报、月报等不同时间段的报表。
报表内容可以包括电能质量指标、异常情况、分析结论等。
数据库设计(一)E-R图
数据库设计(⼀)E-R图数据库设计定义: 指的是将应⽤中涉及的数据实体及这些数据实体之间的关系,进⾏规划和结构化的过程。
影响数据库系统效率的因素:数据库中创建的数据结构种类,以及在数据实体之间建⽴的关系好的设计:效率⾼,便于进⼀步扩展,使应⽤程序的开发变得容易糟糕的设计:效率低下,更新和检索数据时会出现许多问题。
⼀、设计的步骤:⼀般在项⽬开发需要经过:需求分析、概要设计、详细设计、代码编写、运⾏测试和部署上线这⼏个阶段,⽽数据设计在这⼏个阶段主要做的事,如下:(当然上线后有时也会出现改需求,动代码动数据库)//数据库设计时需要注意的需求分析阶段:分析客户业务和数据处理需求概要设计阶段:绘制数据库的E-R图,⽤于在项⽬团队内部、设计⼈员和客户之间的沟通,确认需求信息的正确性和完整性。
详细设计阶段:将E-R 图转换为多张表,进⾏逻辑设计,确认各表的主外键,并应⽤数据库设计的三⼤范式进⾏审核。
经项⽬开会讨论确定后,根据项⽬的技术实现、团队开发能⼒进⾏项⽬的成本预算,选择具体的数据库进⾏物理实现,之后就是开发应⽤程序注意:在需求分析阶段的重点是调查、收集并分析客户业务的数据需求、处理需求、安全性与完整性需求。
常⽤的需求调研⽅法:在客户的公司跟班实习、组织召开调查会、邀请专⼈介绍、设计调查表并请⽤户填写和查阅与业务相关的数据记录等。
常⽤的需求分析⽅法:调查客户的公司组织情况、各部门的业务需求情况、协助客户分析系统的各种业务需求和确定新系统的边界。
//在进⾏数据库系统分析时可参考的基本步骤1、收集信息:创建数据库之前,必须充分理解数据库需要完成的任务和功能,了解数据库需要存储哪些数据、实现哪些功能2、标识实体:收集信息后,标识数据库要管理的关键对象或实体。
(实体⼀般是名词,⼀个实体只描述⼀件事情,不能出现含义相同的实体,⽽且实体可以是有形的事物(如⼈或产品),也可以是⽆形的事物(如部门,时间))3、标识每个实体需要存储的详细信息:将数据库中的主要实体标⽰为表的候选实体以后,就要标识每个实体存储的详细信息,也称为该实体的属性,这些属性将组成表中列。
高校水电费管理系统-数据结构课程设计
⾼校⽔电费管理系统-数据结构课程设计计算机与软件⼯程学院课程设计说明书课程名称:数据结构与算法设计综合设计课程代码: 106086359题⽬: ⾼校⽔电费管理系统年级 / 专业: 2014/计算机科学与技术学⽣姓名:学号:开始时间:2016 年 11 ⽉ 29 ⽇完成时间:2017 年 11 ⽉ 3 ⽇设计成绩:指导教师(签名) 20 年⽉⽇西华⼤学计算机与软件⼯程学院课程设计说明书⽬录摘要1 前⾔ (1)1.1问题的提出 (1)1.2任务与分析 (1)1.3存储结构选⽤分析 (2)1.3.1 数据结构选⽤分析 (2)1.3.2 双链表结点前插操作 (3)1.3.3 数据库选⽤ (4)2.系统总体设计 (5)2.1开发⼯具 (5)2.2系统框图 (5)2.3模块功能 (6)2.3.1 选择⽂件 (6)2.3.2 添加记录 (6)2.3.3 删除记录 (6)2.3.4 修改记录 (7)2.3.5 查询记录 (7)2.3.6 统计信息 (7)3 交互界⾯设计 (8)3.1控件介绍 (8)3.2窗体 (8)3.3⽂本编辑框 (8)3.4下拉列表框 (9)3.5菜单栏 (9)3.6按钮 (9)I⾼校⽔电费管理系统4功能详细设计 (10)4.1双向链表 (10)4.1.1 双向链表插⼊结点 (10)4.1.2 双向链表删除 (10)4.2⼆叉查找树 (11)4.2.1⼆叉查找树的插⼊ (11)4.2.2⼆叉查找树的查找 (12)4.3学⽣/教师数据信息 (12)4.4学⽣/教师数据结点 (13)4.5⼆叉查找树结点 (14)4.6学⽣/教师信息的⽂本读取 (14) 4.7信息的添加 (15)4.8学⽣/教师信息的显⽰ (15) 4.9学⽣/教师信息的修改 (16) 4.10学⽣/教师信息的删除 (17) 4.11学⽣/教师信息的检索 (17) 4.12学⽣/教师信息的统计 (19) 4.13软件使⽤说明 (20)4.13.1 登录(扩展功能) (20) 4.13.2 选择⽂件 (20)4.13.3 添加记录 (21)4.13.4 删除记录 (21)4.13.5 修改记录 (22)4.13.6 查询记录 (22)4.13.7 统计信息 (23)4.13.8 ⼆叉查找树⽣成 (23)4.13.9 使⽤说明 (24)5 系统功能测试 (25)II西华⼤学计算机与软件⼯程学院课程设计说明书结论 (26)致谢 (27)参考⽂献 (28)III⾼校⽔电费管理系统IV摘要随着计算机的普及,计算机在各⽅⾯的应⽤都有着补课或缺的作⽤。
数据库设计 - C2 - E-R图和表.pptx
绘制E-R图 • E-R(Entity-Relationship)实体关系图
符合 含义 实体,一般是名词
属性,一般是名词
关系,一般是动词
概念模型 • 联系分为:一对一(1:1)、一对多(1:n)、多对 多(m:n)
【例1 】两个实体集之间的一对一的联系的绘制方法。 假设某学院有若干个系,每个系只有一个主任。则 主任和系之间是一对一的关系。 主任和系的属性分别如下: 主任——编号,姓名,年龄,学历; 系——系编号,系名 主任和系之间是一个管理关系
• 需求分析阶段:分析客户的业务和数据处理需求; • 概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完 整; • 详细设计阶段:将E-R图转换为多张表,进行逻辑设计,并应用数据 库设计的三大范式进行审核; • 代码编写阶段:选择具体数据库进行物理实现,并编写 代码实现前端应用; • 软件测试阶段:…… • 安装部署:……
BuyerID Country City
1 1 4 2 … 中国 中国 日本 美国 … 北京 北京 东京 纽约 …
• 第一范式的目标是确保每列的原子性
• 如果每列都是不可再分的最小数据单元(也称为最小的原 子单元),则满足第一范式(1NF)
第二范式 (2nd NF)
Orders
字 段 例 子 Orders 字 段 例 子 订单编号 001 订购日期 2000-2-3 Products 字 段 例 子
数据库系统分析的基本步骤-标识对象间关系2 • 标识对象之间的关系(Relationship)
• 跟贴和主贴有主从关系:我们需要在跟贴对象中表明 它是谁的跟贴; • 版块和用户有关系:从用户对象中可以根据版块对象 查出对应的版主用户的情况; • 主贴和版块有主从关系:需要表明发贴是属于哪个版 块的; • 跟贴和版块有主从关系:需要表明跟贴是属于哪个版 块的;
例子 E-R图及数据库设计 精品
2017年9月17日星期日
E-R图
7/23
例2
E-R图
借书证号 姓名 单位
借书人
借书日期 出版社
出版数量 出版社名 电报编号
书号
书名
数量
位置
出版日期
邮编
地址
电话
2017年9月17日星期日
E-R图
8/23
例2
转换得到的关系模式
借书人( 借书证号 , 姓名 , 单位 ) 图书( 书号 , 书名 , 数量 , 位置 ) 出版社( 出版社名 , 电报编号 , 电话 , 邮编 , 地址 ) 借阅( 借书证号,书号 , 借书日期 , 还书日期 )
入住(病房号 , 床位号 ,病历号 , 住院日期) 诊治(病历号 , 工作证号 , 诊治日期) 组成(病房号 , 床位号 , 科名) 从属(科名 , 工作证号)
2017年9月17日星期日
E-R图
5/23
例 2:一个图书管理数据库要求提供下述服务
可查询书库中现有图书的品种、数量和存放位置。所有
各类图书都由书号惟一标识
品,每种商品也可存放在多个商店销售,每个商店销售的 每一种商品用月销售量描述;商店与职工之间存在“聘用” 联系,每个商店有许多职工,每个职工只能在一个商店工 作,商店聘用职工有聘期和月薪
2017年9月17日星期日
E-R图
20/23
例5
解:
实体 :商店、商品、职工 联系 : 商店与商品间存在“销售”联系,m : n 商店与职工间存在“聘用”联系,1 : n 实体属性 : 商店 :商店号、商店名、地址 商品 :商品号、商品名、规格、单价 职工 :职工号、姓名、性别、业绩 联系属性 : 销售 :月销售量 聘用 :聘期、月薪
电费管理系统__课程设计报告
专业班级:计科10102班学号:************姓名:********指导教师: ********一课程设计的目的和意义《C++与面向对象程序设计》是计算机专业的一门专业基础课,主要内容是介绍C++语言中的数据类型,运算,语句结构及其程序设计的基本方法。
C++是当今最流行的高级程序设计语言之一,应用十分广泛。
它也是一门复杂的语言,与C语言兼容,既支持结构化的程序设计方法,也支持面向对象的程序设计方法。
《C++课程设计》是在学生学习完上述课程以后进行的设计性试验课程,面向对象的思想只有通过具体的程序才能真正掌握,故在我们学习完《C++与面向对象程序设计》课程后,开设C++课程设计实验课程。
目的是使学生能够更好地掌握C++课程设计语言,更深地理解面向对象程序设计的基本概念与方法,要求我们达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,提高动手编程解决实际问题的能力,并为后续专业课程的学习奠定程序设计基础。
通过做课程实验,我们应能加深对讲授内容的理解,积累经验,学会独立上机调试程序;并且逐步达到综合运用封装,继承和多态等C++难点知识,真正掌握C++语言的精华,从而熟练应用C++程序设计语言。
本次课程设计要求使用C++编译有关链表的程序。
完成我们所选的课题。
我们小组选的课题是电费管理系统。
我们通过链表完成对用户基本信息的一般性管理工作:用户及用户基本信息的增加、修改和删除和对用户用电情况与显示用户所缴电费情况的记录等功能。
在我的链表中是对用户的缴费情况记录的一个链表,要求将用户的基本信息、用电情况、所缴电费及电费余额以数据文件的形式存储,所有的用户基本情况均以文件操作的方式进行。
在查找时,以记录的“用户姓名”或“身份证”为关键字进行查找。
但由于我们知识的有限性,我们只能对信息进行简单的处理,希望我们能在以后的学习中进一步改善。
基于SQL Server数据库的智能电费管理系统设计
量分段定价,用电价格随用电量增加呈阶梯状逐级递增。
居民对于缴纳电费的方式也有了更多的需求,人们不再满足于到达指定地点缴纳电费,人们希望能用更智能、更透明的方式实现电费的缴纳。
1 需求分析智能电费管理系统主要包括两类用户:一类是城镇居民用电用户,另一类是负责管理区域用电的电网职员。
■1.1 用户对系统的要求(1)信息要求当用户的信息被系统录入之后,用户可以登录系统,查询账户信息,可以看到自己的信息,以及分管该用电区域业务员的信息。
如果用户信息有误或者信息有缺失,用户可以在系统中对相关信息进行修改。
(2)处理要求当需要交纳电费时,用户可以在系统中看到账户的余额和每月的用电量,可以在该系统上进行缴费,实现智能化的缴费。
如果账户余额不足,可以通过系统对账户进行充值。
(3)安全要求系统应对不同用户设置不同的权限,区分不同的用户,让每个用户只能看到自己的信息。
对于用户登录的口令要求一定的强度,避免出现弱口令。
同时在存储客户信息时采用密文存储而不能采用明文,防止用户的隐私遭到泄露。
系统应保持各种数据间相互联系的正确性以及相同的数据在不同记录中的一致性。
■1.2 业务人员对系统的要求(1)信息要求业务员可以查看自己所管理地区的用户信息,也可以及时查看未缴费用户的信息。
同时业务员可以观察到每月该地区的用电情况,以及用电的高峰和低谷时期,可以对用电情(3)安全要求系统应对不同的业务员建立不同的视图,该视图保存了该业务员管理的用户的信息,业务员只能查看管理的用户的信息,无权查看其它用户的信息。
业务员录入信息时应保持各种信息记录的完整性,信息记录内容不能为空。
数据库同时要对业务员的各种操作进行备份,当信息丢失时能够进行有效的信息恢复。
2 系统功能的设计和划分根据如上的需求分析,我们将本系统按照所完成的功能分成以下几部分:第一部分:用户管理部分。
第二部分:业务员管理部分■2.1 用户管理部分(1)处理用户登录;(2)处理用户忘记密码;(3)用户可以查询用电情况;(4)用户可以给账户充值;(5)用户可以缴纳电费;(6)用户可以查询缴费情况;(7)用户可以修改用户自己密码,手机号等信息。
超市管理系统(数据库设计、E-R图)
Not null
用户的登陆状态
表1.2 会员表
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
MemberID
int
4
P
Not null
会员编号
MemberName
Varchar
10
Not null
会员姓名
MemberNumber
Varchar
20
Not null
身份证号码
MemberCard
Varchar
10
Not null
计量单位
CategoryID
Int
20
F
Not null
类别编号
ProvideName
Varchar
20
Not null
供货商
other
Datetime
20
Not null
备注
表1.9商品类别表
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
CategoryID
Int
5
P
Not null
20
Not null
会员卡号
RegDate
Varchar
8
Not null
开卡日期
MemberGrade
Varchar
6
Not null
会员等级
TotalCost
Money
20
Not null
消费累积金额
MemberInteqral
Int
10
Not null
会员积分
MemberDiscount
学生宿舍电费管理信息系统设计
1、开发本系统的目标如下: 通过开发水电费信息管理系统,对学生宿舍的水电费收缴情况进行记录, 并通过校方在固定的时段内对学生宿舍的水电费进行划扣,同时更新水电费缴 纳信息数据库,并为学生提供一个方便、快捷、准确性高、可查询的客户端, 使之能登陆数据库查询其水电费缴纳情况。通过数据库的建立,改进传统的手 工操作为主的水电管理方式,以提高信息收集和反馈速度;并改进管理效率低, 质量差等缺点,适应网络发展需要,充分发挥校园网作用。 根据系统的目标,在充分的调查和小组讨论之后,确定系统在后期能达到 自主信息查询,统一时间缴费等特点的学生公寓管理信息系统。 1)用户端输入。学生或管理员通过唯一标识的 NETID 和自己设定的密码登 录系统。 2)网站权限。只有在教务系统拥有学籍信息的学生和相应管理人员才能登 录系统,其他人不能通过注册获取登录账号。 3)宿舍水电费信息:对于学生用户及个宿舍管理员,及时登录查询本寝室 或者本宿舍楼的每月水电费额度情况,如所在宿舍需交、欠交和之前已交的水 电费项目的单价、度数吨数、总额以及缴费截止日期,及时了解、核查信息。 4)自动计算能力:宿舍管理员通过各宿舍的水电费表的抄录,及时输入系 统各各宿舍用水吨数、用电度数以及相应单价后,系统将自动计算各宿舍需缴 付的水电费总额。 5)用户管理:对新生和毕业学生的信息需及时进行更新或删改操作。 7)公告和留言:系统公告栏将显示重要通知,如水电费单价更改以及缴费 截止日期等,而留言板则供同学对系统设计或水电费事项提出疑问或建议。 8)综合查询及统计分析:综合查询模块可以实现对全校各宿舍、区域水、 电费和寝室资料的查询(包括寝室成员信息),通过统计数据,用图形直观的显 示每一栋寝室在总的水、电费中所占的比例,便于后勤处领导对寝室管理。
图37所示是宿舍学生和宿舍管理员之间的缴费关系er图47关系er数据字典详细描述了数据流程图中的所有元素下面表格是数据字典部分管理员数据项表37用户数据项服务器cpupentiumii300或更高配置内存128m以上硬盘至少500m网络适配器10m或更快的网卡一个cdrom驱动器打印机一台ups选配客户机cpupentium200或更高配置内存64m以上硬盘至少100m网络适配器10m或更快的网卡一个cdrom驱动器网络适配器10m或更快的网卡打印机选配网络至少一台服务器至少一台工作站使用tcpip协议的局域网
数据库课程设计电力公司收费系统
数据库课程设计电力公司收费系统数据库课程设计题目某电力公司收费管理信息系统专业班级姓名学号完成日期 -12-18一、课程实验目的1.经过课程设计,使学生进一步巩固所学的知识,考查学生对数据库理论及知识的理解能力和综合运用能力;2.培养学生自主学习、独立思考的能力,学会查找资料并善于分析资料的能力;3.培养学生独立设计、独立调试程序的能力;4.培养学生初步的软件设计能力,形成良好的编程风格二、课程实验要求(28)某电力公司收费管理信息系统1.实现客户信息、用电类型(类别号、类别名、电价)及业务员管理;2.实现客户用电信息管理(客户号、月份、用电类别号、用电度数);3.实现客户费用管理(客户号、月份、费用、收费标志),收费标志的默认值为‘未收’;4.实现收费登记(客户、月份、应收费用、实收费用、业务员),并自动修改收费标志(用触发器实现);5.创立触发器,实现收费时自动更加应收费用和实收费用,计算本次结余,然后修改客户信息表中的结余金额;6.创立存储过程统计指定月份应收费用和实收费用;7.创立存储过程查询指定月份未交费的用户信息,以便崔费;8.创立规则使得月份符合格式“××××年××月”,并邦定到表中相应字段;9.建立表间关系。
三、课程设计要求1.在对数据库理论及知识理解的基础上;重点是针对具体的实际问题选择并设计合适的数据库表加以应用,并在此基础上完成相关的算法与程序;2.给出系统的概要设计、详细设计;3.完成数据流程图,E-R关系图,数据库表、程序流程图、功能模块图的设计、对功能编程加以实现;4.设计必要的视图、触发器、存储过程;5.使用相关的编程工具(C#.NET)和ORACLE编写代码实现设计的数据库系统;6.完成规范化的课程设计报告的编写;7.每个同学完成一个题目,题目由老师安排。
四、实验环境VS ,SQLsever五、课程设计过程1. 根据题目写出关系模型如下:①客户(客户号、客户名、地址、联系方式)②用电类型(类别号、编号、类别名、电价)③员工(员工号、姓名、性别、联系方式)④用电信息(客户号、月份、类别号、用电度数)⑤费用管理(客户号、月份、费用、收费标志)⑥收费登记(客户号、月份、应收费用、实收费用、员工号)⑦结余登记(客户号、月份、应收费用、实收费用、结余费用)2、根据关系模型绘制出E-R模型为:3、创立表1.客户表Create table 客户(客户号 char(5) PRIMARY KEY,客户名 char(4),地址 varchar(50),联系方式 char(10));插入数据:Insert into 客户 values('00001','张三','市南区','0000000'); Insert into 客户 values('00002','李四','黄岛区','0000002'); Insert into 客户 values('00003','王五','崂山区','0000003'); Insert into 客户 values('00004','赵兰','城阳区','0000004'); Insert into 客户 values('00005','李青','黄岛区','0000005'); Insert into 客户 values('00006','张倩','市南区','0000001');2.用电类型表Create table 用电类型(类别号 char(10) PRIMARY KEY,类别名 varchar(50),电价 money);插入数据:Insert into 用电类型 values('ABC','家庭','1.00');Insert into 用电类型 values('ABD','政府','2.00');Insert into 用电类型 values('ABE','工厂','1.50'); Insert into 用电类型 values('ABF','学校','2.50'); Insert into 用电类型 values('ABG','医院','0.50');3.员工表Create table 员工(员工号 char(5) PRIMARY KEY,姓名 char(20),性别 char(10),联系方式 char(20));插入数据:Insert into 员工 values('12345','李丽','女','1230000'); Insert into 员工 values('12346','王华','男','1230002'); Insert into 员工 values('12347','张悦','女','1230003');4.用电信息表Create table 用电信息(客户号 char(5) ,类别号 char(10) ,月份 date ,用电度数 char(8),primary key (客户号,类别号,月份),foreign key (客户号) references 客户(客户号),foreign key (类别号) references 用电类型(类别号));Insert into 用电信息 values('00001','ABC',' -12-01','100'); Insert into 用电信息 values('00001','ABE',' -12-01','220'); Insert into 用电信息 values('00002','ABC',' -12-01','110'); Insert into 用电信息 values('00003','ABE',' -11-01','125'); Insert into 用电信息 values('00003','ABE',' -12-01','105'); Insert into 用电信息 values('00004','ABC',' -12-01','200'); Insert into 用电信息 values('00005','ABC',' -12-01','102'); Insert into 用电信息 values('00006','ABC',' -12-01','100');5.费用管理Create table 费用管理(客户号 char(5) ,月份 date ,费用 money,收费标志 varchar(50),PRIMARY KEY (客户号,月份),foreign key (客户号) references 客户(客户号)6.收费登记Create table 收费登记(客户号 char(5),月份 date ,应收费用 money,实收费用 money,员工号 char(5),PRIMARY KEY (客户号,月份),foreign key (员工号) references 员工(员工号) );7.结余登记Create table 结余登记(客户号 char(5),月份 date ,应收费用 money,实收费用 money,结余费用 money,PRIMARY KEY (客户号,月份)4.创立触发器触发器1:计算费用create trigger change_trigger1on 用电信息for insertasinsertinto 费用管理 (客户号,月份,费用)SELECT inserted.客户号,inserted.月份,inserted.用电度数*(select 电价from 用电类型,inserted where 用电类型.类别号=inserted.类别号)FROM inserted;触发器2:未收标志create trigger change_trigger on 费用管理for insertasupdate 费用管理 set 收费标志='未收';触发器3:已收标志create trigger change_trigger3on 收费登记for updateasupdate 费用管理 set 收费标志='已收'from 费用管理,insertedwhere 费用管理.客户号=inserted.客户号and 费用管理.月份=inserted.月份;触发器4:结余登记create trigger change_trigger4on 收费登记for updateasinsert into 结余登记select inserted.客户号, inserted.月份,inserted.应收费用,inserted.实收费用,inserted.实收费用-inserted.应收费用from inserted;5.建立存储存储过程1:应收费用,实收费用create procedure ch_procedure01 @month dateasbeginselect 月份,应收费用,实收费用from 收费登记where 收费登记.月份=@month endgo存储过程2:未收费create procedure ch_procedure02 @month dateasbeginselect 客户号,月份,结余费用from 结余登记where 结余登记.月份=@month order by 结余费用endgo6.表间关系六、代码实现过程1.显示窗体内的内容及表的内容private void Form5_Load(object sender, EventArgs e){string consqlserver = "Data Source=GXW-PC;Initial Catalog=liqiuyue0;Integrated Security=True";//string consqlserver = "Data Source=CHEN-PC;Initial Catalog=rl;Integrated Security=True";//定义连接数据源string sql = "select * from 用电信息 ";SqlConnection sqlcon = new SqlConnection(consqlserver);sqlcon.Open();SqlDataAdapter da = new SqlDataAdapter(sql, sqlcon);DataSet ds = new DataSet();//shengmingtry{da.Fill(ds);if (ds.Tables[0].Rows.Count > 1) //判断是否有符合条件的数据记录{//将获得数据源赋予数据库控件dataGridView1.DataSource = ds.Tables[0];}}catch (Exception ex){throw new Exception(ex.ToString());}finally{sqlcon.Close();sqlcon.Dispose();da.Dispose();}}结果如图所示:2.插入一行信息的代码private void label3_Click(object sender, EventArgs e){}private void button1_Click(object sender, EventArgs e){string consqlserver = "Data Source=GXW-PC;Initial Catalog=liqiuyue0;Integrated Security=True";// string sql = "select * from 客户 ";SqlConnection sqlcon = new SqlConnection(consqlserver);sqlcon.Open();try{// 首先判断输入信息是否完全if (textBox1.Text == ""){MessageBox.Show("请输入完整的数据信息", "信息提示", System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Warning);}else{DataSet ds = new DataSet();// 在此判断保存重复记录问题string strSqls;strSqls = string.Format("SELECT * FROM 用电信息where 客户号='" + textBox1.Text.Trim() + "'and 类别号='" + textBox2.Text.Trim() + "'and 月份='" + textBox3.Text.Trim() + "';");//定义SQL Server连接对象SqlDataAdapter da = new SqlDataAdapter(strSqls, sqlcon);da.Fill(ds);if (ds.Tables[0].Rows.Count > 1){MessageBox.Show("已经存在", "信息提示", System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Error);}else{strSqls = "insert into 用电信息values ('" + textBox1.Text.Trim() + "','" + textBox2.Text.Trim() + "','" + textBox3.Text.Trim() + "','" + textBox4.Text.Trim() + "');";//定义SQL Server连接对象///////////////////SqlConnection sqlcon1 = new SqlConnection(consqlserver);SqlCommand cmd = new SqlCommand(strSqls, sqlcon1); try{sqlcon1.Open();cmd.ExecuteNonQuery();}catch { }finally{sqlcon1.Close();sqlcon1.Dispose();cmd.Dispose();}MessageBox.Show("保存成功", "信息提示", System.Windows.Forms.MessageBoxButtons.OK,rmation);//刷新数据string sqls = "select * from 用电信息 ";SqlDataAdapter da1 = new SqlDataAdapter(sqls, sqlcon); da1.Fill(ds);if (ds.Tables[0].Rows.Count > 1){dataGridView1.DataSource = ds.Tables[0];}}}catch { }}结果如图所示:3.修改一行信息的内容private void button2_Click(object sender, EventArgs e){string consqlserver = "Data Source=GXW-PC;Initial Catalog=liqiuyue0;Integrated Security=True";// string sql = "select * from 客户 ";SqlConnection sqlcon = new SqlConnection(consqlserver);sqlcon.Open();{if (textBox1.Text == ""){MessageBox.Show("请输入客户号,类别号,月份", "信息提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);}else{DataSet ds = new DataSet();string strSqls = string.Format("SELECT * FROM 用电信息where 客户号='" + textBox1.Text.Trim() + "'and 类别号='" + textBox2.Text.Trim() + "'and 月份='" + textBox3.Text.Trim() + "';");// string strSqls = string.Format("SELECT * FROM 客户where 客户号='" + textBox1.Text.Trim() + "'");// string strSqls = string.Format("update teacher set tname='" + textBox2.Text.Trim() + "'where tno='" + textBox1.Text.Trim() + "'");SqlConnection con = new SqlConnection(consqlserver);SqlDataAdapter da = new SqlDataAdapter(strSqls, con);//定义SQL Server连接对象da.Fill(ds);int tnum = dataGridView1.CurrentRow.Index;//先选中某一行string oldDate = dataGridView1.Rows[tnum].Cells["月份"].Value.ToString();string oldLeibie = dataGridView1.Rows[tnum].Cells["类别号"].Value.ToString();// strSqls = string.Format("update 客户set 客户名='" + textBox2.Text.Trim() + "'where 客户号='" + textBox1.Text.Trim() + "'update 客户 set 地址='" + textBox3.Text.Trim() + "'where 客户号='" + textBox1.Text.Trim() + "'update 客户set 联系方式='" + textBox4.Text.Trim() + "'where 客户号='" + textBox1.Text.Trim() + ""); strSqls = string.Format("update 用电信息 set 类别号='" + textBox2.Text.Trim() + "',月份='" + textBox3.Text.Trim() + "',用电度数='" + textBox4.Text.Trim() + "'where 客户号='" + textBox1.Text.Trim() + "'and 类别号='" + oldLeibie + "'and 月份='" + oldDate + "';");SqlConnection cons = new SqlConnection(consqlserver);SqlCommand cmd = new SqlCommand(strSqls, cons);try{cons.Open();cmd.ExecuteNonQuery();}catch { }finally{cons.Close();cons.Dispose();cmd.Dispose();}MessageBox.Show("修改成功", "信息提示", System.Windows.Forms.MessageBoxButtons.OK,rmation);//刷新数据string sqls = "select * from 用电信息";SqlDataAdapter da1 = new SqlDataAdapter(sqls, con);DataSet dss = new DataSet();da1.Fill(dss);if (dss.Tables[0].Rows.Count > 1){dataGridView1.DataSource = dss.Tables[0];}}catch { }}运行结果如图所示:(注应该先选中,在修改,目的改主码)5.删除一行信息的内容private void button3_Click(object sender, EventArgs e){string consqlserver = "Data Source=GXW-PC;Initial Catalog=liqiuyue0;Integrated Security=True";SqlConnection sqlcon = new SqlConnection(consqlserver);sqlcon.Open();tryif (textBox1.Text == ""){MessageBox.Show("请选择或输入要删除的信息", "信息提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);}else{DataSet ds = new DataSet();// 判断要删除的数据信息是否存在string strSqls;strSqls = string.Format("SELECT * FROM 用电信息where 客户号='" + textBox1.Text.Trim() + "'and 类别号='" + textBox2.Text.Trim() + "'and 月份='" + textBox3.Text.Trim() + "';");// strSqls = string.Format("SELECT * FROM 客户 where 客户号='" + textBox1.Text.Trim() + "'");//定义SQL Server连接对象SqlConnection con = new SqlConnection(consqlserver);SqlDataAdapter da = new SqlDataAdapter(strSqls, con);da.Fill(ds);if (ds.Tables[0].Rows.Count > 0){if (MessageBox.Show("确认要删除吗?", "信息提示", System.Windows.Forms.MessageBoxButtons.YesNo,System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes){//定义删除数据信息的SQL语句strSqls = string.Format("delete from 用电信息where 客户号='" + textBox1.Text.Trim() + "'and 类别号='" + textBox2.Text.Trim() + "'and 月份='" + textBox3.Text.Trim() + "';");//定义SQL Server连接对象SqlConnection cons = new SqlConnection(consqlserver);SqlCommand cmd = new SqlCommand(strSqls, cons); try{cons.Open();cmd.ExecuteNonQuery();}catch { }finally{cons.Close();cons.Dispose();cmd.Dispose();}MessageBox.Show("信息删除成功", "信息提示", System.Windows.Forms.MessageBoxButtons.OK,rmation);//刷新数据string sqls = "select * from 用电信息 ";SqlDataAdapter da1 = new SqlDataAdapter(sqls, con); DataSet dss = new DataSet();da1.Fill(dss);if (dss.Tables[0].Rows.Count > 0){dataGridView1.DataSource = dss.Tables[0];}}}}}catch { }}}}七、运行结果展示:触发器实现自动修改和计算:每当添加一个新值,收费标志自动改成未收存储过程的实现,实现存储指定日期的应收费用和实收费用八、总结与心得体会经过几月的课程设计,还是简单地完成了“某电力公司收费管理信息系统”题目的相关要求。
基于UML的电能质量管理系统设计
基于UML的电能质量管理系统设计随着电力设备的不断增加和电力负载的不断增加,电能质量问题日益突出。
为了解决这个问题,需要建立一个有效的电能质量管理系统。
本文基于UML设计一种电能质量管理系统。
该系统包含五个子系统:数据采集子系统、数据处理子系统、数据查询子系统、报警处理子系统和用户管理子系统。
数据采集子系统负责收集电能质量数据,包括电压、电流、功率因数等数据。
它由传感器、数据采集器和通信模块组成。
传感器负责采集电能质量数据,数据采集器负责将数据从传感器传输到数据处理子系统中,通信模块负责与其他子系统进行通信。
数据处理子系统主要负责对收集到的数据进行处理。
它包括数据存储模块、数据处理模块和报警模块。
数据存储模块负责将采集到的数据存储到数据库中,数据处理模块负责对数据进行处理和分析,以确定是否存在电能质量问题。
报警模块负责对存在问题的数据进行报警。
数据查询子系统负责从数据库中检索数据,以便用户查看数据。
它包括查询模块和呈现模块。
查询模块负责从数据库中获取数据,呈现模块负责将数据以可视化的方式呈现给用户。
报警处理子系统主要负责对存在问题的数据进行处理。
它由警报接收模块、警报处理模块和警报发布模块组成。
警报接收模块负责从数据处理子系统接收警报信息,警报处理模块负责对警报信息进行处理,警报发布模块负责向用户发布警报信息。
用户管理子系统负责管理系统用户。
它包括用户信息管理模块、用户权限管理模块和用户操作日志管理模块。
用户信息管理模块负责管理用户个人信息,用户权限管理模块负责管理用户对系统功能的访问权限,用户操作日志管理模块负责记录用户对系统的操作日志。
总结起来,该电能质量管理系统基于UML设计,包括数据采集子系统、数据处理子系统、数据查询子系统、报警处理子系统和用户管理子系统。
每个子系统都有多个功能模块,能够有效地收集、处理、查询和管理电能质量数据。
这个系统可以为电力设施管理者提供一种重要的工具来监测和管理电能质量问题。
基于E-R模型的配电网数据库管理系统优化设计
199当前配电网络中用户节点繁多,存在大量数据,相互间的关联错综复杂并且变换频繁,因而数据库设计是研究者科研的重要课题。
传统的设计方法分为两类,一类是在输电网络数据库中依据层级构造建模,搭建网状节点模型,但忽视了特殊配电网络构造,并存在后期维护工作繁琐的弊端;另一类则将线路转换为杆塔方式搭建,被设置变配和开闭装备,该方法操作简单,但数据库不易更新,灵活度不高。
1 配电网络的E-R模型搭建1.1 E-R模型下的配电网络建模(1)配电网络的实体。
E-R模型由实体,连接和属性构成。
实体作为数据目标,即应用过程中的客观事物,如配电网中的变压装置,输电线路等部分。
而相同类别的实体则构成实体类,如配电网络中的变压装置行程配电变压实体部分。
(2)配电网络的连接。
由于实体之间并不孤立并存在相互关联,而配电网络的连接代表了一个和多个实体间连接。
如配电变压装置和用电负荷间的电能供应关联。
(3)配电网络的属性。
配电网络的属性能够表述实体的特点,如配电变压装置的名字,编码,容量等相关属性数据[1]。
1.2 配电网络中的杆塔和开关在配电网络体系中,每条配电线路均包含多个杆塔和开关,并包含几十个到几百个分支线路,各部分线路采用配电变压装置的模式给使用者供电,信息量巨大,因而构建科学的信息模型对设计数据库有很大帮助。
1.3 变阻抗支路设计在整个配电网络中,线路间经过开关完成互联,而开关是物理存在的实体并不从属于相关线路。
在构建配电数据集合时,为获取线路间的关联,需串接变阻抗支路,完成上游电源部分和下游各节点间通讯。
2 E-R模型的配电网数据库设计2.1 E-R模型下配电网络数据库组成(1)线路数据库。
线路数据库基准数据组成包含信息标识,线路表述,衔接变电装置,电压层级部分。
(2)分线路数据库。
分线路数据库线路标定,线段标定,供电部分标定,并给出线路表述,线段种类,杆塔数目,阻抗和电压等级等部分。
(3)配电变压装置数据库。
配电变压装置数据集合包含名字,编码,种类,容量,供电线路标定,衔接杆编码等部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
校园电费管理系统
E-R 图
n
充值 n
充值
1
1 1 1
绑定
n
n
n
管理
1
1
结算
n IC 卡
用电 账户
操作员
转账 记录
用电 记录
记录 结算 记录
账户名账号
用电类型密码
电表号
绑定卡号
联系方式
卡号余额
所在区域
有效日期
状态持卡单位
/个人
金额时间
卡号
充值
充值人操作员
用电
账户IC卡
记录
时间
账号
用电金额
用电量
电价
抄表员
录入员
结算时间
转账卡号
转入卡号
操作员
转账金额
时间
转账人
结算金额
结算时间
结算人
签收人
用电 记录
转账 记录 结算 记录
数据库表设计
店,食堂窗口),教学科研(教学楼,实验室,图书馆),公共设施(体育场,路灯,广播),行政办公(办公楼,网络中心,就业中心)等
缴费类型:1自缴,2公缴。