第十四章 数据库

第十四章 数据库

14.1 引言

数据存储在传统上是使用单独的没有关联的文件,称为平面文件

14.1.1 定义

定义:数据库是一个组织内被应用程序使用的逻辑相一致的相关数据的集合

14.1.2 数据库的优点

数据库的优点:

  • 冗余少
  • 避免数据的不一致
  • 效率
  • 数据完整性
  • 机密性

14.1.3 数据库管理系统

DBMSDatabase Manager System)是定义、创建、维护数据库的一种工具,DBMS允许用户来控制数据库中数据的存取

DBMS由5部分组成

  • 硬件:物理上存取数据的计算机硬件
  • 软件:用户存取、维护和更新物理数据的实际程序
  • 数据(库):数据是独立于软件的一个实体
  • 用户
    • 最终用户:数据库管理员DBA和普通用户
    • 应用程序
  • 规程

14.2 数据库体系结构

美国国家标准协会/标准计划和需求委员会(ANSI/SPARC)为数据库管理系统建立了三层体系结构:内层、概念层和外层

14.2.1 内层

内层:决定了数据在存储设备中的实际位置,处理底层的数据存取方法和如何在存储设备间传输字节,内层直接与硬件交互

14.2.2 概念层

概念层:定义数据的逻辑视图DBMS的主要功能(如增删改查)都在该层,概念层是中介层,使得用户不必与内层打交道

14.2.3 外层

外层:直接与用户(最终用户或应用程序)交互,将来自概念层的数据转化为用户熟悉的格式和视图

14.3 数据库模型

数据库模型定义了数据的逻辑设计,描述了不同数据之间的联系

在数据库发展史中,使用过三种数据库模型

  • 层次模型
  • 网状模型
  • 关系模型

14.3.1 层次模型

层次模型:数据被组织成一棵倒置的树,每个实体可以有不同的节点,但只能有一个双亲,层次的最顶端有一个实体,称为根。

层次模型已过时,不再描述

14.3.2 网状模型

网状模型:实体通过来组织。图中的部分实体可以通过多条路径来访问

网状模型已过时,不再描述

14.4 关系数据库模型

在关系数据库模型中,数据是通过关系的集合来表示的,从表面上看,关系就是二维表,数据的外部视图是关系和表的集合,但不代表数据以表的形式存储,数据的物理存储与数据的逻辑组织方式毫无关系

关系的特征

  • 名称:每种关系都有唯一的名称
  • 属性:关系中的每一列都称为属性,属性在表中是列的头,关系中属性的总数称为关系的
  • 元组:关系中的行叫做元组,元组定义了一组属性值

14.4.1 关系

14.4.2 关系的操作

关系的操作:

插入、删除、更新、选择/查询、投影、连接、并、交、差

这些操作通过数据库查询语言**SQL(结构化查询语言)**来定义

结构化查询语言(SQL)

  • SQL是ANSI/ISO用于关系数据库上的标准化语言,是一种描述性的语言MYSQL
  • SQLServer
  • Oracle…

插入:是一元操作,应用于一个关系,作用是在表中插入新的元组格式:insert into RELATION-NAME values(xxx,xxx,xxx)

删除:是一元操作,根据要求删除表中相应的元组。

格式:delete from RELATION-NAME where criteria

更新:是一元操作,用来更新元组中的部分属性值

格式:update RELATION-NAME

set attribute1 = value1 ,attribute2 = value2, …

where criteria

选择/查询:是一元操作,用于一个关系并产生另外一个新关系,新关系中的元组(行)是原关系元组的子集

格式:select * from RELATION-NAME where criteria

投影:是一元操作,用于一个关系并产生另外一个新关系,新关系中的属性(列)是原关系元组的子集

格式:select attribute-list from RELATION-NAME

连接:是二元操作,基于共有的属性把两个关系组合起来

格式:select attribute-list from RELATION1,RELATION2 where criteria

并:是二元操作,将两个关系合并成一个新的关系,有一个限制是两个关系中必须有相同的属性

格式:select * from RELATION1 union select * from RELATION2

