通俗的讲讲数据库系统的四个基本概念

前言

刚学数据库系统概论这门课,如果文章中由错误,欢迎指出。

第一章

1.1.1四个基本概念

1. 数据

定义

描述事物的符号记录。

种类

文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等。

特点

数据与其语义是不可分割的。

(数据的)语义:数据的含义

为什么不可分割?

因为数据的表现形式还不能完全表达其内容。

举个例子:

这里的数据是8,表现形式是文本。

但是作为提问的一方,单纯看数字是不知道明天几点要去做核酸检测的。

这个8可以有多种语义:

语义1:早上8点

语义2:晚上8点

等等。

只有该数据配合上语义(语义1或语义2),数据(8)才能描述事物(几点去核酸检测)。

2.数据库

定义

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

特点
  • 数据按一定的模型组织、描述和存储。

  • 冗余程度较小

    冗余[rǒng yú]:多余的重复内容。

    什么叫冗余程度较小?举个例子:

    一个学校要收集某个年级的个人信息,包括:姓名、年龄、性别、民族、联系方式、家庭住址。并通过表格形式来记录。

    如果你是制度这个表格的人,你觉得哪些信息是冗余的?

    很显然,性别和民族会有很多重复的记录,因为性别只有男女;而大多数人都是汉族。

    如果不减小冗余程度,记录的表格可能是这样:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WZc75PH3-1645546089068)(D:/FeiYang/AppData/Typora/Figure/image-20220222220734070.png)]

    在人数不多的情况下还好,但如果一个年级有上千人,将有大量的冗余信息。

    我们可以将表格分为4个子表格:男生汉族、男生少数民族、女生汉族、女生少数民族。

    这样就减少了大量的冗余信息。

    你可能会说年龄也是有冗余的,但注意,我们是希望冗余程度较小,而不是没有,如果按照年龄分出多个表格,虽然一个年级的人年龄差距不大,但是由于冗余的信息点较多,表格也会很多,这增加了不必要的开销。

  • 数据独立性较高

    什么是数据独立性?

    数据独立性分为2种:物理独立性、逻辑独立性。

    什么叫独立性较高?说来话长:

    一个可用的系统必须能够高效的检索数据。这种需求促使设计者使用复杂的数据结构来表示数据,但大部分使用系统的用户并没有受过计算机专业训练,为了提高用户体验

    (比如查单词,假如你想查的是abandon,往往只需要输入几个字母就会出现该单词的提示:

    在这里插入图片描述

    用户只关系这个软件查单词是否好用,它具体是怎样实现的用户并不关心,也不应该是提高使用门槛的一部分。)

    ,开发人员通过3个层次来简化用户与系统的交互。

    • 物理层:最低层次,描述数据是怎样存储的。详细描述底层复杂的数据结构

    • 逻辑层:描述数据库中存储什么样的数据,以及这些数据存在什么样的关系。虽然逻辑层的一些简单的东西可能涉及复杂的物理层结构,但逻辑层的用户(数据库程序设计人员,实现数据库的某种功能)并不需要了解。这就是数据的物理独立性

      比如用户定义了数据库中的某个字段(可以理解为表中的某一列,比如姓名、性别等等)是Int(整数)类型,并不需要知道Int是如何定义的。

    • 视图层:只描述数据库的某个部分,或者可以说是某个应用程序,某个界面(就像查单词的软件)。让用户直接点点鼠标,打打键盘就可以完成查询、修改等等功能。这就是数据的逻辑独立性

    再来举一个例子,将这些知识点串起来吧:

    设计一个学生管理系统(简化版),我们定义如下记录:
    S t u d e n t = { I d : i n t n a m e : c h a r ( 20 ) m a j o r : c h a r ( 20 ) g r a d e : i n t Student = \left\{ \begin{array}{lr} Id & : & int\\ name & : & char(20) \\ major & : & char(20) \\ grade & : & int \end{array} \right. Student=Idnamemajorgrade::::intchar(20)char(20)int

    char(20)表示数据内容最长为20个字符。

    在物理层,一个Student记录可能被描述为连续存储位置组成的存储块(比如内存)。

    编译器为程序设计人员屏蔽了这一层(物理层)的细节。

    在逻辑层,每个Student的记录通过类型定义来描述,比如学号(Id)是整型。如果有多种记录类型(Teacher、Worker),同时还要定义这些记录类型的关系,比如Teacher可以登记Student的成绩等等。

    在视图层,一系列应用程序,让用户操作更舒服。

    像这样:


  • 可为各种用户共享(学生管理系统就是给在校的所有学生使用的嘛)

  • 易扩展

    比如要给某张表添加字段,或者给数据库添加表,操作最好不要太复杂。

3.数据库管理系统 DataBaseManagerSystem

简称DBMS。

定义

数据库和访问数据库中数据的程序组成。

数据库管理系统主要是为了提供一种方便、高效的途径存取数据。

功能

先贴个ppt(虽然很无聊,但说不定有人需要呢),再通过例子讲。

ppt真的很枯燥 : (

让我们从实际例子出发 : )

某个大学决定开设一个新的专业,就叫数据科学吧,那么这个大学就要建立一个新的系,并创建一个永久性文件(如果这个系已经存在,那就在这个系的文件中添加信息也行)来记录关于这个系的老师、这个专业的学生、开设的课程等等。然后编写程序来处理这个专业的规则。

上面所描述的是文件处理系统,说不定就是你写的某个作业。在数据库管理系统出现以前,大家都是通过这样的系统来存取信息的。

但是文件处理系统比起DBMS仍有缺点(不然就不用DBMS啦)

  • 数据的冗余和不一致。

    冗余相信大家都理解了,那么不一致是什么意思呢?

    举个例子:

    一个学生他读了两个专业,比如数学和生物,这个学生的地址和电话号码等信息就有可能同时存在于数学系和生物系记录的文件中,这种冗余浪费空间不说,如果该学生换了电话号码,而只报告了数学系,那么明明是同一个人的电话号码,生物系的记录却和数学系的不一样。

  • 数据访问困难

    就是不能以高效的方式获取想要的数据。

    举个例子:

    现在是疫情期间,在学生返校的几天后,某地突然发生了一些阳性患者,那么政府就需要收集该地的学生名单。

    文件系统只能提供所有学生的名单,那怎么办呢?有两种办法:

    方法1:人工收集,从所有学生的名单中找出该地的学生。

    方法2:编写一个程序,来将该地的学生过滤出来。

    对于方法1,如果大量学生一个一个去找,那也是极为痛苦。方法2看似很好,但如果政府还需要这些学生中没打过疫苗的怎么办?重写一遍!

    没有什么需求是重写一遍程序完成不了的,如果有,那就重写两遍。 -------沃·兹基硕德

    写程序的人说:写程序要啸着写。

    这都是由于数据检索系统不够好,导致无法处理通用的、能够应对变化的需求。

  • 数据孤立

    数据放在不同的文件中,文件的格式也可能有所不同,因此编写新的应用程序来检索数据是很麻烦的。

  • 原子性问题

    计算机系统偶尔会发生故障,一旦故障发生,数据就应该要恢复到故障发生前的状态。

    举个例子:

    张三要转500块钱给李四,显然这样的程序要做两件事:1.张三余额-500,2.李四余额+500

    因此为了保证数据的一致性(这里体现在转账前后两个人的总余额保持不变),要求扣钱和加钱必须同时发生或者同时失败。

    文件处理系统中难以做到。

  • 并发访问异常

    为了提高系统的竞争力,系统允许多个用户同时更新数据,但这些更新操作可能会影响数据的一致性。

    举个例子:

    某个家庭在电商平台共用一个账户,账户余额为10000元。

    假如小明买了一部手机2000元,小明妈妈买了一台冰箱3000元,这两个操作同时发生。

    可是两个付款程序读到的余额都是10000元,并分别修改为8000元和7000元。

    那么到底是8000还是7000取决于哪个程序后完成。

    但是实际的余额应该是5000元,所以系统肯定要以某种形式管理,但文件处理系统中没有协调多个程序访问数据,管理就很难进行。

  • 安全性问题

    并非所有的用户都可以访问所有的数据。

    举个例子:

    学生只能查询与自己相关的信息,不能查询老师的工资等等。

    文件处理系统的查询是即席的,即席查询是由用户自定义查询条件的。看看工资也可以忍忍,要是看期末卷子还得了。

4.数据库系统

定义

数据库系统是指在计算机系统中引入数据库后的系统。

构成

数据库系统由数据库数据库管理系统应用系统数据库管理员组成。
这里的应用系统是指管理检索数据的应用程序的系统。

在这里插入图片描述
其中,DBA是数据库管理员(DataBase Administrator)的缩写。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 数据库系统概念是一本介绍数据库系统基本概念、理论和实践的重要书籍。该书由Abraham Silberschatz、Henry F. Korth和S. Sudarshan合作编写,已经成为了数据库领域的经典教材。本书精讲了数据库系统中数据、数据模型和数据管理的概念,以及关系数据库、SQL语言、索引、事务处理、并发控制等等重要内容。 该书首先介绍了数据库系统基本概念,包括数据模型、数据库语言、数据管理和数据管理系统的体系结构等方面。接着,书中介绍了关系数据库及SQL语言的基本概念和用法。书中详细讲解了关系模型的规范化理论和设计,包括函数依赖、多值依赖和范式等重要概念。 在对SQL语言的介绍中,书中详细讲解了SQL的基本语法、查询操作、聚合操作、连接操作等重要内容。同样,对索引、事务处理、并发控制等内容,书中也都有详细的讲解,有助于读者更好地理解和实践。 在书的最后,介绍了数据库系统中一些新的技术和应用,如NoSQL数据库、数据仓库等,同时还提供了对完成实际数据库应用的案例研究。 总之,数据库系统概念是一本非常重要的数据库教材,详尽地阐述了数据库系统的理论和实践。读者不仅可以学习到数据库基础知识,同时也可以在实践中应用。本书适合数据库从业人员、数据库开发人员和计算机科学专业学生阅读。 ### 回答2: 《数据库系统概念》是一本介绍数据库系统的经典教材,由加州大学伯克利分校的教授Hector Garcia-Molina、村田昭憲和Jeffrey D. Ullman联合撰写,第一版于1982年出版,目前已经到达第七版。该书主要分为四个部分,第一部分是数据库系统概述、数据库设计和数据模型;第二部分是数据存储和查询处理;第三部分是事务管理和并发控制;第四部分是数据库安全和分布式数据库。该书不仅涵盖了数据库系统的理论基础,还包括了实践中的应用技术和案例研究。该书的优点在于系统性强、通俗易懂,既适合初学者进行入门学习,又适合高级数据库研究人员进行深入研究。随着大数据时代的到来,对数据库系统的需求越来越高,而该书正是紧跟时代需求,不断更新的教材之一。 ### 回答3: 《数据库系统概念》是一本关于数据库系统的经典教材,由美国加州大学戴维斯分校的教授艾伯特·毛瑟撰写而成。该书介绍了数据库系统的概念、原理和应用,具有广泛的学术价值和实践参考意义。 该书主要内容包括:数据模型、关系模型、SQL语言、索引和文件结构、数据库设计、安全性和完整性、并发控制、恢复和备份等。它强调了数据库领域中的基本原则和基础概念,指导读者深入理解数据库系统的工作原理和实现方法。 此外,《数据库系统概念》还结合了大量的例子和实践案例,帮助读者更好地理解和掌握数据库系统的应用。该书还特别强调了数据管理和数据安全的重要性,提供了良好的参考和指导。 总之,《数据库系统概念》是一本基础理论性的数据库系统教材,能够帮助读者深入学习和理解数据库系统的工作原理,具有很高的实践价值和学术应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值