资源描述
1:数据:描述事物的符号记录
2:数据库是长期存储在计算机内,有组织可共享的大量数据的集合。
3:数据库管理系统维语用户和操作系统之间的一层数据管理软件,具有,数据定义,数据组织管理,数据操纵,数据库事务管理和运营管理,数据库建立和维护。
4:数据库系统:计算机系统引入数据库后的系统,简称数据库。
5:数据管理技术3阶段:人工管理阶段:数据不保存,应用程序管理数据,数据不共享,数据不具有独立性。文献管理阶段:数据可以长期保存,文献系统管理数据,数据共享性差冗余大,数据独立性差。数据库系统阶段:数据结构化,数据共享性好,冗余低,易扩充,独立性高。
6:数据模型分为:第一类:概念模型。第二类是逻辑模型和物理模型,逻辑模型有(层次模型,网状模型,关系模型,面向对象模型,对象关系模型),物理模型:对数据最低层的抽象,描述数据库在系统内部的表达方式和存取方式。从现实世界到概念模型的转换是由数据库设计人员完毕,从概念模型到逻辑模型转换由数据库设计人员和工具完毕,逻辑模型到物理模型就由DBMS完毕。
7:数据模型由:数据结构(描述数据库对象和对象之间的关系),数据操作(对数据库中各对象的操作的集合),完整性约束(数据和其联系所具有的制约)三部分组成。
9:层次模型:简朴清楚,查询效率高,良好的完整性支持,但是和现实世界不符,查询子女必须通过双亲。网状模型:更直接的表达现实世界,存取效率高,但是结构复杂。关系模型:简历在严格的数学模型上。概念单一,简朴易懂,存取途径对用户透明,高独立性,保密性,但是查询效率不高。
10:数据库三级模式结构:外模式,模式,内模式,外模式有多个,就是视图的意思,模式就是数据的逻辑结构,内模式就是物理结构。
11:三级结构有两层映像:外模式/模式映像:修改此映像保证外模式不变,保证逻辑路理性,模式/内模式映像,修改此映像保证模式不变,保证物理独立性。
12:数据库系统由数据库,数据库管理系统,应用系统和数据库管理员构成。
13:关系数据库:候选码:某一列的值能唯一标记一个元组。主码:候选码之一。候选码们的属性称为主属性,
14:实体完整性:主码不为空。参照完整性:关系的外码一定为其他关系的主码,或者外码所有为空。用户定义完整性:比如XX不能为空,XX只能取指定值。
15:SQL 结构化查询语言
16:查询:select。定义:create,drop,alter。操纵:insert,update,delete。控制:grant,revoke。
17: 为用户wang创建一个数据库,
Create schema ST authorization wang;
18:删除数据库
Drop schema ST cascade/restrict
Cascade 把表都删了。
Restrict 假如下属有表,就拒绝删除
19:创建表
Create table student.course
( cno char(4) primary key,
Foreign key cpno references course(cno)
)
Create table student.course
( sno char(9),
Cno char(4),
Primary key (sno,cno),
)
20:在student表中增长一列,入学时间。
Alter table student add entrance char(20);
21:把student表中的的年龄改为整形
Alter table student alter column sage int;
22:在student增长课程名唯一的约束条件
Alter table course add unique(cname);
23:删除表
Drop table student restrict/cascade
24:建立索引
Create unique index scon on sc(sno ASC,cno DESC)
Unique 表白每一个索引值相应唯一数据记录
25:删除索引
Drop index scon
26:查询
Select sno,sname from student
27:表达式查询
Select sname,2023-sage from student;
28:赋值查询
Select sname,‘A’, lower(sdept) from student
29:消除查询结果中的反复行
Select distinct sno from sc;
30:where
Select sname from student where sdept=’CS’
31:大小
Select sname from student where sage<20
32:介于
Select sname from student where sage between 20 and 23;
Select sname from student where sage not between 20 and 23;
33:在
Select sname from student where sdept in( ‘CS’,’MA’,’IS’)
Select sname from student where sdept not in( ‘CS’,’MA’,’IS’)
34:字符匹配
Select sname from student where sname like ‘刘%’
Select sname from student where sname like ‘刘__’
35:转义字符
Select cno from course where cname like ‘DB\_Design’ escape ‘\’
36:空
Select sno from SC where grade is null (不能用=)
37:排序
Select sno,grade from sc where cno=’3’ order by grade desc
38:数学函数
Select count(*) from student
Select avg(Grade) from sc where cno=’1’
39:group by
Select cno,count(sno) from sc group by cno
40:分组时的where
要用数学函数的值作为判断条件的时候
Select sno from sc group by sno having count(*)>3
41:等值连接
Select student.*,sc.* From student,sc Where student.sno=sc.sno
类似双重for循环,一方面拿student.sno中的第一个依次和sc.sno中的比,只要相同的,就放进来,一直比完,假如sc.sno中有3项,那么放进结果表的就有3项。这3项相应同一个student.sno。
42:自身连接
Select o,second.cpno
From course first,course second
Where first.cpno=o
43:左外连接
Select student.sno,sname,ssex,sage,sdept,cno.grade
From student left out join sc on (student.sno=sc.sno)
就是显示出student所有的行,即便行不等于sc.sno
44:复合条件连接
Select student.sno,sname,cname,grade
From student,sc,course
Where student.sno=sc.sno and o=o
45:嵌套查询
Select sname from student where sno in
(select sno from sc where cno=’2’)
46:ANY ALL
Select sname ,sage from student where sage <any
(select sage from student where sdept=’CS’)
And sdept<>’CS’
ANY是某一个,这个是找出其他专业中比计科专业某一个学生年龄小的,是拿计算机专业中最大的年龄来比。
假如是ALL,就是比计算机专业中任何一个学生都小的,是拿计算机专业中最小的来比
47:exists
Select sname from student where exists
(select * from sc where sno=student.sno and cno=’1’)
一方面在student中取一个元组,然后取出这元组的sno,和SC依依对比过去,得出结果集,再满足cno=’1’的条件,假如都满足了。返回值为1,加入结果集。
48:集合 Union intersect except
Select * from student where sdept=’cs’
Union
Select * from student where sage <=19
49:插入数据
Insert into sc(sno,cno) values(‘’,’1’)
Insert into sc values(‘’,’1’,NULL)
不能不写
50:求。并存入数据库
Insert into dept_age(sdept,avg_age)(dept_age表要先创建)
Select sdept,avg(sage) from student group by sdept
51:ubdate
Update student
Set sage=22
Where sno=’’
52:删除数据
Delete from student where sno=’’
53:创建视图
Create view is_student AS select sno,sname,sage
From student where sdept=’IS’
With check option
(以后视图修改增长数据的时候,都会判断where条件)
Create view S_G(sno,Gavg) As
Select sno,avg(grade) from sc group by sno;
54:删除视图
Drop view IS cascade
55:对视图的更新 最终还是要转换为对表的更新
56:有些视图不能更新,比如视图有一项是各科平均成绩,这项不能映射回基本表,就不能更新。
57:视图的作用:简化用户操作,用户多角度看待同一数据,提供逻辑独立性,提供数据安全保护。
58:授权
Grant all privileges on table student to public
Grant update(sno),select on table student to U4
59:收回授权
Revoke update(sno) on table student from U4
60:创建用户
Create user U1 dba/resource/connect
默认 connect 只能登陆数据库
Resource 可以创建表和视图,
Dba 可以创建新用户,模式、
61:check
Create table student Sno char(9) primary key,
Sname char(9) not null
Ssex char(2) check(ssex in(‘男’,‘女’))
Sage smallint. Sdept char(20));
62:函数依赖:一个x就可以拟定一个y,一对一。
62:第一范式:每个分量必须是不可分的数据项。
第二范式:每一个非主属性完全函数依赖于主码。比如主码由ab两个属性构成,而c属性只用一个a就可以拟定,就是不完全依赖,不属于第二范式
第三范式:每个非主属性不部分依赖于码,也不传递依赖于码。传递依赖就是, 比如主码由ab两个属性构成,a属性可以推出c属性,而c属性可以推出d属性,则a属性可以推出d属性,这就是传递依赖,事实上也是一个部分依赖。
BCNF:没有任何属性完全函数依赖于非码的任何一组属性。
63:数据库设计:需求分析,概念结构设计(对用户需求进行综合归纳抽象),逻辑结构设计(把概念结构的ER图转换为某个DBMS所支持的数据模型),物理结构设计(为逻辑设计选一个最适合应用环境的物理结构),数据库实行(建立数据库,数据入库,试运营),数据库运营和维护。
64:需求分析用数据字典,概念设计用ER图,逻辑设计用表。
65:物理设计,拟定数据库的存取方法和存储结构,存取方法一般是索引,哈希和聚簇。大多用B+树索引。
66:故障有:事物内部故障(事务在运营至终点前被终止,通过日记文献恢复,从尾开始扫描,执行逆操作),系统故障(也通过日记文献,从头开始扫描,重做),介质故障(硬故障,通过数据库备份恢复),计算机病毒。
67:恢复技术:数据转储,登记日记文献。
68:并发带来的问题:丢失修改(同时向一个数据写),不可反复读(T1读取某数据后T2对其进行修改,导致再读就不行了),读脏数据(读到不对的的数据)
69:写锁(排它锁,x锁),事务T对数据加x锁,就只允许T读取和修改数据,其他所不可以。
共享锁(读锁,s锁),事务T对数据加s锁,就只允许T读取但不能修改数据,其他事物也只能读不能修改。
70:活锁:T2要用数据,T1再用,于是等待,这时候T3来了。T1用完给T3用,T2又等待,解决这种锁采用先来先服务策略。
死锁的解法:一次封锁法:是个事务执行前吧所有需要的数据都加锁。顺序封锁法:对每个数据对象设定一个封锁的顺序。
展开阅读全文