数据库 绪论

目录

数据库基本概念

一.基本概念

1.信息

2.数据

3.数据库(DB)

4.数据库管理系统(DBMS)

5.数据库系统(DBS)

二.数据管理技术的发展

1.人工管理阶段

2.文件系统阶段

3.数据库系统阶段

4.数据库管理系统必须提供以下几方面的数据管理功能

二.数据模型

1.数据模型

2.数据模型的分类

3.概念模型的表示方法

常见的数据模型

四、关系数据库的规范化 

第一范式

第二范式

第三范式


数据库基本概念

一.基本概念

1.信息

信息是现实世界事物的存在方式或者运动状态的反映,他通过符号和信号等具体形式表现出来。信息具有可感知、可存储、可加工、可再生等自然属性,是各行各业不可或缺的资源

2.数据

数据是描述事物的符号记录,可以是数字,文字,图形和声音等。数据是数据库中存储的基本对象,是信息的载体。

例如,某校一个数据科学与大数据技术专业学生的基本情况:学号为20250208,姓名为小红的女生,2002年2月20日出生,数据科学与大数据技术专业。在计算机中则如下的形式描述:

(20250208,小红,女,2002-2-20,数据科学与大数据技术)

3.数据库(DB)

数据库就是存放数据的仓库。长期存储在计算机中的,是有组织的、可共享的相关数据集合。具有逻辑关系和确定意义;针对明确的应用目标而设计建立和加载的

4.数据库管理系统(DBMS)

数据库管理系统是位于用户与操纵系统之间的数据管理软件。它和操作系统一样是计算机的基础软件,也是一类大型复杂的软件系统

有以下功能

  • 数据定义功能
  • 数据组织、存储和管理功能
  • 数据操纵功能
  • 数据库的事务管理和运行管理功能
  • 数据库的建立和维护功能
  • 其他功能

5.数据库系统(DBS)

数据库系统是指引入数据库后的计算机系统,一般是指由数据库、数据库管理系统(及其应用开发工具)、应用系统和数据库管理员组成的存储、管理、处理和维护数据的系统。(简称数据库)

二.数据管理技术的发展

1.人工管理阶段

人工管理数据具有如下特点:

  • 数据不保存
  • 应用程序管理数据
  • 数据不共享
  • 数据不具有独立性

2.文件系统阶段

文件系统管理数据具有以下特点:

  • 数据可以长期保存
  • 数据由专门的软件进行管理

缺点

  • 数据共享性弱,冗余度高
  • 数据独立性弱

3.数据库系统阶段

  • 数据库系统阶段的数据具有如下特点:
  • 整体数据的结构化
  • 数据的共享性强、冗余度低且易于扩充
  • 数据的独立性强
  • 数据由数据库管理系统统一管理和控制

4.数据库管理系统必须提供以下几方面的数据管理功能

  • 数据的安全性保护
  • 数据的完整性检查
  • 数据的并发控制
  • 数据库的恢复

综上,数据库是长期储存在计算机内的有组织、可共享的大量数据的集合。他可提供各种用户共享,具有最小的冗余度和较强的数据独立性。数据库管理系统在数据库建立、运维时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。

二.数据模型

1.数据模型

数据模型也是一种模型,他是数据特征的抽象,是数据库系统的核心基础,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操纵提供了一个抽象的框架。

数据模型所描述内容的三个部分:数据结构、数据操作、数据的约束条件;

2.数据模型的分类

概念模型

一种面向用户、面向客观世界的模型,主要用于描述世界的概念化结构。

数据模型

直接面向数据库的逻辑结构,是对现实世界的第二次抽象。

数据模型(层次模型,网状模型,关系模型)

3.概念模型的表示方法

最常用的方法:实体-联系方法(E-R)

实体型用矩形表示;(一般都是名词)

属性用椭圆表示;(一般都是名词)

联系用菱形表示;(一般都是动词,联系也可以有属性)

联系主要有一对一、一对多、多对多;

常见的数据模型

1.层次模型:用树形结构表示各类实体及实体间联系。有且仅有一个结点无双亲结点;除根节点外其他结点仅有一个双亲节点(树)

