SQLserver(一)

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: SQLserver

1.SQL service 系统概述


SQL service 是一个可扩展的、高性能的、为分布式客户机 / 服务器计算所设计的数据库管理系统


数据库系统组成


  1. 数据库
  2. 用户
  3. 软件系统
  4. 硬件系统

image.png


内部体系结构


三级模式结构概念


概念:型 、值


型: 某一类数据的结构和属性。


值: “型” 的具体赋值。


模式结构


从逻辑上分: 1 .外模式 、模式  2.内模式三级抽象模式结构   3.二级映像功能


对用户而言: 用户模式(外模式)  概念模式(模式)  物理模式(内模式)


三级模式结构和二级映像功能示意图


模式: 全体数据的逻辑结构和特征的描述。 不涉及数据的物理存储细节和硬件环境。


外模式: (子模式 或者 用户模式)用户允许和看到的那些数据 、与有关的数据逻辑表示,用户的数据视图(用户视图)。一个数据库可以有多个外模式。


内模式: (存储模式或者物理模式) 对存储结构的描述,数据库的内部表达形式 。


数据库系统三级模式与二级映像的优点


  1. 保证数据的独立性
  2. 简化用户接口
  3. 有利于数据共享
  4. 有利于数据的安全保密


外部体系结构


由 单用户结构、主从式结构、分布式结构、客户机/服务器结构  浏览器/服务器结构组成


单用户结构的数据库系统


将应用程序 、 DBMS和数据库在同一个计算机上,独立使用,不能与其他计算机共享数据


主从式结构的数据库系统


大型主机带多端的多用户结构


优点


  1. 结构简单
  2. 易于管理与维护


缺点:


  1. 性能要求比较高
  2. 出故障,则无法使用


分布式结构的数据库系统


数据在逻辑上是整体的,在物理分布上是在不同的结点上的。结点上分布数据相对独立


优点: 多台服务器并发处理数据。


缺点: 数据分布式存储数据困难。


客户机/服务器结构的数据库系统


优点:


  1. 网络允许效率提高
  2. 由客户机完成应用程序的允许和计算


缺点:


  1. 不易于维护升级
  2. 客户机要安装客户机程序


浏览器/服务器结构的数据库系统


只需按照通用浏览器 实现用户输入输出。


4.数据库管理系统DBMS(数据库系统的核心)


DBMS功能


数据定义功能、 数据操纵功能、数据库运行功能、数据库建立和维护功能、数据通信接口、数据组织存储管理功能。


4.1数据定义功能  DDL


提供查询化语言:SQL 提供Create Drop Alter等语句来执行数据库。


DDL(数据定义语言)  (数据字典 DD Data Dictionary)


4.2数据操纵功能   DML


DBMS提供:数据操纵语言( DML)   例如一些: 查询(SELECT)、插入语句( INSERT) 、修改(UPDATE)、删除(DELETE)


4.3数据运行管理功能


控制数据库的方法:


  1. 数据安全性控制
  2. 数据完整性控制
  3. 多用户环境下的对数据并发性控制
  4. 数据库的回复


4.4数据库的建立和维护功能


建立: 初始数据装入和数据转换


维护:  数据库的转储、恢复、重组织与重构造、系统性能监视与分析


4.5数据通信接口


与软件系统通信


4.6数据组织、存储和管理


对存放的各种数据的组织、存储、管理 提高利用率


DBMS的组成


  1. 语言编译处理程序:DDL(数据定义) 和 DML(数据操纵)
  2. 系统运行控制程序:系统总控程序(核心), 安全性控制程序,完整性控制系统,并发控制系统,数据存取和更新系统,通信控制程序
  3. 系统建立、维护程序 :装配程序,重组程序,系统恢复程序
  4. 数据字典  :帮组管理系统


DBMS数据存取过程步骤


  1. 用户使用特点的数据操纵语言向DBMS发出存取请求
  2. DBMS接受请求并将改请求转换成代码指令
  3. DBMS依次检查外模式、外模式/模式映像,模式,模式/内模式以及存储结构定义。
  4. DBMS对存储数据库执行必要的存取操作
  5. 对得到的结果进行处理
  6. 将结果返回给用户。


数据模型


  • 数据模型三要素:数据结构、数据操作和数据约束
  • 分类:概念模型 ,逻辑模型 物理模型


组成要素


  1. 数据结构:描述数据库的组成对象以及对象间的关系
  2. 数据操作:数据之间允许执行的操作的集合
  3. 数据完整性的约束:规则的集合


三个世界


现实世界


