SQL 数据库学习 Part 1

数据和信息

信息

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

数据

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

数据和信息的联系

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

数据库

定义

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

特征

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

数据库管理系统

定义

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

主要功能

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

数据库系统

定义

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

构成

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

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

模式

在用户(或应用程序)到数据库之间,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 统一管理和控制

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

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

相关文章

1_JAVA线程

Java 线程 1. 创建和运行线程 1.1 直接使用 Thread 例如: public class ThreadTest {public static void main(String[] args) {Thread t = new Thread() {public void run(){// 要执行的任务System.out.println(Thread.currentThread().getName()+" Running");}};/…

Go变量作用域精讲及代码实战

关注作者,复旦AI博士,分享AI领域与云服务领域全维度开发技术。拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕博,复旦机器人智能实验室成员,国家级大学生赛事评审专家,发表多篇SCI核心期刊学术论文,阿里云认证的资深架构师,项目管理专业人士,上…

C# JavaScriptSerializer序列化时的时间处理详解

原文链接:https://www.jb51.net/article/122143.htm输出如下图所示: 猜测这里是由于js初始化时间的时候往往是向 1970/01/01 添加毫秒数,JavaScriptSerializer进行序列化的时候也会格式化为距离1970/01/01 到当该时间点GMT+0 时间的毫秒数, 如果直接反序列化可以看到少了8…

智能编程支持分析本地工程文件,项目级开发效率再度提升!

CodeGeeX的智能问答新增关联本地文件的系列功能,用户在智能问答的输入框中输入@,就可以在弹出框中选择需要使用的指令。从而能够针对所关联的文件给出更有针对性的问答和代码建议。下面我们将分别介绍在编程工作中,如何关联本地文件,并且使用不同的指令,来获得更精准的分析…

100%国产化网卡,联瑞在行动

国产CPU与国产网卡都是我国信息技术产业中的重要组成部分,它们的发展对于提升我国信息技术水平、保障信息安全和促进经济发展具有重要意义。 国产CPU在近年来取得了显著进展。例如飞腾、申威、海光、华为鲲鹏、龙芯、兆芯等品牌的CPU产品百花齐放,这些产品在性能上已经能够与…

C++面向对象语言自制多级菜单

C++面向对象语言自制多级菜单,可移植进嵌入式系统因为要做一个小应用,需要一个菜单类,在网上找了许久,也没有找到一款心仪的菜单类,索性用C++语言,自制一个命令行级别的菜单类,并制作成库,现记录下来,供以后借鉴。 一、特性无限制条目 无限制层级 用户自定义条目和动作…

Redis之主从同步

概念主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。 前者称为主节点(master/leader),后者称为从节点(slave/follower); 数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主。 默认情况下,每台Redis服务器都是主节点;且一个主节点可…

VulnHub - breach系列:breach-2.1

信息收集真的很重要,在不注意的角落可能藏着可用信息VulnHub - breach系列:breach-2.1 靶机描述 Breach 2.0 是多部分系列中的第二部分,是一项 boot2root/CTF 挑战,旨在展示真实场景,沿途充满了曲折和恶作剧。 VM 配置了静态 IP(192.168.110.151),因此您需要将主机适配…

[OpenBMC] LDAP 设定(一) - nss-pam-ldapd

OpenBMC ldap设定和验证,可分成几个部分,本篇会先介绍第一个部分nss-pam-ldapdnss-pam-ldapd LDAP server 架设 Redfish/Web设定 nss-pam-ldapd 底下 OpenBMC 对nss-pam-ldapd 的描述 Bringing the LDAP authentication module support in openbmc stack requires to pull…

斯坦福大学Mobile ALOHA——一款革命性的家政机器人

https://www.bilibili.com/video/BV1nT421e7Cy/?spm_id_from=333.999.0.0 随着社会老龄化问题的加剧,家政机器人成为了解决日常生活辅助需求的新方向。欢迎来了解Mobile Aloha家政机器人的技术原理和潜力——它将把你的家务活变成轻而易举的事。推动这款机器人功能的技术特点…

某东 h5st 4.7 逆向分析

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术…

贪吃蛇小游戏Python Pygame实现

运行结果 游戏规则 1. ↑ ↓ ← → 来控制蛇的移动方向 2. 蛇吃到自己身体的任意一部分游戏结束, 自动退出窗口 3. 蛇的速度会随游戏时间增长越来越快, 与吃食物的多少 (分数) 无关 4. 蛇可以穿过边界到达另一边 5. 场上食物同时只会存在一个, 颜色随机, 但每个颜色的所得分数…