数据库系统(四)---关系型数据库设计及E-R图

1、关系型数据库:

  关系型数据库是一类采用关系模型作为逻辑数据模型的数据库系统,遵从数据库设计的基本步骤,包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库的运行和维护等阶段。 概念结构设计与逻辑结构设计是关系数据库整个设计过程的关键。

2、关系数据库设计过程与各级模式

  在关系数据库设计的不同阶段,会形成数据库的各级模式。

   1)需求分析阶段,综合各个用户的应用需求;

   2)概念结构设计阶段,形成独立于机器特点、独立于各个关系数据库管理系统产品的概念模式;

   3)逻辑结构设计阶段,将 E-R 图转换成具体的数据库产品支持的关系数据模型,形成数据库逻辑模式,然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图,形成数据的外模式;

   4)物理结构的设计阶段,根据关系数据库管理系统的特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。

注:详细了解,请参考数据模式https://www.cnblogs.com/huyangshu-fs/p/11620600.html

3、 概念结构设计方法

  关系数据库的概念结构设计通常采用自顶向下法,它通过两个步骤来完成概念设计,首先建立局部信息结构,然后将局部信息结构合成为全局信息结构并优化,使用 E-R 图作为概念模型的描述工具。

1)局部信息结构设计

  局部信息结构设计:根据需求分析报告中标明的不同用户视图范围所建立的满足该范围内用户需求的信息结构,称为局部信息结构。

  局部信息结构设计的步骤包括:确定局部范围;选择实体;选择实体关键字; 确定实体间联系;确定实体的属性。

2)E-R 图的表示方法

  概念结构设计就是将需求分析得到的用户需求抽象为信息结构的过程,通常使用 E-R 图来作为描述现实世界的建模工具。E-R 图提供了表示信息世界中实体、属性和联系的方法。

  1.实体型,用矩形表示,写明实体的名称;

  2.属性,用椭圆形表示,并用无向边将其与其相应的实体连接起来。

  3.联系,用菱形表示,写明联系的名称,用无向边分别与有关实体连接起来,同时在无向边旁标注联系的类型(1:1、1:N 或 M:N),如果一个联系具有属性, 则这些属性也要用无向边与该联系连接起来。

  两个实体型之间、两个以上的实体型之间以及单个实体型内的联系,都会存在如下关系: 一对一联系(1:1) 一对多联系(1:N) 多对多联系(M:N)

3)全局信息结构设计

  全局信息结构设计是将上述步骤中产生的所有局部信息结构合并成为一个全局信息结构。 各局部 E-R 图之间的冲突主要表现在三个方面:

  3.1).属性冲突:属性域冲突和属性取值单位冲突。

  3.2).命名冲突:同名异义和异名同义。

  3.3).结构冲突:

   ① 同一对象在一个局部 E-R 图中作为实体,而在另一个 局部 E-R 图中作为属性;

   ② 同一实体在不同的 E-R 图中属性个数和类型不同;

   ③ 实体之间的联系在不同的 E-R 图中是不同的类型。

  eg:

  【例】设有如下实体:

    学生:学号,姓名,性别

    课程:课程号,课程名,学分

    班级:班号,班名,

    其中,每个班有若干学生,每个学生只可以在—个班级学习;每个学生可选修多门课程,每门课程可被多个学生选修,学生选修课程要记录成绩。

   1. 试画出反映上述实体关系的 E-R 图(不必画实体的属性)。

    

    注意:学生选修课程之后才能有成绩,故成绩是选修(联系)的属性。

4、逻辑结构设计方法

  逻辑结构设计的任务是把在概念结构设计产生的概念模型转换为具体的 DBMS 所支持的逻辑数据模型,也就是导出特定的 DBMS 可以处理的数据库逻辑结构。 通常包括三项工作:将 E-R 图转换为关系模型、对关系数据模型进行优化、设计面向用户的外模式。

