SQL简介
SQL(Structured Query Language 结构化查询语言)是用于访问和操作数据库中的数据的标准数据库编程语言。
- SQL 是关系数据库系统的标准语言。
- SQL 是一种 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言。
RDBMS
RDBMS,指关系型数据库管理系统,全称 Relational Database Management System。
关系数据库系统
- 关系数据库系统指对应于一个关系模型的所有关系的集合。
- 关系数据库系统建立了关系模型,并用它来处理数据。关系模型在表中将信息与字段关联起来(也就是schemas),从而存储数据。
关系模型
(1)关系(Relation):一个关系对应着一个二维表,二维表就是关系名。
(2)元组(Tuple):在二维表中的一行,称为一个元组。
(3)属性(Attribute):在二维表中的列,称为属性。属性的个数称为关系的元或度,列的值称为属性值。
(4)(值)域(Domain):属性值的取值范围为值域。
(5)分量:每一行对应的列的属性值,即元组中的一个属性值。
(6)关系模式:在二维表中的行定义,即对关系的描述称为关系模式。一般表示为(属性1,属性2,......,属性n),如老师的关系模型可以表示为教师(教师号,姓名,性别,年龄,职称,所在系)。
(7)键(码):如果在一个关系中存在唯一标识一个实体的一个属性或属性集称为实体的键,即使得在该关系的任何一个关系状态中的两个元组,在该属性上的值的组合都不同。
(8)候选键(候选码):若关系中的某一属性的值能唯一标识一个元组如果在关系的一个键中不能移去任何一个属性,否则它就不是这个关系的键,则称这个被指定的候选键为该关系的候选键或者候选码。
例如下列学生表中“学号”或“图书证号”都能唯一标识一个元组,则“学号”和“图书证号”都能唯一地标识一个元组,则“学号”和“图书证号”都可作为学生关系的候选键。
学号
|
姓名
|
性别
|
年龄
|
图书证号
|
所在系
|
S3001
|
张明
|
男
|
22
|
B20050101
|
外语
|
S3002
|
李静
|
女
|
21
|
B20050102
|
外语
|
S4001
|
赵丽
|
女
|
21
|
B20050301
|
管理
|
而在选课表中,只有属性组“学号”和“课程号”才能唯一地标识一个元组,则候选键为(学号,课程号)。
学号
|
课程号
|
S3001
|
C1
|
S3001
|
C2
|
S3002
|
C1
|
S4001
|
C3
|
(8)主键(主码):在一个关系的若干候选键中指定一个用来唯一标识该关系的元组,则称这个被指定的候选键称为主关键字,或简称为主键、关键字、主码。每一个关系都有并且只有一主键,通常用较小的属性组合作为主键。例如学生表,选定“学号”作为数据操作的依据,则“学号”为主键。而在选课表中,主键为(学号,课程号)。
(9)主属性和非主属性:关系中包含在任何一个候选键中的属性称为主属性,不包含在任何一个候选键中的属性为非主属性。
(10)全键或者全码:一个关系模式中的所有属性的集合。
(11)外键或者外码:关系中的某个属性虽然不是这个关系的主键,或者只是主键的,但它却是另外一个关系的主键时,则称之为外键或者外码。
(12)超键或者超码:如果在关系的一个键中移去某个属性,它仍然是这个关系的键,则称这样的键为关系的超键或者超码。
(13)参照关系与被参照关系:是指以外键相互联系的两个关系,可以相互转化。
实体与关系
实体是指客观存在并可相互区别的事物,既可以是实际的事物,也可以是抽象的概念或关系。
- 一对一关系:是指表A 中的一条记录确实在表B中有且只有一条相匹配的记录,在一对一关系中,大部分相关信息都在一个表中。
- 一对多关系:是指标A中的行可以在表B中有许多匹配行,但是表B中的行只能在表A中有一个匹配行。
- 多对多关系:是指关系中每个表的行在相关表中具有多个匹配行。在数据库中,多对多关系的建立是依靠第3个表(称作连接表)实现的,连接表包含相关的两个表的主键列,然后从两个相关表的主键列分别创建与连接表中的匹配行的关系。
一些专业术语
- 数据库系统(DataBase System,DBS)
- 数据库管理系统(DataBase Management System,DBMS)
- 数据库管理员(DataBase Adminnistrator,DBA)
- 数据库定义语言(Data Definition Language,DDL)
- 存储过程(Stored Procedure)
SQL Server数据库组成(文件、文件组)
-
文件:存储数据库中所有数据和对象(如表、存储过程和触发器)。
- 主要数据文件:存放数据和数据库的初始化信息。每个数据库有且只有一个主要数据文件,默认扩展名是 .mdf。
- 次要数据文件:存放除主要数据文件以外的所有数据文件。有些数据库可能没有次要数据文件,也可能有多个次要数据文件,默认扩展名 .ndf。
- 事务日志文件:存放用于恢复数据库的所有日志信息。每一个数据库至少有一个事务日志文件,也可以有多个事务日志文件,默认扩展名 .ldf。
-
文件组:数据文件的一种逻辑管理单位,将数据库文件分成不同的文件组,方便于对文件的分配和管理。
- 主文件组:包含主要数据文件和任何没有明确指派给其他文件组的文件。系统表的所有页都分配在主文件组中。
- 用户定义文件组:主要是在 CREATE DATABASE 或 ALTER DATABASE 语句中,使用 FILEGROUP 关键字指定的文件组。