交:是二元操作,将两个关系操作,创建一个新的关系,有一个限制是两个关系中必须有相同的属性

格式:select * from RELATION1 intersection select * from RELATION2

差:是二元操作,应用于具有相同属性的两个关系,生成的关系中的元组是那些存在与第一个关系中而不存在于第二个关系中的元组

格式:select * from RELATION1 minus select * from RELATION2

14.5 数据库设计

14.5.1 实体关系模型

实体关系模型(ERM,Entity Relationship Model):定义了需要维护的实体以及实体的属性,实体和实体之间的关系

14.5.2 从E-R图到关系

实体关系图(E-R图):使用图形的方式来表示ERM

  • 矩形:表示实体集
  • 椭圆形:表示属性
  • 菱形:表示关系集
  • 线:连接属性和实体以及连接实体集和关系集

E-R图上的关系

  • 实体集上的关系

  • 关系集上的关系

14.5.3 规范化

规范化:规范表设计中的一些规则,使得表结构设计更加合理

范式:规范化定义了一组层次范式(NF),包括1NF、2NF、3NF、BCNF(Boyce-Codd范式)、4NF、PJNF、5NF等

  • 第一范式(1NF)
  • 第二范式(2NF)
  • 其他数据库模型
    • 面向对象数据库

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

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

相关文章

docker产生日志过大优化

1、Docker容器启动后日志存放位置 #cat /var/lib/docker/containers/容器ID/容器ID-json.log #echo >/var/lib/docker/containers/容器ID/容器ID-json.log临时清除日志 注:echo一个空进去,不需要重启容器,但如果你直接删除这个日志&…

【JavaEE】Bean的作用域和生命周期