信息世界


  1. 实体
  2. 属性
  3. 实体性  :有相同属性的实体必然有共同的特征
  4. 实体集   :同型实体的集合
  5. 码 : 在实体型中,能唯一标识一个实体的属性或者属性集
  6. 域:一组具有相同数据类型的值的集合
  • 基数:包含值的个数
  1. 联系


两个实体型间的关系


  1. 一对一联系
  2. 一对多联系
  3. 多对多联系


两个以上实体型间的联系


单个实体型内部联系


计算机世界


字段(Field) : 标记实体属性的命名单位


记录(Record):字段的有序集合


文件(File): 同一类记录的集合


关键字


四种数据模型


层次模型:用树形数据结构(有银树)来表示各实体以及实体间的联系


特点:


  1. 每棵树有且只有一个结点没有双亲 该结点就是跟结点
  2. 根结点以外的其他结点有且只有一个双亲结点
  3. 父子结点之间的联系是一对多的的联系


层次模型的数据操纵与数据完整性约束


插入:没有对应的双亲结点不能插入子女结点


删除:删除双亲结点 子女相应结点也会删除


层次模型优缺点


优点


  1. 结构简单,层次分明,便于实现
  2. 结点间联系简单
  3. 具有良好的数据完整性支持。


缺点


  1. 不能直接表示两以上的实体型间的复杂联系和实体型间的多对多联系
  2. 对数据插入和删除限制太对
  3. 查询子女节点必须要经过双亲结点


网状模型


采用有向图结构表示记录型与记录型之间的数据模型 更直接描述现实世界


特点


  1. 有一个以上的结点没有双亲结点
  2. 允许结点有多个双亲结点
  3. 允许两个结点之间有多种联系(复合联系)


网状结构的完整性与约束性


  1. 插入数据: 允许插入尚未确定双亲结点值的子女结点值
  2. 删除数据:允许数据只删除双亲点值
  3. 修改数据:可直接表述非属性结构


网状模型的优缺点


优点


  1. 更为直观的描述客观世界,可表述实体间的多种复杂联系
  2. 具有良好的性能和存储效率


缺点


  1. 数据结构复杂
  2. 数据定义和数据操纵极其复杂
  3. 加重应用程序负担


关系模型


是一张规范化的二维表,由表名、表头和表体构成。


关系与关系的实例:一个关系实例对应一张由行和列构成的二维表


元组: 二维表中的一行


属性:二维表中的一列


域 属性的取值范围


分量 :每一行元组对应的列的组合


候选码:(含义解释不清)就是一行一列的交点 一个关系可以有多个候选码


主码:一个关系中有多个候选码时可以选一个为主码,一个关系只能有一个主码


关系模式:关系名(属性1 ,属性2 .····属性n)


关系实例:关系模式的“ 值” 二维表中的数据


关系模式的优缺点


优点:


  1. 关系模式与非关系模式不同,有严格的数学理论根据
  2. 数据结构简单、清晰、用户易懂、易用,关系描述实体,数据的操纵结果也是关系。
  3. 关系模式的存取路劲对用户透明,从而更具有更高的数据独立性,更好的安全保密性,也简化,增加了开发数据库管理系统的负担。


面向对象(java)模型


  1. 对象和对象标识
  2. 类和继承


数据库领域新技术


  1. 分布式数据库
  2. 数据仓库与数据挖掘技术
  3. 多媒体数据库
  4. 大数据技术


2.关系数据库


2.1关系模型的数据结构及其形式化定义


2.1.1关系形式化定义及其概念


1.域


定义2.1 :域是一组相同数据类型的集合,又称值域。域中所包含的值的个数称为基数


2.笛卡尔积


定义2.2 :给定一组域(D1,D2,····,Dn)(可以是部分或者全部相同元素,也可以全部不同元素)记为:D1D2 ····*Dn = {d1,d2,····dn }


di 是分量;{d1,d2,····dn } 是一个元组;


可以用一个二维表表示出来


D1 * D2 = {(丽丽,女),(娜娜,男),(boy,女)}

姓名

性别

丽丽

娜娜

boy


例题:


笛卡尔积R由4个域组成,若每个域的基数均为2,则R的基数为(16)


  • 24
  • 笛卡尔积是:A×B×C×D
  • 也就是想这样的一个二维表

A

B

C

D


3.关系


定义2.3:笛卡尔积D1D2 ····*Dn的任一子集称为定义在域D1,D2,····,Dn上的n元关系,用R(D1,D2,····,Dn) 表示  R:关系名字;n是关系的目或度


