diff --git "a/53 \345\276\220\345\205\210\351\221\253/2023.09.07 ER\345\233\276\347\232\204\350\256\276\350\256\241\344\270\216\345\210\233\345\272\223.md" "b/53 \345\276\220\345\205\210\351\221\253/2023.09.07 ER\345\233\276\347\232\204\350\256\276\350\256\241\344\270\216\345\210\233\345\272\223.md" new file mode 100644 index 0000000000000000000000000000000000000000..38c8797bd6b847e2b33176984f928700db2ab82e --- /dev/null +++ "b/53 \345\276\220\345\205\210\351\221\253/2023.09.07 ER\345\233\276\347\232\204\350\256\276\350\256\241\344\270\216\345\210\233\345\272\223.md" @@ -0,0 +1,95 @@ +2023年9月7日 + +星期四 + +今日收获: + +数据库设计的三大范式: + +范式一:每个属性字段要求不可再分割,也就要求有原子性。 + +范式二:满足第一范式的基础上要求非主键字段要完全依赖主键(有联合主键是,非主键要同时完全依赖这两个主键,而不能部份依赖)。 + +范式三:在满足第二范式的基础上上,要求非主键字段要直接依赖主键。 + +```sql +CREATE DATABASE school CHARSET utf8; +USE school; +CREATE TABLE academy ( + a_id INT PRIMARY KEY, -- 学院编号 + a_name VARCHAR ( 20 ), -- 学院名称 + address VARCHAR ( 20 ) -- 学院地址 +); +INSERT INTO academy(a_id,a_name,_address) VALUES + (1,'软件工程学院','望云楼'), + (2,'艺术学院','岩声楼'), + (3,'信息工程学院','辛耕楼'); + +CREATE TABLE specialized ( + s_id INT PRIMARY KEY, -- 专业编号 + s_name VARCHAR ( 20 ), -- 专业名称 + a_id INT UNIQUE, -- 学院编号 + FOREIGN KEY ( a_id ) REFERENCES academy ( a_id ) + ); + INSERT INTO specialized(s_id, s_name, a_id) +VALUES + ( 1, '前端', '1'), + ( 2, '后端', '2'), + ( 3, '新媒体','3'); + + + +CREATE TABLE Clazz ( + c_id INT PRIMARY KEY, -- 班级编号 + c_name VARCHAR ( 20 ), -- 班级名称 + s_id INT, -- 专业编号 + FOREIGN KEY ( s_id ) REFERENCES specialized ( s_id ) + ); + +INSERT into Clazz (c_id,c_name,s_id) VALUES +(1,'软件技术1班',1), +(2,'软件技术2班',1), +(3,'软件技术3班',1), +(4,'软件技术4班',1); + +CREATE TABLE student( + st_id int PRIMARY key ,-- 学生编号 + st_name VARCHAR(20),-- 学生姓名 + st_sex varchar(10),-- 学生性别 + c_id int , -- 班级编号 + FOREIGN KEY (c_id) REFERENCES Clazz(c_id) + ); + INSERT into student (st_id,st_name,st_sex,c_id) VALUES +(1,'黎俊洋','女',1), +(2,'韩灰灰','男',2), +(3,'刘毛毛','女',3), +(4,'王白白','男',4); + + +CREATE TABLE coursev( + co_id int PRIMARY key,-- 课程编号 + co_name VARCHAR(20),-- 课程名称 + co_address VARCHAR(20),-- 课程地址 + st_id int ,-- 学生编号 + FOREIGN key (st_id) REFERENCES student(st_id) + ); + + CREATE TABLE teacher( +tid int PRIMARY key ,##老师编号 +tname VARCHAR(10),## 老师姓名 +a_id int ,##学院编号 +co_id int , +FOREIGN key (co_id) REFERENCES coursev(co_id) +); +INSERT into teacher (tid,tname,a_id) VALUES +(1,'aa',1), +(2,'qq',1), +(3,'ww',1); + + + + + +``` + +