Download presentation
Presentation is loading. Please wait.
1
第7章 数据库基础
2
主要内容 7.1 数据库的基础知识 7.2 关系数据库 7.3 结构化查询语言SQL概述 7.4 常用的关系数据库介绍
7.2 关系数据库 7.3 结构化查询语言SQL概述 7.4 常用的关系数据库介绍 7.5 Microsoft Access应用
3
7.1 数据库的基础知识 7.1.1 数据库的基本概念 7.1.2 数据管理方式的发展 7.1.3 数据库系统的体系结构
7.1.4 数据模型
4
7.1.1数据库的基本概念 (1)数据库(Database, DB)
按照一定数据模型组织、存储的相互联系的数据的集合。 (2)数据库管理系统(Database Management System, DBMS) 用于数据库建立、使用和维护而配制的计算机软件系统。 (3)数据库系统人员 对数据库的规划、设计、维护、监视的管理人员
5
7.1.1数据库的基本概念 (4)数据库系统(Database System, DBS)
6
7.1.2 数据管理方式的发展 人工管理阶段 文件系统阶段 数据库系统阶段
7
7.1.3 数据库系统的体系结构 外模式 模式 内模式
8
7.1.4 数据模型 数据模型是数据特征的抽象,是数据库管理的数学形式框架,是数据库系统中用以提供信息表示和操作手段的形式构架。
数据模型种类: 层次模型 网状模型 关系模型 面向对象模型
9
1.层次模型 层次模型是用层次结构描述数据间的从属关系。在层次模型中,数据间的关系象一棵倒置的树。------------“树”
满足下面两个条件的数据结构,称作层次模型 ①有且仅有一个结点无双亲; ②其它结点有且仅有一个双亲。
10
2.网状模型 网状模型(网络模型)是用网络结构表示数据间的多个从属关系。----“指除树以外的一个连通图,”
满足下列条件之一的数据结构,称作网络模型: ①可以有一个以上的结点无双亲; ②至少有一个结点有多于一个的双亲.
11
3.关系模型 关系模型是目前应用最广的数据模型。在关系模型中,用一个二维表来表示数据间的关系。 课程编号 课程名称 学时 学分 课程性质
B 体育 32 1 通识必修 B 英语 72 4.5 B 计算机导论 64 4 学科基础 B 概率论与数理统计 56 3.5 B C程序设计 B 计算机网络原理 专业必修 B 人工智能基础 2 专业选修
12
4. 面向对象模型 面向对象模型是数据库技术与面向对象程序设计技术结合的产物,是用面向对象的观点来阐述现实世界实体(对象)的逻辑组织与对象间的限制和联系。 比较有代表性是数据库是Oracle 9i。
13
7.2 关系数据库 7.2.1关系模型的基本概念 1.关系:就是一张二维表,每个关系有一个关系名 2.元组:二维表中水平方向的行称为元组
3.属性:二维表中垂直方向的列称为属性(Attribute)。 4.域:域(Domain)是指属性的取值范围。 5.主键:主键(Primary Key)是指表中的某个属性或某些属性的集合能唯一地确定一个元组。 6.外键:外键(Foreign Key)是一个表中的一个属性或属性组,而它们在其它表中却作为主键存在,即一个表中外键被认为是另一个表中的主键
14
7.2.2 关系的特点 1.关系中的每个属性都必须是不可分解的,是最基本的数据单元,即数据表中不能再包含表。 2.一个关系中不允许有相同的属性名,即在定义表结构时,一个表中不能出现重复的字段名。 3.关系中不允许出现相同的元组,即数据表中任意两行不能完全相同 4.关系中同一列的数据类型必须相同,即同一属性的数据具有同一数据类型。 5.关系中行、列的次序任意,即数据表中元组和字段的顺序无关紧要。
15
7.2.3 关系的运算 关系代数用到的运算符包括四类:集合运算符、关系运算符、比较运算符和逻辑运算符,如表所示。
16
7.2.3 关系的基本运算 传统的集合运算 并 交 差 笛卡尔积
17
7.2.3 关系的基本运算 专门的关系运算 选择 投影 连接 除运算
18
7.3 结构化查询语言SQL概述
19
7.3 结构化查询语言SQL概述 1.建立数据表 CREAT TABLE<表名>(<列名><数据类型>[完整性约束条件],…) 【例7.1】创建学生表,由学号、姓名、性别、专业、出生日期五个属性组成,其中学号字段不能为空且唯一。 CREAT TABLE 学生 (学号 char(12) PRIMARY KEY, 姓名 char(8), 性别 char(2), 专业 char (8), 出生日期 datetime);
20
7.3 结构化查询语言SQL概述 2.查询 格式: SELECT <目标列> FROM <表名> [WHERE <条件表达式>] [GROUP BY <列名1>] [ORDER BY <列名2>] 说明:从指定表中查询指定条件的记录。
21
7.3 结构化查询语言SQL概述 单表查询 【例7.2】从学生表中查询所有学生的学号和姓名。 SELECT 学号,姓名 FROM 学生表; 若要显示表中的所有字段可用 SELECT * FROM 学生表; 【例7.3】查询学生表中所有学生的学号,姓名和年龄信息。 SELECT 学号, 姓名, YEAR(date())-YEAR(出生日期) AS 年龄FROM 学生表;
22
7.3 结构化查询语言SQL概述 【例7.4】查询学生表中性别为女的学生的所有信息 SELECT * FROM 学生表 WHERE 性别= “女” ; 【例7.5】查询学生表中出生在1996年的学生信息。 SELECT * FROM 学生表 WHERE YEAR(出生日期)=1996; 或者 SELECT * FROM 学生表 WHERE出生日期 between #1996/1/1# AND #1996/12/31#;
23
7.3 结构化查询语言SQL概述 【例7.6】查询学生表中姓“张”的同学的学号,姓名和出生日期。
SELECT 学号, 姓名, 出生日期 FROM 学生表 WHERE 姓名 like “张*”;
24
7.3 结构化查询语言SQL概述 多表查询 【例7.7】查询 “张慧媛”同学所学课程的成绩,要求显示学号,姓名,课程名称,成绩字段的内容。 SELECT 学生表.学号, 姓名, 课程名称, 成绩FROM 学生表, 课程表, 选课表 WHERE 姓名 = “张慧媛” AND 学生表.学号=选课表.学号 AND 选课表.课程编号=课程表.课程编号;
25
7.3 结构化查询语言SQL概述 【例7.8】查询各门课的选课人数。 SELECT课程编号, COUNT(学号) FROM选课表 GROUP BY 课程编号; 【例7.9】查询“英语”课程的学生的成绩,要求显示学号,姓名,课程名称,成绩并按成绩的降序排列。 SELECT 学生表.学号, 姓名, 课程名称, 成绩FROM 学生表, 课程表, 选课表 WHERE 课程名称 = “英语” AND 学生表.学号=选课表.学号 AND 选课表.课程编号=课程表.课程编号 ORDER BY 成绩 DESC;
26
7.3 结构化查询语言SQL概述 数据插入 格式: INSERT INTO <表名>[(<字段名1>[,<字段名2>]…)] VALUES [(<常量1>[,<常量2>]…)] 说明:INSERT … VALUES … 的功能是向表中增加一行。 【例7.10】向学生表中插入一条新纪录。 INSERT INTO 学生(学号, 姓名, 性别) VALUES(“ ”,”王明月”,”男”);
27
7.3 结构化查询语言SQL概述 数据修改 格式: UPDATE <表名> SET <字段名1>=<表达式1> [,<字段名2>=<表达式2>] … [WHERE <条件表达式>]; 【例7.11】在选课表中,将学号为“ ”学生的“B ”门课的成绩改为95。 UPDATE 选课表 SET 成绩=95 WHERE学号= “ ” AND 课程号=“B ”;
28
7.3 结构化查询语言SQL概述 数据删除 格式: DELETE FROM <表名> [WHERE <条件表达式>]; 【例7.12】在课程表中删除“英语”课程的相关内容 DELETE FROM 课程表 WHERE课程名称= “英语”;
29
3.关系模型 关系(Relation):整个一张表 元组(Tuple):表中的每一行即记录 属性(Attribute):表中的每一列即字段
域(Domain):属性值的取值范围 键(Key):唯一标识元组的属性或属性组 主键(Primary Key):选定一个键 学 号 课程号 平时成绩 考试成绩 A002 90 B001 95 92 85 B022 100 98
30
7.4 常用的关系数据库介绍 1. SQL Server数据库 2. Oracle 3. Access
31
7.5 Microsoft Access应用 7.5.1 Access 2010概述 数据库设计 数据库操作 数据表的操作 查询
32
7.5.1 Access 2010概述 Access 2010的数据对象包括表、查询、窗体、报表、宏、模块共六种数据对象,对数据的管理和处理都是通过这六种对象来完成的。 表:数据库中最基本的组成单位,是Access数据库中唯一存储数据的对象 查询:对数据库中所需特定数据的查找 窗体:用户与Access数据库进行交互的图形界面,窗体的数据源可以是表也可以是查询 报表:Access数据库中实现数据格式打印输出的对象。 宏:是指一个或多个操作的集合,其中每个操作实现特定的功能。 模块:Access开发出来的程序段
33
7.5.2 数据库设计 1.数据库设计的需求分析 2.数据库概念设计 3.数据库的逻辑设计 4.数据库的物理设计
34
7.5.3 数据库操作 1.创建数据库 Access提供了两种创建数据库的方法: (1)先创建一个空数据库,再添加各种对象。
(2)使用“数据库向导”创建数据库,这样创建的数据库已经包含了所需的表、窗体及报表等对象。
35
(1)新建一个空数据库 例1.在自己的文件夹中建立名为“学生管理”的空数据库。 注意:数据库的存放位置、保存类型和数据库文件名
扩展名accdb 学生管理.accdb
36
(2) 利用模板创建数据库 例2 在自己的文件夹中以“联系人web数据库” 为模板数据库,使用向导创建名为“联系人”的数据库。
37
7.5.3 数据库操作 2.打开数据库 3.数据库版本转换 4.备份数据库
38
7.5.4 数据表的操作 1.表的结构及表结构的定义 表结构是指数据表的框架,包括表名、字段名称、数据类型以及字段属性。
表名:用户对数据进行操作的唯一标识,其命名规则与字段的命名规则类似。
39
7.5.4 数据表的操作 字段名称 字段的命名规则包括: 字段名称可以长达64个字符,一个汉字为一个字符。
字段名称可以包括汉字、字母、数字、空格和特殊字符,不能以空格开头,不能包括的字符包括:句点(.)、叹号(!)、撇号(’)、方括号([、])、控制字符(ASCII值为0~31的字符)。 同一表中的字段名称不能相同,也不能与Access内置函数或者属性名称(如Name)相冲突。
40
7.5.4 数据表的操作 数据类型
41
7.5.4 数据表的操作 字段属性 字段属性是值字段的特征,用于指定主键、字段大小、格式(输出格式)、输入掩码(输入格式)、默认值、有效性规则和索引等。
42
2.创建数据表 创建新表是指创建表的结构,即确定这个表的各个字段名、各个字段的数据类型和大小、索引方式、有效性规则等属性。 创建表2种方法:
通过设计视图创建表 通过外部数据导入创建表
43
通过设计视图创建表 【例7.13】在“学生成绩管理”数据库中建立“学生表”,学生表的结构如下表所示。
44
通过设计视图创建表 具体步骤 ①打开“学生成绩管理”数据库; ②在“创建”选项卡的“表格”组中选择“表设计”按钮进入表的设计视图 ③在“字段名称”栏中输入字段的名称“学号”,在“数据类型”下拉列表框中选择该字段的“文本”类型,字段大小设置为“12” ④用同样的方法依次输入其它字段的内容及相应的数据类型 ⑤设置“学号”字段为主键 ⑥保存数据表 ⑦在“数据表视图”中对数据表进行数据录入,录入数据后单击快速访问工具栏中的“保存”按钮即可将数据保存
45
通过外部数据导入创建表 通过导入其它位置存储的信息创建表,可导入的数据有Excel工作表、SharePoint列表、XML文件、其它Access数据库、Outlook文件夹以及其它数据源中存储的信息。 【例7.14】将Excel文档“教师表.xlsx”中的数据导入到“学生成绩管理”数据库中,并以“教师表”保存。
46
通过外部数据导入创建表 具体步骤为: ①打开“学生成绩管理”数据库; ②在“外部数据”选项卡的“导入并链接”组中选择“Excel”按钮,弹出“获取外部数据”的对话框,在对话框中查找“教师表.xlsx”文件并点击“确定”按钮。 ③在“导入数据表向导”对话框中选择数据的具体来源工作表,然后点击“下一步”按钮。 ④在接下来的窗口中设置各字段的数据类型,然后单击“下一步”按钮。 ⑤在接下来的窗口中设置“职工号”为主键,然后单击“下一步”按钮。最后以“教师表”保存导入的数据。
47
3.数据表记录的输入和编辑 (2)数据的编辑 (1)数据录入 ① 自动编号字段 ② OLE对象 ③ 超链接字段 ④ 其它类型字段
① 添加记录 ② 修改记录 ③ 删除记录
48
4.数据表结构修改 (1)修改字段 (2)增加字段 (3)删除字段 (4)移动字段 (5)删除主键
49
5.表的外观设置 (1)改变数据表文本的字体及颜色 (2)改变数据表格式 (3)调整行高和列宽 (4)隐藏/取消隐藏 (5)冻结和取消冻结所有字段 (6)移动列
50
6.创建索引 索引的类型 按功能分 主索引——创建“主键”时,自动设置主键为索引,一个表中最多一个
唯一索引——不是“主键”,该索引字段值必须是唯一的 普通索引——该索引字段可以有重复的值
51
6.创建索引 索引的类型 按按字段个数分 单字段索引:针对某单个字段建立的索引;
多字段索引:多个字段联合创建的索引,多字段索引先按第一个索引字段排序,对于字段值相同的记录再按第二个索引字段来排序,以此类推。
52
创建索引 通过字段属性创建索引 通过索引设计器创建索引 单字段索引 多字段索引
53
删除索引 删除索引有两种方法: ①在“索引”对话框中选择一行或多行索引,按DELETE键;
②在设计视图中,在字段的“索引”属性组合框中选择“无”。 若取消主索引,则可直接取消掉该索引的主键即可。
54
记录的排序 排序方法类似Excel中的排序方法 快速排序 多条件排序
55
8.建立表之间的关系 (1)主表和子表 在数据库中表间的关系就是通过主键和外键进行关联的,其中主键所在的表被称为主表,外键所在的表被称为子表。
56
表间关系概述 请问以下表A与表B之间是哪种关系? 一对一 多对多 一对多
57
表间关系概述 一对多的关系 表与表之间一对多的关系是通过主表中的主键和子表中的外键的关联建立起来的。 主键与外键名称不同可以吗? 子表-外键
主表-主键 学生情况表 学 号 班号 姓 名 性别 出生年月日 10101 冯东梅 女 10102 章 蕾 闻维祥 男 班级简况表 班级代号 班级名称 10101 网络工程B09-1 10102 网络工程B09-2 10103 网络工程B09-3 数据类型与大小必须相同 请问哪个为主键?哪个为外键?
58
建立表间关系 【例7.18】创建“学生成绩管理”数据库中“学生表”和“选课表”之间的关联。
59
建立表间关系 打开数据库,选择数据库关系——关系 右键选择“显示表”-选择相应的数据表 从主表中的学号拖向子 表中的学号字段。
在编辑关系对话框中 选择三个复选框 选择联接类型按钮 点击创建
60
3.修改表间关系 修改表间关系 删除关系 单个 全部 编辑已有的关系及属性
61
添加关系 课程——学生选课(一对多)3 专业——学生信息(一对多)参更 教师信息——教师任课(一对多)3 课程——教师任课(一对多)参更
62
添加关系
63
7.5.5 查询 查询是Access数据库的主要对象,也是Access的核心操作之一。查询是以数据库中的数据作为数据源,根据给定条件从指定的数据库的表或查询中检索出符合要求的记录数据,形成一个新的数据集合,查询结果可以作为查询、窗体和报表的数据源。 查询有五种视图: “设计”视图:用来创建查询或修改查询要求; “数据表”视图:对于选择查询来说,相当于显示查询的结果,对于操作查询来说,是预览涉及到的记录; “SQL”视图:用来查看、编写或修改SQL语句。 数据透视表视图和数据透视图视图:根据需要生成这两种视图,对数据进行分析,得到直观的分析结果。 这是第一张幻灯片
64
使用查询向导创建查询 建立单表查询 【例7.19】查询学生的基本信息,并显示学生的学号、姓名、性别、专业编号。 操作步骤如下:
66
使用“简单查询向导”创建查询 建立多表查询 两个表必须有相同的字段,并且建立起关系
【例7.20】查询学生的课程成绩,并显示学生的姓名、所选课名称、平时成绩、考试成绩。
67
使用“设计视图”创建查询 图7.40 查询设计视图 表、查询输入窗口 查询设计网络
68
查询设计网格各部分含义 字段:设置字段或字段表达式,用于限制在查询中使用的字段 表:包含选定字段的表
排序:确定是否按字段排序,以及按何种方式排序 显示:确定是否在数据表中显示该字段 条件:指定查询限制条件 或:指定逻辑“或”关系的多个限制条件
69
查询设计网格各部分含义 在设计网格中设置条件的逻辑关系:
在同一行(“条件”行或“或”行)的不同列输入的多个查询条件彼此间是逻辑“与”(AND)关系。 在不同行输入的多个查询条件彼此间是逻辑“或”(Or)关系。 如果行与列同时存在,行比列优先(即AND比Or优先)。
70
运算符
71
准则中的函数
72
简单条件查询 【例7.21】查询1995年出生的女生或1996年出生的男生的基本信息,显示学生的学号、姓名、性别、出生日期和入学成绩。
74
运行查询 导航窗格中双击要运行的查询 右键—打开 在“设计视图”后,点击“运行” 在“设计视图”后,点击“数据表视图”按钮
75
添加计算字段查询 【例7.22】计算每个学生“计算机组成原理“课程的学期成绩(学期成绩=平时成绩*0.3+考试成绩*0.7)
76
总结 数据库的基本知识 数据库和表的基本操作 查询
Similar presentations