数据库相关理论知识(有目录便于直接锁定相关知识点+期末复习)
一,数据模型,关系型数据模型,网状模型,层次模型
1.数据库模型是用来描述和表示现实世界中的事物、概念以及它们之间的关系的工具,但是并不是越专业越好,还要平衡它的模型的复杂性、通用性和成本效益等因素。数据模型按不同的应用层次可以分为三个层次,它们分别是:概念数据模型(E-R图),逻辑数据模型(数据模型),物理数据模型(储存硬盘)。
2.关系数据模型它的三个核心要素是:数据结构、操作集合 以及 完整性约束。关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。由Edgar F. Codd(埃德加 • 科德)提出。
3.网状模型:一个结点有多个父结点以及结点之间为多对多联系的情形
4.层次模型:有且只有一个结点没有双亲结点,这个结点称为根结点。根以外的其他结点有且只有一个双亲结点。
二,数据库系统模式和模式映像
1.模式是数据库中全体数据的全局逻辑结构和特征的描述,它定义了数据的整体结构和关系,是数据库设计的基础。(只有一个)
2.内模式则是对数据的物理结构和存储方法的描述,它规定了数据在数据库内部的表示方式和存储方式。内模式关注的是数据的存储和访问效率,以及如何有效地将数据存储在物理介质上。(只有一个)
3.外模式(用户模式或子模式):是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。不同的用户或应用程序可能需要看到不同的数据视图,因此可以定义多个外模式来满足这些需求。(可以有多个)
4.外模式/模式映像:当数据库的逻辑结构(即模式)发生变化时,如增加新的关系、改变关系的属性或数据类型等,只要对外模式/模式映像作相应的修改,就可以使外模式保持不变。应用程序是依据数据的外模式编写的,因此应用程序不必修改,从而保证了数据与程序的逻辑独立性,也称为数据的逻辑独立性。
5.要保证数据库的数据独立性,主要需要修改的是数据库系统中的二级映象,包括外模式/模式映像和模式/内模式映像。
三,数据库关系模式
1.在数据库的实际应用中,由于业务需求的变更、数据的增长和变化以及其他因素的影响,数据库中的数据是不断更新的,这导致关系模式也可能发生相对变化。
四,数据库系统特点(冗余度)
1.数据库中的数据冗余度通常是不高的。通过合理的数据模型设计和数据库管理系统(DBMS)的应用,数据库可以确保数据的结构化(数据完整性)、共享性高 以及 冗余度低。
五,三级模式和系统安全性
1.数据库的三级模式结构确实能够提高系统的安全性。这种结构通过逻辑和物理独立性、权限控制以及数据完整性约束等机制,为数据库系统提供了强大的安全保障。
2.三级模式结构通过外模式/模式映像和模式/内模式映像,实现了数据的逻辑独立性和物理独立性(数据独立性)。是由DBMS提供的。
3.三级模式结构支持权限控制机制。通过为不同的用户或应用程序分配不同的外模式,可以限制它们对数据的访问和操作权限。
4.三级模式结构还支持数据完整性约束。通过定义数据的完整性规则,如主键约束、外键约束等,可以确保数据的准确性和一致性。
5.模式之间的对应关系:模式与外模式是一对多关系,模式与内模式是一对一的关系。
6.外模式与应用程序之间的对应关系:是一对一的关系
六,数据与信息
1.数据是表示信息的具体形式,信息是数据表达的内容
2.数据处理并不是将信息转换成数据的过程,而是对已有的数据进行收集、整理、分析、解释和呈现的过程。数据是客观存在的符号,而信息是经过加工处理后的数据,具有特定的含义和价值。
七,数据库系统,数据库,数据库管理系统
1.数据库系统(DBS)不仅仅是一个应用软件,它是一个复杂且综合的系统。它包括了 数据库(DB)、数据库管理系统(DBMS),数据库应用程序,数据库管理员(DBA),用户,硬件。
2.数据库(DB):长期存储在计算机内的有组织、可共享的数据集。
3.数据库管理系统(DBMS):它是在操作系统支持下的系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。它属于系统软件的范畴。数据库管理系统(DBMS)负责处理来自应用程序的SQL语句,DBMS并不直接编译高级语言程序。是数据库系统的核心
4.数据库管理员 (DBA) :通常在应用程序开发过程中就开始介入,而不是在应用程序交付使用后。
在应用程序开发过程中,DBA会与开发人员紧密合作,提供数据库相关的技术支持和指导。
八,E-R图
1.矩形:用来表示实体集,矩形框内写上实体集的名字。
2.菱形:用来表示实体集之间的关系,菱形内部写上关系的名称。菱形还与表示实体集的矩形相连,用线段连接表示它们之间的关系。
3.椭圆形: 用来表示实体上的属性。
4.域:是定义属性的重要概念,它限定了属性可以取的值的范围。
5.实体集和实体型:同类实体的集合称为实体集,而描述同类实体的结构和属性的抽象概念称为实体型。
6.实体之间三类基本的关系 : 一对一(1:1)关系,一对多(1:m)关系,多对多(m:n)关系。
7.区分不同实体的主要依据属性
九,数据库系统的数据独立性
1.数据独立性主要体现在两个方面:物理数据独立性和逻辑数据独立性。
2.物理数据独立性 : 是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。也就是说,数据的物理结构(如数据存储方式、存储位置等)发生改变时,不会影响到应用程序。
3.逻辑数据独立性 : 则是指用户的应用程序与数据库的逻辑结构是相互独立的。这意味着数据库的逻辑结构(如表结构、关系、属性等)发生变化时,应用程序也不需要修改。
4.总之数据库系统的数据独立性体现在:不会因为数据存储结构与数据逻辑结构的变化而影响应用程序
十.数据库命令语言(DDL,DCL,DML,DQL)
- 数据定义语言(DDL, Data Definition Language):
- 用来定义数据库对象,如表、索引、触发器等。
- 常见的DDL命令包括:
CREATE DATABASE
:创建新数据库。CREATE TABLE
:创建新表。ALTER TABLE
:修改表结构。DROP TABLE
:删除表。CREATE INDEX
:创建索引。
- 数据操作语言(DML, Data Manipulation Language):
- 用来对数据库中的数据进行增、删、改操作。
- 常见的DML命令包括:
INSERT INTO
:向表中插入新数据。UPDATE
:更新表中数据。DELETE
:从表中删除数据。
- 数据查询语言(DQL, Data Query Language):
- 用来查询数据库中的数据。
- 最常见的DQL命令是
SELECT
,它允许用户根据指定条件检索表中的数据。 ORDER BY
也常用来对查询结果进行排序。
- 数据控制语言(DCL, Data Control Language):
- 用来定义数据库的访问权限和安全级别,以及创建和管理数据库用户。
- 常见的DCL命令包括:
GRANT
:授权用户访问或操作数据库对象。REVOKE
:撤销用户的访问权限。
十一,数据库系统与文件系统的主要区别
- 数据存储方式:文件系统将数据组织成相互独立的数据文件,实现了记录内的结构性,但整体无结构。相比之下,数据库系统则实现了整体数据的结构化,这是数据库系统的一个主要特征,也是其与文件系统的本质区别。
- 程序与数据的联系:在文件系统中,程序和数据之间存在一定的联系。然而,在数据库系统中,程序和数据是分离的,这种分离有助于数据的独立性和可维护性。
- 数据管理方式:文件系统使用操作系统中的存取方法来管理数据,而数据库系统则使用DBMS(数据库管理系统)来统一管理和控制数据。
- 数据共享方式:文件系统实现的是以文件为单位的数据共享,而数据库系统则实现以记录和字段为单位的数据共享。
- 数据冗余和数据独立性:文件系统不能解决数据冗余和数据独立性问题,而数据库系统则可以。
相关文章:

