数据库设计规范

1.需求分析阶段,分析客户的业务和数据处理需求

1、基本需求
某学校设计学生教学管理系统。 学生实体包括学号、姓名、性别、生日、民族、籍贯、简历、登记照,每名学生选择一个主修专业, 专业包括专业编号和名称,一个专业可以属于
一个学院,一个学院可以有若干个专业。 学院信息要存储学院号、学院名、院长。教学管理还要管理课程表和学生成绩。 课程表包括课程号、课程名、学分,每门课程由一个学院开设。学生选修的每门课程获得一个成绩。
设计该教学管理的ER模型,然后转化为关系模型。
若上面的管理系统还要管理教师教学安排,教师包括编号、姓名、年龄、职称,一个教师只能属于一个学院,一个教师可以上若干门课程,一门课程由多名老师来上,每个教师所上的每门课程都有一个课堂号和课时数。
首先找出实体:1、学生2、专业3、课程4、学院
四个实体就是四张表。

每个实体下边分别是不同的实体的属性。如:专业的实体,属性为专业号,专业,类别

2.概要设计阶段,设计数据库的ER模型图,确认需求信息的正确和完整

参考设计案例:

 专业实体  学院实体  课程实体 
专业号专业类别学员号学院院长课程号课程名学分
    学生实体    
学号姓名性别生日民族籍贯简历登记时间 
 n学生n主修1专业n 
 成绩选修   设置  
 n课程n开设1学院1 

上图就是教学管理ER模型图
ER模型转化的关系模型是:
学生(学号,姓名,性别,生日,民族,籍贯,专业号,简历)
专业(专业号,专业,专业类别,学员号)
学院(学员号,学院,院长)
课程(课程号,课程名,学分,学院号)
成绩(学号,课程号,成绩)
题目分析:本题中有学生,专业,学院,课程四个实体。一个学生主修一个专业,学生和专业是多对一的关系。一个专业属于一个学院,一个课程也属于一个学院,所以,专业和学院,课程和学院都是多对一的关系。课程和学生是多对多的关系

1对一,只需在其中一张表中添加另一个表的字段id即可

1对多的关系,只需要在多的那类添加一个字段,表示它属于哪一个,如:专业和学生的关系是1对多,所以在学生表中添加一个专业的专业号字段,表示所属的专业

多对多的关系,如:学生和课程是多对多的关系,必须产生一个新的表来记录他们之间的关系。如成绩表中就有学号和课程号

增加老师后的分析:教师和学院是一对多的关系,所以不需要添加新的表,只需要在教师表中添加一个学院号的字段。教师和课程是多对多的关系,所以需要增加一张新表

3、详细设计阶段,将E-R模型转换为多张表,进行逻辑设计,并应用数据库设计的三范式进行审核

指定数据库文件的名称,并为设计好的关系模型设计表结构
字段名类型宽度小数主键/索引参照表约束NULL值
学院号       
学院名称       
院长       
ii上图为学院表的设计

数据库设计三范式原则

1、确保每列的原子性(属性不可分)
如果每列都是不可再分的最小单元则满足该范式
例如:
学号姓名性别年龄手机号 
1111111112344111111
      
手机号这列有两个属性就不符合规范,应该在建一张关于手机号的表
2、要求每张表只描述一件事情,每条记录有唯一的标识列
例如:order表
字段例子
订单标号001
产品编号002
订购日期 
价格 
可以分成两张表:order表,和product表
字段例子
订单编号 
字段例子
产品编号 

3、数据库表中不包含已在其他表中已包含的非主关键字信息

4、代码编写阶段,选择具体数据库进行物理实现

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值