1、大学计算机基础大学计算机基础7.1 数据库系统概述7.2 实体-联系模型和关系模型7.3 关系型数据库标准语言7.4 Access数据库管理系统 2数据库技术是研究数据的存储、设计和使用的技术,是计算机应用的一个重要分支。信息化社会离不开信息系统,信息系统的核心就是数据库系统。数据库技术广泛应用于各个领域:大学计算机基础考试系统 学生学籍管理系统 银行储蓄管理系统 企业生产管理系统 政府部门管理决策系统 搜索引擎等3数据库(DataBase,DB)长期保存在计算机外存上的、有结构的、可共享的数据集合。数据库管理系统(DataBase Management System,DBMS)对数据库进行管
2、理的软件系统。负责对数据库的操作与控制,如查询、插入、删除、更新等。数据库系统(DataBase System,DBS)由数据库、数据库管理系统、数据库管理员等构成的计算机系统。数据库应用系统(DataBase Application System,DBAS)建立在数据库系统之上的一类计算机应用系统,由数据库系统、应用程序及其开发人员、用户等组成。4用户用户操作系统操作系统数据库数据库数据库数据库管理员管理员数据库管理系统数据库管理系统应用程序应用程序开发人员开发人员数据库管理系统是数据库系数据库管理系统是数据库系统的核心,而数据库系统是统的核心,而数据库系统是数据库应用系统的核心。数据库应用
3、系统的核心。计算机数据管理技术经历了三个阶段:数据库技术是对传统信息管理模式的大变革提高了信息的利用率缩短了信息的传播过程实现了信息一体化的管理5人工管理阶段人工管理阶段 文件系统阶段文件系统阶段数据库系统阶段数据库系统阶段1950196019701946ENIAC 2020世纪世纪5050年代中期以前:年代中期以前:p硬件方面只有卡片、纸带、磁带等存储设备硬件方面只有卡片、纸带、磁带等存储设备p软件方面没有操作系统,没有进行数据管理的软件软件方面没有操作系统,没有进行数据管理的软件p此时的计算机、数据主要以科学计算为目的此时的计算机、数据主要以科学计算为目的p原始数据随程序一起输入内存原始数
4、据随程序一起输入内存 、运算、退出、运算、退出 -数据是面向应用数据是面向应用 -数据不具有共享性数据不具有共享性 p数据需要由应用程序自己来管理数据需要由应用程序自己来管理 p程序与相应的数据有着很强的依赖性程序与相应的数据有着很强的依赖性p程序与数据之间不具有独立性程序与数据之间不具有独立性 应用程序应用程序1应用程序应用程序2应用程序应用程序n数据集数据集n数据集数据集2数据集数据集12020世纪世纪6060年代中期年代中期q 硬件方面有了磁带、磁盘等大容量存储设备硬件方面有了磁带、磁盘等大容量存储设备q 软件方面有了操作系统软件方面有了操作系统 q 不仅用于科学计算,还用于数据管理。所
5、有相关数据存放不仅用于科学计算,还用于数据管理。所有相关数据存放在特定的应用文件中,并由该文件系统进行管理。在特定的应用文件中,并由该文件系统进行管理。问题:问题:数据共享性差,冗余度大数据共享性差,冗余度大数据的不一致性数据的不一致性 程序与数据之间的独立性不高程序与数据之间的独立性不高数据缺乏统一的管理和控制数据缺乏统一的管理和控制 安全性、完整性安全性、完整性 、并发操作、数据破坏后的恢复、并发操作、数据破坏后的恢复 子系统的问题子系统的问题 :大量重复程序、技术难度:大量重复程序、技术难度 应用程序应用程序1应用程序应用程序2应用程序应用程序n数据集数据集n数据集数据集2数据集数据集1
6、存取方法存取方法2020世纪世纪6060年代后期年代后期:硬件方面出现了大容量且价格低廉的磁盘硬件方面出现了大容量且价格低廉的磁盘 软件方面操作系统已开始成熟,为数据技术的发展提供了软件方面操作系统已开始成熟,为数据技术的发展提供了良好的基础良好的基础 数据处理的规模越来越大,数据共享的要求越来越强烈数据处理的规模越来越大,数据共享的要求越来越强烈数据库技术诞生的标志数据库技术诞生的标志:19681968年美国年美国IBMIBM公司推出的公司推出的层次模型层次模型的的IMSIMS数据库管理系统数据库管理系统 19691969年美国数据系统语言研究会下属数据库任务组公布了年美国数据系统语言研究会
7、下属数据库任务组公布了关于关于网状模型网状模型的的DBTGDBTG报告报告 19701970年年IBMIBM公司研究员公司研究员E.F.CoddE.F.Codd发表论文提出了发表论文提出了关系模型关系模型 查询某个数据项的和、最大值用如下语句来实现:查询某个数据项的和、最大值用如下语句来实现:SELECT sum(SELECT sum(数据数据)AS AS 数据和数据和FROM FROM 数据表数据表SELECT max(SELECT max(数据数据)AS AS 最大值最大值FROM FROM 数据表数据表应用程序应用程序1应用程序应用程序2应用程序应用程序n数据库数据库DBMS10阶段阶段
8、特点特点人工管理阶段人工管理阶段 文件系统阶段文件系统阶段数据库系统阶段数据库系统阶段数据存储方式数据存储方式数据不保存数据不保存保存在文件中保存在文件中保存在数据库中保存在数据库中数据组织方式数据组织方式由程序员自己由程序员自己确定确定以记录为单位以记录为单位进行组织进行组织数据结构化数据结构化(数据模型)(数据模型)数据独立性数据独立性与程序不独立与程序不独立有一定的独立有一定的独立性性独立性强独立性强数据共享性数据共享性共享性差共享性差有一定的共享有一定的共享性性共享性好共享性好数据冗余度数据冗余度冗余度大冗余度大冗余度较大冗余度较大冗余度低冗余度低11概念模型现实世界存储模型抽象数据化
9、序列化逻辑模型现实世界是由实际存在的事现实世界是由实际存在的事物组成物组成的。的。信息世界是现实世界在人脑信息世界是现实世界在人脑中的中的反映。反映。计算机世界是信息世界数据计算机世界是信息世界数据化后的化后的产物。产物。计算机世界计算机世界信息世界信息世界概念模型是从现实世界到逻辑模型转换的中间模型。是进行数据库设计的前提。是数据库设计人员对现实世界研究的产物。是数据库设计人员与用户进行交流的工具。概念模型不考虑数据的操作,而只是用比较有效的、自然的方式描述现实世界的事物及其联系。最常用的概念模型是:实体联系模型。12数据模型是概念模型数据化后的产物,表达了数据库管理系统的数据组织结构,是数
10、据库管理系统的核心。数据模型的三个组成要素 数据结构:树型结构、网状结构、关系结构。数据操作:查询、插入、删除、修改等。数据的约束条件:保证数据正确、有效、相容的完整性规则。数据模型的分类 层次模型:用树型结构来表示实体及实体间的联系;网状模型:用网状结构来表示实体及实体间的联系;关系模型:用关系结构来表示实体及实体间的联系,是目前应用最广泛的数据模型;面向对象模型:用对象来表示实体及实体间的联系。13以树状结构来表示实体及其之间的联系(以树状结构来表示实体及其之间的联系(1 1:n n)例例:早期早期IBMIBM公司的公司的IMSIMS系统系统 学校组织结构图学校组织结构图校部校部学院学院A
11、系系A学院学院B系系B系系C系系D系系E特点:有且仅有一个特点:有且仅有一个根结点根结点;每个;每个非根结点非根结点有且仅有一个有且仅有一个父父(直接上层直接上层)结点。它最适合表示实体的一对多联系。结点。它最适合表示实体的一对多联系。以网状结构表示实体及其之间的联系以网状结构表示实体及其之间的联系(m(m:n)n)例例:DBTG:DBTG系统,系统,IBMIBM的的IDMSIDMS系统系统 课程、学生、选课课程、学生、选课共同存在问题共同存在问题:难以实现系统扩充,插入或删除数难以实现系统扩充,插入或删除数据时,涉及到大量链接指针的调整据时,涉及到大量链接指针的调整。学生 学号 姓名 系别
12、选课 学号 课程号 成绩 课程 课程号 课程名 学分 特点:可能有特点:可能有多个根结点多个根结点,某些非根结点可能,某些非根结点可能有多个父结点有多个父结点,适合表示实体的多对多联系。适合表示实体的多对多联系。StudentsStudents表表学号学号姓名姓名性别性别党员党员专业专业出生年月出生年月990001王涛王涛男男No物理物理89-01-21990002庄前庄前女女Yes物理物理89-09-21990101丁保华丁保华男男No数学数学90-04-18990102姜沛棋姜沛棋女女No数学数学88-12-02990103张智忠张智忠男男No数学数学88-08-06990201程玲程玲女
13、女Yes计算机计算机90-11-14990202黎敏艳黎敏艳女女Yes计算机计算机90-02-21990203邓倩梅邓倩梅女女Yes计算机计算机90-04-28记录记录 属性名属性名(字段名字段名)关键字关键字确定一条记录确定一条记录 数据的逻辑结构是一张二维表,由行列组成。数据的逻辑结构是一张二维表,由行列组成。一张二维表就是一个关系,表中记录表示实体。一张二维表就是一个关系,表中记录表示实体。同类实体同类实体间的联系由间的联系由同表同字段同表同字段实现;实现;不同实体型不同实体型之间联系由之间联系由相同含义字段相同含义字段实现。实现。属性值属性值(字段值字段值)将现实中所有实体都模拟成对象
14、。例如,一个整将现实中所有实体都模拟成对象。例如,一个整数、一个日期、一个人,一辆汽车、一门课程等。数、一个日期、一个人,一辆汽车、一门课程等。一个一个对象对象对应对应ERER模型中一个模型中一个实体实体。主要特点:主要特点:身份证号身份证号姓名姓名性别性别驾驶证号驾驶证号车牌号车牌号车型车型颜色颜色面向对象数据模型面向对象数据模型 将一个对象的相关将一个对象的相关数据数据和和代码代码封装在一起,封装在一起,成为成为一个单元一个单元 。通过通过消息消息完成对象之间完成对象之间沟通沟通,对象间,对象间接口是一个所允许的接口是一个所允许的消息集合消息集合 。身份证号身份证号姓名姓名性别性别驾驶证号
15、驾驶证号踩刹车踩刹车踩油门踩油门转方向盘转方向盘停车停车启动启动转向转向车牌号车牌号车型车型颜色颜色存储模型是对数据存储结构的抽象,描述了数据在系统内部的表示方式和存取方法。存储模型的具体实现是数据库管理系统的任务,一般用户不必考虑其存储细节。19层次型数据库管理系统网状型数据库管理系统关系型数据库管理系统20数据模型数据模型数据库管理系统数据库管理系统21外模式A外模式B模式应用1应用2内模式数据库OSDBMS应用3外模式/模式映象模式/内模式映象局部逻辑结构全局逻辑结构数据存储结构三级模式、二级映象22VBVCPowerBuilderDelphiJavaC#ACCESSMS SQL Ser
16、verORACLEFOXPRO数据库数据库数据库数据库管理系统管理系统DB2MySQL数据库数据库应用程序应用程序全都是全都是关系型关系型数据库数据库23客户机客户机/服务器系统服务器系统(Client/Server(Client/Server,简称,简称C/S)C/S)浏览器浏览器/服务器系统服务器系统(Browser/Server(Browser/Server,简称,简称B/S)B/S)WebInternetDBMSDBMSClientBrowser24需求分析阶段需求分析阶段概念结构设计阶段概念结构设计阶段逻辑结构设计阶段逻辑结构设计阶段物理结构设计阶段物理结构设计阶段数据库实施阶段数据
17、库实施阶段数据库运行和维护数据库运行和维护阶段阶段25分布式数据库分布式数据库数据库中一个数据在多个不同的地理位数据库中一个数据在多个不同的地理位置存储的和处理。置存储的和处理。面向对象数据库面向对象数据库可以像对待一般对象一样存储复杂信息可以像对待一般对象一样存储复杂信息与过程。与过程。多媒体数据库多媒体数据库涉及图像、音频、视频处理、三维动画、涉及图像、音频、视频处理、三维动画、数据存储数据存储与检索与检索等技术。等技术。数据仓库数据仓库面向主题的、集成的、稳定的和随时间面向主题的、集成的、稳定的和随时间变化的数据集合,用于决策制定。变化的数据集合,用于决策制定。工程数据库工程数据库存储和
18、管理各种工程设计图形和工程设存储和管理各种工程设计图形和工程设计文档,并能为工程设计提供各种服务计文档,并能为工程设计提供各种服务的数据库。的数据库。空间数据库空间数据库是描述、存储与处理具有位置、形状、是描述、存储与处理具有位置、形状、大小、分布特征及空间关系等属性的空大小、分布特征及空间关系等属性的空间数据及其属性数据的数据库系统。间数据及其属性数据的数据库系统。在进行数据库设计时,一般先要建立概念模型,然后将概念模型转换为数据模型。常用的概念模型是实体-联系模型。常用的数据模型是关系模型。因此,在实际应用中,就是先建立实体-联系模型,再将其转化为关系模型,进而可以利用关系型数据库管理系统
19、来管理数据。26实体实体-联系联系模型模型关系模型关系模型关系型数关系型数据库系统据库系统概念模型是在信息世界中,对事物进行提取和抽象,找出事物特性以及事物之间联系的方法。该模型将现实世界的要求转化成实体、联系、属性的概念,并用一种图直观地表示出来.在设计概念模型时,最著名、最实用的是P.P.S.Chen于1976年提出的实体-联系模型“EntityRelationship Model”,简称ER模型。27陈品山陈品山信息世界信息世界实体实体,属性属性概念概念模型模型现实世界现实世界事物事物,特征特征1.1.实体实体 客观存在并可相互区别的事物。可以是具体的人、客观存在并可相互区别的事物。可以
20、是具体的人、事物,也可以是抽象的概念事物,也可以是抽象的概念或某种联系。或某种联系。例如:例如:实体实体属性属性域域码码实体型实体型实体集实体集实体名实体名联系联系E-R模型中的术语:模型中的术语:操作流程、选课操作流程、选课 2 2.属性属性实体所具有的特性称为实体所具有的特性称为实体的属性实体的属性。例如:编号、姓名、性别、出生日期和职称。例如:编号、姓名、性别、出生日期和职称。3.3.域域即实体即实体属性的取值范围。属性的取值范围。实体在任一属性上的取值都是有限制的,属性值是实体在任一属性上的取值都是有限制的,属性值是实体属性的具体化表示,属性值的集合表示一个实体实体属性的具体化表示,属
21、性值的集合表示一个实体 。例如:例如:“103601103601”是编号是编号值,编号的域为值,编号的域为6 6位数字位数字组成的字符串;组成的字符串;“男男”是性别是性别值,其域为男或女值,其域为男或女 。2103010221030102 张晓伟张晓伟 男男 汉族汉族 19841984年年6 6月月1818日日 学生实体属性学生实体属性 学生实体属性值学生实体属性值 学号学号姓名姓名性别性别民族民族出生日期出生日期4.4.实体型实体型 用用实体名实体名及该实体所有属性来表示及该实体所有属性来表示一种实体类一种实体类型型,用于刻画,用于刻画出全部同质实体的共同特征和出全部同质实体的共同特征和性
22、质。性质。例如:教师(编号,姓名,性别,出生日期,例如:教师(编号,姓名,性别,出生日期,职称,联系电话,在职)描述教师类实体。职称,联系电话,在职)描述教师类实体。5.5.实体集实体集 同类型的同类型的实体集合称为实体实体集合称为实体集,同一个实体集集,同一个实体集中的实体中的实体具有相同的属性,但不能存在两个完全相具有相同的属性,但不能存在两个完全相同的实体。同的实体。6 6.码码 唯一唯一标识和区分实体的属性(或属性组合)称标识和区分实体的属性(或属性组合)称为码,一个实体集中不能存在两个相同码值的实体为码,一个实体集中不能存在两个相同码值的实体。学号学号姓名姓名性别性别民族民族出生日期
23、出生日期学生(学号学生(学号,姓名姓名,性性别别,民族民族,出生日期)出生日期)学生实体型学生实体型考试考试课程名课程名地点地点时间时间时长时长人数人数课程号课程号考试(课程号考试(课程号,课课程名程名,地点地点,时间时间,时长时长,人数)人数)考试实体型考试实体型003张三23004李四24005王五2500425张三实体实体集23,24汉字三位数字学生实体型域属性学号姓名年龄码实体名33学生(学号、姓名、年龄)现实世界中,事物内部及事物之间的都存在着联系。概念模型中,实体内部属性之间及实体之间也存在着联系。联系分为:实体集内部的联系、实体集之间的联系。两个实体集之间的联系分为以下三类:(a
24、)一对一联系;(b)一对多联系;(c)多对多联系34学生(学号、姓名、年龄)课程(课程号、课程名称、学时数)实体型7.7.联系联系实体之间存在一一对应关系。如表中数据记录与实实体之间存在一一对应关系。如表中数据记录与实体,体,教师与黑板教师与黑板,人与座椅,学校与校长人与座椅,学校与校长等。等。1.1.一对一一对一 对于实体集对于实体集A A中的每中的每一个实体,实体集一个实体,实体集B B中至多有一个实体与中至多有一个实体与之联系,反之亦然。之联系,反之亦然。11BA一个实体对应多个实体一个实体对应多个实体 。如实体型与实体。如实体型与实体(表与数据记录),数据库与表(表与数据记录),数据库
25、与表,班级班级与与学生学生等。等。2.2.一对一对n n或或n n对一(一对多)对一(一对多)对于实体集对于实体集A A中的每一个中的每一个实体,实体集实体,实体集B B中有中有n n个实个实体与之联系。反之体与之联系。反之,对于对于实体集实体集B B中的每一个实体中的每一个实体,实体集,实体集A A中至多有中至多有1 1个实个实体与之联系。体与之联系。1n多个实体对应多个实体多个实体对应多个实体 。如学生与课程、教。如学生与课程、教师与学生、听众与交响乐演奏者之间的关系等。师与学生、听众与交响乐演奏者之间的关系等。3.m3.m对对n n(多对多)(多对多)3737对于实体集对于实体集A A中
26、的每一个中的每一个实体,实体集实体,实体集B B中有中有m m个实个实体与之联系。反之体与之联系。反之,对于对于实体集实体集B B中的每一个实体中的每一个实体,实体集,实体集A A中至多有中至多有n n个实个实体与之联系。体与之联系。mn矩形表示实体集(型)实体名写在框内。椭圆表示属性 属性名写在框内;码用下划线标出;用线与实体集连接,表示隶属关系。棱形表示联系 联系名写在菱形框内;用无向边与相关实体集连接;联系的类型写在无向边的旁边。3839学生课程性别性别姓名姓名年龄年龄班级班级学号学号课程号课程号学时数学时数选课课程名称课程名称mn学号学号课程号课程号学生(学号、姓名、年龄)课程(课程号
27、、课程名称、学时数)选课(学号、课程号)“关系数据库之父关系数据库之父”1981年荣获年荣获ACM图灵奖图灵奖1923.8.232003.4.18Edgar Frank Codd关系关系(RelationRelation):简单地说,一个:简单地说,一个关系就是一张关系就是一张二维表格二维表格。关系模型关系模型:使用关系来组织数据并描述:使用关系来组织数据并描述数据间联系的模型就是关系模型。即将数据间联系的模型就是关系模型。即将数据组织成表格形式。数据组织成表格形式。关系型数据库管理系统关系型数据库管理系统:使用关系模型使用关系模型构成的数据库管理系统就称为关系型数构成的数据库管理系统就称为关
28、系型数据库管理系统,据库管理系统,Relation Database Relation Database Management SystemManagement System,简称,简称RDBMSRDBMS,RDBMSRDBMS所处理所处理的对象都是的对象都是关系(表)。关系(表)。40StudentsStudents表表学号学号姓名姓名性别性别党员党员专业专业出生年月出生年月990001王涛王涛男男No物理物理89-01-21990002庄前庄前女女Yes物理物理89-09-21990101丁保华丁保华男男No数学数学90-04-18990102姜沛棋姜沛棋女女No数学数学88-12-029
29、90103张智忠张智忠男男No数学数学88-08-06990201程玲程玲女女Yes计算机计算机90-11-14990202黎敏艳黎敏艳女女Yes计算机计算机90-02-21990203邓倩梅邓倩梅女女Yes计算机计算机90-04-28记录记录 属性名属性名(字段名字段名)关键字关键字确定一条记录确定一条记录 数据的逻辑结构是一张二维表,由行列组成。数据的逻辑结构是一张二维表,由行列组成。一张二维表就是一个关系,表中记录表示实体。一张二维表就是一个关系,表中记录表示实体。同类实体同类实体间的联系由间的联系由同表同字段同表同字段实现;实现;不同实体型不同实体型之间联系由之间联系由相同含义字段相同
30、含义字段实现。实现。属性值属性值(字段值字段值)学号学号姓名姓名分数分数101赵赵80102钱钱90103孙孙70行 (记录,元组)Row(Record,Tuple)列 (字段,属性)Column (Field,Attribute)结构 数据关系模式:成绩(学号,姓名,分数)列名(字段名,属性名)关系(Relation)表(Table)分量每一个分量必须是不可分的数据项。即不允许表中表。属性值每一个关系都有一个关系名成绩表值域42学号学号姓名姓名成绩成绩1001002 2胡一民胡一民80801001004 4王爱民王爱民90901001005 5张小华张小华7070学号学号姓名姓名身份证身份证
31、班级班级10021002胡一民胡一民210210010110041004王爱民王爱民110110030310051005张小华张小华2202200202学号学号课程号课程号成绩成绩1001002 21 180801001004 42 290901001002 22 27070Key关键字、码关键字、码Primary KeyPrimary Key主主键键/主主码码Candidate KeyCandidate Key候选关键字、候选码候选关键字、候选码非主属性非主属性主属性主属性43学号学号姓名姓名性别性别班级班级1001002 2胡一民胡一民男男01011001004 4王爱民王爱民男男0303
32、1001005 5张小华张小华女女02021011010 0宋文彬宋文彬男男01011011011 1胡民胡民男男0101班级班级人数人数班长班长0101333310021002020232321010101003033030100410040404303011011101学生表学生表 studentsstudents班级表班级表 classesclasses主主键键主键主键外键外键主表主表从表从表44以外键作为主键的表以外键作为主键的表1.1.实体型转换为关系模式实体型转换为关系模式 将每个实体型转换成一个关系模式。实体型的属将每个实体型转换成一个关系模式。实体型的属性即为关系模式的属性,实
33、体型的主码即为关系模式性即为关系模式的属性,实体型的主码即为关系模式的主关键字(主键)。的主关键字(主键)。7.2.3 E-R7.2.3 E-R模型转换为关系模型模型转换为关系模型学生学生性别性别姓名姓名年龄年龄班级班级学号学号例如,例如,“学生学生”实体型可以转换实体型可以转换为如下关系模式:为如下关系模式:学生(学生(学号学号,姓名,性别,姓名,性别,年龄,年龄,班级)班级),其中其中“学号学号”为学生关为学生关系的主键。系的主键。2.2.联系转换为关系模式联系转换为关系模式联系转换为关系联系转换为关系 模式的方法与联系的类型模式的方法与联系的类型有关。有关。(1 1)实体间是)实体间是1
34、 1:1 1联系联系若实体间是若实体间是1 1:1 1联系,可以转换为一个独立的关联系,可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式:则与该联系相连如果转换为一个独立的关系模式:则与该联系相连的各实体的主码以及联系本身的属性均转换为关系的的各实体的主码以及联系本身的属性均转换为关系的属性,任意实体的主码均可以作为该关系模式的主键。属性,任意实体的主码均可以作为该关系模式的主键。如果与某一端如果与某一端实体型合并为一个关系模式:则需要合并为一个关系模式:则需要在该实体型的属性(主码作为关系模式的主键)中
35、加在该实体型的属性(主码作为关系模式的主键)中加入另一入另一端实体型的主码(作为关系模式的外键)和联的主码(作为关系模式的外键)和联系本身的属性。该方法的好处是可以减少关系模式的系本身的属性。该方法的好处是可以减少关系模式的个数。个数。47学生计算机姓名姓名班级班级学号学号机器号机器号配置配置上机操作系统操作系统11出勤出勤如学生和计算机之间如学生和计算机之间的关系:的关系:方法一:方法一:上机(上机(学号学号,机器号,出勤),机器号,出勤)或或 上机(上机(机器机器号号,学号学号,出勤出勤)方法二:方法二:学生(学生(学号学号,姓名,班级,机器,姓名,班级,机器号,出勤号,出勤)或或 计算机
36、(计算机(机器机器号号,操作系统,配置,操作系统,配置,学号学号,出勤)出勤)(2 2)实体间)实体间1 1:n n联系联系若实体间是若实体间是1 1:n n联系,可以转换为一个独立的联系,可以转换为一个独立的关系模式,也可以与关系模式,也可以与n n端对应的实体型合并为一个端对应的实体型合并为一个关系模式。关系模式。如果转换为一个独立的关系模式,则与该联系相如果转换为一个独立的关系模式,则与该联系相连的实体型主码以及联系本身的属性均转换为关连的实体型主码以及联系本身的属性均转换为关系模式的属性,而该关系模式的主键为系模式的属性,而该关系模式的主键为n n端实体端实体型的主码。型的主码。如果与
37、n端实体型合并为一个关系模式,则在n端实体型的关系模式中加入1端实体型的主码。第二种方法方法可以减少关系模式个数,在应用中通常更倾向于这种方法。49学生班级姓名姓名性别性别学号学号班级号班级号人人数数组成班级名称班级名称n1如班级和学生之间的关系如班级和学生之间的关系:方法方法一:一:组成组成(学号学号,班级号),班级号)方法方法二:二:学生学生(学号学号,姓名,性别,班级,姓名,性别,班级号)号)(3 3)实体间)实体间mm:n n联系联系 若实体间是若实体间是mm:n n联系,则将该联系转换联系,则将该联系转换成独立的关系模式。关系模式的属性为两端实成独立的关系模式。关系模式的属性为两端实
38、体型的主码加上联系本身的属性,而关系模式体型的主码加上联系本身的属性,而关系模式的主键为两端实体型主码的组合。的主键为两端实体型主码的组合。学生学生课程课程性别性别姓名姓名年龄年龄班级班级学号学号课程号课程号学时数学时数选课选课课程名称课程名称mmn n选课(选课(学学号号,课程号课程号,成绩),成绩),其中其中,学号与课程号为选修关系的组合主键。,学号与课程号为选修关系的组合主键。关系模式:关系模式:成绩成绩51003张三23004李四24005王五25实体实体集23,24汉字三位数字学生实体型域学号学号姓名姓名年龄年龄003张三张三23004李四李四24005王五王五25学生关系模式元组属
39、性关系学号姓名年龄码 52关系模型的特点关系模型的特点 优点优点 有严格的数学基础。有严格的数学基础。概念单一。实体、联系、检索结果都用关系概念单一。实体、联系、检索结果都用关系表示。表示。存取路径对用户透明,因而具有更高的数据存取路径对用户透明,因而具有更高的数据独立性、更好的安全保密性,简化了数据库独立性、更好的安全保密性,简化了数据库的建立开发工作。的建立开发工作。缺点缺点 查询效率往往不如非关系数据模型。查询效率往往不如非关系数据模型。基本表基本表基本表就是关系模型中实际存在的表,如表基本表就是关系模型中实际存在的表,如表StudentsStudents 查询表查询表查询表是查询结果表
40、,或查询中生成的临时表查询表是查询结果表,或查询中生成的临时表 视图视图视图是由基本表或其他视图导出的表视图是由基本表或其他视图导出的表视图是为数据查询、处理及数据安全设计的虚表,视图是为数据查询、处理及数据安全设计的虚表,不对应实际存储的数据。不对应实际存储的数据。55VBVCPowerBuilderDelphiJavaC#ACCESSMS SQL ServerORACLEFOXPRO数据库数据库数据库数据库管理系统管理系统DB2MySQL数据库数据库应用程序应用程序全都是全都是关系型关系型数据库数据库Access数据库管理系统Access Access 是是Microsoft Office
41、 Microsoft Office 套件的重要组成部分。套件的重要组成部分。AccessAccess适用于小型商务活动,用以存贮和管理商务适用于小型商务活动,用以存贮和管理商务活动所需要的数据。活动所需要的数据。AccessAccess不仅是一个数据库,而且具有强大的数据管不仅是一个数据库,而且具有强大的数据管理功能,它可以方便地利用各种数据源,生成窗体理功能,它可以方便地利用各种数据源,生成窗体(表单),查询,报表和应用程序等。(表单),查询,报表和应用程序等。SQL Server数据库管理系统SQL Server SQL Server 是一个关系数据库管理系统。是一个关系数据库管理系统。最
42、初由最初由Microsoft Microsoft、Sybase Sybase 和和Ashton-TateAshton-Tate三家公司共同开三家公司共同开发。发。1988 1988 年推出了第一个年推出了第一个OS/2 OS/2 版本。版本。在在Windows NT Windows NT 推出后,推出后,MicrosoftMicrosoft与与Sybase Sybase 在在SQL Server SQL Server 的开发上分道扬镳。的开发上分道扬镳。Microsoft Microsoft 将将SQL Server SQL Server 移植到移植到Windows NTWindows NT系
43、统上专注于系统上专注于开发推广开发推广SQL Server SQL Server 的的Windows NT Windows NT 版本。版本。Sybase Sybase 专注于专注于SQL ServerSQL Server在在UNIX UNIX 操作系统上的应用。操作系统上的应用。可跨越运行可跨越运行Microsoft Windows Microsoft Windows 的大型多处理器的服务器等的大型多处理器的服务器等种平台使用。种平台使用。适合于中、大型数据库应用系统。适合于中、大型数据库应用系统。Oracle数据库管理系统OracleOracle(甲骨文)起初是一个关系数据库公司。(甲骨文
44、)起初是一个关系数据库公司。财富财富100100强中的强中的9898家公司都采用家公司都采用OracleOracle技术。技术。OracleOracle是第一个跨整个产品线(数据库、业务应用是第一个跨整个产品线(数据库、业务应用软件和应用软件开发与决策支持工具)开发和部署软件和应用软件开发与决策支持工具)开发和部署100%100%基于互联网的企业软件的公司。基于互联网的企业软件的公司。OracleOracle是世界领先的信息管理软件供应商和世界第是世界领先的信息管理软件供应商和世界第二大独立软件公司,是世界上使用最广泛的关系数二大独立软件公司,是世界上使用最广泛的关系数据库之一。据库之一。结构
45、化查询语言(Structured Query Language,缩写为SQL,读作“sequel”)是关系型数据库的国际标准语言。所有的关系型数据库管理系统都支持SQL。SQL语言的特点:高度非过程化,只要求“做什么”,不要求“怎么做”;操作简单,功能强大;既能直接以命令方式交互使用,又能嵌入到程序设计语言中使用;SQL语句的操作对象与操作结果都是关系:基本表:关系模型中实际存在的表。查询表:查询结果表,或查询中生成的临时表。视图:是由基本表或其他视图导出的表。视图是为数据查询、处理及数据安全设计的虚表,实际上并不存储数据。59数据定义语言(Data Define Language,DDL):
46、用于定义、修改和删除数据库中的对象,如表、索引、视图等。动词(语句或命令):CREATE TABLE、ALTER TABLE、DROP TABLE。数据操纵语言(Data Management Language,DML):用于增加、修改和删除数据库中的数据,即改变表的内容。动词(语句或命令):INSERT、UPDATE、DELETE。数据查询语言(Data Query Language,DQL):用于查询数据库中满足条件的数据内容。动词(语句或命令):SELECT。数据控制语言(Data Control Language,DCL):用于控制对数据库操作的权限。动词(语句或命令):GRANT、R
47、EVOKE。60创建一个描述学生信息的“学生”表,表结构如下表所示。61字段字段名称名称字段类型字段类型字段长度字段长度学号学号文本型文本型9 9个字符个字符姓名姓名文本型文本型1010个字符个字符性别性别文本型文本型1 1个字符个字符党员党员是是/否型否型系统默认系统默认出生日期出生日期日期日期/时间型时间型系统默认系统默认奖学金奖学金货币型货币型系统默认系统默认专业专业文本型文本型8 8个字符个字符SQL中常用的数据类型、运算符和内部函数请参见教材表7.2、7.3和7.4。62CREATE TABLE CREATE TABLE 学生学生(学号学号 CHAR(9)NOT NULL PRIMA
48、RY KEY,CHAR(9)NOT NULL PRIMARY KEY,姓名姓名 CHAR(10),CHAR(10),性别性别 CHAR(1),CHAR(1),党员党员 BIT,BIT,出生日期出生日期 DATETIME,DATETIME,奖学金奖学金 MONEY,MONEY,专业专业 CHAR(8)CHAR(8););创建一个描述班级信息的“班级”表,表结构如下表所示。63字段名称字段名称字段类型字段类型字段长度字段长度班级号班级号文本型文本型2 2个字符个字符班级名称班级名称文本型文本型1010个字符个字符人数人数短整型短整型系统默义系统默义CREATE TABLE CREATE TABLE
49、 班级班级(班级号班级号 CHAR(2)NOT NULL,CHAR(2)NOT NULL,班级名称班级名称 CHAR(10),CHAR(10),人数人数 SMALLINT,SMALLINT,PRIMARY KEY(PRIMARY KEY(班级号班级号););在已创建的“班级”基本表中,增加“专业”字段,数据类型为文本型,长度为10个字符;修改“人数”字段的数据类型为长整型;删除“班级名称”字段。删除已存在的“班级”基本表。64ALTER TABLE ALTER TABLE 学生学生 ADD ADD 专业专业 CHAR(10);CHAR(10);ALTER TABLE ALTER TABLE 学
50、生学生 ALTER ALTER 人数人数 INTEGER;INTEGER;ALTER TABLE ALTER TABLE 学生学生 DROP DROP 班级名称班级名称;DROP TABLE 班级班级;向“学生”基本表中插入如下表所示的数据。65学号学号姓名姓名性别性别 党员党员出生日期出生日期奖学金奖学金专业专业201509120150910101王大力王大力男男是是1997-10-1997-10-222230003000计算机计算机201501220150120505李晓华李晓华女女是是1998-11-1998-11-151520002000数学数学201502020150200808张晓