数据库讲解---(数据库设计)

目录

一.数据库设计概述

1.1数据库设计的内容

1.1.1数据库的结构设计

1.1.2数据库的行为设计

1.2数据库设计方法

1.2.1直观设计法

1.2.2规范设计法

1.2.3计算机辅助设计法

1.2.4自动化设计法

1.3数据库设计的基本步骤

1.3.1需求分析

1.3.2概念结构设计

1.3.3逻辑结构设计

1.3.4物理结构设计

1.3.5数据库实施

1.3.6数据库运行和维护

二.需求分析

2.1信息要求

2.2处理要求

2.3安全性与完整性要求

2.4需求分析的方法和过程【需了解】

2.5需求分析常用工具

2.5.1数据流图

2.5.2数据字典【重要】

三.概念结构设计

3.1概念结构设计方法

3.1.1集中式模式设计法

3.1.2视图集成法

3.1.3混合方法

3.1.4由内向外法

四.逻辑结构设计

4.1逻辑结构设计的任务和步骤

4.2E-R图向关系模式转换的原则【重要】

4.2.1实体的转换

4.2.2联系的转换

​编辑

联系为1:1时:

联系为1:n时

联系为m:n时

4.3逻辑结构的优化

4.3.1确定范式级别

4.3.2实施规范化处理

4.4设计用户外模式

五.物理结构设计

5.1确定数据库的物理结构

5.1.1确定数据库的的存储结构

聚簇:

索引:

5.1.2确定访问方法

5.1.3确定数据的存放位置

5.1.4确定系统配置

六.数据库实施

6.1建立实际数据库结构

6.2组织数据入库

6.3编制与调试应用程序(了解即可)

6.4数据库试运行

七.数据库的运行和维护

7.1数据库的转储和恢复

7.2数据库的安全性、完整性检测

7.3数据库性能的监督、分析和改进

7.4数据库的重组织和重构造

一.数据库设计概述

1.1数据库设计的内容

1.1.1数据库的结构设计

数据库的结构设计是根据给定的应用环境,进行数据库的模式或子模式的设计。

1.1.2数据库的行为设计

数据库的行为设计是指确定数据库用户的行为和动作。

1.2数据库设计方法

1.2.1直观设计法

直观设计法也叫手工试凑法,是最早使用的数据库设计方法

1.2.2规范设计法

规范设计法是将数据库设计分为若干阶段,明确规定各阶段的任务,采用自顶向下、分层实现、逐步求精的设计原则。

常用的规范设计法有:

  • 基于E-R模型的数据库设计方法
  • 基于3NF的数据库设计方法
  • 基于视图的数据库设计方法

1.2.3计算机辅助设计法

计算机辅助设计法是在数据库设计的某些过程中模拟某一规范化设计的方法。

1.2.4自动化设计法

自动化设计法缩短数据库设计周期加快数据库设计速度的一种方法。

1.3数据库设计的基本步骤

数据库设计分为:“需求分析”、“概念结构设计”、“逻辑结构设计”、“物理结构设计”、“数据库实施”、“运行维护”六个阶段。

1.3.1需求分析

需求分析是对具体应用环境的业务流程和用户提出的各种要求加以调查研究和分析,并和用户共同对各种原始数据加以综合、整理的过程,是形成最终设计目标首要阶段,也是最困难的阶段。

1.3.2概念结构设计

概念结构设计是对用户信息需求所进行的进一步抽象和归纳,结果为数据库概念结构,通常用E-R模型来表示。

数据库的概念结构与DBMS和相关软硬件无关。

1.3.3逻辑结构设计

逻辑结构设计的结果是得到一个与DBMS无关的概念模式,而逻辑结构设计就是将概念模式转换为与选用的具体DBMS所支持的数据模型相符合的逻辑结构。

1.3.4物理结构设计

数据库物理设计是将逻辑结构设计阶段所产生的逻辑数据模型,转换为某一计算机系统所支持的数据库物理结构的实现过程。

数据库的物理结构主要指数据库存储记录格式存储记录安排存储方法,完全依赖于给定的硬件环境、具体的DBMS和操作系统。

1.3.5数据库实施

数据库实施阶段,即数据库调试、试运行阶段·

1.3.6数据库运行和维护

数据库实施阶段结束后,标志着数据库系统投入正常运行开始

数据库设计是一种动态不断完善的过程,运行和维护阶段是保证数据库日常活动的一个重要阶段

二.需求分析

需求分析的重点是:“调查、收集与分析用户在数据库管理中的信息要求、处理要求、安全性与完整性要求”。

2.1信息要求

信息要求是指用户需要从数据库中获得信息的内容与性质。

2.2处理要求

处理要求是指用户要求完成什么处理功能。

2.3安全性与完整性要求

确定用户的最终需求是一件很困难的事情,因此设计人员必须与用户不断深入地进行交流,才能逐步确定用户的实际需求。

2.4需求分析的方法和过程【需了解

需求分析常用的方法五种:“跟班作业”、“开调查会”、“请专人介绍和询问”、“设计调查请用户填写”、“查阅记录”。

需求分析过程一般如下:

  1. 分析用户活动,产生业务流程图
  2. 确定系统范围,产生系统范围图
  3. 分析用户活动所涉及的数据,产生数据流图
  4. 分析系统数据,产生数据字典
  5. 功能分析

2.5需求分析常用工具

2.5.1数据流图

数据流图(Data Flow Diagram,DFD)是结构化分析方法中用于表示系统逻辑模型的一种工具,以图形的方式描绘在系统中流动和处理的过程。

数据流图是一种功能模型

其中,DFD四个要素组成(需了解):

2.5.2数据字典【重要

数据字典(Data Dictionary,DD)是将数据流程图中各个要素的具体内容和特征,以特定格式记录下来,所形成的文档

它包括:“数据项”、“数据结构”、“数据流”、“加工”、“文件”、“外部实体”。

  • 数据项:数据项是不可再分的数据单位
  • 数据结构:数据结构反映了数据之间的组合关系,一个数据结构可以用若干个数据项组成,也可以由若干个数据结构组成
  • 数据流:数据流是数据结构在系统内传输的路径
  • 数据存储:数据存储是数据结构停留或保存的地方
  • 处理过程:数据字典中只需要描述处理过程的说明性信息

ps:“数据字典是关于数据库中数据的描述,即原数据,而不是数据本身”。 

三.概念结构设计

概念模型使用接近计算机存储的方式表示数据,但是又不涉及具体的DBMS

概念模型是对现实世界的一种抽象。

3.1概念结构设计方法

概念结构设计阶段,通常使用E-R模型图作为概念设计的描述工具进行设计。

3.1.1集中式模式设计法

集中式模式设计法即首先定义全局概念结构的框架,然后逐步细化

3.1.2视图集成法

各部分的需求说明为基础,分别设计各自的局部模式。

3.1.3混合方法

混合方法将“集中式模式设计法”和“视图集成法”结合,以骨架集成。

3.1.4由内向外法

首先定义最重要的核心概念结构,然后向外扩充,考虑已存在概念附近的新概念使得建模过程向外扩展。

四.逻辑结构设计

4.1逻辑结构设计的任务和步骤

逻辑结构设计的任务和步骤如下:

  • 将E-R模型转换为等价的关系模式
  • 按需要对关系模式进行规范化
  • 对规范化后的模式进行评价
  • 根据局部应用的需要,设计用户外模式

4.2E-R图向关系模式转换的原则【重要

将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转换为关系模式。

4.2.1实体的转换

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

4.2.2联系的转换

一个联系转换为一个关系模式,与联系相连的各实体的码以及联系的属性转换为关系的属性,该关系的码有以下几种情况:

  • 若联系为1:1,则每个实体的码均为该关系的候选码。
  • 若联系为1:n,则关系的码为n端实体的码。
  • 若联系为m:n,则关系的码为诸实体码的组合。

 下面对“1:1”、“1:n”、“m:n”三种关系各做一个例子:

示例图

联系为1:1时:
  • 第一步,将联系转换为独立的关系模式

因为联系为1:1时,每个实体的码均是该关系的候选码,因此“指定”联系转换为关系模式时,形式为:

1:1时,任意一个实体的码都可以做转换后关系模式的码,这里的“培养方案编号”也可以做主码。

转换后关系模式属性包含“各实体的码”、“联系的属性”,在“指定”联系中,联系本身并没有属性

  • 第二步,与关系模式合并

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

用上面的例子“指定”联系,与“专业”或者“培养方案”任一方合并,可得下面两种情况之一

联系为1:n时
  • 第一步,转换为独立的关系模式

与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,关系的码为n端实体的码

例如在图5-14中,联系“选修”转换为独立的关系模式时,为:

  • 第二步,与关系模式合并 

 只能与n端对应的关系模式合并,并在关系中加入n端关系模式的属性,且外码为1端关系的主码

联系为m:n时

m:n联系的转换方法只有一种,就是转化为一个独立的关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性

关系的码为各实体码的组合

例如,在5-16中学生和课程之间的“选课”联系,可以转化为:

4.3逻辑结构的优化

逻辑结构的优化分为两个步骤:“确定范式的级别”、“实施规范化处理”。

4.3.1确定范式级别

考察关系模式的函数依赖关系,确定范式等级。

4.3.2实施规范化处理

确定范式级别后,根据应用需求,确定对于这些模式是否进行合并或分解。

4.4设计用户外模式

定义用户外模式时,应着重注意

  • 使用更符合用户习惯的别名
  • 对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。
  • 简化用户对系统的使用。

五.物理结构设计

物理设计可以分为两步

  1. 确定物理结构,在关系数据库中主要指存取方法和存储结构。
  2. 对物理结构进行评价,评价的重点是时间和空间效率。

5.1确定数据库的物理结构

5.1.1确定数据库的的存储结构

对于数据库的存储结构,一般DBMS提供两种选择:“聚簇”和“索引”。

聚簇:

聚簇就是为了提高查询速度,把一个或一组属性上具有相同值的元组集中地存放在一个物理块或者相邻的物理块中。

其中,这个(这组)属性称为“聚簇码”。

聚簇两个作用

  • 节省存储空间
  • 提高按聚簇码查询的效率
索引:

在主键上建立唯一索引,可以提高查询速度,还可以确保数据完整性。

关系中数据越多,索引的优越性也越明显

5.1.2确定访问方法

访问方法是为了存储在物理设备上(辅存)上的数据提供存储检索能力的方法。

一个访问方法包括:“存储结构”和“检索结构”两个部分。

  • 存储结构:限定了可能访问的路径和存储记录。
  • 检索结构:定义了每个应用的访问路径,但不涉及存储结构的设计和设备分配。

5.1.3确定数据的存放位置

根据应用情况将数据的异变部分稳定部分经常存取部分存取频率较低部分分开存放。

5.1.4确定系统配置

DBMS产品一般都提供了一些系统配置变量存储分配参数,系统为这些变量设定了初始值,在使用时,需要我们根据实际需要,修改系统配置变量。

六.数据库实施

数据库实施主要包括四部分:“建立实际数据库结构”、“组织数据入库”、“编制与调试应用程序”、“数据库试运行”。

6.1建立实际数据库结构

用DBMS提供的数据定义语言(DDL)严格描述数据库结构,例如用SQL语句定义所需基本表等。

6.2组织数据入库

装入数据又称为“数据库加载”,是数据库实施阶段的主要工作

如果使用人工方法完成,一般有四个步骤

  1. 筛选数据
  2. 转换数据格式
  3. 输入数据
  4. 校验数据

 通常对于数据量非常大的数据,我们需要编写程序来实现数据入库

6.3编制与调试应用程序(了解即可)

主要的数据库连接方式有以下几种:

  1. ODBC数据库接口
  2. OLE DB数据库接口
  3. ADO数据库接口
  4. ADO.NET数据库接口
  5. JDBC数据库接口

6.4数据库试运行

应用程序编写完成,并有一小部分数据装入后,应该在各种应用上分别试验对数据库的操作情况,这就是数据库的“试运行阶段”,或者称为“联合调试阶段”。

在这一阶段主要完成两方面工作:

  1. 功能测试,实际运行应用程序,测试他们能否完成各种预定的功能。
  2. 性能测试,测量系统的性能指标,分析系统是否符合射击目标。

