数据库知识点总结
1、数据(Data)是数据库中存储的基本对象;
2、数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合3、数据库数据具有永久存储、有组织、可共享三个基本特点。
4、数据库管理系统(DatabaseManagementSystem,简称DBMS)是位于用户与操作系统之间的一层数据管理软件。用来科学地组织和存储数据、高效地获取和维护数据。主要具有如下功能:数据定义功能、数据组织、存储和管理、数据操纵功能、数据库的事务管理和运行管理、数据库的建立和维护功能、其他功能。
5、数据库系统(DatabaseSystem,简DBS)是指在计算机系统中引入数据库后的系统构成,由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。5.1、数据库系统的特点:1、数据结构化2、数据的共享性高,冗余度低、易扩充3、数据的独立性高4、数据由DBMS统一管理和控制
6、数据管理技术的发展过程:人工管理阶段>文件系统阶段>数据库系统阶段7、两类数据模型:一、概念模型二、逻辑模型和物理模型8、数据模型的组成要素:数据结构、数据操作、完整性约束
9、实体:客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。
属性:实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
码:唯一标识实体的属性集称为码。可是是一个属性,也可以是一些属性的集合域:属性的取值范围称为该属性的域。
10、关系模型的完整性约束:实体完整性、参照完整性、用户自定义完整性
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性
11、三级模式结构:外模式、模式、内模式12、两级映像:外模式/模式映像模式/内模式映像正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
13、逻辑独立性:用户的应用程序与数据库的逻辑结构是相互独立的,也就是说数据的逻辑结构改变了,用户程序也可以不改变。
14、候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码在最简单的情况下,候选码只包含一个属性。若一个关系有多个候选码,则选定其中一个为主码。主码的诸属性称为主属性。不包含在任何侯选码中的属性称为非码属性
15、基本关系的6条性质:①列是同质的,即每一列中的分量是同一类型的数据,来自同一个域;②不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名③列的顺序无所谓,列的次序可以任意交换④任意两个元组不能完全相同,由笛卡尔积的性质决定⑤行的顺序无所谓,行的次序可以任意交换⑥分量必须取原子值,每一个分量都必须是不可分的数据项
16、关系模式:对关系的描述,静态的、稳定的
关系:关系模式在某一时刻的状态或内容,动态的、随时间不断变化的
17、实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。实体完整性规则规定:基本关系的主码都不取去空值,基本关系的所有主属性都不能取空值。
18、参照完整性规则:关系R的外码的取值,要么为空值,要么等于被参照表中某个元组的主码值。
19、5种基本操作:选择、投影、并、差、笛卡尔积,还有三种:交连接除20、SQL的特点:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提
供两种使用方法、语言简洁,易学易用
21、查询:单表查询、连接查询、嵌套查询、集合查询22、删除时,要先删除参照表(例如SC),再删除被参照表(例如Student)
23、视图的作用:①视图能够简化用户的操作②视图使用户能以多种角度看待同一数据③
视图对重构数据库提供了一定程度的逻辑独立性④视图能够对机密数据提供安全保护⑤适当的利用视图可以更清晰的表达查询
24、SQL中的安全控制机制主要有两个:视图和授权
25、如果X→Y,但YX,则称X→Y是非平凡的函数依赖;若X→Y,但YX,则称
X→Y是平凡的函数依赖26、R的一个分解ρ={R1,R2},具有无损连接性的充分必要条件是:R1∩R2R1-R2∈F+或者R1∩R2R2-R1∈F+
27、逻辑结构设计阶段模式、外模式(视图);物理设计阶段内模式;28、数据库设计的基本步骤:⒈需求分析阶段⒉概念结构设计阶段阶段
⒊逻辑结构设计
⒋数据库物理设计阶段⒌数据库实施阶段⒍数据库运行和维护阶段
29、数据字典的内容:数据项、数据结构、数据流、数据存储、处理过程30、数据抽象的三种抽象:分类、聚集、概括
31、DBMS常用存取方法:索引方法、聚簇方法、HASH方法32、ER图之间的冲突:属性冲突、命名冲突、结构冲突
33、RDBMS查询处理可以分为4个阶段:查询分析、查询检查、查询优化、查询执行34、常用的存取控制方法:自主存取控制、强制存取控制
35、强制存取控制:1、保证更高程度的安全性2不是用户不能直接感知或进行控制3、适用于对数据有严格而固定密级分类的部门36、强制存取控制规则
(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体37、数据库的完整性:数据的正确性和相容性
扩展阅读:数据库知识点总结
题型:
一、选择题(每题1分,共10分)二、简答题:(每题10分,共30分)
三、应用题:(第1题15分,第2题45分,共60分)
考试范围:第一章
1、数据、的定义描述事物的符号记录称为数据。
数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
2、数据库、数据库系统的特点(了解)3、DBMS的功能(了解)
4、实体间联系的三种类型(1:1,1:n,m:n)5、E-R图的画法
a、不必画出中间步骤。b、标出实体间联系的类型。c、只需画出关键字对应的属性。
6、数据库系统的组成、核心7、数据库设计的步骤
第二章认识关系运算符第五章
1、数据库的创建CREATEDATABASE2、创建表CREATETABLE3、数据插入INSERT4、数据修改UPDATE5、数据删除DELETE
第六章
1、相关子查询和非相关子查询之间的区别2、视图的优点(了解)3、数据查询SELECT:
1)内连接2)分组、统计函数3)排序4)非相关子查询
第七章
1、触发器的写法
小结(第一章课件34到56第五章课件64到75
第六章课件(SELECT语句,内连接,分组、统计函数,排序,非相关子查询)重点第七章课件58到71)
数据(DATA,简称D)
定义:描述事物的符号记录称为数据。数据库(DataBase,简称DB)
.定义:是长期储存在计算机内的、有组织的、可共享的数据集合。.特点:
(1)数据库中的数据按照一定的数据模型组织、描述和储存。
(2)具有较小的冗余度。
(3)较高的数据独立性和易扩展性,并可为各种用户共享。数据库管理系统(DBMS)主要功能:
1)数据定义功能:。
2)数据组织、存储和管理功能:3)数据操纵功能:4)数据库的事务管理和运行管理5)数据库的建立和维护功能简答题:
1.相关子查询和非相关子查询之间的区别
a)非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值
传递给外部查询。
b)相关子查询是内层子查询条件依赖于外层父查询的某个属性值的子查询,外部查询
执行一行,子查询就执行一次。2.数据库设计的步骤
1需求分析;2概念结构设计;3逻辑结构设计;4数据库物理设计数据库实施;5数据库运行和维护
3.视图的优点(了解)
(1)为用户集中数据,简化用户的数据查询和处理。(2)屏蔽数据库的复杂性。(3)简化用户权限的管理。(4)便于数据共享。
(5)可以重新组织数据以便输出到其他用程序中。
例5-1创建一个名为BookSys的数据库。例5-2创建一个名为KEJI_DB的数据库。要求有三个文件,其中,主数据文件为10MB,最大大小为50MB,每次增长20%;辅助数据文件属于文件组Fgroup,文件为10MB,大小不受限制,每次增长10%;事务日志文件大小为20MB,最大100MB,每次增长10MB。文件存储在‘c:\\db’路径下。
CREATEDATABASEKEJI_DB/*数据库名*/
ONPRIMARY/*主文件组*/(NAME="KEJI_DB_Data1",/*主文件逻辑名称*/FILENAME="c:\\db\\KEJI_DB_Data1.mdf",/*主文件物理名称*/SIZE=10mb,MAXSIZE=50mb,FILEGROWTH=20%),
FILEGROUPFgroup/*文件组*/(NAME="KEJI_DB_Data2",/*主文件逻辑名称*/FILENAME="c:\\db\\KEJI_DB_Data2.ndf",/*主文件物理名称*/
MAXSIZE=UNLIMITED,/*增长不受限制*/SIZE=10Mb,FILEGROWTH=10mb)LOGON
(NAME="KEJI_DB_Log",/*日志文件逻辑名称*/FILENAME="c:\\db\\KEJI_DB_Log.ldf",
/*日志文件物理名称*/SIZE=20mb,MAXSIZE=100mb,FILEGROWTH=10mb)
使用SQL语句(1)修改数据库内容语法:
ALTERDATABASEdatabase_name{ADDFILE[,…n]
[TOFILEGROUPfilegroup_name]/*在文件组中增加数据文件*/
|ADDLOGFILE[,…n]/*增加事务日志文件*/
|REMOVEFILElogical_file_name/*删除数据文件*/
|ADDFILEGROUPfilegroup_name/*增加文件组*/|REMOVEFILEGROUPfilegroup_name/*删除文件组*/|MODIFYFILE[,…n]
/*修改文件属性*/|MODIFYNAME=new_dbname/*更新数据库名称*/}例:使用触发器判断插入的工资数据,如果工资超过100,000则不允许插入。CREATETABLEtrig_example(idINT,
nameVARCHAR(10),salaryMONEY)GO
CREATETRIGGERinsertrigONtrig_exampleFORINSERTAS
IF(SELECTCOUNT(*)FROMINSERTEDWHEREsalary>100000)>0BEGIN
PRINT"数据插入错误:您试图插入一个大于$100,000的工资数据!"ROLLBACKTRANSACTION--事务回滚END`
1.使用后级触发器的插入和删除
例题:使用(后级)触发器判断插入的工资数据,如果工资超过100,000则不允许插入。CREATETABLEtrig_example(idINT,
nameVARCHAR(10),salaryMONEY)GO
CREATETRIGGERinsertrigONtrig_exampleFORINSERTAS
IF(SELECTCOUNT(*)FROMINSERTEDWHEREsalary>100000)>0BEGIN
PRINT"数据插入错误:您试图插入一个大于$100,000的工资数据!"ROLLBACKTRANSACTION--事务回滚END
练习:使用后级触发器对数据删除操作进行检查,如果删除工资大于5000的记录时提示错误信息,并回滚到删除前的状态。
Insertintotrig_exampleValues(1,"tom",201*)Insertintotrig_exampleValues(2,"marry",6000)Insertintotrig_exampleValues(3,"rose",8000)
CREATETRIGGERdeletedONtrig_exampleFORdeleteAS
IF(SELECTCOUNT(*)FROMdeletedWHEREsalary>100000)>0BEGIN
PRINT"数据插入错误:您试图删除一个大于$100,000的工资数据!"ROLLBACKTRANSACTION--事务回滚END
.使用前级级触发器的插入和删除
1.使用前级触发器判断插入trig_example表的工资数据,如果工资超过100,000则不允许插入。
CREATETRIGGERinsert_trig_exampleONtrig_exampleInsteadofinsertAS
declare@salarymoney
select@salary=salaryfrominsertedIF@salary>1000print"wongdata!"elsebegin
insertintotrig_exampleselect*frominsertedend
2.使用前级触发器对trig_example表的数据删除操作进行检查,如果删除工资大于5000的记录时提示错误信息,不删除记录;否则删除相应记录。
CREATETRIGGERdelete_trig_exampleONtrig_exampleInsteadofdeleteAS
declare@idint,@salarymoneyselect@id=idfromdeletedIF@salary>100000print"删除的数据大于!"elsebegin
deletetrig_examplewhere@id=idend
五、(12分)某商店管理涉及商店、商品和职工三个实体,它们分别具有下列属性:
商店:商店编号,店名,店址,店经理商品:商品编号,商品名,单价,产地职工:职工编号,职工名,性别,工资这些实体间的联系如下:百货公司管辖若干个连锁商店,每家商店经营若干商品,每家商店有若干职工,但每个职工只能服务于一家商店。职工参加某商店工作有开始时间,商店销售商品的有月销售量。①请画出商店、商品和职工的ER图。②将该ER图转换为关系数据模型。
答:实体:商店(商店编号,店号,店址,店经理)(0.5分)商品(商品编号,商品名,单价,产地)(0.5分)职工(职工编号,职工名,性别,工资)(0.5分)联系:P1-商店销售商品的有销售量间(0.5分)P2-职工参加某商店工作的开始时(0.5分)ER图:(5分)wenku_7({"font":{"f5427073f46527d3240ce0b00010007":"宋体","f5427073f46527d3240ce0b000201*7":"宋体"},"style":[{"t":"style","c":[9,13,17,19,20,22,24,25,0],"s":{"font-family":"f5427073f46527d3240ce0b000201*7"}},{"t":"style","c":[0,4,5,7,8,9,10,11,12,13,14,15,16,17,19,20,21,22,23,24,25,1],"s":{"color":"#000000"}},{"t":"style","c":[0,9,13,17,19,20,22,24,25,27,2],"s":{"font-family":"f5427073f46527d3240ce0b000201*7"}},{"t":"style","c":[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,3],"s":{"font-size":"15.84"}},{"t":"style","c":[5,8,12,14,15,21,4],"s":{"font-family":"f5427073f46527d3240ce0b00010007"}},{"t":"style","c":[5],"s":{"letter-spacing":"-0.083"}},{"t":"style","c":[4,5,8,12,14,15,18,21,6],"s":{"font-family":"f5427073f46527d3240ce0b00010007"}},{"t":"style","c":[8,9,7],"s":{"bold":"true"}},{"t":"style","c":[8],"s":{"bold":"true"}},{"t":"style","c":[9],"s":{"bold":"true"}},{"t":"style","c":[14,10],"s":{"letter-spacing":"-0.18"}},{"t":"style","c":[12,13,11],"s":{"letter-spacing":"-0.087"}},{"t":"style","c":[12],"s":{"letter-spacing":"-0.087"}},{"t":"style","c":[13],"s":{"letter-spacing":"-0.087"}},{"t":"style","c":[14],"s":{"letter-spacing":"-0.18"}},{"t":"style","c":[15],"s":{"letter-spacing":"-0.058"}},{"t":"style","c":[15,22,16],"s":{"letter-spacing":"-0.058"}},{"t":"style","c":[17],"s":{"letter-spacing":"-0.045"}},{"t":"style","c":[18],"s":{"letter-spacing":"-0.069"}},{"t":"style","c":[19],"s":{"letter-spacing":"-0.036"}},{"t":"style","c":[20],"s":{"letter-spacing":"-0.039"}},{"t":"style","c":[21],"s":{"letter-spacing":"-0.116"}},{"t":"style","c":[22],"s":{"letter-spacing":"-0.058"}},{"t":"style","c":[24,23],"s":{"letter-spacing":"-0.179"}},{"t":"style","c":[24],"s":{"letter-spacing":"-0.179"}},{"t":"style","c":[25],"s":{"letter-spacing":"-0.043"}},{"t":"style","c":[27,26],"s":{"color":"#0000ff"使用SQL语句将ygqk表的“姓名”列的数据类型改为varchar,长度
为20;
使用SQL语句在xmqk表中添加新列"立项时间",类型为datetime;使用SQL语句删除xmqk表中的"立项时间"列。
useyeelgo
altertableygqk
altercolumnnamevarchar(20)
useyeelgo
altertablexmqk
addlixiangshijiandatetime
useyeelgo
altertablexmqk
dropcolumnlixiangshijian
4.表中数据的修改和删除
使用SQL语句将ygqk表中第一条记录的"邮政编码"改为"450044"删除ygqk表中出生日期在"1960-1-1"日之前的员工信息;
useyeelgo
updateygqk
setzip="450044"
useyeelgo
deleteygqk
wherebirthdayaltertable成绩表add总成绩float
update成绩表
set总成绩=数学+英语+数据库+操作系统/*4*/
altertable成绩表add平均成绩float
update成绩表
set平均成绩=(数学+英语+数据库+操作系统)/4
selectsno学号,(数学+英语+数据库+操作系统)/4平均成绩from成绩表
where数学>=60and英语>=60and数据库>=60and操作系统>=60/*5*/
6.1.4函数的使用练习:
1.查询男生(女生)的人数。2.查询‘计算06’班的最小年龄selectcount(*)fromstudentwheressex="男"
selectmax(sbirthday)fromstudent
6.1.5查询结果排序练习:
1.查询所有学生的信息,将结果按系别降序、班级升序排列。
2.查询‘信息系’年龄最大的3个学生的信息select*
fromstudent
orderbydepartdesc
selecttop3sno,sname,sage,departfromstudent
wheredepart="信息系"orderbysagedesc6.1.6使用分组练习:
1.查询人数大于等于3的班级。2.查询各个姓氏的学生人数。selectclass,count(*)fromstudentgroupbyclasshavingcount(*)>=3
selectleft(sname,1)as姓氏,count(*)as人数fromstudent
groupbyleft(sname,1)6.2.1连接查询
2.查询学生的学号,所选课程的课程号、课程名和学分。
3.查询学生的学号、姓名,所选课程的课程号、课程名和成绩信息。selectsno,score.cno,cname,creditfromcourseinnerjoinscoreonscore.cno=course.cno/*92页题*/
selectsname,student.sno,score.cno,cname,degreefromcourse,score,student
wherestudent.sno=score.snoandscore.cno=course.cno/*92页题*/6.2.1连接查询
3.查询每门课程间接先行课的先行课
selectfrist.cno,frist.cpno,second.cpno,third.cpnofrom课程表frist,课程表second,课程表third
wherefrist.cpno=second.cnoandsecond.cpno=third.cnoandthird.cpnoisnotnull/*109页题*/6.2.3子查询练习:
1.查询选修了‘C语言’的学生学号。selectsnofromscorewherecno=(selectcnofromcourse
wherecname="C语言")/*139页题*/6.2.3子查询
3.查询选修了“C语言”的学生姓名selectsnamefromStudentwheresnoin
(selectsnofromScorewherecno=
(selectcnofromCoursewherecname="c语言"))/*145页第三题*/
友情提示:本文中关于《数据库知识点总结》给出的范例仅供您参考拓展思维使用,数据库知识点总结:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
《数据库知识点总结》
由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
http://m.bsmz.net/gongwen/712495.html
- 上一篇:数据库每章知识点总结