【数据库学习笔记】Day02 - 数据库系统结构

【数据库学习】Day02 - 数据库系统结构

一、数据和数据模型:

          现实世界的数据散乱无章,不利于人们对其进行管理和处理,因此,必须把现实世界的数据按照一定格式组织起来,方便对数据的操作和使用。在用数据库技术管理数据时,数据被按一定格式组织起来,常见的有二维表结构(即关系模型的结构),使得数据能被高效地管理和处理。

1.1 数据与信息

  • 描述事物的符号记录称为数据
  • 将从数据中获得的有意义的内容称为信息
  • 数据有一定的格式,这些格式的规定叫数据的语法,而数据的含义称为数据的语义。
  • 数据是信息的一种存在形式,只有通过解释和处理才能称为有用的信息。

1.1.1 数据一致性:
       数据一致性,就是当多个用户试图同时访问一个数据库,它们的事务同时使用相同的数据,可能会发生以下四种情况:丢失更新未确定的相关性不一致的分析幻想读。解决这些问题就保证了这些用户修改数据后这些数据能保持同步更新。
1.1.2 数据的静态特征:

  • 数据的基本结构
    如:学生学号、姓名、性别、出生日期。
  • 数据间的联系
    如:学生选课表中的学号与学生基本信息表中的学号存在联系。
  • 数据取值范围约束
    如:考试成绩在0~100分之间。

1.1.3 数据的动态特征:

  • 指对数据可以进行的操作及操作的规则。
  • 对数据库的操作主要有:
    查询数据、更改数据(插入、删除和更新)。

1.1.4 一般将对数据的静态特征和动态特征的描述称为数据模型三要素,即:数据结构数据操作数据约束
1、数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。

2、数据操作:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。

3、数据约束:数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、它们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。

1.2 数据模型(data model):

       数据模型是一种模型,它是对现实世界数据特征的抽象。数据库领域中,数据模型用于表现现实世界中的对象,即将现实世界中杂乱的信息用一种规范的、形象化的方式表达出来。数据模型既面向现实世界,又面向机器世界,因此要满足三个要求:

  • 能够真实模拟现实世界。
  • 容易被人们理解。
  • 能够方便地在计算机上实现。

数据模型实际上是模型化数据和信息的工具,根据模型应用的不同目的,可以将模型分为两大类:

  • 概念层数据模型(概念模型):
    从数据的语义视角来抽取模型,是按用户的观点来对数据和信息进行建模。
  • 组织层数据模型(组织模型):
    从数据的组织层次来描述数据。

二、概念层数据模型:

  • 从数据的语义视角抽取现实世界中有价值的数据并按用户的观点对数据进行建模。
  • 主要用于数据库的设计阶段。
  • 与具体的数据库管理系统(DBMS)无关。
  • 与具体的实现方式无关。
  • 概念层模型实际是现实世界到机器世界的一个中间层次。是现实世界到信息世界的第一层抽象
  • 概念层模型是数据库设计人员和用户之间进行交流的工具。
  • 常用的概念层模型:实体 - 联系模型语义对象模型

2.1 实体 - 联系模型:

      包含实体、属性、联系等概念。
(1)实体:

  • 具有公共性质的可相互区分的现实世界对象的集合。
  • 可以是具体的事物,也可以是抽象的概念的联系。
  • 具体的事物,如:学生、课程、职工。
  • 抽象的联系:学生选课。
  • 实体的表示方式:

       在E-R图中用矩形框表示实体,把实体名写在框里。
【数据库学习笔记】Day02 - 数据库系统结构_第1张图片

(2)属性:

  • 实体所具有的特征或性质。
    如:(学生的)身高、年龄、性别、体重。

(3)联系:

  • 联系是数据之间的关联集合,是客观存在的应用语义链。分为:
  • 实体内部的联系:一个实体内属性之间的联系。
    如:职工实体内部的职工号和此职工的部门经理号。
  • 实体之间的联系:不同实体之间的联系。
    如:课程实体和学生实体之间存在选课联系。

       在E-R图中用菱形框表示联系,框里写上联系名,并用连线与有关的实体相连。
