在计算机中,和咱们的操做系统同样,有一套软件。这种软件用于管理咱们存储的数据,这个软件称为数据库管理系统(DBMS),而咱们平时说的数据库,指的就是这个数据库管理系统。在咱们的生活中,到处都有数据的身影。而咱们天天都在产生着数据,这些数据在计算机中怎么存储呢?总不能随便乱放吧,这样,若是咱们在须要的时候要获取这些数据,那么不是得找死人啊。要是能够把那些数据进行分类,并进行管理,那么就能够对这些数据进行有效的利用。而数据库管理系统就是担当这个重任,用于对数据的管理。固然,数据库管理系统的能力是很强大的,不仅是这些。数据库
有些人可能以为,我在文件夹中保存数据,经过不一样的目录结构来对数据进行组织,也能够达到对数据的有效管理。可是,数据库的出现,除了要对数据进行有效的组织,关键是为了解决以下的问题:编程
数据库系统是一些相关联的数据和一组访问数据库和修改数据库的程序的集合。数据库系统提供给用户抽象的视图,而且隐藏了低层的存储细节。安全
数据库为了方便对数据的检索,对数据进行分层次来屏蔽复杂性并发
数据抽象对数据分为3层:数据库设计
特定时刻存储存储在数据库中的信息集合称为数据库的一个实例,而数据库的整体设计称为数据库模式。这个有点抽象,形象的说,类比C语言,模式就至关因而定义的一个变量,而实例就至关因而变量存储的值,而变量的值在不一样的时刻是不一样的。编程语言
对于数据库的不一样抽象层次,数据库的模式能够分为物理模式,对应了数据库层次中的物理层;逻辑模式对应了数据库抽象层次中的逻辑层;而对于视图层次,则能够分为多个子模式,对应了多个视图。工具
数据库结构的基础是数据模型。数据模型是一个描述数据,数据联系,数据语义以及一致性约束的概念工具集合。数据模型提供了一种描述物理层,逻辑层以及视图层数据库设计的方式。操作系统
数据模型能够被分为:设计
数据操纵语言(DML)是一种使用户能够访问或操做那些经过必定的数据模型组织起来的数据的语言。对象
数据操纵语言能够分为:
查询是要求对信息进行检索的语句。DML中涉及信息检索的部分称为查询语言。
数据库模式是经过一系列定义来讲明的,这些定义由一种称做数据定义语言(DDL)的特殊语言来定义的。数据库系统使用的存储结构和访问方式是经过一系列特殊的DDL语句来讲明,这种特殊的DDL称做数据存储和定义语言。这些语言定义了数据库模式的实现细节,而这些细节对用户来讲一般是不可见的。
存储在数据库中的数据值必须知足一些一致性约束,约束条件包括:
在关系数据库中,关系是经过表来表示的。在一个表中,每一行表明一个联系,而一个关系就是由许多的联系组成的集合。表的概念和数学上的关系的概念是密切相关的。在数学中,一个元组就是一组值得序列,在n个值之间的联系能够在数学上用关于这些值得一个n元组表示。
这样,在关系模型中,关系用来指表明,而元组用来指代行,属性就是表中的列。
对于每个属性,都存在一个容许取值的集合,称为该属性的域。
在数据库中,数据库模式就至关于编程语言中定义的变量,而数据库实例就至关因而这个变量保存的值。在不一样的时刻,数据库中保存的内容是可能改变的,而数据库的逻辑定义通常是不会被改变的。
通常来讲,关系模式由属性序列以及各属性对应的域组成。关系实例由数据库中存储的内容组成。
在数据库中,必须有一种能够区分给定关系中的不一样的元组的方法。也就是说,一个元组的属性值必须是可以惟一区分元组的。
超码是一个或多个属性的集合,这些属性的组合可使得咱们在一个关系中惟一地标识一个元组。在一个超码中,可能包含了可有可无的属性,若是对于一些超码,他们的任意真子集都不能成为超码,这样的最小超码称为候选码。
当数据库的设计者在候选码中选中了一个码用来在一个关系中区分不一样的元组,那么这个被选中的候选码就被称为主码。
一个关系模式R1,在它的属性中包含了另外一个关系模式R2的主码,那么这个属性在R1上被称为是一个参照R2的外码。关系R1也称为这个外码依赖的参照关系,R2被称为外码的被参照关系。在参照关系和被参照关系上的约束被称为参照完整性约束。参照完整性约束要求在参照关系中,任意一个元组在特定属性上的取值必然等于被参照关系中某个元组在特定属性上的取值。
参考:《Database System Concepts》