【数据库系统概论】绪论--复习

1. 数据库的四个基本概念

  • 数据:指经过处理的、可用于计算机操作的原始信息(或者也可以理解成是——描述事务的符号,数字、图像、符号、音频、视频、文字、图形等都可以是数据)。
  • 数据库是长期存储在计算机内有组织、可共享的大量数据的集合。它可以供各种用户共享,具有最小的冗余度和较强的数据独立性。
  • 数据库管理系统(DBMS)是用来创建、管理和维护数据库的软件系统,负责数据的存储、查询、更新、权限控制等功能。它在数据库的建立、运维时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。

  • 数据库用户:使用数据库的不同类型用户,包括数据库管理员(DBA)、应用开发人员和最终用户。

2. 数据管理技术的发展

数据管理技术经历了几个发展阶段,每个阶段有其特点:

2.1 人工管理阶段

在这一阶段,数据主要由人工管理和维护。数据的存储通常是纸质或简单的手工记录,且没有统一的标准和结构,信息的存取、更新和查询都依赖人工操作。这个阶段的数据管理效率低,容易出现错误,且数据的共享性差。

2.2 文件系统阶段

进入这一阶段后,数据开始通过计算机存储在磁盘上的文件中。虽然计算机提高了数据的存储和访问效率,但文件系统阶段仍然存在很多问题:

  • 数据冗余:由于数据被分散存储在不同的文件中,可能会出现相同的数据被多次存储,导致冗余。
  • 数据不一致性:多个文件中的同一数据可能由于更新不同步而产生不一致。
  • 缺乏数据共享性:不同应用程序之间的数据访问和共享较为困难。
  • 数据独立性:应用程序与数据的物理存储方式相分离,程序员不需要关心数据存储的细节。
  • 数据共享:多个应用程序可以共享同一个数据库,避免了数据冗余和不一致性。
  • 数据安全性与完整性:通过权限控制、备份等手段保障数据的安全性与一致性。
  • 支持复杂查询和事务管理:提供高级的查询语言(如SQL)以及事务管理机制,确保数据操作的一致性。

2.3 数据库系统阶段

数据库系统阶段引入了数据库管理系统(DBMS),它对数据进行集中管理和维护,提供了更高效、规范的存储、管理和访问方式。数据库管理系统解决了文件系统阶段的许多问题,主要特点包括:

  • 整体数据结构化,独立性强:应用程序与数据的物理存储方式相分离,程序员不需要关心数据存储的细节。
  • 数据共享性强,冗余度低,易于扩充:多个应用程序可以共享同一个数据库,避免了数据冗余和不一致性。
  • 数据由数据库管理系统统一管理和控制,提高了数据库的安全性和一致性:通过权限控制、备份等手段保障数据的安全性与一致性。
  • 支持复杂查询和事务管理:提供高级的查询语言(如SQL)以及事务管理机制,确保数据操作的一致性。

3. 数据模型

3.1 模式(Schema)描述数据库结构的蓝图或框架,定义了数据的组织方式。

3.2 数据模型:用于描述数据,组织数据和对数据进行操作。数据模型是数据库系统的核心和基础。

3.3 数据模型三要素:

  1. 数据结构:描述数据库的组成对象以及对象之间的联系。
  2. 数据操纵(对数据进行相关操作)对数据库中的数据进行操作的方式或过程,主要包括数据查询数据插入数据更新数据删除等操作。
  3. 完整性约束:对数据库中数据的有效性和一致性所施加的规则,确保数据库中的数据符合特定的标准和要求。它是保证数据质量和准确性的核心机制。

3.4常见的数据模型:

3.4.1 概念模式:数据库的总体视图,定义了所有数据的逻辑结构,不依赖于具体应用。将现实从抽象为信息。

信息涉及到的相关概念:

1.实体:数据系统的对象(人,部门,课程,学校等信息来源体)
2.属性:实体具有的数据的名称,比如学号,姓名等。
3.:唯一标识实体属性的属性集,也就是能确定某一实体的所有的属性的集合叫码。
4.联系:实体与实体之间的关系叫联系,比如学生这个实体属于班级,“属于”这个关系就叫做学生和班级的一个联系。
5.概念模型的表示方法:实体--联系模型(即E-R模型)。
3.4.2 层次模型
  • 数据结构:采用树形结构,数据以节点和边的形式组织,每个节点代表一个数据项,边表示数据项之间的父子关系。根节点通常代表数据库的总体。
  • 数据操纵:主要通过指针来进行访问和操作,通常需要在树形结构中进行遍历或查找。
  • 完整性约束:支持父子节点之间的层次性约束,但缺乏复杂的约束表达能力。
  • 优缺点
    • 优点:查询效率高,适用于层次性结构明显的数据(如组织结构)。
    • 缺点:灵活性差,数据只能以一种固定的层次结构表示,不能表示多对多关系,维护和修改较为困难。

