diff --git "a/50 \345\274\240\350\265\267\347\221\236/20230907 \346\225\260\346\215\256\345\272\223\350\214\203\345\274\217.md" "b/50 \345\274\240\350\265\267\347\221\236/20230907 \346\225\260\346\215\256\345\272\223\350\214\203\345\274\217.md" new file mode 100644 index 0000000000000000000000000000000000000000..c7e8136401b41a1548a5486a253bf789b0b637e3 --- /dev/null +++ "b/50 \345\274\240\350\265\267\347\221\236/20230907 \346\225\260\346\215\256\345\272\223\350\214\203\345\274\217.md" @@ -0,0 +1,95 @@ +### 第一范式: + +要求字段的内容,不可再分割,为的是保证数据的原子性 + +例:姓名,省份、城市、区具、地址址 +### 第二范式: + +要求在满足第一范式的基础上,要求非主键字投要完全依赖主健(非主键雪完全依赖整个联合主键,而不只很赖部分) + +例:小明的存在,必须贾依父亲和母亲的存在 +### 第三范式: + +满足第二范式的前提下,要求非主键属性要有接依赖于主键 + +示例:儿子依赖爸爸,爸爸依赖爷爷。其中儿子与爷爷属于间接依赖,则不属于第三范式。 +## 数据库设计步聚 + +1.需求分析(实体分析),再进行属性分析 +2.夯析Visio图 +3.在mysql建表 + +```JAVA +create database school charset utf8; +use school; +##学院 +create table college( + co_id int PRIMARY key auto_increment, + co_name varchar(10) UNIQUE key not null +); +##专业 +create table major( + ma_id int PRIMARY key auto_increment, + ma_name varchar(10) UNIQUE key not null, + co_id int, + foreign key (co_id) references college(co_id) +); +##班级 +CREATE TABLE clase( + cl_id int PRIMARY key auto_increment, + cl_name varchar(10) UNIQUE key not null, + ma_id int, + foreign key (ma_id) references major(ma_id) +); +##学生 +CREATE TABLE student( + stu_id int PRIMARY key auto_increment, + stu_name varchar(10) UNIQUE key not null, + stu_sex varchar(4), + cl_id int, + foreign key (cl_id) references clase(cl_id) +); +##课程 +CREATE TABLE course( + co_id int PRIMARY key auto_increment, + co_name varchar(10) UNIQUE key not null +); +##课程 +CREATE TABLE score( + sc_id int PRIMARY key auto_increment, + sc_grade double(3,1), + stu_id int, + foreign key (stu_id) references student(stu_id), + co_id int, + foreign key (co_id) references course(co_id) +); +##教室 +CREATE TABLE room( + ro_id int PRIMARY key auto_increment, + ro_name varchar(10) UNIQUE key not null, + co_id int, + foreign key (co_id) references course(co_id) +); +##老师 +CREATE TABLE teacher( + tea_id int PRIMARY key auto_increment, + tea_name varchar(10) UNIQUE key not null, + tea_sex varchar(4), + ro_id int, + foreign key (ro_id) references room(ro_id) +); +##课程表 +CREATE TABLE timeroom( + tim_id int PRIMARY key auto_increment, + tim_class VARCHAR(10), + cl_id int, + FOREIGN key (cl_id) REFERENCES clase(cl_id), + co_id int, + FOREIGN key (co_id) REFERENCES course(co_id), + ro_id int, + FOREIGN key (ro_id) REFERENCES room(ro_id), + tea_id int, + FOREIGN key (tea_id) REFERENCES teacher(tea_id) +); +``` +