第7章 数据库技术_第1页
第7章 数据库技术_第2页
第7章 数据库技术_第3页
第7章 数据库技术_第4页
第7章 数据库技术_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

我们毕业啦其实是答辩的标题地方TaiyuanUniversityofTechnology大学计算机基础计算机科学与技术学院

计算机基础教学部

数据库技术是计算机科学的重要分支,也是现代计算机信息系统与应用系统的重要基础和核心技术。3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部2

数据库技术主要解决的问题正是如何管理信息化时代的海量信息,以及从中进行数据分析和获取知识发现。因此,数据库的建设规模、性能、容量、应用范围、使用频度现已成为衡量一个国家信息化程度的重要指标。3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部37.1数据与大数据7.2数据管理与数据库7.3数据模型7.4关系数据库案例本章小结第七章数据库技术3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部47.1数据与大数据7.1.1数据(Data)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部5

数据是数据库系统研究和处理的基本对象。早期的计算机系统主要用于科学计算领域,处理的数据基本都是数值型数据,其实数字只是数据的一种最简单形式。但是随着计算机的应用范围不断扩大,数据的种类也更加丰富,比如文本(Text)、图形(Graph)、图像(Image)、音频(Audio)、视频(Video)等都属于数据的范畴。较常见的一种数据定义是:数据是描述事物的符号记录。数据的表现形式不一定能完全表达其内容,有些需要经过解释才能明确其具体含义。3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部6特征TITLE规模性(Volume)高速性(Velocity)多样性(Variety)真实性(Veracity)价值性(Value)管理方式TITLE数据规模数据类型处理对象处理工具典型应用TITLE商业智能智慧城市在线社交网络智能电网7.1.2大数据(BigData,BD)

大数据是一个极其庞大而复杂的数据集,以致无法在一定时间内用传统的数据处理方式对其进行获取、管理、分析和传递等操作,需要新的处理模式才能具有更强的洞察力和决策力。3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部77.2数据管理和数据库3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部8数据库技术数据库管理系统数据模型数据管理数据数据库数据库系统结构……7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部91、数据

数据是数据库系统研究和处理的基本对象。包含以下特征:(1)数据有“型”和“值”划分

数据的“型”(Type)是指数据的结构,即数据的内部构成和对外联系。数据的“值”(Value)是指数据的具体取值。学生(姓名、学号、性别、出生年月、所在专业)(张三,20150036,男,1995/10,计算机)课程(课程名、课程号、课时数)(数据库系统概论,00003224,48)型值7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部10(2)数据受数据类型和取值范围的约束

数据类型是针对不同的应用需求所设计的数据约束。根据数据类型的不同,数据的表示形式、存储方式及能进行的操作运算也不相同。常见的数据类型有数值型、字符串型、日期型、逻辑型等,它们具有不同的特点和用途。

数据的取值范围约束决定了数据的取值空间。例如,学生性别的取值范围是{“男”,“女”};年龄一般在16~30岁之间;课程课时数一般在0~80之间等。设置取值范围的约束是为了保证数据的有效性、避免出现错误的、无效的数据。7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部11数据处理工作主要是3类:(1)数据管理(2)数据加工(3)数据传播2、数据处理

数据处理(DataProcessing)指的是对各种形式数据进行的收集、组织、存储、加工和传播等一系列工作。数据处理的实质就是从已有数据出发,经过一系列适当的加工,转换成所需要的信息的过程。

信息=数据+数据处理7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部123、数据管理

在数据处理中,最基础的工作是数据管理(DataManagement),具体工作应包含三部分。

第一,将收集到的数据按照合理的结构进行分类、组织和编码,并且存储在物理设备上,使得数据可以持久性的保存。

第二,数据管理工作要能够根据需要进行数据的新增、修改、和删除等操作。

第三,数据管理工作要提供数据查询和基本的统计功能,以便使用者能够快速得到所需要的正确数据,进行各种后期处理。7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部133、数据管理数据管理技术的发展动力应用需求的推动计算机硬件的发展计算机软件的发展数据管理技术的发展过程人工管理阶段(20世纪40年代中--50年代中)文件系统阶段(20世纪50年代末--60年代中)数据库系统阶段(20世纪60年代末--现在)7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部143、数据管理(1)人工管理阶段20世纪50年代中期以前产生背景:应用需求:主要用于科学计算硬件

:外存只有纸带、卡片、磁带等,无直接存取存储设备软件

