【数据库系统概论】数据库设计--复习极简总结版

news/2025/1/7 23:25:11/

一、数据库设计概述

  1. 数据库应用系统:使用数据库的各类信息系统。
  2. 数据库设计(DBD)
    1. 广义:设计整个数据库应用系统。
    2. 狭义:设计数据库本身,即各级模式并建立数据库
  3. 数据库设计的一般定义:针对给定应用环境,设计优化的数据库逻辑模式和物理结构,建立数据库及其应用系统,满足用户需求。
  4. 数据库设计的两个特点
    1. 数据库建设的基本规律:三分技术、七分管理、十二分基础数据。
    2. 结构与行为设计相结合
  5. 数据库设计方法
    1. 手工试凑法:设计质量依赖人员经验水平,运行后可能出现问题,维护代价高。
    2. 规范设计法:如 New Orleans 方法、基于 E-R 模型等多种方法。
  6. 数据库设计的 6 个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。需求分析和概念设计独立于 DBMS,逻辑设计和物理设计与选用的 DBMS 密切相关。

二、需求分析

  1. 任务
    • 详细调查现实世界处理对象,了解原系统。
    • 明确用户各种需求,确定新系统功能,考虑扩充与改变。
  2. 重点:调查 “数据” 和 “处理”,获取用户对数据库的信息要求、处理要求、安全性与完整性要求。
  3. 难点:确定用户最终需求,因用户与设计人员知识差异,需深入交流。
  4. 方法
    • 调查需求:通过多种方式协助用户明确新系统要求,确定系统边界。
    • 达成共识:与用户沟通协商,确保需求理解一致。
    • 分析表达需求:采用数据流图和数据字典描述需求。
  5. 数据流图(DFD)
    • 基本成分:外部实体、处理、数据流、数据存储。
    • 画法:合理划分层次,确保数据守恒、正确输入输出,提高易读性,确定系统边界。
  6. 数据字典(DD)
    • 内容:数据项、数据结构、数据流、数据存储、处理过程。
    • 作用:提供数据库数据描述的集中管理,是元数据,在需求分析阶段建立并不断完善。

三、概念设计

  1. 概念结构设计的定义:将需求分析得到的用户需求抽象为概念模型的过程,是数据库设计关键,是设计人员与用户交流的语言。
  2. 概念模型的用途与要求
    • 用途:用于信息世界建模,是现实世界到机器世界的中间层次,是数据库设计有力工具。
    • 要求:有较强语义表达能力,方便表达应用语义知识,简单清晰,易于用户理解。
  3. 信息世界中的基本概念
    • 实体:客观存在并可相互区别的事物。
    • 属性:实体具有的特性。
    • :唯一标识实体的属性集。
    • :属性的取值范围。
    • 实体型:对同类实体的抽象刻画。
    • 实体集:同一类型实体的集合。
    • 联系:包括实体内部联系和实体之间联系。
  4. 两个实体型之间的联系
    • 一对一联系(1:1)
    • 一对多联系(1:n)
    • 多对多联系(m:n)
  5. 两个以上实体型之间的联系
    • 一对多联系
    • 一对一(多对多)联系
  6. 单个实体型内的联系
    • 一对多联系
    • 一对一联系
    • 多对多联系
  7. E-R 图
    • 表示方法:用矩形表示实体型,椭圆形表示属性,菱形表示联系,联系与实体间用无向边连接并标注联系类型。
    • 设计过程:确定实体类型、联系类型,组合成 E-R 图,确定属性和键。
  8. 概念结构设计的方法与步骤
    • 常用策略:自顶向下需求分析,自底向上设计概念结构。
    • 步骤
      • 抽象数据并设计局部视图:选择局部应用,设计分 E-R 图,遵循属性和联系的设计准则。
      • 集成局部视图,得到全局概念结构:合并分 E-R 图,消除冲突,修改和重构,消除冗余,验证整体概念结构。

四、逻辑设计

  1. 逻辑结构设计的任务:把概念结构设计阶段的基本 E-R 图转换为与 DBMS 支持的数据模型相符合的逻辑结构。
  2. E-R 图→关系模型的转换原则
    • 实体:一个实体型转换为一个关系模式,实体属性对应关系属性,实体码对应关系码。
    • 联系
      • 1:1 联系:可转换为独立关系模式或与任意一端关系模式合并。
      • 1:n 联系:可转换为独立关系模式或与 n 端关系模式合并。
      • m:n 联系:转换为一个关系模式,相连实体码组合为关系码。
  3. 数据模型的优化
    • 目的:提高数据库应用系统性能。
    • 方法:以规范化理论为指导,分析关系模式中存在的问题,如插入异常、删除异常、数据冗余、更新异常等,通过分解关系模式解决,遵循无损连接、保持依赖原则,一般分解到 3NF。
  4. 设计用户子模式
    • 注意问题:使用别名,针对不同用户定义 View 满足安全性要求,简化用户使用。

