精华内容
下载资源
问答
  • 数据库系统(DBS)的四个特点

    万次阅读 2018-11-07 20:13:19
    数据库系统(DateBase System,简称DBS)...数据库中的任何数据都不属于任何应用,数据是公共的,结构是全面的。在数据库中,数据文件的个数是有限的,固定的,但数据库系统的应用却是无限制的。 好处:整体数据的...

    数据库系统(DateBase System,简称DBS)是指在计算机系统中引入数据库后的系统构成,由计算机硬件,操作系统,DBMS,DB,应用程序和用户以及数据库开发和管理人员等组成。

    DBS有如下四个主要特点:

    1,整体数据结构化

    数据库中的任何数据都不属于任何应用,数据是公共的,结构是全面的。在数据库中,数据文件的个数是有限的,固定的,但数据库系统的应用却是无限制的。

    好处:整体数据的结构化可减少乃至消除不必要的数据冗余,因此节约了整体数据的存储空间,避免了数据的不一致性和不相容性(数据不符合规定的约束条件)。

    2,数据的共享度高

    数据与数据的逻辑结构同时存储在数据库中,显示数据时,可同时显示数据的逻辑结构;整个组织的整体数据被综合考虑,整体数据结构化。因而,DBS的数据共享度较高。

    好处:合法用户都可以方便的访问使用数据库中的数据,且不用担心出现数据的不一致性和不相容性。数据库中的数据可适应各种合法用户的合理要求以及各种应用的要求,可以方便的扩充新的应用。

    3,数据的独立性高

    数据的独立性是指数据与应用程序之间的关联性。数据与数据的结构是存储在数据库中的(在外存上),由DBMS管理的。应用程序既不存储数据,也不存储数据的逻辑结构。

    物理独立性:数据库中数据的世纪存储方式改变时,DBMS可以适当改变转换数据的方式,使用户面对数据的逻辑结构保持不变,从而处理数据的应用程序也保持不变。

    逻辑独立性:数据库中数据的逻辑结构发生变化时,DBMS可以适当改变数据的转换方式,用户面对数据的逻辑结构保持不变。

    好处:数据与程序相互独立,可以方便的编制各种应用程序,大大减轻应用程序的维护工作。

    4,高度的数据控制能力

    a,较高的安全性

    b,较好的数据完整性

    c,较强的并发控制能力

    d,较强的数据恢复能力

    上述的DBMS功能,保证了数据库的正常运行,也大大的简化了应用程序。

    展开全文
  • 数据库系统概论

    2020-02-17 10:35:32
    第一章测试1待做 1【单选题】 ()是存储在计算机内有结构...下列四项中,不属于数据库系统的主要特点的是()。 A 数据结构化 B 数据的冗余度小 C 较高的数据独立性 D 程序的标准化 3【单选题】...

    第一章测试1 待做

    1【单选题】

    ( B )是存储在计算机内有结构的数据的集合。

    2【单选题】

    下列四项中,不属于数据库系统的主要特点的是(D  )。

    3【单选题】

    数据库系统与文件系统的本质区别为(  C   )。

     

     

     

    第一章单元测试2 待做

    1【单选题】

    在( A )中一个结点可以有多个双亲,结点之间可以有多种联系。

    2【单选题】

    实体是信息世界中的术语,与之对应的数据库术语为( D   )。

    3【填空题】

     数据模型是由               、               、           三部分组成的。

    • 第一空:  数据结构
    • 第二空:  数据操作
    • 第三空:  数据约束

     

     

     

    第一章1.3节 待做

    1【单选题】

    要保证数据库的数据独立性,需要修改的是( C )。

    2【单选题】

    数据库中,数据的物理独立性是指( C )

    3【单选题】

    数据库应用程序的编写是基于三级模式结构中()

    一.单选题(共7题,100.0分)

    1

    有关系:R(A,B,C)(主码为A)和S(D,A)(主码为D,外码为
    A),外码A 参照于关系R 的主码A。关系R 和S 的元组如图所示,指
    出关系S 中必定违反完整性规则的元组是( )。

    关系 R
    A             B              C
    1              2              3
    2              1              3

     

    关系 S
    D                     A
    1                     2
    2                 NULL
    3                     3
    4                     1

     

    正确答案: C 我的答案:C得分: 14.2分

    2

    以下关于参照完整性规则的描述,正确的是(      )

     

     

     

     

    正确答案: B 我的答案:B得分: 14.2分

    3

    下列有关主键和外键之间关系的描述中正确的是(        )。
     

    正确答案: A 我的答案:A得分: 14.2分

    4

    设有关系SC (SNO ,CNO ,GRADE),遵 照实体完整性规则,

    正确答案: D 我的答案:D得分: 14.2分

    5

    假设 W=R ∞ S, 且 W,R 和 S 的元组个数分别为 p,m 和 n,那么三者之间满足(   )

    注:此处∞表示连接

     

     

     

     

     

    正确答案: D 我的答案:D得分: 14.2分

    6

     

    R4元关系 R(A,B,C,D)3元关系 S(B,C,D)R×S 构成的

    结果集为(

    )元关系。

     
           

     

     

     

    • A、

      4

    • B、

      3

    • C、

      7

    • D、

      6

    正确答案: C 我的答案:C得分: 14.2分

    7

    集合R与S的交可以用关系代数的5种基本运算表示为(     )。

     

     

    正确答案: A 我的答案:A得分: 14.8分

     

     


    数据字典中存放的是( )

    正确答案: D 我的答案:D得分: 25.0分

    2


    下列关于索引的叙述,正确的是(      )。

    正确答案: A 我的答案:A得分: 25.0分

    3


    在数据库的物理结构中,将具有相同值的元组集中存放在连续的物理块的存储方法称为(         ) 。

    正确答案: C 我的答案:C得分: 25.0分

    4


    数据库中建立索引的目的是为了()

    正确答案: B 我的答案:B

    展开全文
  • 教材:王珊 萨师煊 编著 数据库系统概论(第5版) 高等教育出版社 注:文档高清截图在后 第1章 绪论 1.1数据库系统概述 1、在计算机中,数据(data)不但包括数字,还可以是文本(text)、图形(graph)、图像...

    教材:王珊 萨师煊 编著 数据库系统概论(第5版) 高等教育出版社
    注:文档高清截图在后

    第1章 绪论

    1.1数据库系统概述

    1、在计算机中,数据(data)不但包括数字,还可以是文本(text)、图形(graph)、图像(image)、音频(audio)、视频(video)及各种形式的内容。数据的定义的一种表述是:数据是描述事物的符号记录。
    数据本身不能完全表达其含义,需要经过一定的解释。例如:计算机中某处存储了数字3.90,这个数据可以是某同学某学期的GPA,也可以是描述某个部件允许通过的最大电流(A)。
    人们用自然语言来描述事物。例如:
    朱立文,男,1998年7月20日生,广州人,2016年入学,现为我校智能科学与技术专业大四学生。
    在计算机中,这个描述可能被转化成如下的段落:
    朱立文,男,19980720,广州,2016,智能科学与技术
    可见,在计算机中,数据通过一定的结构组织在一起并被读写。通俗来讲,存放各种各样的数据的“仓库”便称为数据库。

    2、数据库(database,DB)的定义是:长期储存在计算机内的、有组织的、可共享的大量数据的集合。
    数据库中的数据是按照一定的模型来组织、描述、储存的,具有较小的冗余度(redundancy)、较高的数据独立性(data independence)、易扩展性(scalability),且可以为各种用户所共享。

    3、数据库管理系统(database management system,DBMS)是位于用户与OS(操作系统)之间的一层数据管理软件,和操作系统一样属于计算机基础软件,功能主要有:
    (1)数据定义
    DBMS提供数据定义语言(data definition language,DDL)来对数据的组成与结构进行定义。
    (2)数据组织、存储、管理
    DBMS要通过特定的方法对数据进行组织、存储、管理:确定存储结构与方式,确定如何建立数据之间的联系。比如通过哈希(Hash)、索引、顺序查找等提高存储与访问效率。
    (3)数据操作功能
    DBMS提供数据操作语言(data manipulation language,DML)来实现查找、插入、删除、修改等基本数据库操作。
    (4)数据库的事务管理和运行管理
    数据库在建立、运行、维护的过程中需要由DBMS统一管理与控制,保证事务的正确运行,保证数据的安全性、完整性、足够的并发使用性能和及时的故障恢复。
    (5)数据库的建立与维护
    包括初始数据的输入与转换,数据库的转储(dump)与恢复(restore)、重组织、性能监视与分析等。
    (6)其它功能:DBMS与其它软件的通信、数据库间的数据交换与转换、异构数据库间的互相访问与互相操作等。
    用数据库管理系统来管理数据,比文件系统直接管理数据在软件维护成本、联机实时处理、分布式处理、多用户(多应用)共享等多个方面具有明显的优势。

    4、数据库系统(database system,DBS)
    DBS包括数据库、数据库管理系统及其应用开发工具、应用程序以及数据库管理员(database administrator,DBA)组成的存储、管理、处理、维护数据的系统。从文件系统到数据库系统标志着数据管理技术的飞跃。

    5、与人工管理和文件系统相比,数据库系统的特点主要有:
    (1)整体数据结构化。具体而言,数据库中的数据不仅仅针对某一种应用,而是常常面向整个组织或企业,甚至更大的范围。数据的内部和数据整体都是结构化的,数据之间也是具有联系的。这就要求我们在建立数据库的过程中要考虑在一个大的范围应用起来都比较方便的数据结构。
    例如,为大学的信息系统建立数据库,不单要考虑教务处的课程管理、选课、成绩管理等工作,还要考虑学生处的学籍管理,人事处的教职员人事管理,科研处的科研任务管理等。数据库建立以后,就由专门的数据库管理系统以及数据库管理员来进行维护,减轻其它部门的程序员的工作量,提高整体效率。
    (2)数据的共享性高、冗余度低、易扩充。数据共享可以减少不必要的冗余,节约存储空间,还可以避免数据之间的不相容性与不一致性。数据的不一致性是指:同一数据的不同副本的值不一样。采用人工管理或文件系统管理时,如果不同的应用都要使用某种数据,那么常常需要为这些应用各拷贝一份副本。在不同的工作任务中,应用可能会各自修改其中的某些部分,就造成了该项数据的不一致,引发冲突等一系列问题。
    设计优良的数据库的数据结构可以被大量应用共享使用,而且减少了新增应用需要的工作量,使得数据库系统弹性大、易于扩充,满足更多用户的需求。
    (3)数据独立性高。
    数据独立性分为物理独立性和逻辑独立性。物理独立性是指用户的应用程序与数据库中数据的物理存储是相对独立的。数据库中数据的存储与访问由DBMS管理,而应用层无需了解就可以使用数据。这样,如果数据库中的数据的物理存储需要变动,应用程序可以不作改变或只做少量改变就可以继续使用数据。逻辑独立性是指应用程序与数据库的逻辑结构相互独立。数据的逻辑结构的修改也由DBMS完成,用户的应用程序亦可不作改变或少作改变。
    (4)统一管理与控制。
    数据库的共享会导致一定的隐患。DBMS需要提供包括但不限于以下方面的功能:
    [1]数据的安全性(security)保护。这要求保护数据,防止不合法的操作造成泄密或数据被破坏。
    [2]数据的完整性(integrity)检查。数据的完整性要求数据的正确、有效、相容。这就要求数据不但应完整地存储,而且还需要保证各类应用可以正确处理数据库中的数据。
    [3]并发(concurrency)控制。当超过1个用户的进程同时存取、修改数据库时,就需要对来自不同用户的操作进行协调调度,避免得到错误的结果或者数据库被破坏。
    [4]恢复(recovery)。DBMS必须具备将数据库从不同类型的故障——比如硬件故障、软件故障、人为操作不当或故意破坏——中维持数据的正确性的能力。这就要求DBMS在发现数据库出现故障后,尽可能快地将数据库从错误状态恢复到某一个已知的正确状态(也称为完整状态或一致状态)的功能。

    1.2数据模型

    1、数据模型(data model)是对现实世界的数据特征的抽象。数据模型用于描述、组织、操作数据。计算机不能直接处理现实世界中的具体事物,因此人们需要将现实事物转换为计算机可以处理的数据,即数字化。可见,数据模型是对现实世界的一种模拟。数据模型是数据库系统的核心与基础。

    2、数据模型包括第一类模型:概念模型,和第二类模型:物理模型和逻辑模型。
    概念模型又称信息模型,是按用户的观点对数据建模得到的,主要用于数据库设计。逻辑模型包括层次模型(hierarchical model)、网状模型(network model)、关系模型(relational model)、面向对象数据模型(object oriented data model)、对象关系数据模型(object relational data model)、半结构化数据模型(semistructured data model)等。物理模型则是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,或在存储装置中的存储方式以及存储方法,是面向计算机系统的。

    3、为了将现实世界中的具体事物抽象为DBMS的数据模型,人们常常首先将现实世界转化为信息世界,再转化为机器世界。数据模型的一类——概念模型,就属于信息世界的部分。
    信息世界主要涉及如下概念:
    (1)实体(entity)。客观存在并可相互区别的事物称为实体。实体可以是一个人、一件事、一个物品,也可以是抽象的概念或联系。例如:一个职工、一个学生、一个部门、一门课、一次选课、一次采购、教师与院系的工作关系等,都是实体。
    (2)属性(attribute)。实体具有的某一性质称为属性。一个实体由若干属性来刻画。例如:学生实体的属性包括学号、姓名、出生日期、所在院系、入学时间、绩点、奖励与处分、职务等。
    (3)码(key)。唯一标识实体的属性称为码。例如:手机的IMEI是唯一的(这里不考虑由于恶意篡改等导致的冲突),是手机实体的码。
    (4)实体类型(entity type)。用于刻画实体的实体名及其属性名集合,称为实体型。如果两个实体的部分属性或全部属性相同,那么这两个实体就具有相同的特征和性质。例如:学生(学号、姓名、出生日期、所在院系、入学时间、绩点、奖励与处分、职务)是一个实体型。如果两个实体都具有学号、姓名、所在院系等,就意味着他们都是或曾经是学生。
    (5)实体集(entity set)。同一类实体的集合称为实体集。例如:某企业全体员工。
    (6)联系(relationship)。事物内的联系与事物间的联系在信息世界中反映为实体内联系与实体间联系。实体内部的联系通常指实体的各个属性之间的联系,而实体之间的联系通常是指不同实体集的联系。
    实体之间的联系有一对一、一对多、多对多等类型。
    概念模型最常用的表示方法是P.P.S.Chen与1976年提出的实体-联系方法,也称E-R方法(E-R模型)。

    4、数据模型的组成要素通常有:数据结构、数据操作、数据的完整性约束条件。
    (1)数据结构描述数据库的组成对象与对象之间的联系。
    (2)数据操作主要由查询、更新(插入、修改、删除)两类。数据模型需要定义这些操作的确切含义、操作符、操作规则(如优先级等)以及实现操作的语言。
    (3)数据的完整性约束条件是一组完整性规则。完整性规则是数据模型中数据及其联系的制约、依存规则,能够限定数据库的状态及变化,以保证数据的正确、有效、相容。
    通过怎样的机制来定义完整性约束条件,必须由数据模型给出。这个机制与具体的应用有关,比如:某影评网站的数据库规定若某影片的评分人数少于c(c是常数),则评分不予显示;某大学的数据库中规定若学生存在作弊记录,则不允许授予其学士学位。

    5、层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。
    在数据库中,满足如下两个条件的集合为层次模型:
    (1)有且只有一个节点无父节点,称为根节点;
    (2)根以外的节点有且只有一个父节点。
    层次模型中,每个节点表示一种记录类型,并用有向边来表示节点之间的联系。记录类型描述的是实体,记录类型含有的字段则代表实体的属性。记录类型不能重名,一个记录类型中的字段也不能重名。例如:

    该层次模型中,记录类型有:系、教研室、学生、教员。以“系”记录类型为例,字段有:系编号、系名、办公地点。系有两个子节点:教研室、学生。教研室和学生有共同的父节点:系。因此教研室与学生互为兄弟节点(twin / sibling)。教员与学生都是叶节点,没有子节点。
    该模型的一种取值可以是:

    层次模型的完整性约束有:
    (1)插入时,如果无父节点,那么不能对这个父节点插入子节点。例如:新录取一教员,但尚未分配到某教研室,则不能直接将其信息录入数据库。
    (2)删除时,如果删除某个节点,其子节点也一并删除。例如:某教研室重组,需要删除原有信息,则教研室名下的教员信息也会全部删除。当然,如果不希望教员数据丢失,在删除教员信息之前应该将其先移入其它位置。
    层次模型的优点主要有:
    结构简单清晰、查询效率高、良好的完整性支持。
    层次模型的缺点主要有:
    不能刻画非层次性的联系;不能简便地刻画复杂的从属关系(例如:一个节点具有多个父节点),使得插入删除的限制较多;查询子节点必须经过父节点;命令趋于程序化。

    6、网状模型的联系集合满足如下两个条件:
    (1)允许一个以上的节点没有父节点。
    (2)允许任意节点有多个父节点。
    层次模型是网状模型的一个特例。注意:层次模型中子节点与父节点的联系唯一,但网状模型中可以不唯一。因此,网状模型中的联系也需要命名。例如:


    网状模型的完整性约束条件不如层次模型严格,但是仍然视具体应用场景的不同而有不同的限制。
    DBTG(数据库任务组,数据系统语言研究会(Conference on Data System Language,CODASYL)的一个下属组)在模式数据定义语言中提供了定义DBTG数据库完整性的若干概念和语句,主要有:
    (1)允许用key唯一标识数据。例如:定义学生记录中的学号是key,数据库就不允许学生的学号出现重复。
    (2)父节点和子节点保证为一对多的联系。
    (3)可以额外添加父节点和子节点之间的约束条件。例如:对上图的选课,要求添加的记录中,学号、课程、成绩都必须在数据库中已经存在。
    网状模型的优点主要有:
    能更加直接描述现实世界、性能良好(存取效率高)。
    网状模型的缺点主要有:结构复杂,且随着应用拓宽,数据库也会越来越复杂;DDL(数据定义语言)与DML(数据操纵语言)复杂,还需要嵌入某一高级语言(如COBOL,C / C++)中,用户不易掌握与使用;访问数据时必须通过适当的路径才能访问到需要的数据,这要求用户要了解系统结构的细节,加重了编程负担。

    7、关系模型是最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。数据库领域当前的研究工作也都是以关系方法为基础。
    关系模型是建立在严格的数学定义上的,这个定义将在第二章给出。这里只进行简单勾画。从用户的角度看,关系模型由一组关系组成。每个关系的数据结构是一张规范化的二维表。
    关系模型的主要术语:
    (1)关系(relation):一个关系对应通常说的一张表。
    (2)元组(tuple):表中的一行为一个元组。
    (3)数学(attribute):表中的一列为一个属性。
    (4)码(key):也称为键。通过码可以唯一确定一个元组。
    (5)域(domain):一组具有相同数据类型的值的集合。属性的取值范围就来自一个域。比如:
    人的年龄一般限定在0 ~ 120 岁之间;速度的大小限制在 0 ~ 299792458 m/s 之间;某公司的员工的个人所得税税率的范围是 0% ~ 45%;性别的域是{男,女};上海市某小区内全体住民拥有的车辆数量的域是离散闭区间 [0, 7];
    (6)分量:元组中的一个属性的值。
    (7)关系模式:对关系的描述。一般表示为:
    关系名(属性1,属性2,……,属性n)
    例如:
    应聘人员(姓名,性别,本科院校,研究生院校,学历,专业或方向,是否为应届生或工作经验,……)
    关系模型要求关系必须是规范化的,就是说要求关系必须满足一定的条件。最基本的一项是:关系的每一个分量都必须是一个不可分的数据项。意即,不允许表中有表。下图的表不符合关系模型的要求,必须加以处理才能建立关系模型。

    关系的完整性约束条件包括三类:实体完整性、参照完整性、用户定义的完整性。具体含义将在后续内容中介绍。
    关系模型的操作对象与操作结果都是关系。关系模型把存取路径向用户隐蔽起来,用户只需要提出“干什么”,无需提出“怎么干”,大大提高了数据的独立性,减少了编程负担,提高了生产率。
    关系模型的优点主要有:
    建立在严格的数学概念的基础上;概念单一,使得数据结构简单清晰易用;存取路径对用户透明,从而具有更高的数据独立性、数据安全性,简化了程序员的工作与数据库开发建立的工作。
    因此,关系模型诞生以后迅速发展,深受喜爱。
    但是关系模型也有缺点:查询效率偏低,因为存取路径对用户隐蔽;DBMS要对查询请求优化,增加了开发DBMS的难度。

    1.3数据库系统的结构

    1、数据模型中有“型”(type)和“值”(value)的概念。型是对数据结构和属性的说明,值是型的一个具体赋值。例如:
    影片(标题,上映日期,分辨率,长宽比,帧速率,持续时间,版本,……)
    属于记录型,而
    (Escaping,2029 / 9 / 4,8K,1.78:1,60 fps,Dolby Vision & Dolby Atmos,……)
    属于该类型的一个值。

    2、模式(schema)是数据库中全体诗句的逻辑结构和特征的描述,仅涉及到型,不涉及具体值。模式的一个具体的值也称为实例(instance)。模式是相对稳定的,实例是相对变动的。
    例如,在学生选课数据库模式中包含了学生、课程、学生选课三种记录。2019学年学生选课数据库的实例与2018年的不同。

    3、数据库系统由外模式、模式和内模式三级构成,称为数据库系统的三级模式结构。
    (1)模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式实际上是数据库的数据在逻辑上的视图,一个数据库只有一个模式。模式通过DBMS提供的模式数据定义语言(模式DDL)来严格定义,定义模式时需要定义数据的逻辑结构(例如:一条记录有哪些项,项的名称、类型、取值范围等)和联系。
    (2)外模式(external schema)也称子模式(subschema)或用户模式。是数据库的全体用户(包括DBA等数据库相关人员)能够看见与使用的局部数据的逻辑结构和特征的描述。应用与要求不同,同一数据在外模式中的各项特征就可以不同。DBMS提供外模式DDL严格定义外模式。同一个外模式可以被多个应用程序使用,但同一个应用程序只使用一种外模式。可以通过外模式保证数据安全。每个用户只能根据对应的外模式来访问数据,其余部分则不可见。
    (3)内模式(internal schema)也称存储模式(storage schema),一个数据库只有一个内模式。这是数据的物理结构与存储方式的描述,是数据在库内的组织方式。例如:堆(heap)存储或按某些属性升序 / 降序存储或按照属性值聚簇(cluster)存储;索引按B+树 / B-树索引或Hash索引;是否压缩或加密;存储结构的规定(如定长或变长,允许或禁止跨物理页存储)等。
    在这里插入图片描述

    4、数据库系统的三级模式是数据的三个抽象级别,使得数据能够被用户简便地使用,DBMS专门负责具体的管理,这样用户便不必关心数据在计算机中的表示与存储方式。为了能在系统内部实现这三个抽象层次的联系与转换,DBMS提供两层映像:外模式 / 模式映像和模式 / 内模式映像。
    如果模式改变(例如增加新关系、新属性、改变数据类型等),则由DBA对各个外模式 / 模式映像作调整,就可以无需改变外模式,从而不必改动已有的应用程序,保证数据与程序的逻辑独立性。
    如果存储结构改变,则由DBA对模式 / 内模式印象作调整,就可以无需改变模式,从而也不必改动已有的应用程序,保证数据与程序的物理独立性。
    设计数据库的模式结构应该先设计好逻辑模式(全局逻辑结构)。设计外模式时需要考虑应用可能的扩充方向。
    数据与程序之间的独立性使得数据的定义与描述无需应用层负责,且数据的存取一般由DBMS管理,而应用程序通常只负责访问,从而简化应用程序的编程,减少维护和修改工作量。

    1.4数据库系统的组成

    1、硬件平台与数据库
    (1)足够多的内存。
    内存用于存放操作系统、DBMS的核心组件、数据缓冲区甚至部分对带宽要求极高的应用程序,以及存放软件运行过程产生的数据。
    (2)足够大的磁盘直接存储。
    磁盘用于存放数据库。目前的数据库多采用磁盘阵列(RAID)来确保运行的稳定性或提高性能。例如:采用RAID 0可以获得双倍的读写速度,也可以采用RAID 1获得双倍的读取速度与RAID模式中最高的可靠性。根据可靠性、性能与成本上的取舍不同,也可以选择RAID 5、RAID 10或其它RAID模式。应用RAID可以在部分磁盘损坏时继续维持数据库及其软件的运行。但是要注意,此时应该尽快开始恢复进程。
    (3)足够多且可靠的备份。
    备份分为冷备份与热备份两种。热备份用于经常访问的数据。这部分数据通常用额外的磁盘直接保存。磁带则用于冷备份,即不常访问的数据的备份。磁带的容量比已知的HDD / SSD要大得多,IBM与索尼甚至在2017年联合发布过单体容量达330 TB的磁带。但是磁带的随机访问性能非常差,多用于冷备份或存放视频等基本连续读写的数据。涉密的数据库有时也采用光盘进行备份与传输。

    (4)足够高的通信能力。
    数据库内通信与数据库间通信都要求高传输速率。

    2、软件
    (1)数据库管理系统(DBMS)。这是为数据库的建立、使用、维护配置的系统软件。
    (2)支持DBMS运行的操作系统(OS)。
    (3)具有数据库接口的高级语言及其编译系统,用于开发应用程序。
    (4)以DBMS为核心的应用开发工具。应用开发工具是系统为应用开发人员和最终用户(end user)提供的高效、多功能的应用生成器、第四代语言(第一代:机器语言。第二代:汇编语言。第三代:高级语言,其中分为 一、面向过程的编程语言(如C、BASIC、Pascal);二、面向对象的编程语言(如C++、Java、C# )。)等各种软件工具。
    (5)为特定环境开发的数据库应用系统。

    3、人员
    (1)数据库管理员(Database Administrator,DBA)
    数据库系统需要由专门的机构来监督、管理。DBA则是这个机构的一个成员,负责全面管理和控制数据库系统。其职责主要有:
    [1]决定数据库中的信息内容和结构。数据库需要存放那些信息,DBA需要参与决策。这意味着DBA需要参加数据库设计的全过程,并与用户、应用程序员、系统分析员合作与协商,共同完成设计。
    [2]决定数据库的存储结构与存储策略。DBA要综合各种应用需求,与数据库设计人员共同决定数据的存储结构与存取策略。
    [3]定义数据的安全性要求与完整性约束条件。也就是说DBA要确定各个用户的存取权限、数据的保密级别与完整性约束条件,保证数据的安全与完整。
    [4]监控数据库的运行。DBA需要监视数据库的运行情况,及时处理出现的问题。比如发生故障时要迅速纠正故障、恢复数据,尽可能不影响或少影响计算机系统其它部分的运行。为此,DBA需要定义与实施适当的后备和恢复策略,如周期性转储数据、记录与维护日志等。
    [5]数据库的改进与重组、重构。DBA需要监视系统的空间使用率、处理效率等指标,并记录、统计分析运行情况,依据实践与应用环境改进数据库设计。可以借助对数据库运行状况监视分析的工具来完成此工作。此外,数据库的运行期间,由于数据的操作量极大,长此以往数据的组织结构可能会受到严重影响,降低系统性能。DBA需要及时对数据库进行重组织以改善性能。用户的需求有变动时,DBA要跟进对数据库的改造:修改部分设计,即重构。
    (2)系统分析员与数据库设计人员
    系统分析员负责应用系统的需求分析与规范说明,需要和用户与DBA结合,确定系统的硬件与软件配置,参与数据库系统的概要设计。
    数据库设计人员则负责数据的确定以及各级模式的设计。数据库设计人员必须参与用户需求调查与系统分析,然后进行数据库设计。多数时候,DBA兼任数据库设计人员。
    (3)应用程序员
    负责设计应用系统的程序与模块,并进行调试和安装。
    (4)最终用户(End user)
    最终用户通过应用系统的用户接口使用数据库。常见的接口有:浏览器、菜单、表格、图形、报表等。
    最终用户可以分为三类:
    [1]偶然用户。此类用户不常访问数据库,但每次访问时往往需要不同的信息。这类用户一般是企业或组织的中高级管理人员。
    [2]简单用户。这是占比最多的最终用户。其主要工作是查询与更新数据库,一般是通过应用程序员设计的带有UI(用户界面)的程序访问数据库。比如银行职员、机票预订工作人员、宾馆总台服务员等。
    [3]复杂用户。比如科研人员、工程师、经济分析师等具有高科技背景的人员。这类用户一般较熟悉DBMS的功能,能够直接使用数据库语言访问数据库,甚至能够基于DBMS的API(应用程序编程接口)来编写自己的应用程序。






















    展开全文
  • 数据库系统

    2021-02-21 21:13:25
    三、数据库操作SQL语言 3.1 SQL语言概述 数据定义语句(Data Definition Language ,DDL)是SQL语言中用于创建、修改和删除数据库对象的语句。 • Create database 创建新数据库 • Drop database 删除数据库 • ...

    一、基础

    1.1 数据库使用的数据模型与数据库系统

    • 层次数据模型:采用“树”结构来组织、存储和管理数据;局限于上下节点的访问。
    • 网状数据模型:采用“网状图”结构组织、存储和管理数据。灵活地表示数据之间地关系;数据查询和修改不方便。
    • 关系数据模型:采用“二维表”结构组织、存储和管理数据,并以关联列实现表之间的联系。表之间通过具有相同属性列进行约束关系。数据结构简单、操作灵活、支持关系与集合运算操作、支持SQL;局限是只用于结构化数据的组织与存储管理,支持的数据类型较为简单,难以支持互联网广泛应用的非结构化数据和复杂数据管理。
    • 其他数据模型

    数据库系统是一类基于数据库进行数据管理与信息服务的软件系统。主要由用户、数据库应用程序、数据库管理系统和数据库四部分组成。

    • 用户:开发人员、使用人员、维护人员等
    • 数据库应用程序:是一种再DBMS支持下对数据库中数据进行访问处理的应用程序。
      主要功能有:通过窗口输入框采集用户输入数据;通过接口连接访问数据库;执行用户数据查询;通过表单列表输出数据。
    • 数据库管理系统:是一种专门用来创建数据库、管理数据库、维护数据库,并提供外部对数据库进行访问的系统软件。
      主要功能:
      • 创建数据库、数据库表以及其他对象;
      • 读写、修改、删除数据库表中的数据;
      • 维护数据库结构;
      • 执行数据访问规则;
      • 提供数据库并发访问控制和安全控制;
      • 执行数据库备份与恢复。
    • 数据库:是一种依照特定数据模型组织、存储和管理数据的文件集合。
    • 关系数据库中数据内容:在关系数据库中,除了存储和管理应用的用户数据(用户表)外,还需要存储与管理数据库本身的元数据、索引数据、运行数据等系统数据(系统表)。
    • 关系数据库的对象组织:在这里插入图片描述

    1.2 发展

    层次数据库–> 网状数据库 --> 关系型数据库 —> 对象-关系数据库 --> 半结构化数据库等

    1.3 数据库应用系统

    数据库应用系统类型

    • 业务处理系统:对机构业务活动(订购、销售、支付、出货)信息处理
    • 管理信息系统:以机构职能管理为主导,信息化管理,如人力资源管理信息系统
    • 决策支持系统:管理科学、运筹学、控制论等基础,为管理者提高辅助决策服务和方案,如证券分析与辅助决策信息系统

    数据库系统应用结构

    • 单机用户结构:整个数据库应用系统都装在一台计算机上,由一个用户进行访问操作,数据不能共享,数据冗余度大。
    • 集中式结构:数据库系统的应用程序、DBMS、数据都部署在同一服务器上运行,多个用户使用自己的计算机终端网络连接服务器,并可实现共享访问数据库。*特点:*结构简单、易于维护、但是当终端用户增加到一定数量后,服务器网络将成为数据存取访问的瓶颈,系统性能大大降低。
    • 客户/服务器结构:数据库应用系统的数据集中在数据库服务器管理、应用分布客户机处理。客户端应用程序通过网络并发访问数据库服务器中的数据库。*特点:*客户机程序与数据库服务器分工进行数据处理,提高了系统的负载分担能力,但会因大量客户端并发访问数据库服务器导致系统性能瓶颈。
    • 分布式结构:分布式结构的数据库系统既实现数据分布,又实现处理分布。分布式数据库系统的各服务器结点数据库在逻辑上是一个整体,但物理分布在计算机网络的不同服务器节点上运行,每个数据库服务器可通过网络既支持多个本地客户机访问,也支持远程客户机访问。网络中的每个数据库服务器都可以独立地存取和处理数据,并执行全局应用。*特点:*适合跨地区和大型机构,处理性能强,但数据库的分布处理和维护成本高,技术难度大。

    数据库应用系统生命周期

    • 需求分析:系统数据需求信息
    • 系统设计:包括系统概念数据模型、系统逻辑数据模型和系统物理数据模型设计。
    • 系统实现:包括DBMS安装部署、数据库创建、数据对象创建等
    • 系统测试:将测试数据上载到数据库中,对数据库对象进行测试操作访问,实现数据库功能和性能测试。
    • 系统运行和维护:监控与优化、扩展与维护

    1.4 数据库管理系统

    按用途分类:

    • 通用DBMS:支持公共领域数据库应用,如SQL Server
    • 专用领域DBMS:支持专用领域数据库应用,如嵌入式领域的SQLite

    按用户数分类:

    • 单用户DBMS:仅支持单用户访问,如miniSQL
    • 多用户DMBS:可支持多用户并行访问,如MySQL

    按系统部署分类:

    • 集中式DBMS:数据库集中部署在单一物理机器中,如Access
    • 分布式DBMS:数据库可分布在不同位置物理机器,如Oracle Database

    按使用场景分类:

    • 桌面级DBMS:适用于微小型的信息服务应用,如Access、SQLite
    • 企业级DBMS:适用于中大型的企业级应用,如DB2,ORACLE Database

    在这里插入图片描述

    二、数据库关系模型

    2.1 关系及其相关概念

    实体:包含有效数据特征的事物对象在概念模型世界的抽象名词。
    关系:在关系模型中,使用“关系”来存储“实体”中的数据。关系是指具有关系特征、用于存放实体数据的二维表,关系也常被称为关系表。
    关系的特征
    * 表中每行存储实体的一个实例数据,行又被称为元组。
    * 表中的每列包含实体的一项属性数据,列又被称为属性。
    * 表中单元格只能存储单个值;
    * 不允许有重复的行。
    * 列的顺序可任意。
    * 行的顺序可任意。

    关系的键定义
    在关系中,可以用来唯一标识元组的属性列,称为键(Key),其他属性列都为非键列。
    复合键(Compound Key):是指关系中用来唯一标识元组的多列作为键。
    候选键(Candidate Key):关系中可能有多个列均适合作为键,将其每个都称为候选键。
    主键(Primary Key):关系表中最有代表性的一个候选键,每个关系表中只能定义一个主键。
    主键的作用
    * 唯一标识关系表的每行(元组);
    * 与关联表的外键建立联系,实现关系表之间连接;
    * 数据库文件使用主键值来组织关系表的数据存储;
    * 数据库使用主键索引快速检索数据。
    代理键:采用DBMS自动生成的数字序列作为关系表的主键。(当复合键过于复杂时)
    代理键的用途
    * 由DBMS自动生成的数字序列作为主键,可替代复合主键,以便获得更高性能的数据访问操作处理。
    外键(Foreign Key):在关联的两个关系中,它们具有一个或多个相同属性,若关联列在第一个关系中作为主键,则在第二个关系中作为外键。

    关系模式语句中主键表示方法:
    关系名(主键属性,属性2,...,属性x)
    relation_name(Colunm01,Colunm02,...,LastColunm)
    relation_name表示关系名称,Colunm01等表示属性名。
    在这里插入图片描述

    2.2 关系模型原理

    关系模型是一种基于二维表结构存储数据实体及实体间联系的数据模型。
    关系模型的组成

    • 1、数据结构
    • 2、数据操作:集合运算操作包括 选择,投影、连接、交、并、差等。专门针对元组的关系操作包括数据行插入、修改、删除等操作。
    • 3、数据关系约束:在关系模型中,数据关系约束是指关系表中实体数据完整性、关联表之间数据一致性等要求,一般由业务需求来确定。在关系模型中,可定义关系表的数据约束如下:
      • 属性列取值范围
      • 属性列取值类型
      • 属性列取值是否唯一
      • 属性列是否允许空值
      • 关联表的参照完整性约束

    关系模型数据操作
    关系模型的数据操作采用基于关系代数的数据操作,包括传统的集合运算操作和专门的关系运算操作。
    并算法、差运算、交运算、笛卡尔积×(若R、S分别为两个关系表,则R×S的结果集为所有属于R的元组与所有属于S的元组进行组合而成R×S={(d1,d2) | d1∈R,d2∈S}
    关系模型完整性
    关系模型完整性是指在关系数据模型中对关系实施的完整性约束。
    完整性约束作用:

    • 消除关系表的元组重复存储
    • 保持关联表的数据一致性
    • 实现业务数据规则

    关系模型完整性约束组成

    • 实体完整性约束
    • 参照完整性约束
    • 用户自定义完整性约束

    实体完整性
    实体完整性是指在关系表中实施的主键取值约束,以保证关系表中的每个元组可以被唯一标识。
    实体完整性约束规则

    • 每个关系表中的主键属性列都不允许为空值,否则就不可能标识实体;
    • 现实世界中的实体是靠主键来标识,主键取值应该唯一,并区分关系表中的每个元组。

    参照完整性
    参照完整性是指关系表之间需要遵守的数据约束,以保证关系之间关联列的数据一致性
    参照完整性约束规则:若关系R中的外键F与关系S中的主键K相关联,则R中外键F 值必须与S中主键K值一致。

    用户自定义完整性
    用户自定义完整性是指用户根据具体业务对数据处理规则要求所定义的数据约束。
    用户可以定义如下类型的完整性约束:

    • 定义列的数据类型与取值范围
    • 定义列的缺省值
    • 定义列是否允许取空值
    • 定义列取值唯一性
    • 定义列之间的数据依赖性

    三、数据库操作SQL语言

    3.1 SQL语言概述

    数据定义语句(Data Definition Language ,DDL)是SQL语言中用于创建、修改和删除数据库对象的语句。
    • Create database 创建新数据库
    • Drop database 删除数据库
    • Alter database 修改数据库属性
    • Create table 创建新表
    • Alter table 修改数据库表结构
    • Drop table 删除表
    • Create index 创建索引
    • Drop index 删除索引

    数据操纵语言(Data Manipulation Language,DML)是SQL语言中用于增添、修改、删除数据的语句。
    • Insert 向数据库表中插入数据
    • Update 更新数据库表中的数据
    • Delete 从数据库表中删除数据

    数据查询语言(Data Query Language,DQL)是SQL语言中用于对数据库进行数据查询的语句。

    数据控制语言(Data Control Language,DCL)是用于对数据库对象访问权进行控制的SQL语句。
    • Grant 授予用户对数据库对象的权限
    • Deny 拒绝授予用户对数据库对象的权限
    • Revoke 撤销用户对数据库对象的权限

    事务处理语言:处理数据库内部事务的语句
    游标控制语句:用于数据库游标操作的语句

    3.2 数据定义SQL语句

    索引:索引是一种按照关系表中指定列的取值顺序组织元组数据存储的数据结构,使用它可以加快表中数据的查询访问。其功能就像是一个目录。
    详见:MySQL的索引及其数据结构
    索引作用及特点:支持对数据表中数据快速查找,其机理类似图像目录可以快速定位章节内容。索引优点为提高数据检索速度,快速连接关联表。索引开销主要是创建和维护都需要较大开销,索引会占用额外存储空间,数据操纵因维护索引带来系统性能开销。
    索引的结构:主要有B+树、B树和哈希表索引
    * B+ 树是一颗多叉树,叶子节点存放的是数据记录,非叶子节点存放的是索引。
    * B树也是一颗多叉树,每个节点存放索引和数据记录;
    * 哈希索引底层使用的是哈希表,将索引作为key,将数据记录作为value。
    索引创建SQL语句
    语句基本格式:create index <索引名> on <表名><(列名)>
    如:在学生信息表Student中,为出生日期Birthday列创建索引,以便支持按出生日期快速查询学生信息。
    create index Birthday_Idx on student (Birthday);

    索引修改SQL语句
    语句基本格式:alter index <索引名> <修改项>;
    如:在学生信息表Student中,将原索引Birthday_Idx更名为Bday_Idx,其索引修改SQL语句如下:alter index Birthday_Idx rename to Bday_Idx;

    索引删除SQL语句
    语句基本格式:drop index <索引名>;
    如:在学生信息表Student中,删除Bday_Idx索引,其索引删除SQL语句如下:drop index Bday_Idx;

    3.3 数据操纵SQL语句

    数据插入SQL语句
    语句基本格式:insert into <表名|视图名>[<列名表>] value (列值表);
    如:在学生信息表Student中,插入一个新的学生数据,如“2017220101105”,“柳因”,“女”,“1999-04-23”,“软件工程”,“liuyin@163.com”,SQL语句如下:insert into Student values('2017220101105', '柳因', '女','1999-04-23', '软件工程', 'liuyin@163.com');

    数据更新SQL语句
    语句基本格式:update <表名 | 视图名> set <列名1> = <表达式> [, <列名2> = <表达式2> …] [where <条件表达式>];
    如:在学生信息表Student中,学生“赵东”的原有Email数据为空,现需要修改为“zhaodong@163.com”,SQL语句如下:update Student set Email='zhaodong@163.com'where StudentName='赵东';

    数据删除SQL语句
    语句基本格式:delete from <表名 | 视图名> [where <条件表达式>];
    如:在学生信息表Student中,删除姓名为“张亮”的学生数据,其数据删除的SQL语句如下:delete from Student where StudentName='张亮';

    3.4 数据查询SQL语句

    3.4.1 单表数据查询

    数据查询SQL语句
    语句基本格式:select [all | distinct] <目标列>[, <目标列> …] [into <新表>] from <表名 | 视图名> [, < 表名 | 视图名> … ] [where <条件表达式>] [group by <列名> [having <条件表达式>]] [order by <列名> [asc | desc]];

    从单个表读取指定列
    在关系数据库中,最简单的数据查询操作就是从单个关系表中读取指定列的数据,即关系的投影操作。
    语句基本格式:select <目标列>[, <目标列> … ] from <关系表>;
    如:从Student 表中查询学生学号studentId、学生名字studentName的SQL语句如下:select studentId,studentName from Student;
    若希望从Student表中查询所有列数据,其查询SQL语句如下:select * from Student;
    若希望在结果集中过滤重复数据,可以在查询语句的输出列前加入Distinct 关键字,如下select distinct major from Student;

    从单个表读取指定行
    SQL查询语句也可以从一个关系表中读取满足条件的指定行数据,即完成关系数据的元组选择操作。
    语句基本格式:select * from <关系表> where <条件表达式>;
    如,在学生信息表Student中查询男生数据,语句如下:select * from Student where studentGender='男';

    从单个表读取指定行和列
    从一个关系表中读取指定行与指定列范围内的数据,既完成关系的行选择,又完成关系的列投影操作。
    语句基本格式:select <目标列>[, <目标列> … ] from <关系表> where <条件表达式>;
    如:从Student表中查询男生的姓名:select StudentName from Student where studentGender='男';

    Where条件子句
    where子句中可以使用如下方式指定范围数据。
    • 使用between … and关键词来限定列值范围,还可以使用关键词like与通配符来限定查询条件;
    • 使用通配符来限定字符串数据范围。下划线_通配符用于代表一个未指定的字符,百分号%通配符用于代表一个或多个未指定的字符。
    • 还可以使用多个条件表达式,并通过逻辑运算符(and、or、not)连接操作,以及使用in、not in关键词,进一步限定结果集的数据范围。
    如,从Student表中查询出生日期在 2000-01-01到2000-12-30的学生数据,其SQL语句如下:select * from Student where BirthDay between '2000-01-01' and '2000-12-30';
    如,查询Student表中邮箱域名为"@163.com"的学生数据,其数据查询SQL语句如下,select * from Student where Email like '%@163.com';

    对结果集进行排序
    在默认情况下,SQL查询的结果集是按指定列值的升序排列,可以使用关键字ASCDESC选定排序是升序或降序。
    如,从Student表中按学生出生日期降序输出学生数据,其数据查询SQL语句如下:select * from Student order by Birthday DESC;

    如果结果集需要按多个列排序,可以分别加入关键字ASCDESC改变。
    如,在Student表查询数据,首先按出生日期降序排列,然后按姓名升序排列,其SQL语句如下:select * from Student order by Birthday DESC,StudentName ASC;

    3.4.2 内置函数与分组统计

    SQL内置函数类型
    • 聚合函数
    • 算术函数
    • 字符串函数
    • 日期时间函数
    • 数据类型转换函数

    SQL聚合函数
    聚合函数是一些对关系表中数值属性列进行计算并返回一个结果数值的函数。
    • Avg() – 计算结果集指定列数据的平均值
    • Count() – 计算结果集行数
    • Min() – 找出结果集指定列数据的最小值
    • Max() – 找出结果集指定列数据的最大值
    • Sum() – 计算结果集指定列数据的总和
    如查询学生人数:select COUNT(*) as 学生人数 from Student;
    如查询年龄最大和年龄最小的学生出生日期:select Min(Birthday) as 最大年龄,Max(Birthday) as 最小年龄 from Student;

    分组统计
    语句基本格式:select 统计函数(目标列) from <表名> [where 条件] group by <目标列> [Having 条件];
    如:分专业统计学生人数:select Major as 专业,count(StudentId) as 学生人数 from Student group by Major;
    如:分专业统计男生人数,限定只显示人数大于2的人数:select Major as 专业,count(StudentId) as 学生人数 from Student where StudentGender = '男' group by Major having count(*) > 2

    3.4.3 多表关联查询

    子查询
    子查询只有在结果数据均来自一个表的情况下才有用。
    语句基本格式:select <目标列>[, <目标列> … ] from <表名> where <条件中嵌套另一关系表的select查询结果集>;
    如:在选课管理系统数据库中,希望检索出“计算机学院”的教师名单。该操作需要关联教师信息表Teacher和学院信息表College,才能获得这些数据,采用子查询方法实现两个表关联查询,SQL语句如下:select TeacherId, TeacherName,TeacherTitle from Teacher where CollegeId in (select CollegeId from College where CollegeName="计算机学院");

    使用连接关联多表查询
    需要从两个或多个表中获取结果数据时,使用连接关联多表查询,通过主键与外键的关联进行连接。
    语句基本格式:select <目标列> [, <目标列> … ] from <表名1>, <表名2>, … , <表名n>, where <关系表之间的连接关联条件>;
    如,在选课管理系统数据库中,希望获得各个学院的教师信息列表,包括学院名称、教师编号、教师姓名、教师性别、职称等信息,要求按学院名称、教师编号分别排序输出,其查询SQL语句如下:select B.CollegeName as 学院名称,A.TeacherId as 编号,A.TeacherName as 姓名,A.TeacherGender as 性别,A.TeacherTitle as 职称 from Teacher as A, College as B where A.CollegeId = B.CollegeId order by B.CollegeName,A.TeacherId;

    Join … on 连接查询语句
    实现多表连接关联查询还可以使用Join … on关键词的语句格式,其中两表连接关联查询的Join … on 语句格式如下:select <目标列> [,<目标列> …] from <表名1> Join <表名2> on <连接条件>;
    如,在选课管理系统数据库中,希望获得各个学院的教师信息列表,包括学院名称、教师编号、教师姓名、教师性别、职称等信息,要求按学院名称、教师编号分别排序输出,其查询SQL语句如下:select B.CollegeName as 学院名称,A.TeacherId as 编号,A.TeacherName as 姓名,A.TeacherGender As 性别,A.TeacherTitle as 职称 from Teacher as A Join College as B on A.CollegeId=B.CollegeId order by B.CollegeName, A.TeacherId;

    外部连接
    前面介绍的多表连接方式在select查询语句称为内部连接,在一些特殊情况下,如关联表中一些行的主键与外键不匹配,查询结果集就会丢失部分数据。
    如:在选课管理数据库中,希望查询所有开设课程的学生选课情况,包括课程名称、任课教师、选课学生人数。这需要关联课程信息表Course、教师信息表Teacher、开课计划表Plan、选课注册信息表Register,其连接查询的SQL语句如下:select C.CourseName as 课程名称,T.TeacherName as 教师,Count(R.CoursePlaneId)as 选课人数 from Course as C Join Plan as P on C.CourseId = P.CourseId Join Teacher as T on P.TeacherId=T.TeacherId Join Register as R on P.CoursePlanId = R.CoursePlanId Group by C.CourseName, T.TeacherName;
    在这里插入图片描述
    在这里插入图片描述

    3.5 数据控制SQL语句

    在SQL语言中,数据控制SQL语句是一种可对用户数据访问权进行控制的操作语句,它可以控制特定用户或角色对数据表、视图、存储过程、触发器等数据库对象的访问权限。主要有以下语句:
    • Grant授权语句
    • Revoke收权语句
    • Deny拒绝权限语句
    Grant权限授予语句
    Grant语句是一种由数据库对象创建者或管理员执行的权限授予语句,它可以把访问数据库对象权限授予给其他用户或角色。
    语句基本格式为:Grant <权限列表> on <数据库对象> to <用户或角色> [with grant option];
    如:在选课管理系统数据库中,将课程注册表Register的数据插入、数据修改、数据删除、数据查询访问权限赋予学生角色RoleS。SQL语句如下:Grant select, insert, update, delete on Register to RoleS;

    Revoke权限收回语句
    Revoke语句是一种由数据库对象创建者或管理员将赋予其他用户或角色的权限进行收回语句,它可以收回原授予给其他用户或角色的权限。
    语句基本格式为:Revoke <权限列表> on <数据库对象> from <用户或角色>;
    如:在选课管理系统数据库中,收回学生角色RoleS在课程注册表Register的数据删除访问权限。SQL语句如下:Revoke delete on Register from RoleS;

    Deny权限拒绝语句
    Deny语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。
    语句基本格式为:Deny <权限列表> on <数据库对象> to <用户或角色>;
    如:在选课管理系统数据库中,若拒绝教师角色Role T对教师表Teacher的数据删除访问权限,SQL语句如下:Deny delete on Teacher to RoleT;

    3.6 视图SQL语句

    视图是一种通过基础表或其他视图构建的虚拟表,它本身没有自己的数据,而是使用了存储在基础表中的数据。
    视图创建SQL语句
    语句基本格式:Create view <视图名> [(列名1),(列名2),…] as <select查询>;
    如:在选课管理系统数据库中,若需要建立一个查看基础课数据的视图BasicCourseView,其创建SQL语句如下:Create view BasicCourseView as select CourseName, CourseCredit, CoursePeriod, TestMethod from Course where CourseType = '基础课';
    当视图在数据库中创建之后,用户可以像访问关系表一样去操作访问视图。
    如:使用Select语句查询该视图数据,并按课程名称排序输出,其SQL语句如下:Select * from BasicCourseView order by CourseName;

    视图删除
    当数据库不再需要某视图,可以在数据库中删除该视图。
    语句基本格式:Drop view <视图名>;

    视图应用
    1、将复杂的SQL查询语句封装在一个视图中;
    2、提高数据访问安全性,保护用户隐私数据;
    3、提供一定程度的数据逻辑独立性;
    4、集中展示用户所感兴趣的特定数据。

    四、数据库设计与实现

    4.1 概述

    数据库设计是数据库应用系统开发的重要内容,在实现数据库之前,必须有明确的设计方案。
    数据库应用架构设计
    数据库应用架构可分为单用户结构、集中式结构、客户/服务器结构和分布式结构。
    数据库结构模型设计一般分为概念层、逻辑层和物理层设计,它们的设计模型分别为概念数据模型、逻辑数据模型和物理数据模型。
    数据库应用访问方式有直接本地接口连接访问、基于标准接口连接访问和基于数据访问层框架连接访问。

    数据库结构模型
    概念数据模型是一种面向用户的系统数据模型,它用来描述现实世界的系统概念化数据结构。使数据库设计人员在系统设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析业务数据以及数据之间的联系等,描述系统的数据对象及其组成关系。
    逻辑数据模型是在概念数据模型基础上,从系统设计角度描述系统的数据对象组成及其关联结构,并考虑这些数据对象符合数据库对象的逻辑表示。
    物理数据模型是在逻辑数据模型基础上,针对具体DBMS所设计的数据模型。用来描述系统数据模型在具体DBMS中的数据对象组织、存储方式、索引方式、访问路径等实现信息。

    4.2 E-R模型方法

    基础建模
    E-R模型
    E-R模型是“实体-联系模型”的简称,是一种描述现实世界概念数据模型、逻辑数据模型的有效方法。
    在E-R模型中,基本元素包括实体、属性、标识符和联系。
    • 实体:指问题域中存在的人、事、物、地点等客观事物在逻辑层面的数据抽象。它用于描述事物的数据对象,如客户、交易、产品、订单等。
    • 属性:指描述实体特征的数据项,每个实体都具有1个或多个属性。
    • 标识符:指标识不同实体实例的属性。标识符可以是1个或多个属性。标识符与主键的区别是标识符是一个逻辑概念,主键是物理概念。
    • 联系:指实体之间的联系,如“学生”与“成绩”的联系、“孩子”与“父亲”、“母亲”的联系等。联系中关联的实体数目称为联系度数

    实体-联系类型
    二元实体联系类型主要有:1对1;1对多;多对多。

    扩展建模
    在E-R模型中,实体之间除了基本联系外,还存在继承联系。继承联系用于表示实体之间的相似性关系。在实体继承联系中,一端是具有公共属性的实体,称为父实体;另一端是与父实体具有相似属性,同时也具有特征性的一个或多个实体,称为子实体
    在继承联系中,还可以分为互斥性继承联系和非互斥性继承联系。银行账户中个人账户和公司账户具有互斥性继承联系;职工中教师和干部具有非互斥性继承。除了互斥和非互斥的分类外,继承联系还可以分为完整继承和非完整继承。如果父实体实例必须属于子实体中的某一个,则称为完整继承联系;否则是非完整继承联系。比如,人实体与男人实体、女人实体之间具有完整继承联系;学生实体与本科生 实体、研究生实体具有非完整性继承联系。

    强弱实体联系
    在E-R模型中,按照实体之间的语义关系,可以将实体分为弱实体和强实体。弱实体是指那些对于另外实体有依赖关系的实体,即一个实体的存在必须以另一实体的存在为前提。而被依赖的实体称为强实体
    在E-R模型中,根据弱实体在语义上对强实体依赖程度的不同,弱实体又分为标识符(ID)依赖弱实体和非标识符(非ID)依赖弱实体两类。如果弱实体的标识符中含有所依赖实体的标识符,则该弱实体称为标识符(ID)依赖弱实体。

    4.3 数据库建模设计

    E-R模型到关系模型的转换原理
    • 将每一个实体转换成一个关系表,实体属性转换为关系表的列,实体标识符转换为关系表的主键或外键。
    • 将实体之间的联系转化为关系表之间的参照完整性约束。

    4.4 数据库规范化设计

    规范化数据库设计有效减少数据库中的冗余数据,尽量使同一数据在数据库中仅保存一份,有效降低维护数据一致性的工作量;设计合理的表间依赖关系和约束关系,便于实现数据完整性和一致性;设计合理的数据库结构,便于系统对数据高效访问处理。

    函数依赖
    函数依赖的数学定义:设有一关系模式R(U),U为关系R的属性集合,X和Y为属性U的子集。设t、s是关系R中的任意两个元组,如果t[X] = s[X],则 t[Y] = s[Y]。那么称Y函数依赖于X,表示为 X–> Y。
    函数依赖的左部称为决定因子,右部称为依赖函数。决定因子和依赖函数都是属性的集合。
    函数依赖反映属性与数性组之间相互依存、相互制约的关系,即关系表中属性之间的依赖关系。

    函数依赖的类型
    • 完全函数依赖:设X、Y是某关系的不同属性集,如X --> Y,且不存在X’ 作为X的子集,使得X’ --> Y,则Y称为完全函数依赖,否则称Y为部分函数依赖。
    • 函数传递依赖:设X、Y、Z是某关系的不同属性集,有X --> Y,Y !–> X, Y – Z,若X–> Z,称Z对X存在函数传递依赖。
    • 多值函数依赖

    关系规范化范式
    关系规范化是把一个有访问异常的关系分解成结构良好的关系的过程,使得这些关系有最小的冗余或没有冗余。;
    规范化范式是指关系表符合特定规范化程度的模式。

    第一范式
    如果关系表中的属性不可再细分,该关系满足第一范式,反之,该表就不是关系表。
    第二范式
    如果关系满足第一范式,并消除了关系中的属性部分函数依赖,该关系满足第二范式。
    第三范式
    如果关系满足第二范式,并切断了关系中的属性传递函数依赖,该关系满足第三范式。
    巴斯-科德范式 BCNF
    在关系中,所有函数依赖的决定因子都是候选键,该关系满足BCNF范式。
    第四范式
    若关系满足BCNF,并消除了多值函数依赖,该关系满足第四范式。
    关系的规范化程度越高,关系数据库存储的冗余数据就越少,可消除的数据访问异常就越多。不过关系的规范化程度越高,分解出来的关系表就越多,但实现数据查询访问时,需要关联多表,其效率降低。
    示例:

    在这里插入图片描述

    不满足,因为“联系方式”属性可以再细分为“电话”、“电子邮件”等。
    解决办法:将学生关系的“联系方式”进行属性分解。
    在这里插入图片描述

    问:进行属性分解后是否满足第二范式?
    答:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    逆规范化处理
    规范化减少了数据冗余,易于保证数据的完整性,但规范化过高也会导致数据库性能降低,因此,在利于规范化设计数据库时要平衡两者的关系。为此提出逆规范化处理,即,适当降低规范化范式约束,不再要求一个关系表必须达到很高的规范化程度,而是允许适当的数据冗余性,以获取数据访问性能。
    逆规范化处理的基本方法
    • 增加冗余列或派生列
    • 多个关系表合并为一个关系表

    五、数据库管理

    5.1 概述

    数据库管理是指为保证数据库系统的正常运行和服务质量必须进行的系统管理工作。

    在这里插入图片描述

    5.2 事务管理

    事务概念:在数据库中,事务是指由构成单个业务处理单元的一组数据库访问操作,要求它们要么都成功执行,要么都不执行。
    为什么需要事务管理:在数据库应用系统中,完成一个业务处理通常需要多个操作步骤才能完成处理,在每个操作步骤中,都可能遭遇失败,若没有一个处理机制,就可能造成操作数据混乱,从而破坏数据一致性。
    事务状态:在数据库系统中,==事是DBMS执行的最小任务单元。同时,事务也是DBMS最小的故障恢复任务单元和并发控制任务单元。==其生命周期状态变迁如下所示。
    在这里插入图片描述

    事务特性(ACID特性):
    • 原子性:事务所有操作在数据库中要么全部执行,要么全部不执行;
    • 一致性:事务多次执行,其结果应一致;
    • 隔离性:事务与事务之间隔离,并发执行透明;
    • 持续性:事务完成后,数据改变必须是永久的。

    事务并发执行:事务并发执行是指多个事务程序在数据库系统中同一时段运行。
    在这里插入图片描述
    在这里插入图片描述

    5.3 并发控制

    5.3.1 可串行调度

    当多个事务并发存取共享数据时,由于不当的数据操作顺序,可能出现数据不一致性问题(丢失更新数据、不可重复读、脏数据读等问题)。
    并发事务调度就是控制多个事务的数据操作语句按照恰当的顺序访问共享数据,使这些事务执行之后,避免造成数据的不一致性,即解决上述问题。
    事务调度原理:在DBMS中,事务管理器将并发执行事务的SQL数据操作请求提交给并发控制调度器。由并发控制调度器将各个事务的SQL数据操作请求按照一定顺序进行调度执行,并完成对数据库缓冲区的读写操作。

    在事务并发执行中,只有当事务中数据操作调度顺序的执行结果与事务串行执行结果一样时,该并发事务调度才能保证数据操作的正确性和一致性。符合这样效果的调度称为可串行调度

    5.3.2 锁机制

    资源锁定访问。加锁方式主要有:
    • 排它锁定——锁定后,不允许其他事务对共享数据再加锁;
    • 共享锁定:锁定后,只允许其他事务对共享数据添加读取锁。

    粒度越大,DBMS管理就越容易,但系统并发数据处理能力就越差。
    资源锁定粒度:数据库——粒度最大;表——粒度较大;页面——粒度中等;行——粒度最小。

    资源锁定实施方式:
    • 隐式锁定:DBMS缺省执行;
    • 显式锁定:加锁命令显式执行。

    基于锁机制的并发控制协议
    串行化调度必须约束并发事务对共享数据的操作访问是互斥方式进行,这需要用到基于数据库锁机制的并发控制协议。
    • 1、锁操作的相容性:加排它锁的共享数据事先不能有锁,加共享锁的共享数据事先只能有共享锁或无锁。
    • 2、加锁协议

    • 一级加锁协议:任何事务在修改共享数据对象之前,必须对该数据执行排它锁定指定,直到该事务处理完成,才进行解锁指令执行。特点:避免更新数据丢失问题,不能解决“不可重复读取”、“脏读”的问题。
      在这里插入图片描述

    • 二级加锁协议:在一级加锁协议基础上,针对并发事务的共享数据读操作,必须对该数据执行共享锁定指令,读完数据后即刻释放共享锁定。特点:避免“丢失更新”和“脏数据读问题”,还是可能出现“不可重复读取”的数据不一致问题。

      在这里插入图片描述

    • 三级加锁协议:在一级加锁协议基础上,针对并发事务对共享数据进行读操作,必须对该数据执行共享锁定指令,直到该事务处理结束才释放共享锁定。特点:解决“丢失更新”、“脏读”、“不可重复读”的问题。

    在这里插入图片描述

    • 不同级别锁协议对比
      在这里插入图片描述

    两阶段锁定协议
    并发事务的正确调度准则:一个给定的并发事务调度,当且仅当它是可串行化时,才能保证正确调度。
    保证可串行化的一个协议是二阶段锁定协议。
    二阶段锁定协议:规定每个事务必须分为两个阶段提出加锁和解锁申请:增长阶段,事务只能获得锁,但不能释放锁;缩减阶段,事务只能释放锁,但不能获得锁。

    若并发事务执行的所有事务都遵从两阶段锁定协议,则这些事务的任何并发调度都是可串行化调度,即这些开发调度执行结果可以保证数据库一致性。

    死锁问题解决
    • 事务死锁:在基于锁机制的并发事务执行中,如果这些事务同时锁定两个及以上资源时,可能会出现彼此都不能继续执行的状态,即事务死锁状态。
    在这里插入图片描述

    • 死锁出现的必要条件:
    	• 互斥条件
    	• 请求和保持条件
    	• 不剥夺条件
    	• 环路等待条件
    • 防范死锁的策略
    	• 允许用户一次发出当前所需全部资源的锁定,使用完成后,再释放给其他用户访问;
    	• 规定所有应用程序锁定资源的顺序必须完全相同。
    • 解决死锁的办法:当发生死锁时,回滚其中的一个事务,并取消它对数据库所做的改动。
    

    事务隔离级别
    在这里插入图片描述

    5.4 安全管理

    数据库系统安全模型:身份验证、DBMS权限管理、操作系统提供系统防护、数据库进行加密存储。

    5.4.1 用户管理

    身份验证。
    在数据库安全管理中,DBMS需要对每个用户进行管理,如用户创建、用户修改、用户删除管理等。实现用户管理方式:数据库服务器执行SQL语句管理用户、通过管理工具GUI 操作管理用户。
    1、用户创建SQL语句:create user <用户账号名> [[with] option […]];
    在这里插入图片描述

    2、用户修改SQL语句

    在这里插入图片描述
    在这里插入图片描述

    3、角色权限授予

    在这里插入图片描述

    5.5 数据库备份与恢复

    一、数据库系统故障原因
    数据库服务器硬件故障;系统软件故障;用户误操作;系统意外断电。
    二、数据库备份与恢复
    数据库备份:是指将数据库当前数据和状态进行副本复制,以便当数据库受到破坏或丢失数据时可以进行修复。
    数据库恢复:时数据库中数据丢失或被破坏时,从备份副本将数据库从错误状态恢复到某一正确状态
    三、数据库备份方法
    完全数据库备份、差异数据库备份、事务日志备份、文件备份

    展开全文
  • 数据库系统---分布式数据库系统

    千次阅读 2018-08-23 11:57:41
    分布式数据库系统  近年来,随着计算机技术与网络技术的发展,特别是 Internet 的兴起,分布式数据库系统得到了很快的发展和应用。 1 分布式数据库的概念   分布式数据库系统是相对于集中式数据库系统而言...
  • 分布式数据库系统

    千次阅读 2018-08-06 15:51:35
    概述 分布式数据库系统 ...分布式数据库系统特点 数据独立性  在集中式数据库中,数据独立性包括两个方面:数据逻辑独立性和数据的物理独立性。通过系统的三级模式(外模式、模式、内模式...
  • 数据库系统(Database System),是由数据库及管理软件组成的系统。 数据库就是存储数据的地方,传统意义上包括文件系统。 数据库是由两部分组成 1.db数据库本身——我们看不见的。 2,数据库管理系统。 数据库的...
  • 数据库系统数据库系统概论====第七章 数据库设计 7.1数据库设计概述 数据库设计定义 数据库设计定义 数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库...
  • 《数据库原理》— 数据库系统概论第五版习题解析

    万次阅读 多人点赞 2017-05-29 14:57:48
    数据库系统概论前七章习题解析 第1章绪论 1.试述数据、数据库、数据库系统、数据库管理系统的概念。答: (l)数据(Data):描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。...
  • 数据库系统概论》期末挂科

    千次阅读 多人点赞 2021-05-29 11:55:13
    数据库系统特点的是 数据结构化、数据由DBMS统一管理和控制、数据独立性高 概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是 实体-联系模型(E-R模型) 数据的物理独立性是指 用户的应用程序与...
  • 数据库系统组成标题数据库系统(DataBase System,DBS)组成硬件系统数据库数据库用户软件系统总结 标题数据库系统(DataBase System,DBS) 数据库系统是以计算机硬件为工具,把数据组织成数据库形式并对其进行...
  • 数据库系统基本概念

    2019-04-08 22:45:15
        下面将介绍与数据库技术紧密相关的数据、数据库、数据库管理系统和数据库系统4个基本概念.      1. 什么是数据(data)     我们可以这样来定义数据:描述客观事物的符号记录成为数据。数据是数据库...
  • 数据库系统概论》复习

    千次阅读 多人点赞 2019-05-27 12:13:27
    数据库系统概论》复习 第一章 绪论 1.1 数据库系统概述 1、数据库系统的四个基本概念 数据(Data):描述事物的符号记录称为数据,数据是数据库存储的基本对象。 数据库(DB):长期存储在计算机内、有组织的...
  • 分布式数据库系统体系结构

    千次阅读 2020-04-29 10:35:06
    分布式数据库系统1)分布式数据库系统概述定义特点优缺点数据共享分类2)分布式数据库系统体系结构数据存储模式结构透明性分布式数据库管理系统 1)分布式数据库系统概述 定义 分布式数据库系统(DDBS)是指数据存放在...
  • 数据库系统原理 全

    2020-05-14 17:48:05
    一、数据库系统概述 1、基本术语数据是数据库中存储的基本对象。 数据的定义:描述事物的符号记录称为数据。 数据是信息的数字化表示,而信息是数据的内涵。 数据的种类:文字、数字、图形、图像、声音、视频等。 ...
  • 数据库系统概念

    万次阅读 多人点赞 2019-03-12 16:50:55
    1.1 文件管理系统坏处 1.2 数据视图 1.3 数据模型 1.4 数据库语言 第二章、关系模型介绍 2.1 关系数据库的结构 2.2 数据库模式 2.3 码 第三章、SQL 3.1 SQL 查询语言概览 3.2 SQL数据定义 3.2.1基本类型 ...
  • 关系数据库特点

    千次阅读 2012-09-22 23:10:41
    数据库管理系统将具有一定结构的数据组成一个集合,它主要具有以下几个特点: 1. 数据的结构化 数据库中的数据并不是杂乱无章、毫不相干的,它们具有一定的组织结构,属于同一集合的数据具有相似的特征。 2. 数据...
  • 数据库系统概论复习笔记

    万次阅读 多人点赞 2018-05-26 08:11:02
    Abstract: 数据库系统概论期末复习笔记 ~btw:欢迎关注 ~ Github: https://github.com/ScarlettYellow个人博客:https://scarletthuang.cn/PART1 数据库概述关系模型的构成:关系数据结构、关系操作集合、关系完整...
  • SQL Server数据库系统和数据库简介

    千次阅读 2019-02-18 09:32:13
    一.SQL Server数据库系统概述 1.组成数据库系统的主要部分: 数据库系统(DataBase System,缩写为DBS)是采用数据库技术的计算机系统,是由数据库(DB)、数据库管理系统(DBMS)、数据库管理员(DBA)、硬件平台...
  • 参考教材:数据库系统... 数据库系统特点1.5. 数据模型1.6. 数据库系统模式的概念1.7. 数据库系统的组成2. 关系代数2.1. 关系模式与关系的区别3. 标准语言SQL3.1. SQL的数据定义功能3.2. SQL特点3.3. 视图的作用4....
  • 数据库系统概论——第七章 数据库设计 一、数据库设计概述 1. 数据库设计的特点 (1)数据库建设的基本规律 三分技术,七分管理,十二分基础数据 管理:数据库建设项目管理、企业的业务管理 基础数据:数据的收集、...
  • 数据库系统概论整理

    2019-03-02 11:12:22
    1.数据库系统概述 1.1数据库的四个基本概念 数据:描述事物的符号标记 数据库DB:是长期存储在计算机内有组织、可共享的数据集合 数据库管理系统DBMS:应用软件。应该具备的功能:数据定义DDL、数据的组织,存储...
  • 自己根据学校的课程内容整理的数据库期末复习资料,可能不同学校的教学内容不同,所以难免会有内容的遗漏,同时由于时间紧迫,难免会有笔误或知识性错误之处,欢迎斧正,希望能帮到有需要的同学。 第一章 :绪论 1.1...
  • 数据库系统概论第五版 答案

    万次阅读 多人点赞 2018-11-07 23:38:38
    图缺失部分:https://wenku.baidu.com/view/37304042ff4733687e21af45b307e87101f6f86c.html ... 第1章 绪论 ...1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ...
  • 数据库系统原理 笔记整理

    千次阅读 2020-06-22 18:47:32
    数据库系统原理 ╭ 第一章 数据库系统概述 │ 第二章 关系数据库 │ 第三章 数据库设计 │ 第四章 SQL与关系数据库基本操作 数据库系统原理< │ 第五章 数据库编程 │ 第六章 数据库安全与保护 │ 第七章...
  • 数据库的四个基本概念 数据(data) 数据是数据库中存储的基本对象。描述事物的符号记录称为数据。 数据的含义称为数据的语义,数据与其语义是...概括地讲,数据库数据具有永久存储、有组织和可共享三个基本特点。...
  • 第五版)★第一章 绪论v 本章内容:数据库系统概述、数据模型、数据库系统结构v 本章主要考点: 数据、数据库、★数据库管理系统的概念、概念模型、★ER图、三种数据模型、数据库的三级模式结构1、试述数据、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 77,069
精华内容 30,827
关键字:

以下不属于数据库系统特点