:尚无操作系统,更没有管理数据的专门软件;数据处理方式是批处理。应用程序1应用程序2应用程序n数据集1数据集2数据集n……图7.1人工管理阶段应用程序与数据之间的一一对应关系7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部153、数据管理(1)人工管理阶段特点:数据的管理者:用户(程序员),数据不保存数据面向的对象:某一应用程序数据的共享程度:无共享、冗余度极大数据的独立性:不独立,完全依赖于程序数据的结构化:无结构数据控制能力:应用程序自己控制应用程序1应用程序2应用程序n数据集1数据集2数据集n……图7.1人工管理阶段应用程序与数据之间的一一对应关系7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部163、数据管理(2)文件系统阶段20世纪50年代后期到60年代中期产生背景:应用需求:科学计算、管理硬件

:磁盘、磁鼓软件

:有文件系统数据处理方式:联机实时处理、批处理。应用程序1应用程序2应用程序n文件组1文件组2文件组n……存取方法图7.2文件系统阶段应用程序与数据之间的对应关系7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部173、数据管理(2)文件系统阶段特点:数据的管理者:文件系统,数据可长期保存数据面向的对象:某一应用程序数据的共享程度:共享性差、冗余度大数据的结构化:记录内有结构,整体无结构数据的独立性:独立性差,数据的逻辑结构改变必须修改应用程序数据控制能力:应用程序自己控制应用程序1应用程序2应用程序n文件组1文件组2文件组n……存取方法图7.2文件系统阶段应用程序与数据之间的对应关系7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部183、数据管理(3)数据库系统阶段20世纪60年代中期以后产生背景:应用需求:大规模管理硬件

:大容量磁盘、磁盘阵列软件

:数据库管理系统数据处理方式:联机实时处理,分布处理,批处理应用程序1应用程序2应用程序n…数据库管理系统数据库图7.4数据库管理阶段应用程序与数据之间的对应关系7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部193、数据管理(3)数据库系统阶段

以文件系统为主的数据管理方式已经不能满足应用的需求,为了解决多用户、多应用共享数据的需求,更加高效地管理和使用数据,数据库技术应运而生,出现了统一管理数据的专门的软件系统——数据库管理系统。

数据库系统的出现标志着数据管理技术的飞跃,用数据库系统来管理数据比文件系统有着明显的优点,主要包含在以下几个方面:数据独立性高数据结构化数据的共享性高、冗余度低7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部203、数据管理(3)数据库系统阶段教师科研记录教师基本记录课程记录学生选课记录学生学籍记录学生人事记录学生基本记录学号姓名性别年龄系家庭出身籍贯政治面貌日期学校学历名学号学期课程号成绩号课程号课程名称代课老师教师编号姓名性别年龄系教师编号姓名项目名称项目经费

数据结构化数据的共享性高、冗余度低数据独立性高7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部214、数据库

数据库(Database,DB)可简单理解为存放数据的仓库,是指长期存储在计算机内的、有组织、可共享的大量数据的集合。数据库本身可被看作是一个电子文件柜,它是基于计算机存储设备、按照一定的格式存放持久性数据的“容器”。数据库中的数据都是按照一定的模式进行组织和存储的,具有较少的冗余度、较高的数据独立性和易扩展性,可被多个不同的用户同时共享使用,并可通过相应的管理系统进行统一管理。7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部225、数据库管理系统

当数据库中的数据达到一定规模并且结构复杂时,需要专门的软件系统进行科学的组织和管理。数据库管理系统(DatabaseManagementSystem,DBMS)就是位于用户和操作系统之间的一层数据管理软件,它可以高效地组织、存储、管理和维护数据。DBMS功能数据定义数据组织、存储、管理数据操作数据控制其它7.2.1数据库及数据库管理系统3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部236、数据库系统

数据库系统(DatabaseSystem,DBS)是存储、管理、处理和维护数据的计算机系统,包含了计算机硬件、数据库、数据库管理系统(及其应用开发工具)、应用系统和所有数据库用户。

用户用户用户应用开发工具及应用系统数据库管理系统具操作系统数据库硬件数据库管理员应用程序员图7.5数据库系统7.2.2数据库系统的内部结构3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部241、三级模式结构

