您的位置:首页 > 数据库

【个人重构】数据库设计(2)

2015-12-10 19:18 169 查看
上接博客【VB.NET】数据库设计(1)

1.2概念设计:

通过数据抽象,设计系统概念模型,一般为E-R模型;

特点:

能真实、充分地反映现实世界

易于理解

易于更改

易于向关系、网状、层次等各种数据模型转换

四类方法:

自顶向下,自底向上,逐步扩展,混合策略:

E-R图:

任务:

将各局部应用涉及的数据分别从数据字典中抽取出来

参照数据流图,标定各局部应用中的实体、实体的属性、标识实体的码

确定实体之间的联系及其类型(1:1,1:n,m:n)

两条准则:

属性不能再具有需要描述的性质.即属性必须是不可分的数据项,不能再由另一些属性组成

属性不能与其他实体具有联系.联系只发生在实体之间

冲突:

两类属性冲突:

属性域冲突:

属性值的类型

取值范围取值集合不同,属性取值单位冲突

两类命名:

冲突同名异义: 不同意义的对象在不同的局部应用中具有相同的名字

异名同义(一义多名): 同一意义的对象在不同的局部应用中具有不同的名字

三类结构冲突:

同一对象在不同应用中具有不同的抽象

同一实体在不同分E-R图中所包含的属性个数和属性排列次序不完全相同

实体之间的联系在不同局部视图中呈现不同的类型

基本任务:

消除不必要的冗余,设计生成基本E-R图

步骤:

1.1 合并分E-R图,生成初步E-R图:

1.2 消除冲突

属性冲突

命名冲突

结构冲突

1.3修改与重构:

1.4消除不必要的冗余,设计生成基本E-R图

图例:



1.3 逻辑结构设计

E-R图与关系模型转换:

转换内容:

将实体、实体的属性和实体之间的联系转换为关系模式

转换原则:

一个实体转换为一个关系模式

实体的属性即为关系的属性

实体的码即为关系的码

将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转换一般遵循如下原则:

1)一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。

2)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。

3)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

4)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

5)三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。

6)同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。

7)具有相同码的关系模式可合并。

成果:

T_BasicData(Nmc_Rate,Nmc_TmpRate,Int_UnitTime,Int_leastTime,Int_PrepareTime,Int_LimitCash, Chr_Head)

T_Card(Chr_StudentNo,Chr_Cardno,Te_RegisterDateTime,Te_CacncelDateTime,Nmc_Cash,Chr_Head,Chr_Type,Chr_status)

T_Student(Chr_studentNo,CHr_StudentName,Chr_Age,Chr_Sex,Chr_Department,Chr_Grade,Chr_Class,Te_Date,Te_Time,Chr_Explain)

T_User(Chr_UserID, Chr_UserName,Chr_Level,Chr_Password,Chr_Computer,Chr_Head)

T_CheckDay(Nmc_RemainCash,Nmc_RechargeCash,Chr_CancelCash,Chr_ConsumeCash,Nmc_AllCash,Te_Date) T_WordLog(Chr_UserID,Chr_Level,Chr_LoginDate,Chr_LoginTime,Chr_LogoutDate,Chr_LogoutTime,Chr_Computer,Chr_Status

T_onLineRecord(Chr_Cardno,Chr_Head,De_OnDate,De_offDate,Te_onTime,Te_offTimeNmc_ConsumeTime,Nmc_Consumecash,Chr_Computer,Chr_Status)

T_Recharge(Chr_CardNo,Chr_Head,Chr_Recharge,Te_DateTime,Chr_Ischeck)

下篇博客继续。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: