【MySQL】——数据库设计概述与需求分析

💻博主现有专栏:

                C51单片机(STC89C516),c语言,c++,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux,基于HTML5的网页设计及应用,Rust(官方文档重点总结),jQuery,前端vue.js,Javaweb开发,Python机器学习等
🥏主页链接:

                Y小夜-CSDN博客

目录

🎯数据库设计概述

🎃数据库设计的特点

🎃数据库设计方法

🎃数据库设计的基本步骤

🎯需求分析

🎃需求分析的任务

🎃需求分析的方法

🎃数据字典


🎯数据库设计概述

  • 在数据库系统中,最终用户通过数据库应用系统使用数据库。我们把使用数据库的各类信息系统称为数据库应用系统,比如图书借阅、人事管理等各类管理信息系统、办公自动化系统、决策支持系统等。
  • 广义地讲,是数据库及其应用系统的设计,即设计整个数据库应用系统。
  • 狭义地讲,是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分。

 什么是数据库设计?

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

  • 信息管理要求:在数据库中应该存储和管理哪些数据对象 。
  • 数据操作要求:对数据对象需要进行哪些操作,如查询、增、删、改、统计等操作。

数据库设计

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

高效率的运行环境

  • 数据库数据的存取效率高
  • 数据库存储空间的利用率高
  • 数据库系统运行管理的效率高

🎃数据库设计的特点

 数据库建设的基本规律

三分技术,七分管理,十二分基础数据

管理

  • 数据库建设项目管理
  • 企业(即应用部门)的业务管理

基础数据

  •   数据的收集、整理、组织和不断更新

结构(数据)设计和行为(处理)设计相结合

  • 将数据库结构设计和数据处理设计密切结合

结构(数据)和行为(处理)分离的设计

传统的软件工程:重 行为设计

  • 忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策

早期的数据库设计:重 结构设计

  • 致力于数据模型和数据库建模方法研究,忽视了行为设计对结构设计的影响

🎃数据库设计方法

大型数据库设计是涉及多学科的综合性技术,又是一项庞大的工程项目。

手工试凑法

  • 设计质量与设计人员的经验和水平有直接关系
  • 缺乏科学理论和工程方法的支持,工程的质量难以保证
  • 数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价

规范设计法

典型方法

  • 新奥尔良(New Orleans)方法
    • 将数据库设计分为若干阶段和步骤
    • 采用辅助手段实现每一过程
    • 按设计规程用工程化方法设计数据库
  • 基于E-R模型的数据库设计方法
    • 概念设计阶段广泛采用
  • 3NF(第三范式)的设计方法
    • 逻辑阶段可采用的有效方法

规范设计法

典型方法

  • ODL(Object Definition Language)方法
    • 面向对象的数据库设计方法
  • UML(Unified Modeling Language)方法
    • 面向对象的建模方法

🎃数据库设计的基本步骤

数据库设计分6个阶段

  1. 需求分析
  2. 概念结构设计
  3. 逻辑结构设计
  4. 物理结构设计
  5. 数据库实施
  6. 数据库运行和维护

        设计一个完善的数据库应用系统 往往是上述6个阶段的不断反复 这个设计步骤既是数据库设计的过程,也包括了数据库应用系统的设计过程

🎯需求分析

🎃需求分析的任务

  • 充分了解原系统(手工系统或计算机系统)
  • 工作概况 详细调查现实世界要处理的对象(组织、部门、企业等)
  • 明确用户的各种需求

调查的重点是“数据”和“处理”,获得用户对数据库的要求

  • (1)信息要求 用户需要从数据库中获得信息的内容与性质 由信息要求可以导出数据要求,即在数据库中需要存储哪些数据
  • (2)处理要求 用户要什么处理功能、对处理性能、处理方式、处理周期等的要求 (批处理 / 联机处理/ 发布处理/每月一次/…….)
  • (3)安全性与完整性要求

确定用户最终需求的难点

  • 用户缺少计算机知识,不能准确地表达自己的需求,他们所提出的需求往往不断地变化。
  • 设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求

解决方法

  • 设计人员必须不断深入地与用户进行交流,才能逐步确定用户的实际需求

