数据库复习.docx

上传人:b****9 文档编号:25768280 上传时间:2023-06-13 格式:DOCX 页数:26 大小:28.95KB
下载 相关 举报
数据库复习.docx_第1页
第1页 / 共26页
数据库复习.docx_第2页
第2页 / 共26页
数据库复习.docx_第3页
第3页 / 共26页
数据库复习.docx_第4页
第4页 / 共26页
数据库复习.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

数据库复习.docx

《数据库复习.docx》由会员分享,可在线阅读,更多相关《数据库复习.docx(26页珍藏版)》请在冰豆网上搜索。

数据库复习.docx

数据库复习

数据库复习重点

概念部分请大家熟练记忆,代码可以结合书本例题和PPT进行理解性记忆!

数据冗余:

所带来的问题不仅仅是存储空间的浪费,更为严重的是造成数据的不一致性。

不可避免

数据的独立性:

是指应用程序不会因数据的物理表示方法和访问技术的改变而改变,即应用程序并不依赖于任何特定的物理表示方式和访问技术。

(是指数据的组织和存储方法与应用程序互不依赖、彼此独立的特性。

是数据与程序之间的(DB,VB)当数据改变,程序不需要随之改变。

存在逻辑独立性与物理独立性,逻辑独立性:

是指表达现实世界的信息内容发生变化时,比如增加一些列、删除无用列等,也不影响应用程序的特性;物理独立性:

是指当数据的存储结构发生变化时,也不影响应用程序的特性。

数据库:

是长期存储在计算机中的有组织的,可共享的,互相关联的大量数据的集合。

数据库中的数据时用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性。

数据库管理系统(DBMS):

是一个专门用于实现对数据进行管理和维护的系统软件。

数据库管理员(DBA):

系统分析员和数据库设计人员;应用程序员和最终用户。

数据库管理数据方式的特点:

1.相互关联的数据集合

2.较少的数据冗余

3.程序与数据相互独立

4.保证数据的安全和可靠

5.最大限度地保证数据的正确性

6.数据可以共享并能保证数据的一致性

数据库系统的概念及组成要素:

是指在计算机中引入数据库后的系统,一般由数据库、数据库管理系统(及相关的实用工具)、应用程序、数据库管理员组成。

包含的内容:

硬件,软件,人员。

数据模型:

数据库中表示数据与数据之间联系的方法;

组成:

数据结构,数据操作,数据约束条件。

类型:

概念层数据模型,组织层数据模型(逻辑数据模型)

实现模型:

网状,层次,关系

E-R(实体-联系)图:

反映现实世界中的事物及相互联系:

1.实体:

描述客观事物的概念,用矩形表示

2.属性:

指实体具有的某种特性,用椭圆表示

3.联系:

实体之间的联系,用菱形表示

(将E-R图准换为表格时,若关系为1对1,可不用另外建立表格;若关系为1对多时,将“1”的主键加入“多”的表格中;若关系为多对多时,需另外建立表格)

数据库系统的结构体系:

三模式:

内模式;外模式;概念模式。

优点:

保证数据的独立性(物理和逻辑);简化了用户接口,方便了用户使用;有利于数据共享及数据安全保密;会给系统增加一些额外开销。

两级映像:

外模式—模式映像(保证数据的逻辑独立性);模式—内模式映像(保证数据的物理独立性)

关系模型(关系数据模型):

用关系表示实体以及实体之间联系的模型。

关系:

就是二维表;关系模式:

二维表的结构(二维表的表框架或表头结构)

字段(属性):

关系中的每一列是一个属性值的集合,列可以命名,称为属性名。

关键字(主码):

是关系中用于唯一确定一个元祖的一个属性或最小的主属性。

主键:

从候选码中选择一个作为关系的主码;每个关系都必定有且只有一个主码;对于一个关系,主码一经选定,通常是不能随意改变的。

候选码:

如果一个关系中存在多个可以作为主码的属性,则称这些属性为候选属性,相应的码称为候选码。

外键:

与主键对应(一个表的外键对应一个表的主键)之间的关系表达。

主属性&非主属性:

关系模型中使用主码作为记录的唯一标识,主码所包含的属性称为关系的主属性,其他的非主码属性为非主属性。

第一范式:

不包含重复组的关系;

第二范式:

如果R(U,F)属于第一范式,并且R中的每个非属性都完全函数依赖于主码,则R(U,F)属于第二范式;

第三范式:

如果R(U,F)属于第二范式,并且所有的非主属性都不传递依赖于主码,则R(U,F)属于第三范式。

关系的基本特点:

关系中的每一列都是不可再分的基本属性;一个关系中的各属性不能重名;关系中的行、列次序并不重要,即交换列的前后顺序,不影响其表达的语义。

关系模型完整性:

数据完整性是指数据库中存储的数据是有意义的或正确的,关系模型中的数据完整性规则是对关系的某种约束条件。

类型:

实体完整性;参照完整性;用户定义的完整性。

实体完整性:

指的是关系数据库中所有的表都必须有主码,而且表中不允许存在如下的记录:

(要求主码的值不能为空值或部分为空值的约束条件)

1.无主码值的记录;

2.主码值相同的记录

参照完整性(也称引用完整性):

一般是指多个实体或表之间的关联关系。

用户定义的完整性(也称为域完整性或语义完整性):

实际上就是指明关系中的属性的取值范围,也就是属性的域,这样可以限制关系的属性的取值类型及取值范围,防止属性的值与应用语义矛盾。

关系模型的数据操作主要包括四种:

查询,插入,删除和修改。

关系数据语言的操作类型:

选择,投影,连接。

关系数据库设计过程:

概念结构设计:

特点:

是整个数据库系统设计的关键,独立于数据库逻辑结构,独立于DBMS;

设计目标:

产生反映全组织信息需要的整体数据库概念结构,是整个组织各个用户共同关心的信息结构;

描述工具:

E-R图(图形表示);

概念结构设计的策略主要有:

自底向上,自顶向下,由内而外,混合策略。

步骤:

1.设计局部E—R模型:

(抽象方法:

分类,概括,聚簇)设计步骤:

确定实体和属性;确定联系类型;画出局部E—R图。

2.设计全局E—R模型(视图集成):

E—R模型之间的冲突有三类:

属性冲突,命名冲突,结构冲突。

步骤:

合并:

消除冲突—初步E-R图

修改和重构:

消除冗余—基本E-R图

3.优化全局E—R模型:

满足条件:

实体个数尽可能少,实体所包含的属性尽可能少,实体间联系无冗余.

逻辑设计:

将概念结构转换成特定DBMS所支持的数据模型的过程

逻辑结构设计的步骤:

将概念结构转换为一般的关系、网状、层次模型;

将转换来的常用模型向特定DBMS支持下的数据模型转换;

对数据模型进行优化。

将E—R图转化为关系模型(表格)(一个对象就生成一个表格,属性为表格的列):

实体之间的联系有不同的情况:

1.1对1时:

可以转换为一个独立的关系模型,也可以不建立独立关系模型;

2.1对n时:

如果与n端对应的关系模式合并,则需要在该关系模式中加入1端实体的码以及联系本身的属性;

3.m对n时:

必须转换为一个独立的关系模式,且关系模式的主码包含各实体的码。

4.三个或三个以上实体间的一个多元联系可以转换为一个独立的关系模型,且关系模式的主码包含各实体的码;

5.具有相同主码的关系模式可以合并。

关系规范化:

应用规范化理论对产生的关系逻辑模式进行初步优化

考虑关系模式的函数依赖关系,确定范式等级

对关系模式进行合并或分解

模式优化:

为了提高数据的存取和存储效率,还必须关系模式进行优化

常用的优化方法:

对关系模式进行垂直分割和水平分割

函数依赖:

是属性间的关联,是属性间的逻辑依赖关系,是一种约束

数据依赖是针对数据模式,而不是特定的实例

类似于变量之间的单值函数关系

Y=F(X),其中自变量X的值,决定一个唯一的函数值Y

在一个关系模式里的属性,由于它在不同元组里属性值可能不同,由此可以把关系中的属性看作变量

一个属性与另一个属性在取值上可能存在制约关系。

定义:

设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集.对于R(U)的任何一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称X函数决定Y,或Y函数依赖于X,记作:

X—Y.

X通常称为“决定因素”

当Y不函数依赖与X,则记作:

X—Y

当X—Y,且Y—X,则记作:

X—Y(互相函数依赖)

函数类型:

安全、部分、传递

规范化理论是围绕着范式建立的;

满足不同程度要求的约束集则称为不同的范式;

如果一个关系满足某个指定的约束集,则称它属于某个特定的范式;

较高层次的范式比较低层次的范式具有“更合乎要求的性质”;

规范化:

一个低一级范式的关系模式,通过投影运算可以转化为若干个高一级范式的关系模式的集合,这个过程叫做规范化。

范式分类:

1NF规范化:

把非规范化关系规范提高到1NF关系模式的集合.

2NF规范化是把1NF关系模式规范提高到变成2NF关系模式的集合;从1NF中消除非主属性对候选码的部分函数依赖,则获得2NF关系

理解:

若R∈3NF,则R中没有非主属性传递依赖于键码。

从2NF关系中,消除非主属性对码的传递依赖函数而获得3NF关系

R∈3NF,则每个非主属性既不部分依赖,也不传递依赖于R的任何候选码.

3NF的规范化:

R(X,Y,Z,W),若XY,YX,且YZ,适合于R,那么R首先分解为投影R[X,Y,W]和R[Y,Z],若R[X,Y,W]还不属于3NF,则继续上述过程。

基本结构:

SELECT结果字段表达式列表;FROM数据来源表或视图列表;[WHERE记录条件逻辑表达式列表];[GROUPBY分组字段列表[HAVING组条件逻辑表达式];[ORDERBY排序字段列表[ASC|DESC],…]

查询类型:

基本查询:

单表查询(1.选择表中若干列:

查询指定的列;查询全体列;查询经过计算的列;2.选择表中的若干元组:

消除取值相同的行;查询满足条件的元组3.对查询结果进行排序4.使用聚合函数汇总数据5.对查询结果进行分组统计),多表连接查询(内连接:

是一种最常用的连接类型;语法格式:

from表1[inner]join表2on<连接条件>;自连接:

是一种特殊的内连接,是指相互连接的表在物理上为同一张表,但在逻辑上将其看成是两张表;外连接:

只限制一张表中的数据必须满足连接条件,而另一张中的数据可以不满足连接条件。

ANSI方式的外连接的语法格式为:

from表1left|right[outer]join表2on<连接条件>),子查询。

连接查询:

等值与非等值连接查询

连接类型:

Innerjoin

Crossjoin

Left[outer]join

Right[outer]join

Full[outer]join

Ex:

SelectStudent.sno,sname,cno,grade

FromStudent,SC

WhereStudent.sno=SC.sno

自身连接查询

例:

查询每一门课的间接先修课(即先修课的先修课)

SelectFIRST.Cno,SECOND.Cpno

FromCourseFIRST,CourseSECOND

WhereFIRST.Cpno=SECOND.Cno

外连接

SelectStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFromStudent,SC

WhereStudent.Sno=SC.Sno(*)

复合条件连接

例1:

列出所有学生的学号、姓名、课号、课名、成绩。

SelectStudent.sno,sname,SC.cno,cname,grade

FromStudent,SC,Course

WhereStudent.sno=SC.snoandSC.cno=Course.cno

嵌套查询:

在SQL中,一个SELECT-FROM-WHERE语句称为一个查询块。

将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询。

子查询是嵌套在另一查询中的Select-From-Where表达式

求解方法是由里向外处理:

即每个子查询在上一级查询处理之间求解,子查询的结果用于建立父查询的查找条件。

子查询中不能使用OrderBy子句,OrderBy子句只能对最终查询结果进行排序。

可用多个简单查询来构成复杂查询,以增强SQL查询能力(结构化)。

子查询:

带in或notin,将一个表达式的值与子查询返回的结果集进行比较:

Where表达式[not]in(子查询)

使用exists谓词:

Where[not]exists(子查询)

带exists谓词的子查询不返回查询的结果,只产生真值和假值;

Exists的含义是:

当子查询中有满足条件的数据时,exists返回真值,否则返回假值;

Notexists的含义是:

当子查询中有满足条件的数据时,notexists返回假值;当子查询中不存在满足条件的数据时,notexists返回真值。

带有比较运算符的子查询(单值的比较)

主查询与单值子查询之间用比较运算符进行连接

运算符:

=、>、>=、<、<=、<>

子查询一定要跟在比较符之后

举例:

找出与239501同龄的学生

Select*

FromStudent

Wheresage=(Selectsage

FromStudent

Wheresno=‘239501’)

带有ANY或All谓词的子查询(多值的比较)

主查询与多值子查询之间的比较需用Any、All来连接

Any表示某个,只要有一个即返回真

All表示所有(集合)

可以通过集函数来实现

举例:

找出年龄不是最小的学生

Select*Fromstudent

Wheresage>any(SelectsageFromStudent)

集合查询:

概述:

Select语句的结果是一个元组的集合,多个Select语句的结果可以进行集合操作(Union、Intersect、Minus)

参加集合操作的关系(结果集)必须是相容的

属性个数必须一致

对应的类型必须一致

属性名无关,最后结果集采用第一个结果的属性名

缺省为自动去除重复元组

只能在整个语句的最后使用一次OrderBy

数据库完整性:

(正确性,有效性,相容性,一致性)

目标:

preventgarbageinandgarbageout

完整性类型:

域完整性:

是完整性约束中最主要和最基本的形式.

通过测试插入数据是否符合预先设定的取值范围.

实体完整性(所有非主属性不能取空值):

每条记录的非主属性不能够取空值

参照完整性(删除数据后;插入数据;修改数据):

每一个非空外键的值在主键中必须存在.

实现完整性的方法:

Proceduredataintegrity(过程型数据完整性):

Default(缺省)&Rule(规则)&Trigger(触发器)

Declareddataintegrity(声明型数据完整性):

DefaultConstraint(缺省约束)

CheckConstraint(检查约束)

UniqueConstraint(唯一值约束)

PrimaryKeyConstraint(主键约束)

ReferenceConstraint(参照约束)

数据库完整性保护机制:

DefineConstraintfunction

定义约束条件

ExamineConstraintfunction

检查约束条件

Howtodowhenconstraintsaredisobeyed

违约响应

数据库完整性考虑的问题:

iftheforeignkeycanbenull.

(外键是否能够取空值)

deleterecordsinthetablereferred

(删除引用表中数据记录:

Cascades,Restricted,Nullifies)

Insertrecordsinreferentialtable

(在参照表中插入数据记录:

Restricted,Recursive)

updateprimarykeyinthetablereferred

(修改引用表中主键值:

Cascades,Restricted,Nullifies)

约束:

CreateConstraint

CREATETABLEtable_name

(field_namedatatype

[[CONSTRAINTconstraint_name]

{PRIMARYKEY[CLUSTERED|NONCLUSTERED]

|UNIQUE[CLUSTERED|NONCLUSTERED]

|FOREIGNKEYREFERENCESref_table[(ref_column[,…n])]

|DEFAULTexpression

|CHECK(logical_expressin)

}][……n])

SP_helpconstrainttable_name

Default缺省约束

createtableteacher(Tnochar(4),Tnamechar(6),Tsexchar

(2)constraintdf_sexdefault‘男’)

例:

AltertableteacheraddconstraintDF_sex‘男’forssex

PrimaryKey主键约束

使用SQL语句(create,add,drop)

例1:

createtabledepartment(Dnochar

(2)constraintpk_noprimarykeyclustered,Dnamechar(20))

例2:

createtablesc(snochar(10)notnull,cnochar(4)notnull,constraintkey_scprimarykey(sno,cno))

例3:

Altertabledepartmentdropconstraintpk_no

例4:

Altertabledepartmentaddconstraintprimarykey(Dno)

例:

AltertableteacherdropconstraintDF_sex

Check检查约束

使用对象资源管理器(设计表快捷菜单)

使用SQL语句(create,add,drop)

CREATETABLEtest

(snochar(10),cnochar(4),gradenumeric(5,1)DEFAULT0NULLCONSTRAINTck_gradeCHECK(grade>=0ANDgrade<=100))

Unique唯一值约束

使用SQL语句(create,add,drop)

CREATETABLEstudent

(snochar(10)constraintpk_snoprimarykeyclustered,

snamechar(6)constraintun_snameuniquenonclusterednotnull,smajorchar(16))

ForeignKey(ReferentialIntegrity)外键约束

使用SQL语句(create,add,drop)

CREATETABLEsc

(snochar(10)constraintfk_s_snoforeignkeyreferencesstudent(sno)onupdatecascade,

cnochar(4)constraintfk_c_cnoforeignkeyreferencescourse(sno),gradenumeric(5,1))

缺省:

Default缺省值:

(数据库对象,可重复使用,绑定到多个字段)

Createdefault

使用SQL语句(create,add,drop)

CREATEDEFAULTdefault_nameASconstraint_expression

例:

CREATEDEFAULTdf_sdeptAS‘测绘学院’

Bind&unbinddefault(AffectonInsert)

使用存储过程

SP_BINDEFAULTdefault_name,object_name

SP_UNBINDEFAULTobject_name

例1:

SP_BINDEFAULT‘df_sdept’,‘student.sdept’

例2:

SP_UNBINDEFAULT‘student.sdept’

LookOverdefaultInformation查看缺省信息

使用存储过程

①SP_HELPdefault_name②SP_HELPT例Tdefault_name

Deletedefault删除缺省

使用SQL语句(DROPDEFAULTdefault_name)

SP_UNBINDEFAULT‘student.sdept’

DROPDEFAULTdf_sdept

Rule规则:

CreateRule

使用SQL语句

CREATERULErule_nameAScondition_expression

例:

CREATERULErule_ageAS@value>15and@value<30

Bind&unbindRule(Affectoninsert&update)

使用企业管理器(属性对话框)

使用存储过程

SP_BINDRULErule_name,object_name

SP_UNBINDRULEobject_name

例:

sp_bindrule‘rule_age’,‘student.sage’

例:

sp_unbindrule‘student.sage

LookOverRuleInformation查看规则信息

使用对象资源管理器

使用存储过程

①SP_HELPrule_name②SP_HELPTEXTrule_name

DeleteRule删除规则

适用对象资源管理器(属性对话框)

使用SQL语句(DROPRULErule_name)

SP_UNBINDRULE‘student.sage’

DROPRULErule_sage

触发器:

定义:

Atriggerisaspecialkindofstoredprocedurethatgoesintoeffectwhenyoumodifydatainaspecifiedtableusingoneormoredatamodificationoperations:

UPDATE,INSERT,orDELETE.

Triggersarealsousefulforenforcingreferentialintegrity,whichpreservesthedefinedrelationshipsbetweentableswhenyouadd,update,ordeletetherowsinthosetables.

优点:

1.基于数据表数据修改自动执行

2.可以让数据库相关联的表格数据相应改变

3.可

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1