数据库系统的结构可以从多个不同角度进行划分。从数据库最终用户角度看到的是数据库系统的外部结构,可分为单用户结构、主从式结构、分布式结构、客户-服务器、浏览器-服务器等。从数据库应用开发人员角度看到的是数据库系统的内部结构,通常采用三级模式结构。2、两级映像功能7.2.2数据库系统的内部结构3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部25用户级数据概念级数据存储级数据全局逻辑结构局部逻辑结构外模式/模式映像用户A1用户A2用户B1用户C1用户C2应用程序A1应用程序A2应用程序B1应用程序C1应用程序C2外模式A外模式B外模式C模式内模式数据库模式/内模式映像DBMS操作系统存储组织结构模式:模式也称为逻辑模式或概念模式,是数据库中全部数据

的整体逻辑结构和特征的描述。7.2.2数据库系统的内部结构3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部26用户级数据概念级数据存储级数据全局逻辑结构局部逻辑结构外模式/模式映像用户A1用户A2用户B1用户C1用户C2应用程序A1应用程序A2应用程序B1应用程序C1应用程序C2外模式A外模式B外模式C模式内模式数据库模式/内模式映像DBMS操作系统存储组织结构外模式:也称为子模式,它是对各个用户或程序所涉及到的局

部数据的逻辑结构和数据特征的描述。7.2.2数据库系统的内部结构3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部27用户级数据概念级数据存储级数据全局逻辑结构局部逻辑结构外模式/模式映像用户A1用户A2用户B1用户C1用户C2应用程序A1应用程序A2应用程序B1应用程序C1应用程序C2外模式A外模式B外模式C模式内模式数据库模式/内模式映像DBMS操作系统存储组织结构内模式:也称为存储模式或者物理模式,它是数据库全部数据物理

结构和存储方式的描述,是数据在数据库内部的组织方式。7.2.2数据库系统的内部结构3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部28用户级数据概念级数据存储级数据全局逻辑结构局部逻辑结构外模式/模式映像用户A1用户A2用户B1用户C1用户C2应用程序A1应用程序A2应用程序B1应用程序C1应用程序C2外模式A外模式B外模式C模式内模式数据库模式/内模式映像DBMS操作系统存储组织结构外模式/模式映射:当模式改变时,修改各个映像作相应修改,保持

外模式不变,保证了数据和程序的逻辑独立性。7.2.2数据库系统的内部结构3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部29用户级数据概念级数据存储级数据全局逻辑结构局部逻辑结构外模式/模式映像用户A1用户A2用户B1用户C1用户C2应用程序A1应用程序A2应用程序B1应用程序C1应用程序C2外模式A外模式B外模式C模式内模式数据库模式/内模式映像DBMS操作系统存储组织结构模式/内模式映射:数据库的内模式发生改变时,修改映像保持模式

不变,从而外模式也不变,保证了数据和程序的物理独立性。3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部307.3数据模型7.3数据模型3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部31模型是对现实世界中客观存在事物特征的抽象。现实世界中的具体事物不可能被计算机直接处理,因此人们必须先把具体事物转换成计算机能够处理的数据。数据库技术中,同样是在对现实世界进行抽象后用数据模型(DataModel)的概念来描述数据库的结构和定义。数据模型也是一种模型,它是数据库系统的核心和基础,是用来描述数据、组织数据和对数据进行操作的。7.3数据模型3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部32良好的数据模型应满足三方面要求:一是能够尽量真实地模拟现实中的具体事物,二是容易被人所理解,三是便于在计算机上实现。但是一种模型想要同时较好地满足这三方面的要求非常困难,因此人们通常采用分层思想,在数据库系统开发的不同阶段,采用不同的数据模型:概念模型、数据逻辑模型和数据物理模型。7.3数据模型3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部33概念模型是独立于计算机系统的数据模型,它完全不涉及信息在计算机系统中的表示,只是按照用户的角度来对数据和信息进行建模,它是现实世界的第一层抽象,主要用于数据库系统设计阶段。这类模型中最著名的是实体-联系模型。7.3数据模型3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部34数据逻辑模型直接面向数据库的逻辑结构,它是按照计算机的角度对数据进行建模,它是现实世界的第二层抽象,主要用于数据库系统实现阶段。这类模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型和半结构化数据模型等。7.3数据模型3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部35数据物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,是面向计算机系统的。物理模型的具体实现是数据库管理系统的任务,数据库设计人员要了解和选择物理模型,最终用户则不需要考虑物理细节。3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部36数据结构TITLE数据库的组成对象以及对象之间的联系,是对系统静态特征的描述。数据操作TITLE对数据库中各种数据对象允许执行的操作集合,是对系统动态特征的描述。查询和更新两类完整性约束TITLE给定的数据模型中数据及其联系所具有的制约和依赖规则。以保证数据的正确、有效和相容数据模型是严格定义的一组概念的集合,这些概念精确地描述了数据模型的三要素:即数据结构、数据操作和数据的完整性约束条件。7.3数据模型7.3.1概念模型3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部37概念模型是现实世界到机器世界的一个中间层,是数据库设计的有力工具,可以很好地辅助数据库设计人员和用户进行交流,因此概念模型一方面应该能够方便、准确、直接地表达现实世界,另一方面还应该简单、清晰、易于用户理解。概念模型中涉及到的主要概念有:7.3.1概念模型3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部381.实体(Entity)

