1、第三部分 数据库基础(1)任课教师任课教师:姚瑞霞姚瑞霞办公电话:办公电话:62782934办公室:东主楼办公室:东主楼8区区309室室教务老师:戴音教务老师:戴音 62773240数据库基础知识n数据库系统概述数据库系统概述n现实世界数据的描述实体联系模型现实世界数据的描述实体联系模型n数据库支持的数据模型关系模型数据库支持的数据模型关系模型n使用使用AccessAccess完成建表操作完成建表操作数据库在改变我们的生活超市管理超市管理交易的便捷交易的便捷企业的信息管理企业的信息管理银行转帐银行转帐飞机订票飞机订票网上购物网上购物电子政务电子政务 欢迎光临清华学生超市1/10/05 销售收据
2、 4:55PM-商品编码 商品名称 数量 金额-502009 钙锌切片 1 2.30124074 圣厨香味挂 1 3.90121064 超级福满多 1 5.00 -总计-数量 总计金额 折扣 合计 3,0 11.20 0.00 11.20 -支付-现金 11.20-C.ID 009 BILL:747898-谢谢惠顾 欢迎再来 校园中的信息系统迎新系统选课系统网络学堂学籍管理审查毕业排课系统社会的信息化依托数据库在信息化社会中,可为我们所利用的数据量在信息化社会中,可为我们所利用的数据量呈爆炸型的增长。呈爆炸型的增长。任何一个企业的成功之道都离不开它能够准任何一个企业的成功之道都离不开它能够准确
3、、及时地获取、分析和处理日常业务中涉确、及时地获取、分析和处理日常业务中涉及到的数据。及到的数据。而要存储、管理和利用如此大量的信息,不而要存储、管理和利用如此大量的信息,不使用数据库几乎是不可能的。使用数据库几乎是不可能的。计算机数据管理的发展人工管理人工管理没有管理数据的软件没有管理数据的软件计算机计算机 以计算为主以计算为主操作系统操作系统 以文件为单位,对数据进行管理以文件为单位,对数据进行管理计算机计算机 不但可以计算,而且可以存储和管理信息不但可以计算,而且可以存储和管理信息文件系统的局限性文件系统的局限性数据库系统数据库系统 数据管理的专用技术数据管理的专用技术数据库系统是计算机
4、信息系统的基础和主要组成部分。数据库系统是计算机信息系统的基础和主要组成部分。数据库技术数据库技术所研究的问题:数据库技术所研究的问题:如何科学地组织和存储数据如何科学地组织和存储数据如何高效地获取和处理数据如何高效地获取和处理数据数据库特点数据库特点以数据为中心组织数据,形成综合性的数据库,为各应以数据为中心组织数据,形成综合性的数据库,为各应用共享。用共享。数据冗余小,不但节省存储空间,也有利于保持数据的数据冗余小,不但节省存储空间,也有利于保持数据的一致性一致性具有良好的用户接口,用户可方便地开发和使用数据库。具有良好的用户接口,用户可方便地开发和使用数据库。提供了数据的安全性、完整性等
5、保证。提供了数据的安全性、完整性等保证。数据库技术的发展趋势大型化大型化需要存储的数据量越来越大(需要存储的数据量越来越大(GBTB)需要同时接纳更多的用户(在线用户)需要同时接纳更多的用户(在线用户)大型数据库技术发展(存储技术、并行处理技术等)大型数据库技术发展(存储技术、并行处理技术等)大型数据库产品:大型数据库产品:Oracle、DB2、SQL Server小型化小型化今天的今天的PC机功能已经可以和过去的大型机相媲美机功能已经可以和过去的大型机相媲美微机数据库技术的发展微机数据库技术的发展 微机数据库已经作为一种通用的工具。微机数据库已经作为一种通用的工具。微机数据库代表:微机数据库
6、代表:Access、Paradox、FoxPro等。等。数据库的管理系统数据库是数据的仓库,可以长期地保存大量数据。数据库是数据的仓库,可以长期地保存大量数据。数据库管理系统(数据库管理系统(DBMS)是协助用户管理和使用是协助用户管理和使用数据的软件,对每个数据库都是必须的。数据的软件,对每个数据库都是必须的。DataBase Management SystemDBMS 最终用户 数据库开发人员 数据库 数据库管理员 数据模型描述现实世界中的数据实体联系模型数据库支持的数据模型关系模型转换认识抽象现实世界实体联系模型Entity Relationship Model:简称:简称ER模型模型实
7、体实体:客观存在、并可以相互区分的事物:客观存在、并可以相互区分的事物学生实体:张三、李四学生实体:张三、李四 教室实体:教室实体:6A213、6B201实体集实体集:对实体进行分类,抽象出实体集(如学生):对实体进行分类,抽象出实体集(如学生)实体集的属性实体集的属性:一类实体所具有的共同属性:一类实体所具有的共同属性。学生实体集属性:学号、姓名、性别、出生年月学生实体集属性:学号、姓名、性别、出生年月属于一个实体集的各实体都用同一组属性来描述。属于一个实体集的各实体都用同一组属性来描述。实体集的码实体集的码:实体集中唯一标识一个实体的属性或:实体集中唯一标识一个实体的属性或属性组属性组 学
8、生实体集的码:学号(姓名?)学生实体集的码:学号(姓名?)实体联系模型实体集之间的联系实体集之间的联系现实世界中的事物之间是有联系的,这种联系必然要反现实世界中的事物之间是有联系的,这种联系必然要反映到映到ER模型中。模型中。一对一联系(一对一联系(1:1)对于实体集对于实体集A中的每一实体,实体集中的每一实体,实体集B中至多有一个实体中至多有一个实体与之联系。反之亦然。与之联系。反之亦然。系 系主任实体集之间的联系一对多联系(一对多联系(1:N)对于实体集对于实体集A中的每一实体,实体集中的每一实体,实体集B中有中有N(0)个实体个实体与之联系;对于实体集与之联系;对于实体集B中每一实体,实
9、体集中每一实体,实体集A中至多只中至多只有一个实体与之联系。有一个实体与之联系。多对多联系(多对多联系(M:N)对于实体集对于实体集A中的每一实体,实体集中的每一实体,实体集B中有中有N(0)个实体个实体与之联系;与之联系;对于实体集对于实体集B中每一实体,实体集中每一实体,实体集A中有中有M(0)个实体与之联系。个实体与之联系。系 学生 课程1:NM:N教务系统 数据分析实体集:实体集:系主任、系、学生、课程系主任、系、学生、课程 联系:联系:系主任系主任:系系 1:1系系:学生学生 1:N学生学生:课程课程 M:NER模型的图形表示 ER图系主任系主任证件号证件号姓名姓名职称职称系系系号系
10、号系名系名电话电话学生学生学号学号姓名姓名性别性别出生年月出生年月课程课程课程号课程号课程名课程名学分学分包含负责选修11NMN1成绩成绩数据库中的数据模型系号系名电话系主任学号姓名性别出生年月系号关系数据库关系模型关系模型实体集与二维表有着自然的对应关系实体集与二维表有着自然的对应关系实体集名实体集名 表名表名实体集属性实体集属性 表列表列实体集码实体集码 表的主码表的主码实体实体表的行(表中存储的记录)表的行(表中存储的记录)ER模型 关系模型系号系号系名系名电话电话d01计算机系计算机系2290d02物理系物理系3390系系号系名电话系表的结构表中数据ER图转换为关系表(1)表名(列名表
11、名(列名1,列名,列名2,)系主任(系主任(证件号证件号,姓名,职称),姓名,职称)系(系(系号系号,系名,电话),系名,电话)学生(学生(学号学号,姓名,性别,出生年月),姓名,性别,出生年月)课程(课程(课程号课程号,课程名,学分),课程名,学分)联系的信息如何存储联系的信息如何存储?联系的信息也放在二维表里联系的信息也放在二维表里!联系的信息 1:1 系号 系名 电话 系主任 d01 计算机系 2255 dir01 d02 外语系 3395 dir02 d03 物理系 3787 dir03 证件号 姓名 职称 dir01 李卫东 教授 dir03 胡平 教授 dir02 刘国强 研究员
12、系表主码 外来码(不重值)系主任表主码 q在其中一个表中增加1列,存放另一表的主码q系表和系主任表之间存在1:1的联系联系的信息 1:n 学号 姓名 性别 出生年月日 系号 051001 张小红 女 1987-2-11 d01 051002 李东 男 1988-5-21 d01 052001 孙淑芬 女 1987-3-9 d02 学生表主码 学生表中的外来码 系表主码 系号 系名 电话 系主任 d01 计算机系 2255 dir01 d02 外语系 3395 dir02 d03 物理系 3787 dir03 q在n端表中增加一列,存放另一个表的主码q系表和学生表之间存在1:n的联系联系的信息
13、m:n 学号 姓名 性别 S06001 张小红 女 S06002 李东 男 S06001 孙淑芬 女 学生表 课程表 课号 课名 学分 c01 大学物理 4 c02 普通物理学 2 c03 高等数学 3 学号 课号 成绩 S06001 c01 S06001 c03 S06002 c01 选课表 q新建一个表,专门存储 m:n 的联系信息q学生表和开课表通过选课表建立了m:n的联系q学生表和选课表是1:n的联系q开课表和选课表是1:n的联系主码主码外来码外来码ER图转换为关系表(2)系主任(系主任(证件号证件号,姓名,职称),姓名,职称)系系(系号系号,系名,电话,系名,电话,系主任系主任)学生
14、(学生(学号学号,姓名,性别,出生年月,姓名,性别,出生年月,系号系号)课程(课程(课号课号,课名,学分),课名,学分)选课(选课(学号学号,课号课号,成绩),成绩)理解关系模型理解二维表的行列结构理解二维表的行列结构行行 实体信息实体信息列列 属性属性理解二维表的集合概念理解二维表的集合概念二维表是一个集合,每行为集合的一个元素二维表是一个集合,每行为集合的一个元素理解二维表之间的联系(外来码)理解二维表之间的联系(外来码)在Access中完成建表导航窗格导航窗格功能区功能区u表设计视图表设计视图uSQLSQL语句语句建立表表设计视图建立表表设计视图director表结构:表结构:dirno
15、:主码、文本:主码、文本 5、索引(有(无重复)、索引(有(无重复)dirname:文本:文本 10title:文本:文本 10dep表结构:表结构:dno:主码:主码 文本文本 3、索引(有(无重复)、索引(有(无重复)dname:文本:文本 10 phone:文本:文本 4 director:文本:文本5、索引(有(无重复)、索引(有(无重复)course表结构:表结构:cno:主码:主码 文本文本 3、索引(有(无重复)、索引(有(无重复)cname:文本:文本 20 credit:数字:数字 整数整数建立表使用SQL语句操作过程操作过程创建查询对象创建查询对象进入进入SQL视图视图编写
16、编写 create table 语句,执行该语句。语句,执行该语句。建建student表表create table student(sno char(6)primary key,sname varchar(10)not null,sex char(2)not null,birthday date,dno char(3)references dep(dno);建建enroll表表create table enroll(sno char(6)references student(sno),cno char(5)references course(cno),grade integer,primary
17、 key(sno,cno);向表中插入数据使用数据表视图使用数据表视图使用使用SQL语句语句INSERT INTO studentVALUES(s06001,张小红张小红,女女,#3/12/1989#,d01);建立表之间的关系 关系视图数据库工具数据库工具关系关系按钮:调出关系视图按钮:调出关系视图在视图中添加或隐藏表:快捷菜单在视图中添加或隐藏表:快捷菜单 显示表显示表/隐藏表隐藏表可视化建立表的关系:鼠标拖动可视化建立表的关系:鼠标拖动(主码列(主码列外来码列)外来码列)建立表之间的关系 关系视图建立关系建立关系定义参照定义参照完整性约束完整性约束关系表操作投影与选择在实际应用中,用户希
18、望看到的往往是一个表的部分数据,在实际应用中,用户希望看到的往往是一个表的部分数据,而不是整个表。而不是整个表。选择选择 从关系表中找出满足条件的行(指定选择条件)从关系表中找出满足条件的行(指定选择条件)投影投影 从关系表中选取部分列(指定需要哪些列)从关系表中选取部分列(指定需要哪些列)关系表操作连接连接连接 将两个表相关记录连接起来,形成跨表的将两个表相关记录连接起来,形成跨表的大记录。大记录。连接方式连接方式 通过通过“外来码外来码主码主码”实现连接实现连接公共列上具有相同值的记录连接在一起公共列上具有相同值的记录连接在一起连接条件连接条件:student.dno=dep.dnodno学生表学生表student系表dep