首页 > 学院 > 开发设计 > 正文

0003-数据库设计问题与核心

2019-11-09 13:40:54
字体:
来源:转载
供稿:网友

一、数据库设计分为几个阶段?

二、数据模型的设计要点?

   1. E-R模型中,概念和对象可以用实体、联系或属性来表示,行业领域的业务数据可以用弱实体集、概化、特化或聚集描述,但需要在简单、紧凑的模型与更精确但也更复杂的模型之间进行权衡。

   2.用E-R图定义的数据库设计可以用关系模式的集合来表示,数据库的每个实体集和联系集都有唯一的关系模式与之对应,其名称即为相应的实体集或联系集的名称,这是E-R图转换为关系数据库设计的基础。

二、数据库逻辑设计阶段的常见问题?

1.信息重复:

   举例 :  姓名,年龄,公司名称,薪水,组成的二维表中,对于在同一公司的人员,公司名称就重复存储了。应该分为表1:姓名,公司   表2:姓名,年龄,薪水。(假设没有重名的姓名)。

   问题:导致数据存储空间的浪费。由于有多行数据时,当公司名称变化时候,需要找到对应的属于这个公司的人的行数据去修改相应的公司名称值。导致修改数据前需要定位多个特定数据行,过程更加的复杂,而后者只需要将表1进行按公司名称排序后,直接修改特定的公司名称,过程相对简单,带价和开销要小很多。

2.缺乏表达某些信息的能力:

  举例:公司名称,人员姓名,人员岗位,公司规模,公司性质。

  问题:导致人的常规思维难以明白。到底是反映公司的基本属性信息,还是反映公司的人员基本信息 。

3.设计缺乏灵活性:

  举例:姓名,年龄,公司名称,薪水。当没有人员姓名的时候,是否就不能存储一个新的公司名称。现实生活中,公司名称需要进行新增管理,但是公司不一定,马上就具有与员工之间的关联关系,有的人会用 空值(值不存在或值存在但尚未获取到)来解决,但不是最好的办法。最好是分别存储公司信息和人员信息,保证各自的相对独立性和灵活性。当公司的人员减少至0后,是否就要删除相关公司的信息记录,导致不能查看曾经有过雇员的公司名称,不符合实际数据记录需求。

  问题:导致实际交互和存储,不能满足现实与虚拟世界的映射记录需求场景。

三、关系型数据库表,属性的域是原子的还是非原子的区别?

四、关系表中,某属性为NULL值,来表示数据未知或不存在,为什么提倡避免使用空值?


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表