七.数据库的运行和维护

数据库运行阶段,对数据库的维护主要用DBA完成,它包括:“数据库的转储和恢复”、“数据库的安全性、完整性检测”、“数据库性能的监督、分析和改进”、“数据库的重组织和重构造”四部分。

7.1数据库的转储和恢复

定期对数据库和日志文件进行备份,以保证一旦发生故障,能利用数据库备份以及日志文件恢复数据库。

7.2数据库的安全性、完整性检测

DBA需要根据用户的实际需要授予不同的操作权限。

DBA要根据环境的变化,保证数据库的数据安全。

7.3数据库性能的监督、分析和改进

DBA需要利用监测系统性能参数的工具调整某些参数来进一步改进数据库的性能。

7.4数据库的重组织和重构造

数据库运行一段时间后,数据库的物理存储结构或者物理特性可能会收到破坏,因此需要对数据库进行重新组织,即重新安排数据的存储位置、回收垃圾等。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

丹尼尔·T·琼斯:精益生产到底是什么?

本文摘要自《精益思想》、《改变世界的机器》作者之一丹尼尔T琼斯的文章。丹尼尔T琼斯是一位学者、英国作家和研究员。他曾多次获得瑞士山吉奥卓越运营奖研究与专业出版类别的奖项,也包括了国际精益六西格玛研究所(ILSSI)[1]的"精益思想…

CentOS Linux 7系统中离线安装MySQL5.7步骤

预计数据文件存储目录为:/opt/mysql/data 1、文件下载: 安装文件下载链接:https://downloads.mysql.com/archives/community/ 2、检查当前系统是否安装过MySQL [rootcnic51 mysql]# rpm -qa|grep mariadb mariadb-libs-5.5.68-1.el7.x86_6…

Java中的运算符及其示例

Java中的运算符及其示例 运算符是指示编译器执行特定操作的符号。例如,“”运算符指示编译器执行加法,“>”运算符指示编译执行比较,“”用于赋值等等。在本指南中,我们将借助示例讨论java中的操作。 运算符和操作数&#…

一文读懂什么是SaaS产品运营?如何做好SaaS产品运营?

在当今数字化时代,SaaS(Software-as-a-Service,软件即服务)产品已成为企业运营不可或缺的一部分。本文将结合具体案例,深入解析SaaS产品运营的定义与策略。 一、什么是SaaS产品运营? SaaS产品运营是指通过…

由于“xinput1_3.dll缺失“而导致的错误有哪些解决办?分享几种修复xinput1_3.dll丢失的方法

当您尝试运行某些游戏或程序时,可能会遇到由于"xinput1_3.dll缺失"而导致的错误。这个DLL文件是MicrosoftDirectX的一部分,用于处理游戏中的输入设备,如操纵杆和游戏手柄。下面我们将探讨为何电脑会缺少xinput1_3.dll文件&#xff…

Spring系统学习 - FactoryBean和基于XML的自动装配

Factory Bean Spring的FactoryBean是一个特殊的Bean,用于创建其他Bean实例。FactoryBean接口定义了一个工厂Bean,该Bean可以用来生成其他Bean的实例。通过实现FactoryBean接口,开发人员可以自定义Bean的创建逻辑,实现更灵活的Bea…

软硬件节水“组合拳”,助力智慧灌区信息化建设!

水资源短缺已成为全球共同面临的挑战,尤其在农业灌溉领域,其影响尤为显著。农业作为水资源消耗的主要行业之一,在日益严峻的水资源形势下,构建节水型灌区的紧迫性日益凸显。 节水型灌区的建设,旨在通过优化灌溉方式、减…

【C++ | 移动构造函数】C++11的 移动构造函数 详解及例子代码

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰:2024-06-12 2…

「Python-docx 专栏」docx 获取页面大小、设置页面大小(纸张大小)

本文目录 前言一、docx纸张大小介绍1、document.xml① 关于 document.xml 的一些知识点② 纸张大小在哪里③ 纸张大小都有啥④ EMU对应的尺寸列表二、获取docx纸张大小1、完整代码2、运行效果图三、python为docx设置纸张大小1、完整代码2、效果图前言 今天的这边文章,我们来说…

