数据库专升本复习
第一章 数据库系统概述
1.2 数据库技术的产生、发展
数据库历经了人工管理阶段、文件系统阶段和数据库系统阶段。
1,人工管理阶段:软件只有汇编语言,处理的方式是批处理。
特点:(1)数据不保存 (2)数据不共享 (3)数据不具有独立性
(4)系统没有专用的软件对数据进行管理
2,文件系统阶段:
特点:(1)数据以文件形式长期保存 (2)由文件系统管理数据
(3)程序与数据间有一定独立性
3,数据库系统阶段:
特点:(1)数据结构化 (2)数据共享性高、冗余度低
(3)数据独立性高(4)有统一的数据控制功能
整个数据库的结构可分成三级:用户的逻辑结构、整体逻辑结构和物理结构。
数据独立性分两级:物理独立性和逻辑独立性。
数据库管理系统(DBMS)提供四方面的数据控制功能:
○1 数据的安全性控制:例如,口令检查用户身份
○2 数据的完整性控制:
○3 并发控制
系统通过设置一些完整性规则,确保数据的正确性、有效性和相容性。
○4 数据恢复
1.3 数据库系统的组成
1,数据库系统(DBS):主要由数据库、数据库用户、计算机硬件系统、计算机软件系
统等几部分组成。
2,数据库(DB):是存储在计算机内、有组织的、可共享的数据集合。
具有○1 较小的冗余度、○2 较高的数据独立性和○3 易扩展性,并为各种用户共享。
数据库有如下两个特点:集成性和共享性。
3,用户:可以对数据库进行○1 存储、○2 维护和○3 检索等操作。
4,软件系统:主要包括数据库管理系统(DBMS)及其开发工具、操作系统和应用系统
等。
数据库管理系统(DBMS)是数据库系统的核心。
数据库系统(DBS)包含 DB、DBMS 和 DBA(数据库管理员)
1.4 数据库系统的模式结构
1, 数据库系统的三级模式:
从逻辑上分为三级:外模式、模式、内模式
模式:模式也称为逻辑模式、概念模式,是数据库中全体数据的逻辑结构和特征的
描述。
一个数据库只有一个模式。
外模式:外模式又称为子模式或用户模式。是数据库用户能看到并允许使用的那部
分数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示,也
是数据库用户的数据视图,即用户视图。
外模式是模式的子集,一个数据库可以有多个外模式。
内模式:内模式又称为存储模式,靠近物理存储,是数据在数据库内部的表示方式。
一个数据库只有一个内模式。
2, 数据库系统的二级映像与数据独立性:
(1) 外模式/模式映像。模式描述的是数据的全局逻辑结构,外模式描述的是数据
的局部逻辑结构。数据库中的同一模式可以有任意多个外模式。保证了数据
与程序间的逻辑独立性。
(2) 模式/内模式映像。模式和内模式都只有一个, 所以模式/内模式映像是唯一
的。确保了数据的物理独立性。
3,数据库系统的三级模式与二级映像的优点:
(1)保证数据的独立性 (2)简化了用户接口
(3)有利于数据共享
(4)有利于数据的安全保密
1.5 数据库系统的外部体系结构
从最终用户的角度看,数据库系统的结构分为○1 单用户结构○2 主从式结构
○3 分布式结构、○4 客服/服务器结构和○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 实体型:用矩形框表示。
○2 属性:用椭圆形框表示。
○3 联系:用菱形框表示。
实体之间的联系有:○1 一对一(1:1)○2 一对多(1:n)○3 多对多(m:n)
(4) 数据模型的组成要素:
数据模型由:○1 数据结构、○2 数据操作和○3 数据的完整性约束组成。
1.8 四种数据模型
数据模型主要有○1 层次模型、○2 网状模型和○3 关系模型三种。
层次模型和网状模型统称为非关系模型。
(1)层次模型用树形数据结构(有向树)来表示各类实体间的联系。
(2)网状模型是采用有向图结构表示记录型与记录型之间联系。
(3)关系模型的数据结构是一张规范化的二维表,由表名、表头和表体三部分组成。一个
关系对应一张二维表。
第二章 关系数据库
2.1 关系的形式化定义及其有关概念
1,笛卡尔积:笛卡尔积实际是一个二维表,表的框架由域构成,表的行称为元组,列称为
域。列的个数称为目或度。
2,关系。在数学上,关系是笛卡尔积的任意子集。
3,关系的性质:关系是一种规范化了的二维表中行的集合。
具有如下性质:(1)列是同质的。每一列的分量来自同一个域,是同一类型的数据。
(2)不同的列可来自同一个域,列称为属性,属性必须有不同的名字。
(3)列的顺序可以任意交换 (4)关系中元组(行)的顺序可任意
(5)不允许出现相同的元组 (6)分量必须是不可分的数据项
4,关系模式:一个关系模式应当是一个五元组。在关系模型中,实体以及实体间的联系都
是用关系来表示的。
2.2 关系的键与关系的完整性
1,候选键:能唯一标识关系中元组的一个属性或属性集,称为候选键,或称为候选关键字
或候选码。(1)唯一性(2)最小性
2,主关系键(primary key):被选用的候选键称为主关系键,或主键、主码、关键字等。
3,关系的完整性:○1 实体完整性 ○2 参照完整性 ○3 用户自定义完整性
实体完整性:是指主关系键的值不能为空或部分为空。
参照完整性:是对外部关系键的说明。
用户自定义完整性:如,取值范围的约束;数据输入格式的限制等。
2.3 关系代数
(1)集合运算符 4 个:∪(并)、—(差)、∩(交)、×(笛卡尔积)。
(2)专门的关系运算符 5 个:σ(选取)、∏(投影)、∞(连接)、*(自然连接)、÷(除)
(3)逻辑运算符 3 个:∨(或)、∧(与)、┐(非)
(4)基本运算 5 个:并、差、积、选取和投影。
∪(并):合并两个关系,列数不变,删去重复的元组(行)。
∩(交):用关系 R 和关系 S 表示:R∩S=R-﹙R-S﹚
具体实例请看课本。
第三章 关系数据库标准语言——SQL
SQL 是结构化查询语言的缩写。
3.1 SQL 的基本概念
(1)基本表 base table:一个关系对应一个基本表。一个或多个基本表对应一个存储文件。
(2)视图 view:视图是从一个或几个基本表导出的表,是一个虚拟的表。数据库中只存放
视图的定义而不存放视图的对应数据。
SQL 支持数据库的三级模式结构。其中外模式对应于视图,模式——基本表,内模式—
—存储文件。
SQL 具有○1 数据查询(DQL)、○2 数据定义(DDL)、○3 数据操纵(DML)和○4 数据控制(DCL)
4 种功能。
SQL 的动词:数据定义 3 个:创建 create、修改 alter、删除 drop。
数据查询 1 个:查询或检索 select。
数据操纵 3 个:添加或插入 insert、修改 update、删除 delete。
数据控制 2 个:授予 grant、收回 revoke。
3.3 创建和使用数据库
在 SQL Server2000 中,创建一个数据库至少产生两个文件,即数据文件和日志文件。一
个数据库至少应包含一个数据文件和一个事务日志文件。
一个数据库可以有一个或多个数据文件,一个数据文件只属于一个数据库。
(1)用 SQL 命令创建数据库的语法格式如下:
Create database database_name
(2)用 SQL 命令修改数据库的语法格式如下:
alter database database_name
(3)用 SQL 命令删除数据库的语法格式如下:
drop database database_name
3.4 创建和使用数据表
(1)用 SQL 命令创建数据表。
例如:用 SQL 命令创建一个学生表 S,对 Sno 字段进行 NOT NULL 约束。
Create table S
( Sno char(6) not null,
Sn varchar(8),
Sex char(2)default=’男’,
Age int,
Dept varchar(20) )
(注:default 表示默认值)
在 SQL Server 中可以定义 ○1 NULL/NOT NULL ○2 unique(唯一约束) ○3 primary key
(主键) ○4
foreign key(外键) ○5 check(范围)五种类型的完整性约束。
例如:创建 S 表,S#为主键,SN 不能为空
Create Table S
(
)
primary key,
not null,
varchar(10)
varchar(8)
S#
SN
Age int,
Dept varchar(50)
(2)用 SQL 命令修改数据表。
1,add(增加)方式:
例如:在 S 表中增加一个班号列和住址列。
Alter table S
Add
Class_no char(6),
Address char (40)
2,alter(修改)方式
例如:把 S 表中的 Sn 列加宽到 10 个字符。
Alter table S
Alter column
Sn char(10)
3,drop(删除)方式
例如:删除 S 表中的主键。
Alter table S
Drop constraint_prim
(3)用 SQL 命令删除数据表。
例如:删除表 S。
Drop table S
3.5 创建与使用索引
1, 索引的作用:(1),加快查询速度;(2),保证行的唯一性。
2,索引的分类:(1)按照索引记录的存放位置,可分为:聚集索引和非聚集索引。
在检索记录时,聚集索引速度比非聚集索引快
(2)唯一索引 (3)复合索引
3,用 SQL 命令创建索引。
语法格式如下:
create [ unique ]/[ clustered ] index< 索引名 > on < 表名 >
( < 列名 > [次序],
< 列名 >[次序] )
(注:其中 unique 表示建立唯一索引; clustered 表示建立聚集索引)
例如:在“图书”表中以“作者”建立一个索引
Create
Index
i_auth on Book(BAuth)
4,用 drop index 命令删除索引。
例如:删除表 SC 的索引 SCI。
Drop index SC.SCI
3.6 数据查询(select)
例如:(1) 在“高等教育出版社”出版、书名为“操作系统”的图书的作者名
Select BAuth
From Book, Publish
where Book.PNo=Publish.PNo
and PName=’高等教育出版社’
and BName=’操作系统’
(2) 查询“电子工业出版社”出版的“计算机”类图书的价格,同时输出出版社名称及图
书类别
Select BPrice, PName, BType
From Book, Publish
Where Book.PNo=Publish.PNo
and BType=’计算机’
and PName=’电子工业出版社’
(3) 查找书名中有“计算机”一词的图书的书名及作者
Select BName, BAuth
From Book
Where BName
like ‘%计算机%’
字符串中可以含有的通配符:% 代表 0 个或多个字符;
_ 下划线代表一个字符;
[ ] 表示在某一范围的字符。
(4)分组查询:group by 子句可以将查询结果按属性列或属性列组合在行的方向上进行分
组。 若分组后还要按照一定的条件进行筛选,则需要使用 having 子句。
例如:查询选修两门以上(含两门)课程的学生的学号和选课门数。
Sno, count(*)as SC_num
Select
From SC
Group by Sno
Having (count(*)>=2)
当一个 SQL 查询中同时使用 where 子句,group by 子句和 having 子句时,其顺序是 where,
group by, having。Where 与 having 子句的根本区别在于作用对象不同。Where 子句作用于基
本表或视图;having 子句作用于组,必须跟在 group by 子句后面,但 group by 子句后面可
以没有 having 子句。
(5)查询的排序:查询结果要排序时,应该使用 order by 子句,order by 子句必须出现在
最后。DESC 为降序 ASC 为升序,缺省时为升序。
例如:求选课在三门以上(含三门)且各门课程均及格的学生的学号及其总成绩,查询
结果按总成绩降序排列。
Select Sno, sum(Score)as TotalScore
From SC
Where (Score>=60)
Group by Sno
Having (count(*)>=3)
Order by sum(Score)desc
3.7 数据操纵
数据操纵语言(DML)主要包括添加数据(insert into)、修改数据(update)和删除
数据(delete)三种
1, 添加数据:(或插入数据)
其语法格式是: insert into <表名> (列名,列名,…)
Values(’’,’’,’’…)
例如:在 S 表中添加(或插入)一条学生记录(学号:S7、姓名:郑琳、性别:女)
Insert into S(Sno,Sname,Sex)
Values (’S7’,’郑琳’,’女’)