3.4.3 网状模型

  • 数据结构:采用图形结构,节点代表数据项,边代表数据项之间的关系,支持多对多的关系,每个节点可以有多个父节点。
  • 数据操纵:通过指针连接节点,支持更加灵活的数据操控,可以进行复杂的查询和遍历。
  • 完整性约束:支持多对多关系,但依赖于指针,且缺乏统一的约束机制来保证数据一致性。
  • 优缺点
    • 优点:比层次模型更灵活,支持复杂的多对多关系,可以较好地表示实际中的数据关系。
    • 缺点:模型复杂,维护困难,容易出现指针循环等问题,数据操控的复杂度较高。

3.4.4 关系模型

  • 数据结构:采用表(关系)结构,每个表由行(元组)和列(属性)组成,数据项通过字段来表示。表与表之间通过外键建立联系。
  • 数据操纵:通过关系代数和SQL语言进行查询和操控。操作包括选择(SELECT)、投影(PROJECT)、连接(JOIN)等。
  • 完整性约束:包括实体完整性(主键约束)、参照完整性(外键约束)和域完整性(数据域约束)。
  • 优缺点
    • 优点:结构简单,易于理解和使用,支持灵活的查询和操作,数据独立性高,支持复杂的多表连接。
    • 缺点:对于一些复杂的层次性或图形结构数据表示不够自然,查询复杂时性能可能较差。

4.三级模式结构:(数据库系统内部的体系结构)

4.1模式:

是对数据库结构的描述,它定义了数据库中所有表、字段、数据类型以及它们之间关系的总体布局。可以把模式理解为数据库的“蓝图”或“设计图”。模式是所有用户公共的数据视图。

4.2 外部模式

外模式也叫子模式或者用户模式,它是数据库用户(包括程序员和终端用户)都能够看见和使用的局部数据的逻辑结构和特征的描述。一个数据库可以有多个外模式。

4.3 内模式

内模式也称物理模式或者存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。内模式主要是由数据库管理员(DBA)和数据库系统的自动化工具来管理和操作的。普通的数据库用户(如应用开发者--即程序员和终端用户)通常是无法直接看到或操作内模式的,因为它涉及数据库的物理存储和底层优化细节。

5.数据库的两级映像与数据独立性

5.1 两级映像

  • 是指数据库系统概念模式(逻辑模式)和内模式(物理模式)之间的映射关系,数据库通过这两级映像实现了数据存储和数据访问的分离。
  • 映像的作用:
    • 外模式/模式映像概念模式外模式之间的映射。它帮助数据库实现数据独立性,允许用户以不同方式访问数据而不干扰数据库的其他部分,体现数据的逻辑独立性。
    • 模式/内模式映像概念模式内模式之间的映射。用户的视图和应用程序对数据的访问不受数据库物理存储和内部结构变化的影响,体现数据的物理独立性。

5.2 数据独立性

  • 指的是应用程序数据存储结构之间的解耦,意味着在不修改应用程序的情况下,可以改变数据库的存储结构或逻辑结构。
  • 数据的逻辑独立性:指在不影响应用程序的前提下,可以修改概念模式。
  • 数据的物理独立性:指在不影响应用程序的前提下,可以修改内模式(数据的存储结构)。

6. 数据库系统的组成

  • 硬件:提供存储、计算资源的物理设备。
  • 软件:数据库管理系统(DBMS)、数据库查询语言(如SQL)、应用程序等。
  • 数据:存储在数据库中的实际数据。
  • 用户:使用和操作数据库的人员。
  • 应用程序:通过数据库提供服务的各种程序和工具。

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

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

相关文章

2、C#基于.net framework的应用开发实战编程 - 设计(二、四) - 编程手把手系列文章...

二、设计; 二.四、制定设计规范; 编码规范在软件编程里起到了非常重要的作用,主要是让代码更加的规范化,更加的简洁,更加的漂亮,更加的能够面向对象显示。 以前那个系列就有发布C#的编码规范的文…

Git 下载问题及解决方法

在某些网络环境下,可能会遇到 Git 无法下载的问题,通常是由于网络限制或需要通过代理访问导致的。以下是常见的解决方法,包括设置代理、取消代理以及其他诊断方法。 1. 设置 Git 代理 在一些网络环境下,可能会使用工具&#xff0…

《从入门到精通:蓝桥杯编程大赛知识点全攻略》(一)-递归实现指数型枚举、递归实现排列型枚举

本篇博客将聚焦于通过递归来实现两种经典的枚举方法:指数型枚举和排列型枚举。这两种枚举方式在计算机科学和算法竞赛中都有广泛应用,无论是在解题中,还是在实际工作中都极具价值。 目录 前言 斐波那契数列递归 递归实现指数型枚举 算法思…

react 优化方案

更详细的 React 优化方案可以分为性能优化、代码结构优化、开发效率提升等多个方面,结合实际项目需求,逐步应用这些优化策略。 一、性能优化 1. 避免不必要的重新渲染 React.memo: 缓存组件,防止组件在父组件重新渲染时无意义的重新渲染。 const ChildComponent = Reac…

大模型 LangChain 开发框架-初探

大模型 LangChain 开发框架-初探 一、LangChain 概述 LangChain 是一个强大的由大型语言模型(LLM)驱动的应用程序开发框架。它的核心价值在于提供了标准化组件接口、高效的任务编排能力以及可观察性和评估机制。通过这些特性,LangChain 有效…

