diff --git "a/14 \346\235\216\344\277\212\345\205\264/20230906 \345\244\247\344\272\214\345\255\246\344\271\240\347\233\256\346\240\207.md" "b/14 \346\235\216\344\277\212\345\205\264/20230906 \345\244\247\344\272\214\345\255\246\344\271\240\347\233\256\346\240\207.md" new file mode 100644 index 0000000000000000000000000000000000000000..21d1fba8ff65fc151d5eef9cbf3def8f017114e8 --- /dev/null +++ "b/14 \346\235\216\344\277\212\345\205\264/20230906 \345\244\247\344\272\214\345\255\246\344\271\240\347\233\256\346\240\207.md" @@ -0,0 +1,32 @@ +### 大二学习目标 + +大二更加讲究实际应用也就是实操,难度会比大一更加困难 + +大一更多的是理论 + +##### 大二上学期 学习目标 + +1. 数据库高级 (MySQL) +2. JavaScript (Ajax) +3. MVC 框架 (Maven,spring,springMvc,Mybatis)java经典框架 俗称SSM + +##### 大二下学期 学习目标 + +1. node.js +2. vue.js 简化开发 有UI框架配合 +3. springboot (Redis,webAPI) + +node.js 和 vue.js 属于前端 + +##### 实训 + +1. Linux 服务器: Nginx,MongoDB +2. 项目中可能实现的技术: 中间件、鉴别权限 +3. 如果时间允许 小程序 + +**技术栈:** + 一个项目具体要求用什么技术实现,可以称为技术选型 也就是选方案 + +**技能树** + 我们所拥有的技能,可以称之为技能树 + diff --git "a/14 \346\235\216\344\277\212\345\205\264/20230907 \346\225\260\346\215\256\345\272\223\351\253\230\347\272\247\347\254\254\344\270\200\350\212\202\350\257\276 E-R\345\233\276.md" "b/14 \346\235\216\344\277\212\345\205\264/20230907 \346\225\260\346\215\256\345\272\223\351\253\230\347\272\247\347\254\254\344\270\200\350\212\202\350\257\276 E-R\345\233\276.md" new file mode 100644 index 0000000000000000000000000000000000000000..63bf7585695ed0d80ffbadd6e715b0dfdfc3c0c2 --- /dev/null +++ "b/14 \346\235\216\344\277\212\345\205\264/20230907 \346\225\260\346\215\256\345\272\223\351\253\230\347\272\247\347\254\254\344\270\200\350\212\202\350\257\276 E-R\345\233\276.md" @@ -0,0 +1,148 @@ +### 数据库高级(0907) + +主要讲了数据库设计的前菜的前菜 数据库设计 + +**数据库设计** + +又分为六个阶段 + +1. 需求分析 +2. 概念结构设计 +3. 逻辑结构设计 +4. 物理结构设计 +5. 数据库实施 +6. 数据库运行和维护 + +需求分析和概念结构设计独立于任何数据库管理系统,逻辑结构设计和物理结构设计与选用的数据库管理系统密切相关。 + +#### E-R模型 + +描述概念模型的工具:E-R模型 + +**实体之间的联系** + +(1)两个实体型之间的联系 + +1. 一对一 + 将其中任一表主键,放到另一表当外键 + 如果对于实体集 A 中的每一个实体,实体集 B 中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集 A 与实体集 B 具有一对一联系,记为 1:1。 + 如:学校里一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联系。 +2. 一对多 + 将一所在表的主键,放到多的表当外键 + 如果对于实体集 A 中的每一个实体,实体集 B 中有 n 个实体( n⩾0 )与之联系,反之,对于实体集 B 中的每一个实体,实体集 A 中至多只有一个实体与之联系,则称实体集 A 与实体集 B 有一对多联系,记为 1:n。 + 如: 一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。 +3. 多对多 + 必须有第三张表,作中转表,将前面两个表主键放进来当外键 + 如果对于实体集 A 中的每一个实体,实体集 B 中有 n 个实体(n⩾0 )与之联系,反之,对于实体集 B 中的每一个实体,实体集 A 中也有 m 个实体(m⩾0 )与之联系,则称实体集 A 与实体集 B 具有多对多联系,记为 m:n。 + 如:一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生之间具有多对多联系。 + +(2)两个及以上实体之间的关系 + +一般的来说,两个以上的实体之间也存在着一对一、一对多、多对多的联系 + +##### E-R图 + +​ E-R图 有三大要素:**实体、属性、关系** + +(1). 实体型:用矩形表示,矩形框内写明实体名 也可以通俗点理解MySQL当中的表 + +(2). 属性:用椭圆形表示,并用无向变将其与相应的实体型连接起来 可以理解成MySQL表当中的字段 + +(3). 联系用菱形表示,菱形框内写明联系名,用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1、1:n 或 m:n)。 类似于外键约束 + +E-R图 : + +​ ![image-20230907093523576](D:\库\数据库高级\database-advanced\14 李俊兴\image-20230907093523576.png) + +~~~MySQL +CREATE DATABASE school CHARSET utf8; +use school; +-- 院系表 +CREATE TABLE faculty( + d_id INT PRIMARY KEY, + d_name VARCHAR(255) +); +INSERT INTO faculty VALUES + (1,'软件工程学院'); +-- 专业表 +CREATE TABLE specialty( + S_id int PRIMARY KEY, + S_name VARCHAR(255), + d_id int, + FOREIGN KEY (d_id) REFERENCES faculty(d_id) +); +INSERT INTO specialty VALUES + (1,'软件技术',1); +-- 班级表 +CREATE TABLE class( + C_id INT PRIMARY KEY, + C_name VARCHAR(20), + grade VARCHAR(5), + s_id INT, + FOREIGN KEY (s_id) REFERENCES specialty(s_id) +); +INSERT INTO class VALUES + (1,'软件技术1班','22级',1), + (2,'软件技术2班','22级',1), + (3,'软件技术7班','22级',1), + (4,'软件技术9班','22级',1); +-- 课程 +CREATE TABLE course( + couseId int PRIMARY key, + courseName varchar(10), + c_id int, + r_id int, + foreign key (c_id) references class(C_id), + foreign key (r_id) references classroom(r_id) +); +insert into course VALUES + (1,'Java',1,1), + (2,'MySQL',2,2); +-- 教室 +create table classroom( + r_id int PRIMARY KEY, + r_name varchar(10) +); + insert into classroom values +(1,'实训一'), +(2,'实训二'); +-- 课程表 +create table `select` ( + selectId int primary key, + couseId int, + time varchar(20), + t_id int, + r_id int, + foreign key (couseId) references course(couseId), + foreign key (t_id) references teacher(t_id), + foreign key (r_id) references classroom(r_id) +); +insert into `select` values +(1,1,'周一8:00-11:40',2,1), +(2,2,'周一14:00-17:40',1,2); +-- 教师 +create table teacher( + t_id int primary key, + t_name varchar(10), + couseId int, + foreign key (couseId) references course(couseId) +); +insert into teacher values +(1,'丘丘',1), +(2,'黑马pink',2); +-- 学生 +CREATE TABLE student ( + stu_name VARCHAR(25), + stu_id INT PRIMARY KEY, + C_id INT, + select_id INT, + foreign key (C_id) references class(C_id), + FOREIGN KEY (select_id) REFERENCES `select`(selectId) +); +INSERT INTO student VALUES + ('王影',17,1,1), + ('程舜',52,2,2), + ('李陈毅',49,3,1), + ('李文璐',22,4,1); +~~~ + diff --git "a/14 \346\235\216\344\277\212\345\205\264/image-20230907093523576.png" "b/14 \346\235\216\344\277\212\345\205\264/image-20230907093523576.png" new file mode 100644 index 0000000000000000000000000000000000000000..09e39a7b7587056a8ba9bc845b26da9ad911ec36 Binary files /dev/null and "b/14 \346\235\216\344\277\212\345\205\264/image-20230907093523576.png" differ