注意


  1. 关系R中 ,n = 1 时 是单元关系,n = 2  为二元关系依次类推;
  2. 关系中的每个元素是关系中的元组;
  3. 关系是笛卡尔积的一个子集   每一行为元组  每一列为域;
  4. 在数学上,关系是笛卡尔积的子集,实际应用中,关系是有意义的笛卡尔积的子集;


定义2.4:定义在域D1D2 ····*Dn 上的关系由关系头和关系体组成。


2.1.2关系的性质


  1. 列是同质的,每一列中的分量必须来自同一个域,必须是同一个类型的数据
  2. 不同的属性可来自同一个域,但不同的属性必须有不同的名字(属性是列)
  3. 列的顺序可以任意交换(属性)
  4. 关系中元组的顺序可任意 交换(行)
  • 记录也表示行
  1. 关系中不允许出现 相同的元组(行)
  2. 关系中每一分量必须是不可分的数据项 ,所有的属性值都是原子的 ,一个确定的值。


2.1.3关系模式


关系模式是型 ,关系是值,关系模式是对关系的描述


  1. 定义2.5:关系的描述称为关系模式,形式化表示为 R (U,D,DOM,F)


  • R:关系名
  • U:组成该关系的属性名集合
  • D:属性组U中属性所带来的域
  • DOM:属性向域的映像集合;
  • F:属性间数据的依赖关系集合。
  • 简记为:R(U) R:关系名 U:属性名的集合
  • 关系模式:是关系的框架(表框架),是对关系结构的描述,是稳定的,静态的
  • 关系:动态的、随时间不断变化、它关系模式在某一时刻的状态或内容   ,关系中的操作不断更新数据库中的数据


2.1.4关系数据库与关系数据库模式


  • 在一个给定的领域中,所有实体以及实体之间的联系所对应的关系的集合构成一个关系数据库。
  • 关系数据库的型为关系数据库模式,是对关系数据库的描述


2.2关系的码与关系完整性


2.2.1候选码与主码


1.候选码


能够唯一标识关系中元组的一个属性或属性集  也称为(候选关键字,候选键);


定义2.6:设关系R有属性 A1,A2,A3,···An,其属性集K=( A1,A2,A3,···An),当且仅当满足以下条件时,则K称为候选码


  1. 唯一性:关系R的任意两个不同元组,其属性集K的值是不同的;
  2. 最小性:组成关系建的 ( A1,A2,A3,···An)中,任一属性都不能从属性集K中删掉,否则破坏唯一性。


2.主码


若一个关系中有多个候选码,则从中选择一个作为查询、插入、删除元素的操作变量,选中的为主码,也称主关系建、主键、关系键、关键字等。


每个关系中必须要选中一个主码,选中则不能修改


3.主属性与非主属性


主属性: 包含在主码中的各个属性


非主属性:不包含在任何候选码中的属性;


例题:假设有教师授课关系TCS,分别有三个属性教师(T)、课程(C)和学生(S)。-个教师可以讲授多门课程,- 门课程可以有多个教师讲授,同样一个学生可以选听多门课程,一门课程可以为多个学生选听。在这种情况下,T, c, s三者之间是多对多关系,(T, C, S)三个属性的组合是关系TCS的候选码,称为全码,T, C, S都是主属性。


2.2.2外码(外部关系键)


若关系R2 的一个或一组属性X不是R2 的主码,而是另一个关系R1 的主码,则该属性或属性组X称为关系R2 的外码或外部关系键,并成关系R2


为参照关系,关系R1 为被参照关系。


2.2.3关系的完整性


关系模型中三类完整性:实体完整性,参照完整性,用户自定义 ,其中实体完整性,参照完整性,必须满足完整性约束条件,称为关系两个不变性;


由于不同的应用环境,还需要一些约束条件,就用户自定义完整性。


1.完整实体型


  • 指主码的值不能为空或部分为空
  • 关系模型中,一个元组对应一个实体,一个关系则对应一个实体集。


2.参照完整性


  • 如果关系R2 的外码X与关系R1 的主码相符,则X的每个值或者等于R1 主码中的某一个值,或者取空值
  • 也就是R1(X) 、 R2


3.用户自定义完整性


  • 针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。


2.3关系代数


  • 关系模型由关系数据库、关系操作、关系完整性越苏三部分组成。
  • 常用的关系操作:查询操作,更新操作


2.3.1关系代数运算符


集合运算符

运算符

含义

英文

Union

Difference

Intersection

×

笛卡尔积

Cartesian Product


比较运算符

运算符

含义

>

大于

大于等于

<

小于

小于等于

=

等于

不等于


关系运算符

运算符

含义

英文

σ

选择

Selection

π

投影

Projection

链接

Join

÷

Division


逻辑运算符

运算符

含义

