数据库专升本复习.docx
《数据库专升本复习.docx》由会员分享,可在线阅读,更多相关《数据库专升本复习.docx(18页珍藏版)》请在冰豆网上搜索。
数据库专升本复习
数据库专升本复习
第一章数据库系统概述
1.2数据库技术的产生、发展
数据库历经了人工管理阶段、文件系统阶段和数据库系统阶段。
1,人工管理阶段:
软件只有汇编语言,处理的方式是批处理。
特点:
(1)数据不保存
(2)数据不共享(3)数据不具有独立性
(4)系统没有专用的软件对数据进行管理
2,文件系统阶段:
特点:
(1)数据以文件形式长期保存
(2)由文件系统管理数据
(3)程序与数据间有一定独立性
3,数据库系统阶段:
特点:
(1)数据结构化
(2)数据共享性高、冗余度低
(3)数据独立性高(4)有统一的数据控制功能
整个数据库的结构可分成三级:
用户的逻辑结构、整体逻辑结构和物理结构。
数据独立性分两级:
物理独立性和逻辑独立性。
数据库管理系统(DBMS)提供四方面的数据控制功能:
数据的安全性控制:
例如,口令检查用户身份
数据的完整性控制:
系统通过设置一些完整性规则,确保数据的正确性、有效性和相容性。
并发控制
数据恢复
1.3数据库系统的组成
1,数据库系统(DBS):
主要由数据库、数据库用户、计算机硬件系统、计算机软件系统等几部分组成。
2,数据库(DB):
是存储在计算机内、有组织的、可共享的数据集合。
具有
较小的冗余度、
较高的数据独立性和
易扩展性,并为各种用户共享。
数据库有如下两个特点:
集成性和共享性。
3,用户:
可以对数据库进行
存储、
维护和
检索等操作。
4,软件系统:
主要包括数据库管理系统(DBMS)及其开发工具、操作系统和应用系统等。
数据库管理系统(DBMS)是数据库系统的核心。
数据库系统(DBS)包含DB、DBMS和DBA(数据库管理员)
1.4数据库系统的模式结构
1,数据库系统的三级模式:
从逻辑上分为三级:
外模式、模式、内模式
模式:
模式也称为逻辑模式、概念模式,是数据库中全体数据的逻辑结构和特征的描述。
一个数据库只有一个模式。
外模式:
外模式又称为子模式或用户模式。
是数据库用户能看到并允许使用的那部分数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示,也是数据库用户的数据视图,即用户视图。
外模式是模式的子集,一个数据库可以有多个外模式。
内模式:
内模式又称为存储模式,靠近物理存储,是数据在数据库内部的表示方式。
一个数据库只有一个内模式。
2,数据库系统的二级映像与数据独立性:
(1)外模式/模式映像。
模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。
数据库中的同一模式可以有任意多个外模式。
保证了数据与程序间的逻辑独立性。
(2)模式/内模式映像。
模式和内模式都只有一个,所以模式/内模式映像是唯一的。
确保了数据的物理独立性。
3,数据库系统的三级模式与二级映像的优点:
(1)保证数据的独立性
(2)简化了用户接口
(3)有利于数据共享(4)有利于数据的安全保密
1.5数据库系统的外部体系结构
从最终用户的角度看,数据库系统的结构分为
单用户结构
主从式结构
分布式结构、
客服/服务器结构和
浏览器/服务器结构
1.6数据库管理系统
用户在数据库系统中的一切操作,包括数据定义、查询、更新及各种控制,都是通过DBMS进行的。
1,DBMS的主要功能:
(1)提供数据定义语言(DDL),定义数据的模式、外模式和内模式三级模式结构,定义模式/内模式和外模式/模式二级映像,定义有关约束条件。
DD(数据字典)是DBMS存取数据的基本依据。
数据字典用来描述数据库中有关信息的数据目录,包括数据库的三级模式、数据类型、用户名和用户权限等有关数据库系统的信息,起着系统状态的目录表作用。
(2)提供数据操纵语言(DML),实现对数据库的基本操作,包括检索select、更新(插入insert、修改update、删除delete)等。
(3)数据库运行管理功能:
对数据库的运行进行管理师DBMS运行的核心部分。
1.7数据模型
(1)信息世界(概念模型)的有关基本概念:
键key:
在实体型中,能唯一标识一个实体的属性或属性集称为实体的键,也称为关键字。
域:
属性的取值范围称为该属性的域。
(2)数据模型的分类:
1,第一类模型是概念模型,也称为信息模型,他是按用户的观点对数据和信息建模,是对现实世界的事物及其联系的第一级抽象。
概念模型属于信息世界中的模型。
主要用于数据库设计时用户和数据库设计人员之间交流的工具。
在概念模型中,比较著名的是实体联系模型,简称E-R模型。
2,第二类模型是逻辑模型(或称数据模型)和物理模型。
是按计算机的观点对数据建模,是对现实世界的第二级抽象。
数据库是按DBMS规定的数据模型组织和建立起来的。
逻辑模型主要包括:
层次模型、网状模型、关系模型面向对象模型等。
(3)实体联系模型及E-R图:
E-R图的基本成分包含实体型、属性和联系。
实体型:
用矩形框表示。
属性:
用椭圆形框表示。
联系:
用菱形框表示。
实体之间的联系有:
一对一(1:
1)
一对多(1:
n)
多对多(m:
n)
(4)数据模型的组成要素:
数据模型由:
数据结构、
数据操作和
数据的完整性约束组成。
1.8四种数据模型
数据模型主要有
层次模型、
网状模型和
关系模型三种。
层次模型和网状模型统称为非关系模型。
(1)层次模型用树形数据结构(有向树)来表示各类实体间的联系。
(2)网状模型是采用有向图结构表示记录型与记录型之间联系。
(3)关系模型的数据结构是一张规范化的二维表,由表名、表头和表体三部分组成。
一个关系对应一张二维表。
第二章关系数据库
2.1关系的形式化定义及其有关概念
1,笛卡尔积:
笛卡尔积实际是一个二维表,表的框架由域构成,表的行称为元组,列称为域。
列的个数称为目或度。
2,关系。
在数学上,关系是笛卡尔积的任意子集。
3,关系的性质:
关系是一种规范化了的二维表中行的集合。
具有如下性质:
(1)列是同质的。
每一列的分量来自同一个域,是同一类型的数据。
(2)不同的列可来自同一个域,列称为属性,属性必须有不同的名字。
(3)列的顺序可以任意交换(4)关系中元组(行)的顺序可任意
(5)不允许出现相同的元组(6)分量必须是不可分的数据项
4,关系模式:
一个关系模式应当是一个五元组。
在关系模型中,实体以及实体间的联系都是用关系来表示的。
2.2关系的键与关系的完整性
1,候选键:
能唯一标识关系中元组的一个属性或属性集,称为候选键,或称为候选关键字或候选码。
(1)唯一性
(2)最小性
2,主关系键(primarykey):
被选用的候选键称为主关系键,或主键、主码、关键字等。
3,关系的完整性:
实体完整性
参照完整性
用户自定义完整性
实体完整性:
是指主关系键的值不能为空或部分为空。
参照完整性:
是对外部关系键的说明。
用户自定义完整性:
如,取值范围的约束;数据输入格式的限制等。
2.3关系代数
(1)集合运算符4个:
∪(并)、—(差)、∩(交)、×(笛卡尔积)。
(2)专门的关系运算符5个:
σ(选取)、∏(投影)、∞(连接)、*(自然连接)、÷(除)
(3)逻辑运算符3个:
∨(或)、∧(与)、┐(非)
(4)基本运算5个:
并、差、积、选取和投影。
∪(并):
合并两个关系,列数不变,删去重复的元组(行)。
∩(交):
用关系R和关系S表示:
R∩S=R-﹙R-S﹚
具体实例请看课本。
第三章关系数据库标准语言——SQL
SQL是结构化查询语言的缩写。
3.1SQL的基本概念
(1)基本表basetable:
一个关系对应一个基本表。
一个或多个基本表对应一个存储文件。
(2)视图view:
视图是从一个或几个基本表导出的表,是一个虚拟的表。
数据库中只存放视图的定义而不存放视图的对应数据。
SQL支持数据库的三级模式结构。
其中外模式对应于视图,模式——基本表,内模式——存储文件。
SQL具有
数据查询(DQL)、
数据定义(DDL)、
数据操纵(DML)和
数据控制(DCL)4种功能。
SQL的动词:
数据定义3个:
创建create、修改alter、删除drop。
数据查询1个:
查询或检索select。
数据操纵3个:
添加或插入insert、修改update、删除delete。
数据控制2个:
授予grant、收回revoke。
3.3创建和使用数据库
在SQLServer2000中,创建一个数据库至少产生两个文件,即数据文件和日志文件。
一个数据库至少应包含一个数据文件和一个事务日志文件。
一个数据库可以有一个或多个数据文件,一个数据文件只属于一个数据库。
(1)用SQL命令创建数据库的语法格式如下:
Createdatabasedatabase_name
(2)用SQL命令修改数据库的语法格式如下:
alterdatabasedatabase_name
(3)用SQL命令删除数据库的语法格式如下:
dropdatabasedatabase_name
3.4创建和使用数据表
(1)用SQL命令创建数据表。
例如:
用SQL命令创建一个学生表S,对Sno字段进行NOTNULL约束。
CreatetableS
(Snochar(6)notnull,
Snvarchar(8),
Sexchar
(2)default=’男’,
Ageint,
Deptvarchar(20))
(注:
default表示默认值)
在SQLServer中可以定义
NULL/NOTNULL
unique(唯一约束)
primarykey(主键)
foreignkey(外键)
check(范围)五种类型的完整性约束。
例如:
创建S表,S#为主键,SN不能为空
CreateTableS
(
S#varchar(10)primarykey,
SNvarchar(8)notnull,
Ageint,
Deptvarchar(50)
)
(2)用SQL命令修改数据表。
1,add(增加)方式:
例如:
在S表中增加一个班号列和住址列。
AltertableS
Add
Class_nochar(6),
Addresschar(40)
2,alter(修改)方式
例如:
把S表中的Sn列加宽到10个字符。
AltertableS
Altercolumn
Snchar(10)
3,drop(删除)方式
例如:
删除S表中的主键。
AltertableS
Dropconstraint_prim
(3)用SQL命令删除数据表。
例如:
删除表S。
DroptableS
3.5创建与使用索引
1,索引的作用:
(1),加快查询速度;
(2),保证行的唯一性。
2,索引的分类:
(1)按照索引记录的存放位置,可分为:
聚集索引和非聚集索引。
在检索记录时,聚集索引速度比非聚集索引快
(2)唯一索引(3)复合索引
3,用SQL命令创建索引。
语法格式如下:
create[unique]/[clustered]index<索引名>on<表名>
(<列名>[次序],
<列名>[次序])
(注:
其中unique表示建立唯一索引;clustered表示建立聚集索引)
例如:
在“图书”表中以“作者”建立一个索引
CreateIndexi_authonBook(BAuth)
4,用dropindex命令删除索引。
例如:
删除表SC的索引SCI。
DropindexSC.SCI
3.6数据查询(select)
例如:
(1)在“高等教育出版社”出版、书名为“操作系统”的图书的作者名
SelectBAuth
FromBook,Publish
whereBook.PNo=Publish.PNo
andPName=’高等教育出版社’
andBName=’操作系统’
(2)查询“电子工业出版社”出版的“计算机”类图书的价格,同时输出出版社名称及图书类别
SelectBPrice,PName,BType
FromBook,Publish
WhereBook.PNo=Publish.PNo
andBType=’计算机’
andPName=’电子工业出版社’
(3)查找书名中有“计算机”一词的图书的书名及作者
SelectBName,BAuth
FromBook
WhereBNamelike‘%计算机%’
字符串中可以含有的通配符:
%代表0个或多个字符;
_下划线代表一个字符;
[]表示在某一范围的字符。
(4)分组查询:
groupby子句可以将查询结果按属性列或属性列组合在行的方向上进行分组。
若分组后还要按照一定的条件进行筛选,则需要使用having子句。
例如:
查询选修两门以上(含两门)课程的学生的学号和选课门数。
SelectSno,count(*)asSC_num
FromSC
GroupbySno
Having(count(*)>=2)
当一个SQL查询中同时使用where子句,groupby子句和having子句时,其顺序是where,groupby,having。
Where与having子句的根本区别在于作用对象不同。
Where子句作用于基本表或视图;having子句作用于组,必须跟在groupby子句后面,但groupby子句后面可以没有having子句。
(5)查询的排序:
查询结果要排序时,应该使用orderby子句,orderby子句必须出现在最后。
DESC为降序ASC为升序,缺省时为升序。
例如:
求选课在三门以上(含三门)且各门课程均及格的学生的学号及其总成绩,查询结果按总成绩降序排列。
SelectSno,sum(Score)asTotalScore
FromSC
Where(Score>=60)
GroupbySno
Having(count(*)>=3)
Orderbysum(Score)desc
3.7数据操纵
数据操纵语言(DML)主要包括添加数据(insertinto)、修改数据(update)和删除数据(delete)三种
1,添加数据:
(或插入数据)
其语法格式是:
insertinto<表名>(列名,列名,…)
Values(’’,’’,’’…)
例如:
在S表中添加(或插入)一条学生记录(学号:
S7、姓名:
郑琳、性别:
女)
InsertintoS(Sno,Sname,Sex)
Values(’S7’,’郑琳’,’女’)
2,修改数据:
其语法格式是:
update<表名>
Set列名=表达式,…
Where条件
例如:
将所有学生的年龄增加1岁
UpdateS
SetAge=Age+1
例如:
把教师表中工资小于或等于1000元的讲师的工资提高20%
UpdateT
SetSal=1.2*Sal
Where(Prof=’讲师’)and(Sal<=1000)
3,删除数据:
其语法格式是:
delete
From表名
Where条件
例如:
删除刘三老师的记录
Delete
FromT
WhereTN=’刘三’
例如:
删除刘三老师的授课记录
Delete
FromTC
Where(TNo=(selectTNo
FromT
WhereTN=’刘三’))
3.8视图
视图是虚表,其数据不进行存储。
1,创建视图:
在创建或使用视图时应注意:
只能在当前数据库中创建视图,在视图中最多只能引用1024列
不能在视图上创建索引;不能再规则、默认和触发器的定义中引用视图
如果视图引用的表被删除,则当使用该视图时返回一条错误信息
用SQL命令创建视图:
其语法格式如下:
Createview视图名(列名,列名,…)
Asselect列名,…
From表名
Where…
例如:
创建一学生平均成绩视图S_Avg
CreateviewS_Avg(Sno,Avg)
AsselectSno,Avg(Score)
FromSC
GroupbySno
2,修改视图:
其语法格式如下:
alterview视图名(列名,列名,…)
Asselect列名,…
From表名
Where…
3,删除视图:
其语法格式如下:
dropview视图名
4,查询视图:
例如:
查询视图Sub_T中职称为教授的教师号和姓名
selectTno,Tn
FromSub_T
WhereProf=’教授’
5,更新视图:
(1)添加insert
例如:
向计算机系教师视图Sub_T中添加一条记录(教师号:
T6、姓名:
李丹、职业:
副教授)
InsertintoSub_T(Tno,Tn,Prof)
Values(’S6’,’李丹’,’副教授’)
(2)修改update
例如:
将计算机系教师视图Sub_T中刘三的职称改为“副教授”
UpdateSub_T
SetProf=’副教授’
Where(Tn=’刘三’)
(3)删除delete
例如:
删除计算机系教师视图Sub_T中刘三老师的记录。
Delete
FromSub_T
WhereTN=’刘三’
使用视图有如下几个优点:
(1)利于数据保密
(2)简化查询操作
(3)保证数据的逻辑独立性
第四章关系数据库理论
4.1规范化问题的提出
关系数据库的规范化理论主要包括三个方面的内容:
函数依赖、范式和模式设计。
其中函数依赖是起着核心作用,是模式分解和模式设计的基础。
范式是模式分解的标准。
4.2函数依赖
关系模式中各属性之间相互依赖、相互制约的联系称为数据依赖。
数据依赖一般分为函数依赖、多值依赖和连接依赖。
函数依赖分为完全函数依赖、部分函数依赖和传递函数依赖三种,它们是规范化理论的依据和规范化程度的准则。
4.4关系模式的范式
关系模式规范化的基本思想是消除关系模式中的数据冗余。
5NF∈4NF∈BCNF∈3NF∈2NF∈1NF
第六章数据库设计
数据库设计的六个阶段包括:
系统需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行与维护
6.1数据库设计概述
数据库设计包括数据库的
结构设计和数据库的
行为设计两方面内容
数据库的结构设计:
包括
(1)概念设计、
(2)逻辑设计和(3)物理设计
6.2系统需求分析
数据项是数据的最小单位
需求分析阶段设计数据流图(DFD)通常采用自顶向下的方法。
6.3概念结构设计
最常用的概念结构设计方法是自底向上。
E-R图中的冲突有三种:
属性冲突、命名冲突和结构冲突
1,规范化理论是数据库逻辑设计阶段的指南和工具。
2,建立实际数据库结构是数据库实施阶段的任务。
3,设计子模式属于数据库设计的逻辑设计。