实体是指客观存在并可以相互区分的事物,可以是现实世界中的人、物、事,也可以是抽象的概念或者联系。例如一个教师,一个学生、一门课、学生的一次选课、教师与学院的从属关系等都是实体的范畴。2.属性(Attribute)

实体是指实体具有的某一特性,一个实体可通过若干个属性来刻画。例如可以通过学生的“学号”、“姓名”、“性别”、“年龄”、“学院”等属性来描述学生实体。属性值是属性的具体取值。例如属性值为(20150046,李强,男,20,计算机)的组合描述的是某个学生的具体特性。7.3.1概念模型3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部393.码(Key)

码也称为关键字,它能够唯一标识一个实体。码通常是一个属性或若干个属性的组合。例如学号是学生实体的码。4.域(Domain)

域是某个(些)属性的取值范围,例如可规定大学生的年龄为15~40之间的正整数。5.实体集(Entitytype)

同一类型实体的集合称为实体集。例如,全体学生就是一个实体集。7.3.1概念模型3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部406.联系(Relationship)

现实世界中事物内部和事物之间的联系在信息世界中可反映为实体内部(通常为组成实体的属性之间)的联系和实体之间(通常为不同实体集之间)的联系。班级班长负责11学院学生从属n1学生课程选课nma)一对一c)多对多b)一对多图7.8两个实体集之间联系的类型7.3.1概念模型3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部416.联系(Relationship)

多个实体集之间也会存在联系,联系类型一般为一对多和多对多。

单个实体集的实体之间也可以存在一对多或者多对多的联系。课程教师讲授m1a)一对多参考书nb)多对多供应商项目供应nm零件p图7.9多个实体集联系的实例图领导职工1n7.10同一实体集内的一对多联系7.3.1概念模型3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部42

概念模型的表示方法很多,其中最为著名和使用广泛的是P.P.Chen于1976年提出的实体-联系方法,该方法用ER图来直观表示概念模型。ER图中采用矩形框表示实体集,框内为实体集的名称。用与矩形框直线相连的椭圆形表示实体集的属性,椭圆内为属性名称,属性太多时可不直接画出,而是通过数据字典的方式表示(即文字说明方式)。菱形框表示实体之间的联系,菱形内为联系名称,需要注意的是联系也可以具有属性。最后用线段将具有联系的实体集(矩形)及它们之间的联系(菱形)连接起来,同时在线段旁边标出联系的类型。7.3.2层次模型(HierarchicalModel)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部43

层次模型是数据库系统中最早出现的数据逻辑模型,典型代表是IBM公司的IMS(InformationManagementSystem)数据库管理系统。

层次模型用树形结构来表示各类实体以及实体间的联系。

R1

根结点

R2

兄弟结点

R3

叶结点

R4

兄弟结点

R5

叶结点

叶结点有且只有一个结点没有双亲节点,这个结点是根结点;根以外的其它结点有且只有一个双亲结点。只能直接处理一对多的实体联系,如行政机构、家族关系等7.3.2层次模型(HierarchicalModel)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部44教员学生层次数据库模型

根结点记录型系的子女结点记录型教员的双亲结点叶结点字段7.3.3网状模型(Network

Model)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部45

用有向图(网络)结构表示实体以及实体之间联系的数据模型称为网状模型(NetworkModel),典型代表是1969年数据系统语言研究会组织下属的数据库任务组(DataBaseTaskGroup)提出的系统方案。网状模型与层次模型的区别网状模型允许多个结点没有双亲结点网状模型允许结点有多个双亲结点网状模型允许两个结点之间有多种联系(复合联系)网状模型可以更直接地去描述现实世界层次模型实际上是网状模型的一个特例7.3.3网状模型(Network

Model)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部46学生/选课/课程的网状数据库实例(单向链表)

