Carnegie大学SSD7考试案例:银行与账户实体关系详解
需积分: 9 151 浏览量
更新于2024-09-13
收藏 33KB DOCX 举报
在卡耐基大学的SSD7 exam2中,考察的是关系数据库管理系统中的实体关系模型(ER Model)设计与理解,以及基本的数据完整性假设。该题目涉及到一个银行系统的概念设计,主要关注以下几个关键概念:
1. 实体 (Entities):
- Bank: 银行,属性包括BankName(银行名称)、BankID(银行标识符,主键)、BankAddress(银行地址)。每个银行可能有多个分支。
- Branch: 分支,包含BranchName(分支名称)、BranchID(分支标识符,主键)、BankID(关联到Bank的外键)和BranchAddress(分支地址)。每个银行可以有多个分支,且分支属于特定银行。
- Customer: 客户,属性有CustomerID(客户标识符,主键)、CustomerFname和CustomerLname(客户名)、Phone和Number(联系方式)、CustomerAddress(客户地址)。一个客户可以在多个分支下开设账户。
- Account: 账户,由AccountNumber(账户号码,主键)、CustomerID(关联到Customer的外键)和Balance(账户余额)组成。每个账户只能属于一个分支。
- Transaction: 交易,具有TransactionNumber(交易号,主键)、AccountNumber(关联到Account的外键)和DateTime(交易时间)。账户可以进行多个交易。
2. 关系:
- has<Bank,Branch>: 银行与分支之间存在一对多(1:N)的关系,分支可以属于多个银行,而银行可以没有分支或有多个分支。
- has<Customer,Account>: 客户与账户之间也是一对多关系,一个客户可以有多个账户,账户归属一个客户。
- belong<Account,Branch>: 账户与分支之间是多对一(N:1)关系,每个账户只属于一个分支,但一个分支可以有多个账户。
- operate<Transaction,Account>: 交易与账户之间的关系是多对一(N:1),每个账户可以有多笔交易,但每笔交易只与一个账户相关。
3. 假设:
- 新建银行可能没有分支或者有多个分支,表明分支的创建不是强制的,但账户和客户必须关联到某个分支。
- 每个账户必须且仅属于一个分支,体现了数据的实体完整性约束。
- 客户可以有一个或多个账户,且这些账户可以在不同分支下,反映了客户的账户分布情况。
- 交易与账户的关系强调了每个账户的操作历史记录。
4. 外键和引用完整性:
- Part表的主键是PartID和SupplierID,通过这两个字段与PartName和SupplierName建立联系,同时保证每个PartID和SupplierID组合的唯一性。
- PartID和SupplierID分别与自身的表有部分依赖关系,表示PartName和SupplierName可以独立查询,而PartID和SupplierID则需要结合查询。
这个题目涵盖了ER模型的基本要素,包括实体、属性、键、关系及完整性约束,以及如何用它们来描述银行系统中的实体间交互。理解并能够设计这样的数据库结构对于理解数据库设计原则和SQL查询优化至关重要。在实际操作中,还需要考虑性能、安全性和扩展性等因素。
2011-12-08 上传
2022-09-24 上传
141 浏览量
2015-06-12 上传
2022-09-19 上传
2022-09-22 上传
2010-12-19 上传
2010-04-29 上传
qq_23245333
- 粉丝: 0
- 资源: 1
最新资源
- 远程过程调用协议规范 RFC1050
- 7天搞定C#.pdf
- 电信基础知识和智能网原理
- 关于马尔可夫随机场的一篇较好的综述
- 三层架构 数据访问层
- TDMSExcelAddin.pdf
- Asterisk,电话未来之路CHN2
- Google搜索引擎排名因素打分详解 排名 seo排名
- FME2008中文教程
- Using OpenGL in Visual C++
- MySQL_Optimize_CU_bj.pdf
- 谭浩强 C程序设计(第二版)
- oracle 1000问
- Struts初级入门
- The Object-Oriented Thought Process (3rd Edition)
- A Semantic Web Primer 2nd Edition