首页 > 数据库 >SQL 数据库学习 Part 1

SQL 数据库学习 Part 1

时间:2024-06-11 18:43:49浏览次数:22  
标签:逻辑 存储 数据库 映像 模式 Part SQL 数据

数据和信息

信息

信息是客观存在的,是关于现实世界事物的存在方式或运动状态

数据

数据是用来记录信息的可识别的符号,是信息的具体表现形式

数据和信息的联系

  • 数据是信息的符号表示或载体
  • 信息则是数据的内涵,是对数据的语义解释

数据库

定义

数据库是长期存储在计算机内、有组织的可共享的数据集合

特征

  • 数据按一定的数据模型组织、描述和存储
  • 可为各个用户共享
  • 冗余度较小
  • 数据独立性较高
  • 易扩展

数据库管理系统

定义

用户与操作系统之间的一层数据管理软件,科学地组织和存储数据、高效地获取和维护数据

主要功能

  • 数据定义
  • 数据操纵
  • 数据地运行管理
  • 数据库地建立和维护功能

数据库系统

定义

计算机系统中引入数据库后地系统构成

构成

  • 数据库
  • 数据库管理系统
  • 应用系统(及开发工具)
  • 相关人员(数据库管理员、应用系统开发人员、用户)

数据库系统的体系结构(三层模式和两级映像)

模式

在用户(或应用程序)到数据库之间,DB 的数据结构有 3 个层次:外部模型,逻辑模型和内部模型
image
这三个层次要用 DB 的数据定义语言(DDL)定义,定义以后的内容,称为模式
image

逻辑模式

  • 数据库中全体数据的逻辑结构和特征的描述
  • 是综合了所有用户的需求的公共数据视图
  • 一个数据库只有一个逻辑模式

地位

  • 是数据库系统模式结构的中间层
  • 与数据的物理存储细节和硬件环境无关
  • 与具体的应用程序、开发工具及高级程序设计语言无关

定义的内容

  • 数据的逻辑结构(数据项的名字、类型、取值范围等)
  • 数据之间的联系
  • 数据有关的安全性、完整性要求

外模式(子模式 / 用户模式)