一.Bean的作用域. 1.1 Bean的相关概念. 通过Spring IoC和DI的学习(不清楚的可以看的前面写过的总结,可以快速入门, http://t.csdnimg.cn/K8Xr0),我们知道了Spring是如何帮助我们管理对象的 通过 Controller , Service , Repository , Component , Configuration , Bean 来声明…

无人机之航拍高级操作与技巧

一、直线飞行与矩形飞行练习:通过直线和矩形路径的练习,提升飞行路径控制能力。 二、航点命令和事件编程:学习如何设置航点命令和事件,使无人机能够自动执行复杂任务。 三、故障诊断与处理:掌握基本的故障诊断方法和…

如何使用 API list 极狐GitLab 群组中的镜像仓库?

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署…

深入指南:VitePress 如何自定义样式

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

PHP安全编程宝典:30000字精细解析

文章目录 基础语法单双引号的区别前后端分离数据类型PHP常量函数var_dump函数count函数print_r函数**readfile()函数****file_get_contents()函数****file_put_contents()函数**header函数fopen函数fread 函数rename函数copy()函数…

【时时三省】(C语言基础)结构体

山不在高,有仙则名。水不在深,有龙则灵。 ——csdn时时三省 结构体 结构体使得C语言有能力描述复杂类型。 结构体可以让c语言创造新的类型出来 示例: struct Stu { char name[20] (名字的话是一个字…

数学建模--简单优化模型之存储模型

目录 1.问题概述 1.1问题介绍 1.2优化目标 2.问题的分析与思考 2.1已知条件的说明 2.2正确的理解准备费 2.3三个举例 3.模型的假设 4.模型的建立与求解 4.1模型的建立 4.2模型的求解 5.灵敏度分析 6.模型推广 1.问题概述 1.1问题介绍 上面这个已经介绍了&#xff…

web小项目-曼波生日录(Servlet+JSP+MySQL)

效果演示: 当记录条数过多时会自动出现滚轮,数据不会超出紫框 数据库实时记录: 项目源代码以及所用到的资源: 链接: https://pan.baidu.com/s/1w0czmH9xBfetk7CZ7RNbtQ?pwd6666 提取码: 6666 复制这段内容后打开百度网盘手机App…

PaddleOCR-PP-OCRv4推理详解及部署实现(下)

目录 前言1. 检测模型1.1 预处理1.2 后处理1.3 推理 2. 方向分类器模型2.1 预处理2.2 后处理2.3 推理 3. 识别模型3.1 预处理3.2 后处理3.3 推理 4. PP-OCRv4部署4.1 源码下载4.2 环境配置4.2.1 配置CMakeLists.txt4.2.2 配置Makefile 4.3 ONNX导出4.4 engine生成4.4.1 检测模型…

linux进程——解析命令行参数——环境变量详解

前言:本节内容还是linux进程, 主要讲解里面的环境变量——我们首先要知道的就是环境变量其实就是操作系统维护的一组kv值, 环境变量是系统提供的一组 变量名变量值 形式的变量。不同的环境变量之间具有不同的用途, 并且具有全局属…

(雷达数据处理中的)跟踪算法(4) --- 基于数据集的目标跟踪实践

说明 本文作为跟踪系列的第4篇博文,在前面几篇博文[1][2][3]的基础上对所采集的实际数据(来自国防科技大学电子科学学院所主导发布的数据集[4])进行跟踪实践。读者在阅读本文前,建议先阅读本系列的前3篇博文。 Blog 20240724 博文第一次撰写 目录 说明…

【Linux】管道通信和 system V 通信

文章目录 一、进程通信原理(让不同进程看到同一份资源)二、管道通信2.1 管道原理及其特点2.1 匿名管道和命名管道 三、共享内存通信3.1 共享内存原理3.2 创建和关联共享内存3.3 去关联、ipc 指令和删除共享内存 四、消息队列和信号量(了解&am…

【Unity2D 2022:UI】无法拖拽TextMeshPro组件

在预制体Card上挂载了四个Text Mesh Pro组件,分别命名为Name、HP、ATK、Description。 将预制体Card挂载脚本CardDisplay用来在预制体上显示属性,并创建TextMeshPro对象来接收TextMeshPro组件。 using TMPro; using UnityEngine; using UnityEngine.UI;…

HCIP之PPP协议(PAP认证,CHAP认证)、GRE、MGRE综合实验

实验过程 一、IP配置 [r1]interface Serial 4/0/0 [r1-Serial4/0/0]ip ad 15.1.1.1 24 [r1]interface GigabitEthernet 0/0/0 [r1-GigabitEthernet0/0/0]ip ad 192.168.1.1 24 r2]interface Serial 4/0/0 [r2-Serial4/0/0]ip ad 25.1.1.2 24 [r2]interface GigabitEthernet 0/…

基于 HTML+ECharts 实现智慧交通数据可视化大屏(含源码)

构建智慧交通数据可视化大屏:基于 HTML 和 ECharts 的实现 随着城市化进程的加快,智慧交通系统已成为提升城市管理效率和居民生活质量的关键。通过数据可视化,交通管理部门可以实时监控交通流量、事故发生率、道路状况等关键指标,…

LabVIEW多种测试仪器集成控制系统

在现代工业生产与科研领域,对测试设备的需求日益增长。传统的手动操作测试不仅效率低下,而且易出错。本项目通过集成控制系统,实现了自动化控制,降低操作复杂度和错误率,提高生产和研究效率。 系统组成与硬件选择 系…

MSSQL注入前置知识

简述 Microsoft SQL server也叫SQL server / MSSQL,由微软推出的关系型数据库,默认端口1433 常见搭配C# / .net IISmssql mssql的数据库文件 数据文件(.mdf):主要的数据文件,包含数据表中的数据和对象信息…

Mongodb入门介绍

文章目录 1、Mongodb:NoSQL数据库,分布式的文档型数据库2、适合场景:3、不适合场景:4、概念5、总结 1、Mongodb:NoSQL数据库,分布式的文档型数据库 2、适合场景: 1、web网站数据存储&#xff…

鸿蒙 Navigation VS Router 对比

当前HarmonyOS支持两套路由机制(Navigation和Router),Navigation作为后续长期演进及推荐的路由选择方案,其与Router比较的优势如下: 易用性层面: Navigation天然具备标题、内容、回退按钮的功能联动&…