学生记录课程记录选课记录7.3.4关系模型(Network

Model)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部47关系数据库系统采用关系模型作为数据的组织方式1970年美国IBM公司SanJose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型计算机厂商新推出的数据库管理系统几乎都支持关系模型。数据结构数据操作完整性约束关系模型三要素7.3.4关系模型(Network

Model)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部481、关系模型的数据结构

关系模型建立在严格的数学概念基础上。从用户观点看,关系模型是由一组关系组成的,而每个关系的数据逻辑结构是一张二维表。学号姓名年龄性别学院20150046李强20男计算机20150082王倩19女外语20150128张飞19男体育……………学生登记表关系(Relation):一个关系对应一张二维表。一般表名对应着关系名。元组(Tuple):表中的一行即为一个元组,有的系统中也称为一条记录。属性(Attribute):表中的一列为一个属性,每一列起一个名称即属性名。7.3.4关系模型(Network

Model)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部491、关系模型的数据结构

关系模型建立在严格的数学概念基础上。从用户观点看,关系模型是由一组关系组成的,而每个关系的数据逻辑结构是一张二维表。学号姓名年龄性别学院20150046李强20男计算机20150082王倩19女外语20150128张飞19男体育……………学生登记表码(Key):若表中的某个属性或属性组可以唯一地确定一个元组而其子集不能,则称该属性或属性组为候选码。包含在候选码中的属性称为主属性。若一个关系有多个候选码,则选定其中一个为主码(PrimaryKey)。如表中的学号可作为该关系的主码。7.3.4关系模型(Network

Model)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部501、关系模型的数据结构

关系模型建立在严格的数学概念基础上。从用户观点看,关系模型是由一组关系组成的,而每个关系的数据逻辑结构是一张二维表。学号姓名年龄性别学院20150046李强20男计算机20150082王倩19女外语20150128张飞19男体育……………学生登记表域(Domain):域是一个或多个属性允许的值的集合。属性的取值范围来自某个域。例如大学生年龄属性的域是(15~45岁),性别的域是(男,女)。分量(Element):元组中的一个属性值称为分量。7.3.4关系模型(Network

Model)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部511、关系模型的数据结构

关系模型建立在严格的数学概念基础上。从用户观点看,关系模型是由一组关系组成的,而每个关系的数据逻辑结构是一张二维表。学号姓名年龄性别学院20150046李强20男计算机20150082王倩19女外语20150128张飞19男体育……………学生登记表关系模式(RelationMode):对关系的描述,一般的表示形式为:关系名(属性1,属性2,…,属性n)。例如表的学生学籍关系可描述为:学生(学号,姓名,年龄,性别,学院)7.3.4关系模型(Network

Model)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部522、关系模型的数据操作

关系操作主要包括数据查询和插入、删除、修改数据。关系中的数据操作都是集合操作,操作对象和操作结果都是关系,即若干个元组的集合。另外,关系操作是高度非过程化的语言,它把存取路径向用户隐蔽起来,用户在操作时只需要告诉DBMS“找什么”或者“干什么”,而不必告诉“怎么做”,从而使得用户对关系的操作更加容易。7.3.4关系模型(Network

Model)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部533、关系模型的数据完整性约束

关系的完整性约束条件包括三类:实体完整性、参照完整性和用户定义的完整性。假设某个数据库中存在三个关系:学生、课程和选课,主码用下划线标识,则这三个关系可表示为:学生(学号,姓名,性别,年龄,所在学院)课程(课程号,课程名,学分)选课(学号,课程号,成绩)7.3.4关系模型(Network

Model)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部543、关系模型的数据完整性约束

其中,学生关系与选课关系存在着属性引用,即选修关系引用了学生关系的主码—“学号”,则称“学号”属性为选课关系的外码,选课关系为参照关系,学生关系为被参照关系。同样的,“课程号”属性也是选课关系的外码,课程关系为被参照关系。则有如下定义:实体完整性:主属性不能为空值。参照完整性:外码的取值只能为空值或等于被参照关系中某个主码的值。用户定义的完整性:针对某一具体应用所定义的约束条件,例如某个属性取值必须唯一、某个属性不能取空值等。学生(学号,姓名,性别,年龄,所在学院)课程(课程号,课程名,学分)选课(学号,课程号,成绩)7.3.4关系模型(Network

Model)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部554、关系模型的存储结构实体及实体间的联系都用表来表示表以文件形式存储有的DBMS一个表对应一个操作系统文件有的DBMS从操作系统获得若干文件,自己设计表、索引等存储结构7.3.4关系模型(Network

Model)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部565、关系模型的优缺点建立在严格的数学概念的基础上概念单一实体和各类联系都用关系来表示对数据的检索结果也是关系关系模型的存取路径对用户透明具有更高的数据独立性,更好的安全保密性简化了程序员的工作和数据库开发建立的工作数据联系是靠数据冗余实现,使得关系的空间效率和时间效率都相对较低数据存取路径对用户的透明,查询效率往往不如格式化数据模型优点缺点3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部577.4关系数据库案例7.4关系数据库案例3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部58

