SQL Serve之理论

              贵有恒,何必三更睡五更起,最无益,一日曝十日寒。


 

  主流的关系型数据库有OracleMySQLMicrosoft SQL Serve。而sql的语句大多相似甚至相同,不过在实际使用的时候需要注意版本的不同,它的SQL语句略有差别。关于sql server基础,它最重要的地方在于增删改查,熟练增删改查和一些基础语法后,即使在实际项目换成mysql也是很容易上手的。这里的版本是sql server 2012,这也是中小企业用得最多的数据库。

    ♦首先自然是数据库的几个概念

数据:描述事物的符号记录称为数据(Data),包括数字、文字、图像、声音等。

数据库:(DB,Database)是“数据”的“仓库”,包含多张表。

数据库管理系统:(Data Base Management System)DBMS是实现对数据库资源有效组织、管理和存取的系统软件。

数据库系统:(Data Base System)DBS是由数据、DBMS、数据库管理人员、硬件、软件(操作系统)

数据库管理员DBA负责数据库的更新和备份、数据库系统的维护等工作。

 

 

    ♦信息世界基本概念

就像人是一切社会关系的总和,这是在社会背景下哲学家探讨人。而在数据库里面的数据,如何描述定义它们,它们之间的关系是什么?这就好比小时候你出去玩,大人不会问你叫什么名字而是问你的爸爸是谁,即是通过关系来区分对象、通过关系确定对象。

 1.实体(entity) 实体即客观存在的事物,如高山、流水、学生,也可以是抽象的概念或者地名,如咸阳、书法。

2.属性(attribute)实体的外在特征即属性,属性的差异能够区分同类实体,一个实体有多个属性,如实体职工可以用职工编号、姓名、年龄等属性来描述。

3.关键字(key)具有唯一标识的属性称之为关键字,也叫主键,如职工的职工编号是唯一键,身份证是唯一键。

4.域(domain)属性的取值范围称为该属性的域。例如,职工实体的性别属性的域为(男,女)。

5.实体集(entity set):同型实体的集合称为实体集。例如,全体职工就是一个实体集,全体学生也是一个实体集。

6.联系(relationship):在现实世界中,事物内部及事物之间普遍存在联系,这些联系在信息世界中表现为实体型内部各属性之间的联系以及实体型之间的联系。两个实体型之间的联系可以分为三类:一对一关系、一对多关系、多对多关系

一对一:一个学生只有一个学号

一对多:一个班级对应多个学生

多对多:专业对应学生,一门专业对应多个学生,一个学生可选多个专业  ,还有父亲对应儿子,有的人没有生育能力,见人就称其为儿子,有的人见到马云高呼一声马云爸爸

 

 

   ♦数据模型

  数据模型的作用是将用户数据进行有效地组织,使其成为数据库,并能有效地进行访问和数据处理。数据模型根据应用的目的不同,分为两个层次:概念模型和结构数据模型。在公司生产搭建数据库的时候,有专门搭建数据模型这一职业,用到powerDesigner这款软件用于搭建各种模型,这款软件会自动生成sql代码。

  概念模型(E—R):模型从用户的角度对信息进行建模,使用实体—联系的图来表示,包含了实体、联系和属性三个部分

 

关系模型:给应用程序看的,用表结构来表示实体及实体间的联系,然后程序按此关系来存储、组织数据。

具体转换原则:如多对对的联系需要建立新表,一对多关系里可建可不建

 

  ♦数据库的六大约束(实现数据完整性的机制)

1.非空(not null):指定了非空的列必须输入值。(个数:允许多个)

2.主键(primary key):一列或者多列的组合建立主键;作用:能唯一标识表中的每一条记录。主键可以保证实体完整性,一个表只能有一个主键,主键中的列不能为空,不能重复。(个数:只能1个)

3.外键(foreign key):用于建立和加强两个表数据之间链接的一列或者多列。当一个表中作为主键的列被添加到另一个表中,链接就建立了,主要目的是控制存储在外键表(从表)中的数据。表之间通过外键建立表之间的联系。(个数:允许多个)

4.唯一健(unique):值不能重复,但可以为空。(个数:允许多个)

5.检查(check):限制输入到列中的值的取值范围。(个数:允许多个)

6.默认值(default):没有向列中输入值时系统自动向列中输入默认值。(个数:允许多个)

 

 

  ♦数据完整性:保证数据一致性的机制,防止非法数据存入数据库,体现在。

