软考-软件设计师:数据库技术基础-数据库设计过程概述(概念结构设计、逻辑结构设计、候选码/候选键建、主码/主键、主属性与非主属性、全码/ALL-Key)

设计过程

分三个阶段:

  • 概念结构设计:设计 ER模型(与数据库无关)

  • 逻辑结构设计:转换规则、规范化理论(关系规范化),设计二维表结构

  • 物理设计SQL:

概念结构设计

集成的方法:
  • 多个局部E-R图一次集成。
  • 逐步集成,用累加的方式一次集成两个局部E-R。
集成产生的冲突及解决办法:
  • 属性冲突:包括 属性域冲突 和 属性取值 冲突

    • 属性域冲突:A模块的年龄范围是 18-25,B模块的年龄范围是 0-65

    • 属性取值:A模块的性别是 男、女;B模块的性别是 0、1

  • 命名冲突:包括同名异义和异名同义。

    • 同名异义:A模块的 name 表示人名;B模块的 name 表示商品名

    • 异名同义:A模块的性别用 sex,B模块的用户数用 gender

  • 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的 属性个数 和 属性排列次序 不完全相同。

    • 销售部 的E-R图中,Employee 实体包含如下属性:
      emp_id, name, sales

    • 人事部的E-R图中,Employee 实体包含如下属性:
      emp_id, name, department, salary, hire_date

产物:E-R图

E-R图,实体关系图

  • 实体:实体是现实世界中可以区别于其他对象的事件或事物。矩形表示

    • 实体集:实体的集合
  • 属性:属性是实体某方面的特性。椭圆形表示

  • 实体间联系:实体的联系分为 实体内部 的联系和 实体与实体间 的联系,分三个情况:一对一、一对多、多对多。菱形表示

实体间联系类型

  • 一对一:菱形上有 1:1,一个班级有一个班长

  • 一对多:菱形上有 1:* 或 1:n,一个班主任对多个学生

  • 多对多:菱形上有 *:* 或 m:n,多个任课老师对多个学生

属性分类

简单属性 和 复合属性
  • 简单属性:是原子的,不可再分的;
  • 复合属性:可以细分为更小的部分(即划分为别的属性)
单值属性 和 多值属性
  • 定义的属性对于一个特定的实体都只有单独的一个值,称为单值属性;

  • 在某些特定情况下,一个属性可能对应一组值,称为多值属性。

NULL属性

表示无意义或 不知道

派生属性

可以从 其他属性得来。如:年龄属性,是根据生日计算的

二元联系(实体内部)

同一个实体集内的二元联系,如上图:两个球队比赛,两侧都是球队,而且是多对多

三元联系(实体与实体间的联系)

两个以上不同实体集之间的联系(三元联系)多重度的确定(可根据语义直接转换)

以三元关系中的一个实体作为中心,假设另两个实体都只有一个实例:

  • 若中心实体只有一个实例能与另两个实体的一个实例进行关联,则中心实体的连通数为 一

  • 若中心实体有多于一个实例能与另两个实体实例进行关联,则中心实体的连通数为 多

例子

  • P_D:表示一个病房有多个病人和多个医生,一个医生只负责一个病房,一个病人只属于一个病房。

  • SP_P:表示供应商为多个项目供应多种零件,每个项目可用多个供应商供应的零件,每种零件可由不同的供应商供应。

其他实体分类

  • 弱实体:一个实体必须依赖另一个实体,如:家属与职工的联系,附件与邮件。

  • 特殊化:实体一方面具有一些共性,另一方面还具有各自的特性,一个实体集可以按照某些特征区分为几个子实体。经理、中层领导、基层员工,都具有 员工 的共性,还有各自的特性

  • 聚集:一个联系连接另一个联系。(如果存在多个实体和多个联系,结构会变得复杂,难以清晰表达某些现实世界的关系。此时就可以通过聚集来 简化模型)

逻辑结构设计

常见数据模型

  • 层次模型
  • 网状模型
  • 关系模型(考)
  • 面向对象模型

数据模型三要素

  • 数据结构:数据类型
  • 数据操作:增删改查
  • 数据的约束条件:主键、唯一约束

关系表的3种类型

  • 基本关系(通常又称为 基本表 或 基表):实际存在的表,实际存储数据的逻辑表示。

  • 查询表:查询结果对应的表。

  • 视图表(视图)(考):由基表或其他视图表导出的表,本身不独立存储,数据库只存放它的定义,常称为虚表。

其他概念

  • 目/度:关系模式中 属性的个数。

  • 候选码/候选键 (多组):唯一标识一个记录的字段(可以有多个),如:学号、身份证号

  • 主码/主键(1组):从 候选码/候选键建 中选 一个

  • 主属性与非主属性:组成候选码的属性 就是主属性,其它的就是非主属性。

  • 外码/外键:表中某个字段,是另一个表的主键

  • 全码/ALL-Key:由关系模式的所有属性组成,即:表中所有字段都是主属性

约束

  • 实体完整性约束(主键:唯一且非空)
  • 参照完整性约束(外键:其他关系主键或者为空)
  • 用户自定义完整性约束 (自定义),如年龄是 0-120,不能是负数

扩展知识

  • 视图:保证数据安全,用于查询。
  • 触发器:CRUD操作时会自动执行,保证数据的正确。
  • 存储过程:简化复杂的操作调用,常见操作什么都能做。
  • 索引:提高查询效率。

实体型转换关系模式

一对一联系的转换有2种方式
  • 独立的关系模式:并入两端主键及联系自身属性,即:创建单独表,保存两个表的关系,该表主键:任一端主键

  • 归并(任意一端):一个表增加一个字段,保存 另一个表 的主键

例子:

一对多联系的转换有2种方式
  • 独立的关系模式:并入两端主键及联系自身属性,即:创建单独表,保存两个表的关系。该表主键:多端主键

  • 归并(多端):多端 的表增加一个字段,保存 一端 的主键

例子:

多对多联系的转换

只有1种方式
独立的关系模式:并入两端主键及联系自身属性,即:创建单独表,保存两个表的关系。该表主键:两端主键的组合键

例子:

学生:学号(主键),姓名,性别,年龄
课程:课程号(主键),课程名,授课老师
新建考试,保存两者关系:课程号,学号 主键,成绩

题

关系规范化在数据库设计的()阶段进行。

A、需求分析
B、概念设计
C、逻辑设计
D、物理设计

答案

C

题

某高校信息系统设计的分E-R图中,人力部门定义的职工实体具有属性:职工号、姓名、性别和出生日期;教学部门定义的教师实体具有属性:教师号、姓名和职称。这种情况属于(),在合并E-R图时,()解决这一冲突。

A、属性冲突 B、命名冲突
C、结构冲突 D、实体冲突

A、职工和教师实体保持各自属性不变
B、职工实体中加入职称属性,删除教师实体
C、教师也是学校的职工,故直接将教师实体删除
D、将教师实体所有属性并入职工实体,删除教师实体

分析第一问

没有 实体冲突

答案

C
B

题

数据库的安全机制中,通过提供共()供第三方开发人员调用进行数据更新,从而保证数据库的关系模式不被第三方所获取。

A、触发器
B、存储过程
C、视图
D、索引

答案

B
因为题干中支持 共开发人员调用进行数据更新,所以不是视图


原文出处:/show_1GW12GxXe633.html