SQL Server默认的4个系统数据库:
1.master数据库
记录SQL Server实例的所有系统级信息,包括实例范围的元数据,端点,链接服务器和系统配置设置。
2.tempdb数据库
临时数据库,用于保存临时对象或中间结果集
3.model数据库
用作SQL Server实例上创建的所有数据库的模板。对model数据库的修改(如数据库大小,排序规则,恢复模式和其他数据库选项)将应用于以后创建的所有数据库。
4.msdb数据库
用于SQL Server代理计划警报和作业。
基础理论:02.系统数据库
标签:选项 范围 tempdb 修改 基础 其他 记录 blog 排序
小编还为您整理了以下内容,可能对您也有帮助:
数据库系统的基本定义
数据库,简单来说可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。
数据库存储的基本对象是数据,数据可以是数字、文字、图片、音频、视频等等。
数据库的基本特征
数据按一定的数据模型组织、描述和储存
可为各种用户共享
冗余度较小
数据独立性较高,与应用程序互不依赖
易扩展
类型
关系数据库:MySQL、SQL Server、Oracle等
非关系型数据库(NoSQL):BigTable(Google)Cassandra、MongoDB等
键值(key-value)数据库:Apache Cassandra、Dynamo、LevelDB(Google)
数据抽象
数据库为屏蔽底层复杂性,采用了层次抽象,可以大致区分为三个概括层次:物理层、逻辑层、视图层。
物理层:最接近实际存储体,亦即有关数据的实际存储方式。
逻辑层:介于两者之间的间接层,描述数据怎么存储及数据间关系。
视图层:最接近用户,即有关用户观看数据的方式。一个逻辑层可以对应多个视图层。
从上图可以看到,虽然逻辑相互独立,但是通过在物理层上只存储一份学生基本情况,使冗余度最小化。
数据模型
数据库结构的基础是数据模型。数据模型提供了一种描述物理层、逻辑层以及视图层数据库设计的方式。通俗地讲数据模型就是现实世界的模拟。
数据模型可被划分为四类:
实体-联系模型(entity-relationship model)。现实世界由一组称作实体的基本对象以及这些对象间的联系构成。
关系模型(relational model)。关系模型用表的集合来表示数据和数据间联系。每个表有多个列,每列有唯一的列名。关系模型是基于记录模型的一种。关系数据模型是使用最广泛的数据模型。
基于对象数据模型(object-based data model)。面向对象数据模型可以看成是E-R模型增加了封装、方法(函数)和对象标识等概念后的扩展。
半结构化数据模型(semistructured data model)。半结构化数据模型允许那些相同类型的数据项含有不同的属性集的数据说明。
数据库索引
数据索引的观念由来已久,像是一本书前面几页都有目录,目录也算是索引的一种,只是它的分类较广,例如车牌、身份证字号、条码等,都是一个索引的号码,当我们看到号码时,可以从号码中看出其中的端倪,若是要找的人、车或物品,也只要提供相关的号码,即可迅速查到正确的人事物。
数据库管理系统(DBMS)
位于用户与操作系统之间的一层数据管理软件。
用途:
科学地组织和存储数据、高效地获取和维护数据
功能:
提供数据定义语言(DDL)
定义数据库中的数据对象
数据组织、存储和管理(安全性、完整性、并发性控制、恢复)
数据库操作:事务
事务(Transaction)是用于完成单一逻辑功能的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分区的工作单位。
为保证事务(transaction)是正确可靠的,事务的ACID特性:
1)原子性(Atomicity):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态(故障恢复)。
2)一致性(Consistency):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
3)隔离性(Isolation):当两个或者多个事务并发访问(此处访问指查询和修改的操作)数据库的同一数据时,一个事务不能让其他事务看到该事务的中间状态。
4)持久性(Durability):在事务完成以后,该事务对数据库所作的更改便持久地保存在数据库之中,并且是完全的。
看下面的例子:
韩梅梅给李雷转账,必须保障韩梅梅账户减去100时,在李雷账户增加100(原子性),如果服务器断电,从韩梅梅账户减去100后,, 李雷账户却没有增加100,要将整个事务进行回滚。
转账完成后,两人的账户和必须保持不变(一致性),不能破坏关系数据的完整性以及业务逻辑上的一致性。
其他事务,比如一个查询事务,不能查询到转账中间状态,比如韩梅梅账户减去100, 李雷账户却没有增加100的状态。(隔离性)
当转账成功后,即使机器故障,韩梅梅和李雷账户也保持转账后的金额(持久性)
让我们来看一下隔离性中的几个概念:
1)脏读(Dirty Reads):脏数据所指的就是未提交的数据。也就是说,一个事务正在对一条记录做修改,事务来读取其他事物更改却未提交的数据。
2)不可重复读(Non-Repeatable Reads):一个事务先后读取同一条记录,但两次读取的数据不同,我们称之为不可重复读。也就是说,这个事务在两次读取之间该数据被其它事务所修改。
3)幻读(Phantom Reads):一个事务按相同的查询条件重新读取以前检索过的数据,却发现其他事务插入了满足其查询条件的新数据,这种现象就称为幻读。
隔离分为不同级别,包括:
读未提交(Read uncommitted):读取其他事务已经修改但还未提交的数据(脏数据),这是最低的隔离级别。
读提交(read committed):只能读取到已经提交的数据。即解决了脏读问题。
可重复读(repeatable read):在一个事务中,对同一个项,前后读取结果一样
串行化(Serializable):各事务串行执行(锁机制)
隔离级别对比表:
参考:
https://zh.wikipedia.org/wiki/%E6%95%B0%E6%8D%AE%E5%BA%93
https://zh.wikipedia.org/wiki/ACID
http://www.cppblog.com/wolf/articles/121626.html
版权声明:本文为博主原创文章,未经博主允许不得转载。
数据库系统0T1(0):基础概念
标签:数据库 acid
数据库系统的基本定义
数据库,简单来说可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。
数据库存储的基本对象是数据,数据可以是数字、文字、图片、音频、视频等等。
数据库的基本特征
数据按一定的数据模型组织、描述和储存
可为各种用户共享
冗余度较小
数据独立性较高,与应用程序互不依赖
易扩展
类型
关系数据库:MySQL、SQL Server、Oracle等
非关系型数据库(NoSQL):BigTable(Google)Cassandra、MongoDB等
键值(key-value)数据库:Apache Cassandra、Dynamo、LevelDB(Google)
数据抽象
数据库为屏蔽底层复杂性,采用了层次抽象,可以大致区分为三个概括层次:物理层、逻辑层、视图层。
物理层:最接近实际存储体,亦即有关数据的实际存储方式。
逻辑层:介于两者之间的间接层,描述数据怎么存储及数据间关系。
视图层:最接近用户,即有关用户观看数据的方式。一个逻辑层可以对应多个视图层。
从上图可以看到,虽然逻辑相互独立,但是通过在物理层上只存储一份学生基本情况,使冗余度最小化。
数据模型
数据库结构的基础是数据模型。数据模型提供了一种描述物理层、逻辑层以及视图层数据库设计的方式。通俗地讲数据模型就是现实世界的模拟。
数据模型可被划分为四类:
实体-联系模型(entity-relationship model)。现实世界由一组称作实体的基本对象以及这些对象间的联系构成。
关系模型(relational model)。关系模型用表的集合来表示数据和数据间联系。每个表有多个列,每列有唯一的列名。关系模型是基于记录模型的一种。关系数据模型是使用最广泛的数据模型。
基于对象数据模型(object-based data model)。面向对象数据模型可以看成是E-R模型增加了封装、方法(函数)和对象标识等概念后的扩展。
半结构化数据模型(semistructured data model)。半结构化数据模型允许那些相同类型的数据项含有不同的属性集的数据说明。
数据库索引
数据索引的观念由来已久,像是一本书前面几页都有目录,目录也算是索引的一种,只是它的分类较广,例如车牌、身份证字号、条码等,都是一个索引的号码,当我们看到号码时,可以从号码中看出其中的端倪,若是要找的人、车或物品,也只要提供相关的号码,即可迅速查到正确的人事物。
数据库管理系统(DBMS)
位于用户与操作系统之间的一层数据管理软件。
用途:
科学地组织和存储数据、高效地获取和维护数据
功能:
提供数据定义语言(DDL)
定义数据库中的数据对象
数据组织、存储和管理(安全性、完整性、并发性控制、恢复)
数据库操作:事务
事务(Transaction)是用于完成单一逻辑功能的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分区的工作单位。
为保证事务(transaction)是正确可靠的,事务的ACID特性:
1)原子性(Atomicity):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态(故障恢复)。
2)一致性(Consistency):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
3)隔离性(Isolation):当两个或者多个事务并发访问(此处访问指查询和修改的操作)数据库的同一数据时,一个事务不能让其他事务看到该事务的中间状态。
4)持久性(Durability):在事务完成以后,该事务对数据库所作的更改便持久地保存在数据库之中,并且是完全的。
看下面的例子:
韩梅梅给李雷转账,必须保障韩梅梅账户减去100时,在李雷账户增加100(原子性),如果服务器断电,从韩梅梅账户减去100后,, 李雷账户却没有增加100,要将整个事务进行回滚。
转账完成后,两人的账户和必须保持不变(一致性),不能破坏关系数据的完整性以及业务逻辑上的一致性。
其他事务,比如一个查询事务,不能查询到转账中间状态,比如韩梅梅账户减去100, 李雷账户却没有增加100的状态。(隔离性)
当转账成功后,即使机器故障,韩梅梅和李雷账户也保持转账后的金额(持久性)
让我们来看一下隔离性中的几个概念:
1)脏读(Dirty Reads):脏数据所指的就是未提交的数据。也就是说,一个事务正在对一条记录做修改,事务来读取其他事物更改却未提交的数据。
2)不可重复读(Non-Repeatable Reads):一个事务先后读取同一条记录,但两次读取的数据不同,我们称之为不可重复读。也就是说,这个事务在两次读取之间该数据被其它事务所修改。
3)幻读(Phantom Reads):一个事务按相同的查询条件重新读取以前检索过的数据,却发现其他事务插入了满足其查询条件的新数据,这种现象就称为幻读。
隔离分为不同级别,包括:
读未提交(Read uncommitted):读取其他事务已经修改但还未提交的数据(脏数据),这是最低的隔离级别。
读提交(read committed):只能读取到已经提交的数据。即解决了脏读问题。
可重复读(repeatable read):在一个事务中,对同一个项,前后读取结果一样
串行化(Serializable):各事务串行执行(锁机制)
隔离级别对比表:
参考:
https://zh.wikipedia.org/wiki/%E6%95%B0%E6%8D%AE%E5%BA%93
https://zh.wikipedia.org/wiki/ACID
http://www.cppblog.com/wolf/articles/121626.html
版权声明:本文为博主原创文章,未经博主允许不得转载。
数据库系统0T1(0):基础概念
标签:数据库 acid
数据库原理与应用
数据库系统的基本概念
数据:实际上就是描述事物的符号记录。
数据的特点:有一定的结构,有型与值之分,如整型、实型、字符型等。而数据的值给出了符合定型的值,如整型值15。
数据库:是数据的集合,具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序共享。
数据库存放数据是按数据所提供的数据模式存放的,具有集成与共享的特点。
数据库管理系统:一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是数据库的核心。
数据库管理系统功能:
(1)数据模式定义:即为数据库构建其数据框架;
(2)数据存取的物理构建:为数据模式的物理存取与构建提供有效的存取方法与手段;
(3)数据操纵:为用户使用数据库的数据提供方便,如查询、插入、修改、删除等以及简单的算术运算及统计;
(4)数据的完整性、安生性定义与检查;
(5)数据库的并发控制与故障恢复;
(6)数据的服务:如拷贝、转存、重组、性能监测、分析等。
为完成以上六个功能,数据库管理系统提供以下的数据语言:
(1)数据定义语言:负责数据的模式定义与数据的物理存取构建;
(2)数据操纵语言:负责数据的操纵,如查询与增、删、改等;
(3)数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等。
数据语言按其使用方式具有两种结构形式:交互式命令(又称自含型或自主型语言)宿主型语言(一般可嵌入某些宿主语言中)。
数据库管理员:对数据库进行规划、设计、维护、监视等的专业管理人员。
数据库系统:由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成的运行实体。
数据库应用系统:由数据库系统、应用软件及应用界面三者组成。
文件系统阶段:提供了简单的数据共享与数据管理能力,但是它无法提供完整的、统一的、管理和数据共享的能力。
层次数据库与网状数据库系统阶段 :为统一与共享数据提供了有力支撑。
关系数据库系统阶段
数据库系统的基本特点:数据的集成性 、数据的高共享性与低冗余性 、数据性(物理性与逻辑性)、数据统一管理与控制。
数据库系统的模式:
(1)概念模式:数据库系统中全局数据逻辑结构的描述,全体用户公共数据视图;
(2)外模式:也称子模式与用户模式。是用户的数据视图,也就是用户所见到的数据模式;
(3)内模式:又称物理模式,它给出了数据库物理存储结构与物理存取方法。
数据库系统的两级映射:
(1)概念模式到内模式的映射;
(2)外模式到概念模式的映射。
4.2 数据模型
数据模型的概念:是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。
E-R模型的基本概念
(1)实体:现实世界中的事物;
(2)属性:事物的特性;
(3)联系:现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。
E-R模型三个基本概念之间的联接关系:实体是概念世界中的基本单位,属性有属性域,每个实体可取属性域内的值。一个实体的所有属性值叫元组。
E-R模型的图示法:(1)实体集表示法; (2)属性表法; (3)联系表示法。
层次模型的基本结构是树形结构,具有以下特点:
(1)每棵树有且仅有一个无双亲结点,称为根;
(2)树中除根外所有结点有且仅有一个双亲。
从图论上看,网状模型是一个不加任何条件的无向图。
关系模型采用二维表来表示,简称表,由表框架及表的元组组成。一个二维表就是一个关系。
在二维表中凡能唯一标识元组的最小属性称为键或码。从所有侯选健中选取一个作为用户使用的键称主键。表A中的某属性是某表B的键,则称该属性集为A的外键或外码。
关系中的数据约束:
(1)实体完整性约束:约束关系的主键中属性值不能为空值;
(2)参照完全性约束:是关系之间的基本约束;
(3)用户定义的完整性约束:它反映了具体应用中数据的语义要求。
4.3关系代数
关系数据库系统的特点之一是它建立在数据理论的基础之上,有很多数据理论可以表示关系模型的数据操作,其中最为著名的是关系代数与关系演算。
关系模型的基本运算:
(1)插入 (2)删除 (3)修改 (4)查询(包括投影、选择、笛卡尔积运算)
4.4 数据库设计与管理
数据库设计是数据应用的核心。
数据库设计的两种方法:
(1)面向数据:以信息需求为主,兼顾处理需求;
(2)面向过程:以处理需求为主,兼顾信息需求。
数据库的生命周期:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。
需求分析常用结构析方法和面向对象的方法。结构化分析(简称SA)方法用自顶向下、逐层分解的方式分析系统。用数据流图表达数据和处理过程的关系。对数据库设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。
数据字典是各类数据描述的集合,包括5个部分:数据项、数据结构、数据流(可以是数据项,也可以是数据结构)、数据存储、处理过程。
数据库概念设计的目的是分析数据内在语义关系。设计的方法有两种
(1)集中式模式设计法(适用于小型或并不复杂的单位或部门);
(2)视图集成设计法。
设计方法:E-R模型与视图集成。
视图设计一般有三种设计次序:自顶向下、由底向上、由内向外。
视图集成的几种冲突:命名冲突、概念冲突、域冲突、约束冲突。
关系视图设计:关系视图的设计又称外模式设计。
关系视图的主要作用:
(1)提供数据逻辑性;
(2)能适应用户对数据的不同需求;
(3)有一定数据保密功能。
数据库的物理设计主要目标是对数据内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度有效利用存储空间。一般RDBMS中留给用户参与物理设计的内容大致有索引设计、集成簇设计和分区设计。
数据库管理的内容:
(1)数据库的建立;
(2)数据库的调整;
(3)数据库的重组;
(4)数据库安全性与完整性控制;
(5)数据库的故障恢复;
(6)数据库监控。
《数据库系统概论》课程讲什么内容?
数据库技术和系统已经成为信息基础设施的核心技术和重要基础。数据库技术作为数据管理的最有效的手段,极大的促进了计算机应用的发展。本课程系统全面地讲述数据库系统的基础理论、基本技术和基本方法。包括:第一篇基础篇,包括绪论、关系数据库、关系数据库标准语言SQL、数据库安全性和数据库完整性,共5章;第二篇设计与应用开发篇,包括关系数据理论、数据库设计和数据库编程,共3章;第三篇系统篇,作为选修内容,可以拓展学习。内容包括关系查询处理和查询优化、数据库恢复技术、并发控制和数据库管理系统,共4章;第四篇新技术篇,包括数据库技术发展概述、大数据管理、内存数据库系统和数据仓库与联机分析处理技术,共4章,作为参考资料供进一步学习数据库技术的学生阅读。通过本课程学习,使学生系统地掌握数据库系统的基本原理和基本技术。要求在掌握数据库系统基本概念的基础上,能熟练使用SQL语言在某一个数据库管理系统上进行数据库操作;掌握数据库设计方法和步骤,具有设计数据库模式以及开发数据库应用系统的基本能力。