- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
架构师培训讲义5-数据库结构设计解析
第五章详细设计阶段的数据库结构设计详细设计阶段包括:数据库设计、模块设计和界面设计。下面我们探讨一下数据库设计的有关问题。第一节关系数据库的结构设计一、面向过程的设计与实体关系图关系数据库的单元是表,在面向过程的设计中,建立一个关系数据库的第一步,需要仔细考虑实体-关系图(ERD),给每个实体建立一张表,每张表的数据域要与已经定义的实体相一致。然后,可以为每个表建立一个主键,如果没有合适的字段作为主键,可以自己创造一个,主键的数据必须是唯一的。1)实体实体指的是某些事物,企业需要存储有关这些事物的数据。实体实例表达的是实体的具体值。2)属性实体的描述特形称为属性,某些属性可以逻辑上被组合,称为组合属性,它在不同的数据建模语言中也被称作串联属性、合成属性或者数据结构。3)域于是属性的一个参数,定义了这个属性所能定义的合法值。事实上这个值和使用的数据库特点有关。4)标识符然后考虑实体之间的关系,关系基数符号如下:以此可以建立表与表之间的关系:实体之间的关系有三种,最简单的而且最有代表性的例子也就是学生、老师、锁柜和书的关系。也就是一对一(1:1)或一对多(1:N)或多对多(N:N)关系。比如:Student和Locker之间可以是一个一对一关系,因为每个学生都有一个相应的锁柜,而每个锁柜只给一个学生使用。Student和Book之间可以有一个一对多关系,因为每个学生可以有多本书,但每本书只归一个学生所有。Student和Teacher之间有一个多对多关系,每个学生可以有多个教师授课,而每个教师又可以为多个学生讲课。注意,一个实体可以参与多个关系,而每个关系可以有不同的对应关系。这里还有一个问题,就是多对多关系需要增加一个关联实体,比如如下的多对多关系:我们会发现,学生某门课的成绩应该放在什么地方呢?尽管模型中表达了学生选修了某门课程,但没有放置这门课程成绩的地方,所以需要增加一个关联实体。这样,我们就可以得到设计关系数据库的一般步骤:1,为每个实体类型建立一张表。2,为每张表选择一个主键(如果需要,可以定义一个)。3,增加外部码以建立一对多关系。4,建立几个新表来表示多对多关系。5,定义参照完整性约束。6,评价模式质量,并进行必要的改进。7,为每个字段选择适当的数据类型和取值范围。二、执行参照完整性建立关系主要需要建立主键和外键的关系,执行参照完整性表达了外键和主键间一致的状态。执行参照完整性表达的是:一个一致的关系数据库状态,每个外键的值必须有一个主键值与之对应。规则:1,当建立一个包含外键的记录的时候,应确保主表中相应的主键值要存在。2,当删除一条记录的时候,要确保所有相应外键的记录也被删除。3,当更改一个主键值的时候,要确保所有相应表外键值也跟随改变。三、评价模式质量一个高质量的数据模型应该具备以下特点,1,表中每行数据及主键是唯一的。2,冗余数据较少。3,容易实现将来数据模型的改变不过,提高数据库设计质量的方法有很多,但量化方法又很少,很大程度上依赖于设计师的经验和判断,下面提供几个注意点。1,行和关键字的唯一性主键是能够唯一定义一行数据的一列或者多列,主键中的列值不能为null,主键为数据库引擎提供了获取使据库表中某个特定行的方法,主键还用于保证引用的完整性。如果多个用户同时插入数据,则必须保证不会出现重复的主键。由于主键是必须存在的,而主键是不可重复的,显然表中的每一行也都是唯一的,这就是所有关系数据库模型都有一个基本要求,那就是主键和表中的行是唯一的。但我们应该如何来选择主键呢?智能键、常规建和代理键智能键是一种基于商业数据表示的键,例如SKU(Stock Keeping Unit 常用保存单元)就是智能键的例子。它定义一个10个字符的字段(Char(10)),它的可能分配如下,前4个字符为供应商代号,随后3个字符保存产品类型代号,最后3个字符保存一个序列号。常规键由现有商业数据中一个或多个列组成,比如社会保险号。尽管智能键和常规键不尽相同,但他们都是用商业相关数据组成,下面统一成为智能键。代理键是由系统生成的,与商业数据无关,比如自动增值列(Identity),GUID(globally unique identifier 全局唯一代码,16字符),这是通过取值算法得到的键值,后面将称之为GUID键。下面的例子包含三张表(作者Author,书籍Book,而AuthorBook是一张多对多的连接表,因为一个书籍可能由多个作者完成)。注意,在代理键完成的时候,需要多增加一个列值,这是因为代理键是系统自动生成,用户不可见的。数据大小使用智能键或代理键数据的大小是不一样的,因此一定要计算键的使用引起数据量的变化,显然,基于int的自动增加列数据量最小,但也要注意,int的最大值是有限的,而且不便于移动数据,这些都是考虑的因
您可能关注的文档
- 构建和谐企业申报材料解析.doc
- 板钢筋计算公式图解解析.ppt
- 构建筑消防员第4套练习题解析.doc
- 构建客户忠诚度的六大途径-彭龙解析.doc
- 构建域模式的网络环境解析.ppt
- 极射赤平投影之二解析.ppt
- 构造全等三角形(常见辅助线法)解析.ppt
- 构成物质的基本微粒解析.ppt
- 构音障碍的康复解析.ppt
- 构造认知实习解析.doc
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)