数据库总结(七)

2023-11-07

数据库设计

7.1  数据库设计概述
(1)数据库设计
数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
信息管理要求:在数据库中应该存储和管理哪些数据对象 。
数据操作要求:对数据对象需要进行哪些操作,如查询、增、删、改、统计等操作。 
(2)数据库设计
数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境 。
高效率的运行环境
数据库数据的存取效率高
数据库存储空间的利用率高
数据库系统运行管理的效率高
7.1.1  数据库设计的特点

7.1.2  数据库设计方法
(1)大型数据库设计是涉及多学科的综合性技术,又是一项庞大的工程项目。
(2)它要求多方面的知识和技术。主要包括:
计算机的基础知识
软件工程的原理和方法
程序设计的方法和技巧
数据库的基本知识
数据库设计技术
应用领域的知识
(3)规范设计法
手工设计方法
基本思想
过程迭代和逐步求精
典型方法
新奥尔良(New Orleans)方法
基于E-R模型的数据库设计方法
3NF(第三范式)的设计方法
面向对象的数据库设计方法
统一建模语言(UML)方法
7.1.3  数据库设计的基本步骤
(1)数据库设计分6个阶段
需求分析
概念结构设计
逻辑结构设计
物理结构设计
数据库实施
数据库运行和维护 
(2)需求分析和概念设计独立于任何数据库管理系统 
(3)逻辑设计和物理设计与选用的数据库管理系统密切相关

7.1.4 数据库设计过程中的各级模式
数据库设计不同阶段形成的数据库各级模式

7.2  需求分析
7.2.1 需求分析的任务
1)详细调查现实世界要处理的对象(组织、部门、企业等)
2)充分了解原系统(手工系统或计算机系统)工作概况
3)明确用户的各种需求
4)在此基础上确定新系统的功能
5)新系统必须充分考虑今后可能的扩充和改变
6)调查的重点是“数据”和“处理”,获得用户对数据库的要求
(1)信息要求
用户需要从数据库中获得信息的内容与性质
由信息要求可以导出数据要求,即在数据库中需要存储哪些数据
(2)处理要求
用户要完成的处理功能
对处理性能的要求
(3)安全性与完整性要求
7)确定用户最终需求的难点
用户缺少计算机知识,不能准确地表达自己的需求,他们所提出的需求往往不断地变化。
设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求
8)解决方法
设计人员必须不断深入地与用户进行交流,才能逐步确定用户的实际需求
7.2.2  需求分析的方法
(1)分析方法
结构化分析方法(Structured Analysis,简称SA方法)
SA方法从最上层的系统组织机构入手
采用自顶向下、逐层分解的方式分析系统
(2)对用户需求进行分析与表达后,需求分析报告必须提交给用户,征得用户的认可

需求分析过程

7.2.3  数据字典
(1)数据字典是关于数据库中数据的描述,即元数据,不是数据本身
(2)数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善
(3)数据字典是进行详细的数据收集和数据分析所获得的主要结果
(4)数据字典的内容
数据项
数据结构
数据流
数据存储
处理过程
(5) 数据项是数据的最小组成单位
(6)若干个数据项可以组成一个数据结构
(7) 数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容
例:学生学籍管理子系统的数据字典。

    数据项,以“学号”为例:
    数据项: 学号
    含义说明:唯一标识每个学生
 别名:  学生编号
    类型:  字符型
    长度:  8
    取值范围:00000000至99999999
 取值含义:前两位标别该学生所在年级,
                      后六位按顺序编号
 与其他数据项的逻辑关系:
数据结构,以“学生”为例

    “学生”是该系统中的一个核心数据结构:
    数据结构: 学生
    含义说明: 是学籍管理子系统的主体数据结构,
                          定义了一个学生的有关信息
    组成:   学号,姓名,性别,年龄,所在系,年级
数据流,“体检结果”可如下描述:
    数据流:  体检结果
    说明:   学生参加体格检查的最终结果
    数据流来源:体检
    数据流去向:批准
    组成:   ……
 平均流量: ……
 高峰期流量:……
