数据库概述以及基本概念
前言:
以前用的是mysql数据库,现在要学习一下SQL server数据库,以前没写自己的学习博客,现在比较着学习SQL server和mysql,将学习过程做个记录;
在这个信息大爆炸的时代,信息充斥在我们生活中的每一个角落,不管是电商的货物显示,还是学生成绩的查询,都需要数据库的支持;
正文:
导图
一、数据库的概念
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。《百度百科》
二、数据库系统的组成
(以下摘自 :鲁宁,寇卫利,林宏编著,《SQLServer2012数据库原理与应用 》)
1. 数据库
数据库是与应用彼此独立的、以一定的组织方式存储在一起的,彼此相互关联的,具有较少冗余的,能被多个用户共享的数据集合。
2. 数据库管理系统
数据库管理系统,简称DBMS,是一种负责数据库的定义、建立、操作、管理和维护的系统管理软件。
DBMS位于用户与操作系统之间,负责处理用户和应用程序存取、操纵数据库的各种请求,包括DB的建立,查询,更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次形、网状型、关系型和面向对象型等。数据库管理系统具有如下功能:
1)数据定义:定义并管理各种类型的数据项。
2)数据处理:数据库存取能力(增加,删除,修改和查询)。
3)数据安全:创建用户账户、相应的口令及设置权限。
4)数据备份:提供准确,方便的备份功能。
3. 数据库管理员
数据库管理员是大型数据库系统的一个工作小组,主要负责数据库设计,建立,管理和维护数据库,协调各用户对数据库的要求等。
4. 用户
用户是数据库系统的服务对象,是使用数据库系统者。数据库系统的用户可以有两类:终端用户、应用程序员。
5. 数据库应用系统
应用系统是指在数据库管理系统提供的软件平台上,结合各领域的应用需求开发的软件产品。
三、数据库的分类
分为关系型数据库和非关系型数据库两类
1.关系型数据库:
1)SQL Server:Microsoft ,适用大中型型应用系统;
2)MySQL:隶属Oracle,关系型数据库,开源,适用中小型应用系统;2007年前流行的组合LAMP(Linux+Apache+MySQL+PHP/Perl/Python)
3)Oracle:甲骨文公司,适用大中小应用系统
4)DB2:IBM,适用大型应用系统
5)Sybase: Sybase公司,适用大型应用系统
2.非关系型数据库
NoSQL(Not Only SQL)
目前对于非关系型数据库主要有四种数据存储类型:键值对存储(key-value),文档存储(document store),基于列的数据库(column-oriented),还有就是图形数据库(graph database)。每一种都会解决相应的问题,这些问题是关系型数据库所不能解决的。而在实际应用中都会将这几种情况结合起来实现相应的功能。
应用:大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
四、数据库的发展趋势
(以下参考:陈树焜主编,《关系型数据库管理系统》,东北财经大学出版社,1998.6)
1. 数据库系统的发展过程和发展趋势
数据库技术是计算机科学技术中发展最快的重要分支之一。由
于经济管理、*部门、工业控制、科学研究、文化教育、军事情
报、社会服务等方面的广泛应用,使数据库技术的研究和发展成为
现代信息化社会具有强大生命力的领域。现将数据库技术的发展概要地介绍。
2. 发展
2.1 从格式化模型发展到关系模型
最早发展起来的数据库系统是属于格式化模型(即层次模型和网状模型)。1968年IBM公司研制出的IMS是层次数据模型系统。事实上IMS不是只能处理层次结构,也能处理网状结构。IMS对数据库的发展很有影响。由于该系统设计是面向程序员的,所以操作起来难度较大。1969年CoDASYL(美国数据系统语言协会)组织的下属组织DBTG提出了关于网状模型的DBTG系统,澄清了许多概念,建立了若干权威性的观点,极大地推动了数据库的发展,为数据库走向成熟奠定了基础。1970年IBM公司的E.F.Codd发表了题为“大型共享数据的银行数据关系模型”提出了关系数据模型的概念。1979年IBM公司研制成一个完整的实验性原型System R系统,使用SQL数据语言。80年代,成批的RDBMS(关系型数据库管理系统)进入市场,最著名的是美国ORACLE公司研制的ORACLE系统。这是世界上第一个商品化的RDBMS。现在是世界上惟一可以通用于大、中、小型机和微机的产品。其它适用于微机和前端机的多用户关系数据库系统也有广泛应用。例如DBASEⅥ、UN IFY、INFORMIX、FoxBASE、SYBASE、DATABASE、FoxPro、PARADOX等系统。成批RDBMS的出现,开辟了数据库应用的新局面。
2.2 从大型系统发展到中、小型系统及微机系统
最初的数据库系统都是大型数据库系统,都是在大型机上实现的。70年代中后期,由于小型机的普及和功能的增强,因而出现了在小型机上实现的数据库系统。80年代初期,随着微机的普及和广泛应用,微型机数据库系统得到了大发展。微型机上使用的数据库系统基本上是属于关系模型的。微型机数据库系统比起大型机或小型机数据库系统要小得多,它是由大型数据库系统经过选择、裁剪和简化而成。其结构简单、紧凑、面向应用,它的发展趋势是面向非程序员用户,供非计算机专业人员使用。
2.3 从集中式发展到分布式
随着计算机通讯网络的发展和应用,数据库系统从集中式向分布式系统发展。这一方面是因为集中式在日益膨胀的信息面前力不从心,另一方面是由于企业内各部门要求对自己的数据进行单独的管理,不希望所有的数据均集中在一个结点,这就必然形成多个服务器且地理位置分散的局面。为了适应这种发展要求,数据库系统
就必须具备分布式功能,形成分布式数据库系统。所谓分布式数据库系统,就是把数据分散存储在多个网络结点上的数据库系统。这些结点在地理位置上处于不同的地点,彼此间靠通讯来连接。目前,分布式数据库系统的实现方案有两种:分布式事务处理和复制技术。
2.4 第四代语言及应用生成器
70年代末出现了甚高级语言,人们称它为第四代语言(4th Generation Language简称4GL)。第四代语言的特点是:非过程化程度高,用户只需要指出“做什么”,而“怎样做”则由应用生成器(系统)自动生成所需要的程序或软件,所以应用生成器是一种开发工具。早期的产品是自动生成报表或数据库的查询,后来发展到可以自动生成屏幕格式、统计图形、数据字典、菜单、应用程序、项目管理等等。
2.5 新一代数据库系统
新一代的数据库从目前软件发展的趋势看,各家软件公司不断推出改进了性能或功能的新版本,如采用SQL语言;提供良好的图形界面和窗口功能;支持开放的客户/服务器系统;支持面向对象的程序设计;支持智能化数据管理;支持多媒体技术;提供新一代数据库管理系统开发工具等。另一方面,在理论研究上,也取得了重大的进展。
2.6 向知识工程发展
知识工程是研究知识信息处理的科学,是提供开发智能系统的技术,是人工智能、数据技术等学科交叉发展的结果。目前,数据库技术积极向知识工程方向发展,主要表现在向演绎数据库、知识库系统、专家系统、决策支持系统等几个方面的发展。
五、 数据模型
数据模型是表示实体类型及实体间联系的模型,是数据特征的抽象描述,用来表示信息世界中的实体,它描述的是数据的逻辑结构。
逻辑数据模型包含三个部分:
1)数据结构是指对实体类型和实体间联系的表达和实现。
2)数据操作是指对数据库的检索和更新(包括插入,删除和修改)两类操作。
3)数据完整性约束给出数据及其联系应具有的制约和依赖规则。
六、关系模型,关系模式
1. 定义: 关系数据模型是以集合论中的关系概念为基础发展起来的。关系模型中无论是实体还是实体间的联系均由单一的结构类型——关系来表示。在实际的关系数据库中的关系也称表。一个关系数据库就是由若干个表组成。
关系模型是指用二维表的形式表示实体和实体间联系的数据模型。
2. 关系模型的基本概念和基本术语共有十四个,它们分别是:
0)关系(Relation):一个关系对应着一个二维表,二维表就是关系名。
1)元组(Tuple):在二维表中的一行,称为一个元组。
2)属性(Attribute):在二维表中的列,称为属性。属性的个数称为关系的元或度。列的值称为属性值;
3)(值)域(Domain):属性值的取值范围为值域。
4) 分量:每一行对应的列的属性值,即元组中的一个属性值。[2]
5) 关系模式:在二维表中的行定义,即对关系的描述称为关系模式。一般表示为(属性1,属性2,……,属性n),如老师的关系模型可以表示为教师(教师号,姓名,性别,年龄,职称,所在系)。
6)键(码):如果在一个关系中存在唯一标识一个实体的一个属性或属性集称为实体的键,即使得在该关系的任何一个关系状态中的两个元组,在该属性上的值的组合都不同。
7)候选键(候选码):若关系中的某一属性的值能唯一标识一个元组如果在关系的一个键中不能移去任何一个属性,否则它就不是这个关系的键,则称这个被指定的候选键为该关系的候选键或者候选码。
例如下列学生表中“学号”或“图书证号”都能唯一标识一个元组,则“学号”和“图书证号”都能唯一地标识一个元组,则“学号”和“图书证号”都可作为学生关系的候选键。
学号 姓名 性别 年龄 图书证号 所在系
S3001 张明 男 22 B20050101 外语
S3002 李静 女 21 B20050102 外语
S4001 赵丽 女 21 B20050301 管理
而在选课表中,只有属性组“学号”和“课程号”才能唯一地标识一个元组,则候选键为(学号,课程号)。
学号 课程号
S3001 C1
S3001 C2
S3002 C1
S4001 C3
8)主键(主码):在一个关系的若干候选键中指定一个用来唯一标识该关系的元组,则称这个被指定的候选键称为主关键字,或简称为主键、关键字、主码。每一个关系都有并且只有一主键,通常用较小的属性组合作为主键。例如学生表,选定“学号”作为数据操作的依据,则“学号”为主键。而在选课表中,主键为(学号,课程号)。
9)主属性和非主属性:关系中包含在任何一个候选键中的属性称为主属性,不包含在任何一个候选键中的属性为非主属性。
10)全键或者全码:一个关系模式中的所有属性的集合。
11)外键或者外码:关系中的某个属性虽然不是这个关系的主键,或者只是主键的,但它却是另外一个关系的主键时,则称之为外键或者外码。
12)超键或者超码:如果在关系的一个键中移去某个属性,它仍然是这个关系的键,则称这样的键为关系的超键或者超码。
13)参照关系与被参照关系:是指以外键相互联系的两个关系,可以相互转化。
3.关系模型的三类完整性规则
1.实体完整性规则
这条规则需求关系中元组在组成主键的属性上不能有空值。如有空值,那么主键值就起不了唯一标识元组的作用。
2.参照完整性规则
如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许有两种可能,或为空值,或等于R1关系中某个主键值。
使用时应注意:
a.外键和相对应的主键能不同名,只要定义在相同的值域上即可。
b.R1和R2也能是同一个关系模式,表示了属性之间的联系。
c. 外键值是否允许为空,应视具体问题而定。
3.用户定义的完整性规则
这是针对具体数据的约束条件,由应用环境而定。
关系模型的形式定义
3. 三个组成部分:数据结构、数据操作和完整性规则。
1).关系模型的基本数据结构就是关系。
2).关系运算分为关系代数和关系演算。
3).关系模型的三类完整性规则。
4. 关系代数
关系数据库的数据操作分为查询和更新两类。查询语句用于各种检索操作,更新操作用于插入、删除和修改等操作。
关系查询语言根据其理论基础的不同分成两大类:
1).关系代数语言:查询操作是以集合操作为基础运算的DML语言。
2).关系演算语言:查询操作是以谓词演算为基础运算的DML语言。
七、实体联系模型
实体联系模型为数据库建模提供了四种基本的语义概念:实体(Entity)、实体型、属性、联系(Relationship)
实体:具有相同属性或特征的客观现实和抽象事物的集合
实体型:具有相同属性的实体具有共同的特征和性质,用实体名及其属性名集合来抽象和刻画的同类实体称为实体型。
属性:表示一类客观现实或抽象事物的一种特征或性质。
联系:指实体类型之间的联系,他反应了实体类型之间的某种关联。
二元实体间的联系可分为 一对一、一对多、多对多。
八、DBMS(数据库管理系统)
工作流程:
主要功能: