承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

浅述SQL Server的语句种别 数据库范式 系统数据库组成

管理员 2023-07-03 07:55:20 互联网圈 11 ℃ 0 评论 7908字 收藏

前言

终究等到这一天,我要开始重新系统学习数据库了,关于数据库这块,不出意外的话,每天会定时更新一篇且内容不会包括太多,简短的内容,深入的理解。

SQL语句种别

SQL语句包括以下三个种别

(1)数据定义语言(Data Definnition Language)即DDL,我们数据终究从何而来,固然首先一定要得建立表,所以它包括CREATE、ALTER、DROP表。

(2)数据操作语言(Data Manipulation Language)即DML,我们对数据需要进行甚么操作,固然不过就是增删改查,所以它包括SELECT、INSERT、UPDATE、DELETE,其中还包括TRUNCATE、MERGE。

(3)数据控制语言(Data Control Language)即DCL,我们操作数据库时针对区别的用户会授与区别权限。

数据库范式

范式是甚么玩意,它意指规范化规则,通俗易懂一点讲则是定义的规范、规则,需要我们去遵照,那末为啥要定这一套规则呢?我们反过来想,肯定是前人遇到过,若不定义这一套规则,则出现这样或那样的问题,为了规避这样问题的出现则出了这一套规则,主要是为了解决以下两点问题。

(1)避免在数据修改进程中出现异常。

(2)保持数据最低限度的冗余。

数据库范式最基础的范式为第一范式(1NF)、第二范式(2NF)、第三范式(3NF),还有更高层次的范式,但太过于复杂我们不做探讨,大部份书籍都这样说,我们就这样去了解。

第一范式(1NF)

定义:关系表中行一定要是唯一且属性是原子性的。

太晦涩,太抽象,不太懂,我们逐一来分析,我们看看上述定义中重点在于行【唯一】,属性【原子性】。

那末到底甚么情况下才算是行唯一呢?

第一:既然是唯一,那末行中某一标识一定要是已知而非未知即不能为空

第二:唯一也就是说不能重复诺

第三:怎样保证行唯一呢?通过定义一个唯一键来实现唯一行。

那末到底甚么是原子性呢?

第一看到原子这个词语是不是是会立马联想到中国独立研制的原子弹爆发,又或是上化学课遇到的第一个化学式2H2+O2=2H2O,2个氢气即4个氢原子与1个氧气即2个氧原子集合生成1个水份子, 哦,回顾一下,份子是由原子组成,原子由原子核和核外电子组成,原子核又由质子和中子组成,还有甚么夸克之类的,不管是程序语言或者数据库中都一直在讲原子性,为何没有讲质子性和夸克性呢,由于原子已算是比较小的,所以一直用原子性来强调并划分,为了方便理解,可以这么思考,后面的就不用在叙述,到了这里还没明白么,就相当于原子组成份子,将原子作为最小的粒度即不能再分,那末我们反过来想属性的原子性即属性不可再划分,这又是甚么意思,比如在表中有一个地址属性,如果我们存如(湖南省,岳阳市,华容县)这样就背背了第一范式,这个属性或者可以再划分为省、城市、县。

到这里我们可以作出总结第一范式满足的条件:

(1)唯一标识的键

(2)键不能为空

(3)键不能重复

(4)属性不可再划分

第二范式(2NF)

定义:在满足第一范式的条件下,每个非键属性一定要满足对全部候选键的完全函数依赖即非键属性不能是对候选键某部份的完全函数依赖。

好了,我们继续入上述解释第一范式来解释第二范式晦涩难懂的定义。我们看下以下表

上述定义候选键都是指的主键。上述给出表中OrderId和ProductId都是作为候选键即主键,但是此时我们可以通过部份候选键(主键)比如OrderId得到OrderDate、CustomerId和CompanyName等列,此时是仅仅是OderId的部份依赖而非对OderId和ProductId两者的完全依赖。此时为了表现出对候选键的完全依赖应当划分成以下两个表。

所以将上述定义通俗讲则是:属性对主键应当属于完全依赖而非部份依赖,否则违背第二范式。

第三范式(3NF)

一样第三范式是在满足第一和第二范式的条件下来看第三范式。

定义:所有非键属性一定要依赖于非传递的候选键,也就是非键属性相互之间一定要相互独立,进一步讲非键属性之间不能构成依赖关系。

我们看看上述经过修改满足第二范式的两个表,此时定单表中OrderId为主键,客户Id即CustomerId和公司名称即CompanyName对OrderId是完全依赖,我们可以通过定单Id得到客户Id,也能够通过定单Id得到公司名称,同时我们也能够通过客户Id得到客户公司名称,也就是说此时CustomerId和CompanyName是一种传递关系,而非相互之间独立。此时若需要满足第三范式则应当是以下表示:

我们可以看出第三范式侧重强调的是非键属性与非键属性之间独立,而第二范式侧重强调的是非键属性与候选主键的完全依赖。所以第二范式和第三范式我们统一概括为:非键属性一定要是对键的依赖,而非相互之间依赖,并且是对全部键的依赖。

系统数据库组成

当打开数据库中后在数据库下默许会有个系统数据库,里面的内容以下:

master

master数据库存储实例范围的元数据信息、服务器配置、实例中的所有数据库信息和初始化信息。

Resource

Resource数据库是一个隐藏、只读数据库,存储所有系统对象的定义。

model

model数据库是创建新数据库的模板,创建的每一个新数据库都是有model的副本初始化创建的。

tempdb

tempdb数据库是SQL Server存储临时数据的地方,如工作表、排序空间、行版本控制信息。同时SQL Server允许我们创建我们自己使用的临时表,并且这些临时表的位置是tempdb,但是我们需要注意的是每当重新启动SQL Server实例时,该数据库将会被破坏掉,并由model副本创建。

msdb

msdb数据库是SQL Server代理的服务存储数据的地方,SQL Server代理负责自动操作,包括作业、计划和警报,同时也负责复制服务等等。

总结

本节我们侧重讲授了SQL语句的组成和数据库的三个范式,对系统数据库的组成进行简短的介绍,属于了解的范畴吧,今天我们先到这里,我们下节再会。

本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!

文章来源:丸子建站

文章标题:浅述SQL Server的语句种别 数据库范式 系统数据库组成

https://www.wanzijz.com/view/61173.html

X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信