diff --git "a/08 \345\256\230\346\226\207\350\257\232/20230907 \346\225\260\346\215\256\345\272\223\350\214\203\345\274\217.md" "b/08 \345\256\230\346\226\207\350\257\232/20230907 \346\225\260\346\215\256\345\272\223\350\214\203\345\274\217.md" new file mode 100644 index 0000000000000000000000000000000000000000..5b98fd6cf5323a7d6bae4e3455477ce0ed0c28f9 --- /dev/null +++ "b/08 \345\256\230\346\226\207\350\257\232/20230907 \346\225\260\346\215\256\345\272\223\350\214\203\345\274\217.md" @@ -0,0 +1,95 @@ +# 数据库的范式 + +第一范式:要求字段的内容,不可再分割为保证数据的原子性 + +第二范式:要求在满足第一范式的基础上 要求非主键字段要完全依赖主键(非主键要依赖整个联合主键)而不能只依赖部分 + +第三范式:满足第二范式的前提下 要求非主键属性要直接依赖于主键 + +~~~ sql +# 建库 +CREATE DATABASE school charset utf8; +# 选库 +use school; +# 院系表 +CREATE TABLE college( +co_id int PRIMARY KEY auto_increment, +co_name VARCHAR(20) +); +# 专业表 +CREATE TABLE major( +ma_id int PRIMARY KEY auto_increment, +ma_name VARCHAR(20), +ma_intor VARCHAR(255), +co_id int, +FOREIGN KEY(co_id) REFERENCES college(co_id) +); +# 班级表 +CREATE TABLE clazz( +cl_id int PRIMARY KEY auto_increment, +cl_name VARCHAR(20), +cl_grade int, +ma_id int, +FOREIGN KEY(ma_id) REFERENCES major(ma_id) +); +# 学生表 +CREATE TABLE student( +st_id int PRIMARY KEY auto_increment, +st_name VARCHAR(20), +st_age int, +st_address VARCHAR(20), +st_gender char(1), +cl_id int, +FOREIGN KEY(cl_id) REFERENCES clazz(cl_id) +); + +# 老师表 +CREATE TABLE teacher( +te_id int PRIMARY KEY auto_increment, +te_name VARCHAR(20), +te_age int, +te_address VARCHAR(20), +te_gender char(1) +); + + +# 课程信息表 +CREATE TABLE coures( +ce_id int PRIMARY KEY auto_increment, +ce_name VARCHAR(20), +te_id int, +FOREIGN KEY(te_id) REFERENCES teacher(te_id) +); + +# 选修(成绩)表 +CREATE TABLE elective( +el_score DOUBLE, +ce_id int, +st_id int, +FOREIGN KEY(ce_id) REFERENCES coures(ce_id), +FOREIGN KEY(st_id) REFERENCES student(st_id) +); + +#教室表 + +CREATE TABLE classroom( +room_id int PRIMARY KEY auto_increment, +room_name int, +room_address VARCHAR(20) +); + +#课程表 +CREATE TABLE curriculum( +cm_id int PRIMARY KEY auto_increment, +cm_name VARCHAR(10), +room_id int, -- 教室主键 +FOREIGN KEY(room_id) REFERENCES classroom(room_id), +te_id int, -- 老师主键 +FOREIGN KEY(te_id) REFERENCES teacher(te_id), +ce_id int, -- 课程信息表主键 +FOREIGN KEY(ce_id) REFERENCES coures(ce_id), +cl_id int, -- 班级表主键 +FOREIGN KEY(cl_id) REFERENCES clazz(cl_id) +); +~~~ +