五、物理设计

  1. 数据库物理结构的定义数据库在物理设备上的存储结构与存取方法,依赖于选定的 DBMS。
  2. 物理设计的定义:为给定逻辑数据模型选取适合应用环境的物理结构的过程。
  3. 内容和方法
    • 存取方法
      • 索引方法:如 B + 树索引法,选择索引存取方法时需考虑查询条件、聚集函数参数、连接操作等因素,确定索引类型(唯一索引、主键索引、聚集索引等)。
      • 聚簇(Cluster)方法:将具有相同聚簇码值的元组集中存放,可提高查询速度,适用于单个关系或多个连接关系,但建立与维护开销大,聚簇码值应相对稳定。
    • 存储结构:确定数据存放位置,如将易变与稳定部分、存取频率不同部分分开存放,可利用多磁盘提高 I/O 效率。
    • 确定系统配置:根据 DBMS 提供的存储分配参数,如用户数、数据库对象数、内存分配参数等进行配置。

六、实施和维护

  1. 数据库实施阶段
    • 用 RDBMS 提供的语言和程序将设计结果转化为源代码,调试产生目标模式,组织数据入库。
    • 实验平台如 Microsoft SQL server 2018,实验内容包括建立数据库表、索引、视图、触发器、存储过程等。
  2. 数据库运行和维护阶段数据库投入运行后,需不断评价、调整与修改,包括性能监测、转储 / 恢复、数据库重组和重构等。

http://www.ppmy.cn/news/1561396.html

相关文章

Vue3钩子是什么?

钩子是 Vue.js 生命周期中的特定方法,它们在组件的不同阶段被调用。这些方法被称为“钩子”是因为它们“钩入”了 Vue.js 的生命周期,允许开发者在组件创建、更新、销毁等关键点执行自定义代码。 在 Vue.js 中,钩子方法包括: 创…

基于云架构Web端的工业MES系统:赋能制造业数字化变革

基于云架构Web端的工业MES系统:赋能制造业数字化变革 在当今数字化浪潮席卷全球的背景下,制造业作为国家经济发展的重要支柱产业,正面临着前所未有的机遇与挑战。市场需求的快速变化、客户个性化定制要求的日益提高以及全球竞争的愈发激烈,都促使制造企业必须寻求更加高效、智…

如何使用Spring Boot框架整合Redis:超详细案例教程

目录 # 为什么选择Spring Boot与Redis整合? 1. 更新 pom.xml 2. 配置application.yml 3. 创建 Redis 配置类 4. Redis 操作类 5. 创建控制器 6. 启动应用程序 7. 测试 # 为什么选择Spring Boot与Redis整合? 将Spring Boot与Redis整合可以充分利…

计算机网络(第8版)第3章课后习题--透明传输

【3-11】 试分别讨论以下各种情况在什么条件下是透明传输,在什么条件下不是透明传 输。(提示:请弄清什么是“透明传输”,然后考虑能否满足其条件。) (1)普通的电话通信。 (2)互联网提供的电子邮件服务。 解 答 : 透明传输是指在数据传输…

计算机网络--应用层--HTTP

计算机网络(第8版)谢希仁编著 P276笔记 超文本传输协议HTTP 定义了浏览器向万维网服务器请求资源的方式:(1)插入URL;(2)点击超链接 特点:(1)无…

【苏德矿高等数学】第1讲:有界函数、无界函数、复合函数

我还是喜欢高数,虽然已经是硕士在读了,但是我还是想再学一遍高数,学高数放松放松(汗流浃背了),笔记就是按视频顺序来的,随缘记录,其实我只是想用学习数学掩盖自己的一些情绪&#xf…

k8s基础(2)—Kubernetes-Namespace

一、Namespace概述 名字空间 在 Kubernetes 中,名字空间(Namespace) 提供一种机制,将同一集群中的资源划分为相互隔离的组。 同一名字空间内的资源名称要唯一,但跨名字空间时没有这个要求。 名字空间作用域仅针对带有…

【从零开始入门unity游戏开发之——C#篇44】C#补充知识——var隐式类型、初始化器、匿名类型

文章目录 一、var隐式类型1、var 的基本用法2、注意3、总结 二、初始化器1、类定义2、对象初始化器3、集合初始化3.1 数组初始化3.2 List<T> 初始化3.3 Dictionary<TKey, TValue> 初始化 三、匿名类型1、示例代码2、匿名类型的限制&#xff1a; 专栏推荐完结 一、v…