数据库——数据字典是什么?

一.数据字典以及使用场景:

                                                                                              <User表>

                                                                             

User表,User主体有很多属性,比如证件(身份证、居住证、港澳通行证...)地区(河北、河南、北京...)等,然后表建好了,数据也填进去了,项目代码也敲几万行。但是有一天,客户说这个“身份证”表述不够官方,要改成“居民身份证”比较好,所以作为这个项目开发人员,你要把代码里和数据库中所有的“身份证”改成“居民身份证”,这工作量估计很让人抓狂。

但是如果采用下边的建表方式,是不是就不会出现这种问题呢,将证件新建一个属性表,将属性值和主体分离,主体表只保存属性的的代码。这就是一种数据字典。

                                                          <user表>                                                <证件表>

                                                              

现在,大家应该对数据字典概念有个基本的理解了,数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由数据库管理系统自动更新的数据字典。被动数据字典是指修改时必须手工更新其内容的数据字典。

 

二.数据字典的两种形式

  • 第一种:《主体表》里包含主体和属性代码,《属性表》里包含属性代码和属性Value,不同属性分别建表。
  • 第二种:《主体表》里仅包含主体,《系统代码分类表》里存储属性标识和属性名称,《系统代码表》里包含所有属性代码、属性标识和属性Value,《属性表》是《主体》和《系统代码表》的关系表,包含属性id,主体id,属性代码。

举例:

第一种字典设计:

                    <User表>                                                 <证件表>                                                 <身份表>

                     

第二种字典设计:

<User表>                   <系统代码分类表>                         <系统代码表>                                 <属性表>

         

两种设计方式分析:

1.第一种设计方式:由于属性id是存储在主体表里的属性的数量是不变的,而属性取值的数量可以是变化的。但是如果该主体的属性非常多的话,就需要建很多的属性表,在开发中还要设计很多属性类,那当想要取得一条主体的完全数据时,那将进行几十个表的联接(join)操作。性能耗损严重。当属性的数量不多时,用第一种数据字典即可。

2.第二种设计方式:由于这种设计方式属性和主题表是分开的,所以属性的数量是可变的,而属性取值的数量可以是变化的。引入《系统代码分类表》和《系统代码表》,也解决了第一种设计方式的局限性。

 

三.数据字典的优缺点

优点:

一、在一定程度上,通过系统维护人员即可改变系统的行为(功能),不需要开发人员的介入。使得系统的变化更快,能及时响应客户和市场的需求。

二、提高了系统的灵活性、通用性,减少了主体和属性的耦合度

三、简化了主体类的业务逻辑

四、能减少对系统程序的改动,使数据库、程序和页面更稳定。特别是数据量大的时候,能大幅减少开发工作量

五、使数据库表结构和程序结构条理上更清楚,更容易理解,在可开发性、可扩展性、可维护性、系统强壮性上都有优势。

缺点:

一、数据字典是通用的设计,在系统效率上会低一些。

二、程序算法相对复杂一些。

三、对于开发人员,需要具备一定抽象思维能力,所以对开发人员的要求较高。

  • 108
    点赞
  • 378
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
酒店管理系统的数据库设计是基于分布式数据库的。它主要包括管理员数据结构和核心业务管理操作,如客户信息管理、客房管理和酒店资料管理等。管理员数据结构定义了管理员的相关信息,包括管理员编号、管理员姓名和管理员密码。 为了应对日益激烈的竞争环境和提升客户满意度,酒店业不断寻求扩大销售、改进服务质量、降低管理成本和提升核心竞争力的新方法。其中,信息化技术的应用是最有效的手段之一。酒店管理系统建立在分布式数据库上,通过先进的信息化技术变革了传统的竞争方式和经营管理模式,以赢得新的竞争优势。酒店管理系统通过互联网和分布式数据库实现客户资料、客房资料和酒店资料的管理操作。 通过数据库的课程设计,学生能够将理论知识与实际应用相结合,增强对数据库应用的理解,并积累开发数据库系统的经验。课程设计涉及从需求分析到概念设计和逻辑设计的整个数据库开发过程,包括E-R图的表示、数据字典的创建以及SQL语言的应用。学生还可以通过查阅资料和研究其他旅馆管理信息系统的设计报告,进行学以致用、自我创新,不断完善和更新系统设计。虽然可能无法达到完善系统的程度,但通过理论学习和实践应用,能够提供对完善系统的帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [数据库课程设计 ——酒店管理系统](https://blog.csdn.net/mjb740074431/article/details/90706834)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [宾馆客房管理系统Mysql数据库课程设计](https://blog.csdn.net/zhu_xian_gang/article/details/122254288)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值