当前位置: 首页 > article >正文

软考 中级软件设计师 考点知识点笔记总结 day13 数据库系统基础知识 数据库模式映像 数据模型

文章目录

      • 数据库系统基础知识
        • 6.1 基本概念
          • 6.1.1 DBMS的特征与分类
        • 6.2 数据库三级模式两级映像
        • 6.3 数据库的分析与设计过程
        • 6.4 数据模型
          • 6.4.1 ER模型
          • 6.4.2 关系模型


数据库系统基础知识

基本概念 数据库三级模式两级映像 数据库的分析与设计过程 数据模型 关系代数 数据库完整性约束

关系型数据库SQL简介 关系数据库的规范化 数据库的控制功能 数据仓库与数据挖掘基础 大数据基本概念

6.1 基本概念
  1. 数据库
    • 数据库(Database,缩写为DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
  2. 数据库管理系统
    • 数据库管理系统(Database Management System,DBMS)是数据库系统的核心软件,要在操作系统支持下工作,解决如何科学地组织和存储数据、如何高效地获取和维护数据的系统软件问题。其主要功能包括数据定义功能、数据操纵功能、数据库的运行管理、数据组织、存储、管理和数据库的建立与维护。
6.1.1 DBMS的特征与分类
  1. DBMS的特征
    1. 数据结构化且统一管理。
    2. 有较高的数据独立性。
    3. 提供数据控制功能。
  2. DBMS的分类
    1. 关系数据库系统:是支持关系模型的数据库系统。
    2. 面向对象的数据库系统:是支持以对象形式对数据建模的数据库系统。
    3. 对象关系数据库系统:在传统的关系数据模型基础上,提供元组、数组、集合等更丰富的数据类型以及处理新的数据类型操作的能力,这样形成的数据模型称为对象关系数据模型。基于对象关系数据模型的DBS称为对象关系数据库系统。
6.2 数据库三级模式两级映像
  1. 用户级数据库
    外模式A 和 外模式B:用户视图,表示不同用户看到的数据视图。
  2. 概念级数据库
    概念模式:概念模式是数据库的整体逻辑结构,包含了所有数据的定义和关系。
    外模式-概念模式映射:将用户视图(外模式)映射到概念模式。
  3. 物理级数据库
    内模式:物理存储结构,包括存储设备、文件组织方式等。
    概念模式-内模式映射:将概念模式映射到物理存储结构(内模式)。
  4. 映射关系
    外模式-概念模式映射:确保用户视图与整体逻辑结构的一致性。
    概念模式-内模式映射:确保逻辑结构与物理存储结构的一致性。
  5. 操作系统
    操作系统:管理物理数据库的底层操作。

数据库系统采用三级模式结构,这是数据库管理系统内部的系统结构。

  • 外模式:也称用户模式或子模式,是用户与数据库系统的接口,是用户用到的那部分数据的描述,由若干个外部记录类型组成。描述外模式的数据定义语言称为外模式DDL。
  • 概念模式:也称模式,是数据库中全体数据的逻辑结构和特征的描述,它由若干个概念记录类型组成,只涉及行的描述,不涉及具体的值。概念模式的一个具体值称为模式的一个实例,同一个模式可以有很多实例。
  • 内模式:也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。描述内模式的数据定义语言称为内模式DDL。

外模式/模式映像:该映像存在于外部级和概念级之间,实现了外模式到概念模式之间的相互转换。

模式/内模式映像:该映像存在于概念级和内部级之间,实现了概念模式到内模式之间的相互转换。

DBMS的两级映像功能保证了数据的独立性。

6.3 数据库的分析与设计过程
  1. 当前和未来应用的数据要求
    需求分析:根据当前和未来应用的数据要求进行需求分析。
    数据流图
    数据字典
    需求说明书
  2. 概念结构设计
    概念结构设计:基于需求分析的结果,设计概念结构。
    用户的逻辑模型(即与DBMS无关的概念模型)
    ER模型:实体关系模型
  3. 逻辑结构设计
    逻辑结构设计:将概念结构转换为逻辑结构。
    转换规则、规范化理论
    关系模式
  4. 物理设计
    物理设计:基于逻辑结构设计和DBMS特性进行物理设计。
    视图、完整性约束及应用处理说明书
    硬件、OS特性
6.4 数据模型
  • 模型:是对现实世界特征的模拟和抽象。
  • 数学模型:是对现实世界数据特征的抽象。
  • 数据模型:是用来描述数据的一组概念和定义。

数据模型的三要素

  • 数据结构:是所研究的对象类型的集合,是对系统静态特性的描述。
  • 数据操作:是对数据库中各种对象的实例(值)允许执行的操作的集合,包括操作及操作规则。数据操作是对系统动态特性的描述。
  • 数据的约束条件:是一组完整性规则的集合。对于具体的应用数据必须遵循特定的语义约束条件,以保证数据的正确、有效、相容。

实体-联系模型简称E-R模型,所采用的3个主要概念是实体、联系和属性。

6.4.1 ER模型

ER 图例说明 ER 模型的三个主要概念 实体 联系 属性

实体:表示现实世界中的对象或事物。

示例:学生、课程

属性:描述实体的特征。

示例:姓名、性别、年龄

联系:表示实体之间的关系。

示例:选课

E-R图示例

学生实体
属性:学号、姓名、性别、年龄

课程实体
属性:课程号、课程名
联系:选课
属性:成绩
关系:M:N(多对多)

6.4.2 关系模型

关系数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集以及实体集之间的联系,其最大特色是描述的一致性。

  • 关系模型是由若干个关系模式组成的集合。一个关系模式相当于一个记录型,对应于程序设计语言中类型定义的概念。
  • 关系模型的优点是:
    • 概念单一
    • 存储路径对用户是透明的
    • 所以具有更好的数据独立性和安全保密性
    • 简化了程序的开发和数据库的建立工作

教学数据库的4个关系模式如下:

S (Sno, Sname, SD, Sage, Sex)

学生S关系模式,属性为学号、姓名、系、年龄和性别

T (Tno, Tname, Age, Sex)

教师T关系模式,属性为教师号、姓名、年龄和性别

C (Cno, Cname, Pcno)

课程C关系模式,属性为课程号、课程名和先修课程号

SC (Sno, Cno, Grade)

学生选课SC关系模式,属性为学号、课程号和成绩

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

  • 1:1联系
  • 1:n联系
  • m:n联系

三个以上实体间的一个多元联系 n + 1

  • 在数据库逻辑结构的设计中,将E-R模型转换为关系模型应遵循相关原则。对于三个不同实体集和它们之间的多对多联系m:n:p,最可转换为 __C__个关系模式。

A. 2 B. 3 C. 4 D. 5

当处理涉及三个或更多实体的多对多联系时,通常需要为每一个实体以及它们之间的联系各创建一个关系模式。这样可以确保联系能够被准确地表示,并维持数据的一致性和完整性。

相关文章:

软考 中级软件设计师 考点知识点笔记总结 day13 数据库系统基础知识 数据库模式映像 数据模型

文章目录 数据库系统基础知识6.1 基本概念6.1.1 DBMS的特征与分类 6.2 数据库三级模式两级映像6.3 数据库的分析与设计过程6.4 数据模型6.4.1 ER模型6.4.2 关系模型 数据库系统基础知识 基本概念 数据库三级模式两级映像 数据库的分析与设计过程 数据模型 关系代数 数据库完整…...

蓝桥杯2024省A.成绩统计

蓝桥杯2024省A.成绩统计 题目 题目解析与思路 题目要求返回至少要检查多少个人的成绩,才有可能选出k名同学,他们的方差小于一个给定的值 T 二分枚举答案位置,将答案位置以前的数组单独取出并排序,然后用k长滑窗O(1)计算方差 问…...

Mac mini 安装mysql数据库以及出现的一些问题的解决方案

首先先去官网安装一下mysql数据库,基本上都是傻瓜式安装的流程,我也就不详细说了。 接下来就是最新版的mysql安装的时候,他就会直接让你设置一个新的密码。 打开设置,拉到最下面就会看到一个mysql的图标: 我设置的就是…...

俄罗斯方块-简单开发版

一、需求分析 实现了一个经典的俄罗斯方块小游戏,主要满足以下需求: 1.图形界面 使用 pygame 库创建一个可视化的游戏窗口,展示游戏的各种元素,如游戏区域、方块、分数等信息。 2.游戏逻辑 实现方块的生成、移动、旋转、下落和锁…...

STM32的启动方式

目录 一、从主闪存存储器启动(Main Flash Memory) 二、从系统存储器启动(System Memory) 三、从内置SRAM启动(Embedded SRAM) 四、从外挂存储介质启动的实现方式 1. 存储介质选型 2. 硬件连接 3. 引…...

你学会了些什么200601?--Flask搭建造测试数据平台

搭建造数平台的环境: ***python3.7 ***html5 ***css ***JavaScript ***Ajax ***MySQL 前台页面的显示 1.为了页面美化,使用了JavaScript,通过逐级展开/隐藏的的方式显示下一级菜单 2.为了在提交表单数据时页面不发生跳转,需要引用…...

【音视频】FLV格式分析

FLV概述 FLV(Flash Video)是Adobe公司推出的⼀种流媒体格式,由于其封装后的⾳视频⽂件体积⼩、封装简单等特点,⾮常适合于互联⽹上使⽤。⽬前主流的视频⽹站基本都⽀持FLV。采⽤FLV格式封装的⽂件后缀为.flv。 FLV封装格式是由⼀个⽂件头(file header)和…...

Keil5没有stm32的芯片库

下载完重启就行了,我这里就不演示了,stm已经下载,随便选的一个芯片库演示一下...

【DVWA 靶场通关】 File Inclusion(文件包含漏洞)

1. 前言 文件包含漏洞 是 Web 应用中较为常见的漏洞之一,攻击者通过操控文件路径,访问或包含系统上的敏感文件,甚至执行恶意代码。DVWA(Damn Vulnerable Web Application)提供了一个理想的实验环境,让安全…...

游戏引擎学习第229天

仓库:https://gitee.com/mrxiao_com/2d_game_5 回顾上次内容并介绍今天的主题 上次留下的是一个非常简单的任务,至少第一步是非常简单的。我们需要在渲染器中加入排序功能,这样我们的精灵(sprites)才能以正确的顺序显示。为此我…...

【C++编程入门】:从零开始掌握基础语法

C语言是通过对C语言不足的地方进行优化创建的,C在C语言之上,C当然也兼容C语言, 在大部分地方使用C比C更方便,可能使用C需要一两百行代码,而C只需要五六十行。 目录 C关键字 命名空间 缺省参数 缺省参数分类 函数…...

Python3网络爬虫开发--爬虫基础

网络爬虫基础 1.1 HTTP基本原理 1.1.1 URI和URL URI即统一资源标志符,URL即统一资源定位符。 有这样一个链接,http://test.com/test.txt,在这个链接中,包含了访问协议https,访问目录(即根目录),资源名称(test.txt)。通过这样的链接,可以在互联网上找到这个资源,这…...

网络开发基础(游戏方向)之 概念名词

前言 1、一款网络游戏分为客户端和服务端两个部分,客户端程序运行在用户的电脑或手机上,服务端程序运行在游戏运营商的服务器上。 2、客户端和服务端之间,服务端和服务端之间一般都是使用TCP网络通信。客户端和客户端之间通过服务端的消息转…...

MyBatisPlus-QueryWrapper的exists方法拼接SQL中的EXISTS子句

在 MyBatis-Plus 中,QueryWrapper 的 exists 方法用于拼接 SQL 中的 EXISTS 子句,通常用于构 建子查询条件。以下是具体用法和示例: ​​1. 基本语法​​ // 判断是否存在符合条件的记录 queryWrapper.exists(String existsSql); queryWrapper.notExists(String existsSq…...

【源码】【Java并发】【AQS】从ReentrantLock、Semaphore、CutDownLunch、CyclicBarrier看AQS源码

👋hi,我不是一名外包公司的员工,也不会偷吃茶水间的零食,我的梦想是能写高端CRUD 🔥 2025本人正在沉淀中… 博客更新速度 👍 欢迎点赞、收藏、关注,跟上我的更新节奏 📚欢迎订阅专栏…...

k8s介绍与实践

第一节 理论 基础介绍,部署实践,操作实践,点击这里学习 第二节 dashboard操作 查看安装的dashboard服务信息 kubectl get pod,svc -n kubernetes-dashboard 网页登录地址:https://server_ip:30976/#/login 创建token kube…...

SpringBoot 3 与 SpringDoc 打造完美接口文档

文章目录 1. SpringDoc 简介1.1 SpringDoc 优势2. 环境准备2.1 Maven 依赖2.2 基础配置3. 创建基本文档配置类4. 控制器 API 文档注解4.1 基本控制器示例4.2 模型类示例5. 高级功能5.1 API分组5.2 安全配置5.3 隐藏特定端点6. 参数描述6.1 路径参数6.2 查询参数6.3 请求体7. 响…...

【HFP】蓝牙HFP协议音频连接核心技术深度解析

目录 一、音频连接建立的总体要求 1.1 发起主体与时机 1.2 前提条件 1.3 同步连接的建立 1.4 通知机制 二、不同主体发起的音频连接建立流程 2.1 连接建立触发矩阵 2.2 AG 发起的音频连接建立 2.3 HF 发起的音频连接建立 三、编解码器连接建立流程 3.1 发起条件 3.…...

KRaft面试思路引导

Kafka实在2.8之后就用KRaft进行集群管理了 Conroller负责选举Leader,同时Controller管理集群元数据状态信息,并将元数据信息同步给各个分区的Leader 和Zookeeper管理一样,会选出一个Broker作为Controller去管理整个集群,但是元数…...

FreeRTOS菜鸟入门(六)·移植FreeRTOS到STM32

目录 1. 获取裸机工程模版 2. 下载 FreeRTOS V9.0.0 源码 3. FreeRTOS文件夹内容简介 3.1 FreeRTOS文件夹 3.1.1 Demo文件夹 3.1.2 License 文件夹 3.1.3 Source 文件夹 3.2 FreeRTOS-Plus 文件夹 4. 往裸机工程添加 FreeRTOS 源码 5. 拷贝 FreeRTOSConfig…...

14.第二阶段x64游戏实战-分析人物的名字

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 上一个内容:13.第二阶段x64游戏实战-分析人物等级和升级经验 名字(中文英文符号…...

【CS*N是狗】亲测可用!!WIN11上禁用Chrome自动更新IDM插件

现象:每次打开chrome后IDM会弹出提示插件版本不一致。经过排查后发现是chrome把IDM插件给更新了,导致IDM提示版本不匹配。经过摸索后,得到了可行的方案。 第一步,打开Chrome,把IDM插件卸载掉,然后重新安装I…...

漫游git rebase + 浅谈git checkout和git branch -f的分支命令

今天学了两个命令非常有意思:一个是git checkout,一个是git branch -f。我们可以认为在提交树上,任何一个节点代表着一次提交。并且,git commit将会在 H E A D HEAD HEAD指针指向的节点上进行进一步提交。将每一个分支名视为标记当…...

深入理解 React 组件的生命周期:从创建到销毁的全过程

React 作为当今最流行的前端框架之一,其组件生命周期是每个 React 开发者必须掌握的核心概念。本文将全面剖析 React 组件的生命周期,包括类组件的各个生命周期方法和函数组件如何使用 Hooks 模拟生命周期行为,帮助开发者编写更高效、更健壮的…...

基础数学知识-概率论

文章目录 1. 随机事件和概率1. 事件运算规律2. 条件概率3. 事件独立性4. 五大公式5. 古典型概率6. 几何型概率7. n重伯努利试验2. 随机变量与分布1.离散型随机变量2. 连续型随机变量3. 常见分布4. TODO4. 随机变量的数学特征1. 数学期望2. 方差3. 常见分布期望与方差 -- TODO4.…...

OpenCV 图形API(44)颜色空间转换-----将图像从 BGR 色彩空间转换为 RGB 色彩空间函数BGR2RGB()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将图像从BGR色彩空间转换为RGB色彩空间。 该函数将输入图像从BGR色彩空间转换为RGB。B、G和R通道值的常规范围是0到255。 输出图像是8位无符号3通…...

2025年CMS安全(面试题)

活动发起人小虚竹 想对你说: 这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧&#xff01…...

配置nginx服务,通过多ip区分多网站

首先关闭防火墙,setenforce 0 关过了,不截图了 多IP,首先配置多个IP地址 可以在vm增加虚拟网卡,也可以在同一网卡配置多个IP,我用第一种 记得点确定 查看新的虚拟网卡IP 没有IP,配置一个 安装nginx 写配置 server{listen 192.168.214.130:80;root /www/ip/130; # 资源根目…...

[k8s实战]Containerd 1.7.2 离线安装与配置全指南(生产级优化)

[k8s实战]Containerd 1.7.2 离线安装与配置全指南(生产级优化) 摘要:本文详细讲解在无外网环境下部署 Containerd 1.7.2 容器运行时的完整流程,涵盖二进制包安装、私有镜像仓库配置、Systemd服务集成等关键步骤,并提供…...

C++中const与constexpr的区别

在C中,const和constexpr都用于定义常量,但它们的用途和行为有显著区别: ### 1. **初始化时机** - **const**:表示变量是只读的,但其值可以在**编译时或运行时**初始化。 cpp const int a 5; // 编译…...