1)E-R 图向关系模型的转换 遵循原则如下:

  1. 一个实体型转换为一个关系模式。

  2. 一个一对一联系可以转换为一个独立的关系模式。

  3. 一个一对多联系可以转换为一个关系模式。

  4. 一个多对多联系转换为一个关系模式。

  5. 具有相同码的关系模式可合并。

 eg:

  使用3中的示例,将E-R图转化为关系模式,并说明主外键

  (1)一个实体型对应一个关系模式:

     R学生(学号,姓名,性别)

    R课程(课程号,课程名,学分)

    R班级(班号,班名)

(2)一个一对多联系可转化为一个关系模式(中间表)

    R属于(学号、班号)外键 学号 和 班号

  (3)一个多对多联系可转化为一个关系模式(中间表)

    R选修(学号、课程号、成绩)外键 学号 和 课程号

  (4)R学生和R属于可合并成一张表

    R学生(学号、姓名、性别、班号)外键 班号

2)数据模型的优化 方法如下:

  1.确定各属性间的函数依赖关系。

  2.对于各个关系模式的范式,根据实际需要确定最合适的范式。

  3.判断每个关系模式的范式,根据实际需要确定最合适的范式。

  4.按照需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否 合适,确定是否要对某些模式进行合并或分解。

  5.对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率。

3)设计用户子模式 定义用户模式具体包括以下几个方面:

  1.可以通过视图机制在设计用户视图时,重新定义某些属性的别名,使其更符合用户的习惯,以方便使用。

  2.可以对不同级别的用户定义不同的视图,以保证系统的安全性。

  3.简化用户对系统的使用。

5、物理设计方法

   关系数据库系统的优点之一是用户通常不需要进行数据存储结构和存取方法的设计。

  物理设计的任务主要是通过对关系建立索引和聚集来实现与应用相关数据的逻辑连接和物理聚集,以改善对数据库的存取效率。

 1)建立索引

  索引的建立是通过 DBMS 提供的有关命令来实现的。 用以建立索引的那些属性也应是其所在关系中使用频率较高的属性。 建立索引的方式通常有静态和动态两种。 静态建立索引是指应用人员预先建立索引,一旦建立,后续的应用程序均可直 接使用该索引存取数据,它多适合于用户较多且使用周期相对较长的数据;动 态建立索引是指应用人员在程序内外临时建立索引,它多适合于单独用户或临 时性使用要求情况。

2) 建立聚集

  聚集是将相关数据集中存放的物理存储技术,借以提高 I/O 的数据命中率而改 善存取速度,其功能由具体的 DBMS 所提供,如 MySQL。 数据聚集结构的一种有效方式是块结构方式,块与块之间由指针连接,一个块 对应于一个物理分区。

原文地址:https://www.cnblogs.com/huyangshu-fs/p/11659958.html

时间: 2024-09-29 16:02:50

数据库系统(四)---关系型数据库设计及E-R图的相关文章

关系型数据库设计范式

范式: 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小. 首先要明白”范式(NF)”是什么意思.按照教材中的定义,范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”.很晦涩吧?实际上你可以把它粗略地理解为一张数据表的表结构所符合的某种设计标准的级别. 就像家里装修买建材,最环保的是E0级,其次是E1级,还有E2级等等.数据库范式也分为1NF,2NF,3NF,BCN

写给开发者看的关系型数据库设计

目录 一 Codd的RDBMS12法则——RDBMS的起源 二 关系型数据库设计阶段 三 设计原则 四 命名规则 数据库设计,一个软件项目成功的基石.很多从业人员都认为,数据库设计其实不那么重要.现实中的情景也相当雷同,开发人员的数量是数据库设计人员的数倍.多数人使用数据库中的一部分,所以也会把数据库设计想的如此简单.其实不然,数据库设计也是门学问. 从笔者的经历看来,笔者更赞成在项目早期由开发者进行数据库设计(后期调优需要DBA).根据笔者的项目经验,一个精通OOP和ORM的开发者,设计的数据

关系型数据库设计

