大学计算机基础 — 第七章 1
第七章
数据库管理系统
大学计算机基础 — 第七章 2
本章主要内容
?数据库系统概述
?数据模型
?SQL语言简介
?数据库设计初步
?Access数据库管理系统
大学计算机基础 — 第七章 3
数据库系统概述
?数据库技术 是数据信息管理的核心技术, 产生于
20世纪 60年代末 。 是计算机应用的一个重要方向 。
?数据库技术最大程度地实现了数据共享, 极大地提
高了数据的管理效率和使用效率 。
?数据库 是计算机内有组织, 可共享的数据的集合
?数据库通过 数据库管理系统 ( DBMS) 进行数据存取,
数据安全, 并发控制, 灾难恢复等管理工作
大学计算机基础 — 第七章 4
数据库管理技术的发展
?人工管理阶段 ( 50年代中期以前 )
数据在运行时输入内存, 计算完成后就释放内
存 。 一个程序对应一组特殊数据,即使多个程序涉
及相同的数据, 也必须各自定义和使用, 无法相互
利用和参照, 不能共享, 没有独立性, 存在较大的
数据冗余 。
大学计算机基础 — 第七章 5
数据库管理技术的发展
?文件系统阶段 ( 50年代后期到 260年代中期 )
数据可以文件的形式长期保存在盘上, 但还是
存在数据共享性差, 冗余度大, 独立性差, 据之间
联系弱等缺点 。
大学计算机基础 — 第七章 6
数据库管理技术的发展
?数据库系统阶段 ( 60年代后期至今 )
?数据结构化
?数据的独立性较高
?数据共享性高, 冗余度低, 易扩充
?对数据实行集中统一控制, 有了完整的控制功能
数据库
应用程序1
应用程序2
应用程序n
......
数据库管理系统
DBMS
应用程序 1
应用程序 2
应用程序 n
数据库
数据库管理系统
D B M S
大学计算机基础 — 第七章 7
数据库技术的发展
?数据库技术出现在 20世纪 60年代初, 美国通用电气
公司的 C.W.Bachman是数据库领域的最早开拓者之一 。
1964年, 他就领导设计了 IDS( integrated data
store) 系统, 从此开始了数据库技术研究和应用的
不断发展 。
?按数据模型的发展变化将数据库技术的发展分为 3代
?第一代, 层次型和网状型数据库技术时期 IDS
?第二代, 关系型数据库技术时期 Access
?第三代, 新一代数据库技术时期 SQL Server
大学计算机基础 — 第七章 8
数据模型
?模型 是现实世界特征的模拟和抽象
?数据模型 是现实世界数据特征的模拟和抽象
?数据模型应满足 3个方面的要求:
?一是能比较真实地模拟现实世界;
?二是容易为人所理解;
?三是便于在计算机上处理和实现 。
?数据库系统 是处理数据的专门系统
数据模型决定数据库系统的数据定义, 数据组织, 数
据操作和数据约束是数据库系统的基础与核心内容 。
大学计算机基础 — 第七章 9
数据模型的层次结构
?对现实世界的抽象过程就是进行数据库设计的过程
? 数据的逻辑模型决定数据库系统的类型和处理方式
? 数据逻辑模型需要精确描述数据的静态特性, 动态
特性和完整性约束条件, 即数据模型的三要素:数
据结构, 数据操作和完整性约束 。
? 四种数据结构:层次型, 网状型, 关系型和面向对
象型, 故相应的数据库系统有层次数据库系统, 网
状数据库系统, 关系数据库系统和面向对象数据库
系统 。
大学计算机基础 — 第七章 10
概念模型
?概念模型是数据建模过程中对现实世界特征的第一层
抽象, 是从用户的角度看数据的一种表达方式
?概念模型的表达常用实体 -联系方法, 即 E-R方法
?E-R模型中的基本概念
?实体 ( Entity)
?属性 ( Attribute)
?码或关键字 ( Key)
?实体型 ( Entity Type)
?实体集 ( Entity Set)
?联系 ( Relationship)
?两个实体之间的 3类联系E-R模型的表示方法
?实体型:用矩形表示, 矩形框内是实体名
?属性:用椭圆形表示, 并用无向边将其与相应
的实体连接起来
?联系:用菱形表示, 菱形框内是联系名, 并用
无向边分别与有关的实体连接起来, 同时在无向边
旁标上联系的类型 ( 1:1,1:n,n:m)
大学计算机基础 — 第七章 11
关系数据模型和关系数据库
?关系模型是目前使用最广泛的一种数据模型
?关系模型中数据的组织在逻辑上被看作是一张二维表,
它由行和列组成 。 关系模型的术语如下:
?关系,一个关系对应一张二维表 。
?元组,表中除表头之外的每一行称为一个元组
?属性,表中的一列为一个属性, 每个属性须命名
?主码,表中能唯一确定一个元组的属性组叫主码
?关系模式,对关系的形式描述称为关系模式
?关系数据库采用关系模型作为数据的组织方式, 是目
前应用最为广泛的数据库技术 。
?在关系数据库中, 每个实体及实体之间的联系都是一
张数据表 。
?在某一个特定的应用领域中, 所有的实体集以及实体
之间的联系所形成的关系的集合就构成了一个关系数
据库 。
?对关系数据库的操作主要有数据查询, 数据更新, 数
据定义, 数据控制等四种
大学计算机基础 — 第七章 12
SQL语言简介
?SQL是一种非过程化的查询语言, SQL有数据定义,
数据控制, 数据更新和数据查询四种功能 。
?数据定义 功能有创建数据库, 数据表, 索引及视图
?数据控制 功能主要是对使用数据库的用户进行用户
管理, 操作权限管理和分配等
?数据更新 包括对数据表进行插入, 修改, 删除三种
操作;
?数据查询 即是按照一定的条件从数据库中检索出需
要的数据, 是数据库的一种最重要的操作 。
大学计算机基础 — 第七章 13
SQL语言的使用方法,数据查询
?数据查询语句的一般格式为:
SELECT <目标列表达式 >
FROM <表名 >
WHERE <条件 >
ORDER BY <列名 >[ASC|DESC]
其中:
目标列表达式 可以是关系表的一个或多个列
FROM 用于指定一个或多个表
WHERE 用于构造查询条件,条件是逻辑表达式
ORDER BY 子句用于指定结果集排序是 ASC还是 DESC
?SELECT语句的含义是:
根据 WHERE子句的条件, 从 FROM子句指定的基本表或
视图中找出满足条件的元组, 再按 SELECT子句中的目
标列表达式, 选出相应的列形成结果集 。 如果有 ORDER
BY子句, 则结果集中的行是有序排列
大学计算机基础 — 第七章 14
SQL语言的使用方法,查询实例
?设某学生选课系统数据库有以下三个表,











