mysql
数据类型
整数:INT 4字节 BIGINT 8字节
浮点数:FLOAT 4字节 DOUBLE 8字节 DECIMAL(M,L) L表示小数几个
日期与时间类型:
DATETIME 8字节 格式YYYY-MM-DD HH:MM:SS
TIMESTAMP 4字节 格式同上
DATE和TIME 就是DATETIME的拆分,前后对应。
Q:
数据库引擎
事务的隔离级别
sql语句
增
删
改
查
多表查询
连接 join 左右连接 内外连接
数据库设计
1.一个重要的概念:什么是函数依赖?
一个属性或者一组属性能决定/确定另一个属性的值(这TM就是函数依赖),就称这2者有函数依赖的关系,后者函数依赖于前者。
比如:学号能决定学生的年龄,姓名,班级等等,可以说学号能决定其他属性的值,或者说其他属性的值是函数依赖于学号的。 属性之间的这种依赖关系就称为函数依赖。
函数依赖一种最基本的数据依赖。函数依赖FD在一般数据库设计中是最重要的
可以这样理解:若在一张表中,在属性(或属性组)X的值确定的情况下,必定能确定属性Y的值,那么就可以说Y函数依赖于X,写作 X → Y。也就是说,在数据表中,不存在任意两条记录,它们在X属性(或属性组)上的值相同,而在Y属性上的值不同。
第二种数据依赖:多值依赖(比较少,数据库设计不用)
一个值,决定一组值。比如一个老师就上2门课。
2.完全和部分函数依赖
对于 A->B,如果能找到 A 的真子集 A’,使得 A’-> B,那么 A->B 就是部分函数依赖,否则就是完全函数依赖。 对于 A->B,B->C,则 A->C 是一个传递函数依赖。
3.码:
候选码简称码。通常可以理解为:假如当 K 确定的情况下,该表除 K 之外的所有属性的值也就随之确定,那么 K 就是码。一张表中可以有超过一个码。(实际应用中为了方便,通常选择其中的一个码作为主码) 码可以是多个属性构成。
4.非主属性:
包含在任何一个码中的属性称为为主属性
5.四种异常
- 冗余
- 插入异常:例如想要插入一个学生的信息,如果这个学生还没选课,那么就无法插入。
- 修改异常:修改了一个记录(行)中的信息,但是另一个记录中相同的信息却没有被修改。
- 删除异常: 删除学生的信息 连系的信息也没了、
范式
1.第一范式:属性不可再分。
2.第二范式:每个非主属性完全函数依赖于码(码是2个属性的例子,学生和课程名) 可以通过分解来满足。
3.第三范式:非主属性不传递函数依赖于键码。 进一步分解
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!