chapter-6数据库设计原则

news2024/11/15 10:36:26

以下课程来源于MOOC学习—原课程请见:数据库原理与应用
考研复习

数据库设计

数据库设计是基于应用系统需求分析中对数据的需求,解决数据的抽象、数据的表达和数据的存储等问题,其目标是设计出一个满足应用要求,简洁、高效、规范合理的数据库。最终得到能在DBMS中存储的数据库的逻辑结构和物理结构。

数据库设计方法从早期根据经验进行直观设计,到运用软件工程的思想进行规范化设计,已发展到用计算机进行辅助设计,和使用设计工具软件自动进行设计。

以基于E-R模型的规范设计方法为基础,通常将数据库设计分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施、数据库的运行、维护阶段等六个阶段

需求分析是整个数据库设计的基础,主要来准确了解与分析用户以及应用系统的数据需求,明确在数据库中需要存储和管理哪些数据,明确用户对数据的安全性和完整性方面的需求,以及用户的存取权限的设置等。

概念结构设计是整个数据库设计的关键。在需求分析的基础上,需要借助概念模型,如E-R模型,来表达数据抽象的结果,得到一个独立于具体的DBMS的概念模型。

逻辑结构设计把概念结构设计得到的概念模型转换为选定的DBMS支持的数据模型所对应的数据库模式,如关系数据库模式,并对其进行优化。

物理结构设计为逻辑结构设计得到的数据库模式,利用选定的DBMS支持的数据定义语言描述数据库的三级模式结构,确定适合应用环境的存储结构和存取方法。

数据库实施阶段,在具体的DBMS上,实现物理结构设计的结果,建立数据库,进行数据库编程,组织数据入库,并进行测试操作等。

对正式投入使用的数据库,在系统运行过程中需要不断地对其进行评估与完善。

数据库设计是上述六个阶段的不断反复迭代,逐步求精的过程。数据库设计同时伴随着数据库系统应用软件的设计,在设计过程中需要把两者加以结合,相互完善。

数据流程图是用于描述数据库结构化设计方法中(需求分析)阶段的工具。

信息需求表示一个组织需要管理的数据及其结构

处理需求表示一个组织需要经常对数据进行的处理操作

问:关系数据库设计的理论支撑:在关系数据库设计过程中是如何运用前面所学的数据库理论的?

答:在概念设计阶段,用E-R模型设计数据库的概念模型;在逻辑设计阶段,用关系规范化理论设计数据库模式

概念结构设计

数据库概念结构设计阶段得到的结果是**:E-R图表示的概念结构**

E-R图来描述信息结构但不涉及信息在计算机中的表示

步骤:

1.抽取实体和实体的属性并绘制ER图

image-20210122222949942

2.确定实体间的关系,以及发生联系后产生 的属性特征,绘制

image-20210122223025881

3.组合实体与联系的ER图,构造完整的ER图

image-20210122223138337

在合并分E-R图时必须消除各分图中的不一致,即冲突。各分E-R图之间的冲突主要有三类,

即属性冲突、命名冲突和结构冲突。

  • 命名冲突:同名异义或同义异名
  • 属性冲突:属性类型冲突
  • 结构冲突:属性取值单位冲突

逻辑结构设计

逻辑结构设计阶段得到的结果是:某个DBMS所支持的数据逻辑结构

关系数据库的规范化理论主要用来指导(构造数据库逻辑结构 )。

设计关系模式是( 逻辑结构设计 )阶段的任务。

  • 1:1联系可以转换为一个独立的关系模式,也可以与联系任意一端实体所对应的关系模式合并

比如:两个关系:班级(班级号,所在系,专业,人数) 班长(学号,姓名)

第一种:增加负责人(学号,班级号) 或者

第二种:班级(班级号,所在系,专业,人数,班长学号) 班长(学号,姓名)

  • 1:n联系可以转换为一个独立的关系模式,也可以与联系的n端实体所对应的关系模式合并

比如两个关系:班级(班级号,所在系,专业,人数) 学生(学号,姓名)

第一种:新增 表(属于):(学号,班级号)