🎃需求分析的方法

  • 需求分析的表达有结构化分析方法(SA方 法)、面向对象的分析方法(UML用例分析方法)、原型法(少量代价建快速原型)、动态分析法等。
  • 用自顶向下、逐层分解的方式分析系统,处理功能逐级分解,直到将系统工作过程表达清楚为止,称为结构化分析(SA)方法

🎃数据字典

什么是数据字典?

        数据字典是关于数据库中数据的描述,即元数据,不是数据本身

  • 数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善
  • 数据字典是进行详细的数据收集和数据分析所获得的主要结果

注意:和DBMS中数据字典的区别和联系

  • 数据字典的内容
    • 数据项
    • 数据结构
    • 数据流
    • 数据存储
    • 处理过程
  •  数据项是数据的最小组成单位
  •  若干个数据项可以组成一个数据结构
  •  数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容

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

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

相关文章

如何找出真正的交易信号?Anzo Capital昂首资本总结7个

匕首是一种新兴的价格走势形态,虽然不常见,但具有较高的统计可靠性。它通常预示着趋势的持续发展。该模式涉及到同时参考两个不同的时间周期进行交易,一个是短期,另一个是长期,比如一周时间框架与一天时间框架、一天时…

看完这篇抖音小店选品秘籍!难道还愁不会选品吗?

大家好,我是喷火龙。 做抖音小店,没有什么花里胡哨的东西,核心就是我们的产品,把大部分精力用到选品上肯定是没错的。 选品之前一定要做好店铺的定位,确定好自己的主营类目,主营类目至少要占店铺产品的70…

Android--AOSP中使用AlertDialog使用踩坑记录

在App中使用AlertDialog有很多帖子说明,这里不在赘述。主要记录修改AOSP中遇到的使用AlertDialog踩坑记录。 在fwk中的service或者是CarService中要使用AlertDialog,仅添加AlertDialog是不够的,会直接crash。 android.view.WindowManager$B…

J.搬砖【蓝桥杯】/01背包+贪心

搬砖 01背包贪心 思路&#xff1a;要让重量更小的在更前面&#xff0c;价值更大的在更后面&#xff0c;vi−wj>vj−wi viwi>vjwj 第 i 个箱子放在第 j 个箱子下面就显然更优。所以进行排序再用01背包即可。 #include<iostream> #include<algorithm> #defi…

go语言的使用方法

