数据库基础知识

绪论

数据库系统概述

-研究问题:存储数据、高效获取处理数据、安全共享数据

-信息与数据信息-被加工为特定形式的数据,有意义;数据-事务的符号记录(文字、图像、声音等——数据形式——信息不随数据形式不同而改变),语义,数据的解释;数据是信息的具体表现形式

-数据库与数据库系统数据库DB-长期存储在计算机内、有组织、可共享的数据集合,一定数据模型、较小冗余度、较高数据独立性、易扩展性、共享;数据库管理系统DBMS-位于用户与操作系统之间的一层数据管理软件,功能-数据定义DDL(create table alter table drop table drop database)、数据操纵DML(insert into values update set where delete from where、数据查询DQL(select where from)、数据控制DCL(grant revoke);数据库系统DBS-计算机系统中引入数据库后构成的系统集合,包括数据库、数据库管理系统及其开发工具、应用系统、数据库管理员DBA、用户

-数据管理技术的发展:数据处理-收集存储加工传播,获取信息做决策;数据管理-分类组织编码存储检索维护,是数据处理的中心问题;数据管理技术经理三阶段-人工管理(数据不保存、不共享、不具有独立性、应用程序管理数据)、文件系统(数据可长期保存、共享性差冗余度高、独立性差、文件系统管理数据、编写应用程序生产率不高、文件之间数据孤立、不支持并发访问)、数据库系统数据一体化结构化——结构化是数据库系统与文件系统最根本的区别,数据按照某种数据模型组织,不仅文件内部数据彼此相关文件之间在结构上也有机联系在一起,描述数据本身+数据联系,数据库结构是面向全组织的复杂结构;数据共享性高、冗余度低、易扩充数据独立性高——物理独立性、逻辑独立性;数据由DBMS统一控制和管理,提供更好的安全和保护——数据安全性保护、完整性检查、并发控制、数据库恢复)