数据库相关理论知识(有目录便于直接锁定相关知识点+期末复习)
一,数据模型,关系型数据模型,网状模型,层次模型 1.数据库模型是用来描述和表示现实世界中的事物、概念以及它们之间的关系的工具,但是并不是越专业越好,还要平衡它的模型的复杂性、通用性和成本效益等因素…...

NCC环境配置
一、后端配置 1.安装eclipse汉化插件 2.安装svn插件...

用python实现Dubins曲线生成
Dubins曲线是连接两个具有指定方向和位置的点的最短路径,其中路径受到固定曲率约束(如车辆的转向限制)。Dubins曲线常用于机器人路径规划、车辆轨迹规划等领域。 Dubins曲线可以分为三种类型:CCC (Curve-Curve-Curve), CCL (Curv…...

智能技术上的“是”并不代表具体领域的“应该”
技术上的“是”并不代表具体领域的“应该” 。技术上的“是”仅仅是指某种方法或技术在实践中是否可行或有效,而不涉及是否该采取这种方法或技术。决定是否采取某种方法或技术还需要考虑伦理、法律、可行性等其他方面的因素。技术的发展可能会有各种可能性ÿ…...

永热爱 敢向前 | Paraverse平行云的2023 年终总结
永热爱,敢向前 值此新年,回顾2023,仅以此句,献给所有XR产业信仰者 2023 年,是XR产业技术和场景承上启下的关键之年 在这场波澜壮阔的技术潮中 「Paraverse平行云」踏浪前行 已是第八个年头,让我们一起…...

c/c++的内存分配,详细说一下栈、堆和静态存储区
栈区(Stack):由编译器自动分配和回收,栈中存放函数调用的相关信息,栈帧(记录函数的栈帧开始的位置),参数,局部变量,返回地址。其操作方法类似于数据结构中的栈…...

每日构造题训练——C. Divan and bitwise operations
每日构造题训练 题目链接: 题目传送门 前置知识: 按位或运算 一、题意: 1 1 1、 有一个长度为 n n n的但是元素未知的数组 a a a, 给定 m m m个约束,每个约束都有 l , r , x l, r, x l,r,x, 并且满足 1 ≤ l ≤ r ≤ n , 1 ≤ x < 2 30 , a [ l ] ∣ a [ l 1 …...

【C++练级之路】【Lv.13】多态(你真的了解虚函数和虚函数表吗?)
快乐的流畅:个人主页 个人专栏:《C语言》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 一、虚函数与重写1.1 虚函数1.2 虚函数的重写1.3 重写的特例1.4 final和override(C11)1.…...

如何在Windows系统安装Node.js环境并制作html页面发布公网远程访问?
文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation࿰…...

C#,数值计算,希尔伯特矩阵(Hilbert Matrix)的算法与源代码
Hilbert, David (1862-1943) 1 希尔伯特(Hilbert) 德国数学家,在《几何学基础》中提出了第一套严格的几何公理(1899年)。他还证明了自己的系统是自洽的。他发明了一条简单的空间填充曲线,即埃里克魏斯汀的数学世界,即希尔伯特曲线,埃里克魏斯汀的数学世界,并证明了不…...

【C++教程从0到1入门编程】第八篇:STL中string类的模拟实现
一、 string类的模拟实现 下面是一个列子 #include <iostream> namespace y {class string{public: //string() //无参构造函数// :_str(nullptr)//{}//string(char* str) //有参构造函数// :_str(str)//{}string():_str(new char[1]){_str[0] \0;}string(c…...

学生时期学习资源同步-1 第一学期结业考试题6
原创作者:田超凡(程序员田宝宝) 版权所有,引用请注明原作者,严禁复制转载...

迁移学习怎么用
如果想实现一个计算机视觉应用,而不想从零开始训练权重,比方从随机初始化开始训练,更快的方式是下载已经训练好权重的网络结构,把这个作为预训练,迁移到你感兴趣的新任务上。ImageNet、PASCAL等等数据库已经公开在线。…...

医疗手持智能终端读取条码二维码的难点有哪些?
在医疗科技行业信息化的大潮中,医疗手持式智能终端的应用越发普及,医疗手持式智能终端对条码二维码技术应用显得尤为关键,作为信息朔源载体的条码二维码读取方面,在实际应用中却面临着诸多问题,我们该如何应对…...

Python小设计
1. 五个PPT上的界面打印【print、input函数】 (1)英雄商城登陆界面 print(英雄联盟商城登录界面 ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~1. 用户登录2. 新用户注册3. 退出系统 ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~…...

今日讲讲父子传值~
今天来讲讲父子传值中的几种方法~ 项目中往往会把一些常用的公共代码抽离出来,写成一个子组件。或者在一个页面中的代码太多,可以根据功能的不同抽离出相关代码写成子组件,这样代码结构会更加简洁明了,后续维护更加方便。…...

三、HarmonyOS 应用开发入门之运行Hello World
目录 1、课程对象 1.1、有移动端开发经验 1.2、无移动端开发经验 1.3、对 HarmonyOS 感兴趣 2、DevEco Studio 的使用 2.1、DevEco Studio 的关键特性 智能代码编辑 低代码开发 多段双向实时预览 多端模拟仿真 2.2、安装配置 DevEco Studio 2.2.1、官网开发工具下载地…...

国科大网络行为学导论代码作业--更新中
一、Xray安装 参考自:Xray的安装与使用(超详细)_xray使用教程-CSDN博客 下载网址:Releases chaitin/xray GitHub 解压 双击安装 生成证书 cd到xray目录,生成证书 复制链接 然后cd到xray目录 .\xray_windows_amd6…...

JAVA后端开发面试基础知识(九)——SpringBoot
启动原理 SpringBoot启动非常简单,因其内置了Tomcat,所以只需要通过下面几种方式启动即可: @SpringBootApplication(scanBasePackages = {"cn.dark"}) public class SpringbootDemo {public static void main(String[] args) {// 第一种SpringApplication.run(S…...

C#调用Halcon出现尝试读取或写入受保护的内存,这通常指示其他内存已损坏。System.AccessViolationException
一、现象 在C#中调用Halcon,出现异常提示:尝试读取或写入受保护的内存,这通常指示其他内存已损坏。System.AccessViolationException 二、原因 多个线程同时访问Halcon中的某个公共变量,导致程序报错 三、测试 3.1 Halcon代码 其中tsp_width…...

ts基础知识
1. any 类型,unknown 类型,never 类型 TypeScript 有两个“顶层类型”(any和unknown),但是“底层类型”只有never唯一一个 1、any 1.1 基本含义 any 类型表示没有任何限制,该类型的变量可以赋予任意类型的…...

KLayout Python Script ------ 绘制1个 Box 物体
KLayout Python Script ------ 绘制两个 Box 物体 引言正文引言 本人通常使用 IPKISS 进行版图绘制,然而很多时候,IPKISS 的功能十分鸡肋。因此,萌生了一种自己写绘制软件的想法,因为 IPKISS 绘制的版图最终也是使用 KLayout 来呈现的,因此,再研究了 KLayout 提供的 API…...

c# 编辑、删除一条数据
1、编辑数据 [HttpPost] public MessageModel<string> Put([FromBody] Dtable request) { var data new MessageModel<string>(); request.UPDATETIME DateTime.Now; if (request.ID>0) { …...

高性能服务系列【八】C10M时代,网络IO库需要重建
在目前网络上能搜索到的,关于网络IO模型的文章,基本都是关于多路复用的iocp/epoll的,这些技术是为了解决C10K问题而提出的解决方案。现代网卡已经普遍支持10Gb,100Gb也不少见,这些解决方案已经无法提升性能的需求。 我…...

Go语言与Rust哪一个更有发展前景?
Go语言和Rust都是目前非常受欢迎的编程语言,它们各自具有独特的优势和适用场景。关于哪一个更有发展前景,这实际上取决于多个因素,包括个人偏好、项目需求、社区支持以及未来技术的发展趋势等。 Go语言是由Google推出的,具有简洁…...

STM32使用定时器驱动电机
STM32使用定时器驱动电机 1、对定时器进行初始化配置1.1、include "encoder.c"文件 主函数 1、对定时器进行初始化配置 1.1、include "encoder.c"文件 #include "encoder.h"void TIM4_Encoder_Init(u16 arr,u16 psc) { GPIO_InitTypeDef GPIO…...

C语言游戏实战(4):人生重开模拟器
前言: 人生重开模拟器是前段时间非常火的一个小游戏,接下来我们将一起学习使用c语言写一个简易版的人生重开模拟器。 网页版游戏: 人生重开模拟器 (ytecn.com) 1.实现一个简化版的人生重开模拟器 (1) 游戏开始的时…...

MVC架构模式学习笔记(动力节点老杜2022)
GitHub代码笔记:laodu-mvc: 动力节点学习javaweb中的mvc笔记。 文章目录 1.视频链接 2.不使用MVC架构模式程序存在的缺陷 3.MVC架构模式理论基础 4.JavaEE设计模式-DAO模式 5.pojo & bean & domain 6.业务层抽取以及业务类实现 7.控制层 8.MVC架构模式与三…...

docker常用操作-docker私有仓库的搭建(Harbor),并将本地镜像推送至远程仓库中。
1、docker-compose安装,下载docker-compose的最新版本 第一步:创建docker-compose空白存放文件vi /usr/local/bin/docker-compose 第二步:使用curl命令在线下载,并制定写入路径 curl -L "https://github.com/docker/compos…...

什么是MVC
MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面ÿ…...