• 【数据库系统概论】第七章数据库设计


    7.1数据库设计概述

    数据库设计定义是什么?

    数据库设计(database design):数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。

    其中:数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效的运行环境

    信息管理要求:数据库中应该存储和管理哪些数据对象

    数据操作要求:对数据对象需要进行哪些操作

    数据库设计基本步骤

    需求分析

    概念结构设计

    逻辑结构设计

    物理结构设计

    数据库实施

    数据库运行和维护

    注:

    需求分析和概念结构设计可以独立于任何数据库管理系统进行

    逻辑结构设计和物理结构设计与选用的数据库管理系统密切相关

    7.3概念结构设计

    将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计,它是整个数据库设计的关键

    一:E-R模型

    (1)两个实体之间的联系

    一般地,把参与联系的实体型的数目称为联系的度

    两个实体型之间的联系度为2,也称为二元联系

    三个实体型之间的联系度为3,称为三元联系

    N个实体型之间的联系|度为N,也称为N元联系

    ①:一对一联系(1:1)

    例如,学校里一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间是1:1关系

    ②:一对多联系(1:n)

    例如,一个班级中有若干名学生,而每个学生只在一个班级中学习, 则班级与学生之间具有一对多联系

    ③:多对多联系(m:n)

    例如,一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生之间具有多对多联系。

    (2)两个以上实体型之间的联系

    两个以上实体型之间也存在着一对一、一对多或多对多的联系

    例如,对于课程、教师与参考书三个实体型,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每一个教师只讲一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书之间的联系是一对多的

    又如,有三个实体型:供应商、项目、零件,一个供应商可以供给多个项目多种零件,而每个项目可以使用多个供应商供应的零件,每种零件可由不同供应商供给,由此看出供应商、项目、零件三者之间是多对多的联系

    (3)单个实体型内的联系

    同一个实体集内的各实体之间也可以存在一对一、一对多和多对多的联系

    例如,职工实体型内部具有领导与被领导的联系,即某一职工 (干部)“领导”若干名职工,而一个职工仅被另外一个职工直接领导,因此这是一对多的联系

    二:E-R图

    (1)定义

    使用实体联系图可以建立数据模型,利用E-R图描绘的数据模型称之为E-R模型

    • 实体: 描述的数据对象
    • 属性: 描述数据对象的性质
    • 联系: 描述数据对象之间的交互方式

    (2)符号表示

    椭圆吧

    (3)示例

    一个学生可选修多门课,一门课有若干学生选修;一个教师可讲授多门课,一门课只有一个教师讲授;学生选修一门课,产生成绩;学生的属性有学号、姓名等;教师的属性有教师编号,教师姓名等;课程的属性有课程号、课程名等。请画出该系统E-R图

    7.4逻辑结构设计

    一:E-R图向关系模式的转换

    (1)转换原则

    一般1:1、1:m联系不产生新的关系模式,而是将一方实体的码加入到多方实体对应的关系模式中,联系的属性也一并加入

    m:n联系要产生一个新的关系模式,该关系模式由联系涉及实体的码加上联系的属性(若有)组成

    (2)具体转换

    ①:同一实体间1:m 联系

    例如,下面的E-R图可以转化为如下关系模式

    职工(工号,姓名,年龄,性别,职称,工资,领导者工号,民意测验)

    ②:同一实体间m:n 联系

    必须为这个“联系”单独建立一个关系,该关系中至少应该包含被它所联系的双方实体的“主码”,如果联系有属性,也一并纳入该关系中。由于这个“联系”只涉及一个实体,所以加入的实体的主码不能同名

    例如,下面的E-R图可以转化为如下关系模式

    零部件(代号,名称,价格)

    组装(代号,组装件代号,数量)

    B:两实体间

    ①:两实体间1:1联系

    一个1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并(米老师说一般搞合并)

    如果与某一端实体对应的关系模式合并:则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性

    例如,下面的E-R图可以转化为如下关系模式

    厂长(姓名,性别,年龄,厂号,任期)

    工厂(厂号,厂名,地点)

    ②:两实体间1:m联系

    可以将“1”方实体的主码纳入“m”方实体对应的关系中作为外码,同时把联系的属性也一并纳入“m”方对应的关系中

    例如,下面的E-R图可以转化为如下关系模式

    仓库(仓库号,地点,面积)

    商品(货号,品名,价格,仓库号,数量)

    ③:两实体间m:n联系

    必须对“联系”单独建立一个关系,该关系中至少包含被它所联系的双方实体的主码,如果联系也有属性,也一并纳入该关系中

    例如,下面的E-R图可以转化为如下关系模式

    学生(学号,姓名,性别,年龄)

    课程(课程号,课程名,学时)

    选修(学号,课程号,成绩)

    一道上课例题(涵盖大部分知识点)

    某一研究院有若干处室,包括处编号、处名称、地点、负责人等;

    每一个处室有若干个科室,包括科编号、科名称、人数、地点;

    每一个科室有若干个工作人员,包括职工编号、姓名、职务,学历、职称,简历;

    每个职工的简历包括开始时间、终止时间、单位、担任职务;

    该研究院承担若干个课题,包括课题号课题名、经费等;

    每个职工可以承担若干个课题;

    每个课题可以由若干人参加每个课题有一个负责人。

    要求:画出ER图,并且向关系模式转换

    向关系模式转换:

    注意点和难点:

    1.负责人写成属性,首先它不可能在职工当中,因为那个意思代表的是所有职工只有一个代表,现在把它写在课题的属性当中去

    2.简历此时不算职工的属性,他是一个独立的实体

    3.关系转换的时候,m:n是参加关系,所以得写双方的主码和联系的属性(本题没有联系属性)

    二:数据模型的优化

    数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该根据应用需要适当地修改、调整数据模型的结构,这就是数据模型的优化

    关系数据模型的优化通常以规范化理论为指导,方法为:

    确定每个关系模式内部各个属性之间的数据依赖以及不同关系模式属性之间的数据依赖

    对各个关系模式之间的数据依赖进行最小化处理,消除冗余的联系

    确定各关系模式的范式等级

    按照需求分析阶段得到的处理要求,确定要对哪些模式进行合并或分解

    为了提高数据操作的效率和存储空间的利用率,对上述产生的关系模式进行适当的修改、调整和重构

    三:设计用户子模式

    将概念模型转换为全局逻辑模型后,还应该根据局部应用需求,结合具体关系数据库管理系统的特点设计用户的外模式

    在定义用户外模式时可以注重考虑用户的习惯于方便,包括以下几个方面

    使用更符合用户习惯的别名

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

    可将经常使用的复杂的查询定义为视图,简化用户对系统的使用

    学习通课后题

  • 相关阅读:
    C语言练手小项目(巩固加深知识点理解)
    windows定制ISO-可安装
    jenkins-pipeline集成sonarqube代码扫描
    元宇宙发展大事纪-里程碑事件
    TCP拥塞控制算法
    SpringCloud Alibaba微服务实战六- 服务网关
    【VSCode + Anaconda】VSCode [WinError 126]找不到指定模块
    日立F-4700FL数据分析实验报告
    Rust中的单元测试
    日常学习收获之----react的ref和wrappedComponentRef的区别
  • 原文地址:https://blog.csdn.net/weixin_62985813/article/details/133830641