Java多线程基础知识-2

线程的3个方法: Thread.sleep():当前线程睡眠多少毫秒,让给其他线程去执行。 Thread.yield():当前线程退出一下,进入到等待队列,让其他线程执行,即让出线程一下。 Thread.join():…

LabVIEW_TDMS

1.TDMS设置属性 想给这里写属性怎么整 使用TDMS设置属性函数时,对组名称与通道名称不设置,即可达到上图中的样式。 PS:属性名称如果设置一样则最终生效的值为最后写入的值。如将属性2修改为属性1,则最终只有1个属性1&#xff0c…

Pikachu靶场--文件上传

参考借鉴 Pikachu靶场之文件上传漏洞详解_皮卡丘文件上传漏洞-CSDN博客 文件上传漏洞&#xff1a;pikachu靶场中的文件上传漏洞通关_pikachu文件上传通关-CSDN博客 client check 在桌面新建一个文件夹&#xff0c;准备一个hello.php文件&#xff0c;文件写入如下代码 <?p…

Safari浏览器下载文件时,文件名会URL encoded

问题&#xff1a;相同链接下载文件&#xff0c;safari文件名编码异常 解决&#xff1a;response.setHeader("Content-Disposition", "attachment;filename*utf-8" URLEncoder.encode(filename, "UTF-8")); 问题描述 谷歌下载&#xff08;正常&a…

用AI帮助设计师提升工作效率?

在创意设计的世界里&#xff0c;效率往往意味着灵感与时间的完美结合。设计师们时常面临各种挑战&#xff0c;如何在保证作品质量的同时&#xff0c;又能提升工作效率&#xff1f;这不仅是设计师们思考的问题&#xff0c;也是AI技术正在积极解决的问题。那么&#xff0c;用AI帮…

2024年6月11日树莓派正式上市!

​Raspberry Pi 已在伦敦证券交易所上市&#xff0c;股票代码为 Raspberry Pi Holdings plc。 这是 Raspberry Pi 的分水岭&#xff0c;也是发展新阶段的开始&#xff1a;进入公开市场将使树莓派能够更快地制造出更多我们喜爱的产品。Raspberry Pi 基金会在首次公开募股中筹得的…

网络文化经营许可证:互联网时代的护航之舵

文网文由中国文化和旅游部&#xff08;原文化部&#xff09;颁发&#xff0c;旨在对网络文化活动进行规范管理&#xff0c;确保文化内容的健康积极。通过对文化市场的严格监管&#xff0c;文网文有效杜绝了低俗、违法、侵权等不良现象的发生。网络文化市场的良性发展&#xff0…

第四届人工智能、机器人和通信国际会议(ICAIRC 2024)

第四届人工智能、机器人和通信国际会议&#xff08;ICAIRC 2024&#xff09; 2024 4th International Conference on Artificial Intelligence, Robotics, and Communication 2024年12月27-29日 | 中国厦门 重要信息 会议官网&#xff1a;www.icairc.net 录用通知时间&…

Lucene重要特性及应用案例

文章目录 Elasticsearch Python 示例Lucene Java 示例Elasticsearch Python 示例进阶&#xff1a;多字段搜索与排序Lucene Java 示例进阶&#xff1a;使用TermQuery进行精确匹配 Lucene底层存储结构&#xff1a; Lucene作为高性能的全文搜索引擎库&#xff0c;其底层存储结构设…

【C++】类和对象(三)构造与析构

文章目录 一、类的6个默认成员函数二、 构造函数干嘛的&#xff1f;语法定义特性综上总结什么是默认构造函数&#xff1f; 三、析构函数干嘛的 &#xff1f;语法定义析构顺序 一、类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。空类中并不是真的什么…

不懂索引,简历上都不敢写自己熟悉SQL优化

大家好&#xff0c;我是考哥。 今天给大家带来MySQL索引相关核心知识。对MySQL索引的理解甚至比你掌握SQL优化还重要&#xff0c;索引是优化SQL的前提和基础&#xff0c;我们一步步来先打好地基。 当MySQL表数据量不大时&#xff0c;缺少索引对查询性能的影响不会太大&#x…