数据库设计,根据下面的叙述:应该设计哪些表?都有什么字段?

上周,我的朋友从事数据库设计。
他表示,每个表的主要功能都列出来了,其他功能还需要根据需求补充。
例如,模型指标非常抽象,看起来像多对多的关系。
因此,他至少设计了三个表格:
指标表:
指针 ID(主键)
指针名称
指标说明
指示器类型
型号表:
模型 ID(主键)
型号名称
型号详情
型号版本
型号指示灯对应表:
指针ID
模型ID(复合主键)
学生和课程也是多对多的关系,所以设计了:
Users表:
用户 ID(主键)
用户名
密码
权限(学生、教师、管理员、学术人员)
课程表:
课程 ID(主键)
课程名称
课程简介
打开教师ID(外键)
选课表:
用户ID
课程ID(复合主键)
对于教师和课程来说,他们说有相同的一致关系,所以他们将教师的用户ID作为外键添加到课程表中。

然后是样品管理。
描述不是很清楚,不过好像和型号一一对应:
样表:
示例 ID(主键)
样本详情
型号ID(外键)
第三部分是评估表:
评估表1 :
评论 ID(主键)
用户 ID(外键)
考核内容
考核表2 :
评论 ID
型号 ID(复合主键)
评测资料
朋友说的比较清楚了。
这取决于你。

深入了解数据库设计的三范式

上周我读了一篇关于数据库范例的文章。

非常详细。
这是非常清楚的。

第一范式是列原子性。
这很容易理解。

例如学生课桌。
有一个电话区。
保存两个数字。
那是行不通的。

撕碎它。
家庭电话。
手机。
没关系
第二个范式是消除一些依赖关系。
这个有点复杂。

联合主键。
非主键列不能仅依赖于主键的一部分。

例如,学生成绩单。
主键是学生 ID 和课程 ID。

但课程名称仅取决于课程 ID。
这是行不通的。

分成两个表。
评分表。
课程。

第三范式是消除传递依赖。
这个就比较高级了。

非主键列之间不能有依赖关系。
需要直接依赖主键。

例如员工表。
有员工 ID。
姓名。
部门。
系主任。

部门领导取决于各自的部门。
这会创建传递依赖。

撕碎它。
办公桌。
科室办公桌。

这三种范式有很多优点。

数据一致性。
更新不会有问题。

可维护性高。
轻松修改数据。

查询性能也得到了优化。
因为数据并不冗余。

应考虑实际应用建议。

三种范式是理想的模型。
不需要每次都严格使用。

有时它可以被非规范化。
添加一点额外的。

提问会更快。
这取决于具体情况。

首先满足1 NF。
然后逐渐达到2 NF。
3 NF。

从一开始就不要让设计太复杂。

您可以使用工具。
就像 PowerDesigner 一样。

验证范例。
避免错误。

总体而言。
三重范式是设计数据库的好方法。

但这不是唯一的方法。
最好灵活一点。

算了。
由你决定。

数据库中创建一个学生表

结论:SQL语法错误,许多缺失值。

建立数据库和表: sql 创建数据库zxl; USE zxl;
创建表学生表( 学生代码 CHAR(1 2 ) PRIMARY KEY, CHAR(6 ) 名称不为空, 性别 CHAR(2 ) CHECK(性别 IN(“男”、“女”)), 类 CHAR(1 5 ) );
创建记分卡表( 学生代码 CHAR(1 2 ) REFERENCES 学生表(学生代码), 课程代码 CHAR(2 ) 参考资料 课程表(课程代码), 默认智力分数 3 0, 主键(学生代码、课程代码) );
创建课程表( 课程代码 CHAR(2 ) PRIMARY KEY, 课程名称 CHAR(2 0), 信用检查(信用 >= 1 且信用 <= 5 ) );
插入数据: sql INSERT INTO学生表VALUES('2 02 1 1 001 ','张三','男','特艺计划1 1 1 1 '); INSERT INTO学生表VALUES('2 02 1 1 002 ','李思','女','专项艺术计划1 1 1 1 '); INSERT INTO 转录值 ('2 02 1 1 001 ', '01 ', 1 00); INSERT INTO 转录值 ('2 02 1 1 001 ', '02 ', 9 9 ); INSERT INTO 转录值 ('2 02 1 1 002 ', '03 ', 8 8 ); INSERT INTO 课程表值 ('01 ', '数据库系统', 3 ); INSERT INTO 课程表值 ('02 ', 'vb.net', 4 ); INSERT INTO 课程值 ('03 ', 'java', 4 );
查询: sql 从成绩单中选择; SELECT 姓名、课程名称、成绩 FROM 学生表、课程表、成绩表 WHERE 学生表.学生代码 = 班级表.学生代码 AND 课程表.课程代码 = 班级表.课程代码 ORDER BY 分数 DESC;
选择 AVG(score) 作为平均分数,MAX(score) 作为最高分数,MIN(score) 作为最低分数 来自成绩单 学生 ID WHERE = '2 02 1 1 001 ';
简答题: 1 . DBA职责:管理数据库、维护性能、确保安全、优化设计。
2 、视图功能:查询简单,数据逻辑独立,安全控制。
3 .完整性:数据准确、约束。
安全:访问控制、加密保护。
4 . SQL特点:统一接口、非过程化、数据定义操作。
5 .数据字典:元数据、约束、视图定义、用户权限。
6 、基本表:实际存储数据的表。
请参阅:虚拟表、查询结果集。
联系:基于基表的视图。
7 . DBMS功能:数据定义、数据操作、数据控制、数据库管理。
8 . 备份与恢复:防止数据丢失并从错误中恢复。
原因:硬件损坏、操作错误。
9 .事务:原子操作单元。
作用:保证数据的一致性。
语法:开始交易; ...提交/回滚; 1 0. 一对一:每个部门一名员工。
一对多:一个部门的多名员工。
多对多:一个课程有多个学生,一个学生有多个课程。
1 1 、并发问题:错误读、不可重复读、虚拟读。
解决方案:锁定机制、事务隔离级别。
1 2 . 日志文件:记录交易活动。
恢复过程:重做未完成的事务并撤消已发送的事务。
1 3 .完整性约束:实体完整性、属性参照完整性、用户定义完整性。
1 4 、开发阶段:人工管理、文件系统、数据库系统。
1 5 、设计阶段:需求分析、概念设计、逻辑设计、物理设计、实现和运行。
1 6 、分解: sql R1 (学生代码、姓名、部门) F1 ={学生代码→姓名、学生代码→部门} R2 (部门,部门负责人) F2 ={部门→部门负责人} R3 (学号,课程号,班级) F3 ={学号,课程号→班级
1 7 .事务:原子操作单元。
特点:原子性、一致性、隔离性、持久性。
1 8 . 1 NF:属性值的原子性。
2 NF:非主属性完全依赖于主键。
3 NF:非主属性不过度依赖主键。
1 9 . 1 :1 :一位客户,一个帐户。
1 :M:一个部门有很多员工。
M:N:一门课程有很多学生。