课程号 课程名
选修课号 学分
大学计算机基础 — 第七章 15
SQL语言的使用方法,查询实例
?例 7_1 查询计算机科学系的学生 。 SQL语句如下:
SELECT Sno,Sname,Sex,Sage,Sdept
FROM Student
WHERE Sdept='计算机科学系‘
结果为:
大学计算机基础 — 第七章 16
SQL语言的使用方法,查询实例
?例 7_2 查询姓郭的学生 。 SQL语句如下:
SELECT *
FROM Student
WHERE Sname LIKE '郭 %'
?查询姓郭且名字长度为两个汉字的学生的条件为:
WHERE Sname LIKE '郭 __'
?查询带有“娟”字的学生的条件为:
WHERE Sname LIKE '%娟 %'
大学计算机基础 — 第七章 17
SQL语言的使用方法,查询实例
?例 7_3 查询 20岁以下的女生学号, 姓名和所属系
SELECT Sno,Sname,Sdept
FROM Student
WHERE Sex='女 ' AND Sage<20
?结果为:
大学计算机基础 — 第七章 18
SQL语言的使用方法,查询实例
?例 7_4 查询 002号课程的考试成绩, 并按降序显示
SELECT Sno,Grade
FROM SC
WHERE Cno='002' ORDER BY Grade
?结果为:
大学计算机基础 — 第七章 19
SQL语言的使用方法,查询实例
?例 7_5 查询各科成绩 80分以上的学生学号, 姓名,
成绩 。
SELECT Student.Sno,Student.Sname,
SC.Cno,SC.Grade
FROM Student,SC
WHERE Student.Sno=SC.Sno AND Grade>=80
?结果为:
大学计算机基础 — 第七章 20
SQL语言的使用方法,查询实例
?例 7_6 查询王枫高等数学课程的考试成绩
SELECT Student.Sno,Student.Sname,
Course.Cname,SC.Grade
FROM Student,Course,SC
WHERE Student.Sno=SC.Sno AND
SC.Cno=Course.Cno AND Student.Sname='王枫 '
?结果为:
大学计算机基础 — 第七章 21
数据库设计初步
?数据库设计 是指对于一个给定的应用环境, 构造最
优的数据库模式, 建立数据库及其应用系统, 使之
能够有效地存储数据, 满足用户的应用需求 。
?数据库设计的过程,
?需求分析 了解分析用户的数据需求及处理需求
?概念结构设计 对用户需求进行综合, 归纳, 抽
象, 形成一个独立于具体 DBMS的概念模型
?逻辑结构设计 将概念模型转换为某个 DBMS所支持
的数据模型, 并对其进行优化
?物理结构设计 是为逻辑数据模型选取一个最适合
应用环境的物理结构
大学计算机基础 — 第七章 22
概念结构设计
?概念结构设计 就是将需求分析阶段所得到的用户需
求抽象为信息结构即概念模型的过程, 是整个数据
库设计的关键一步 。
?数据抽象的方法有分类, 聚集等
?分类的目的是找出系统的所有实体型
?聚集是对某一个特定对象, 分析总结其内部构成
要素与特征, 得到实体的属性
?例 7_7 某学校选课系统, 通过需求分析调查, 应用
分类, 聚集等方法, 得到系统涉及学生, 教师, 班
级, 系, 课程, 教室等实体 。
?各实体属性及实体之间的联系如下:
?学生 ( 学号, 姓名, 性别, 出生日期 )
?课程 ( 课程号, 课程名, 学分 )
?教师 ( 编号, 姓名, 性别, 职称, 年龄 )
?班级 ( 编号, 年级 )
?系 ( 编号, 名称, 系主任 )
?教室 ( 编号, 类型, 座位数, 位置 )
?一个学生可选多门课程, 一门课程可被多位学生选
?一个教师讲授一门课程, 一门课程可有多名教师 讲授
?一门课程可安排在多个教室, 一个教室可上多门课程
?一个班级有多名学生, 一名学生只属于一个班级
?一个系有多个班级, 一个班级只属于一个系
学号
姓名
出生日期
性别
选修
课程号
学分
课程名m
成绩
讲授
n
1
编号
姓名 性别 年龄
职称
安排于
n
m
编号
类型
座数
位置
属于
n
1
编号
年级
属于
1
n
名称
编号 系主任
n
时间
学生

