知识点都来自历年真题,根据考察频率标星
目录
C语言
1.%要求必须为整型
2.循环体非0执行(负数和正数都可以执行)
3.二维数组可以不指定行,但列必须指定
转义字符 \
符号 含义 备注 \ddd 1到3位八进制数所代表的字符 例如 \000 = '\0' , 范围是\000 - \377 \xhh 1到2位十六进制数所代表的字符 \0 空字符(NULL)
枚举Enum
enum colors {
RED,
GREEN=10,
BLUE
}
1.默认从0开始,如:RED=0
2.默认升序递增,如:BLUE=11( 因为GREEN=10)
3.enum colors 变量1=RED;
文件
fopen("文件地址", "模式")
fgetc(fp) / fputc(char, fp);
fgets(str,len,fp) / fputs( str , fp)
fscanf(fp, "格式", 被赋值参数列(变长)) / fprintf(fp, const char* format, ...)
fclose(fp)
fseek(fp,offset, 0/1/2)
4.w,a,w+,a+都可以不存在则创建文件
printf
1.默认右对齐,%-d左对齐
2.进制位输出
%d 十进制
%x 小写十六进制 / %X 大写十六进制 / %#x 和 %#X 带0x符号位置
%o 八进制
运算符优先级
赋值运算符( = )< 逻辑运算符(&|)< 关系运算符(<=>!)< 算数运算符 +-*/
三目运算符优先级
多个三目运算符嵌套,从右到左
例如:a > b ?x > y ? m : n : p
等价于 a > b? ( x > y ? m : n ) : p
在这个表达式中,最右边的三目运算符 x>y?m:n 先执行,判断x是否大于y。如果条件 成立,则返回m,否则返回n。然后 a>b? (上一次结果):p,将这个结果与a是否大于b 进行比较。如果条件成立,则返回之前的结果,否则返回p。
位运算
|
&
~ 取反
^ 异或
冒泡排序
> void sort(int arr[], int size){ > int j,i,tem; > for (i = 0; i < size-1;i ++){ > > for (j = 0; j < **size-1 - i**; j++) { > if (arr[j] > arr[j+1]){ > tem = arr[j]; > arr[j] = arr[j+1]; > arr[j+1] = tem; > > } > > } > > } > > }
内存
#include<stdlib.h>
malloc( 大小 )
calloc( 个数, 大小)
realloc(原指针,新大小)
String
#include<string.h>
函数名 | 函数作用 |
---|---|
strrev(str]) | 颠倒字符串 |
strlen(str) | 字符串长度(不包括\0) |
strcpy(to,from) | 字符串的复制(默认从to[0]开始) |
strcat(to,from) | 字符拼接(to改变,from不变) |
strcmp(a,b) | 字符串比较,< 负数, = 0 ,> 正数 |
参数传递方式?
三个
值传递、引用传递、地址传递
什么是全局变量和局部变量?局部变量有哪几种存储类型?
全局变量的定义:所有的函数外部定义的变量,它的作用域是整个程序,也就是所有的源文件,包括.c和.h文件。
局部变量的定义:定义在函数体内部的变量,作用域仅限于函数体内部。
局部变量的存储类型有: auto, static,register。
static的作用
static 全局变量:仅限本模块使用
static 局部变量:函数调用过程值不变
static 函数:仅限本模块使用
数据库
其余知识点
1.数据库应用中,一般一条SQL语句可产生或处理一组记录,而高级程序语言语句一般一次只能处理一条记录,其协调可通过游标实现
下列说法错误的是,视图一经定义就可以和基本表一样被查询和更新
设计关系模式是数据库设计的逻辑结构设计阶段的任务
已知事务T1的封锁序列为:……LOCK S(A), LOCK S(B) , LOCK S(C),…UNLOCK(B),UNLOCK(A),UNLOCK(C)……; 事务T2的封锁序列为:……LOCK S(A),UNLOCK S(A), LOCK S(B),UNLOCKS(B), LOCK S(C),UNLOCK S(C)…; 则遵守两端封锁协议的是(T1)
(T2放锁后就不能再拿锁)
不属于数据库物理结构设计阶段任务的------选用DBMS
判断一个并发调度是否正确,可以用( 可串行化调度 )概念来解决。
若关系模式R∈1NF,对于每一个非平凡的函数依赖X→Y,都有X包含码,则R最高一定可以达到 BCNF
假设两个事务同时存取同一个数据库,当第一个事务结束之前,第二个事务更新数据库,这就违反了事务的 隔离性 ,破坏了DB的一致性。
在模式分解时,为保持原模式的特性,要求分解具有 无损连接性 和 保持函数依赖。
关系模式R中的属性全是主属性,则R的最高范式必定是 3NF
求闭包
求谁写谁
根据映射规则,一一得出结果
示例:已知{ A-> B , C -> D , B-> E , AE -> F}
求( AB )闭包
{ AB } 本身
{ ABE } B->E
{ ABEF } AE->F
最总闭包结果{ ABEF }
all和any比较运算符
!= any : 不等于某一个值
!= all 等价 not in : 不等于任意一个值
空值null
算数运算:任为null
比较运算:结果为unknown
sql结构化语言,非过程化
关系代数基本运算
并、差、笛卡尔积、选择、投影
现实世界抽象模型
第一层抽象:概念模型
第二层抽象:逻辑模型
数据库物理结构设计阶段
数据库大小估算
存储结构设计
存取方式设计
索引设计
分区设计
安全性设计
性能优化
备份和恢复设计
E-R图的常见冲突
1、属性冲突:包括属性域冲突和属性取值单位冲突。
(a).属性域的冲突:指同一属性在不同局部E-R模型中有不同数据类型、取值范围或取值集合。
例如: 学生编号有的是int类型,有些是char类型
(b).属性取值单位冲突:取值单位不同
例如:重量有些是克g,有些是千克kg。
2、命名冲突包括同名异义和异名同义。
(a).同名异义:不同对象有相同名字。
例如: 局部应用A中将教室称为房间,局部应用B将学生宿舍称为房间。
(b).异名同义:同一个对象取了不同名字
例如:有的部门把教科书称为课本,有的部门则把教科书称为教材。
3、结构冲突:
(a).同一对象在不同应用中具有不同的抽象
例如:“课程”在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。
(b).同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同。即:数据结构不同,属性不相同
sql分为四类
数据定义DDL、数据操纵DML、数据查询DQL和数据控制DCL
三大异常
修改异常、插入异常、删除异常
触发器
触发器是用户定义在关系表上的一类由 事件 驱动的特殊过程。
存取控制
自主存取控制和强制存取控制
数据模型的组成
数据结构,数据操作,完整性约束
事务开启
begin transaction
sql.....
commit/rollback transaction
数据库类型按照数据模型划分
视图创建后定义保存在数据库文件中
二段锁协议
1.拿锁
2.放锁
总结:先拿后放,放了就不能拿
三级锁协议
分别解决
1.一级封锁协议解决丢失修改
2.二级封锁协议解决读脏数据
3.三级封锁线协议不可重复读
三级模式和二层映射
外模式:又称子模式或用户模式
概念模式:又称模式
内模式:又称存储模式,对应于物理级
保证数据库逻辑数据独立性的是:外模式——模式映像
保证数据库物理数据独立性是:模式——内模式映像
R÷S
若R
A B C a b c a b d b c e 若S
C c d 则R÷S解法:
列出R的象集合
{a,b} => {c,d} {b,c} =>{e}
象集与S对比
∵ {a,b} =>{c,d} 的结果集在S中都能找到
∴ R÷S={a,b}
笛卡尔积
1.m、n列 => 得到 m+n列
2.m、n行 => 得到m x n 行
简答题
22年之前考,23、24没有简答题了,但简答题的内容变成了填空题
数据库系统的体系结构
单用户结构
主从式结构
分布式结构
客户机/服务器结构
浏览器/服务器结构
什么是数据库日志?作用?⭐️ ⭐️ ⭐️ ⭐️ ⭐️
数据库日志是用来记录事务对数据库的更新操作的文件
作用:进行事务故障恢复和系统故障恢复
协助后备副本进行介质恢复
数据库设计步骤 6 ⭐️ ⭐️ ⭐️ ⭐️ ⭐️ ⭐️
需求分析,概要结构设计,逻辑结构设计,物理结构设计,系统实施,系统维护
数据库安全性保护措施 5(用存审视数)⭐️⭐️⭐️⭐️
用户识别和身份鉴定、存取控制、审计、视图、数据加密
什么是视图?⭐️ ⭐️ ⭐️ ⭐️
视图是从一个或者几个基本表(或视图)导出的表,是一个虚表,只存放视图的定义,不存放视图的数据
优点:
1.简化用户操作
2.使用户能多角度看待同一数据
3.对机密数据进行加密
4.对重构数据库提供了一定程度的l逻辑独立性
死锁⭐️
系统中有两个或两个以上的事务都处于等待状态,并且每个事务都在等待其中另一个事务解除封锁,他才能执行下去,结果造成任务一个事务都无法继续执行,这种现象称为死锁。
死锁预防:
一次加锁法和顺序加锁法
检测是否有死锁:事务依赖图
什么是事务⭐️ ⭐️ ⭐️ ⭐️ ⭐️
事务是数据库的逻辑工作单位,是用户定义的一组操作序列。在关系数据库中,一个事务可以是一组 SQL语句或整个序列。事务常以Begin Transaction开始,以commit或rollback结束。
ACID特性:
原子性(A):事务必须是原子工作单位,对于其数据操作,要么全部执行,要么全不执行。
一致性(C):事务的执行结果必须使数据库从一个一致性状态变到另一个一致性状态。
隔离性(I):一个事务的执行不能被其它事务干扰。
持续性( D ):一旦事务提交成功,其对数据库的更新操作将是永久的,即使数据库发生故障也是如此。
数据字典⭐️
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述。
目的:对数据流图中的各个元素作出详细的说明,使用数据字典为简单的建模项目。
并发控制⭐️ ⭐️ ⭐️ ⭐️
简述:多个事务对数据库进行并发操作时,对数据库实行管理和控制
详述:为了充分利用数据库资源,发挥数据库共享资源的特点,允许多个用户并行地存取数据库。但会存在多个用户并发存取同一数据的情况,这时就需要对事务进行并发控制和管理,防止数据库出现不一致情况。
游标 ⭐️ ⭐️
系统为用户开辟的一个缓冲区,存放sql的执行结果,用户可以用sql逐一从游标中获取数据记录。
采用三级模式结构的优点?
1.保证数据独立性
2.简化用户接口
3.保证数据安全性和加密
4.有利于数据共享
为什么要用nosql数据库?
1.易扩展
2.数据量大,高性能
3.灵活的数据模型
4.高可用
数据恢复?技术?
技术:
数据转储
登记日志文件
索引⭐️⭐️
对数据库表中一列或多列的值进行排序的一种结构
优点:
a)加快查询速度
b)加快表与表之间的连接
c)保证每行数据的唯一性
缺点:
a)创建索引和维护索引都需要耗费时间,这种时间随数据量的增加而增加
b)索引要占用物理空间
c )当对表中的数据进行增加,删除和修改时,索引也要进行动态维护,降低了数据的维护速度
数据库完整性?⭐️ ⭐️ ⭐️
指保护数据库中数据的正确性、有效性、相容性,防止不合语义的数据进入数据库
数据库安全性⭐️ ⭐️
保护数据以防止未经授权或不合法的使用造成的数据泄漏、更改或破坏
数据库完整性约束
包括:
主键约束
外键约束
属性约束
域约束
断言约束
触发器约束
存储过程⭐️ ⭐️ ⭐️ ⭐️
一组为了完成特定功能的sql语句集,经编译后存放在数据库中。用户通过指定存储过程的名字并给出参数来执行他
ER概念模型转换成关系模型的规则?
冷门
数据仓库?⭐️
数据仓库是一个面向主题的,集成的,不可更新,随时间不断变化的数据集合,用以支持企业或组织的决策分析处理
数据分析?⭐️
指从大量的,不完全的,有噪声的,模糊的数据中提取出人们事先不知道的,但对人们有潜在价值的信息和知识的过程。
设计一个完善的数据库应用系统需要注意哪些问题?
1.要满足用户的需求
2..要便于维护和扩充;
3.要具有“可读性”; 4.能够满足空间和效率的要求;
5.好的数据库设计可以简化业务逻辑的设计;