Carnegie大学SSD7考试案例:银行与账户实体关系详解

需积分: 9 1 下载量 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查询优化至关重要。在实际操作中,还需要考虑性能、安全性和扩展性等因素。