首页 > 编程知识 正文

学校管理系统数据库设计(access数据库是什么型数据库)

时间:2023-05-04 11:58:28 阅读:73624 作者:1270

MySQL数据库--学生管理系统的数据库设计

目录

学生管理系统数据库设计

学生管理系统的功能介绍

数据库设计步骤

步骤:寻找对方

步骤:查找属性

步骤:查找关系

场面话遵守原则

要查找步骤4:特例:等级明确且不包含敏感数据的信息,建议保留在一张表中

遵循数据库设计的三种范式

总结:数据库设计遵循的原则[重点]

学生管理系统数据库设计

要设计一组数据库,首先需要了解当前系统具有哪些功能,以及具体的业务流程是什么

学生管理系统的功能介绍

学校学生管理系统的核心功能是:

学生信息管理(增加学生、删除学生、修改学生、查询学生信息==简称: CURD ) )。

老师信息管理(CURD ) )。

课程信息管理系统(CURD ) )。

成绩信息管理系统(CURD )。

违纪信息管理(CURD )。

活动信息管理(CURD ) ) ) ) ) ) )。

物资/设备信息管理(CURD ) )。

等待.

要完成上述所有功能,必须处理有关上述对象的信息。 上述对象的信息可以固定格式保存在数据库中!

数据库设计的第一步是找到与业务相关的中心对象,物体/对象类型信息固定存储在一张表中。

概念

对象:生活中的一种物体,在程序中称为对象

属性:物体的名词和形容词的记述是对象的属性

数据库设计步骤

数据库设计的三个主要步骤:

1 .寻找对方

2 .查找属性

3 .寻找关系

步骤:寻找对方

分析系统业务中的中心对象

学生对象----学生表(student ) )。

老师对象----老师表(teacher ) ) )。

课程对象----课程体系(course ) )。

成绩对象----成绩单(score ) )。

类对象----类表(前缀_class、user和class等英语单词是程序中的关键字,所以尽量不直接使用) )。

等待.

注意:有些隐式对象可能不熟悉业务,因此找不到。 例如:学生邀请函对象、事件对象等。 因此,在进行数据库设计之前,请务必整理系统功能和业务流程。 当然,泄露的对象可以根据需要补充。 数据库设计一步也没有。

步骤:查找属性

属性概念:物体/对象的名词或形容词的记述.学名为“属性”,各属性对应表中的一列!

学生对象(student ) :唯一标识符、学号名称、性别、年龄、生日、电话

老师对象(teacher ) :唯一标识符、姓名、性别、年龄、电话

课程对象(course ) :唯一标识符id、课程名称、开课时间、课时数

类对象(tbl_class ) :唯一标识符id、类名、人数

成绩对象(score ) : id,分数,课程名称)可以直接引用课程号码),学生名称)可以直接引用学生号码)。

对象的每个属性都对应于表中的每一列

为了避免数据冗馀(重复),请使用学生id和课程id代替名称!

电脑中存储的数据严格区分了各种类型! 年龄:整数int,名字:字符串; char/varchar/string

步骤:查找关系

表与表的关系为:1----n(1 (一对多)或n----1)多对一)或1-1 )一对一)或n----n (多对多)

1-N或1-1或N-1:由主键和外键表示

N-N :多对多时,必须用一个中间表(关系表)来实现

例如,商品和订单表是N--N

商品(id、产品编号、名称、数量、价格)

(订单(id、订单编号、用户名) id、总额、总数量() ) ) ) ) ) ) ) ) ) ) )。

独立的中间表/关系表(保存其他两个表的主键引用(idpid )商品编号(oid )订单编号) 1P001D001

2P002D001

3P003D001

4P001D002

5P001D003

6P002D002

#查订单D001上买的所有商品!

select * from表名where oid='D001 '

#商品P001点了几次?

看着select * from表名wherepid='p001'#:d001买了几件商品!

selectsum(num ) fromguanxi_product_order

whereoid='D001 '

建造和保护钟表

原则

对象分析出来后就可以建表了, 一般建表时遵循的原则如下.

建表规则

1. 同一类的对象信息存储在 1 张表中!

2. 对象的每个属性对应表中的每个列!

3. 列有具体的数据类型

int: 整数

小数: float/doube

日期: date.datetime

字符串: char/varchar

4. 每个表中必须有主键列!

唯一区分一个行的列就交主键列(可以多个)

规则: 为了避免没有主键习惯于添加一个虚拟的主键 id(自增)

5. 添加约束(限制条件)

主键: primary key --->特点: 唯一

自增: auto_increment----> 自动增长

默认值: default ----->性别默认为男!

非空: not null--------> 必须有数据

唯一: unique---->不能重复

外键 (参考) foreign key:------> 成绩表中存班级 id, 课程 id,

第 4 步: 找特例: 等级明显而且不包含敏感数据的信息建议保持为 1 张表

比如: 地区表 和 员工表id(地区编号)namecodepcode 父编号1北京11

2山东37

3济南370137

4青岛370237

5海淀110111

6房山110211

-- 所有省

select * from area where pcode is null

-- 山东省所有的市selectcodefromareawherename='山东'

select*fromareawherepcode=37

select*fromareawherepcode=(

selectcodefromareawherename='山东'

)

遵循数据库设计三大范式

第一范式: 原子性

根据业务需要保证表中的每个列不可再拆分. 比如: 简单存储学生信息地址列就够用了. 但是电商类网站地址需要拆分为省, 市, 县, 乡, 村

第二范式: 相关性

保证表中的每个列都和主键相关, 只要满足一类物体的信息保存在 1 张表中, 就满足第二范式

第三范式: 直接相关性

这个一般用于多个列联合作为主键的中间表, 其他列必须和每个组件直接相关, 而不能只和某一个列有关系.

参考: https://www.cnblogs.com/knowledgesea/p/3667395.html

总结: 数据库设计遵循的原则[重点]

前提: 熟悉项目的业务流程!

一类对象信息保存张表中

表中必须有主键列(为了防止没有主键习惯添加虚拟主键列 id,id 一般设置为自增)

添加约束保证数据完整性

主键

唯一

自增

非空

外键(实现 1-N)

默认值

多对对必须独立一个关系表

注意: 等级明显并且无敏感信息的数据可以通过自关联实现!

遵守: 数据库设计三大范式(三大原则)

来源: http://www.bubuko.com/infodetail-3219193.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。