java class类对象 加载时机

java class类对象 是在什么时候被加载的? 在 Java 中,类对象的加载时机通常指的是类加载机制中的“加载”阶段,而实例化则是指创建类的实例对象的过程。这两个过程是分开的,下面是详细的解释: 类加载时机:…

生成埃里克卡特曼人工智能语音听起来像他或配音视频

您是《南方公园》和迷人角色埃里克卡特曼的忠实粉丝吗?您是否渴望获得标志性的埃里克卡特曼 AI 语音,将他的动画魅力融入到您的数字内容、游戏或流媒体体验中?如果答案是肯定的,那么您来对地方了! 在本文中&#xff0…

BLDC无感控制的驱动逻辑

如何知道转子已经到达预定位置,因为我们只有知道了转子到达了预定位置之后才能进行换相,这样电机才能顺滑的运转。转子位置检测常用的有三种方式。 方式一:通过过零检测,三相相电压与电机中性点电压进行比较。过零检测的优点在于…

【Vue教程】使用Vite快速搭建前端工程化项目 | Vue3 | Vite | Node.js

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 🚩今天毛毛张分享的是关于如何快速🏃‍♂️搭建一个前端工程化的项目的环境搭建以及流程🌠 文章目录 1.前端工程化环境搭建&#…

js 中的递归应用+异步递归

文章目录 递归详解递归算法优化复杂应用中递归应用递归过程中应该注意的一些事异步递归及实例 递归详解 尾递归优化 原理:尾递归是指在函数的最后一步调用自身。在这种情况下,编译器或解释器可以通过优化,将递归调用转换为循环,从…

手机租赁平台开发全攻略打造高效便捷的租赁服务系统

内容概要 手机租赁平台开发,简单说就是让用户能轻松租赁各类手机的高效系统。这一平台不仅帮助那些想要临时使用高端手机的人们节省了不少资金,还为商家开辟了新的收入渠道。随着智能手机的普及,很多人并不需要长期拥有一部手机,…

[最佳方法] 如何将视频从 Android 发送到 iPhone

概括 将大视频从 Android 发送到 iPhone 或将批量视频从 iPhone 传输到 Android 并不是一件容易的事情。也许您已经尝试了很多关于如何将视频从 Android 发送到 iPhone 15/14 的方法,但都没有效果。但现在,通过本文中的这 6 种强大方法,您可…

记录一下图像处理的基础知识

记录一下自己学习的图像处理的基础知识。 一、图像的文件格式以及常用的图像空间 1、文件格式 常见的图像文件格式有 jpg, png, bmp, gif (1)jpg:有损压缩算法,大幅减小文件大小,便于存储和传输,兼容性…

算法-各位数相加,直至和为个位数

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 示例 1: 输入: num 38 输出: 2 解释: 各位相加的过程为: 38 --> 3 8 --> 11 11 --> 1 1 --> 2 由于 2 是一位数,所以返回 2。…

Openwrt 下移植 源码安装Cmake

Openwrt 下源码编译安装Cmake cmake介绍源码下载安装configure问题/usr/bin/ld: cannot find -ldlCould NOT find OpenSSL运行CMake Error: Could not find CMAKE_ROOT !!!Openwrt opkg不支持cmake安装,本文尝试在目标板上基于cmake源码编译安装cmake, 并将遇到的问题和解决方…

使用Python,networkx构造有向图及无向图以及图合并等api

使用Python,networkx构造有向图及无向图以及图合并等api 源码图的构造、节点及边的添加等有向图及无向图及多重图 参考 方法名方法作用subgraph(G, nbunch)返回包含nbunch节点的子图union(G, H[, rename])合并G和H图disjoint_union(G, H)合并G和H图cartesian_produc…

【Java回顾】Day3 继承|Override/Ovverload|多态|抽象类|封装|接口|枚举

学习资料 菜鸟教程 https://www.runoob.com/java/java-interfaces.html 继承|Override/Ovverload|多态|抽象类|封装|接口|枚举 继承 创建分等级层次的类,子类继承父类的特征、行为、方法 class 父类{ } class 子类 extends 父类{ super(); }一些性质 Java 不支持…

2025年AI和AR谁才是智能眼镜的未来

在2025年,智能眼镜市场正迎来一场技术革新的浪潮,其中AI和AR技术的竞争尤为激烈。那么,究竟谁才是智能眼镜的未来呢?让我们来一探究竟。 AI眼镜的崛起 AI眼镜通过集成人工智能技术,提供了语音识别、环境感知和个性化服…

java实现预览服务器文件,不进行下载,并增加水印效果

通过文件路径获取文件,对不同类型的文件进行不同处理,将Word文件转成pdf文件预览,并早呢更加水印,暂不支持Excel文件,如果浏览器不支持PDF文件预览需要下载插件。文中currentUser.getUserid(),即为增加的水…

快速上手大模型的对话生成

本项目使用0.5B小模型,结构和大模型别无二致,以方便在如CPU设备上快速学习和上手大模型的对话上传 #mermaid-svg-Z86hUiQZ0hg9BVji {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Z86hUiQZ0h…