¬


5 种基本的关系代数运算


  • 并(Union)
  • 关系 R 与 S 具有相同的关系模式,即 R 与 S 的元数相同(结构相同),R 与 S 的并是属于 R 或者属于 S 的元组构成的集合,记作 R ∪ S,定义如下:
  • R∪S={t|t∈R∨t∈S}R∪S={t|t∈R∨t∈S}
  • 相同算一个 ,不同则并起来
  • 差(Difference)
  • 关系 R 与 S 具有相同的关系模式,关系 R 与 S 的差是属于 R 但不属于 S 的元组构成的集合,记作 R − S,定义如下:
  • R−S={t|t∈R∨t∉S}R−S={t|t∈R∨t∉S}
  • 广义笛卡尔积(Extended Cartesian Product)
  • 两个无数分别为 n 目和 m 目的关系 R 和 S 的 笛卡尔积是一个 (n+m) 列的元组的集合。组的前 n 列是关系 R 的一个元组,后 m 列是关系 S 的一个元组,记作 R × S,定义如下:
  • R×S={t|t=<(tn ,tm)∧tn∈R∧tm∈S}R×S={t|t=<(tn,tm)∧tn∈R∧tm∈S}
  • 网络异常,图片无法展示
    |
    表示元素
    网络异常,图片无法展示
    |
    网络异常,图片无法展示
    |
    拼接成的一个元组
  • 投影(Projection) 单目运算
  • 投影运算是从关系的垂直方向进行运算,在关系 R 中选出若干属性列 A 组成新的关系,记作
    网络异常,图片无法展示
    |
    ,其形式如下:
  • πA(R)={t[A]|t∈R}πA(R)={t[A]|t∈R}
  • 选取(Selection)  单目运算
  • 选择运算是从关系的水平方向进行运算,是从关系 R 中选择满足给定条件的元组,记作
    网络异常,图片无法展示
    |
    ,其形式如下:
  • σF(R)={t|t∈R∧F(t)=True}σF(R)={t|t∈R∧F(t)=True}
  • 交(Intersection)
  • 关系 R 和 S 具有相同的关系模式,交是由属于 R 同时双属于 S 的元组构成的集合,记作 R∩S,形式如下:
  • R∩S={t|t∈R∧t∈S}R∩S={t|t∈R∧t∈S}
  • 链接(Join)
    注:下面的 θ 链接应该记作:
  • θ 链接  二目运算
  • 从 R 与 S的笛卡尔积中选取属性间满足一定条件的元组,可由基本的关系运算笛卡尔积和选取运算导出,表示为:
  • R⋈XθYS=σXθY(R×S)R⋈XθYS=σXθY(R×S)
  • XθY 为链接的条件,θ 是比较运算符,X 和 Y 分别为 R 和 S 上度数相等且可比的属性组
  • 等值链接
  • 当 θ 为「=」时,称之为等值链接,记为:
    网络异常,图片无法展示
    |
  • 自然链接
  • 自然链接是一种特殊的等值链接,它要求两个关系中进行比较的分量必须是 相同的属性组,并且在结果集中将 重复的属性列 去掉
  • 除法(division)  二目运算


关系R(X , Y) 与关系 S(Y,Z)其中 X,Y,Z为属性集合,R中的Y与S中的Y可以有不同的属性名,但对应属性必须出自相同的域。


关系R除以关系S得一个新关系P(X,Y);P 是R中满足下列条件的元组在X上的投影:元组在X上分量值x的像集Yx 包含S在Y上投影的集合。


R÷S={tr[X] tr∈R ∩Πy (S)∈Yx}


Yx  为x在R上的像集 x=tr [X]


在S中找出与R的像集对应的元素 则对应的元组则为R÷S的结果




2.3.2传统的集合运算


  1. 设给定两个关系 R  S,若满足
  • 具有相同的列数(或称度数)n;
  • R中第 i  个属性和S中的 第 i  个属性必须来自同一个域(列同质)

则说关系 R ,S 是相容的
除了笛卡尔积运算外,其他的集合运算要求参加运算的关系必须满足上述的相容性定义


2.3.3


2.4关系演算


元组关系演算


域关系演算


2.4.1演算语言


1.ALPHA语言



谓词公式定义要求


ALPHA格式:<操作符> <工作空间名> (<目标表>)[ :<操作条件>]


操作符有:GET , PUT , HOLD ,UPDATE ,DELETE, DROP

数据查询



数据更新


修改  :使用UPDATE 语句实现



插入  :使用PUT语句



