数据库逻辑结构设计
数据库设计分为几个阶段,各阶段的任务是什么?
数据库设计分为⼏个阶段,各阶段的任务是什么?
按照规范的设计⽅法,⼀个完整的⼀般分为需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库的实施、数据库运⾏与维护六个阶段:
各阶段的任务如下:
1、需求分析:分析⽤户的需求,包括数据、功能和性能需求;
2、概念结构设计:主要采⽤E-R模型进⾏设计,包括画E-R图;
3、逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;
4、数据库物理设计:主要是为所设计的数据库选择合适的和存取路径;
5、数据库的实施:包括编程、测试和试运⾏;
6、数据库运⾏与维护:系统的运⾏与数据库的⽇常维护。
拓展资料:
(Database Design)是指对于⼀个给定的应⽤环境,构造最优的数据库模式,建⽴数据库及其应⽤系统,使之能够有效地存储数据,满⾜各种⽤户的应⽤需求(信息要求和处理要求)。
在数据库领域内,常常把使⽤数据库的各类系统统称为数据库应⽤系统。
是建⽴数据库及其应⽤系统的技术,是信息系统开发和建设中的核⼼技术。
由于数据库应⽤系统的复杂性,为了⽀持相关程序运⾏,数据库设计就变得异常复杂,因此最佳设计不可能⼀蹴⽽就,⽽只能是⼀种"反复探寻,逐步求精"的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。
数据库设计-逻辑设计
数据库设计-逻辑设计数据库设计-逻辑设计概念结构设计:定义:将需求分析得到的⽤户需求抽象成信息结构,即概念模型。
概念模型:通常的描述⼯具是E-R模型图。
数据库概念模型的设计⽅法:概念设计的步骤:1. 进⾏数据抽象,设计局部概念模式分解法:将⼀个⼤的需求分解成⼀个个的⼩的需求,具体到单个⽤户的基本需求,为每个⽤户或⽤户组建⽴⼀个对应的局部E-R模型常⽤抽象⽅法:聚集:将若⼲对象和它们之间的联系组合成⼀个新的对象。
例如:学⽣属性信息(学号,姓名,性别)聚集成⼀个学⽣实体。
概括:将⼀组具有某些共同特征的对象合并成更⾼层⾯的对象。
例如:对不同学⽣(本科⽣,研究⽣)统⼀概括出共同特征,并抽象成学⽣实体。
2. 将局部概念模式综合成全局概念模式将各个局部概念模式合并成⼀个全局概念模式。
解决冗余问题解决对象定义不⼀致问题:同名异意,异名同意。
概念设计中涉及到的专有名词:关系:⼀个关系对应⼀张表。
元组:⼀个元组对应表中的⼀⾏记录。
属性:⼀个属性对应表中的⼀列记录。
主属性:候选码中出现的属性。
⾮主属性:没有在任何候选码中出现。
候选码:可以唯⼀标识元组的属性组。
主码:候选码之中的⼀个。
域:属性的取值范围。
分量:元组中的⼀个属性值。
ER图图例说明:矩形:表⽰实体集。
菱形:联系集。
椭圆:实体的属性。
线段:实体与属性之间的联系。
局部概念结构设计:1. 选择局部应⽤:根据系统具体情况,在多层的数据流图中选择⼀个适当层次的数据流图,从该数据流图出发,设计局部E-R模型。
2. 逐⼀设计局部E-R模型:参照数据字典和数据流图,确定每个局部应⽤应该包含那些实体,实体有包含那些属性,以及实体之间的联系和类型。
1. 实体的定义:现实世界中事物。
例如:学⽣2. 属性的定义:描述实体的性质。
例如:学号,姓名,性别联系的定义:实体之间的关系:⼀对⼀;⼀对多;多对多。
例如:⼀个学⽣对应⼀个班级,⼀个班级对应多个学⽣,多个⽼师对应多个班级。
全局概念结构设计:1. 合并局部E-R模型,⽣成初步的全局E-R图。
什么是数据库的逻辑结构概念结构和物理结构
什么是数据库的逻辑结构概念结构和物理结构下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!数据库的逻辑结构、概念结构和物理结构是数据库系统中非常重要的概念。
数据库的设计实验报告
一、实验目的1. 理解数据库设计的概念、过程和步骤。
2. 掌握数据库概念结构、逻辑结构和物理结构的设计方法。
3. 能够运用E-R图进行数据库概念结构设计。
4. 能够运用SQL语句进行数据库逻辑结构和物理结构设计。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:MySQL Workbench三、实验内容1. 数据库概念结构设计2. 数据库逻辑结构设计3. 数据库物理结构设计四、实验步骤1. 数据库概念结构设计(1)分析需求,确定实体和属性以“图书管理系统”为例,确定实体和属性如下:实体:图书、读者、借阅信息属性:- 图书:书名、作者、出版社、ISBN、出版日期、分类号、库存数量- 读者:读者编号、姓名、性别、出生日期、联系电话、邮箱、住址- 借阅信息:借阅编号、图书编号、读者编号、借阅日期、归还日期、状态(2)绘制E-R图根据实体和属性,绘制E-R图如下:```图书(书名,作者,出版社,ISBN,出版日期,分类号,库存数量)读者(读者编号,姓名,性别,出生日期,联系电话,邮箱,住址)借阅信息(借阅编号,图书编号,读者编号,借阅日期,归还日期,状态) ```2. 数据库逻辑结构设计(1)确定关系模式根据E-R图,确定关系模式如下:- 图书(书名,作者,出版社,ISBN,出版日期,分类号,库存数量)- 读者(读者编号,姓名,性别,出生日期,联系电话,邮箱,住址)- 借阅信息(借阅编号,图书编号,读者编号,借阅日期,归还日期,状态)(2)编写SQL语句创建表```sqlCREATE TABLE 图书 (书名 VARCHAR(100),作者 VARCHAR(50),出版社 VARCHAR(50),ISBN VARCHAR(20),出版日期 DATE,分类号 VARCHAR(10),库存数量 INT);CREATE TABLE 读者 (读者编号 VARCHAR(10),姓名 VARCHAR(50),性别 CHAR(1),出生日期 DATE,联系电话 VARCHAR(20),邮箱 VARCHAR(50),住址 VARCHAR(100));CREATE TABLE 借阅信息 (借阅编号 VARCHAR(10),图书编号 VARCHAR(10),读者编号 VARCHAR(10),借阅日期 DATE,归还日期 DATE,状态 VARCHAR(10));```3. 数据库物理结构设计(1)确定索引根据需求,确定索引如下:- 图书表:ISBN、分类号- 读者表:读者编号- 借阅信息表:借阅编号、图书编号、读者编号(2)编写SQL语句创建索引```sqlCREATE INDEX idx_isbn ON 图书(ISBN);CREATE INDEX idx_分类号 ON 图书(分类号);CREATE INDEX idx_读者编号 ON 读者(读者编号);CREATE INDEX idx_借阅编号 ON 借阅信息(借阅编号);CREATE INDEX idx_图书编号 ON 借阅信息(图书编号);CREATE INDEX idx_读者编号 ON 借阅信息(读者编号);```五、实验结果与分析1. 通过实验,掌握了数据库设计的概念、过程和步骤。
数据库的概念结构设计 逻辑结构设计 物理结构设计
数据库的概念结构设计逻辑结构设计物理结构设计下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!数据库的概念结构设计、逻辑结构设计和物理结构设计1. 概述数据库的设计过程通常包括概念结构设计、逻辑结构设计和物理结构设计三个阶段。
3.2设计逻辑结构与建立数据库教学设计人教中图版高中信息技术选择性必修3数据管理与分析
二、学情分析
在本章节“设计逻辑结构与建立数据库”的学习中,考虑到学生的年龄特点和知识背景,他们对数据库的概念及实际应用可能较为陌生。但高中阶段的学生已具备一定的信息技术基础,对计算机操作较为熟悉,这为学习数据库知识奠定了基础。
接着,我会简要介绍数据库的发展历程、分类及应用场景,让学生对数据库有一个初步的认识。在此基础上,引出本节课的学习内容——设计逻辑结构与建立数据库。通过这样的导入方式,激发学生的兴趣和求知欲,为接下来的学习打下基础。
(二)讲授新知
在讲授新知环节,我将按照以下步骤进行:
1.讲解数据库的基本概念,如数据表、字段、记录等,让学生对数据库的结构有一个直观的认识。
2.介绍关系型数据库的体系结构,包括表、视图、索引等,使学生了解数据库的内部构成。
3.详细讲解数据库设计的基本原理,如实体-关系模型、E-R图等,并通过实例进行分析,帮助学生理解并掌握这些概念。
4.引入数据库管理系统(DBMS)的使用,以MySQL为例,讲解如何创建数据库、数据表,以及如何进行数据的增删改查等操作。
3.重难点三:数据库设计中的实际问题分析
学生在遇到实际问题时,可能不知道如何运用所学知识进行分析和解决。
设想:引入案例分析教学,让学生分组讨论,分析案例中的问题,提出解决方案。通过这种方式,培养学生的问题分析能力和解决实际问题的能力。
(二)教学设想
1.采用项目式教学法,将整个数据库设计过程作为一个项目进行教学。学生在教师的指导下,分组完成项目任务,从需求分析、概念结构设计、逻辑结构设计到物理结构设计,逐步掌握数据库设计的方法。
4.创新设计:鼓励学生发挥想象力和创造力,为某个实际场景设计一个具有特色的数据库应用。可以是一个全新的系统,也可以是现有系统的优化。要求描述清楚设计思路、功能特点,并使用E-R图等工具进行展示。
数据库逻辑结构及物理设计
实例:
学生学籍管理系统中,三个表如下:
• 学生(学号、姓名、出生年月、些别、系名、班号) • 课程(课程名、课程号、教师、学分) • 成绩(学号、课程号、成绩)
整个系统需要统计学生的平均分,某课程的平均分等。 所以,学生表中的“学号”,课程表中的“课程号”, 成绩表中的“学号”、“课程号”将经常出现在查询条 件中,可以考虑在上面建立索引以提高效率。
确定建立哪些存储路径以实现快速存取数据库 中的数据。
DBMS提供的存取方法
• 索引方法 • HASH法,等
索引:表中数据和相应存储位置的列表
优点
• 大大的减少数据的查询时间
缺点
• 占用存储空间。
• 每个索引都将需要占用一定的存储空间
• 降低数据的更新数度
• 当对表中的数据进行增加、删除和修改的时候,索引也要动 态的维护
或
管理员(管理员编号,姓名,联系方式) 仓库(仓库编号,面积) 管理(仓库编号,管理员号)
ER图
关系模式
一对多的联系(1:M)
• 转换方式
• 将一对多的联系(1:M)转换为一个独立的关系模式。 • 联系名为关系模式名,与该联系相连的两个实体的关键 字及联系本身的属性为关系模式的属性。 • 关系模式的关键字为M端实体的关键字
对于数据更新事务,需要得到如下信息:
• 要更新的关系 • 每个关系上的更新操作的类型 • 删除和修改操作所涉及到的属性 • 修改操作要更改的属性值
知道每个事务在各关系上运行的频率,某些事务可能 具有严格的性能要求(如时间要求)
注意:在进行数据库物理设计时,通常并不知道所有 的事务
确定关系模式的存取方法
确定数据的存放位置:主要从提高系统性能的角度考 虑。
数据库-逻辑结构设计
关系模式:→二维表
ER模型:→ER图
2、关系模型的基本概念:
教师(教师编号,A, B,姓名,性别,所在系)--主表
课程(课程号,课程名,上课教师,教师编号)--从表
关系名:实体与实体间的联系
元组----记录---行(非空)
字段----数据项---列(属性)
选修(学号,课程号,成绩)
二维表:
①将实体转为关系表
(实体名--关系名,实体属性--关系属性,即列,实体键--关系键)
②将实体的联系转为关系表(关系模式)
1:1的联系--可以转为一个独立的关系模式,也可以与任一实体合并
1:n的联系--可以转为一个独立的关系模式,也可以与n端实体合并
m:n的联系--可以转为一个关系模式
多值依赖:
平凡与非平凡依赖:
7、逻辑结构设计过程:
①写出关系模式,绘制ER图
②对关系模式转为2维关系表,并进行范式规划化,使其达到3NF
③对2维表中关系数据的完整性约束
8、练习3
1NF:实体中的属性不能再分解
实例:
学生1(学号,姓名,性别,出生日期,系部代码,入学时间,家庭成员)不属于1NF
更改后:
学生1(学号,姓名,性别,出生日期,系部代码,入学时间,家庭)
家庭(学号,家庭成员姓名,亲属关系)
2NF:实体中的非键属性完全依赖键属性
实例:
选课1(学号,课程号,系部代码,出生日期,成绩)属于1NF,不属于2NF
分析:
姓名,性别,出生日期,入学时间---由学号唯一决定
系部代码,系名,系宿舍楼----不是由学号唯一决定,相互递推出来不属于3NF
(例如:系部代码----由学号或者系名或者系宿舍楼推出)
数据库设计:逻辑结构设计
5.3逻辑结构设计逻辑结构设计的任务就是把概念模型转换为某个具体的数据库管理系统所支持的数据模型。
具体来讲就是从E-R模型到关系模型的转换。
(1)根据E-R模型设计关系模式;(2)选择适当的范式对所得到的关系模式进行规范化;(3)将得到的关系模型转换为具体DBMS支持的数据模型,设计关系数据库模式。
(4)依据关系的完整性约束来设计用户视图。
1、关系模型关系模型是指用二维表的形式表示实体和实体间联系的数据模型。
关系模型中无论是实体还是实体间的联系均由单一的结构类型——关系来表示。
在实际的关系数据库中的关系也称表。
一个关系数据库就是由若干个表组成。
关系模型数据结构(1)关系一个关系也就是通常所说的一张表。
关系具有以下特征:1.关系中不能有任意两条完全相同的记录。
2.关系中的记录是非排序的。
3.关系中记录的字段是非排序的。
4.字段名称不能相同。
5.字段不可再分。
(2)元组每一横行称为一个元组。
(3)属性属性:每一竖列称为一个属性,在DBMS中常被称作字段。
在一个关系中,有一个关系名,同时每个属性都有一个字段名(4)码(键)能唯一标识元组的属性或属性集称为码。
码分为以下几种:候选码:如果在关系的一个码中不能移去任何一个属性,否则它就不是这个关系的键,则称这个被指定的候选键为该关系的候选键或者候选码。
例如下列学生表中“学号”或“图书证号”都能唯一标识一个元组,则“学号”和“图书证号”都能唯一地标识一个元组,则“学号”和“图书证号”都可作为学生关系的候选键。
主键(主码):在一个关系的若干候选键中指定一个用来唯一标识该关系的元组,则称这个被指定的候选码称为主关键字,或简称为主键、关键字、主码。
每一个关系都有并且只有一主键,通常用较小的属性组合作为主键。
外键(外码):关系中的某个属性虽然不是这个关系的主键,或者只是主键的一部分,但它却是另外一个关系的主键时,则称之为外键或者外码。
例如学生表,选定“学号”作为数据操作的依据,则“学号”为主键。
给出数据库逻辑结构设计
给出数据库逻辑结构设计一、引言数据库逻辑结构设计是数据库系统中非常重要的一环,它决定了数据库中数据的组织方式、数据的存储结构以及数据之间的关系。
一个良好的数据库逻辑结构设计能够提高数据库系统的性能和效率,使得数据的访问更加方便和快速。
本文将介绍数据库逻辑结构设计的基本概念和步骤,并结合实例进行说明。
二、数据库逻辑结构的基本概念1. 表(table):是数据库中最基本的逻辑结构,用来表示实体或概念的集合。
每个表由若干个字段(field)组成,每个字段表示表中的一个属性。
2. 关系(relation):是表之间的关联,它描述了表之间的连接条件和依赖关系。
关系可以是一对一、一对多或多对多的关系。
3. 主键(primary key):是表中用来唯一标识一条记录的字段,它保证了表中的每条记录都具有唯一性。
4. 外键(foreign key):是表中用来引用其他表中主键的字段,它用来建立表之间的关系。
5. 索引(index):是数据库中用来提高数据检索速度的一种数据结构,它可以加快数据的查找和排序操作。
三、数据库逻辑结构设计的步骤数据库逻辑结构设计是一个迭代的过程,它包括以下几个步骤:1. 需求分析:在数据库逻辑结构设计之前,首先需要进行需求分析,明确数据库系统的功能和要求。
根据用户的需求,确定需要存储和管理的数据,并确定数据之间的关系和约束条件。
2. 概念设计:在概念设计阶段,将需求分析得到的概念模型转化为数据库的概念模型。
常用的概念模型有层次模型、网状模型和关系模型。
其中,关系模型是最常用的概念模型,它将数据组织为二维表格的形式。
3. 逻辑设计:在逻辑设计阶段,将概念模型转化为数据库的逻辑模型。
逻辑模型是数据库中数据的组织方式和存储结构的描述。
常用的逻辑模型有关系模型、面向对象模型和半结构化模型。
4. 数据库表设计:在数据库表设计阶段,根据逻辑模型设计数据库中的表结构。
需要确定每个表的字段、数据类型、长度以及约束条件等。
数据库设计的概念结构与逻辑结构
数据库设计的概念结构与逻辑结构数据库设计是指根据实际需求,通过对数据的组织、存储和管理,设计出适合特定应用的数据库结构。
在数据库设计过程中,概念结构和逻辑结构是两个重要的概念。
概念结构是对数据的抽象和整体视图,而逻辑结构则是具体的数据组织和存储方式。
本文将以深度和广度的方式,探讨数据库设计的概念结构与逻辑结构,帮助您更全面地理解这一重要的主题。
一、概念结构的重要性概念结构是数据库设计的第一步,它是对现实世界实体及其之间关系的抽象表示。
在概念结构中,数据独立性是一个重要的考量因素。
通过概念结构的设计,可以更好地理解实际需求,并建立起数据库的整体框架。
概念结构的设计需要考虑到数据的完整性、一致性、灵活性等因素。
在设计概念结构时,需要考虑到不同实体之间的关系,以及各个实体的属性。
还需要考虑到数据的抽象程度,以确保数据模型的灵活性和可扩展性。
二、逻辑结构的设计原则逻辑结构是基于概念结构的,它是对数据的具体组织和存储方式的描述。
在设计逻辑结构时,需要考虑到具体的数据类型、索引、键值等因素。
还需要考虑到数据的查询和更新操作,以确保系统的性能和效率。
在设计逻辑结构时,需要遵循一些重要的设计原则。
首先是数据的规范化,通过将数据分解成更小的数据单元,以减少数据冗余和提高数据的一致性。
其次是数据的完整性约束,通过定义一些约束条件,来确保数据的完整性和一致性。
最后是性能优化,通过合理设计索引、分区等方法,来提高系统的性能和响应速度。
三、个人观点和理解在我看来,概念结构和逻辑结构是数据库设计中两个非常重要的概念。
概念结构是整个数据库设计的基础,它决定了数据库的整体框架和结构。
而逻辑结构则是具体实现的过程,它决定了数据的存储和操作方式。
在实际的数据库设计过程中,概念结构和逻辑结构的设计需要相互配合。
只有在概念结构设计完善的前提下,才能更好地实现逻辑结构的设计。
需要不断优化和调整这两者,以适应实际业务需求的变化。
总结与回顾在本文中,我们深入探讨了数据库设计的概念结构与逻辑结构。
数据库设计的过程(六个阶段)
1.需求分析阶段
准确了解与分析用户需求(包括数据与处理)
是整个设计过程的基础,是最困难、最耗费时间的一步
2.概念结构设计阶段
是整个数据库设计的关键
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
3.逻辑结构设计阶段
将概念结构转换为某个DBMS所支持的数据模型
对其进行优化
4.数据库物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
Hale Waihona Puke 5.数据库实施阶段 运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果
建立数据库,编制与调试应用程序,组织数据入库,并进行试运行
6.数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。
在数据库系统运行过程中必须不断地对其进行评价、调整与修改
设计特点:
在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计
数据库设计逻辑结构设计
数据库设计逻辑结构设计数据库设计是指根据需求和目标,通过合理的规划和设计,构建出适用于特定业务场景的数据库结构。
数据库逻辑结构设计是数据库设计的一个重要环节,它主要关注数据库对象之间的关系以及数据的组织方式。
本文将从概念设计、实体关系模型、关系规范化和物理设计四个方面介绍数据库逻辑结构设计的要点和方法。
一、概念设计概念设计是数据库设计的第一步,它的目标是确定数据库中的实体、属性和关系。
在进行概念设计时,我们需要收集用户需求,分析业务过程,并将其转化为数据库中的实体和属性。
实体是现实世界中具有独立存在和唯一标识的事物,属性是实体的特征或描述,它们之间通过关系进行连接。
在进行概念设计时,我们需要遵循一些准则,如确定实体的完整性约束、属性的数据类型和长度等。
二、实体关系模型实体关系模型是描述实体、属性和关系之间关系的一种图形化表示方法。
在实体关系模型中,实体用矩形框表示,属性用椭圆形表示,关系用菱形表示。
实体与实体之间的关系可以是一对一、一对多或多对多的关系。
在进行实体关系模型设计时,我们需要根据业务需求和规范化理论,将实体和关系进行适当的划分和组织。
三、关系规范化关系规范化是数据库设计的重要步骤,它的目标是通过消除冗余和保持数据一致性,提高数据库的性能和可维护性。
关系规范化的基本原则是将一个复杂的关系划分为若干个简单的关系,并通过外键进行连接。
在进行关系规范化时,我们需要遵循一些准则,如满足第一范式、消除传递依赖、消除部分依赖等。
通过逐步规范化,我们可以获得高效、可靠和易于维护的数据库结构。
四、物理设计物理设计是将逻辑设计转化为物理存储结构的过程。
在进行物理设计时,我们需要考虑数据库的性能、安全性和可扩展性。
其中,性能设计包括索引设计、数据分区和数据压缩等;安全性设计包括用户权限管理、数据加密和备份恢复等;可扩展性设计包括分布式架构和数据集群等。
通过合理的物理设计,我们可以充分发挥数据库的潜力,提高系统的稳定性和可用性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库逻辑结构设计
该系列计划包括 5 部分:完整性约束理论及应用、范式理论及应用、需求分
析、概念结构设计、逻辑结构设计。
本文是第五部分,介绍逻辑结构设计的内容,包括 E-R 图向关系模型的转换、数据模型的优化、用户子模式的设计等问题。
1.逻辑设计概述
概念结构是独立于任何一种数据模型的,在实际应用中,一般所用的数据库
环境已经给定(如 SQL Server 或 Oracel 或 MySql),本文讨论从概念结构向逻
辑结构的转换问题。
由于目前使用的数据库基本上都是关系数据库,因此首先需要将 E-R 图转换为
关系模型,然后根据具体 DBMS的特点和限制转换为特定的 DBMS支持下的数据
模型,最后进行优化。
2.E-R 图向关系模型的转换
2.1 一个例子
E-R 图如何转换为关系模型呢?我们先看一个例子。
图 2.1 是学生和班级的 E-R 图,学生与班级构成多对一的联系。
根据实际应
用,我们可以做出这个简单例子的关系模式:
学生(学号,姓名,班级)
班级(编号,名称)
“学生 . 班级”为外键,参照“班级. 编号”取值。
这个例子我们是凭经验转换的,那么里面有什么规律呢?在 2.2 节,我们将这些
经验总结成一些规则,以供转换使用。
2.2 转换规则
(1)一个实体型转换为一个关系模式
一般 E-R 图中的一个实体转换为一个关系模式,实体的属性就是关系的属性,
实体的码就是关系的码。
(2)一个 1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对应
的关系模式合并。
图 2.2 是一个一对一联系的例子。
根据规则(2),有三种转换方式。
联系单独作为一个关系模式
此时联系本身的属性,以及与该联系相连的实体的码均作为关系的属性,可以选择与该联系相连的任一实体的码属性作为该关系的码。
结果如下:职工
(工号,姓名)
产品(产品号,产品名)
负责(工号,产品号)
其中“负责”这个关系的码可以是工号,也可以是产品号。
)与职工端合并
职工(工号,姓名,产品号)
产品(产品号,产品名)
其中“职工 . 产品号”为外码。
i)与产品端合并
职工(工号,姓名)
产品(产品号,产品名,负责人工号)
其中“产品 . 负责人工号”为外码。
(3)一个1:n联系可以转换为一个独立的关系模式,也可以与n 端对应的关
系模式合并。
.
(i)若单独作为一个关系模式
此时该单独的关系模式的属性包括其自身的属性,以及与该联系相连的实体
的码。
该关系的码为n 端实体的主属性。
顾客(顾客号,姓名)
订单(订单号,)
订货(顾客号,订单号)
(ii)与 n 端合并
顾客(顾客号,姓名)
订单(订单号,,顾客号)
(4)一个 m:n 联系可以转换为一个独立的关系模式。
该关系的属性包括联系自身的属性,以及与联系相连的实体的属性。
各实体
的码组成关系码或关系码的一部分。
教师(教师号,姓名)
学生(学号,姓名)
教授(教师号,学号)
(5)一个多元联系可以转换为一个独立的关系模式。
与该多元联系相连的各实体的码,以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
(6)具有相同码的关系模式可以合并。
.
(7)有些 1: n 的联系,将属性合并到 n 端后,该属性也作为主码的一部分
这类问题多出现在聚集类的联系中,且部分实体的码只能在某一个整体中作
为码,而在全部整体中不能作为码的情况下才出现(其它情况本人还没碰到,呵呵,欢迎指教)。
比如上篇文章介绍的管理信息系统中订单与订单细节的联系。
关于什么是聚集, 2.3 节介绍。
2.3 数据抽象的分类
这部分本应在概念设计中介绍的,用到了才想起来,这里补充一下。
关于现实世界的抽象,一般分为三类:
分类:即对象值与型之间的联系,可以用“is member of ”判定。
如张英、王平都是学生,他们与“学生”之间构成分类关系。
聚集:定义某一类型的组成成分,是“is part of”的联系。
如学
生与学号、姓名等属性的联系。
概括:定义类型间的一种子集联系,是“is subset of”的联系。
如研究生和本科生都是学生,而且都是集合,因此它们之间是概括的联系。
例:猫和动物之间是概括的联系,《 Tomand Jerry 》中那只名叫 Tom的猫与猫之间是分类的联系, Tom的毛色和 Tom之间是聚集的联系。
订单细节和订单之间,订单细节肯定不是一个订单,因此不是概括或分类。
订单细节是订单的一部分,因此是聚集。
2.4 数据模型的优化
有了关系模型,可以进一步优化,方法为:
)确定数据依赖。
)对数据依赖进行极小化处理,消除冗余联系(参看范式理论)。
)确定范式级别,根据应用环境,对某些模式进行合并或分解。
以上工作理论性比较强,主要目的是设计一个数据冗余尽量少的关系模式。
下面这步则是考虑效率问题了:
)对关系模式进行必要的分解。
如果一个关系模式的属性特别多,就应该考虑是否可以对这个关系进行垂直
分解。
如果有些属性是经常访问的,而有些属性是很少访问的,则应该把它们分解为两个关系模式。
如果一个关系的数据量特别大,就应该考虑是否可以进行水平分解。
如一个论坛中,如果设计时把会员发的主贴和跟贴设计为一个关系,则在帖子量非常大
的情况下,这一步就应该考虑把它们分开了。
因为显示的主贴是经常查询的,而跟贴则是在打开某个主贴的情况下才查询。
又如手机号管理软件,可以考虑按
.
省份或其它方式进行水平分解。
2.5 设计用户子模式
这部分主要是考虑使用方便性和效率问题,主要借助视图手段实现,包括:)建立视图,使用更符合用户习惯的别名。
)对不同级别的用户定义不同的视图,以保证系统的安全性。
)对复杂的查询操作,可以定义视图,简化用户对系统的使用。
物理设计主要工作是选择存取方法(索引),以及确定数据库的存储结构,这里就不说明了。
好了,可以在你的DBMS上建表了。