码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据库随堂笔记(6)ᝰ数据库设计


    >>>数据库设计(需求,设计,运行,维护)

    必须适当开拓难题,否则学来学去都是自己会的东西

    目录

    1.数据库设计概述

    2.需求分析

    3.概念结构设计

    4.逻辑结构设计

    5.物理结构设计

    6.数据库的实施和维护 

    1.数据库设计概述

    (1)数据库设计的特点

    (2)数据库设计方法

    (3)数据库设计的基本步骤

    (4)数据库设计过程中的各级模式

    2.需求分析

    系统设计失败的原因,十分之六是因为需求分析出现错误

    (1)需求分析的任务

    (2)需求分析的方法

    (3)数据字典

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

    数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容

    a.数据项

    不可再分的数据单位

    b.数据结构

    反映数据之间的组合关系,可由若干数据项或若干数据结构甚至是数据项和数据结构的混合组成

    c.数据流

    数据结构在系统内传输的路径

    d.数据存储

    数据结构停留或保存的地方,数据流的来源和去向之一

    e.处理过程

    了解软件开发的基础——需求工程 

    软件工程——需求工程概述icon-default.png?t=M85Bhttps://blog.csdn.net/qq_16488989/article/details/108775750?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-108775750-blog-96754679.pc_relevant_3mothn_strategy_recovery&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-108775750-blog-96754679.pc_relevant_3mothn_strategy_recovery&utm_relevant_index=6UML 建模步骤 170+收藏icon-default.png?t=M85Bhttps://blog.csdn.net/tu_wer/article/details/120486582?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166797997516800180672343%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166797997516800180672343&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-120486582-null-null.142^v63^control,201^v3^control_1,213^v2^t3_control2&utm_term=UML%E5%BB%BA%E6%A8%A1&spm=1018.2226.3001.4187【UML】UML建模 30+收藏icon-default.png?t=M85Bhttps://blog.csdn.net/heiren_a/article/details/123237482?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166797997516800180672343%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166797997516800180672343&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-123237482-null-null.142^v63^control,201^v3^control_1,213^v2^t3_control2&utm_term=UML%E5%BB%BA%E6%A8%A1&spm=1018.2226.3001.4187

    3.概念结构设计

    能一句话说清楚的就不要用两句,别为了增加论文篇幅作过多无谓的操作

    (1)概念模型

    概念模型是各种数据模型的共同基础

    主要特点:真实反映世界;易于理解;易于更改;易于向关系、网状、层次等各种数据模型转换

    (2)E-R模型

    a.实体之间的联系(1对1,1对多,多对多)

    不仅是两个实体型,两个以上实体型和单个实体型内均可以存在这3种实体联系

    b.E-R图

    实体型——矩形

    属性——椭圆形

    联系——菱形

    c.一个实例

    *(3)扩展的E-R模型 

    *(4)UML

    >>>[UML 扫盲]什么是UML?

    (5)概念结构设计

    a.实体与属性的划分原则

    作为属性,不需要具有需要描述的性质,必须是不可划分的数据项

    属性不能与其他实体具有联系

    b.E-R图的集成

    b(1).合并E-R图,生成初步E-R图

    合理消除各E-R图的冲突是合并E-R图的主要工作与关键所在

    主要由三种冲突:属性冲突、命名冲突、结构冲突

    b(2).消除不必要的冗余,设计基本E-R图

    注意:有些时候,冗余数据能更直观反映情况或提高效率,就保留该冗余

    4.逻辑结构设计

    将概念结构设计阶段设计好的基本E-R图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构

    (1)E-R图向关系模型的转换

    (2)数据模型的优化

    逻辑设计的结果并非唯一

    并非规范化程度越高的关系就越优

    (3)设计用户子模式

    5.物理结构设计

    为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程

    通常步骤:确定数据库的物理结构、对物理结构进行评价

    (1)数据库物理设计的内容和方法

    主要包括关系模式选择存取方法、设计关系、索引等数据库文件的物理存储结构

    (2)关系模式存取方法选择

    常用的存取方法为:索引方法和聚簇方法

    a.B+树 索引存取方法的选择

    b.hash 索引存取方法的选择

    c.聚簇方法的选择

    (3)确定数据库的存储结构

    a.确定数据的存放位置

    b.确定系统的配置

    (4)评价物理结构

    6.数据库的实施和维护 

    (1)数据的载入和应用程序的调试

    数据库应用程序的设计应该与数据库设计同时进行

    (2)数据库的试运行

    先输入小批量数据做调试用,待试运行基本合格后再大批量输入数据,逐步增加数据量,逐步完成运行评价。此外,做好数据库的转储和恢复工作来应对误操作

    (3)数据库的运行和维护

    a.数据库的转储

    b.数据库的安全性、完整性控制

    c.数据库性能的监督、分析和改造

    d.数据库的重组织与重构造

    概念结构的设计和逻辑结构的设计是本章的重点

    题外话

    面向过程 和 面向对象

    面向过程——函数,以功能为单位,主要见于C

    面向对象——类,任何事物都可以看成对象,主要见于C++、Java、Python

  • 相关阅读:
    【FreeRTOS(八)】二值信号量
    仙人掌之歌——投石问路(3)
    Springboot 订餐管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目
    [附源码]Java计算机毕业设计SSM二手交易平台
    【C/PTA】数组进阶练习(三)
    Android-Firebase合规问题解决方案-详细攻略,debug模式破解难题
    【Python 实战基础】Pandas中Series的创建和数据类型转换
    “react“: “^16.14.0“,打开弹窗数据发生变化
    Java集合
    一套基于 SpringBoot 和 Vue 的企业级中后台 java 开源项目
  • 原文地址:https://blog.csdn.net/m0_61396811/article/details/127692705
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号