转自:http://www.cnblogs.com/MeteorSeed/archive/2013/03/27/2880054.html ------------------------------------------------------------------------------------- 目录 一 Codd的RDBMS12法则——RDBMS的起源 二 关系型数据库设计阶段 三 设计原则 四 命名规则 数据库设计,一个软件项目成功的基石.很多从业人员都认为,数据库设计其实不那么

【转载】关系型数据库设计范式

为了建立冗余较小.结构合理的关系数据库,设计关系数据库时必须遵循一定的规则, 即关系数据库的设计范式. 第一范式(First Normal Form, 1NF) 关系型数据库的第一范式要求: 所有字段都是不可分割的 举例来说,客户数据表中包含客户名和地址,地址由城市和街道组成.应用经常需要分别访问城市或街道字段. 数据表customers(name,city, street)是符合第一范式的,而数据表customers(name,address)则不满足第一范式的要求. 定义一个满足第一范式的数

MySQL(四)—— 数据库设计

一.多表之间的关系的分类 (一).一对一之间的关系 如:人和身份证 分析:一个人只有一个身份证,一个身份证只能对应一个人. (二).一对多(多对一)之间的关系 如:部门和员工 分析:一个部门有多个员工,一个员工只能有一个部门. (三).多对多之间的关系 如:学生和课程 分析:一个学生可以选择很多门课程,一个课程也可以被多个学生选择. 二.一对多(多对一)关系实现 如:部门和与员工 实现:在多的一方建立外键,指向一的一方的主键. 三.多对多关系实现 如:学生和课程 实现:多对多关系实现需要借助第三

关系型数据库设计表和字段的思路

做数据库的设计一定要有思路,把各个表的依赖关系整理清楚.我们就讲一个小例子就可以让你轻松掌握到设计数据表和字段的思路 创建表和字段之前首先要明确各表之间的依赖关系场景: 比如现在要做一个电商网站的数据库整理清楚要设计的表:用户信息表,商品信息表,结算的表.PS:购物车的表请根据此例举一反三的去思考它的依赖关系,吴小迪相信聪明的您一定会做出来的思路:我们要 先设置不需要依赖其他表的表的字段(这句话一定要看懂,看不懂再来几遍,看懂为止),比如说用户信息和商品信息的表就 不需要依赖 其他的表,那么我们

数据库系统概论(二)数据库设计--数据字典、E-R图

数据字典 数据字典是数据库中数据的描述,也称为元数据.是数据的数据 数据字典建立于需求分析阶段,在设计过程中不断完善 这里的数据字典并不是指DBMS里的数据字典,DBMS中的数据(库)字典是DBMS在执行SQL语句时自动生成的 数据字典各部分的描述 ①数据项:数据流图中数据块的数据结构中的数据项说明 数据项是不可再分的数据单位.对数据项的描述通常包括以下内容: 数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系} 其中“取值范围”.“与其他数

Mysql第四天 数据库设计

不考虑主备.集群等方案,基于业务上的设计主要是表结构及表间关系的设计. 而关于表中字段主要是依据业务来进行定义,我们能够指定的大概有这么几项: 存储引擎 一般用InnoDB,特殊需求特殊选用 字符集和校验规则 特别说一下校验规则是指两个字符之间的比較规则, 比方A=a的话就是不区分大写和小写,会影响order by等. bin通常是区分大写和小写的, 一般用general 字段定义 字段怎么选取类型 索引 后面再说 特殊用途表 比方做缓存,汇总等 字段的数据类型选择 三个原则: 更小的数据类型.

十四、数据库设计三范式

1.第一范式:主键.字段不能再分 定义:要求有主键,数据库中不能出现重复记录,每一个字段是原子性不能再分 2.第二范式:非主键字段完全依赖主键 定义:第二范式是建立在第一范式的基础之上,要求数据库中所有非主键字段完全依赖主键,不能产生部分依赖.(严格意义上讲,尽量不要使用联合主键)    在多对多的关系中,创建包含两张表主键的第三张关系表. 3.第三范式:非主键字段不能产生传递依赖于主键字段 定义:建立在第二范式的基础上,要求非主键字段不能产生传递依赖于主键字段       一对多的关系中,在多