第五章一个数据库应用系统的 设计与实现 5.1应用背景与需求说明 5,2数据库设让 5,3数据库开发环境 ·5.4创建数据库 5.5创建数据库应用程序 ·5,6网终环境下的数据库应用规划
• 5.1 应用背景与需求说明 • 5.2 数据库设计 • 5.3 数据库开发环境 • 5.4 创建数据库 • 5.5 创建数据库应用程序 • 5.6 网络环境下的数据库应用规划 第五章 一个数据库应用系统的 设计与实现
5.1应用背景与需求说明 应用背景与需求说明 需产生的报表有 在单机上实现一个教学管理系统的例 每学期开学时要生成学生修课情况表,内容 子,并且可以很容易地把它移植到C/S包括学号、姓名、课程名、修课类别,其中 结构中,只涉及教学管理中的对学生 修课类别分为必修、选修、重修。 课程和教师的管理部分: 每学期结束时要生成学生修课成绩表,内容 项目的具体要求是: 包括学号、姓名、课程名、修课类别、平时 运行环境是 Windows2000操作系统 成绩、卷面成绩、总评成绩 数据库的前端开发环境是VB5.0。 生成教师授课服务表,内容包括教师号、教 师名、课程名、授课类别、学时数、班数, 门课程可由多名教师来讲授。 授课类别分为主讲、辅导、带实验。 个教师可讲授多门课程 安全性要求 一个学生可以选修多门课程。 本门课程的主讲教师才具有对其所讲授 课程的成绩的修改权,教学秘书和系主 任才有修改教师授课服务表中的内容的 权力。其它人只有查询有关信息的权力 思考:1。需求分析(信息、处理、安全、完整)
• 应用背景与需求说明 在单机上实现一个教学管理系统的例 子,并且可以很容易地把它移植到C/S 结构中,只涉及教学管理中的对学生、 课程和教师的管理部分: 项目的具体要求是: · .运行环境是Windows 2000 操作系统, 数据库的前端开发环境是VB 5.0。 · 一门课程可由多名教师来讲授。 · 一个教师可讲授多门课程。 · 一个学生可以选修多门课程。 • 需产生的报表有 – .每学期开学时要生成学生修课情况表,内容 包括学号、姓名、课程名、修课类别,其中 修课类别分为必修、选修、重修。 – .每学期结束时要生成学生修课成绩表,内容 包括学号、姓名、课程名、修课类别、平时 成绩、卷面成绩、总评成绩。 – 生成教师授课服务表,内容包括教师号、教 师名、课程名、授课类别、学时数、班数, 授课类别分为主讲、辅导、带实验。 • 安全性要求 – 本门课程的主讲教师才具有对其所讲授 课程的成绩的修改权,教学秘书和系主 任才有修改教师授课服务表中的内容的 权力。其它人只有查询有关信息的权力。 思考:1。需求分析(信息、处理、安全、完整) 5.1 应用背景与需求说明
5.2数据库设计 521概念设计 核心活动是系统中的其它活动都是围绕这个活动展开的或与此活动是密切相关的活动 确定系统的核心活动:对现实系统分析的关键 该教学管理系统中,核心活动就是授课,学生与课程之间是通过授课发生联系的,教 师与课程之间是通过教师授课发生联系的。系统所包含的实体 课程号、课程名、课程:元素为由一个主讲教师负责且教学内容相同的教学活动 讲授学期、学时数 单位,用课程号来标识此实体。 号、姓名、系、 学生:元素为一个学生,由学号来标识 专业、班级 教师:元素为一个教师,由教师号来标识。 师号、教师名 系、教研室 思考:初步E一R图: 学生Lm 修课 课程 m 授课 教师
5.2 数据库设计 • 5.2.1 概念设计 • 核心活动:是系统中的其它活动都是围绕这个活动展开的或与此活动是密切相关的活动 • 确定系统的核心活动:对现实系统分析的关键 • 该教学管理系统中,核心活动就是授课,学生与课程之间是通过授课发生联系的,教 师与课程之间是通过教师授课发生联系的。系统所包含的实体: 课程:元素为由一个主讲教师负责且教学内容相同的教学活动 单位,用课程号来标识此实体。 学生:元素为一个学生,由学号来标识。 教师:元素为一个教师,由教师号来标识。 思考:初步E-R图: 学生 修课 课程 授课 教师 m n m n 课程号、课程名、 讲授学期、学时数 学号、姓名、系、 专业、班级 教师号、教师名、 系、教研室
52.2设计关系模式 设计基本关系模式主要就是从E一R图出发,将其直接转 换为关系模式 思考:此E一R图的关系模式为: 学生LⅢ 修课 课程 授课 教师 (1)课程(课程号,课程名,讲授学期,学时数),主码为课程号 (2)学生(学号、姓名、系、专业、班),主码为学号 (3)教师(教师号、教师名、系、教研室),主码为教师号。 (4)修课(学号,课程号,修课类别,平时成绩,卷面成绩,总评成绩),主码为 (学号,课程号) (5)授课(课程号,教师号,授课类别,班数),主码为(课程号,教师号)
• 5.2.2 设计关系模式 设计基本关系模式主要就是从E-R图出发,将其直接转 换为关系模式。 (1)课程(课程号,课程名,讲授学期,学时数),主码为课程号。 (2)学生(学号、姓名、系、专业、班),主码为学号。 (3)教师(教师号、教师名、系、教研室),主码为教师号。 (4)修课(学号,课程号,修课类别,平时成绩,卷面成绩,总评成绩),主码为 (学号,课程号) (5)授课(课程号,教师号,授课类别,班数),主码为(课程号,教师号)。 思考:此E-R图的关系模式为: 学生 修课 课程 授课 教师 m n m n
52.2设计关系模式 确定表中各属性的详细信息 (1)课程表 (4)修课表 课程号:字符串型,10字节,主码 学号:字符串型,10字节,主码,学生表的外码 课程名:字符串型,20字节,非空 课程号:字符串型,10字节,主码,课程表的外码 讲授学期:字符串型,2字节,非空 学时数:整型,非空 修课类别:字符串型,4字节,非空 (2)学生表 平时成绩:浮点型,大于等于0,小于等于100 学号:字符串型,10字节,主码 卷面成绩:浮点型,大于等于0,小于等于100 姓名:字符串型,20字节,非空 总评成绩:浮点型,大于等于0,小于等于100 系:字符串型,20字节,非空 (5)授课表 专业:字符串型,20字节,非空 课程号:字符串型,10字节,主码,课程表的外码 班:字符串型,10字节,非空 教师号:字符串型,10字节,主码,教师表的外码 (3)教师表 授课类别:字符串型,10字节 教师号:字符串型,10字节,主码班数:浮点型,大于0。假设选修课有半个班的情 教师名:字符串型,20字节,非空 况,因此取浮点型。 系:字符串型,20字节 教研室:字符串型,10字节
5.2.2 设计关系模式 确定表中各属性的详细信息 (1)课程表 课程号:字符串型,10字节,主码 课程名:字符串型,20字节,非空 讲授学期:字符串型,2字节,非空 学时数:整型,非空 (2) 学生表 学号:字符串型,10字节,主码 姓名:字符串型,20字节,非空 系:字符串型,20字节,非空 专业:字符串型,20字节,非空 班:字符串型,10字节,非空 (3) 教师表 教师号:字符串型,10字节,主码 教师名:字符串型,20字节,非空 系:字符串型,20字节 教研室:字符串型,10字节 (4) 修课表 学号:字符串型,10字节,主码,学生表的外码 课程号:字符串型,10字节,主码,课程表的外码 修课类别:字符串型,4字节,非空 平时成绩:浮点型,大于等于0,小于等于100 卷面成绩:浮点型,大于等于0,小于等于100 总评成绩:浮点型,大于等于0,小于等于100 (5) 授课表 课程号:字符串型,10字节,主码,课程表的外码 教师号:字符串型,10字节,主码,教师表的外码 授课类别:字符串型,10字节 班数:浮点型,大于0。假设选修课有半个班的情 况,因此取浮点型
5.2.3确定数据库应用的功 最常用的功能就是对数据的增、删、改、查及生成报表 有条件删除, 1.数据录入(增加) 包括对5张表的 有权限限制, 2.数据删除 数据录入 有删除确认 3.数据修改 有条件查询后修 改,有权限限制, 根据用户提出的条 4.数据查询 修改后保存 件查询,所有用户 5.生成报表 都有查询权限 对“学生成绩表”和 用数据库开发工 “教师授课服务表” 本例三张报表 具生成报表 的处理与此类似 (1)学生修课表(学号,姓名,课程名,修课类别) (2)学生成绩表(学号,姓名,课程名,修课类别,平时成绩,卷面成绩,总评成绩) (3)教师授课服务表(教师号,教师名,课程名,授课类别,学时数,班数) 创建视图的SQL语句可描述为: CREATE VIEW学生修课表(学号,姓名,课程名,修课类别)AS SELECT学生学号,学生.姓名,课程.课程名,修课.修课类别FROM学生, 课程,修课wERE学生.学号三修课.学号AND课程.课程号=修课.课程号
5.2.3 确定数据库应用的功能 • 最常用的功能就是对数据的增、删、改、查及生成报表 1.数据录入(增加) 2.数据删除 3.数据修改 4.数据查询 5.生成报表 本例三张报表: (1) 学生修课表(学号,姓名,课程名,修课类别) (2) 学生成绩表(学号,姓名,课程名,修课类别,平时成绩,卷面成绩,总评成绩) (3) 教师授课服务表(教师号,教师名,课程名,授课类别,学时数,班数) • 创建视图的SQL语句可描述为: CREATE VIEW 学生修课表(学号,姓名,课程名,修课类别)AS SELECT 学生.学号,学生.姓名,课程.课程名,修课.修课类别 FROM 学生, 课程,修课 WHERE 学生.学号 = 修课.学号 AND 课程.课程号 = 修课.课程号 包括对5张表的 数据录入 有条件删除, 有权限限制, 有删除确认 有条件查询后修 改,有权限限制, 根据用户提出的条 修改后保存 件查询,所有用户 都有查询权限 用数据库开发工 具生成报表 对“学生成绩表”和 “教师授课服务表” 的处理与此类似
5.3数据库开发环境 易于各部门 数据过于 开发自己专 在C/S环境下实现时应注意数据的分布 用的地方数 庞杂 据库 将数据全部放在服务器上一中央数据库 分类 将数据全部集中管理,数据只有一份,比如实时采集的数据一般都後放 在服务器端。 将一部分数据放在服务器上,另一部分数据放在客户机上地方数据库 将数据分散管理,只将重要的、所有部门共享的数据放在中央数据库中 将各个部门自己需要的数据放在地方数据库中 例:本教学管理系统中,将所设计的五张表放在服务器,便于全校统一管理,各部门 共享,同时各部门有自己的地方数据库。 如“修课表”,中央和地方各有一个,且两者结构一致,当地方课程数据库修 改时,能及时修改中央数据库,在保持数据的一致性 将数据分为中央数据库和地方数据库的好处:减少对中央数据库的操作次数,先 在地方数据库中录入数据有关数据(比如本系的修课情况表),当确认准确无误 之后再送到中央数据库中。数据一旦被送到中央数据库就不能被随便地修改和删 除,这也增加了中央数据库数据的安全性和可靠性
5.3 数据库开发环境 • 在C/S环境下实现时应注意数据的分布 – 将数据全部放在服务器上--中央数据库 将数据全部集中管理,数据只有一份,比如实时采集的数据一般都应该放 在服务器端。 – 将一部分数据放在服务器上,另一部分数据放在客户机上--地方数据库 将数据分散管理,只将重要的、所有部门共享的数据放在中央数据库中, 将各个部门自己需要的数据放在地方数据库中。 例:本教学管理系统中,将所设计的五张表放在服务器,便于全校统一管理,各部门 共享,同时各部门有自己的地方数据库。 如“修课表”,中央和地方各有一个,且两者结构一致,当地方课程数据库修 改时,能及时修改中央数据库,在保持数据的一致性。 • 将数据分为中央数据库和地方数据库的好处:减少对中央数据库的操作次数,先 在地方数据库中录入数据有关数据(比如本系的修课情况表),当确认准确无误 之后再送到中央数据库中。数据一旦被送到中央数据库就不能被随便地修改和删 除,这也增加了中央数据库数据的安全性和可靠性。 数据过于 庞杂 易于各部门 开发自己专 用的地方数 据库 分 类
53.1 isual basic中的数据访问 Jet: Visual basic提供的数据库引擎 Jet数据库引擎接口的方法: Database(数据库) TableDef(表)、 Field(字 Data控件 段) 数据访问对象(DAO) Index(索引)对象 活动的数据对象(ADO) ·VB中数据库编程的内容:创建数据访问对象, 这些数据访问对象对应于被访问的物理数据库 的不同部分,如:用这些对象的属性和方法来 实现对数据库的操作
5.3.1 Visual Basic中的数据访问 • Jet :Visual Basic 提供的数据库引擎 • Jet数据库引擎接口的方法: –Data控件 –数据访问对象(DAO) –活动的数据对象(ADO) • VB中数据库编程的内容:创建数据访问对象, 这些数据访问对象对应于被访问的物理数据库 的不同部分,如:用这些对象的属性和方法来 实现对数据库的操作。 Database(数据库)、 TableDef(表)、Field(字 段) Index(索引)对象
532 Visual basic数据库体系结构 Jet引擎的作用 处理存储、检索、更新数据的结构,并提供了功能强大的、面向对象的编程接口 VB数据库应用程序的组成 显示数据并允 VB中添加或删 用户界面 许用户查看或 除记录,执行 更新数据窗体 查询等 实现“透明”访问 Jet包含在一组动态链接库 (读取、写入或修 Jet引擎 (DLL)文件中,被链接到 改数据库,处理所 VB程序,把应用程序的请 有内部事物) 求译成.mdb文件或其它数 据库的物理操作。 数据库 包含数据表 的一个或多 个文件
5.3.2 Visual Basic 数据库体系结构 • Jet引擎的作用: 处理存储、检索、更新数据的结构,并提供了功能强大的、面向对象的编程接口 • VB数据库应用程序的组成 用户界面 Jet 引擎 数据库 实现“透明”访问 (读取、写入或修 改数据库,处理所 有内部事物) 显示数据并允 许用户查看或 更新数据窗体 VB中添加或删 除记录,执行 查询等 Jet包含在一组动态链接库 (DLL)文件中,被链接到 VB程序,把应用程序的请 求译成.mdb文件或其它数 据库的物理操作。 包含数据表 的一个或多 个文件
54创建数据库 VB中创建数据库途径: 不编程即可创 建Jet引擎 1、可视化数据管理器 使用VB的 DAO部件可 2、DAO 以通过编程 的方法创建 A3、 Microsoft access 数据库 用 Access创建 的数据库和直接 在VB中创建的数 据库一样,两者 用的数据库引擎 与格式一样
5.4 创建数据库 • VB中创建数据库途径: 1、可视化数据管理器 2、DAO 3、Microsoft Access 不编程即可创 建Jet引擎 使用VB的 DAO部件可 以通过编程 的方法创建 数据库 用 Access创建 的数据库和直接 在VB中创建的数 据库一样,两者 用的数据库引擎 与格式一样