数据存储,“学生登记表”可如下描述:
    数据存储: 学生登记表
    说明:   记录学生的基本情况
 流入数据流:……
    流出数据流:……
    组成:   ……
    数据量:  每年8000张
    存取方式: 随机存取    
处理

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库总结(七) 的相关文章

  • Mac 安装/更换node版本命令(值得收藏)

    Mac 安装 更换node版本命令 收集node指令 方便查找 在mac终端里面输入如下指令 全局安装n模块 sudo npm install n g 更新npm到最新版本 sudo npm install npm latest g 安装当
  • c++学习之多态

    多态分为两类 1 静态多态 函数重载和运算符重载属于静态多态 复用函数名 2 动态多态 派生类和虚函数实现运行时多态 静态多态和动态多态的区别 1 静态多态的函数地址早绑定 编译阶段确定函数地址 2 动态多态的函数地址晚绑定 运行阶段确定函
  • Cygwin环境变量设置(转载)

    开始运行bash之前 应该设置一些环境变量 cygwin提供了一个 bat文件 里面已经设置好了最重要的环境变量 通过它来启动bash是最安全的办法 这个 bat文件安装在cygwin所在的根目录下 可以随意编辑该文件 1 CYGWIN变量
  • java+selenium+new——杀掉windows的浏览器进程

    package rjcs import java util List import org openqa selenium os WindowsUtils import org openqa selenium By import org o
  • Shell脚本入门 01:格式与基础使用

    文章目录 目的 脚本格式 脚本使用 exit 命令 read 命令 组命令 总结 目的 通常在终端中操作Linux都是一行一行输入命令进行的 每输入一行执行后根据结果再输入下一条命令 这种操作在简单使用或是在单次使用中没什么问题 但是如果需
  • C语言赋值被截断,c语言中赋值截断

    在c语言中进行变量赋值的时候 如果将字节多的数据类型赋给一个占字节少的变量类型 会发生 截断 发生这种情况的原因是 在赋值过程中只将占字节较长的变量的地位赋给占字节较少的变量 如 int i 345 char c i c i 在进行c i赋
  • 区块链全节点与区块链轻节点的区别

    随着技术的发展更新 区块链上的交易也将日益增多 这也间接造成了区块链开发的数据容量越来越大 因为区块链的冗余备份 要求所有节点都需保存全量的数据文件 在这个节点间 假设有用户用自己创建一个区块链节点来进行DApp的开发 可又不想参与共识 那
  • 多智能体强化学习与博弈论-博弈论基础4

    多智能体强化学习与博弈论 博弈论基础4 本篇文章主要讲的是贝叶斯博弈 Bayesian Games 也称作不完全信息博弈 和拍卖理论 不完全信息博弈在我们生活中经常出现 比如拍卖 在市场和别人讨价还价等等 贝叶斯博弈 首先举一个贝叶斯博弈的
  • Spring声明式事务@Transactional传播行为

    在 Transactional注解中 可以propagation属性用来配置事务传播 支持7种不同的传播机制 REQUIRED 业务方法需要在一个事务中运行 如果方法运行时 已处在一个事务中 那么就加入该事务 否则自己创建一个新的事务 这是
  • js键盘移动事件

    keyboard box move
  • 第十三届蓝桥杯省赛Java A 组 F 题、Python A 组 G 题、Python B 组 G题——全排列的价值 (AC)

    目录 1 全排列的价值 1 题目描述 2 输入格式 3 输出格式 4 样例输入1 5 样例输出2 6 样例输出1 7 样例输出2 8 样例解释 9 原题链接 2 解题思路 3 Ac code 1 全排列的价值 1 题目描述 对于一个排列 A
  • GitHub Desktop官方下载链接

    Github Desktop官方下载 点击直达 https desktop github com
  • 云服务器vCPU与物理CPU关系

    CPU个数 看得见摸得找的CPU个数 插在主版上面的 在linux系统下面的 proc cpuinfo文件的条目中 有多少个不同的physical id就有多少个物理CPU CPU物理核 一个CPU可能有多个核 在linux系统下面的 pr
  • Android应用程序资源的查找过程分析

    我们知道 在Android系统中 每一个应用程序一般都会配置很多资源 用来适配不同密度 大小和方向的屏幕 以及适配不同的国家 地区和语言等等 这些资源是在应用程序运行时自动根据设备的当前配置信息进行适配的 这也就是说 给定一个相同的资源ID
  • 京东面试:如何实现分布式锁?

    案例背景 分布式锁是解决协调分布式系统之间 同步访问共享资源的一种方式 详细来讲 在分布式环境下 多个系统在同时操作共享资源 如写数据 时 发起操作的系统通常会通过一种方式去协调其他系统 然后获取访问权限 得到访问权限后才可以写入数据 其他
  • Python使用win32com.client()和load_workbook()追加写入excle

    win32com client 和load workbook 均可以实现在原有excle文件中写入内容 在实际使用中win32com client 使用的方法类似VBA来模拟用户进行操作 运行速度不如load workbook 1 win3
  • 数字锁相环——环路滤波器参数设计

    太难了 好像懂了 又好像没懂 梳理一下 模拟环路滤波器分别有RC积分滤波器 无源比例积分滤波器 有源比例积分滤波器 上图为有源比例积分滤波器 固有频率 n omega n n 和阻尼系数
  • An Introduction to GCC

    对于GCC特别的不熟练 只会google baidu来使用 最近想看看到底gcc如何使用 于是找到了这本书 写的很浅显易懂 而且框架写明白了 真的不错 1 gcc c 是编译的命令 编译与链接是不同的 gcc 不加任何选项时就是编译 链接了
  • VirtualBox安装Ubuntu教程(超详细)

    下载ubuntu系统镜像 准备虚拟机挂载镜像用 选择新建 创建虚拟机 选择系统版本 因为要安装ubuntu 所以选择ubuntu 设置虚拟机ubuntu的内存 创建虚拟机的磁盘 分配20G空间 动态分配是逐渐占用物理机硬盘空间
  • 软件外包公司到底干啥的?要不要去外包公司?

    一 什么是外包 软件外包分为 人力外包和项目外包两个方向 1 劳务派遣 指的是把员工外派到对应的用工企业打 短工 比如很多工程师虽然签约了中软国际 东软 文思海辉 软通动力 润和等软件公司 但实际工作地点是在华为 接受华为员相关负责人的工作

