软件工程 习题三 课后作业

3.银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人姓名,住址,身份证,存款类型,存款日期,到期日期,利率及密码等信息,并打印出存单给储户。如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款是未留密码,则系统计算利息并印出利息清单给储户。

用数据流图描绘本系统的功能,并用实体-联系图描绘系统的数据对象。


ER图:


### 设计银行计算机储蓄系统的实体关图 为了满足银行业务的需求并绘制出符合第范式的 ER 图,以下是详细的分析和设计方案: #### 实体及其属性定义 1. **客户(Customer)** - 客户编号(CustomerID)[^1] - 姓名(Name) - 身份证号(IDNumber) - 地址(Address) - 手机号码(PhoneNumber) 2. **账户(Account)** - 账户编号(AccountID) - 客户编号(CustomerID) - 密码(PasswordHashed) - 创建日期(CreationDate) - 当前余额(Balance) 3. **交易记录(TransactionRecord)** - 记录编号(TransactionID) - 账户编号(AccountID) - 交易时间(TransactionTime) - 类型(Type:存款/取款/转账) - 金额(Amount) - 备注(Remarks) 4. **利率设置(InterestRateSetting)** - 利率编号(RateID) - 生效日期(EffectiveDate) - 年化利率(AnnualRate) #### 关描述 - **客户与账户**:一位客户可以拥有多个账户,而一个账户只属于一个客户。这是多对一的关。 - **账户与交易记录**:一个账户可以有多个交易记录,而一条交易记录仅对应一个账户。这也是多对一的关。 - **利率设置与账户**:不同的账户可能适用相同的利率设置,因此这是一个一对多的关。 #### 绘制 ER 图的原则 在绘制 ER 图时需注意以下几点: - 使用矩形表示实体,椭圆表示属性,菱形表示关。 - 明确标注主键和外键。 - 遵循分层设计原则,确保父图与子图之间的数据平衡[^2]。 - 不引入冗余的数据流不必要的复杂性。 #### 示例代码:T-SQL 表创建脚本 以下是基于上述 ER 图的 T-SQL 表创建示例: ```sql CREATE TABLE Customer ( CustomerID INT PRIMARY KEY IDENTITY, Name NVARCHAR(50) NOT NULL, IDNumber CHAR(18) UNIQUE NOT NULL, Address NVARCHAR(100), PhoneNumber VARCHAR(15) ); CREATE TABLE Account ( AccountID INT PRIMARY KEY IDENTITY, CustomerID INT FOREIGN KEY REFERENCES Customer(CustomerID), PasswordHashed VARBINARY(MAX) NOT NULL, CreationDate DATE DEFAULT GETDATE(), Balance DECIMAL(18, 2) CHECK (Balance >= 0) ); CREATE TABLE TransactionRecord ( TransactionID INT PRIMARY KEY IDENTITY, AccountID INT FOREIGN KEY REFERENCES Account(AccountID), TransactionTime DATETIME DEFAULT GETDATE(), Type NVARCHAR(10) CHECK (Type IN ('Deposit', 'Withdrawal', 'Transfer')), Amount DECIMAL(18, 2) CHECK (Amount > 0), Remarks NVARCHAR(200) ); CREATE TABLE InterestRateSetting ( RateID INT PRIMARY KEY IDENTITY, EffectiveDate DATE NOT NULL, AnnualRate DECIMAL(5, 2) CHECK (AnnualRate >= 0) ); ``` #### 数据操作说明 通过事务处理、视图以及存储过程来实现具体的业务逻辑,例如存款、取款和转账等功能。这些功能可以通过编写相应的 SQL 存储过程完成。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值