【数据库学习笔记】Day02 - 数据库系统结构_第2张图片

  • 根据联系之间的实体,还可以将联系分为:
  • 一对一联系(1:1),例如:
    经理 1 管理 1 部门
  • 一对多联系(1:n),例如:
    部门 1 工作 n 职工
  • 多对多联系(n:n),例如:
    学生 m 选课 n 课程
  • 关联多个实体的联系,例如:
    售货员 销售 顾客/商品

三、组织层数据模型:

 从数据的组织方式来描述数据。主要有:

  • 层次模型
  • 网状模型
  • 关系模型
  • 对象 - 关系模型

组织层数据模型是从计算机系统的观点对数据进行建模。
与所使用的数据库管理系统(DBMS)有关

3.1 关系数据模型:

3.1.1 关系数据模型的数据结构:

  • 把数据看成是二维表中的元素,而这个二维表就是关系
  • 用关系(表格数据)表示实体和实体之间联系的模型称为关系数据模型。
    如:学生基本信息表
    【数据库学习笔记】Day02 - 数据库系统结构_第3张图片
  • 关系:关系就是二维表。并满足如下性质:
    关系表中的每一列都是不可再分的基本属性。
    表中的行、列次序并不重要。
    以下是一个反例:
    【数据库学习笔记】Day02 - 数据库系统结构_第4张图片
  • 元组:关系表中的每一行称作一个元组,它相当于一个记录值(对应现实世界中的实体)。
  • 属性:表中的每一列是一个属性值的集合,列可以命名,称为属性名。
  • 主码:表中用于唯一地确定一个元组的一个属性或是一个最小的属性组。例:
    学生基本信息表:
    学号,姓名,年龄,性别,所在系)
    学生修课信息表:
    学号,课程号,成绩)
  • :属性的取值范围。如性别的域为:('男‘,’女‘)
  • 关系模式
    二维表的结构称为关系模式,即,关系模式是二维表的表框架或表头结构。
    关系模式一般表示为:
    关系名(属性1,属性2,…,属性n)
    例如,学生关系模式为:
    学生(学号,姓名,性别,年龄,所在系)

3.1.2 关系模型的数据操作:

  • 关系模型的操作对象是集合(也就是关系)。
  • 非关系型数据库系统中典型的操作是一次一行或一次一个记录。
  • 集合处理能力是关系模型系统区别于其他系统的一个重要特征。
  • 关系数据模型的数据操作主要包括四种:查询插入删除修改数据。

3.1.3 关系模型的数据完整性约束:

  • 实体完整性
  • 参照完整性
  • 用户定义的完整性

1.实体完整性:

  • 实体完整性是保证关系中的每个元组都是可识别的和唯一的。
  • 表中不允许出现两种记录:
    无主码值的记录
    主码值相同的记录

2.参照完整性:

  • 用于描述实体之间的联系。
  • 参照完整性一般是指多个实体(表)之间的关联关系。
  • 一般体现于外码
    外码:取作本表(子表)属性之一的外表(父表,主表)的主码。主码值先在主表中生成,后在子表中引用。
    【数据库学习笔记】Day02 - 数据库系统结构_第5张图片
    【数据库学习笔记】Day02 - 数据库系统结构_第6张图片
  • 参照完整性的规则:
    对于外码,一般应符合如下要求:
    或者值为空;
    或者等于其所应用的关系中的某个元组的主码值。
  • 外码可以有重复值,也可以为空。

3.用户定义的完整性:

  • 也称为域完整性或语义完整性。
  • 按应用语义,属性数据有:
    类型与长度限制:方便计算机操作。
    取值范围限制:防止属性值与应用语义矛盾。
    如:
    成绩取[0…100],评价取{优、良、中、及格、不及格}。

四、数据库系统的结构:

4.1 三级模式结构:

【数据库学习笔记】Day02 - 数据库系统结构_第7张图片

  • 概念模式是关系的。
  • 外模式是关系的或接近关系的,其内容来自概念模式,它是最接近用户的。
  • 内模式不是关系的,它是数据的物理存储方式。

4.1.1 外模式:

  • 也称为用户模式子模式
  • 外模式是用户对现实系统中感兴趣的整体的局部数据结构的描述。
  • 是数据库整体数据结构的子集或局部重构。
    【数据库学习笔记】Day02 - 数据库系统结构_第8张图片
    所谓重构:【数据库学习笔记】Day02 - 数据库系统结构_第9张图片
  • 用外模式定义语言表达,例:对Redis Database,定义视图结构。
  • 是保证数据库安全的一个措施。
    安全性(取子模式,省略一部分内容给用户看):
    【数据库学习笔记】Day02 - 数据库系统结构_第10张图片

4.1.2 概念模式:

  • 也称为逻辑模式模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据描述。
  • 是数据库系统结构的中间层
  • 用模式定义语言表达,例:对关系数据库,定义表头结构、属性取值范围等等。
  • 模式实际上是数据库数据在逻辑上的视图。
  • 一个数据库只有一种模式。
  • 不涉及存储记录对列、索引、指针或其他存储的访问细节。

4.1.3 内模式:

  • 也称存储模式
  • 是数据的内部存储结构描述(数据的组织与存储)
  • 用内模式定义语言描述,例:对Redis Database,定义数据文件的位置、索引的依据等。

4.2 模式映像与数据独立性:

  • 数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能够逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。
  • 在数据库技术中, 为提高数据库的逻辑独立性和物理独立性, 数据库的结构被划分成用户级概念级,和存储级三个层次。
  • 为了能够在内部实现这三个抽象层次的联系和转换,DBMS在三级模式间提供了两层映像:
    外模式/模式映像
    模式/内模式映像

4.2.1 模式间的映像(DBMS的基本功能之一):

  • 维持DB数据与DB应用程序相互独立,从而使DB应用程序不随DB数据的逻辑或存储结构的变动而变动。

4.2.2 模式/内模式映像:

  • 当存储结构改变时,可由数据库管理员(DBA)用内模式定义语句,调整内模式定义,从而保持模式不变。保证了数据与程序的物理独立性,即数据的物理独立性

4.2.3 外模式/模式映像:

  • 当模式改变时,可由数据库管理员(DBA)用外模式/模式定义语句,调整外模式/模式映像定义,从而保持外模式不变。保证了数据与逻辑的独立性,即数据的逻辑独立性

五、数据库管理系统(DBMS):

  • DBMS是处理数据库访问的系统软件。
  • 处理过程:
    ①用户使用数据库语言发出一个访问请求。
    ②DBMS接受请求并分析。
    ③DBMS检查用户外模式、相应的外模式/模式映像模式模式/内模式映像存储结构定义
  • 数据库管理系统的主要功能是定义数据库
  • 数据库管理系统的工作不包括为定义的数据库提供操作系统(OS),操作系统由计算机提供。
  • 数据库管理系统中用于定义和描述数据库逻辑结构的语言称为数据库模式描述语言

5.1 DML:

DML(data manipulation language):
它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。

5.2 DDL:

DDL(data definition language):
DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。

5.3 DCL:

DCL(Data Control Language):
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL。
【数据库学习笔记】Day02 - 数据库系统结构_第11张图片

5.4 DBMS的功能和组成:

组成:
【数据库学习笔记】Day02 - 数据库系统结构_第12张图片
功能:

  • 数据定义
  • 数据操作
  • 优化和执行
  • 数据安全和完整性
  • 数据恢复和并发
  • 数据字典
  • 性能

【注1】数据库管理系统(DBMS)并不是一套完整的数据库应用系统,数据库应用系统是由数据库系统、应用程序系统、用户组成的,具体包括:数据库、数据库管理系统、数据库管理员、硬件平台、软件平台、应用软件、应用界面。
【注2】数据库管理系统(DBMS)如名字所示,并不是一个软件,而是一组软件。

六、仓库管理员(DBA):

  • DBA的职责:

DBA负责全面管理和控制数据库系统的职责,具体有:
(1)决定数据库中要存放哪些信息。
(2)决定数据库的存储结构和存取策略。
(3)定义数据的安全性要求和完整性约束条件。
(4)监控数据库的使用和运行:转储数据、维护日志文件、故障恢复。
(5)数据库的改进和重组重构:对运行情况进行记录、统计分析,以此来不断改进数据库设计。

你可能感兴趣的:(数据库学习笔记,数据库,sql,database)