1数据库系统原理主讲人:彭一明教材:《数据库系统原理教程》王珊等、清华大学出版社2前言1.学习该课程的目的2.学习内容3.学习方法与要求4.参考书31.学习该课程的目的•数据库技术是数据管理的最新技术。(20世纪60年代中期)它的出现极大地促进了计算机应用向各行各业渗透。•目前基于数据库技术的计算机应用已成为计算机应用的主流(占60%)电子政务与管理信息系统(MIS)--政府、企业、银行、饭店、旅游、医疗、远程教育…网络应用(计费系统、目录服务…)人工智能系统、专家系统、地理信息系统、工程、科学统计以及图形、图象、CAD、多媒体等领域有广泛的应用,其数据库技术起着关键作用。•数据库系统原理是从事数据库应用系统开发、维护和数据库管理系统的建立及相关理论研究必备的基础知识。42.学习内容本课以关系数据库为重点比较全面讲解数据库的基本概念和基本技术。第一章绪论概述数据管理的进展、数据模型、数据库、数据库系统、数据库管理系统、数据库工程的基本概念。第二章~第四章讲解关系数据库关系数据库数据模型、数据语言、关系数据库语言SQL、关系数据库设计理论第五章数据库保护安全性、完整性、并发控制、恢复第六章数据库设计第七章关系数据库管理系统产品实例第八章数据库技术新进展53.学习方法与要求•该课的特点:以学习数据库的基本概念、基本技术和数据库设计为主。不象学习sqlserver,oracle,学习语言,编程为主。有些概念和语句的语法不仅要熟记,还要了解用在何处?作用是什么?怎么使用?•认真看书、听讲、复习、思考、讨论先修课有操作系统、离散数学、数据结构•认真完成作业及每章同步练习题•上机(通过MSSqlSerevr2000学习sql语言)6•两次面授课程•两次语音答疑•期末复习串讲•课程论坛•参考书(1)萨师煊,王珊《数据库系统概论》(第四版)高等教育出版社(2)徐洁磐,王银银《数据库系统引论》1996南京大学出版社(3)王能斌《数据库系统》1995电子工业出版社(4)李昭原主编,罗晓沛主审《数据库技术新进展》1997清华大学出版社(5)余晨,李文炬编著《SQLServer2000培训教程》2001年7月第1版2003年9月第7次印刷,清华大学出版社(6)上机内容+sql概要语法(随课件光盘一起发布)8第一章绪论理解数据、数据库、数据库管理系统和数据库系统的概念。掌握数据库系统的特点,数据库系统的三级模式结构,数据库系统的组成。掌握数据模型的相关概念。熟练掌握E-R模型的表示方法。91.数据:实际上是描述事物的符号记录。2.数据管理是指对数据的分类,组织,编码,储存,检索和维护。经历了三个阶段:(1)人工管理阶段(2)文件系统阶段(3)数据库系统阶段3.数据库(database,简称DB)数据库是长期储存在计算机内、有组织的、可共享的数据集合。4.数据库管理系统(简称DBMS)是数据管理软件。功能:数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制。5.数据库系统(简称DBS)指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。10数据库系统特点(4页)5点(1)数据的结构化——面向全组织复杂的数据结构(2)数据的共享性好,冗余度小(3)具有较高的数据与程序独立性(4)数据由DBMS统一管理和控制(安全性控制,完整性控制,并发控制,数据库恢复)(5)数据的最小存取单位是数据项。7.数据的逻辑独立性当数据的总体逻辑结构改变时,通过数据的总体逻辑结构与某类应用所涉及的局部逻辑结构之间的映象或转换功能保持数据的局部逻辑结构不变,由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改。这就是数据与程序的逻辑独立性,简称数据的逻辑独立性。118.数据的物理独立性当数据的存储结构(或物理结构)改变时,通过数据的存储结构与逻辑结构之间的映象或转换功能保持数据的逻辑结构不变,从而应用程序也不必改变。这就是数据与程序的物理独立性,简称数据的物理独立性。9.数据模型的重要性及组成数据模型是数据库系统的核心与基础。各种机器上实现的DBMS软件都基于某种数据模型,数据库发展阶段的划分也是以数据模型的发展作为主要的依据和标志。10.数据模型由三部分组成:数据结构、数据操作、完整性约束12数据模型概述•在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。•数据模型就是现实世界的模拟。数据模型应满足三方面要求:一是能比较真实地模拟观实世界;二是容易为人所理解;三是便于在计算机上实现。•模型划分为两类:它们分属于两个不同的层次。第一类模型是概念模型,也称信息模型,它是按用户的观点对数据和信息建模。另一类模型是数据模型,它是按计算机系统的观点对数据建模。主要包括网状模型、层次模型、关系模型等。13数据模型是数据库系统的核心和基础。各种机器上实现的DBMS软件都是基于某种数据模型的。为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型。通常分二步:首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,不是某个DBMS支持的数据模型,而是概念级的模型--概念模型;然后再把概念模型转换为计算机上某一DBMS支持的数据模型。概念模型实际上是现实世界到机器世界的一个中间层次。用于信息世界的建模,是现实世界到信息世界的第一层抽象,是用户与数据库设计人员之间进行交流的语言。概念模型14图1-10对象的抽象模型151.信息世界的基本概念信息世界(概念模型)涉及的概念主要有:(1)实体(entity)客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系,例如,一个职工、一个学生、一个部门、一门课、学生的一次选课、部门的一次订货,老师与系的工作关系(即某位老师在某系工作)等。(2)属性(attribute)实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如,学生实体可以由学号、姓名、性别、出生年份、系、入学时间等属性组成(94002268,张山,男,1976,计算机系,1994)。这些属性组合起来表征了一个学生。16(3)码(key)唯一标识实体的属性集称为码。例如,学号是学生实体的码。(4)域(domain)属性的取值范围称为该属性的域。例如,学号的域为8位整数,姓名的域为字符串集合.年龄的域为小于35的整数,性别的域为(男,女)。(5)实体型(entitytype)用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,学生(学号,姓名,性别,出生年份,系,入学时间)就是一个实体型。(6)实体集(entityset)同型实体的集合称为实体集。例如,全体学生就是一个实体集。17(7)联系(relationship)在现实世界中,事务内部以及事务之间是有联系的,在信息世界中,这些联系反映为实体内部的联系和实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。①两个实体型之间的联系可以分为三类:•一对一联系(1:1)如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然。称实体集A与实体集B具有一对一联系。记为1:1。例如:班级与班长。18•一对多联系(1:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n=0)与之联系,反之对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,称实体集A与实体集B具有一对多联系。记为1:n。例如,班级与学生。19•多对多联系(m:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n=0)与之联系,反之对于实体集B中的每一个实体,实体集A中有m个实体(m=0)与之联系,称实体集A与实体集B具有多对多联系。记为m:n。例如,课程与学生。20概念模型应该能够方便、准确地表示出信息世界中的常用概念。表示方法很多,其中最为常用的是P.P.S.Chen于1976年提出的实体—联系方法(entity-relationshipapproach)。该方法用E—R图来描述现实世界的概念。E—R图提供了表示实体型、属性和联系的方法是:·实体型:用矩形表示,矩形框内写明实体名。·属性:用椭圆形表示,并用无向边将其与相应的实体连接。·联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。概念模型的表示方法2111.概念模型常用表示方法:实体—联系法(E-R图描述)E-R图成分(实体、属性、联系),会画E-R图。22完整的E-R图有属性实体的属性表示23E-R图实例(选修与组成的属性标在联系中)2425数据模型在机器世界中不同的数据模型具有不同的数据结构形式。目前最常用的数据模型有层次模型(hierarchicalmodel)、网状模型(networkmodel)、关系模型(relationalmodel)、面向对象的模型。其中层次模型和网状模型统称为非关系模型。非关系模型的数据库系统在20世纪70年代与80年代初非常流行。关系模型的数据库系统80年代初到现在非常流行。面向对象模型是在20世纪80年代以来,面向对象的方法和技术在计算机各个领域的应用发展起来的。26关系模型是目前最重要的一种模型。美国IBM公司的研究员E.F.codd于1970年发表题为“大型共享系统的关系数据库的关系模型”的论文,文中首次提出了数据库系统的关系模型。20世纪80年代以来,计算机厂商新推出的数据库管理系统(DBMS)几乎都支持关系模型。数据库领域当前的研究工作都是以关系方法为基础。1.关系数据模型的数据结构在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和列组成。例如,图l—23中的学生人事记录就是一个关系模型,它涉及下列概念。关系数据模型2712.关系模型中几个主要术语关系、元组、属性、域、分量、码、关系模式关系:定义2.3D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,用R(D1,D2,…,Dn)表示。关系是笛卡尔积的子集,所以关系也是一个二维表。元组:表的每行为一个元组。属性:对每列起一个名字,称为属性(表中的一列即为一个属性)。域(domain):属性的取值范围。分量:元组中的一个属性值。码(候选码):若关系中的某一属性组的值能唯一地标识一个元组,而其真子集不行,则称该属性组为候选码。主码:若一个关系有多个候选码,则选定其中一个为主码关系模式:对关系的描述,一般表示为:R(U)关系名(属性1,属性2,…...,属性n)三元组表示法:R(U,F)2829关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,…...,属性n)例如:学生(学号,姓名,性别,系别,年龄,籍贯)课程(课程号,课程名,学分)在关系模型中,实体以及实体间的联系都是用关系来表示。例如学生与课程之间的多对多联系(选修)在关系模型中可以表示如下:选修(学号,课程号,成绩)30关系数据模型的操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性。其具体含义将在后面介绍。关系模型中的数据操作是集合操作,操作对象和操作结果都是关系、即若干元组的集合。而不像非关系模型中那样是单记录的操作方式。另一方面,关系模型把存取路径向用户隐蔽起来,用户只要指出“干什么”或“找什么”,不必详细说明“怎么干”或“怎么找”.从而大大地提高了数据的独立性,提高了用户的生产率。Select*fromstudent2.关系数据模型的操纵与完整性约束3113.集中式数据库系统的三级模式结构及二级映象。数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。两级映象功能是:外模式/模式映象,模式/内模式映象。32•掌握关系模型、关系、关系模式、关系数据库、关系数据库系统和关系数据库管理系统的概念。•正确理解关系的码、外码•理解关系的完整性内