第十四章 数据库

news2024/9/23 10:27:39

第十四章 数据库

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.coloradmin.cn/o/1946582.html

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

相关文章

ZLMRTCClient配置说明与用法(含示例)

webRTC播放视频 后面在项目中会用到通过推拉播放视频流的技术,所以最近预研了一下webRTC 首先需要引入封装好的webRTC客户端的js文件ZLMRTCClient.js 下面是地址需要的自行下载 http://my.zsyou.top/2024/ZLMRTCClient.js 配置说明 new ZLMRTCClient.Endpoint…

小猪佩奇.js

闲着没事 使用js 画一个小猪佩奇把 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</tit…

BUUCTF [MRCTF2020]Ezpop

这道题对于刚接触到pop链的我直接把我整懵了&#xff0c;一边看着魔术方法一边分析 魔术方法可以看这里PHP 魔术方法 - 简介 - PHP 魔术方法 - 简单教程&#xff0c;简单编程 (twle.cn) 代码解析 经过以上的分析我们可以理一下解题思路&#xff1a;接收参数反序列化之前先触发…

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

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

C#使用csvhelper实现csv的操作

新建控制台项目 安装csvhelper 33.0.1 写入csv 新建Foo.cs namespace CsvSut02;public class Foo {public int Id { get; set; }public string Name { get; set; } }批量写入 using System.Globalization; using CsvHelper; using CsvHelper.Configuration;namespace Csv…

Python3网络爬虫开发实战(2)爬虫基础库

文章目录 一、urllib1. urlparse 实现 URL 的识别和分段2. urlunparse 用于构造 URL3. urljoin 用于两个链接的拼接4. urlencode 将 params 字典序列化为 params 字符串5. parse_qs 和 parse_qsl 用于将 params 字符串反序列化为 params 字典或列表6. quote 和 unquote 对 URL的…

通信原理思科实验五:家庭终端以太网接入Internet实验

实验五 家庭终端以太网接入Internet实验 一实验内容 二实验目的 三实验原理 四实验步骤 1.按照上图选择对应的设备&#xff0c;并连接起来 为路由器R0两个端口配置IP 为路由器R1端口配置IP 为路由器设备增加RIP&#xff0c;配置接入互联网的IP的动态路由项 5.为路由器R1配置静…

Mysql-索引视图

目录 1.视图 1.1什么是视图 1.2为什么需要视图 1.3视图的作用和优点 1.4创建视图 1.5更新视图 1.6视图使用规则 1.7修改视图 1.8删除视图 2.索引 2.1什么是索引 2.2索引特点 2.3索引分类 2.4索引优缺点 2.5创建索引 2.6查看索引 2.7删除索引 1.视图 1.1什么是…

[Javascript】前端面试基础3【每日学习并更新10】

Web开发中会话跟踪的方法有那些 cookiesessionurl重写隐藏inputip地址 JS基本数据类型 String&#xff1a;用于表示文本数据。Number&#xff1a;用于表示数值&#xff0c;包括整数和浮点数。BigInt&#xff1a;用于表示任意精度的整数。Boolean&#xff1a;用于表示逻辑值…

流量录制与回放:jvm-sandbox-repeater工具详解

在软件开发和测试过程中&#xff0c;流量录制与回放是一个非常重要的环节&#xff0c;它可以帮助开发者验证系统在特定条件下的行为是否符合预期。本文将详细介绍一款强大的流量录制回放工具——jvm-sandbox-repeater&#xff0c;以及如何利用它来提高软件测试的效率和质量。 …

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

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

刷机维修进阶教程-----何谓“tee损坏” 指纹丢失 掉帧 传感器失效?详细修复步骤教程

TEE损坏指的是安卓机型中Key Attestation密钥认证所依赖的可信应用中的证书库被破坏了。然后拒绝为指纹密匙认证提供服务。加密的密匙由TEE负责管理。tee损坏只影响当前机型的密匙认证。不影响加密。通俗的理解。如果你机型维修或者刷机或者解锁或者格机 全檫除分区等等后有异常…

Python自然语言处理库之NLTK与spaCy使用详解

概要 自然语言处理(NLP)是人工智能和数据科学领域的重要分支,致力于让计算机理解、解释和生成人类语言。在Python中,NLTK(Natural Language Toolkit)和spaCy是两个广泛使用的NLP库。本文将详细介绍NLTK和spaCy的特点、功能及其使用方法,并通过具体示例展示如何使用这两…

押金原路退回,手机版一键操作秒到账,无需设备收银设备

传统收银 1.操作不熟练&#xff1a;对收银系统的功能和操作不熟悉&#xff0c;可能导致收银过程较长&#xff0c;顾客等待时间增加。 2无法适应新技术&#xff1a;对于一些新的支付方式或技术&#xff0c;不能自主学 3操作不熟练&#xff1a;鼠标使用不熟练&#xff0c;对收…

element DatePicker 日期选择器,只选择月,月份数据从0开始(0月31日),而不是从1开始,JavaScript的原因,如下为解决办法

<el-date-pickerv-model"queryParam.yuedTime"type"month"placeholder"选择月"change"handleMonthChange"></el-date-picker> 方式一&#xff1a;在前端处理 change"handleMonthChange" &#xff0c;增加此方…

PostgreSQL的学习心得和知识总结(一百四十九)|psql 的使用技巧:设置、预设、回显和已保存的查询

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

nms概念

nms基本概念&#xff1a;非极大值抑制 用途&#xff1a;在做目标检测的时候&#xff0c;往往会生成很多很多候选框&#xff0c;在做目标检测的时候&#xff0c;往往会生成很多很多候选框。 处理流程&#xff1a; 1.对某一类按score对候选框进行排序&#xff0c;并选出score最…

ffmpeg把pcm封装为wav

note 1.wav格式中&#xff0c;音频数据未经过压缩&#xff0c;直接封装即可 2.对于编码器的选择&#xff0c;应选择和pcm裸数据一致的编码器(本次实际不须编码) version #define LIBSWRESAMPLE_VERSION_MAJOR 2 #define LIBSWRESAMPLE_VERSION_MINOR 9 #define LIBSWRESAM…

Python网络爬虫详解:实战豆瓣电影信息采集

文章目录 前言一、爬虫是什么&#xff1f;二、常用库及其作用1.Requests2.BeautifulSoup3. lxml4. Scrapy5. Selenium6. PyQuery7. Pandas8. JSON9. Time 三、实现步骤步骤一&#xff1a;环境准备步骤二&#xff1a;数据采集步骤三&#xff1a;数据处理步骤四&#xff1a;数据存…

【数据分享】2008-2022年我国省市县三级的逐日NO2数据(excel\shp格式)

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000-2022年的省市县三级的逐日PM2.5数据、2013-2022年的省市县三级的逐日CO数据和2013-2022年的省市县三级的逐日SO2数据&#xff08;均可查看之前的文章获悉详情&#xff09;&#xff01; 本次…