数据库系统概论第七章(数据库设计)知识点总结(1)—— 概述

news2024/11/18 23:37:10

本专栏收录了数据库的知识点,而从本文起,将讲述有关于数据库设计有关知识点,提供给有需要的小伙伴进行学习,本专栏地址可以戳下面链接查看

🎈 数据库知识点总结(持续更新中):【数据库知识点】

🔑 数据库相关练习题(持续更新中):【数据库练习题】

🔥 一个提供给Java学习者的专栏:【拼图小游戏(Java)】

数据库设计概述

  • 一、前言
  • 二、基本概念
    • 1.广义概念
    • 2.狭义概念
    • 3.概述
  • 三、特点
    • 1.基本规律
    • 2.结构(数据)设计和行为(处理)设计相结合
  • 四、设计方法
    • 1.手工设计法
    • 2.规范设计法
      • 1️⃣新奥尔良法
      • 2️⃣基于E-R模型的设计方法
      • 3️⃣ 3NF(第三范式)的设计方法
      • 4️⃣面向对象设计法
  • 五、基本步骤
  • 六、各级模式
    • 1.需求分析阶段
    • 2.概念设计阶段
    • 3.逻辑设计阶段
    • 4.物理设计阶段
  • 七、结语

一、前言

从本文开始,将讲述有关于数据库设计相关知识点,本文主要是一些概念性东西,通过本文可以了解一下数据库设计

二、基本概念

1.广义概念

数据库设计是数据库及其应用系统的设计,即设计整个数据库应用系统

2.狭义概念

数据库设计是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分

3.概述

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

三、特点

1.基本规律

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

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

结构设计 是指数据库的 模式结构设计

  • 概念结构设计

  • 逻辑结构设计

  • 物理结构的设计

行为设计应用程序设计

  • 功能组织

  • 流程控制

四、设计方法

1.手工设计法

  • 设计质量与设计人员的经验和水平有直接关系

  • 缺乏科学理论和工程方法的支持,工程的质量难以保证

  • 数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价

2.规范设计法

1️⃣新奥尔良法

  • 将数据库设计分为若干阶段和步骤

  • 采用辅助手段实现每一过程

  • 按设计规程用工程化方法设计数据库

2️⃣基于E-R模型的设计方法

广泛采用于:概念设计阶段

3️⃣ 3NF(第三范式)的设计方法

广泛采用于:逻辑阶段

4️⃣面向对象设计法

采用面向对象的概念和术语来描述和完成数据库的结构设计,并可方便转换为面向对象的数据库

五、基本步骤

  • 需求分析

  • 概念结构设计

  • 逻辑结构设计

  • 物理结构设计

  • 数据库实施

  • 数据库的运行和维护
    在这里插入图片描述

六、各级模式

数据库设计不同阶段形成了数据库的概念模式模式外模式内模式

1.需求分析阶段

在这里插入图片描述

2.概念设计阶段

形成独立于机器特点,独立于各个 DBMS产品的概念模式(E-R图)

在这里插入图片描述

3.逻辑设计阶段

  • 首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型, 形成数据库逻辑模式。
  • 然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视(View),形成数据的外模式 。

在这里插入图片描述

4.物理设计阶段

根据数据库管理系统特点和处理的需要, 进行物理存储安排,建立索引,形成数据库内模式

在这里插入图片描述

七、结语

了解了基础概念后,接下来将讲述有关于需求分类的知识点

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

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

相关文章

了解学习node中著名的co模块原理,生成器+promise实现async+await

***内容预警*** 新手内容,菜鸟必看,大佬请绕道 首先 co 是一个npm第三方模块,我们需要npm install 之后才能使用它。 作为一个菜鸟我相信你肯定没有用过这个模块,但是据说这个模块很有名,那么我们就有必要来了解一下它…

35. 池化层 / 汇聚层 代码实现

1. 池化层 在下面的代码中的pool2d函数,我们实现汇聚层的前向传播。 这类似于之前文章中的的corr2d函数。 然而,这里我们没有卷积核,输出为输入中每个区域的最大值或平均值。 from torch import nn from d2l import torch as d2l# X是输入&…

实习------Java基础

基础语法 基本数据类型(熟悉) Java有哪些数据类型 定义:Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。 boolean类型占多少个字节? boolean类型…

【docker】手把手教学docker与docker-compose安装

目录 1、docker安装 2、docker-compose安装 1、docker安装 方式一 https://fanjufei.blog.csdn.net/article/details/123500511https://fanjufei.blog.csdn.net/article/details/123500511 方式二 通过命令行安装。 sudo apt install docker.io sudo systemctl status doc…

linux篇【12】:计算机网络<后序>

一.tcp接入线程池(使用线程池) 1.tcp初步接入线程池 我们设置了对应的任务是死循环,那么线程池提供服务,就显得有不太合适。我们给线程池抛入的任务都是短任务 因为他并没有访问任何类内成员,所以可以把执行方法提到…