2.网状模型:用网络结构表示各类实体及实体间联系。允许一个以上的结点无双亲结点;一个结点可以有多于一个的双亲结点;

3.关系模型:用二维表的形式表示各类实体及实体间的联系。关系模型是目前最重要的一种数据模型。关系模型的数据结构:是一种二维表结构,由行和列组成;

<关系模型的数据操作与完整性约束>
关系模型的数据操作主要有查询、插入、删除、修改,这些操作必须满足关系模型的完整性约束条件可
①实体完整性规则
②参照完整性规则
③用户定义的完整性规则
<关系模型的优缺点>
优点:
①数据结构单一②关系规范化③概念简单

缺点:
存储路径透明,查询效率步入非关系数据模型;
(4)面向对象模型
常见概念:类、对象、封装继承;
优点:适合处理丰富的数据类型;开发效率高;提高了数据访问的性能;
缺点:没有准确的定义;维护起来比较麻烦;不适合所有应用;

四、关系数据库的规范化 

范式------某一种级别的关系模式的集合,是衡量关系模式规范化程度的标准,符合标准的关系才是规范化的。范式可以分为多个等级:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)等。

第一范式

(1)第一范式(1NF)关系模式设计中的最基本要求(原子性,属性不可分的再细了)
如果关系模式R中所有的属性都是不可分解的,则称该关系模式R满足第一范式(First Normal Form),简称1NF,记作R∈1NF。
   

第二范式

   (2)第二范式(2NF)(每个表都要有一个主键,其他属性依赖这个主键)
什么是函数依赖?
A B是关系模式R中的两个属性或属性组合,A的值确定--B的值就可以唯一确定,即A函数确定B函数,或者B函数依赖于A函数,记作A->B;
☆ 如果A→B是R的一个函数依赖,且对于A的任何一个真子集A’,A’→B都不成立,则称A→B是完全函数依赖。反之,如果A’→B成立,则称A→B是部分函数依赖(部分确定部分依赖,全部确定完全依赖)
步入正题!
如果一个关系模式R∈1NF,且R中的每一个非主属性都完全函数依赖于码,则称该关系模式R满足第二范式
(Second Normal Form),简称2NF,记作R∈2NF。
2NF是在1NF的基础上建立起来的,要求实体的非主属性必须完全依赖于主码,不能存在仅依赖主码一部分的属性,如果存在则要把这个属性和主码的这一部分分离出来形成一个新的关系。
学生成绩表:
学号,姓名,课程号,课程名,成绩

学号 课程号 成绩

      主码      非主属性

学号 姓名

主码 非主属性

课程号 课程名

主码     非主属性

不满足2NF的关系会出现诸如插入异常、删除异常和修改异常等问题。

第三范式

