本文共 4872 字,大约阅读时间需要 16 分钟。
在一个为期两周的时间里进行了一次完整的数据库设计的过程,不敢说自己有多大进步,获得多少知识,但起码了解了以后项目开发所需要数据库创建的基本内容。这次设计中有许多是老师一次次的实验课所讲内容的总结,还有自己没有接触的知识也通过查询资料学了,收获很大。 在这分享给博主们,有问题可以指出!!!!
3.2设计总的E-R图 根据需求分析,可以知道各个实体之间存在一定的联系。 3.2.1定义联系集及属性 1)选题(selecttitle):它是题目实体集和学生实体集的一对多联系集,属性:题目编号(tno)、学号(sno)、教师编号(teano)、指导(wish)、指导情况(admission)等。 2)出题(settitle):它是教师实体集与题目实体集之间的一对多联系集。无属性。 3)指导(guidance):它是教师实体集与学生实体集的一对多的联系集。无属性。 4)包含(include):它是班级实体集与学生实体集的一对多的联系集。无属性。 5)拥有(hold):它是班级实体集与学生实体集的一对多的联系集。无属性。 6)属于(belong):它是学院实体集与教师实体集的一对多的联系集。无属性。 7)设置(establish):它是学院实体集与专业实体集的一对多的联系集。无属性。 8)权限设置:用户(user):账号(uno)、登陆密码(password)、姓名(uname)、身份(id)等。 3.2.2全局E-R图
4逻辑结构设计 逻辑结构设计是将概念结构转换为某个 DBMS 所支持的数据模型,并对其进行优化。((下划线加粗代表主码,斜体加粗代表外码 ) 4.1 E-R图转换关系模式 (1)学生student(sno,sname,sex,birthday,native,nation,cno);分析student关系模式得函数依赖关系为:sno->{sname,sex,birthday,native,nation,cno}满足BCNF范式。 (2)教师teacher(teano,teaname,sex,degree,ino);分析teacher关系模式得函数依赖关系为:teano->{teaname,sex,degree,ino}满足BCNF范式。 (3)班级class(cno,cname,mno)分析class关系模式得函数依赖关系为:cno->{cname,mno}满足BCNF范式。 (4)专业major(mno,mname,ino);分析major关系模式得函数依赖关系为:mno->{mname,ino}满足BCNF范式。 (5)学院institute(ino,iname);分析institute关系模式得函数依赖关系为:ino->{iname}满足BCNF范式。 (6)题目title(tno,tname,requ,pop,teano);分析title关系模式得函数依赖关系为:tno->{tname,requ,pop,teano},满足BCNF范式。 5、数据库物理设计与实施 为上一阶段的关系模型选取一个最适合的应用要求的物理结构,即确定存取方法和存储结构。在实际问题中最常用的存取方法是索引,使用索引可以大大减少数据的查询时间。而存储结构的方式是访问尽量在同一个磁盘上。 5.1 创建数据库
5.2建立和管理基本表 5.2.1建立基本表 学生student(sno,sname,sex,birthday,native,nation,cno) 教师teacher表:(teano,teaname,sex,degree,ino) 班级class表:(cno,cname,mon) 专业major表:(mon,mname,ino) 学院institute表:(ino,iname) 题目title表:(tno,tname,requ,pop,teano) 管理员manager表:(mano,maname,sex,pho) 选题selecttitle表:(tno,sno,teano,wish,admission) 用户user表:(uno,password,uname,id) 5.2.2 管理基本表 有时候应用环境和应用需求的改变,我们需要修改已经建立好的基本表的模式结构或者更新已经插入的数据。Mysql语句采用ALTER TABLE<>语句修改基本表的结构,利用DROP<>子句删除基本表,利用UPDATE更新已经插入的数据。ALTER TABLE语句以修改基本表的名字,增加新列或者增加新的完整性约束条件,修改原有列的定义,包括修改列名和数据类型等。DEOP子句用于删除指定的完整性约束条件。UPDATE用于把插入表的数据更新改变。 如下例子: Eg1:把class表名改为stu_class表名: Eg2:把class表中的cname的长度由20改为长度为30: 5.3 建立和管理视图 5.3.1 建立视图 数据库中的视图是常用的数据对象,它用于定义数据库某类用户的外模式。通过创建视图,可以限制不同的用户查看不同的信息,屏蔽用户不关心的或者不因你该看到的信息。 视图是从一个会多个基本表中导出来的表,它与基本表不同,是一个虚表,其数据不单度保存在一个基本文件中,任然保存在导出视图的基本标文件中,任然保存在导出视图的基本表中,数据库系统中只保存视图的定义,视图一经定义,就和基本表一样,可以关系,可以进行基本的操作如查询、删除等。 Eg1:为籍贯是河南的学生建立视图: 5.3.2 管理视图 Eg1:将视图中的武松的性别改成女: Eg2:查询视图性别是女的姓名: 6 访问数据库 6.1 数据添加 class表数据如下: institute表数据如下: major表数据如下: manager表数据如下: selecttitle表数据如下: student表数据如下: teacher表数据如下: title表数据如下: user表数据如下: 6.2 数据查询 数据查询是数据库的核心操作,select语句进行数据库查询,该语句具有灵活的使用方式和功能。 Eg1:查询学生的基本信息及期望的指导老师: Eg2:查询教师的基本信息及题目: Eg3:查询用户的姓名、性别、籍贯及密码: 6.3数据跟新 Eg1:把student表中的武松性别改为男,出生日趋为2000-1-1,籍贯改为山东: 更新完如下:7 数据库维护 数据库维护包括许多内容,包括用户权限的设置、数据库完整性维护、数据库的备份、表的备份、日志备份等。 7.1备份数据库 1)完整备份:备份整个数据库的所有内容,包括事务日志。该备份类型需要比较大的存储空间来存储备份文件,备份时间也比较长,在还原数据的时候也需要一个备份文件。 2)差异备份:它是完整备份的补充,差异备份只备份上次完整备份后更改的数据。由于差异备份数据量小、备份的速度也快,所以数据库管理员经常采用的是一次完整性备份之后,进行多次差异备份。 3)备份截图:
7.2创建触发器 触发器是数据库中一种确保数据完整性的方法,同时也是DBMS执行特殊类型的存储过程,触发器都定义在基本表上,每个基本操作可以为插入、删除、修改3种操作定义触发器,即insert触发器、update触发器、delete触发器,对于这些基本的操作保证不会破坏数据的完整性。 为institute创建触发器stu_on_institute,保存的表为stu_institute: 1)创建触发器之前为空:
3)在institute新插入的数据就会自动触发保存到stu_institute中:
转载地址:http://drxzi.baihongyu.com/