第二种:班级(班级号,所在系,专业,人数) 学生(学号,姓名,所在班级号

  • m:n联系 只能 转换为一个独立的关系模式

比如两个关系:课程(课程号,课程名,学分) 学生(学号,姓名)

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

  • 三个或三个以上的实体间的多元联系要单独转换为一个关系模式
  • 子实体和ISA实体联系的转换

从E-R模型、向关系模式转换时,一个M:N联系转换为关系模式时,该关系模式的候选键是( M端实体关键字与N端实体关键字的组合 )

在E-R模型中,如果有3个不同的实体型,3个m:n联系,根据E-R模型转换为关系模式的规则,转换后关系的数目为( 7 )。

关系数据库逻辑结构设计阶段的主要完成的任务有( )。

ER模型转换为关系模式->关系模式规范化->关系模式优化->设计用户模式

物理结构设计

设计解决的问题:数据库存储结构的设计+数据库存储方法的设计;确保对磁盘的I/O操作次数最少

设计的目标是:得到存储空间占用少、数据访问效率高和维护代价低的数据库物理模式

此阶段得到的结果是:包括存储结构和存取方法的数据库物理结构

确定数据库存储结构,即确定关系、索引、聚簇、日志、备份等数据的存储安排和存储结构,这是数据库设计的(物理结构设计 )的任务。

(物理结构设计 )可以得到用SQL语言定义的数据库模式。

其中:

  • 定义用户外模式
    • 主要为了定义视图
  • 定义内模式
    • 索引是DBMS采用的主要存方法,DBMS可以基于索引定制优化查询计划
    • 索引的创建的可以确定数据文件的存储结构
  • 定义数据库

image-20210122225324101
image-20210122230421114

问:为什么创建索引属于内模式的定义内容?

答:内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如:数据存储的文件结构、索引、集簇及hash等存取方式与存取路径。所以创建索引属于内模式的定义内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/416662.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【c语言】二维数组

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

「计算机控制系统」3. 计算机控制系统的数学描述

差分方程 Z变换 脉冲传递函数 计算机控制系统的响应 文章目录差分方程基础知识差分方程的解Z变换定义与性质求Z变换Z变换表求Z反变换用Z变换解差分方程脉冲传递函数脉冲传递函数与差分方程的相互转化开环脉冲传递函数闭环脉冲传递函数计算机控制系统的响应差分方程 基础知识 …

Photoshop CS6安装包下载及安装教程(Photoshop 2016)

下载链接&#xff1a; https://pan.quark.cn/s/f961759b36cc “Adobe Photoshop是一款集图像扫描、编辑修改、图像制作、广告创意、图像输入输出于一体的图形图像处理软件,简称ps,对于这款软件大家应该并不陌生,而今天小编带来的是Photoshop2023中文版,也是该系列的最新版本,不…

WAF攻防-菜刀冰蝎哥斯拉流量通讯特征绕过检测反制感知

文章目录菜刀-流量&绕过&特征&检测特征绕过检测冰蝎3-流量&绕过&特征&检测特征通讯过程检测绕过哥斯拉-流量&绕过&特征&检测特征Other使用Proxifier进行流量转发至Burp抓包分析(使用Wireshake也可以) 菜刀-流量&绕过&特征&检…

Java阶段一Day21

Java阶段一Day21 文章目录Java阶段一Day21多线程并发原理使用场景创建并启动线程创建线程的方法进程线程的生命周期获取线程信息的方法教师总结新单词多线程概念线程:一个顺序的单一的程序执行流程就是一个线程。代码一句一句的有先后顺序的执行。多线程:多个单一顺序执行的流程…

最新!AI第一次有了国家标准,北大、华为、百度等单位共同编制

最近&#xff0c;国家标准全文公开系统网站正式发布了国家标准《神经网络表示与模型压缩 第一部分&#xff1a;卷积神经网络》&#xff08;GB/T 42382.1-2023&#xff09;&#xff0c;此标准由北京大学、鹏城实验室、华为、百度等16家单位共同编制。 &#xff08;来源&#xff…

考试前临时抱佛脚有用吗?这篇复习攻略会告诉你答案

夏天来了&#xff0c;大家的期末考试也将不远了。不知平时大家是如何准备考试的&#xff0c;是平时学习计划有序进行复习&#xff0c;还是考试前临时抱佛脚呢&#xff1f;今天就来跟大家讲一讲&#xff0c;学习中很重要的一个环节&#xff0c;如何复习。所以敲黑板&#xff0c;…

基于 AT89C51 单片机的数字时钟设计

目录 1.设计目的、作用 2.设计要求 3.设计的具体实现 3.1 设计原理 3.2 硬件系统设计 3.2.1 AT89C51 单片机原理 3.2.2 晶振电路设计 3.2.3 复位电路设计 3.2.4 LED 数码管显示 3.3 系统实现 3.3.1 系统仿真与调试 3.3.2 演示结果 4.总结 附录 附录 1 附录 2 1.…

【JVM】常量池

常量池&#xff08;Runtime Constant Poo&#xff09; 常量池Java中可以分为三种&#xff1a;字符串常量池&#xff08;堆&#xff09;、Class文件常量池、运行时常量池&#xff08;堆&#xff09;。 1.字符串常量池&#xff08;String Pool&#xff09; 为了提升性能和减少…

C++变量限定

C的变量限定指可以在变量类型的基础上加上特殊的限定条件&#xff0c;主要包括&#xff1a;是不是const&#xff0c;是不是volatile&#xff0c;是左值还是右值&#xff0c;是不是引用&#xff0c;是左值引用还是右值引用&#xff0c;等等。 1. 为什么要研究这个东西 主要是c…

练习之烦人的递归

文章目录1.删除公共字符2.读入一串以?结束的字符串&#xff0c;逆序输出。法一&#xff1a;常规递归法二&#xff1a;投机取巧3.递归将整数输出为字符串4.递归输出1--n的平方和5.递归计算222222...6.递归求最大公约数7.递归输出x的n次方8. 递归计算下列式子的值1.删除公共字符…

从FPGA说起的深度学习(六)-任务并行性

这是新的系列教程&#xff0c;在本教程中&#xff0c;我们将介绍使用 FPGA 实现深度学习的技术&#xff0c;深度学习是近年来人工智能领域的热门话题。在本教程中&#xff0c;旨在加深对深度学习和 FPGA 的理解。用 C/C 编写深度学习推理代码高级综合 (HLS) 将 C/C 代码转换为硬…

还在回想Midjourney的参数,Claude来帮你

本来是想整理一份Midjourne使用的参数表&#xff0c;看来是不用了&#xff0c;Claude很方便的就能帮到我们。 问下Claude: 你知道 Midjourne 的参数吗 Claude 回答如下&#xff1a; 是回答出来了&#xff0c;但是并不是非常的好&#xff0c;我们继续引导他一下&#xff1a; 你…

堆的实际应用(topk问题以及堆排序)

目录 前言&#xff1a; 一:解决topk问题 二:堆排序 【1】第一种方法(很少用) 【2】第二种方法(很实用) 前言&#xff1a; 上一次我们进行了二叉树的初步介绍并实现了堆的基本功能&#xff0c;但堆的作用并不是存储数据&#xff0c;它可以用来解决topk问题(求一组数据较大或…

【C语言】9000字长文操作符详解

简单不先于复杂&#xff0c;而是在复杂之后。 目录 1. 操作符分类 2. 算数操作符 3. 移位操作符 3.1 左移操作符 3.2 右移操作符 4. 位操作符 4.1 按位与 & 4.2 按位或 | 4.3 按位异或 ^ 4.4 一道变态的面试题 4.5 练习 5. 赋值操作符 5.1 复合赋值…

主流接口测试框架对比,究竟哪个更好用

公司计划系统的开展接口自动化测试&#xff0c;需要我这边调研一下主流的接口测试框架给后端测试&#xff08;主要测试接口&#xff09;的同事介绍一下每个框架的特定和使用方式。后端同事根据他们接口的特点提出一下需求&#xff0c;看哪个框架更适合我们。 需求 1、接口编写…

项目工作分解工具WBS

WBS工作分解结构&#xff08;Work Breakdown Structure&#xff09;&#xff0c;是一个描述思路的规划和设计工具&#xff0c;它可以清晰地表示各项目之间相互联系的结构&#xff0c;详细说明为完成项目所必须完成的各项工作&#xff0c;也可以向高层管理者和客户报告项目完成的…

【Redis】高可用架构之Cluster集群和分⽚

高可用架构之Cluster集群和分⽚1. 前言2. Cluster 模式介绍2.1 什么是Cluster模式&#xff1f;2.2 为什么需要Cluster模式&#xff1f;2.2.1 垂直拓展&#xff08;scale up&#xff09;和水平拓展&#xff08;scale out&#xff09;2.2.2 Redis Cluster 提供的好处2.2.3 Redis …

学术期刊《广西物理》简介及投稿要求

学术期刊《广西物理》简介及投稿要求 《广西物理》&#xff08;季刊&#xff09;创刊于1980年&#xff0c;是由广西师范大学&#xff1b;广西物理学会主办的物理杂志。本刊报道与物理有关的基础研究、应用研究以及与此有关的交叉学科研究领域的最新重要研究成果和发展趋势&…

编码与加密基础笔记

文章目录&#x1f449;1、ASCII 编码&#x1f449;2、了解Base64&#x1f449;3、MD5消息摘要算法&#x1f449;4、对称加密与 AES&#x1f449;5、非对称加密与 RSA参考书籍《Python 3 反爬虫原理与绕过实战》&#x1f449;1、ASCII 编码 ASCII编码实际上约定了字符串和二进制…