上节中已对关系数据库的基本理论进行了介绍,本节将以一个实际案例——学生选课管理系统为例,对关系数据库的相关概念和操作进行介绍。

某学校为了方便管理学生选课的相关数据,拟建立数据库管理系统对其进行管理。经过数据库设计人员与学校相关人员的前期需求分析,本系统涉及到的数据有学生学号、姓名、年龄、性别、所在学院、选修课程的编号、选修课程的名称、选修课程学分、每个学生选修每门课程的成绩等。7.4关系数据库案例3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部59

某学校为了方便管理学生选课的相关数据,拟建立数据库管理系统对其进行管理。经过数据库设计人员与学校相关人员的前期需求分析,本系统涉及到的数据有学生学号、姓名、年龄、性别、所在学院、选修课程的编号、选修课程的名称、选修课程学分、每个学生选修每门课程的成绩等。7.4.1分析与设计7.4.2数据定义7.4.3数据更新7.4.4数据查询7.4.5视图管理7.4.1分析与设计3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部60

把现实世界中涉及到的所有数据先抽象为信息世界中的概念模型,再抽象为计算机中的数据模型,然后选用某一种关系数据库实现所有的数据模型,并赋予具体的值,就可以构成一个学生选课的数据库系统。计算思维抽象7.4.1分析与设计3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部61

【例7-1】对于上述学生选课的相关数据,采用概念模型将现实世界中的问题抽象到信息世界中,并用ER图进行表示。分析得知,学生选课管理系统中有两个实体:学生和课程,并且学生和课程之间具有选课联系,联系类型为多对多。该管理系统的ER图如图7.11所示。学生课程选课学号姓名年龄性别所在学院学号课程号课程号学分课程名成绩图7.11学生选课系统ER图mn7.4.1分析与设计3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部62