删除  :使用DELETE语句实现



  1. 简单查询   : GET W (S) 把数据库中的数据读入内存空间 W ;目标表 S
  2. 条件查询:使用运算符进行筛选
  3. 排序查询:规定顺序
  4. 定额排序:规定查询出元组的个数 在括号后面加定额数量
  5. 带元组变量的查询  :元组变量代表关系中的元组  取值在规定范围内变化的
    两个用途
  6. 带存在量词的查询
  7. 库函数查询
  8. 读数据  :使用HOLD语句将要修改的元组从数据库中读到工作空间中
  9. 修改:利用宿主语言修改
  10. 返回:使用UPDATE语句修改
  11. 建立新元祖
  12. 写数据:利用PUT语句将元组写入到指定的关系中
  13. 读数据
  14. 删除:使用delete语句删除该元组
GET W (SC.CNo)
/*目标表为选课关系 SC中的属性CNo */
  1. 定义短变量
  2. 使用量词用到元组变量



2.QUEL语言


  1. 数据定义  使用 CREATE语句定义新关系
  2. 数据查询
  3. 数据更新

CREATE<关系名> (<属性名 = 数据类型及长度 >,[ ,<属性名 = 数据类型及长度  ······>)


格式:


RANGE OF t1 IS  R1
RANGE OF t2 IS  R2
···
RANGE OF tk IS  RK
RETRIEVE(目标表)
WHERE<条件>
/*
t1  t2 是定义在 R1 R2 上的元组变量
*/
  1. 修改:使用REPLACE语句实现
  2. 插入:使用APPEND语句实现
  3. 删除:使用DELETE语句实现


RANGE OF TX IS T 
REPLACE (TX.Dept ='信息')
WHERE TX,TN='刘伟'
APPEND TO SC (SNc = 'ss',CNo = 'C2',Score = 90)
RANGE OF SX IS S 
DELETE SX 
WHERE SX.SNo='S6'

2.4.2域关系演算语言QBE (Query By  Example)


QBE : 示例查询  屏幕编辑语言


特点


  1. 以表格形式进行操作  :以一个表格或者多个表格进行操作
  2. 通过例子进行查询
  3. 查询顺序自由
    使用QBE步骤
  1. 用户根据要求向系统申请一张或几张表格 这些表格显示在终端上。
  2. 用户在空白表格在左上角的一栏内输入关系名
  3. 系统根据用户输入的关系名,将在第一行从左至右自动填写各个属性名
  4. 用户在关系名或属性名下方的一个内填写相应的操作指令,操作命令包括 P.(打印或显示)、U(修改)、I.(插入)、D.(删除)


数据查询


  1. 简单查询 :使用操作符  P. 完成数据查询。  用作示例的元素下方有下划线
  2. 条件查询
  3. 排序查询
  4. 库函数查询


数据更新


  1. 修改 U.
  2. 插入 I.
  3. 删除 D.


3.关系数据库标准语言 -SQL


3.1符号意义


@ 表示局部变量
@@ 表示全局变量
# 表示本地临时表的名称,以单个数字符号打头;它们仅对当前的用户连接是可见的
## 表示全局临时表
-- 注释
/**/ 代码块注释


数据库存储数据占用空间小,容易持久保存 存储安全,容易维护和升级,数据库容易移植,简化对数据的操作。


文件


主文件:.mdf 扩展名


日志文件:.ldf 扩展名  log日志


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
5月前
|
SQL 存储 数据库
如何在SQLServer中创建数据库
在SQL Server中创建数据库,可通过SSMS的图形界面或T-SQL语句。在SSMS中,连接到服务器,右键“数据库”选择“新建数据库”,配置属性后点击确定。使用T-SQL,连接到服务器,编写CREATE DATABASE语句指定数据库名称、文件路径及大小信息,执行查询完成创建。确保有足够磁盘空间,并注意权限设置。
|
11月前
|
SQL Linux 数据库
今天又被sqlserver坑惨了
今天又被sqlserver坑惨了
45 0
|
SQL
SQLServer 中的WITH AS
SQLServer 中的WITH AS
103 0
|
存储 SQL 安全
|
SQL 存储 安全
C#使用SqlServer
C#使用SqlServer
82 0
|
SQL 存储 Go
sqlserver 学习问题总结
1.SQLSERVER 中GO的作用** go 向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号。go是把t-sql语句分批次执行。(一步成功了才会执行下一步,即一步一个go) BEGIN 和 END 语句用于将多个 Transact-SQL 语句组合为一个逻辑块。在控制流语句必须执行包含两条或多条 Transact-SQL 语句的语句块的任何地方,都可以使用 BEGIN 和 END 语句。
192 0
|
数据库 网络安全 关系型数据库