随机推荐

  • Spring系列之缓存使用(@EnableCaching、@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig)

    本文主要详解spring中缓存的使用 背景 缓存大家都有了解过吧 主要用来提升系统查询速度 比如电商中商品详情信息 这些信息通常不会经常变动但是会高频访问 我们可以将这些信息从db中拿出来放在缓存中 比如redis中 本地内存中 当获取的时
  • Idea Maven项目打包工其他项目进行外部引用

    1 说明 我们在日常项目开发中经常会有许多公共的模块 如统一的父工程 工具类模块 中间实体类 DTO VO 如果我们针对每个子项目都单独的创建一套工具类 多个子项目会存在很多重复的工具类 中间实体类代码 因此 我们可以将这些公共模块统一打成
  • 关于STM32串口接收中断中只能接收一个字节()

    最近调试STM32的串口接收时发现例程中只能接收一个字节 例程如下 1 初始化串口1 2 void uart init u32 bound 3 GPIO端口设置 4 GPIO InitTypeDef GPIO InitStructure 5
  • BAPI_ACC_DOCUMENT_POST 简单理解过账BAPI使用,创建会计凭证

    业务场景 创建会计凭证BAPI 甲方是一家从事房屋租赁的公司 它的主营业务就是从各大租户手里收租子 月底了 小明发了工资美滋滋 钱到手没多久房东就催租子了 房租每月100 水电100 税费22 合计222 小明如约在手机APP上向房东支付了
  • Dynamics CRM 2015/2016/365 Web API:批处理任务

    Web API为我们提供的批量任务执行功能 我们可以在一个请求中混合多个不相干的创建查询请求 并且其还提供了事务功能 如果在事务中如果有脚本出现了错误 则其提供回滚功能 如下是批处理的请求报文 在报文里面我们需要设置批处理任务的编号 因为我
  • uniapp各种路由与页面跳转路径

    跳转有长度限制过长的时候用encodeURIComponent pages test test item encodeURIComponent JSON stringify item 1 保留当前B页面 跳转到应用内的某个页面 会计入栈中
  • 【毕业设计】深度学习行人重识别系统 - person reid

    文章目录 0 前言 1 技术背景 2 技术介绍 3 重识别技术实现 3 1 数据集 3 2 Person REID 3 2 1 算法原理 3 2 2 算法流程图 4 实现效果 5 部分代码 6 最后 0 前言 Hi 大家好 这里是丹成学长的
  • css强制换行和禁止换行

    强制换行 word break break all 只对英文起作用 以字母作为换行依据 word wrap break word 只对英文起作用 以单词作为换行依据 white space pre wrap 只对中文起作用 强制换行 禁止换
  • SpringBoot注解+AOP实现

    SpringBoot注解 AOP实现 Java Annotation注解的详解 Java注解是一种元数据 它可以用于在类 方法或其他代码结构中声明关于程序元素的信息和标记 在Java中 注解以 符号开头 在编译时或运行时由Java虚拟机 J
  • TEA、XTEA、XXTEA加密解密算法

    参考 TEA XTEA XXTEA加密解密算法 地址 https blog csdn net gsls200808 article details 48243019 其他相关博文链接 tea系列加密算法学习笔记 TEA和XxTEA跨平台加密
  • 【其他】资源整合

    偶然整理云盘 发现曾经收藏过一些比较不错的资源 正好分享一下 1 C语言教程 郝斌老师作为读书时候的启蒙老师 推荐一波 链接 https pan baidu com s 10NIZ3x4yPP4YP8bYmVENHg 密码 6jj1 2 U
  • Node的Buffer对象和fs模块

    一 Node的模块化管理 1 模块化 node应用程序由模块组成 遵循的是CommonJS模块规范 使用模块管理的好处是隔离模块的作用域 避免出现命名冲突 2 什么是CommonJS 是一套代码的规范 构建一个在浏览器之外的JavaScri
  • C/C++编程:仿函数

    概述 仿函数 也叫做函数对象 就实现意义而言 函数对象 比较贴切 一种具有函数特性的对象 就行为而言 仿函数 更贴切 这种东西可以像函数一样被调用 被调用者则以对象所定义的function call operator扮演函数的实质角色 仿函
  • &2 应用层 - 应用层协议原理

    应用层协议原理 一 网络应用程序体系结构 客户机 服务器 体系结构 纯P2P 体系结构 客户机 服务器与P2P的混合 二 进程通信 客户机和服务器进程 套接字 socket 进程与套接字关系 进程寻址 进程识别信息 两部分 用户代理 use
  • C++中的vector容器 模板类有两个参数

    std vector lt Eigen Matrix3d Eigen aligned allocatorEigen Matrix3d gt vector的声明如下 template
  • 记录用户上次看视频的进度,并且从记录的时间继续观看

    思路 因为视频多个 所以定义一个数组接收该用户已观看但是未观看完毕的字段 videoPlanArr 第一次进入获取本地储存的字段 videoPlanArr 如果没有获取到的话储存该视频id 有的话查询是否在数组中 未找到就把视频id添加进v
  • 数据库分库分表实战

    一 使用场景 当单个数据库实例达到瓶颈 例如连接数过多 处理能力受限 存储容量不足 磁盘IO达到瓶颈 内存不足 都需要对数据库进行分库分表 二 垂直切分 数据库表按列拆分 拆分后 数据库从一个数据列多的表变成了多个数据列少的表 数据垂直切分
  • win10系统 总是显示执行此操作需要Internet

    最近在重新设置电脑登录方式时 系统总是显示 执行此操作需要Internet 解决方法如下 首先右键开始图标 以管理员身份打开PowerShell 然后输入 netsh winsock reset 进行重置 winsock是Windows网络
  • 关于对数据结构的理解

    数据结构是计算机存储 组织数据的方式 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合 数据结构反映数据的内部构成 即数据由那部分构成 以什么方式构成 以及数据元素之间呈现的结构 数据结构就是研究数据的逻辑结构和物理结构以及它们之
  • 数据库总结(七)

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