数据库基本概念

1. 什么是数据库

 

0931460

 

在计算机中,和咱们的操做系统同样,有一套软件。这种软件用于管理咱们存储的数据,这个软件称为数据库管理系统(DBMS),而咱们平时说的数据库,指的就是这个数据库管理系统。在咱们的生活中,到处都有数据的身影。而咱们天天都在产生着数据,这些数据在计算机中怎么存储呢?总不能随便乱放吧,这样,若是咱们在须要的时候要获取这些数据,那么不是得找死人啊。要是能够把那些数据进行分类,并进行管理,那么就能够对这些数据进行有效的利用。而数据库管理系统就是担当这个重任,用于对数据的管理。固然,数据库管理系统的能力是很强大的,不仅是这些。数据库

 

有些人可能以为,我在文件夹中保存数据,经过不一样的目录结构来对数据进行组织,也能够达到对数据的有效管理。可是,数据库的出现,除了要对数据进行有效的组织,关键是为了解决以下的问题:编程

  • 数据的冗余和不一致:若是相同的信息被存储在不一样的位置,那么可能会出现数据的冗余,就是能够在一个地方存的数据,恰恰要分好多的地方存储。并且若是在不一样的位置存储了相同的数据,并且在存储的时候存储的结果不一样,那么就会致使数据存储的不一致。
  • 数据访问困难:若是用户须要查看一些数据,那么在没有数据库管理系统的状况下,即便数据组织的很好,可是在查询的时候也可能会不可避免的须要手工劳动,更加别提在混乱的数据中查找本身须要的信息了。
  • 数据孤立:因为数据存储在不一样的文件中,在须要的时候必须分散到每一个文件中收集信息。
  • 完整性问题:在数据库中,能够定义完整性约束条件,使得数据在保存的时候能够知足必定的约束性条件。
  • 原子性问题:在访问数据数据的时候,可能须要进行原子操做(所谓的原子操做,若是一个操做是不能分多步进行的,那么这个操做就是原子的)。如银行帐户的存取款操做,就须要涉及到原子操做。
  • 并发操做:在访问数据的时候,可能会出现多个用户访问同一个数据源,那么这须要保证数据是能够被并发访问的。
  • 安全性问题:有些数据是须要保护的,不是全部的数据都是公开给每个用户的。因此须要对数据访问设置安全措施。

 

2. 数据视图

 

数据库系统是一些相关联的数据和一组访问数据库和修改数据库的程序的集合。数据库系统提供给用户抽象的视图,而且隐藏了低层的存储细节。安全

 

2.1 数据抽象

 

数据库为了方便对数据的检索,对数据进行分层次来屏蔽复杂性并发

1-2-1

数据抽象对数据分为3层:数据库设计

  • 物理层:最低层次的抽象,描述数据是怎样存储的。
  • 逻辑层:处在物理层之上,逻辑层描述数据库中存储了什么数据以及这些数据间存在的关系。逻辑层经过简单的结构描述了整个数据库。
  • 视图层:处在最高的层次,描述了整个数据库的某个部分,为了适应用户的不一样需求,该层能够利用数据库中多样的信息,构建出用户须要的数据。

 

2.2 实例和模式

 

特定时刻存储存储在数据库中的信息集合称为数据库的一个实例,而数据库的整体设计称为数据库模式。这个有点抽象,形象的说,类比C语言,模式就至关因而定义的一个变量,而实例就至关因而变量存储的值,而变量的值在不一样的时刻是不一样的。编程语言

对于数据库的不一样抽象层次,数据库的模式能够分为物理模式,对应了数据库层次中的物理层逻辑模式对应了数据库抽象层次中的逻辑层;而对于视图层次,则能够分为多个子模式,对应了多个视图。工具

 

2.3 数据模型

 

数据库结构的基础是数据模型。数据模型是一个描述数据,数据联系,数据语义以及一致性约束的概念工具集合。数据模型提供了一种描述物理层,逻辑层以及视图层数据库设计的方式。操作系统