定义

  • 数据库用户(包括用户程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
  • 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示

地位

  • 介于模式与应用之间
  • 逻辑模式与外模式的关系:一对多
  • 外模式通常是逻辑模式的子集

外模式与应用的关系

一对多

用途

  • 保证数据库安全性的一个有力措施,每个用户只能看见和访问所对应的外模式中的数据
  • 保证数据独立性的一个有力措施

内模式(存储模式)

定义

数据物理结构和存储方式的描述
数据在数据库内部的表示方式

  • 记录的存储方式(顺序存储,按照B树结构存储,按 hash 方法存储
  • 索引的组织方式
  • 数据是否压缩存储
  • 数据是否加密
  • 数据存储记录结构的规定

映像

image

外模式 / 逻辑模式映像

  • 定义外模式与逻辑模式之间的对应关系
  • 每一个外模式都对应一个外模式 / 模式映像
  • 映像定义通常包含在各自外模式的描述中

逻辑模式 / 内模式映像

  • 逻辑模式 / 内模式映像定义了数据全局逻辑结构存储结构之间的对应关系
  • 数据库中 模式 / 内模式映像是唯一
  • 该映像定义通常包含在逻辑模式描述中

数据独立性

应用程序与数据之间相互独立

逻辑独立性

  • 指用户的应用程序数据库的逻辑结构是相互独立的。
  • 数据的逻辑结构改变了,应用程序也可以不变。
  • 外模式 / 模式映像保证了数据的逻辑独立性。

物理独立性

  • 用户的用户程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变
  • 模式 / 内模式映像的用途是保证数据的物理独立性

数据模型

  • 数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。
  • 数据模型就是现实世界的模拟

三方面要求

  1. 能比较真实地模拟现实世界
  2. 容易为人理解
  3. 便于在计算机上实现

三要素

  1. 数据结构 —— 用于描述静态特性
  2. 数据操作 —— 用于描述动态特性
  3. 数据的约束条件 —— 是一组完整性规则的集合

分类

  1. 关系模型
    1. 数据结构 —— 表
  2. 半结构化的数据模型
    1. 网状模型
    2. 层次模型
    3. XML
      • 可扩展标记语言,常用于传输和存储数据
      • 是一种数据表示格式,可以描述非常复杂的数据结构
      • 纯文本,默认使用 UTF-8 编码
      • 可嵌套,适合表示结构化数据
      • 常用于网络传输
    4. JSON
      • 功能全面,标签繁琐,格式复杂
      • 在 Web 上 JSON 逐渐取代 XML
      • 是 JavaScript Object Notation 的缩写,去除了所有 JavaScript 执行代码,只保留 JavaScript 的对象格式。
      • JSON 只允许 UTF-8 编码,不存在编码问题
      • JSON 只允许双引号作为 key ,特殊字符用 \ 转义,格式简单
      • JSON 可以直接用 JavaScript 直接处理。

说明

  • 这些数据模型的根本区别在于数据结构不同

数据库系统阶段的特点

数据的管理者

DBMS

数据面向的对象

现实世界

数据的共享成都

  • 共享性高
  • 降低数据的冗余度,节省存储空间
  • 避免数据间的不一致性
  • 使系统易于扩展

数据的独立性

高度的物理独立性和一定的逻辑独立性

数据的结构化

  • 整体结构化
  • 数据的结构用数据模型描述,无需程序定义和解释
  • 数据可以变长
  • 数据的最小存取单位是数据项

数据控制能力

由 DBMS 统一管理和控制

标签:逻辑,存储,数据库,映像,模式,Part,SQL,数据
From: https://www.cnblogs.com/AlwaysBeShine/p/18242558

相关文章

  • mybatis条件判断及动态sql的简单拓展
    在MyBatis中,可以通过使用一些特定的标签(、...)以及其他动态SQL功能来实现条件判断。这使得SQL查询可以根据不同的条件动态生成,从而提高查询的灵活性和可维护性。本文以订单列表简单查询为例,对mybatis条件判断及动态sql进行简单拓展。建表语句CREATETABLE`wwtms`.`order_t......
  • 深入解析MySQL Threads_running:监控、诊断与性能优化策略
    基本概念​在MySQL中,Threads_running是一个用于监控数据库并发连接数的指标。它表示当前正在执行的线程数。当该值超过数据库能够处理的最大连接数时,可能会导致数据库性能下降甚至崩溃。线程数过多会由于上下文切换、锁等待等问题从而导致性能急剧下降。设置Threads_......
  • 优化MySQL连接管理:深入解析max_connections参数与解决Too Many Connections策略
    前言​在现代的数据库管理中,合理配置max_connections参数对于确保MySQL数据库的稳定性和高效性至关重要。本文将深入探讨max_connections的基本概念,分析导致“Toomanyconnections”错误的常见原因,并提供一系列解决方案,以帮助数据库管理员和开发者优化数据库性能。基本......
  • SQLynx荣登Web SQL工具ChatGPT推荐榜首,数据库管理工具首选
    近年来,随着互联网技术的迅猛发展,数据库管理工具也在不断进步和创新。作为一种便捷且高效的数据库管理方式,WebSQLIDE工具逐渐成为开发者和数据库管理员的首选。在众多WebSQL工具中,SQLynx凭借其卓越的功能和用户体验,荣登ChatGPT同类推荐榜首,成为市场上的领导者。目录1SQ......
  • 五天搞定Mysql基础知识-Day04
    学习目标:        1、掌握内连接        2、掌握左连接和右连接        3、掌握自关联和子查询·第一章数据准备一、创建表,并向表插入数据第二章连接查询一、基本概念        1、当查询结果来源于多张表时,需要将多张表连接成一个大......
  • Sql Server 分批复制数据
    添加辅助列ALTERTABLEdbo.SourceTableADDIsCopiedBITNOTNULLDEFAULT0;这里要给源表添加一个标识列,是因为我不想用到ORDERBY。当然也可以改成不用辅助列,用ORDERBY的方式。创建目标表SELECT*INTODestinationTableFROMdbo.SourceTableWHERE1=0;当条件不满......
  • Mssql数据注入
    1.查询用户创建的数据表selectid,name fromsysobjectswherextype='u'; 2.查询用户创建数据表的具体列名select*fromsyscolumnswhere id=上一步获取的id值;3.查询具体内容selectid,字段名from数据表名;4.数据库名db_name()5.用户登录名suser_name()6......
  • 以sqlilabs靶场为例,讲解SQL注入攻击原理【54-65关】
    【Less-54】与前面的题目不同是,这里只能提交10次,一旦提交超过十次,数据会重新刷新,所有的步骤需要重来一次。解题步骤:根据测试,使用的是单引号闭合。#判断字段的数量?id=1'orderby3--aaa#获取数据库的名字?id=-1'unionselect1,2,database()--aa#获取数据......
  • 巧妙使用mapstruct来解决数据库entiy到实体dto的映射关系
    1.引入mapstruct<dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-p......
  • 数据库-Duckdb-catalog和schema
    创建数据库1.会有一个或者两个文件.duckbd.wal 2.用户的数据库名称--databasename-database_oid数据库对象表的全限定名可表示为:Catalog名.Schema名.表名01.DuckDB'stwointernaldatabaseschemanames,systemandtemp.有两个内部的数据schema_nameT......