一.go语言的介绍 1.简介 2.应用领域 3.使用go语言的公司 4.go语言开发工具介绍 5.go语言开发环境搭建 【1】搭建Go开发环境-安装和配置SDK 基本介绍: 1).SDK的全称(Software Development Kit软件开发工具包&#xff09;2).SDK是提供给开发人员使用的&#xff0c;其中包含了…

SAP 消息号VF501科目确定期间出错

在销售开票VF02的时候&#xff0c;经常出现报错&#xff1a;“科目确定期间出错”&#xff0c;这个报错&#xff0c;目前检查步骤&#xff1a; 1、BP客户主数据&#xff0c;销售代码层数据&#xff08;销售与分销&#xff09;-开票-会计-客户科目分配组&#xff0c;要与销售订…

【UML用户指南】-02-UML的14种图

1、结构图 1、类图&#xff08;class diagram&#xff09; 展现了一组类、接口、协作和它们之间的关系。 在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。 包含主动类的类图给出系统的静态进程视图。构件图是类图的变体。 2、对象图&a…

【ONE·Git || 基本用法入门】

总言 主要内容&#xff1a;主要介绍Git中常用的指令。   PS&#xff1a;多人协作与企业开发模型使用&#xff0c;此部分内容不作博文总结。             文章目录 总言1、初识Git1.1、版本控制器1.2、git安装 2、基本操作2.1、Git本地仓库2.1.1、创建Git本地仓库&…

React Native 之 ToastAndroid(提示语)(二十一)

ToastAndroid 是 React Native 提供的一个特定于 Android 平台的 API&#xff0c;用于显示简单的消息提示&#xff08;Toast&#xff09;。 两个方法&#xff1a; 1. ToastAndroid.show(message, duration, gravity) message: 要显示的文本消息。duration: Toast 的持续时间&…

YOLO-10更快、更强

YOLO-10简介 主要贡献&#xff1a; 无NMS的一致双分配 YOLOv10提出了一种通过双标签分配而不用非极大值抑制NMS的策略。这种方法结合了一对多和一对一分配策略的优势&#xff0c;提高了效率并保持了性能。 高效的网络设计 轻量化分类头&#xff1a;在不显著影响性能的情况下&a…

Kvantum安装和使用-MD中文

Kvantum 安装指南 先决条件 在编译Kvantum之前&#xff0c;您将需要&#xff1a; GCC X11 Qt6 请参阅发行版&#xff0c;了解特定发行版所需的软件包和直接安装方法。 发行版 基于Arch的发行版 如果您想从源代码编译Kvantum&#xff0c;请安装以下软件包&#xff1a; gcc&am…

LPDDR6带宽预计将翻倍增长:应对低功耗挑战与AI时代能源需求激增

在当前科技发展的背景下&#xff0c;低能耗问题成为了业界关注的焦点。国际能源署(IEA)近期报告显示&#xff0c;日常的数字活动对电力消耗产生显著影响——每次Google搜索平均消耗0.3瓦时&#xff08;Wh&#xff09;&#xff0c;而向OpenAI的ChatGPT提出的每一次请求则消耗2.9…

PFC基础知识1

不同负载 1.当负载是电阻时&#xff0c; 阻值固定&#xff0c;阻性负载&#xff0c;相位相同&#xff0c;并且线性度非常好 &#xff0c;输出的电流全部被利用 2.当负载有电感时&#xff0c;相位有偏差&#xff0c;电流滞后于电压90。电源需要输出电流&#xff0c;但是电感并未…

[每日一练]查询出现过一次的邮箱

该题目来源于力扣&#xff1a; 182. 查找重复的电子邮箱 - 力扣&#xff08;LeetCode&#xff09; 题目要求&#xff1a; 表: Person ---------------------- | Column Name | Type | ---------------------- | id | int | | email | varchar | ----…

开源模型应用落地-语音转文本-whisper模型-AIGC应用探索(一)

一、前言 语音转文本技术具有重要价值。它能提高信息记录和处理的效率,使人们可以快速将语音内容转换为可编辑、可存储的文本形式,方便后续查阅和分析。在教育领域,可帮助学生更好地记录课堂重点;在办公场景中,能简化会议记录工作。同时,该技术也为残障人士提供了便利,让…

【Linux进程篇】Linux进程管理——进程创建与终止

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; 目录 进程创建 fork函数初识 写时拷贝 fork常规用法 fork调用失败的原因 进程终止 进程退出场景 _exit函数 exit函数 return退出 进程创建 fork函数初识 在linux中fork函数时非常重要的函数&#xff0c;它从已…

Docker安装nginx详细教程

详细教程如下&#xff1a; 1. 拉取Nginx镜像 docker pull nginx默认拉最新的&#xff08;也可以根据自己的需求指定版本&#xff09; 2. 运行Nginx容器 docker run --name my-nginx -d -p 80:80 nginx--name my-nginx&#xff1a;容器名称&#xff0c;便于管理。-d&#xf…

C# 元组 Tuple

C# 元组 Tuple 元组创建元组访问元组元素命名元组元素元组的类型使用元组作为方法返回值 解构解构元组的基本用法解构部分元组解构方法 元组 在C#中&#xff0c;元组&#xff08;Tuple&#xff09;是一种数据结构&#xff0c;它允许你将多个值组合成一个单一的对象。 元组在处…

【Python】解决Python报错:TypeError: can only concatenate str (not “int“) to str

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

数学建模--LaTex插入表格详细介绍

目录 1.插入普通的边线表格 3.三线表的插入和空格说明 3.基于复杂情况下表格的插入 1.插入普通的边线表格 &#xff08;1&#xff09;像这个右边的生成的这个比较普通的表格&#xff0c;我们是使用下面的代码实现的&#xff1a; &#xff08;2&#xff09;和插入一个一个图片…