得到学生选课系统的概念模型后,将ER模型中的实体及其属性、联系及其属性转换为7.3.4小节中介绍过的关系模型。该学生选课系统的关系模型中包含了三个关系模式:学生(学号,姓名,性别,年龄,所在学院)课程(课程号,课程名,学分选课(学号,课程号,成绩)

其中标注下划线的为该关系的主码。形成关系模型后,下一步就是选用特定的DBMS实现。目前市面上比较流行的DBMS产品主要有甲骨文公司的Oracle、IBM公司的DATABASE2(DB2)、微软公司的SQLServer,Sybase公司的AdaptiveServerEnterprise(ASE),微软公司的VisualFoxPro和Access等。7.4.2数据定义3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部63

SQLServer2008中较为完整地支持了结构化查询语言(StructuredQueryLanguage,SQL)语言的强大功能。SQL简单易学,功能丰富,是目前关系数据库的标准语言,几乎所有的主流DBMS都是基于SQL基本命令集实现。SQL语言比较接近英语这种自然语言,但是功能却很强大,完成核心功能只用了9个动词,如表7.2所示。SQL功能命令动词数据定义(数据模式定义、删除、修改)CREATE,DROP,ALTER数据查询SELECT数据操作(插入、更新、删除)INSERT,UPDATE,DELETE数据控制(存取控制授权与回收)GRANT,REVOKE7.4.2数据定义3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部64关系数据库系统支持数据库的三级模式结构。SQL中的一个关系对应一个基本表。SQL用户视图1视图2外模式基本表1基本表2基本表3基本表4模式存储文件1存储文件2存储文件3内模式图7.12SQL对关系数据库模式的支持7.4.2数据定义3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部65SQL的数据定义对象包括数据库、基本表、索引和视图,如表7.3所示。一个关系数据库管理系统的实例中可以创建多个数据库,每个数据库通常包含多个表、视图、索引等数据库对象。操作对象操作方式创建删除修改数据库CREATEDATABASEDROPDATABASE

表CREATETABLEDROPTABLEALTERTABLE视图CREATEVIEWDROPVIEW

索引CREATEINDEXDROPINDEX

7.4.2数据定义3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部661、数据库的定义建立数据库语句的简化格式为:CREATEDATABASE<数据库名>;删除数据库语句的一般格式为:DROPDATABASE<数据库名>;【例7-2】为学生选课管理系统建立名称为School的数据库。CREATEDATABASESchool;7.4.2数据定义3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部672、数据表的定义定义基本表语句的一般格式为:CREATETABLE<表名>(<列名><数据类型>[列级完整性约束条件][,<列名><数据类型>[列级完整性约束条件]]…[,<表级完整性约束条件>]);

分析已知学生选课管理系统中包含三个关系模式:学生(学号,姓名,性别,年龄,所在学院)、课程(课程号,课程名,学分、选课(学号,课程号,成绩)。7.4.2数据定义3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部682、数据表的定义

如图7.12所示,关系数据库中,所有关系模式的集合构成了整个数据库的模式,而一个关系对应着一张二维表。因此,关系数据库的实现基础就是这些二维表。假设School数据库中Student、Course和SC表结构与数据如图7.13所示。图7.13学生选课管理系统数据表示例参照关系参照关系7.4.2数据定义3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部692、数据表的定义【例7-3】在School数据库中创建“学生”表Student,包含学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)和所在学院(Sdept)属性。CREATETABLEStudent(SnoCHAR(10)PRIMARYKEY,SnameCHAR(20)UNIQUE,SsexCHAR(2),SageSMALLINT,SdeptCHAR(30));7.4.2数据定义3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部702、数据表的定义同样可以创建“课程”表Course,包含课程号(Cno)、课程名(Cname)和学分(Ccredit)属性,其中课程号为该关系的主码。CREATETABLECourse(CnoCHAR(4)PRIMARYKEY,CnameCHAR(40)NOTNULL,CcreditSMALLINT,);7.4.2数据定义3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部712、数据表的定义【例7-4】建立学生选课表SC,包含学号(Sno)、课程号(Cno)和成绩(Grade)属性。CREATETABLESC(SnoCHAR(10),CnoCHAR(8),GradeSMALLINTCHECK(GradeBETWEEN0AND100),/*用户自定义列级完整性约束,Grade取值在0至100之间*/PRIMARYKEY(Sno,Cno),/*主码由两个属性组合,必须作为表级完整性进行定义*/FOREIGNKEY(Sno)REFERENCESStudent(Sno),/*表级完整性约束条件,Sno是外码,被参照表是Student*/FOREIGNKEY(Cno)REFERENCESCourse(Cno)/*表级完整性约束条件,Cno是外码,被参照表是Course*/);7.4.2数据定义3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部722、数据表的定义

建立数据表后,还可对表中某列的名称、类型或约束进行修改。修改基本表语句的一般格式为:ALTERTABLE<表名>[ADD[COLUMN]<新列名><数据类型>[完整性约束]][ADD<表级完整性约束>][DROP[COLUMN]<列名>[CASCADE|RESTRICT]][DDROPCONSTRAIT<完整性约束名>[CASCADE|RESTRICT]][ALTERCOLUMN<列名><数据类型>]说明:ADD子句用于增加新列或者新的完整性约束;ALTERCOLUMN子句用于修改原有的列定义;DROP子句用于删除指定的列或者完整性约束条件,当指定CASCADE短语,则自动删除引用了该列的其他对象,当指定RESTRICT时,若该列被其他对象引用,DBMS将拒绝删除该列。7.4.2数据定义3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部732、数据表的定义【例7-5】向课程表Course中增加新属性“是否必修”,数据类型为字符型,长度为2。ALTERTABLECourseADDCrequiredCHAR(2);删除基本表语句的一般格式为:DROPTABLE<表名>说明:一个基本表一旦被删除后,这个表的所有数据以及在此表基础上建立的索引、视图都都会被删除。因此,执行表删除操作时,一定要格外小心。7.4.2数据定义3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部743、索引的操作

当表中的数据量比较大时,查询操作会比较耗时,索引的建立正是为了加快查询速度。建立索引语句的一般格式为:CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…);说明:<表名>是要建立索引的基本表的名称。索引可以建立在一列或者多列上,各列名之间用逗号隔开。<次序>规定了索引值的排列次序,可为升序(ASC)或降序(DESC),缺省值为ASC。UNIQUE表明该索引的每一个索引值只对应唯一的数据记录。CLUSTER表示要建立的是聚簇索引,即使得基本表中物理顺序与索引项的排列顺序一致。因此,一个基本表最多只能建立一个聚簇索引。7.4.2数据定义3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部753、索引的操作【例7-6】为School数据库中的Student、Course和SC三个表建立索引。CREATEUNIQUEINDEXStusnoONStudent(Sno);CREATEUNIQUEINDEXCoucnoONCourse(Cno);CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);删除索引语句的一般格式为:DROPINDEX<表名>.<索引名>;7.4.3数据更新3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部761、插入数据(INSERT)插入数据语句的一般格式为:INSERTINTO<表名>或<视图名>[(列名1)[,(列名2)…]]VALUES(常量1[,常量2…])说明:上述语句的功能是将新元组插入指定表或视图中。其中,新元组的属性列1取值为常量1,属性列2取值为常量2,…。INTO子句没有出现的属性列,新元组在这些列上将取空值。但是需要注意,若该列在定义时说明了NOTNULL的话,会出错。INTO子句若不指定列名,则给所有列都插入值,且必须一一对应。

