数据库专升本复习第一章数据库系统概述1.2数据库技术的产生、发展数据库历经了人工管理阶段、文件系统阶段和数据库系统阶段。1,人工管理阶段:软件只有汇编语言,处理的方式是批处理。特点:(1)数据不保存(2)数据不共享(3)数据不具有独立性(4)系统没有专用的软件对数据进行管理2,文件系统阶段:特点:(1)数据以文件形式长期保存(2)由文件系统管理数据(3)程序与数据间有一定独立性3,数据库系统阶段:特点:(1)数据结构化(2)数据共享性高、冗余度低(3)数据独立性高(4)有统一的数据控制功能整个数据库的结构可分成三级:用户的逻辑结构、整体逻辑结构和物理结构。数据独立性分两级:物理独立性和逻辑独立性。数据库管理系统(DBMS)提供四方面的数据控制功能:○1数据的安全性控制:例如,口令检查用户身份○2数据的完整性控制:系统通过设置一些完整性规则,确保数据的正确性、有效性和相容性。○3并发控制○4数据恢复1.3数据库系统的组成1,数据库系统(DBS):主要由数据库、数据库用户、计算机硬件系统、计算机软件系统等几部分组成。2,数据库(DB):是存储在计算机内、有组织的、可共享的数据集合。具有○1较小的冗余度、○2较高的数据独立性和○3易扩展性,并为各种用户共享。数据库有如下两个特点:集成性和共享性。3,用户:可以对数据库进行○1存储、○2维护和○3检索等操作。4,软件系统:主要包括数据库管理系统(DBMS)及其开发工具、操作系统和应用系统等。数据库管理系统(DBMS)是数据库系统的核心。数据库系统(DBS)包含DB、DBMS和DBA(数据库管理员)1.4数据库系统的模式结构1,数据库系统的三级模式:从逻辑上分为三级:外模式、模式、内模式模式:模式也称为逻辑模式、概念模式,是数据库中全体数据的逻辑结构和特征的描述。一个数据库只有一个模式。外模式:外模式又称为子模式或用户模式。是数据库用户能看到并允许使用的那部分数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示,也是数据库用户的数据视图,即用户视图。外模式是模式的子集,一个数据库可以有多个外模式。内模式:内模式又称为存储模式,靠近物理存储,是数据在数据库内部的表示方式。一个数据库只有一个内模式。2,数据库系统的二级映像与数据独立性:(1)外模式/模式映像。模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。数据库中的同一模式可以有任意多个外模式。保证了数据与程序间的逻辑独立性。(2)模式/内模式映像。模式和内模式都只有一个,所以模式/内模式映像是唯一的。确保了数据的物理独立性。3,数据库系统的三级模式与二级映像的优点:(1)保证数据的独立性(2)简化了用户接口(3)有利于数据共享(4)有利于数据的安全保密1.5数据库系统的外部体系结构从最终用户的角度看,数据库系统的结构分为○1单用户结构○2主从式结构○3分布式结构、○4客服/服务器结构和○5浏览器/服务器结构1.6数据库管理系统用户在数据库系统中的一切操作,包括数据定义、查询、更新及各种控制,都是通过DBMS进行的。1,DBMS的主要功能:(1)提供数据定义语言(DDL),定义数据的模式、外模式和内模式三级模式结构,定义模式/内模式和外模式/模式二级映像,定义有关约束条件。DD(数据字典)是DBMS存取数据的基本依据。数据字典用来描述数据库中有关信息的数据目录,包括数据库的三级模式、数据类型、用户名和用户权限等有关数据库系统的信息,起着系统状态的目录表作用。(2)提供数据操纵语言(DML),实现对数据库的基本操作,包括检索select、更新(插入insert、修改update、删除delete)等。(3)数据库运行管理功能:对数据库的运行进行管理师DBMS运行的核心部分。1.7数据模型(1)信息世界(概念模型)的有关基本概念:键key:在实体型中,能唯一标识一个实体的属性或属性集称为实体的键,也称为关键字。域:属性的取值范围称为该属性的域。(2)数据模型的分类:1,第一类模型是概念模型,也称为信息模型,他是按用户的观点对数据和信息建模,是对现实世界的事物及其联系的第一级抽象。概念模型属于信息世界中的模型。主要用于数据库设计时用户和数据库设计人员之间交流的工具。在概念模型中,比较著名的是实体联系模型,简称E-R模型。2,第二类模型是逻辑模型(或称数据模型)和物理模型。是按计算机的观点对数据建模,是对现实世界的第二级抽象。数据库是按DBMS规定的数据模型组织和建立起来的。逻辑模型主要包括:层次模型、网状模型、关系模型面向对象模型等。(3)实体联系模型及E-R图:E-R图的基本成分包含实体型、属性和联系。○1实体型:用矩形框表示。○2属性:用椭圆形框表示。○3联系:用菱形框表示。实体之间的联系有:○1一对一(1:1)○2一对多(1:n)○3多对多(m:n)(4)数据模型的组成要素:数据模型由:○1数据结构、○2数据操作和○3数据的完整性约束组成。1.8四种数据模型数据模型主要有○1层次模型、○2网状模型和○3关系模型三种。层次模型和网状模型统称为非关系模型。(1)层次模型用树形数据结构(有向树)来表示各类实体间的联系。(2)网状模型是采用有向图结构表示记录型与记录型之间联系。(3)关系模型的数据结构是一张规范化的二维表,由表名、表头和表体三部分组成。一个关系对应一张二维表。第二章关系数据库2.1关系的形式化定义及其有关概念1,笛卡尔积:笛卡尔积实际是一个二维表,表的框架由域构成,表的行称为元组,列称为域。列的个数称为目或度。2,关系。在数学上,关系是笛卡尔积的任意子集。3,关系的性质:关系是一种规范化了的二维表中行的集合。具有如下性质:(1)列是同质的。每一列的分量来自同一个域,是同一类型的数据。(2)不同的列可来自同一个域,列称为属性,属性必须有不同的名字。(3)列的顺序可以任意交换(4)关系中元组(行)的顺序可任意(5)不允许出现相同的元组(6)分量必须是不可分的数据项4,关系模式:一个关系模式应当是一个五元组。在关系模型中,实体以及实体间的联系都是用关系来表示的。2.2关系的键与关系的完整性1,候选键:能唯一标识关系中元组的一个属性或属性集,称为候选键,或称为候选关键字或候选码。(1)唯一性(2)最小性2,主关系键(primarykey):被选用的候选键称为主关系键,或主键、主码、关键字等。3,关系的完整性:○1实体完整性○2参照完整性○3用户自定义完整性实体完整性:是指主关系键的值不能为空或部分为空。参照完整性:是对外部关系键的说明。用户自定义完整性:如,取值范围的约束;数据输入格式的限制等。2.3关系代数(1)集合运算符4个:∪(并)、—(差)、∩(交)、×(笛卡尔积)。(2)专门的关系运算符5个:σ(选取)、∏(投影)、∞(连接)、*(自然连接)、÷(除)(3)逻辑运算符3个:∨(或)、∧(与)、┐(非)(4)基本运算5个:并、差、积、选取和投影。∪(并):合并两个关系,列数不变,删去重复的元组(行)。∩(交):用关系R和关系S表示:R∩S=R-﹙R-S﹚具体实例请看课本。第三章关系数据库标准语言——SQLSQL是结构化查询语言的缩写。3.1SQL的基本概念(1)基本表basetable:一个关系对应一个基本表。一个或多个基本表对应一个存储文件。(2)视图view:视图是从一个或几个基本表导出的表,是一个虚拟的表。数据库中只存放视图的定义而不存放视图的对应数据。SQL支持数据库的三级模式结构。其中外模式对应于视图,模式——基本表,内模式——存储文件。SQL具有○1数据查询(DQL)、○2数据定义(DDL)、○3数据操纵(DML)和○4数据控制(DCL)4种功能。SQL的动词:数据定义3个:创建create、修改alter、删除drop。数据查询1个:查询或检索select。数据操纵3个:添加或插入insert、修改update、删除delete。数据控制2个:授予grant、收回revoke。3.3创建和使用数据库在SQLServer2000中,创建一个数据库至少产生两个文件,即数据文件和日志文件。一个数据库至少应包含一个数据文件和一个事务日志文件。一个数据库可以有一个或多个数据文件,一个数据文件只属于一个数据库。(1)用SQL命令创建数据库的语法格式如下:Createdatabasedatabase_name(2)用SQL命令修改数据库的语法格式如下:alterdatabasedatabase_name(3)用SQL命令删除数据库的语法格式如下:dropdatabasedatabase_name3.4创建和使用数据表(1)用SQL命令创建数据表。例如:用SQL命令创建一个学生表S,对Sno字段进行NOTNULL约束。CreatetableS(Snochar(6)notnull,Snvarchar(8),Sexchar(2)default=’男’,Ageint,Deptvarchar(20))(注:default表示默认值)在SQLServer中可以定义○1NULL/NOTNULL○2unique(唯一约束)○3primarykey(主键)○4foreignkey(外键)○5check(范围)五种类型的完整性约束。例如:创建S表,S#为主键,SN不能为空CreateTableS(S#varchar(10)primarykey,SNvarchar(8)notnull,Ageint,Deptvarchar(50))(2)用SQL命令修改数据表。1,add(增加)方式:例如:在S表中增加一个班号列和住址列。AltertableSAddClass_nochar(6),Addresschar(40)2,alter(修改)方式例如:把S表中的Sn列加宽到10个字符。AltertableSAltercolumnSnchar(10)3,drop(删除)方式例如:删除S表中的主键。AltertableSDropconstraint_prim(3)用SQL命令删除数据表。例如:删除表S。DroptableS3.5创建与使用索引1,索引的作用:(1),加快查询速度;(2),保证行的唯一性。2,索引的分类:(1)按照索引记录的存放位置,可分为:聚集索引和非聚集索引。在检索记录时,聚集索引速度比非聚集索引快(2)唯一索引(3)复合索引3,用SQL命令创建索引。语法格式如下:create[unique]/[clustered]index索引名on表名(列名[次序],列名[次序])(注:其中unique表示建立唯一索引;clustered表示建立聚集索引)例如:在“图书”表中以“作者”建立一个索引CreateIndexi_authonBook(BAuth)4,用dropindex命令删除索引。例如:删除表SC的索引SCI。DropindexSC.SCI3.6数据查询(select)例如:(1)在“高等教育出版社”出版、书名为“操作系统”的图书的作者名SelectBAuthFromBook,PublishwhereBook.PNo=Publish.PNoandPName=’高等教育出版社’andBName=’操作系统’(2)查询“电子工业出版社”出版的“计算机”类图书的价格,同时输出出版社名称及图书类别SelectBPrice,PName,BTypeFromBook,PublishWhereBook.PNo=Publish.PNoandBType=’计算机’andPName=’电子工业出版社’(3)查找书名中有“计算机”一词的图书的书名及作者SelectBName,BAuthFromBookWhereBNamelike‘%计算机%’字符串中可以含有的通配符:%代表0个或多个字符;_下划线代表一个字符;[]表示在某一范围的字符。(4)分组查询:groupby子句可以将查询结果按属性列或属性列组合在行的方向上进行分组。若分组后还要按照一定的条件进行筛选,则需要使用having子句。例如:查询选修两门以上(含两门