数据库 原理 知识点 笔试必备.docx
《数据库 原理 知识点 笔试必备.docx》由会员分享,可在线阅读,更多相关《数据库 原理 知识点 笔试必备.docx(20页珍藏版)》请在冰豆网上搜索。
数据库原理知识点笔试必备
绪论
●数据库技术中的四个名词:
DB、DBMS、DBS、数据库技术。
其概念是不同的。
DB:
数据库(Database),DB是统一管理的相关数据的集合。
DBMS:
数据库管理系统(DatabaseManagementSystem),DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。
DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型DBMS。
DBS:
数据库系统(DatabaseSystem),DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。
数据库技术:
是一门研究数据库结构、存储、管理和使用的软件学科。
●数据库系统
数据库系统组成,通常由数据库(DB)、硬件、软件、数据库管理员四部分组成。
●数据库管理系统
1.数据库的定义功能。
2.数据库运行控制功能。
DBMS对数据库的控制主要通过四个方面实现:
数据安全性控制、数据完整性控制、多用户环境下的并发控制和数据库的恢复。
3.数据库的维护功能。
这一部分包括数据库的初始数据的载入、转换功能、数据库的转储功能、数据库的重组织功能和性能监视、分析功能,大都由各个实用程序来完成。
4.数据字典(DataDictionary,记为DD)。
数据字典的主要作用是:
供数据库管理系统快速查找有关对象的信息。
数据库管理系统在处理用户存取时,要经常查阅数据字典中的用户表、外模式表和模式表;供数据库管理员查询,以掌握整个系统的运行情况;支持数据库设计与系统分析。
●数据库系统的三级模式:
1.外模式
2.内模式
3.模式
4.模式间的映像
●数据模型
1.三个世界现实世界、信息世界、机器世界
数据描述的三个领域(现实世界、信息世界和机器世界)
信息世界中的几个概念:
(1)实体--即客观存在可以相互区别的事物
(2) 实体集--同类实体的集合
(3) 属性--实体的特性
(4) 实体标识符--唯一标识实体的属性或属性集
机器世界中的四个概念:
(1)字段--标记实体属性的命名单位称为字段或数据项
(2)记录--字段的有序集合
(3)文件--同一类记录的汇集
(4)键(关键码)--能唯一标识文件中每个记录的字段或字段集。
这个概念与实体标识符的概念相对应。
2.数据模型的三要素
(1)数据结构
(2)数据操作
(3)数据的约束条件
3.实体模型,两个实体间的联系可分为3类:
(1)一对一联系(1:
1)如:
学校与校长,观众与座位等。
(2)一对多联系(1:
n)如:
省与市,学校与系部等。
(3)多对多联系(n:
m)如:
学生与课程,教师与课程,师生关系,商店与商品,图书与读者,工厂与产品等。
●关系数据模型的数据结构
关系:
对应通常说的表;
元组:
表中的一行即为一个元组;
属性;表中的一例即为一个属性,属性(学号,姓名,性别,系别,年龄和籍贯);
主码(KEY):
表中的某个属性组,它可以唯一确定一个元组;
域(domain):
属性的取值范围,如人的年龄一般在1-100岁之间。
学生年龄属性的域应是(14—38),性别的域是(男,女),系别的域是一个学校所有系名的集合;
分量:
元组中的一个属性值;
关系模型:
对关系的描述,一般表示为:
关系名(属性1,属性2,……,属性N)
●关系数据模型的操纵与完整性约束条件
关系数据模型的操纵主要包括查询、插入、删除和更新数据。
这些操作必须满足关系的完整性约束条件。
关系的完整性约束条件包括3大类:
实体完整性、参照完整性和用户定义的完整性。
关系数据库
●关系模型概述
1.关系模型组成
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
关系操作分为两大部分如图所示。
查询
其它
选择Select
增加Insert
投影Project
删除Delete
连接Join
修改Update
除Divide
并Union
交Intersection
差Difference
2.关系操作的特点
关系操作的特点是操作对象和操作结果都是集合。
而非关系数据模型的数据操作方式则为一次一个记录的方式。
关系数据语言分为三类:
(1)关系代数语言:
如ISBL;
(2)关系演算语言:
分为元组关系演算语言(如Alpha,Quel)、域关系演算语言(如QBE);
(3)具有关系代数和关系演算双重特点的语言:
如SQL。
●关系的完整性
关系模型的完整性规则是对关系的某种约束条件。
关系的完整性共分为三类:
实体完整性、参照完整性、用户定义完整性。
(1)实体的完整性(EntityIntegrity)规定:
若属性A是基本关系R的主属性,则属性A不能取空值。
即主属性不能为空。
(2)参照的完整性(ReferentialIntegrity)规定:
若F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系)则对于R中每个元组在F上的值必须为:
①或者取空值(F的每个属性值均为空值);即外码可以为空
②或者等于S中某个元组的主码值。
(3)用户定义的完整性(UserdefinedIntegrity):
就是针对某一具体的关系数据库的约束条件,由应用的环境决定。
●关系代数
●等值连接与自然连接的区别和联系。
答:
连接运算符是“=”的连接运算称为等值连接。
它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组
自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
SQL语言
●概念
SQL语言具有DDL、DML、DCL、DQ
功能
查询DQ——SELECT
数据定义DD——CREATE,DROP,ALTER
数据操纵DM——INSERT,UPDATE,DELETE
数据控制DC——GRANT,REVOKE
两种使用方式:
直接用SQL,DBMS解释执行;嵌入其它宿主语言
●定义基本表
CREATETABLE<表名>(<列名><数据类型>[列级完整性约束条件][,<列名><数据类>[列级完整性约束条件]]…[,<表级完整性约束条件>]);
列级完整性约束条件有:
NULL(空)、UNIQUE(取值唯一),如NOTNULLUNIQUE表示取值唯一,不能取空值。
例建立一个“供应商”表S(Sno,Sname,Status,City)分别表示:
供应商代码、供应商名、供应商状态、供应商所在城市。
其中供应商代码不能为空,且值是唯一的,且供应商的名是唯一的。
CREATETABLES(SnoCHAR(3)NOTNULLUNIQUE,
SnameCHAR(30)UNIQUE,
StatusCHAR(8),
CityCHAR(20))
从上述定义可以看出,“SnoCHAR(3)NOTNULLUNIQUE”语句定义了Sno的列级完整性约束条件,取值惟一,不能取空值。
●修改基本表
ALTERTABLE<表名>[ADD<新列名><数据类型>[完整性约束条件]][DROP<完整性约束名>][MODIFY<列名><数据类型>]
例如,向“供应商”表S增加Zap“邮政编码”可用如下语句:
ALTERTABLESADDZapCHAR(6);
注意,不论基本表中原来是否已有数据,新增加的列一律为空。
又如,将Status字段改为整型可用如下信息:
ALTERTABLESMODIFYStatusINT;
●删除基本表
DROPTABLE<表名>
●建立索引
CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>
[<次序>]]…);
秩序可选:
ASC(升序),DSC(降序),默认值为ASC。
UNlQUE:
表明此索引的每一个索引值只对应惟一的数据记录。
CLUSTER:
表明要建立的索引是聚簇索引,意为索引项的顺序是与表中记录的物理顺序一致的索引组织。
●删除索引
DROPINDEX<索引名>
●视图的创建
CREATEVIEW视图名(列表名)
ASSELECT查询子句
[WITHCHECKOPTION];
注意,视图的创建中,必须遵循如下规定:
(1)子查询可以是任意复杂的SELECT语句,但通常不允许含有orderby子句和DISTINCT短语;
(2)WITHCHECKOPTION表示对UPDATE,INSTER,DELETE操作时保证更新、插入、或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式);
(3)组成视图的属性列名或者全部省略或者全部指定。
如果省略属性列名,则隐含该视图由SELECT子查询目标列的主属性组成。
例建立“计算机”系学生的视图,并要求进行修改、插入操作时保证该视图只有计算机系的学生。
CREATEVIEWCS_STUDENT
ASSELECTSno,Sname,Sage,SexFROMStudentWHERESD=’CS’
WITHCHECKOPTION
●查询
数据库查询是数据库的核心操作,SQL语言提供了SELECT语句进行数据库的查询。
格式如下:
SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…
FROM<表名或视图名>[,<表名或视图名>]
[WHERE<条件表达式>]
[GROUPBY<列名l>[HAVING<条件表达式>]]
[ORDERBY<例名2>[ASC|DESC]…]
SELECT子句中的输出可以是:
列名、表达式、集函数(AVG,COUNT,MAX,MIN,SUM),DISTINCT选项可以保证查询结果集中不存在重复元组。
FROM子句中的出现多个基本表或视图时,系统首先执行笛卡尔儿积操作。
WHERE子句的条件表达式中可以使用的运算符如图3—1所示:
运算符
含义
运算符
含义
集合成员运算符
IN
NOTIN
在集合中
不在集合中
算术运算符
>
≥
<
≤
=≠
大于
大于等于
小于
小于等于
等于/不等于
字符串匹配运算符
LIKE
与_和%进行单个多个字符匹配
空值比较运算符
ISNULL
ISNOTNULL
为空
不能为空
逻辑运算符
AND
OR
NOT
与
或
非
●典型题解析
例学生数据库中有三个基本表(关系):
S(Sno,Sname,Age,Sex,SD)
C(Cno,Cname,Teacher)
SC(Sno,Cno.Grade)
请用SQL语言完成以下操作:
(1)检索选修课程名为“MS”的学生号和学生姓名;
(2)检索至少选修了课程号为‘C1’和‘C3’的学生号;
(3)检索选修了‘操作系统’或‘数据库’课程的学号和成绩;
(4)检索年龄在18到20之间(含18和20)的女生的学号、姓名及年龄;
(5)检索选修了“刘平”老师所讲课程的学生的学号、姓名及成绩;
解
(1)检索选修课程名为“MS”的学生号和学生姓名;
方法1(连接查询)
SELECTS.Sno,Sname;
FROMS,SC,C;