diff --git "a/39 \351\203\255\346\202\246\350\277\216/20230907 \346\225\260\346\215\256\345\272\223\350\256\276\350\256\2412.md" "b/39 \351\203\255\346\202\246\350\277\216/20230907 \346\225\260\346\215\256\345\272\223\350\256\276\350\256\2412.md" new file mode 100644 index 0000000000000000000000000000000000000000..2cbaddf449c4bf068034868d79fdefc7f2fdda49 --- /dev/null +++ "b/39 \351\203\255\346\202\246\350\277\216/20230907 \346\225\260\346\215\256\345\272\223\350\256\276\350\256\2412.md" @@ -0,0 +1,97 @@ +## 数据库的范式 + +### 1、第一范式:要求字段的内容,不可分割,为的是保证数据的原则性 + +### 2、第二范式:要求在满足第一范式的基础上,要求非主键字段要完全依赖主键(非主键,要依赖整个联合主键),而不能只依赖部分 + +e.g. 小明的存在(不能单独存在),是依赖小明爸爸的存在,还得依赖小明妈妈存在 + +### 3、第三范式:满足第二范式的前提上,要求,非主键属性要直接依赖于主键 + +------ + +### 作业 + +```mysql +-- 创建数据库 +create database schoolsystem charset utf8; + +-- 使用数据库 +use schoolsystem; + +-- 学院表 +create table college( + col_id int primary key, + col_name varchar(10), + col_tel varchar(11) +); + + +-- 专业表 +create table major( + m_id int primary key, + m_name varchar(10), + col_id int, + foreign key (col_id) references college(col_id) +); + + +-- 班级表 +create table class( + cla_id int primary key, + cla_name varchar(10), + m_id int, + foreign key (m_id) references major(m_id) +); + + +-- 学生表 +create table student( + stu_id int primary key, + stu_name varchar(10), + stu_gender varchar(1), + stu_age int, + cla_id int, + foreign key (cla_id) references class(cla_id) +); + +-- 课程信息表 +create table course( + cou_id int primary key, + cou_name varchar(10), + stu_id int, + foreign key (stu_id) references student(stu_id) +); + +-- 教师表 +create table teacher( + t_id int primary key, + t_name varchar(5), + cou_id int, + foreign key (cou_id) references course(cou_id) +); + +-- 教室表 +create table classroom( + csr_id int primary key, + csr_name varchar(10), + csr_address varchar(10), + cou_id int, + foreign key (cou_id) references course(cou_id) +); + +-- 课程表 +create table timetable( + tt_week varchar(3), + tt_time int, + cla_id int, # 班级编号 + foreign key (cla_id) references class(cla_id), + stu_id int, # 学生编号 + foreign key (stu_id) references student(stu_id), + cou_id int, # 课程编号 + foreign key (cou_id) references course(cou_id), + t_id int, # 教师编号 + foreign key (t_id) references teacher(t_id) +); +``` +