(3)第三范式(3NF)(各属性直接不能相互依赖,只能依赖主键)
如果一个关系模式R∈2NF,且R中的每个非主属性传递函数依赖于码,则称该关系模式R满足第三范式
(Third Normal Form),简称3NF,记作R∈3NF。
所谓传递函数依赖是指假设A、B、C是关系模式R中的3个属性或属性组合,如果A→B,B A,B A,B→C,则
C对A传递函数依赖,传递函数依赖记作A→C。(A→B→C得A→C
例如,学生信息表(学号,姓名,年龄,班级号,班主任)中,“班主任”依赖于“学号”。“班主任”对“学号”的依赖,是因为“班主任”依赖于“班级号”,“班级号”依赖于“学号”而产生的。这样就构成了传递依赖,因此不符合3NF。
要想让这个关系模式符合3NF,可以将其分解为两个关系模式:
(1)学生信息表(学号,姓名,年龄,班级号)

(2)班级信息表(班级号,班主任)
可以将其分解为三个符合2NF的关系

(1)学生信息表(学号,姓名)

(2)课程信息表(课程号,课程名)

(3)成绩表(学号,课程号,成绩) 

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

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

相关文章

HTML5 新特性有哪些?

HTML5 引入了许多新特性&#xff0c;主要包括以下几类&#xff1a; 语义化标签&#xff1a;如 <header>、<nav>、<article>、<section>、<aside>、<footer> 等&#xff0c;使代码结构更清晰&#xff0c;利于搜索引擎优化和代码维护。表单…

微软编程之C#如何学习,C#学习路线:从入门到精通

引言 C# 是一种由微软开发的面向对象编程语言&#xff0c;广泛应用于 Windows 应用程序开发、游戏开发&#xff08;Unity&#xff09;、Web 开发&#xff08;ASP.NET&#xff09;等领域。对于初学者来说&#xff0c;掌握 C# 不仅能够打开编程世界的大门&#xff0c;还能为未来…

数据中台是什么?:架构演进、业务整合、方向演进

文章目录 1. 引言2. 数据中台的概念与沿革2.1 概念定义2.2 历史沿革 3. 数据中台的架构组成与关键技术要素解析3.1 架构组成3.2 关键技术要素 4. 数据中台与其他平台的对比详细解析 5. 综合案例&#xff1a;金融行业数据中台落地实践5.1 背景5.2 解决方案5.3 成果与价值 6. 方向…

【DeepSeek】DeepSeek概述 | 本地部署deepseek

目录 1 -> 概述 1.1 -> 技术特点 1.2 -> 模型发布 1.3 -> 应用领域 1.4 -> 优势与影响 2 -> 本地部署 2.1 -> 安装ollama 2.2 -> 部署deepseek-r1模型 1 -> 概述 DeepSeek是由中国的深度求索公司开发的一系列人工智能模型&#xff0c;以其…

如何使用C++将处理后的信号保存为PNG和TIFF格式

在信号处理领域&#xff0c;我们常常需要将处理结果以图像的形式保存下来&#xff0c;方便后续分析和展示。C提供了多种库来处理图像数据&#xff0c;本文将介绍如何使用stb_image_write库保存为PNG格式图像以及使用OpenCV库保存为TIFF格式图像。 1. PNG格式保存 使用stb_ima…

查出 product 表中所有 detail 字段包含 xxx 的完整记录

您可以使用以下 SQL 查询语句来查出 product 表中所有 detail 字段包含 oss.kxlist.com 的完整记录&#xff1a; SELECT * FROM product WHERE INSTR(detail, oss.kxlist.com) > 0;下面是detail字段包含的完整内容 <p><img style"max-width:100%;" src…

微服务 day01 注册与发现 Nacos OpenFeign

目录 1.认识微服务&#xff1a; 单体架构&#xff1a; 微服务架构&#xff1a; 2.服务注册和发现 1.注册中心&#xff1a; 2.服务注册&#xff1a; 3.服务发现&#xff1a; 发现并调用服务&#xff1a; 方法1&#xff1a; 方法2&#xff1a; 方法3:OpenFeign OpenFeig…

Shell原理简介与Linux中的权限问题

一、Shell命令及运行原理 1.1通常说的计算机体系结构指的是什么 通常意义上的计算机体系结构指的是芯片&#xff1a; 如锐龙amd&#xff0c;英特尔酷睿intel core 他们分为 x86&#xff1a;32位 x86_64&#xff1a;64位 两种 1.2广义上的Linux系统分为哪些部分&#xf…

在rtthread中,scons构建时,它是怎么知道是从rtconfig.h找宏定义,而不是从其他头文件找?

在rtthread源码中&#xff0c;每一个bsp芯片板级目录下都有一个 SConstruct scons构建脚本的入口&#xff0c; 在这里把rtthread tools/目录下的所有模块都添加到了系统路径中&#xff1a; 在tools下所有模块中&#xff0c;最重要的是building.py模块&#xff0c;在此脚本里面…

C# Winform 使用委托实现C++中回调函数的功能

C# Winform 使用委托实现C中回调函数的功能 在项目中遇到了使用C#调用C封装的接口&#xff0c;其中C接口有一个回调函数的参数。参考对比后&#xff0c;在C#中是使用委托(delegate)来实现类似的功能。 下面使用一个示例来介绍具体的使用方式&#xff1a; 第一步&#xff1a;…

【系统架构设计师】体系结构文档化

目录 1. 说明2. 重要性3. 主要内容4. 编写原则5. 实践建议6. 例题6.1 例题1 1. 说明 1.绝大多数的体系结构都是抽象的&#xff0c;由一些概念上的构建组成。2.层的概念在任何程序设计语言中都不存在。3.要让系统分析员和程序员去实现体系结构&#xff0c;还必须将体系结构进行…

嵌入式AI革命:DeepSeek开源如何终结GPU霸权,开启单片机智能新时代?

2025年&#xff0c;全球AI领域最震撼的突破并非来自算力堆叠的超级模型&#xff0c;而是中国团队DeepSeek通过开源策略&#xff0c;推动大模型向微型化、低功耗场景的跨越。相对于当人们还在讨论千亿参数模型的训练成本被压缩到600万美金而言&#xff0c;被称作“核弹级别”的操…

深度学习之神经网络框架搭建及模型优化

神经网络框架搭建及模型优化 目录 神经网络框架搭建及模型优化1 数据及配置1.1 配置1.2 数据1.3 函数导入1.4 数据函数1.5 数据打包 2 神经网络框架搭建2.1 框架确认2.2 函数搭建2.3 框架上传 3 模型优化3.1 函数理解3.2 训练模型和测试模型代码 4 最终代码测试4.1 SGD优化算法…

机器学习之心的创作纪念日

机缘 今天&#xff0c;是我成为创作者的第1460天。 在这段时间里&#xff0c;获得了很大的成长。 虽然日常忙碌但还在坚持创作、初心还在。 日常 创作已经成为我生活的一部分&#xff0c;尤其是在我的工作中&#xff0c;创作是不可或缺的&#xff0c;创作都是核心能力之一。…

【RabbitMQ重试】重试三次转入死信队列

以下是基于RabbitMQ死信队列实现消息重试三次后转存的技术方案&#xff1a; 方案设计要点 队列定义改造&#xff08;核心参数配置&#xff09; Bean public Queue auditQueue() {Map<String, Object> args new HashMap<>();args.put("x-dead-letter-exchan…

软件工程-软件需求分析基础

基本任务 准确地回答“系统必须做什么&#xff1f;”&#xff0c;也就是对目标系统提出完整、准确、清晰、具体的要求 目标是&#xff0c;在分析阶段结束之前&#xff0c;系统分析员应该写出软件需求规格说明书&#xff0c;以书面形式准确地描述软件需求。 准则 1&#xff…

2025.2.9 每日学习记录2:技术报告写了一半+一点点读后感

0.近期主任务线 1.完成小论文准备 目标是3月份完成实验点1的全部实验和论文。 2.准备教资笔试 打算留个十多天左右&#xff0c;一次性备考笔试的三个科目 1.实习申请技术准备&#xff1a;微调、Agent、RAG 1.今日完成任务 1.电子斗蛐蛐&#xff08;文本书写领域&am…

9 Pydantic复杂数据结构的处理

在构建现代 Web 应用时&#xff0c;我们往往需要处理复杂的输入和输出数据结构。例如&#xff0c;响应数据可能包含嵌套字典、列表、元组&#xff0c;甚至是多个嵌套对象。Pydantic 是一个强大的数据验证和序列化库&#xff0c;可以帮助我们轻松地处理这些复杂的数据结构&#…

链表(LinkedList) 1

上期内容我们讲述了顺序表&#xff0c;知道了顺序表的底层是一段连续的空间进行存储(数组)&#xff0c;在插入元素或者删除元素需要将顺序表中的元素整体移动&#xff0c;时间复杂度是O(n)&#xff0c;效率比较低。因此&#xff0c;在Java的集合结构中又引入了链表来解决这一问…

【C#】任务调度的实现原理与组件应用Quartz.Net

Quartz 是一个流行的开源作业调度库&#xff0c;最初由 Terracotta 开发&#xff0c;现在由 Terracotta 的一部分 Oracle 所有。它主要用于在 Java 应用程序中调度作业的执行。Quartz 使用了一种复杂的底层算法来管理任务调度&#xff0c;其中包括任务触发、执行、持久化以及集…