班级
教师
课程
教室
属于
1 n
工作时间
学生选课系统 E-R模型
大学计算机基础 — 第七章 23
逻辑结构设计
? 逻辑结构设计
是将 E-R模型按照一定的规则转换为关系模型
? 实体型的转换,一个实体型转换为一个关系模式, 实
体的属性是关系的属性, 实体的码是关系的码
学生( 学号,姓名,性别,出生日期)
课程( 课程号,课程名,学分)
教师( 教师编号,姓名,性别,职称,年龄)
班级( 班编号,年级)
系( 系编号,名称,系主任)
教室( 教室编号,类型,座位数,位置)
联系的转换
?实体间一对多联系的转换规则:一个 1:n的联系可转为
一个单独的关系模式, 也可与多端对应的关系模式合并
?学生( 学号,姓名,性别,出生日期,所属班级编号)
?课程( 课程号,课程名,学分,任课教师编号)
?教师( 教师编号,姓名,性别,所属系编号,职称,年
龄,工作日期)
?班级( 班编号,所属系编号,年级)
?系( 系编号,名称,系主任)
?教室( 教室编号,类型,座位数,位置)
?选修( 学号,课程号,成绩)
?安排( 课程号,教室号,时间)
大学计算机基础 — 第七章 24
Access概述
?是微软 Office自带的一个小型关系数据库管理系统?Access数据库管理系统的特点
?数据库的表和索引存于,MDB文件中,一个数据库文
件可以含有多个数据表
?数据字段能支持空值即 NULL,
?Memo字段作为 text类型处理,长度可达 1.2GB
?提供二进制对象,可在其中存储任何类型的数据
?拥有功能强大的操作向导
?用户可设定、修改基本表之间的关联,从而实现多
个表之间的关系查询
?可处理本系统或其他系统建立的数据库文件,支持
SQL语言
?有较高的安全性,可设置不同级别的用户及密码
?数据库系统的主要对象
库 一个数据库包含若干数据表
?表 一张表就是一个关系,由行与列构成,行称记
录,列称字段。 Memo字段长度可达 1.2GB,是文本
?查询 或视图,是由基本数据表通过连接,选择,投
影等操作构成的虚表
?窗体 或表单,用于进行浏览、输入及数据更新
?报表 将数据表的内容以表格的形式输出
宏 若干命令的组合, 用来自动执行一系列操作 。
?模块 用 Access提供的 VBA语言编写的程序段, 有类
模块和标准模块两种类型 。
大学计算机基础 — 第七章 25
Access基本操作,新建数据库
?两种方法:
创建一个空数据库或用数据库模板创建数
据库
?建库步骤:
?选择, 文件 /新建, 命令
双击Student表,学号为主键
大学计算机基础 — 第七章 26
Access基本操作,数据表操作
?添加, 编辑, 删除记录
打开 scy数据库
双击表, student”
在查看窗体中添加与编辑记录
添加新记录
大学计算机基础 — 第七章 27
Access基本操作,建立表之间的关系
?数据库中的表之间存在着不同的关联, 这些关系决定
了表之间是一个相互有约束的整体 。 通过建立表间的
关系图, 可以让数据库系统自动管理这种约束 。
?选择, 工具 /关系, 命令, 打开, 关系, 设计窗口,
弹出, 显示表, 对话框
大学计算机基础 — 第七章 28
Access基本操作,创建和使用查询
?创建查询的两种方式,
在设计视图中创建查询
用查询向导创建查询 双击
大学计算机基础 — 第七章 29
Access基本操作,创建和使用窗体
?窗体 可以将数据库中数据表, 查询等数据对象组
织起来, 进行浏览, 输入, 编辑等数据操作 。
?窗体有单表窗体和多表窗体两种, 多表窗体通常
表达两个表之间的一对多关系 。
?创建窗体:
大学计算机基础 — 第七章 30
Access基本操作,创建和使用报表
?选择, 报表,, 然后单击, 使用向导创建报表,,
以, 学生信息, 查询为数据表, 按照向导提示操作生
成 。
大学计算机基础 — 第七章 31
本章课后作业及实习
?复习教材第七章内容
?预习教材第八章内容
?教材第七章后的问答题
?,指导及习题, 中对应章节全部习题
?,指导及习题, 中对应章节全部实验