-数据模型:现实数据特征的抽象,描述数据、数据联系、数据语义、一致性约束的概念工具的集合;数据模型分类-概念模型/信息模型(描述信息世界,按用户概念观点对数据和信息建模,独立于具体计算机系统和DBMS,用户数据库设计)、逻辑模型(按照计算机系统的观点对数据建模,用于DBMS的实现)、物理模型(描述数据在系统内部的表示方式存取方法以及在物理存储介质上的组织结构和存取方法

-实体联系模型ER模型-概念模型设计方法:er模型基本概念及表示-实体(客观存在并可相互区分的事物)、属性(实体所具有的某一特性)、联系(实体(型)内部联系-组成实体的各属性之间存在的联系;实体(型)之间的联系-不同实体集之间的联系-ER模型主要讨论实体间联系)

:属性取值范围 键/码:唯一标识实体的属性集 实体型:具有相同属性的实体必然具有相同的特征和性质 实体集:同型实体组成的集合

er图:矩形-实体;椭圆-属性(键-下划线);菱形-联系;联系类型

联系类型:一对一(1:1);一对多(1:n)A中每一个实体B中有n个实体与之联系,B中每个实体A中有唯一实体与之联系;多对多(m:n)A中每一个实体B中有n个实体与之联系,B中每个实体A中有n个实体与之对应。

两个以上实体间单个实体内的联系:供应商项目零件mnp,一个供应商可以供给给多个项目多种零件,每个项目可以使用不同供应商供应的零件,每种零件可有不同供应商供给

——逻辑模型:按照数据的组织方式描述信息,通常所说数据模型指的就是逻辑模型

-数据模型的组成要素:概念集合,用于描述数据、数据联系、数据语义、一致性约束-描述了系统的静态特性、 动态特性和完整性约束条件-与之相对应数据模型包含数据结构(静态特性)数据操作(动态特性,查询更新 定义其确切含义、操作规则、数据操作语言DML完整性定义(数据模型中数据及其联系满足的制约和依存规则三要素

­——关系数据模型概述:层次模型 网状模型 关系模型 面向对象模型 对象关系模型

-关系数据模型的数据结构:逻辑结构上是一张二维表,一张二维表就是一个关系

关系-二维表 元组-表中一行为一个元组 属性-表中一列 域 分量-元组中一个属性的值 键/码 关系模式-二维表表头结构,关系名(属性1,属性2,。。。属性n)

-用关系表示概念模型:实体及实体间联系都可以用关系(二维表,eg学生选课的关系通过sc(学号,课程号,成绩)来表示)来表示

-规范化:每一个分量都是不可再分的数据项,表中不能再有表

-关系数据模型的数据操作完整性约束:数据操作增删改查,操作对象元组的集合,访问数据时把存取路径向用户隐藏,完整性约束包括实体完整性、参照完整性、用户定义的完整性

-关系模型优缺点:优点-单一数据结构,数据独立性用户生产率高,数学概念数学理论依据;缺点-存取路径对用户透明查询效率低,系统要对用户提出的查询进行优化,增加研制开发DBMS难度

——数据库系统组成及其结构数据库硬件系统(存储和运行数据库系统的硬件设备,cpu、内存、大容量辅存、备份设备)、软件系统DBMS数据库管理系统OS操作系统应用开发工具应用系统-方便用户使用数据库提供接口和数据表示-过程-用户通过应用系统提供的接口提出数据访问请求,应用系统将用户的请求经过分析、处理后形成DBMS所支持的数据定义或操作请求并将其传递给与应用系统建立连接的DBMS,DBMS执行相应的数据访问操作并将结果返回给应用系统,应用系统对DBMS返回的结果和信息进行数据表示并将其以直观的方式呈现给用户)、人员数据库管理员DBA-数据库中信息内容和结构、存储结构和存取策略、安全性要求和完整性约束条件、监督和控制数据库运行、数据库改进和重组重构,数据库设计人员-数据、结构,最终用户-偶然用户、简单用户、复杂用户,系统分析员SA-确定最终用户需求、需求分析规范说明、软硬件配置、数据库系统概要设计,应用程序员-编写数据库应用程序提供数据访问接口)

——数据库系统的三级模式结构:从应用程序(用户)-集中式、客户/服务器C/S;从数据库管理系统-面向用户或应用程序员的用户级(对应外模式)、面向建立和维护数据库人员的概念级(对应模式)、面向系统程序员的物理级(对应内模式

-模式实例(对某一类数据的结构和属性说明)和(型的一个具体赋值);同一个模式可以有多个实例;模式相对稳定实例相对变化;模式反映数据结构及联系,实例反映数据库某一时刻状态

-三级模式:外模式/子模式(应用程序员、最终用户能够看见使用的局部数据逻辑结构和特征 单个用户视图) 模式(逻辑模式或概念模式,全体数据的逻辑结构和特征 所有用户公共视图) 内模式(存储模式或物理模式,数据物理结构存储方式,数据在数据库内部的表示方式 一个数据库只有一个内模式

-二级映像:外模式/模式间映像(对应关系通常包含在各自外模式的描述中,保证数据逻辑独立性) 模式/内模式间映像(对应关系通常包含在模式的描述中,保证数据物理独立性

——应用程序的体系结构(用户通过数据库应用系统提供的接口使用数据库):集中式结构 分布式结构 客户/服务器结构C/S 并行结构

数据库系统通常包含两个部分:服务器(也称后端)、客户机(也称前端)

-客户/服务器结构C/S:后端服务器运行某个DBMS(数据库服务器)为客户机上的应用程序提供数据服务

两层C/S结构客户机-负责页面的描述和显示、业务逻辑和计算、向服务器发出请求并分析从服务器接收的数据;服务器-数据管理和程序处理、响应客户请求并将处理结果返回给客户机

三层C/S结构客户机-负责页面的描述和显示、与应用服务器进行通信,不再包含直接的数据请求和业务逻辑;应用服务器-负责应用程序的业务逻辑及与数据库服务器和客户机进行通信;数据库服务器-接收请求响应,数据库管理处理

C/S结构优点:交互性强 具有安全的存取模式 网络通信量低 响应速度快

C/S结构缺点:需在客户机安装客户端程序,分布功能弱,不能快速部署安装和配置 缺少通用性,业务变更需重新设计和开发,增加维护和管理难度,进一步业务扩展困难

-浏览器/服务器结构B/S

B/S结构浏览器 web服务器-数据请求加工结果返回动态网页生成、对数据库的访问和应用程序的执行 数据库服务器;应用程序只需安装在web服务器一台服务器上,用户连接互联网安装浏览器软件即可访问数据库;数据访问基本过程:用户浏览器通过页面形式向web服务器发送请求,web服务器接收用户请求按照特定的方式将请求发送给数据库服务器,数据库服务器执行请求以页面形式返回结果给用户的浏览器

优点:维护和升级方式简单 异地浏览和信息采集灵活性好

缺点:数据安全性问题 对服务器要求较高 数据传输速度慢 软件个性化特点降低

B/S C/S结构比较:B/S互联网、维护工作量;B/S运行速度、数据安全、人机交互

关系数据库

——关系数据结构及形式化定义

-关系形式化定义

Di 笛卡尔积D1xD2x…xDn 元组/n元组 分量 基数=Di基数的乘积

关系-笛卡尔积的子集R(D1,D2,…,Dn)R关系名字,n关系(n=1,单元关系;n=2,二元关系)元组t

一行为一个元组,通常表示一个现实世界具体事物;一列为同一数据类型来自同一个域;不同列可出自同一个域-区分-列名-属性-不同列有不同属性名,描述某个事物具体特征

候选键/候选码/键/码-唯一标识一个元组(实体);主码-根据需要选定其一;主属性-出现在候选码中的属性;非主属性/非键属性-不出现在任何候选码中的属性;候选键可能包含多个属性,使用所有属性组成关系的候选码?主码-全码

关系的性质关系类型-基本表(实际存储表,实际存储数据的逻辑表示)、查询表(查询结果对应表)、视图表(基本表或其他视图导出来的表,不实际存储对应的数据,虚表)

基本关系性质:任意两个元组不能完全相同;元组顺序可任意交换;属性的顺序可任意交换;列同质-属性值同一数据类型来自同一个域;不同列可以来自同一个域但属性名必须唯一;每一分量必须是不可分的数据项

-关系模式与关系数据库

关系模式与关系:关系模式-关系的描述,包含关系名、属性、属性来自的域、属性到域的映像、属性间的数据依赖关系 R(A1,A2,…,An);关系是关系模型在某一时刻对应的实例是一个元组的集合

关系数据库:数据库模式-关系数据库的描述,通常由若干关系模式组成;关系数据库-数据库模式在某一时刻对应的实例,由组成该数据库的所有关系模式在某一时刻对应的关系组成

——关系操作

-基本关系操作

关系操作特点-集合操作,操作对象和结果都是元组的集合

常见关系操作-查询 插入 删除 修改-查询 更新

关系代数-关系运算查询-选择 投影 并 差 笛卡尔积(基本操作) 除 交=R-(R-S) 连接(引入交 连接 除不能增加关系代数表达能力,但能简化其表达)

关系演算-谓词查询-结合算术运算符、逻辑运算符、量词;根据谓词变元不同分为元组关系演算域关系演算

关系代数、元组关系演算、域关系演算在表达能力上是等价

-关系数据语言分类:关系代数语言ISBL、关系演算语言(元组ALPHA 域QBE)、具有关系代数演算双重特点的语言SQL

——关系的完整性约束

实体完整性-对主属性取值的约束:所有主属性不能为空;实体完整性针对基本关系

参照完整性-一个关系某些属性的取值需要参照其他关系某些属性值-外键 参照关系R-从表、外键表 被参照关系/目标关系S-主表、主键表(通常是一对多联系):外键不一定是被参照关系的主键,满足唯一性约束即可;属性f是R的外键,则R中每个元组在f上的值必须或S中某个元组的主码值

用户定义完整性静态约束 动态约束

-完整性规则的处理完整性规则定义 完整性检查 违约处理实体完整性违约处理-更新主键重复拒绝该更新操作;参照完整性违约处理-插入操作(向被参照表插入数据,无需考虑参照完整性;向参照表插入元组,违反,拒绝)、删除(删除参照,无需;删除被参照,限制删除/级联删除/置空值/置默认值)、修改(修改参照,违反,拒绝;修改被参照,违反,限制更新/级联更新/置空值/置默认值)-级联,修改参照,被参照表保持与参照表的一致性

——关系代数

传统集合运算:并 差 交 笛卡尔积;专门关系运算:选择 投影 连接 除

操作对象 结果都关系(笛卡尔积子集)

-关系代数的运算符:集合运算符 专门的关系运算符 算术比较符 逻辑运算符

并:属于R或属于S的元组构成的关系;差:属于R但不属于S;交:属于R且属于S

并差交运算要求两个关系的属性个数相同,且对应的属性取自同一个域

笛卡尔积:R中每个元组依次与S中每个元组进行元组连接得到的元组集合(tr反Uts 元组连接,是n+m列的元组) 

R(A1,A2,…,An),t属于R表示t是R的一个元组t[Ai]表示元组t中相对应于属性Ai的一个分量A={Ai1,Ai2,…,Aik}是(A1,…,An)的一部分-属性列/域列t[A]元组t在属性列A上诸分量的集合,象集-Zx-属性组X上取值为x的诸元组在属性组Z上的取值的集合

选择/限制:选择满足给定条件的诸元组

投影:选择若干属性列组成新的关系-去除重复行

连接θ连接,从两个关系的笛卡尔积中选取属性间满足一定条件的元组

R中属性组A上的取值与S中属性组B上的取值满足θ条件的元组进行元组连接组成的关系

等值连接:θ为‘=’;从两个关系的笛卡尔积中选取属性组A和B上取值相等的元组

自然连接:两个关系中进行比较的分量是相同的属性组,去掉重复属性列(其他连接都不去除任何属性列)

内连接:连接运算时,元组不满足连接条件被舍弃;外连接:将舍弃元组也保留在连接结果中在其他属性上填上空值Null;左外连接:只保留左边关系中不满足连接条件;右外连接:只保留右边关系;全连接:保留两边关系

:R(X,Y) S(Y,Z),R中的Y与S中的Y可以由不同的属性名但必须出自相同的域集

RS共同属性BC,找R中不相同属性关于相同属性的象集;找S中相同属性的投影;S中投影在R中象集的不相同属性为结构

sno,cno/cno 剩下的是sno S中与R共同属性的属性值都在R中的元组,取不相同属性

关系数据库标准语言SQL

——SQL语言概况

Sql语言特点:综合统一 高度非过程化 面向集合的操作方式 灵活使用方式(命令交互方式、嵌入式sql)语言简洁易学易用

查询 select 定义 create drop alter 操作 insert update delete 控制grant revoke

SQL操作对象:基本表 视图

一个或几个基本表对应一个存储文件,还可以带若干索引文件,所有存储文件索引文件构成关系数据库内模式;视图对应数据存储在导出该视图的基本表所对应的存储文件中,数据库只存储视图的定义,使用时根据用户的数据访问请求结合视图的定义对相应的基本表进行存取

——Sql server概述:数据库管理系统 启动-配置管理器、windows管理工具服务、管理工作室 系统数据库-master(系统级信息)、model(模板,修改模板之后创建数据库都继承这些修改)、msdb(计划报警、作业调度)、tempdb

-数据库创建与维护

创建-对象资源管理器;T-SQL语句

修改-对象资源管理器;T-SQL语句

使用USE命令切换当前数据库-use dname

数据库更名-对象资源管理器、存储过程 【】是可有可无

删除数据库-对象资源管理器、T-SQL

-数据库分离与附加 附加-选择目录中必须包含创建数据库的所有文件(数据文件、日志文件)

-表的创建(对象资源管理器、sql语句)及数据录入

——数据定义

基本表 视图 索引的创建、删除、修改

-创建

基本表名称、表中属性数据类型、完整性约束-列级、表级(放在该表最后一列定义之后,对整个表进行约束),有些约束既可是列级约束又可是表级约束;

默认值约束default

Constraint为约束指定唯一约束名,不需指定可以省略,系统自动命名

非空值(当前不知道不确定无法填入,不是0或空白符)约束not null

唯一性约束unique:可列级,可表级(约束多个列的组合-指定列名表)

主键约束primary key:可列级,可表级(约束多个列的组合-指定列名表)

主键约束、唯一性约束区别:一表只有一个主键约束可多个唯一性约束;主键中任何列都不允许空值唯一性约束没有此限制

外键约束foreign key:外键为空或引用表的某主键或唯一性键值;可列级,可表级

on

delete/on update违反参照完整性的处理策略:noaction限制、cascade级联、setnull置空

检查约束check:限定某列取值范围或与其他列的关系;条件表达式由列名、sql支持的运算符、函数等构成的逻辑表达式;可作列级,可作表级,列级只能由一个check约束但可用逻辑运算符and or构成复合条件

-修改和删除

修改Alert table增加列和完整性约束、修改列的定义及删除列和完整性约束

增加完整性约束alter table 名 add default ‘男‘ for Ssex

删除基本表drop table 基本表删除后在其之上定义的索引被删除,定义的视图不会被删除但无法使用

索引:记录/元组的索引关键字的值与该记录的存储地址的对应表;可在单列、多列(复合索引)上建;聚簇索引clustered( 索引项的顺序与表中记录的物理顺序一致且表中数据与索引一同存储)唯一索引unique(每个索引项只对应唯一数据记录,索引关键字的值不重复);升序ASC,降序DESC;一列 多列-各列逗号分隔

建索引:

删除索引:索引建立,数据更新,系统对索引文件维护,影响数据更新性能;不用,立即删除

——数据查询 select(对应投影) from where(对应选择)group by(将查询结果按照指定的分组依据列或表达式值相同的为一组进行分组)having(限定组应该满足的条件)order by(按照该子句所指定列进行升序或降序排列)

-单表查询

指定列 全部列 查询经过计算的值(select子句中目标列表达式变为表达式)为目标列表达式起别名

消除重复行 select distinct sno; 查询满足条件的元组(比较大小,确定范围【not】between and 确定集合【not】in(‘’,‘’,‘’) 字符匹配【not】like 空值is 【not】null 多重条件/逻辑运算符and or-or可以实现in运算)

字符匹配:只知道查询内容的一部分

 'DB\_Design'escape ‘\’表示\后边的_不是通配符

对查询结果排序order by asc desc

定额查询

使用聚集函数统计数据,聚集函数不能嵌套

元组个数

<->一列值的个数

对查询结果分组group by having分完组后聚集函数对每组进行运算;聚集函数之外的表达式必须在组内 起别名后,排序可以用别名(排序是对得到结果进行显示的),其余的操作不能用别名

-连接查询:内连接 外连接 交叉连接(不提)

自身连接 整个副本,起别名,起别名后,在查询中任何地方都使用该别名而不使用原来表名

内连接:

连接条件:等值连接非等值连接= 复合连接条件and or

外连接:左外 右外 全

-嵌套查询:执行过程由内向外,子查询的结果用来表达父查询的中间结果并非最终结果不能使用orderby

扫描一个父查询看其是否在子查询 子查询不需要去除重复、排序等 in类似自连接 not in类似差运算

带有in谓词的嵌套查询

带有比较运算符的嵌套查询

带有any all谓词的嵌套查询

相关与不相关嵌套查询

带有【not】exists谓词的嵌套查询

-集合查询 并union 交intersect 差except

-基于派生表的查询

——数据更新

-插入数据insert

-修改数据update

-删除数据delete

--数据更新:插入、修改、删除 insert update,与alter区分 delete删除一行,与drop区分 ——维护数据变化 增删改

--插入:插入单元组 多元组 insert into 表名 属性列 values 值 值与属性列一一对应;属性列可省,默认按照定义时的次序一一对应给出赋值

--将一个新学生记录插入student,看给的次序与定义的是否一致 想省只能按其顺序来,有些值不想给要用空值等填充

insert

into student

values('201215128','陈东',18,'男','IS');

--插入一条选课记录(‘201515128’,'1')

insert into SC(sno,cno)

values('201215128','050602');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值