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

上接博客【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)


下篇博客继续。。


评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值