标题:[求助]一个关于数据库设计的初级问题!!
只看楼主
knlight
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-4-11
 问题点数:0 回复次数:14 
[求助]一个关于数据库设计的初级问题!!

题目:

以活期储蓄管理系统为例来说明在企业管理器中进行数据库设计。
 7.1 活期储蓄管理系统需求
 7.2 概念模型设计
 7.3 关系模型设计
 7.4 约束关系
 7.5 关系结构描述
 7.6 在企业管理器中定义
 在活期储蓄管理过程中,“储户”通过“存取款”与“储蓄所”发生业务联系。
(1)储户是指在某个储蓄所开户的人。该储蓄所称为储户的开户行。
(2)一个储蓄所可以有多个储户,每个储户有唯一的帐号。
(3)每个储户可以在多个允许发生业务的储蓄所进行存取款。
(4)每个储户按信誉分为“一般”和“良好”两种(分别用0和1表示)。信誉“一般”的储户不允许透支。信誉“良好”的储户可以透支,但不能超过5万元。
(5)储户按状态分为:“正常”和“挂失”两种(分别用0、1表示)。状态为“正常”的储户允许存取款,状态为“挂失”的储户不允许存取款。
(6)储户的信息有:帐号,姓名,密码,电话,地址,信誉,存款额,开户行编号,开户日期,状态等。
(7)储蓄所的信息有:编号、名称、电话、地址、负责人。
(8)储户进行存取款时应该提供帐号、存取标志(1表示存款,0表示取款),存取金额,存取日期等信息,储蓄所首先要对储户的身份进行验证,对合法的储户再根据“信誉”判断是否可以发生此次业务。若发生业务则记录相应信息,修改储户的存款额。

 此系统涉及“储户” 与“储蓄所”两个实体集,两个实体集间通过“存取款”发生多对多的联系。

 根据概念模型,关系模型中包括3个关系,实体集“储户” 与“储蓄所”分别形成关系,实体的键就是关系的键,联系“存取款”形成一个关系,主键应该包括两个实体的键,考虑到允许同一储户在同一储蓄所多次存取款,应该包括存取日期。
 考虑到储户的信息项较多,而且有一部分信息(如:帐号,姓名,电话,地址,开户行等)相对固定,其余信息(如:储户的密码,信誉,状态,存款额等)经常变化。因此,可以将实体储户的信息分割为储户基本信息和储户动态信息两个关系。这样更利于数据的存储和维护,还可以提高数据的安全性。
 转换后的关系模型为:
储户基本信息(帐号,名称,电话,地址,开户行,开户日期)
储户动态信息(帐号,密码,信誉,存款额,状态)
储蓄所(编号,名称,电话,地址)
存取款(帐号,储蓄所编号,存取标志,存取金额,存取日期)

 实体完整性:“储户”的主键“帐号”不能为空,“储蓄所”的主键“编号”不能为空,“存取款”的主键“帐号”,“储蓄所编号”,“存取日期”不能为空。
 参照完整性:参照关系“存取款”的属性“帐号”和“储蓄所编号”分别是被参照关系“储户”和“储蓄所”的外键。因此,参照关系“存取款”的属性“帐号”的值必须是被参照关系“储户”中某一元组的“帐号”的值。参照关系“存取款”的属性“储蓄所编号”的值必须是被参照关系“储蓄所”中某一元组的“编号”的值。
关系“储户”的属性“开户行”,是关系“储蓄所”的外键,其取值必须是“储蓄所”的“编号”的值。
 用户定义的完整性:
对信誉为“一般”的储户取款时,只有当:
“储户.存款额”-“存取款.金额”>=0时才可以发生取款业务;
对信誉为“良好”的储户取款时,只有当:
“储户.存款额”-“存取款.金额”>=-50000时可以发生取款业务




现在我表什么都弄好了,但是关于最后用户定义完整性的那块不会弄.现在最大的问题是,如何确定信誉是0还是1?同样的问题就是如何确定存款与否的0和1?怎么返回过去后便能实现存取的分别??

搜索更多相关主题的帖子: 数据库设计 企业管理 储户 储蓄所 
2006-04-11 21:56
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
得分:0 
嗯。。。

这个是你自己设计的还是别人设计的,抑或是书上写的?

2006-04-11 22:44
knlight
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-4-11
得分:0 

是我们的作业....老师布置的....

2006-04-11 22:53
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
得分:0 
我个人理解

信誉是由银行自己定义的,属于独立的字段,既然是作业,你愿意0就0,愿意1就1

存取记号应该是连接到用户终端,直接通过用户终端的操作,将反馈结果写入数据库。

存取款表在刚建立的时候是空的,无所谓存取记号是0还是1

2006-04-11 23:05
knlight
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-4-11
得分:0 

能加我QQ不??我直接和你说!242888906!

2006-04-11 23:08
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
得分:0 
还是贴在这里吧

我QQ差不多3年没用过了,现在电脑里装的那个版本貌似已经无法登录。。。

2006-04-11 23:13
knlight
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-4-11
得分:0 
汗...那MSN用不???
我想说的是,上面题目的条件是老师规定的!
现在我有个表,里面有用户的信誉和存款额,
我现在就是要规定当信誉为0是,存款额>=0,信誉为1是,存款额>=-50000,怎么弄??
2006-04-11 23:17
knlight
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-4-11
得分:0 

有点不对,是“储户.存款额”-“存取款.金额”>=0,另一个一样

2006-04-11 23:21
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
得分:0 

带判断条件的制约没用过。。。不知道有没有

你可以写个Trigger,当该表有更改的时候对预计存款余额判断,不满足条件Rollback Transaction也可以解决


2006-04-11 23:29
knlight
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-4-11
得分:0 
Rollback Transaction是什么?还有,TRIGGER怎么判断呀??
2006-04-11 23:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-56885-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.122716 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved