diff --git "a/29 \350\267\257\347\216\262/20230905 \347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.md" "b/29 \350\267\257\347\216\262/20230905 \345\244\264\350\204\221\351\243\216\346\232\264.md" similarity index 100% rename from "29 \350\267\257\347\216\262/20230905 \347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.md" rename to "29 \350\267\257\347\216\262/20230905 \345\244\264\350\204\221\351\243\216\346\232\264.md" diff --git "a/29 \350\267\257\347\216\262/20230906 \345\244\264\350\204\221\351\243\216\346\232\264\346\234\200\347\273\210\347\211\210.md" "b/29 \350\267\257\347\216\262/20230906 \345\244\264\350\204\221\351\243\216\346\232\264\346\234\200\347\273\210\347\211\210.md" new file mode 100644 index 0000000000000000000000000000000000000000..c2975e2d2847235da4d9b5d65932a3eb350a9d75 --- /dev/null +++ "b/29 \350\267\257\347\216\262/20230906 \345\244\264\350\204\221\351\243\216\346\232\264\346\234\200\347\273\210\347\211\210.md" @@ -0,0 +1,190 @@ +# 笔记 + +### 第一范式: + +要求字段的内容,不可再分割,为的是保证数据的原子性 + +例:姓名,省份、城市、区具、地址址 +### 第二范式: + +要求在满足第一范式的基础上,要求非主键字投要完全依赖主健(非主键雪完全依赖整个联合主键,而不只很赖部分) + +例:小明的存在,公须贾依父亲和母亲的存在 +### 第三范式: + +满足第二范式的前提下,要求非主键属性要有接依赖于主键 + +示例:儿子依赖爸爸,爸爸依赖爷爷。其中儿子与爷爷属于间接依赖,则不属于第三范式,学生表中建议不要写专业,院级系,将他们分开写,否则将很难修改,还占内存 +## 数据库设计步聚 + +1.需求分析(实体分析),再进行属性分析 +2.夯析Visio图 +3.在mysql建表 + +# 作业 + + + +```mysql +-- 建立数据库 +create database brainstorming charset utf8; +-- 使用数据库 +use brainstorming; + + +-- 院系 +create table department( +de_id int primary key auto_increment, +de_name varchar(10) not null +); + +-- 添加数据 +insert into department values +(1,'软件工程学院'), +(2,'信息工程学院'), +(3,'智能制造学院'), +(4,'旅游管理学院'); + + +-- 专业 +create table major( +ma_id int primary key auto_increment, +ma_name varchar(10) not null, +de_id int,-- 学院编号 +foreign key (de_id) references department(de_id) +); + +insert into major values +(1,'前端',1), +(2,'后端',1), +(3,'新媒体',1), +(4,'管理',2); + + +-- 班级 +create table clazz( +cl_id int primary key auto_increment, +cl_name varchar(10) not null, +ma_id int ,-- 专业主键 +foreign key (ma_id) references major(ma_id) +); + +-- 添加数据 +insert into clazz VALUES +(1,'1班',1), +(2,'2班',1), +(3,'3班',3), +(4,'4班',2); + + +-- 学生 +create table student( +stu_id int primary key auto_increment, +stu_name varchar(10) not null, +sex enum('男','女'), +address varchar(50) not null, +de_id int ,-- 学院 +foreign key (de_id) references department(de_id), +ma_id int ,-- 专业 +foreign key (ma_id) references major(ma_id), +cl_id int ,-- 班级 +foreign key (cl_id) references clazz(cl_id) +); + + +-- 添加信息 +insert into student values +(1,'杨梅','女','北京',1,2,1), +(2,'露露','女','北京',1,4,3), +(3,'揭阳丽','女','花园宝宝',1,2,2), +(4,'罗云熙','男','云南',2,2,1); + + +-- 课程信息表 +create table course( +c_id int primary key auto_increment, +c_name varchar(10) not null +); + +-- 添加信息 +insert into course VALUES +(1,'java'), +(2,'html'), +(3,'mysql'), +(4,'css'); + +-- 老师表 +create table teacher( +t_id int primary key auto_increment, +t_name varchar(10) not null, +c_id int ,-- 课程 +foreign key (c_id) references course(c_id) +); + +-- 添加数据 +insert into teacher VALUES +(1,'张三',1), +(2,'丽思',2), +(3,'王五',3), +(4,'李二',4); + + +-- 选修表 +create table elective( +e_id int primary key auto_increment, +grade double(4,2) not null, +c_id int ,-- 课程信息编号 +foreign key (c_id) references course(c_id), +stu_id int ,-- 学生编号 +foreign key (stu_id) references student(stu_id) +); + + +-- 添加信息 +insert into elective values +(1,80,2,1), +(2,75.5,1,2), +(3,90,2,3), +(4,50,3,4); + + +-- 教室 +create table classroom( +cr_id int primary key auto_increment, +cr_name varchar(10) not null +); + + +-- 添加信息 +insert into course VALUES +(101,'实训1'), +(204,'实训2'), +(303,'实训3'), +(404,'实训4'); + + +-- 课程表 +create table timetable( +ti_id int primary key auto_increment, +ti_time varchar(5) not null, +cl_id int ,-- 班级 +foreign key (cl_id) references clazz(cl_id), +t_id int ,-- 老师 +foreign key (t_id) references teacher(t_id), +cr_id int ,-- 教室 +foreign key (cr_id) references classroom(cr_id), +c_id int ,-- 课程信息 +foreign key (c_id) references course(c_id) +); + + +-- 添加信息 +insert into timetable values +(1,'星期一',1,1,101,1), +(2,'星期二',2,2,204,2), +(3,'星期三',3,3,303,3), +(4,'星期四',4,4,404,4); + +- +``` +