数据更新是指对表中数据进行增加、修改、删除操作,对应着SQL中的数据更新动作分别为INSERT、UPDATE和DELETE。7.4.3数据更新3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部77【例7-7】向Student表中插入如图7.13所示的学生信息。INSERTINTOStudentVALUES('20150001','张三','男',20,'计算机');INSERTINTOStudentVALUES('20150002','王倩','女',19,'外语');INSERTINTOStudentVALUES('20150003','张飞','男',19,'体育');INSERTINTOStudentVALUES('20150004','高军军','男',18,'计算机');INSERTINTOStudentVALUES('20150005','赵雪','女',18,'计算机');7.4.3数据更新3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部782、修改数据(

UPDATE)修改数据语句的一般格式为:UPDATE<表名>SET<列名1>=<表达式1>[,<列名1>=<表达式1>]…[WHERE<条件>];说明:该语句功能是修改指定表中满足WHERE子句条件的元组,其中SET子句给出表达式的值用于取代相应的属性列值。如果省略WHERE子句,则表示要修改表中所有元组。【例7-8】将学号为20150005的学生所在学院改为软件。UPDATEStudentSETSdept='软件'WHERESno='20150005';7.4.3数据更新3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部793、删除数据(DELETE)删除数据语句的一般格式为:DELETEFROM<表名>[WHERE<条件>];说明:该语句功能是删除指定表中满足WHERE子句条件的元组,若省略WHERE子句,表示删除表中全部元组。DELETEFROMCourseWHERECno='00003104';【例7-10】删除SC表中的全部选课记录。【例7-9】从Course表中删除编号为00003104的课程。DELETEFROMSC;7.4.4数据查询(SELECT)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部80

数据查询操作是数据库最常用的操作,是指按照用户的需要从数据库中提取所需要的数据。SQL提供了方式灵活、功能丰富的查询语句。查询语句的一般格式为:SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>…][WHERE<条件表达式>][GROUPBY<列名>[HAVING<条件表达式>]][ORDERBY<列名>[ASC|DESC]];说明:该语句功能是先根据WHERE子句的条件表达式从FROM子句指定的基本表或视图中找出满足条件的元组,再按照SELECT子句的目标列表达式筛选出元组中所需要的属性列形成结果集。7.4.4数据查询(SELECT)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部811、单表查询【例7-11】查询所有学生的姓名、学号、所在学院。SELECTSname,Sno,SdeptFROMStudent;查询结果注:各列的输出顺序可以与表中顺序不同,根据用户需求可更改。7.4.4数据查询(SELECT)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部821、单表查询【例7-12】查询全体学生的姓名及其出生年份,出生年份的列名用BIRTHDAY表示。并在出生年份前加入一新列,新列的每行数据均为“出生年份”常量值。SELECTSname,‘出生年份’,2015-SageAsBIRTHDAYFROMStudent查询结果注:查询结果中目标列表达式可以是常量,也可以是表达式或函数。用户还可以通过指定别名来改变查询结果的列标题,格式为:列名|表达式[As]列别名。7.4.4数据查询(SELECT)3/3/2024太原理工大学.计算机科学与技术学院.计算机基础教学部831、单表查询【例7-13】查询考试不及格学生的学号、课程号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论