数据库设计

一,概述
  驱动网站的数据库中,相对于对象-关系型、面向对象型数据库来说,关系数据库以其高可用性、高性能和易用性等优势而最为流行。对于大多数稍具规模的网站来说,数据库表是运作的生命中枢。用户帐户、新闻动态、内容、统计数据都保存到关系数据库管理系统(Relational Database Management System,RDBMS)。
  建立数据信息模型(Data Model,建模,运用一般业务知识的可视化图形设计来表现业务需求)可提供企业整体信息共享,以图形提供专业化业务规则与需求,作为技术人员与企业人员的桥梁,建立一致性,建立一种静态数据模型。
  最优秀的关系数据库的设计方法被称为IDEF1X(I cam DEFinition method 1 eXtended),它采用用实体关系图(Entity Relationship Diagram,ERD),建立实体-关系模型(ER模型)能预先精确定义数据需求,为维护与改动进行持续发展的有效规划。其中,IDEF1X建模语言获得广泛应用。
  高端数据建模工具的有 Sybase PowerDesigner/ERWin;高端UML工具加上恰如其分的数据库建模支持有:Rational Rose Enterprise;中低端的数据建模工具有MS Visio/Dezign/Case Studio等。
二,建模
  1,逻辑模型(Logical Model)一种结构性呈現且独立于DBMS的表示业务信息及业务行为规范的语言
  物理数据模型(Physical Data Model)依赖于DBMS并利用SQL下的DDL方法來设计与实施的描述数据结构,设计及实施的一种規格。
  2,实体(ENTITY):人,地点,物,事件以及任何包含业务活动数据的概念。每个实体由一组相似却有别(必須能单独标识)的实例(INSTANCES)组成。命名要有业务意义(用实体描述和业务例子有助理解业务意义)
  分为独立实体和非独立实体(依赖实体)
  3,属性(ATTRIBUTE):用來分辨或說明实体的性质与特征。一般采用描述和注释来定义属性,还可采用业务实例(可助于理解域,Domain,可以被看作是允许属性接受的一组抽象/有企业意义的值)
  分为键属性和非键属性
  候选键(Candidate Keys)任何一个属性或一组属性其可用來唯一认定实体中的每个实例)
  主键(主关键字,Primary Key,PK)所有候选键中被指定为最优先或最常用來唯一标识每个实例的某个属性或一组属性
  替代键(Alternate Key)除PK外的所有候选键,以(AKn)表示。假如換用键本身包含好几个属性,每个属性后面均需加(AKn)
  (Inversion Entries)利用其余属性來查找其所需的实体实例但其結果並不具唯一性,以 (IEn)表示。假如換用键本身包含好几个属性,每个属性后面均需加(IEn)
  4,关系:
  可通过三重判断来判断关系类型。
  1,一对多/多对多
  2,特定/非特定
  3,继承/非继承
  外键(FOREIGN KEY,FK)父实体的PK通过"关系"加入到子实体中作为PK。
  标识关系Identifying Relationship实体主键迁移給子实体作为部分主键(PK),子实体須由父实体决定,其存在亦需依附父实体。
  强制关系Non-Identifying Mandatory Relationship实体主键迁移給子实体作为非键属性(非PK),其表示不由父实体來决定。子实体为何子实体不須由父实体决定,但其存在仍需依附父实体 (mandatory)
  非标识关系Non-Identifying Non-Mandatory Relationship实体 PK 迁移到子实体当作非主键且与子实体为非标识行( Non-Identifying )实体与父实体间的标识为独立存在性,实体信息本身不需完全依賴父实体
  Many-to-Many Relationship一种不确定关系,主键並不迁移給它实体做为外來键,必須有两种动词(片语),两种关系:父对子/子对父关系

  5,模型读法:保证读模型给出有效的语句,把模型读回到业务,虽然不能精确地描述规则,却能给人初步直观的了解,是验证所获取的业务规则正确性的主要方法之一。
  使用正确的动词短语从父实体到子实体来读关系
  A PLANE-FLIGHT many PASSENGERs
  一个[飞机航班]<运输>多名[乘客]
  A CUSTOMER many MOVIE-RENTAL-RECORDs
  一个[用户]<通过>众多的[影碟租借记录]<进行租借>
  A PERSON many HOBBYs.
  一个[人]<也许有>许多[嗜好]
  也可以从子实体读起,用”被动动词”短语表达
  A MOVIE-RENTAL-AGREEMENT a CUSTOMER.
  一个[影碟租借记录]记载了<被>一个用户<租借影碟>的情况
  A HOBBY a PERSON.
  一个[嗜好]可能<被>一个[人]<拥有>。
  多对多的关系比较难读。
  A PERSON one or more ADDRESS-USAGEs.
  An ADDRESS one or more ADDRESS-USAGEs.
  有人采用比较易读的模糊读法:
  An ADDRESS one or more PERSONs
  A PERSON one or more ADDRESSs



参考资料:
利用ERD规范化生成数据库表结构
http://yixiao.sunm.net/Article/dispArticle.Asp?ID=75
用实体关系图进行数据库建模
http://www.sawin.com.cn/doc/SD/Database/ermodel.htm
数据库设计方法、规范与技巧
http://www.newtraining.net/html/subpage/article_disp.asp?id=123
数据库设计中的敏捷方法
http://www.accfans.net/showart.asp?art_id=176&cat_id=8


数据建模工具与BPM日趋融合
http://www.umlchina.com/News/Content/38.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值