您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 数据建模和数据库设计概述
数据建模和数据库设计概述讲师:林强目标•描述系统开发步骤.•列出并定义数据关系的基本类型.•定义关系型数据库和它的组件.•认识实体关系图(E-R图)•将一个E-R图转换成关系型数据库设计.概述•认真考虑数据库中的各个组件.•完成系统开发周期.•设计数据库.•利用良好的数据设计满足管理数据的需求.系统开发周期•数据库开发–使一个自顶向下的系统化方法.–将商业信息转换成一个可操作的数据库.–由五步组成.•一旦设计完成,通过执行SQL命令构建你的数据库.系统开发的步骤StrategyandAnalysisDesignBuildandDocumentTransitionProduction数据库设计•将一个模型转换成可使用的软件.•为你的设计合并规则,判别等.•下面是数据库设计的一些关键因素:–性能–与应用集成–和其他系统的集成–文档和交互性–可伸缩性–避免重蹈覆辙数据模型Modelofsysteminclient'smindEntitymodelofclient'smodelTablemodelofentitymodelTablesondiskServer实体关系模型的优点•在头脑中将概念联系起来•可有效的收集并记录一个组织的信息需求•提供了一个易于理解的系统映射图•易于开发和优化•明确定义信息需求的范围•SeparatetheinformationrequiredbyabusinessfromtheactivitiesperformedbythebusinessE-R模型概念•实体(Entity)–现实世界中我们感兴趣的和可区分的客观事物–例如:customers,salesrepresentatives,orders•属性(Attribute)–对一个实体的描述–例如:name,phone,identificationnumber•联系(Relationship)–实体间的关系–例如:ordersanditems,customersandsalesrepresentatives实体关系模型基于商业规范或描述生成一个实体关系图.•场景–“...分配一个或多哥客户给一个销售代表...–“...一些销售代表还没有被分配给客户...CUSTOMER#*id*nameophoneEMPLOYEE#*id*lastnameofirstnameassignedtothesalesreptoCUSTOMER#*id*nameophoneEMPLOYEE#*id*lastnameofirstnameassignedtothesalesrepto实体关系模型规范实体SoftboxSingular,uniquenameUppercaseSynonyminparentheses属性SingularnameLowercaseMandatorymarkedwith*Optionalmarkedwitho唯一标识符(UID)Primarymarkedwith#Secondarymarkedwith(#)实体关系:例子•句法–Each资源实体{可能|一定}与目标实体有关系{一个且只有一个|一个或多个}.•举例–每个ORDER能且只能对应一个CUSTOMER.–每个CUSTOMER可以是一个或多个ORDER的客户.ORDER#*id*dateorderedodateshippedCUSTOMER#*id*nameophonefortheclientforDegree-OneormoreOptionality-MaybeMandatory-MustbeDegree-Oneandonlyone递归关系•如果一个实体和它自身建立一种联系那么我们称为递归关系.•利用一个‘猪耳朵’标记表示一个关系EMPLOYEE#*id*lastnameofirstname(#)*useridostartdatemanagedbythemanagerof关系类型•一对一(One-to-one)–A的一个值最多和B的一个值有关.–很少.–举例:丈夫和妻子.•多对一(Many-to-one)–A的一个值可与B的多个值有关,但B的一个值最多和A的一个值有关.–相当普遍.–举例:乘客和飞机.•多对多(Many-to-many)–A和B的一个值都和对方的多个值有关.–利用交叉实体解决.–举例:雇员和技能.实体关系模型子集ITEM#*idopriceoquantityORDER#*id*dateorderedodateshippedinmadeupofEMPLOYEE#*id*lastnameofirstnametakenbythesalesrepforUIDbar-relationshipispartoftheentity抯uniqueidentifier.规则第一范式第二范式第三范式描述所有属性都必须是单值的所有属性都必须依赖于它的实体的UID.非UID的属性列彼此都应是独立的.规范化优点•最小化数据冗余•减少完整性问题•确认丢失的实体,联系和表完整性约束•确保数据一致性•应由数据库服务器和应用软件执行•对应于键–主键,唯一键,外键类型实体参考列用户定义的描述主键必须是非空的且值是唯一的。外键值必须与主键值匹配或为空值.列中的值必须与所定义的数据类型匹配.值必须与商业原则匹配.定义一个主键•一个主键(PK)值要求唯一且非空.•每行值由一列或多列唯一的标识(组合主键)决定.•一个候选键也可成为一个主键.ORD_IDITEM_IDPRODUCT_IDPRICEQUANTITYQUANTITY_SHIPPED100110111355005001002100133804004001007410108250250101130421161515复合主键S_ITEMTable定义一个外键•一个外键(FK)在一张表中是一列或多列的组合,它将参照同一张表中或其他表中的一个主键(PK)或唯一键(UK)的值.•外键(FK)是基于数据值的且是纯逻辑的.•外键值必须和相关的列值或空值相匹配.•如果一个外键是一个主键的一部分那么它不能为NULL.定义一个外键:举例DEPT_ID列是S_EMP的一个外键,它参考S_DEPT表里的ID列的值而存在.IDLAST_NAMEFIRST_NAME...DEPT_ID...1VelasquezCarmen502NgaoLaDoris413NagayamaMidori314Quick-To-SeeMark105RopeburnAudry50IDNAMEREGION_ID10Finance131Sales141Operations150Administration1PrimaryKeyForeignKeyS_EMPTableS_DEPTTablePrimaryKey数据库设计•表名和列名应分别映射实体和属性.•建立你自己的命名规范.•其他需求–设计索引–建立视图定义–规划物理存储空间–优化完整性规则ColumnnameKeytypeNulls/UniqueFKtableFKcolumnDatatypeMaxlengthIDPKNN,UNUM7NameNNCHAR25PhoneCHAR20Sales_rep_idFKS_EMPIDNUM7数据库设计步骤利用实体关系图的组件生成一张表的实例图.S_CUSTOMERTable1243步骤1:将实体映射成表•生成一张表的实例图.–表名–列名–键类型–空值和唯一性参照–外键信息–列数据类型和最大长度–数据实例•在图的上部记录表名.步骤2:将属性映射成列•在实体关系模型中将每个实体的属性映射成表中的列名.•记录强制列并用NN标记.•添加数据到每列中.•不要将SQL的保留字作为列名.步骤3:将唯一标识符映射成外键•将唯一标识符映射成主键(FK).•标记非空和唯一键.•候选唯一标识符也应标记上非空和唯一键,但是只能选择一个作为主键.•通过一个关系为每个唯一标识符添加一个外键.–定义主键、外键约束类型.–定义非空和唯一性参考.–增加数据.步骤4:将关系映射成外键•对于多对一的联系–在一边定位主键,在其它多表的多边定位外键–用FK标记外键.•对于强制性关系,确保标记为非空(NN).步骤4:将关系匹配为外键•对于一对一的联系用U标记–若关系对双方都是可选的,那么可将FK放任何一方的表中.–若关系是强制的,那么可将FK放在强制的一端.•对于强制关系,确保用NN标记.小结•遵循系统开发周期.•构建你的实体关系模型.–实体,属性,关系,和UID•利用实例图设计数据库.–将每个组件映射到图表中.
本文标题:数据建模和数据库设计概述
链接地址:https://www.777doc.com/doc-3355265 .html