数据类型准确无误

取值符合规定的范围

多个数据表中的数据不存在冲突

1) 实体完整性:现实世界中,任何一个实体都有区别于其他实体的特征,这种特征是实体完整性。在sql server数据库中实体完整性是指所有的记录都应该有一个唯一的标识,以确保在数据表中数据的唯一性。

若两数据表中的每一行看作一个实体,可以通过以下几项实现实体完整性:

主键、唯一健、标识列、唯一索引。

2)域完整性:列的完整性。实现机制有:默认值、检查约束、是否为空、数据类型、唯一健。

3)引用完整性:又称为参照完整性。通过主键约束和外键约束来实现主表和从表之间数据的一致性。若主表中主键更改则从表中相应记录要进行一致的更改。

 

 


 

到这里已经基本Ok可以开始练习sql语句,下面的内容就作为扩展了,主要是因为一时半会用不上,更建议学习到一定程序再回过头看。

  数据库三级模式结构

外界公认的数据库标准模板

作用在于具有一个严谨的体系结构,可以有效地组织、管理数据、提高数据库的逻辑独立性和物理独立性。除此之外的其他数据库模式结构,其本质也是三级模式分化而来的。

 1.模式:

是给所有用户看的公共数据视图,也称之为逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述。一个数据库只有一个模式。属于中间层

2.外模式:

用户使用select查询到的表数据就是外模式,也称之为用户模式,是数据库用户(应用程序员和最终用户),能够看到和使用局部数据的逻辑结构和特征的描述。一个数据库可以有多个外模式。外模式是保障数据安全性的一个有力措施

3.内模式

用户在创建数据库时定义的数据类型、索引、约束等,也称之为存储模式,它是数据物理结构和存储方式的描述,数据在数据库内部的表现。一个数据库只有一个内模式

  ♦三级模式之间的映射(三个模式两个映射)

为了能在内部实现数据库的三个抽象层次间的联系和转换

1.外模式/模式映射---外模式到概念模式的相互转变

同一个模式可有多个外模式,对每一个外模式都有外模式/模式映射。当模式改变时,由数据库管理员对各个外模式/模式映射做相应的改变,就可以保持外模式的不变,这样依据外模式编写的程序就不用修改,保证了数据与程序的逻辑独立性。

2.模式/内模式映射---概念模式到内模式的相互转变

数据库只有一个概念模式和内模式,它们的映射也是唯一的,定义的是数据库的全局变量的结构与存储结构的关系。当存储结构改变时,对模式/内模式映射做相应改变,可以保持模式不变,程序不变,保证了数据与程序的物理独立性。

 

 

  ♦关系型数据库的

范式是符合某一种级别的关系模式的集合,由此产生规范化理论,关系型数据库中每一关系都要满足一定的要求,满足不同程度要求的为不同范式。Normal Form

1.第一范式 NF1

是最基本的范式,在一个关系中药消除重复字段,且各字段都应是最小的逻辑存储单位。数据组中每个属性只可以包含一个值。关系中每个数组必须包含相同数量的值。关系中的每个数组一定不能相同。

第一范式也是对关系模式的基本要求,即不满足第一范式的数据库就不是关系型数据库。

2.第二范式 NF2

建立在NF1的基础上,要求表中的每个实体(每个记录行)必须可以被唯一地区分,每个实体的属性完全依赖于主关键字,即该表不的字段(列)与主键字段关系唯一。复合主键的表会出现这种情况,如果存在这种情况可以把它拆分出来做一个新表

3.第三范式 NF3

建立在NF2的基础上,要求不存在非关键字列队任意候选关键字列的传递函数依赖,函数依赖的意思是:存在关键字段A决定非关键字段B,而B又决定非关键字段C,则称非关键字段C传递函数依赖于关键字段A。如果存在这种情况可以把它拆分出来做一个新表

NF1—消除了非主属性对键的部分函数依赖

NF2—消除了非主属性对键的传递函数依赖

NF3—消除了主属性对键的传递函数依赖

 

 

  ♦关系型数据库的设计原则

1.数据库内数据文件的数据组织应获得最大限度的共享,最小的冗余

2.保证输入、修改数据时数据的一致性和正确性

3.保证数据与使用数据的应用程序之间的高度独立性

 

posted @ 2020-12-16 20:42  半杯凉白开  阅读(209)  评论(0)    收藏  举报