数据模型能够被分为:设计

  • 关系模型:关系模型使用表来表示数据之间的关系,是目前主流数据库管理系统使用的数据模型,关系型数据库,如MySQL数据库。
  • 实体联系模型
  • 基于对象的数据模型
  • 半结构化数据模型

 

3. 数据库语言

 

3.1 数据操纵语言

 

数据操纵语言(DML)是一种使用户能够访问或操做那些经过必定的数据模型组织起来的数据的语言。对象

数据操纵语言能够分为:

  • 过程化DML:要求用户指定须要的数据已经获取这些数据的方式。
  • 声明式DML:只要求用户指定须要的数据,而不须要用户指明获取数据的方式。

查询是要求对信息进行检索的语句。DML中涉及信息检索的部分称为查询语言

 

3.2 数据定义语言

 

数据库模式是经过一系列定义来讲明的,这些定义由一种称做数据定义语言(DDL)的特殊语言来定义的。数据库系统使用的存储结构和访问方式是经过一系列特殊的DDL语句来讲明,这种特殊的DDL称做数据存储和定义语言。这些语言定义了数据库模式的实现细节,而这些细节对用户来讲一般是不可见的。

存储在数据库中的数据值必须知足一些一致性约束,约束条件包括:

  • 域约束:每一个属性都必须对应一个全部可能的值构成的域(如:整数型,字符型,日期类型)。声明一种属性属于某种具体的域就至关于约束它能够取得值。域约束是完整性约束的最基本形式。
  • 参照完整性:若是一个关系中给定属性集上的取值也在另外一个关系中出现,这就是须要知足参照完整性。
  • 断言:一个断言就是数据库须要时刻知足的某一个条件,域约束和参照完整性约束是断言的特殊形式。
  • 受权:对于不一样的用户,对数据库的访问权限是不一样的,这些须要经过受权来表达。

 

4. 关系数据库

 

4.1 关系数据库的结构

 

在关系数据库中,关系是经过来表示的。在一个表中,每一行表明一个联系,而一个关系就是由许多的联系组成的集合。表的概念和数学上的关系的概念是密切相关的。在数学中,一个元组就是一组值得序列,在n个值之间的联系能够在数学上用关于这些值得一个n元组表示。

这样,在关系模型中,关系用来指表明,而元组用来指代行,属性就是表中的列。

对于每个属性,都存在一个容许取值的集合,称为该属性的

 

4.2 数据库模式

 

在数据库中,数据库模式就至关于编程语言中定义的变量,而数据库实例就至关因而这个变量保存的值。在不一样的时刻,数据库中保存的内容是可能改变的,而数据库的逻辑定义通常是不会被改变的。

通常来讲,关系模式由属性序列以及各属性对应的域组成。关系实例由数据库中存储的内容组成。

 

4.3 码

 

在数据库中,必须有一种能够区分给定关系中的不一样的元组的方法。也就是说,一个元组的属性值必须是可以惟一区分元组的。

超码是一个或多个属性的集合,这些属性的组合可使得咱们在一个关系中惟一地标识一个元组。在一个超码中,可能包含了可有可无的属性,若是对于一些超码,他们的任意真子集都不能成为超码,这样的最小超码称为候选码

当数据库的设计者在候选码中选中了一个码用来在一个关系中区分不一样的元组,那么这个被选中的候选码就被称为主码。

 

4.3.1 参照关系和被参照关系:

一个关系模式R1,在它的属性中包含了另外一个关系模式R2的主码,那么这个属性在R1上被称为是一个参照R2的外码。关系R1也称为这个外码依赖的参照关系,R2被称为外码的被参照关系。在参照关系和被参照关系上的约束被称为参照完整性约束。参照完整性约束要求在参照关系中,任意一个元组在特定属性上的取值必然等于被参照关系中某个元组在特定属性上的取值。

 


参考:《Database System Concepts》

相关文章
相关标签/搜索