智能服务机器人简介

文章大纲 服务机器人上升趋势明显服务机器人核心技术与应用场景目标跟踪人脸识别算法SLAM 即时定位与地图构建(Simultaneous Localization and Mapping,简称SLAM)老人看护手势识别多模态与机器人参考文献与学习路径服务机器人上升趋势明显 服务机器人充分融合机器视觉、语音…

【Redis—持久化】

1.持久化机制 持久化就是把内存的数据写到磁盘中,防止服务宕机导致内存数据丢失。 2.AOF AOF概述 AOF持久化:以独立日志就把该命令。以追加的方式写入到一个文件里,然后重启 Redis 的时候,先去读取这个文件里的命令达到恢复目…

K8S-存储-Volume

问题 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃 时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。…

IDEA 控制台日志中文乱码解决方案

老白新学JAVA,初用IDEA,控制台打印中文总是乱码,网上找了好多解决方法,都不好用,下面记录解决过程。 1.修改idea64.exe.vmoptions ,打开最后一行增加如下代码 idea快捷方式右键->属性->打开文件所有位置&#x…

Redis 性能优化 —— 内存碎片

文章目录一、内存碎片场景描述二、内存碎片概念解析三、内存碎片产生原因四、内存碎片如何判断五、内存碎片解决方案六、内存碎片扩展技能一、内存碎片场景描述 作为内存数据库,内存空间的大小对于 Redis 来说是至关重要的。内存越多意味着存储的数据也会越多&#…

多线程下对象的析构问题

多线程遇上对象析构是个很麻烦的问题,这里我用一个多线程的单例模式去演示一下对象析构的问题 懒汉模式,加锁,线程安全 懒汉模式:需要的时候new一个对象,不需要的时候delete (线程安全的懒汉)单…

服务注册配置中心Nacos

文章目录一. 前言二. 下载安装1. 下载安装包2. Windows环境安装3. Linux环境安装1. 单击模式启动2. 集群模式启动3. 远程web控制4. 注册为系统服务三. 基本使用1. 添加依赖2. 服务注册3. 配置实例集群属性4. 实例权重负载均衡5. 环境隔离6. 临时实例与非临时实例四. Nacos配置管…

Gradle学习笔记之文件操作

文章目录本地文件文件集合文件树文件拷贝归档文件Gradle中的文件操作方式有五种:本地文件、文件集合、文件树、文件拷贝和归档文件。 本地文件 比较简单,API跟java中的完全一致: task("test_file") {doFirst {def f1 file(&quo…

史上最强,这份在各大平台获百万推荐的Java核心手册实至名归

又逢“金九银十”,年轻的毕业生们满怀希望与忐忑,去寻找、竞争一个工作机会。已经在职的开发同学,也想通过社会招聘或者内推的时机争取到更好的待遇、更大的平台。 然而,面试人群众多,技术市场却相对冷淡,…

再学C语言13:字符串(4)——scanf函数

一、scanf函数的使用 scanf函数功能:把输入的字符串转换成各种形式(整数、浮点数、字符、字符串) scanf函数是printf函数的逆操作 scanf函数与printf函数一样使用控制字符串和参数列表 控制字符串指出输入将被转换成的格式 主要区别在参…

Qt实现表格控件

一、概述 最近在研究QTableView支持多级表头的事情,百度了下网上资料还是挺多的。实现的方式总的来说有2种,效果都还不错,最主要是搞懂其中的原理,做到以不变应万变。 实现多级表头的方式有以下两种方案 行表头和列表头都是用一…

网络空间安全——利用 CVE-2017-0213 提权

利用 CVE-2017-0213 提权 VE-2017-0213 是一个比较冷门的COM 类型混淆 (Type Confusion)漏洞。巧妙的利用该漏洞,可以实现本地的提权。该漏洞由著名的Google Project zero 发现。 下面就简单演示一下利用CVE-2017-0213漏洞简单提权, 首先下载CVE-2017…

【环境搭建】RocketMQ集群搭建

前置条件及效果图 条件: 两台服务器,个人是两台腾讯云服务器(其中嫖的朋友一个); 版本: rocketmq-version:4.4.0rocketmq-console(mq控制台)Java:1.8maven:3.6.3 集群模式选择: 单master 这种方式风险…

【Django】第三课 基于Django超市订单管理系统开发

概念 本文在上一文之上,针对管理员,经理,普通员工身份的用户操作供应商管理模块功能。 功能实现 供应商管理模块属于业务功能,这里管理员不具备操作权限,而经理具备与供应商之间谈合作的实际需要,因此经…

Linux | 进程理解,fork | 进程地址空间

文章目录冯诺依曼体系结构的理解为什么要有内存的存在?操作系统的管理进程的理解系统调用接口进程的查看fork进程状态Linux进程具体的状态孤儿进程总结进程优先级怎样修改优先级?进程其他概念进程抢占进程地址空间利用代码验证地址区域验证堆区和栈区的增…