还剩58页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
数据库基础理论欢迎来到数据库基础理论课程在信息技术迅猛发展的今天,数据库已成为组织和管理数据的核心技术本课程将系统地介绍数据库的基本概念、设计理论和实践应用,帮助你掌握数据库系统的本质和使用方法无论你是计算机专业的学生,还是希望在工作中更好地利用数据的专业人士,这门课程都将为你奠定坚实的数据库理论基础,并培养实际应用能力让我们一起探索数据的奥秘,学习如何高效管理和分析数据课程概述课程目标理解数据库系统的基本概念和工作原理,掌握关系数据库理论与技术,能够应用语言进行数据库操作,培养数据库设计与管理能力SQL主要内容课程包括数据库系统概述、数据模型、关系数据库理论、语言、数SQL据库安全性与完整性、数据库设计方法、数据库恢复技术与并发控制等核心知识学习方法采用理论与实践相结合的学习方式,通过课堂讲授、案例分析和上机实验巩固所学知识,独立完成数据库设计项目以培养实际应用能力第一章数据库系统概述基本概念发展历程系统特点应用领域介绍数据、数据库、数据库管探讨数据管理技术从人工管理分析数据库系统的特点,包括概述数据库系统在各行各业的理系统等核心概念,奠定理论到数据库系统的演变过程数据结构化、共享性高、冗余广泛应用,展示其实际价值基础度低、独立性高等数据库的基本概念
1.1数据数据是描述事物的符号记录,是信息的载体,可以是文字、图形、图像、声音等多种形式数据本身没有意义,只有经过处理后才能转化为有用的信息数据库数据库是长期存储在计算机内的、有组织的、可共享的大量数据的集合数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度和较高的数据独立性数据库管理系统数据库管理系统()是位于用户与操作系统之间的一层软件,负责数据库的定义、DBMS建立、操作和维护,实现数据的共享与安全保密数据库系统数据库系统是由数据库、数据库管理系统、应用程序和数据库管理员组成的完整的数据管理系统,是实现有组织地存储数据的计算机系统数据管理技术的发展
1.2人工管理阶段1这是最早的数据管理方式,完全依靠人工处理数据,没有专门的软件工具数据由程序员和用户独立管理,存在数据冗余大、数据不一致、数据共享性差等问题文件系统阶段2随着操作系统的发展,出现了文件系统进行数据管理这一阶段可以实现对数据的按名存取,但文件之间相互独立,仍然存在数据冗余、数据不一致等问题数据库系统阶段3数据库系统的出现解决了前两个阶段的主要问题它将数据集中管理,提供数据共享,减少数据冗余,保证数据一致性,提高了数据独立性和安全性数据库系统的特点
1.3数据结构化数据的共享性高、冗余12度低且独立性高数据库中的数据不再是简单的数据项的集合,而是按照一定数据库系统允许多个用户和应的数据模型组织起来的结构化用程序同时访问共同的数据,数据这种结构化使得数据之大大减少了数据重复存储同间的联系更加清晰,便于数据时,数据与程序的分离提高了的存取和管理数据的独立性,使数据结构的改变不会影响应用程序数据由统一管理和控制3DBMS数据库管理系统统一管理数据库中的数据,实现数据的安全控制,保证数据的完整性和一致性,同时提供数据备份和恢复功能,确保数据的可靠性数据库系统的构成
1.4数据库管理系统应用程序数据库管理系统是管理数据库的软应用程序是为特定用户、特定目标数据库件系统,提供数据定义、操纵、控而编制的程序,通过调用数据库管数据库管理员制和外部接口等功能,是用户与数理系统提供的接口实现对数据的操数据库是存储数据的仓库,是数据数据库管理员负责数据库的设计、据库之间的桥梁作,满足用户的需求库系统的核心部分它按照特定的实施和维护工作,包括数据库结构数据模型组织,存储和管理数据,定义、安全控制、性能监控等,确为用户和应用程序提供数据服务保数据库系统正常高效运行2314数据库系统的应用领域
1.5金融领域医疗卫生教育领域银行业务管理、证券交易系医院信息系统、电子病历、学生信息管理、教学资源管统、保险业务管理等金融服医疗保险系统等利用数据库理、在线学习平台等教育系务广泛应用数据库技术,处存储和管理患者信息、诊疗统借助数据库管理学生、教理大量的交易数据和客户信记录、药品信息,提高医疗师、课程等相关信息,支持息,确保数据的安全性和一服务质量和效率教育教学活动的开展致性电子商务网上购物平台、订单管理系统、客户关系管理等电商应用通过数据库存储产品信息、用户数据和交易记录,支持在线购物和商业运营第二章数据模型概念模型1面向用户的模型逻辑模型2面向的模型DBMS物理模型3面向存储的模型数据模型是数据库系统的核心和基础,它决定了数据库系统的性能和应用范围本章将详细介绍数据模型的概念、组成要素以及不同类型的数据模型,包括概念模型、逻辑模型和物理模型,并深入分析它们的特点和应用场景通过学习数据模型,我们能够理解如何以抽象的方式表示现实世界中的数据及其联系,为后续的数据库设计和实现奠定基础数据模型的概念
2.1数据模型的定义数据模型的作用12数据模型是对现实世界数据特数据模型是数据库系统设计的征的抽象,是用来描述数据、基础,它帮助设计者将复杂的数据联系、数据语义以及数据现实世界简化为可以用计算机约束的工具集合它为数据库表示和处理的形式,便于理解系统的设计提供了模板和指导和交流,同时也为数据库的实现提供了理论依据数据模型的分类3根据抽象级别的不同,数据模型可以分为概念模型(面向用户)、逻辑模型(面向)和物理模型(面向存储)三类,每种模型在数据库DBMS设计过程中扮演不同的角色数据模型的组成要素
2.2数据结构数据操作完整性约束数据结构描述数据库的数据操作是指对数据库完整性约束是一组规则,组成对象以及对象之间中各种对象的实例允许用于保证数据的正确性、的联系在关系模型中,执行的操作的集合,包有效性和相容性它们数据结构表现为关系的括查询、插入、删除和限制数据库状态或状态集合;在层次模型中,修改等不同的数据模的变化,确保数据库中表现为树形结构;在网型提供不同的操作方式存储的数据满足特定的状模型中,表现为图形和语言条件和规则结构概念模型
2.3概念模型的定义实体联系模型(模型)图-E-R E-R概念模型是数据库设计过程中最接近用户模型是最常用的概念模型,由实体、图是模型的图形表示方法,用矩形E-R E-R E-R观点的数据模型,它独立于具体的数据库属性和联系三部分组成实体是客观存在表示实体,椭圆表示属性,菱形表示联系管理系统,用于描述现实世界的概念及其并可相互区别的事物;属性是实体所具有通过图,可以直观地表示数据库的概E-R联系,是现实世界到机器世界的第一层抽的特性;联系是实体之间的相互关联念结构设计,便于与用户交流象逻辑模型
2.4层次模型层次模型使用树形结构表示实体及其联系,每个节点表示一个记录类型,父子节点之间的连线表示一对多的联系这种模型结构简单,但表示复杂联系时不够灵活网状模型网状模型使用图形结构表示实体及其联系,允许一个子节点有多个父节点,可以更自然地表示多对多的联系但模型复杂,程序员需要掌握复杂的数据结构关系模型关系模型使用二维表格表示实体及其联系,结构简单清晰,操作灵活,是当前最流行的数据模型它将现实世界的复杂联系转化为表与表之间的联系,易于理解和实现物理模型
2.5物理模型的定义存储结构物理模型是数据库在存储介质上数据库的存储结构包括顺序存储、的表示方式和存取方法,涉及数索引存储、散列存储等方式,不据的存储结构、访问方法和索引同的存储结构适合不同的应用场技术等底层实现细节,是最接近景,影响数据库的存取效率和性计算机系统的数据模型能访问方法访问方法决定了如何从存储介质中检索和修改数据,包括顺序访问、索引访问、散列访问等合适的访问方法可以显著提高数据库的查询性能第三章关系数据库关系数据结构关系完整性约束1表、元组、属性、码实体、参照、用户定义2关系演算关系代数43元组关系演算、域关系演算集合运算、专门关系运算关系数据库是当前最主流的数据库类型,基于关系模型,以二维表格形式存储和管理数据本章将系统地介绍关系数据库的基础理论,包括关系数据结构、完整性约束、关系代数和关系演算等核心内容通过学习这些基础知识,你将能够理解关系数据库的本质,为学习语言和数据库设计奠定坚实的理论基础SQL关系数据结构及形式化定义
3.1关系在关系数据库中,关系是一个二维表格,表示实体集合或实体间的联系每个关系有一个名称和若干属性,是关系模型的核心概念从数学角度看,关系是笛卡尔积的子集元组元组是关系中的一行,表示一个实体或一组联系的集合元组是关系的实例,由一组属性值组成,每个元组必须唯一,不允许重复属性属性是关系中的一列,表示实体或联系的一个特性每个属性都有一个名称和一个值域(定义域),规定了该属性允许取的值的集合码码是关系中唯一标识元组的属性或属性组合主码是被选定的用于唯一标识元组的候选码,候选码是能唯一标识元组的最小属性集合关系的完整性约束
3.2实体完整性1实体完整性规则要求关系的主码不能取空值这是因为主码用于唯一标识元组,如果主码为空,则无法区分不同的元组,违背了实体的可区分性原则参照完整性2参照完整性规则规定外码要么取空值,要么取被参照关系中主码的有效值这确保了表之间引用的一致性,防止出现悬浮的引用关系用户定义的完整性3用户定义的完整性是针对特定应用的约束条件,由用户自行定义,如属性的取值范围、格式要求等这些约束反映了特定业务规则,确保数据符合实际业务需求关系代数
3.3集合运算专门的关系运算关系代数中的集合运算包括并、交、差和笛卡尔积四种,分别表专门的关系运算包括选择、投影、连接、除法等,这些是关系数示两个关系的所有行合并、共有行、差异行和两表行的所有可能据库特有的操作,用于从关系中提取数据、组合关系等这些运组合这些运算继承自集合论,但要求参与运算的关系必须具有算构成了关系数据库查询的基础相同的结构选择()从关系中选出满足条件的元组σ•并运算(∪)获取两个关系的所有元组投影()从关系中选出指定的列••π交运算()获取同时属于两个关系的元组∩•连接(⋈)根据共同属性将两个关系组合成一个新关系•差运算()获取属于第一个关系但不属于第二个关系的元组•-除法()查找一个关系中与另一个关系所有元组都有关联•÷的元组笛卡尔积()获取两个关系的所有可能元组组合•×关系演算
3.4元组关系演算域关系演算元组关系演算以元组变量为基本单位,通过谓词公式描述查询要域关系演算以域变量为基本单位,每个变量的取值范围是某个属求它是一种非过程化的语言,只需描述查询结果应满足的条件,性的值域与元组关系演算相比,域关系演算更接近自然语言,不需要指定获取结果的具体步骤表达能力相同但形式不同元组关系演算的基本形式是,表示满足谓词的所有元域关系演算的基本形式是,表示满足谓词{t|Pt}P{|Px1,x2,...,xn}P组的集合谓词可以包含比较运算符、逻辑运算符、量词等,的所有值组查询语言就是基于域关系t PQBEQuery ByExample用于表达复杂的查询条件演算的思想设计的第四章语言SQL数据定义1创建、修改和删除数据库对象数据查询2从数据库检索数据数据操纵3更新数据库中的数据数据控制4管理数据库访问权限(,结构化查询语言)是关系数据库的标准语言,几乎所有主流数据库管理系统都支持它集数据定义、数据操纵和数据控制功能SQL StructuredQuery LanguageSQL于一体,是数据库应用程序开发的基础本章将系统介绍语言的基本组成、语法规则和使用方法,包括数据定义、数据查询、数据更新等核心内容,以及视图、索引、触发器等高级特性SQL概述
4.1SQL的发展历史的特点1SQL2SQL起源于的项目,具有综合统
一、高度非过程SQL IBMSystem RSQL最初称为,后来简化为化、面向集合、语法简单易学、SEQUEL年,被美国国家独立性强等特点它既是数据定SQL1986SQL标准协会()采纳为关系数义语言(),又是数据操纵ANSI DDL据库标准语言,之后经过多次修语言(),还是数据控制语DML订和扩展,形成了、言(),满足了数据库管理SQL-86SQL-DCL、、、的各种需求89SQL-92SQL:1999等不同版本的标准SQL:2003的基本组成3SQL语言主要由数据定义语言()、数据操纵语言()、数据控制SQL DDLDML语言()和事务控制语言()四部分组成,分别用于定义数据库对象、DCL TCL操作数据、控制访问权限和管理事务数据定义
4.2创建表修改表删除表使用语使用语句使用语句CREATE TABLEALTER TABLEDROP TABLE句创建表,需要指定表修改表的结构,包括添删除表,这将永久删除名、列名、数据类型和加列、修改列、删除列、表结构和所有数据例约束条件例如添加或删除约束等例如DROP TABLE如如果表被其CREATE TABLEALTER TABLEStudent他对象引用,可能需要Student SnoCHAR9Student ADDSdept或使用选项强PRIMARY KEY,VARCHAR20CASCADE制删除相关对象Sname VARCHAR20ALTER TABLENOTNULL,Sage INT,Student DROPSsex CHAR2COLUMN Sage数据查询
4.3单表查询单表查询是最基本的查询形式,使用语句从单个表中检索数据SELECT可以指定列名、使用子句进行条件过滤、使用子句WHERE ORDERBY排序、使用子句分组以及使用子句对分组结果进行GROUP BYHAVING过滤连接查询连接查询用于从多个表中获取数据,包括内连接(等值连接、自然连接)、外连接(左外连接、右外连接、全外连接)和自连接连接操作基于表之间的关联条件,将多个表的数据组合起来嵌套查询嵌套查询是指在一个查询中包含另一个查询,内层查询的结果SQL SQL作为外层查询的条件嵌套查询可以使用、、、等IN EXISTSANY ALL操作符,增强了的表达能力,但可能影响查询效率SQL数据更新
4.4插入数据修改数据删除数据使用语句向表中插入数据使用语句修改表中的数据可以使用语句删除表中的数据可以INSERT INTOUPDATE DELETE可以一次插入一条记录,也可以插入子查修改一条或多条记录的一个或多个字段值删除一条或多条记录基本语法为询的结果集基本语法为基本语法为表名列名表名条件INSERT UPDATESET1=DELETE FROM[WHERE]表名列名列名值列名值条件子句指定要删除的记录,如果省INTO[1,2,...]VALUES1,2=2,...[WHERE]WHERE值值或表名列子句指定要修改的记录,如果省略则删除所有记录与不同,1,2,...INSERT INTO[WHERE DROPTABLE名列名语句略则修改所有记录只删除数据,不删除表结构1,2,...]SELECT DELETE视图
4.5创建视图查询视图使用语句创建视图,视图是基于一个或多个表的查询结果的虚拟视图一旦创建,就可以像表一样使用语句进行查询视图查询时,数据CREATE VIEWSELECT表基本语法为视图名列名列名语句库系统会将视图查询转换为对基本表的查询,获取数据后返回给用户,用户感CREATE VIEW[1,2,...]AS SELECT选项确保对视图的修改符觉不到视图的虚拟性[WITH CHECKOPTION]WITH CHECKOPTION合视图的定义条件更新视图删除视图某些简单的视图可以进行更新操作(插入、修改、删除),这些操作最终会影使用语句删除视图,基本语法为视图名DROP VIEWDROP VIEW响基本表复杂视图(包含聚合函数、、、多表连接等)选项级联删除依赖于该视图的对象,GROUP BYDISTINCT[CASCADE|RESTRICT]CASCADE通常不能更新,因为更新操作无法唯一映射到基本表上选项在有依赖对象时阻止删除操作视图删除后,依赖该视图的应用RESTRICT可能受影响索引
4.6索引的概念和作用创建索引删除索引索引是一种特殊的数据结构,用于加速数使用语句创建索引基本使用语句删除索引基本语CREATE INDEXDROP INDEX据库中数据的检索它类似于书的目录,语法为法为索引名删除索引CREATE[UNIQUE][CLUSTER]DROP INDEX通过建立键值与记录位置的映射,实现快索引名表名列名不会影响表中的数据,只会影响查询性能INDEX ON速定位数据索引可以显著提高查询效率,选项指定唯在大量数据修改操作之前,有时会临时删[ASC|DESC],...UNIQUE但会增加存储空间和降低数据修改性能一索引,选项指定聚集索引除索引以提高性能,然后再重新创建索引CLUSTER可以在一个或多个列上创建索引,包括升序或降序排列方式触发器
4.7触发器的概念创建触发器触发器的应用123触发器是一种特殊的存储过程,它与表使用语句创建触发器触发器广泛应用于强制执行业务规则、CREATE TRIGGER相关联,当表上发生特定事件(如插入、基本语法为触发审计和日志记录、数据校验、自动计算CREATE TRIGGER更新或删除操作)时自动执行触发器器名派生值、实现复杂的参照完整性约束等{BEFORE|AFTER}可以在操作执行前(触发器)表名场景触发器使数据库具有更强的自动BEFORE{INSERT|UPDATE|DELETE}ON或操作执行后(触发器)触发,触发器体触发器化处理能力,但过多的触发器可能导致AFTER[FOR EACHROW]用于实现复杂的业务规则和约束体中可以定义和引用,分别表性能问题和维护困难NEW OLD示操作后的新数据和操作前的旧数据第五章数据库安全性身份鉴别存取控制1验证用户身份限制用户操作2审计与加密视图机制43监控与保护数据控制数据可见性数据安全是数据库系统的核心问题之一,涉及数据的保密性、完整性和可用性本章将介绍数据库安全性的基本概念和实现机制,包括用户身份鉴别、存取控制、视图机制、审计和数据加密等内容通过学习本章内容,你将了解如何保护数据库系统免受未授权访问和恶意攻击,确保数据的安全和隐私数据库安全性概述
5.1数据库安全的基本概念数据库面临的安全威胁12数据库安全是指保护数据库免数据库系统面临多种安全威胁,受非授权访问、使用、修改、包括未授权访问、数据泄露、破坏或泄露的能力它涉及多数据篡改、拒绝服务攻击、提个维度,包括物理安全、系统权攻击、注入等这些威SQL安全、网络安全、应用安全和胁来源于外部攻击者、内部人数据安全等,共同构成完整的员滥用权限,甚至自然灾害等数据库安全防护体系多种因素数据库安全策略3有效的数据库安全策略应包括安全评估、访问控制、加密保护、安全审计、备份恢复、漏洞管理等多个方面,并与组织整体安全策略相协调,形成深度防御体系,多层次保护数据库安全用户身份鉴别
5.2静态口令鉴别生物特征鉴别动态口令和令牌静态口令是最常用的身份鉴别方生物特征鉴别利用用户的生物特动态口令通常结合硬件或软件令式,用户通过输入预先设定的用征(如指纹、虹膜、人脸等)进牌,生成一次性密码用于身份验户名和密码进行身份验证尽管行身份验证,具有唯一性和不可证常见如短信验证码、邮件验实现简单,但容易遭受暴力破解、伪造性这种方式安全性高,但证码、硬件令牌等这种方式结字典攻击、钓鱼攻击等威胁,安实现成本较高,可能存在隐私问合了你知道的和你拥有的两全性相对较低题和准确率受环境影响等问题种因素,安全性高于单一的静态密码数字证书数字证书基于公钥基础设施(),使用公钥加密和数字签PKI名技术进行身份验证证书由可信的证书颁发机构()签发,CA包含用户公钥和身份信息这种方式安全性高,适合对安全要求较高的场景存取控制
5.3自主存取控制强制存取控制自主存取控制(,)是一种强制存取控制(,)是一种基Discretionary AccessControl DACMandatory AccessControl MAC由数据拥有者决定其他用户访问权限的控制机制在关系数据库于系统安全策略控制主体对客体访问的机制,用户无法改变安全中,通常通过和语句实现数据拥有者可以授予策略它通常基于多级安全模型,为主体和客体分配安全级别,GRANT REVOKE其他用户对数据对象的、、、如绝密、机密、保密、公开等SELECT INSERTUPDATE DELETE等权限在中,用户只能访问不高于其安全级别的信息,且只能向不MAC例如低于其安全级别的对象写入数据,遵循向上读和向下写原则,GRANT SELECT,UPDATE ONStudent TOUser1允许查询和更新表,并确保信息不会从高级别流向低级别WITH GRANTOPTION;User1Student可以将这些权限授予其他用户视图机制
5.4视图的安全作用通过视图实现数据过滤视图作为数据库安全的重要机制,视图可以通过子句实现行WHERE可以限制用户只能看到被授权的级过滤,只显示满足特定条件的数据,隐藏敏感信息和底层表结数据行;也可以通过子句SELECT构,简化用户对数据的访问视实现列级过滤,只显示用户有权图提供了一种逻辑上的数据独立访问的列这种细粒度的访问控性,使数据库管理员能够灵活控制,是基本表级权限控制无法实制用户的数据访问权限现的视图的限制虽然视图能够提高安全性,但它也有一些限制视图本身不存储数据,不能替代物理安全措施;复杂视图可能影响查询性能;某些视图操作的权限控制较为复杂;视图的更新可能受到限制审计
5.5数据库审计的概念审计内容和范围12数据库审计是指记录、监控和审计的内容包括用户身份、操分析用户对数据库的各种操作,作时间、操作类型、访问对象、包括成功和失败的登录尝试、语句、客户端信息等审SQL数据查询、修改、权限变更等计范围可以是全局性的,也可活动审计可以帮助检测安全以针对特定用户、特定对象或漏洞、识别可疑行为、调查安特定操作,通过合理配置减少全事件,并满足合规要求审计数据量,提高审计效率审计的实现方式3数据库审计可以通过数据库管理系统内置的审计功能实现,如的Oracle、的功能;也可以通过第三Fine-Grained AuditingSQL ServerAudit方审计工具或安全信息与事件管理系统()实现更为强大的审计和SIEM监控功能数据加密
5.6数据加密的基本概念静态数据加密传输数据加密数据加密是将明文数据通过特定静态数据加密(传输数据加密(Data-at-Rest Data-in-Transit算法转换为密文,使未授权者即)保护存储在数据库)保护数据在网络传Encryption Encryption使获取数据也无法理解其内容中的敏感数据可以实现透明数输过程中的安全常用的技术包加密是保护数据机密性的最后一据加密(),对整个数据库括协议,可以确保客户TDE SSL/TLS道防线,尤其对静态存储的敏感文件加密;也可以实现列级加密,端与数据库服务器之间的通信加数据和网络传输的数据尤为重要只对特定敏感列(如信用卡号、密,防止数据被监听或篡改个人身份证号)进行加密密钥管理密钥管理是数据加密方案中至关重要的环节,包括密钥的生成、存储、分发、轮换和销毁等良好的密钥管理实践应确保密钥的安全性,避免密钥泄露导致加密失效第六章数据库完整性用户定义完整性1特定应用约束参照完整性2表间引用关系实体完整性3主键不能为空数据完整性是数据库系统的核心特性,它确保数据的准确性、一致性和可靠性本章将深入讨论数据库完整性的各个方面,包括实体完整性、参照完整性和用户定义完整性,以及它们的实现机制通过学习数据库完整性约束,你将了解如何防止错误数据进入数据库,如何确保数据之间的关系保持一致,以及如何实现特定业务规则的约束,从而提高数据库应用的质量和可靠性实体完整性
6.1实体完整性的概念主键约束实体完整性是关系数据库的基本完整性约束,它要求关系的主键主键约束是实现实体完整性的主要机制在创建表时,可以通过不能取空值这一约束确保每个实体都能唯一标识,是数据库中关键字指定主键数据库系统会自动为主键创建唯PRIMARY KEY实体可区分性的体现主键是唯一标识表中每一行数据的列或列一索引,确保主键值的唯一性,并禁止主键取空值如果试图插组合,它的值必须唯一且非空入重复的主键值或将主键设为,数据库系统会拒绝该操作NULL例如CREATE TABLEStudent SnoCHAR9PRIMARY KEY,Sname VARCHAR20,Sage INT;参照完整性
6.2参照完整性的概念外键约束参照完整性是保证关系间引用一致性的约束它规定如果关系外键约束是实现参照完整性的主要机制在创建表时,可以通过R1的外键引用关系的主键,那么中的值要么为空,要和关键字定义外键当操作可能违FK R2PK R1FK FOREIGN KEY REFERENCES么必须是中的某个值这一约束确保了表间的引用关系有效,反参照完整性时(如删除被引用的主键值),可以指定采取的动R2PK防止出现悬浮或孤立的引用作级联()、置空()、置默认值(CASCADE SETNULL SET)或拒绝()DEFAULT RESTRICT/NO ACTION例如CREATE TABLECourse Cno CHAR4PRIMARY KEY,Cname VARCHAR40;CREATE TABLESC SnoCHAR9,CnoCHAR4,Grade FLOAT,PRIMARY KEYSno,Cno,FOREIGN KEYSno REFERENCESStudentSno ONDELETECASCADE,FOREIGNKEYCno REFERENCESCourseCnoON DELETENO ACTION;用户定义完整性
6.3用户定义完整性的概念约束CHECK用户定义完整性是指针对特定应用的数据约束条约束是实现用户定义完整性的主要机制CHECK件,用于满足特定的业务规则和需求与实体完之一它可以定义列值必须满足的条件,如取值整性和参照完整性不同,用户定义完整性的规则范围、格式要求等约束可以在创建表CHECK由数据库设计者和管理员根据应用需求自行定义,时定义,也可以通过添加约束ALTER TABLE可以灵活地表达各种业务约束条件可以是简单的比较,也可以是复杂的逻辑表达式例如CREATE TABLEStudent SnoCHAR9PRIMARY KEY,Sname VARCHAR20NOTNULL,Sage INTCHECK Sage=15ANDSage=45,Ssex CHAR2CHECK SsexIN男女,;断言断言()是独立于表的完整性约束,可以定义涉及多个表或复杂条件的约束断言通过Assertion语句创建,当断言条件为假时,相关的数据操作将被拒绝断言是标准的一部CREATE ASSERTIONSQL分,但许多商业数据库系统并不完全支持例如CREATE ASSERTIONStudentNumberLimit CHECKSELECT COUNT*FROM Student=2000;完整性约束命名子句
6.41完整性约束命名的意义2约束命名语法在数据库设计中,为完整性约束命名可以提高在中,可以通过关键字为SQL CONSTRAINT可读性和可维护性有名称的约束更容易识别约束指定名称这适用于主键约束、外键约束、和管理,特别是在约束被违反时,错误消息中唯一约束、约束等约束名称应具有CHECK会显示约束名称,帮助开发人员和用户更快地描述性,反映约束的用途或内容,遵循命名约定位问题定以保持一致性例如CREATE TABLEStudent SnoCHAR9,Sname VARCHAR20,Sage INT,CONSTRAINT PK_Student PRIMARYKEYSno,CONSTRAINT CK_Student_AgeCHECK SageBETWEEN15AND45;3约束的管理命名的约束更易于管理,可以通过语句添加、修改或删除约束使用ALTER TABLEDROP语句可以删除指定名称的约束约束的启用和禁用也可以通过约束名称进行,这在批量CONSTRAINT数据加载等特殊情况下特别有用例如ALTER TABLEStudent ADDCONSTRAINT UQ_Student_Email UNIQUEEmail;ALTERTABLE StudentDROP CONSTRAINTCK_Student_Age;第七章关系数据理论函数依赖属性间的依赖关系,是数据库设计的基础概念码的识别确定关系的候选码、主码等关键属性范式理论通过规范化设计减少数据冗余和异常数据库设计方法从需求分析到物理结构设计的完整流程关系数据理论是关系数据库设计的理论基础,它研究关系模式的性质和设计方法,帮助设计者创建高质量的数据库结构本章将介绍函数依赖、码的概念、关系范式理论以及数据库设计的基本方法通过学习关系数据理论,你将能够理解良好数据库设计的原则,避免数据库设计中的常见问题,如数据冗余、更新异常等,从而设计出高效、灵活、一致的数据库结构函数依赖
7.1函数依赖的概念函数依赖的性质函数依赖是属性之间的一种约束关系,表示在一个关系中,一个函数依赖具有一些重要的性质,被称为公理Armstrong属性集的值确定后,另一个属性集的值也随之确定函数依赖用自反性如果⊆,则→•Y XX Y表示,读作函数确定或函数依赖于,其中和是→X Y X YYXX Y增广性如果,则→→属性集•X YXZ YZ传递性如果且,则→→→•X YY ZX Z例如,在学生关系中,学号姓名表示学号确定后,姓名也随之→确定,即一个学号只能对应一个姓名函数依赖反映了现实世界此外,还有合并规则(如果→且→,则→)和分解规则X YX ZX YZ中实体属性间的依赖关系(如果→,则→且→)等推理规则,用于推导函数依赖X YZX YX Z集的闭包码
7.21码的基本概念在关系数据库理论中,码是能够唯一标识关系中元组的属性或属性集码是函数依赖理论的核心概念,是设计关系模式的基础根据功能和特点的不同,码可以分为超码、候选码、主码和外码等不同类型2候选码候选码是最小的超码,即不包含多余属性的超码一个关系可能有多个候选码,每个候选码都能唯一标识关系中的元组例如,在学生关系中,如果学号和身份证号都能唯一标识学生,则它们都是候选码3主码主码是从候选码中选出的一个,作为关系的主要标识符主码的选择通常考虑属性的稳定性、简单性和使用频率等因素例如,选择学号而非身份证号作为学生关系的主码,因为学号更常用于学校环境中4外码外码是一个关系中引用另一个关系主码的属性或属性集外码建立了关系之间的联系,是实现参照完整性的基础例如,选课关系中的学号是外码,引用学生关系的主码范式
7.3第一范式()11NF第一范式要求关系中的每个属性都是原子的,不可再分例如,地址应该拆分为省、市、街道等属性,而不是一个复合属性是所有关系数据库模型的基本要求,是其他高级范式的基础1NF第二范式()22NF第二范式在的基础上,要求非主属性完全函数依赖于候选码如果关系有多属性候选码,可1NF能存在部分函数依赖,导致数据冗余和更新异常通过拆分关系可以消除部分函数依赖,达到2NF第三范式()33NF第三范式在的基础上,要求消除非主属性对候选码的传递函数依赖传递依赖导致非主属性2NF之间存在函数依赖,引起数据冗余和更新异常通过进一步拆分关系可以消除传递依赖,达到3NF范式()4BC BCNF范式是的改进,要求所有决定因素都是候选码即使主属性对候选码的部分函数依赖或BC3NF传递函数依赖也要消除比更严格,可以进一步减少数据冗余,但有时可能导致无损BCNF3NF连接分解的困难数据库设计
7.4需求分析数据库设计的第一步是需求分析,通过与用户交流,了解系统的数据需求、处理需求和安全需求需求分析的输出包括数据字典、数据流图、处理逻辑描述等,为后续设计提供依据概念结构设计概念结构设计阶段,设计者将需求转化为模型,描述实体、属性和联系这一阶E-R段独立于具体的,关注的是对现实世界的抽象表示,目标是创建一个完整、准DBMS确的概念模型逻辑结构设计逻辑结构设计阶段,将概念模型转换为特定支持的逻辑模型,如关系模型DBMS对于关系数据库,需要将图转换为关系模式,并应用规范化理论优化关系模E-R式,消除冗余和异常物理结构设计物理结构设计阶段,针对具体的和硬件环境,设计数据库的物理存储DBMS结构包括确定表的存储方式、建立索引、设计存储过程和触发器等,目标是优化数据库的性能和效率第八章数据库恢复技术事务管理日志与转储1确保操作的原子性记录变更和备份数据2数据库镜像检查点技术43实现快速恢复减少恢复时间数据库恢复是确保数据库系统可靠性的关键技术,用于在系统故障、操作错误或灾难发生后恢复数据库到一致状态本章将介绍数据库恢复的基本概念、事务处理、恢复策略以及各种恢复技术通过学习数据库恢复技术,你将了解如何设计和实现可靠的数据库系统,保证数据在各种故障情况下的安全性和一致性,最大限度地减少数据丢失和业务中断事务的概念
8.1原子性()一致性()隔离性()Atomicity ConsistencyIsolation事务是不可分割的操作单位,要事务的执行使数据库从一个一致事务的执行不受其他并发事务的么全部执行成功,要么全部不执状态转变为另一个一致状态一干扰隔离性通过并发控制机制行如果事务中的任何操作失败,致性确保事务遵守所有的完整性实现,确保多个事务同时执行时整个事务将被回滚,数据库恢复约束和业务规则,维护数据的正不会互相影响,每个事务看到的到事务执行前的状态原子性确确性和可靠性,防止数据库进入数据状态与它单独执行时相同保了数据操作的完整性不合法或不一致的状态持久性()Durability一旦事务提交,其对数据库的修改将永久保存,即使系统发生故障也不会丢失持久性通常通过数据库日志机制实现,确保已提交的事务在任何情况下都能恢复数据库恢复的实现技术
8.2数据转储登记日志文件数据转储是将数据库中的数据备份到外部存储介质的过程,是数据库恢日志文件记录了数据库中所有更新操作的历史,是实现事务原子性和持复的基础根据转储的内容和方式,可以分为以下几种久性的关键机制常见的日志记录包括静态转储在数据库停止运行时进行的完整备份,保证备份数据的更新日志记录记录数据修改前后的值,用于事务回滚和前滚••一致性,但需要停机事务开始结束记录标记事务的边界,用于识别完整的事务•/动态转储在数据库运行时进行的备份,不需要停机,但需要额外•检查点记录标记数据库一致状态的时间点,用于优化恢复过程•机制确保备份数据的一致性根据日志记录的写入时机,日志策略可以分为增量转储只备份自上次转储以来变化的数据,减少备份时间和存•储空间,但恢复时需要多个备份先写日志()保证数据更新前,相应的日志记录已写入稳定•WAL差异转储备份自上次完全转储以来变化的所有数据,恢复时只需存储,确保即使系统崩溃也能恢复•要完全转储和最新的差异转储先写日志后写数据库()适用于系统崩溃恢复,通过重做•REDO已提交事务的操作先写日志后写数据库()适用于事务回滚,通过撤销未提•UNDO交事务的操作具有检查点的恢复技术
8.3检查点的概念检查点的实现基于检查点的恢复过程检查点是数据库运行过程中定期标记的检查点的实现通常包括以下步骤暂停系统崩溃后,恢复过程首先确定最近的一致性状态点在检查点,系统将当前接受新事务;等待活跃事务完成或达到检查点,然后只需处理检查点之后的日内存中的所有已修改数据页写入磁盘,特定状态;将内存中已修改的数据页写志记录恢复分为两个阶段撤销阶段并在日志中记录检查点标记检查点的入磁盘;记录检查点日志记录;恢复正()回滚检查点时活跃但未提交UNDO设置可以限制故障恢复时需要处理的日常处理根据系统要求,检查点可以定的事务;重做阶段()重新执行REDO志量,大大缩短恢复时间期自动执行,也可以手动触发检查点后已提交的事务这种方法显著提高了恢复效率数据库镜像
8.4数据库镜像的概念数据库镜像的实现方式12数据库镜像是一种高可用性解决数据库镜像可以通过多种方式实方案,通过维护主数据库的一个现同步镜像确保主库和镜像库或多个实时副本(镜像),实现数据完全一致,但可能影响性能;快速故障转移和灾难恢复在主异步镜像允许数据延迟,性能更数据库发生故障时,系统可以自好但可能丢失部分数据;日志传动切换到镜像数据库,最大限度送镜像通过定期传输和应用事务减少服务中断时间日志实现数据同步,适合地理分布的环境数据库镜像的优势与挑战3数据库镜像的主要优势包括高可用性、数据保护、负载均衡和地理分布但也面临一些挑战网络带宽要求高、存储成本增加、复杂性增加、潜在的一致性问题在实施数据库镜像时,需要根据业务需求和资源约束选择合适的镜像策略第九章并发控制并发问题1数据不一致的根源封锁机制2并发控制的基本方法封锁协议3不同级别的一致性保证死锁处理4解决资源竞争冲突并发控制是数据库系统的核心功能之一,用于协调并发事务的执行,确保数据库的一致性和隔离性在多用户环境下,并发控制机制防止并发操作导致的数据不一致问题,同时最大化系统的并发度和吞吐量本章将介绍并发操作可能导致的数据不一致问题,以及解决这些问题的封锁技术、封锁协议和死锁处理机制,帮助你理解数据库系统如何在保证数据正确性的同时支持高并发访问并发操作带来的数据不一致性问题
9.1丢失修改不可重复读读脏数据丢失修改是指两个事务和先不可重复读是指一个事务在两次读读脏数据是指一个事务读取了T1T2后读取同一数据项,然后分别进行取同一数据项期间,另一个事务修另一个未提交事务修改的数据,如修改和提交,导致的修改被改了该数据项并提交,导致第一个果那个事务最终回滚,则读取的数T1T2覆盖,的修改效果丢失例事务两次读取的结果不同例如,据是无效的脏数据例如,银T1如,两个银行柜员同时处理一个账用户在查看商品价格后决定购买,行系统显示一笔大额存款入账,但户的存款业务,最终只有一个存款但结账时发现价格已变化该交易最终因支票无效而被取消记录生效幻读幻读是指一个事务两次执行同一查询,但第二次返回的结果集包含了第一次未出现的行,这些行是由其他已提交事务插入的例如,事务统计学生人数,事务插入新学A B生记录并提交,事务再次统计人A数时发现数量增加封锁
9.2封锁的基本概念排它锁共享锁封锁是最常用的并发控制机制,通过限制排它锁(,锁)用于保共享锁(,锁)用于保护Exclusive LockX SharedLock S并发事务对共享数据的访问,防止数据不护数据更新操作当事务对数据对象加数据读取操作当事务对数据对象加T Q T QS一致问题封锁粒度可以是整个数据库、锁后,可以读取和修改,但其他事务锁后,可以读取但不能修改,其他事务X TQ TQ表、页或行,粒度越小,并发度越高,但不能再对加任何类型的锁,直到释放也可以对加锁进行读取,但不能加锁QTX QS X开销也越大锁锁确保同一时刻只有一个事务能修进行修改,直到所有锁释放锁允许多X SS改数据,防止丢失修改问题个事务同时读取同一数据,提高并发度封锁操作包括加锁和解锁两种基本操作加锁()是事务请求对某数据对象加lock锁;解锁()是事务释放之前加的unlock锁封锁遵循两阶段封锁法则,即所有加锁操作都在第一次解锁操作之前完成封锁协议
9.3一级封锁协议1一级封锁协议要求事务在修改数据前必须先获得锁,直到事务结束才释放这一级X别防止了丢失修改问题,但不能防止读脏数据、不可重复读和幻读问题实际应用中,一级封锁协议对应于最低的隔离级别读未提交二级封锁协议2二级封锁协议在一级的基础上增加了要求事务在读取数据前必须先获得锁,读完S后即可释放锁这一级别防止了丢失修改和读脏数据问题,但不能防止不可重复S读和幻读问题二级封锁协议对应于隔离级别读已提交三级封锁协议3三级封锁协议在二级的基础上增加了要求事务在读取数据前必须先获得锁,直到S事务结束才释放锁这一级别防止了丢失修改、读脏数据和不可重复读问题,但S不能完全防止幻读问题三级封锁协议对应于隔离级别可重复读活锁和死锁
9.4活锁的概念与预防死锁的概念与处理活锁是指事务持续尝试获取锁但始终失败的情况,系统资源被占死锁是指两个或多个事务互相等待对方释放锁,导致所有事务都用但没有实际进展活锁通常发生在事务因冲突而回滚,然后立无法继续执行的情况死锁处理通常采用以下策略即重试的情况预防活锁的方法包括死锁预防通过事务提前申请所有需要的锁或按固定顺序申请•引入随机延迟事务回滚后随机等待一段时间再重试,减少冲锁,从设计上避免死锁•突概率死锁检测系统定期检查是否存在锁等待环,如果发现则强制•优先级策略为事务分配优先级,高优先级事务优先获取资源中断某个事务•死锁超时为事务设置等待锁的最长时间,超时后自动回滚事•增量退避每次重试失败后延长等待时间,避免频繁冲突务•在选择死锁牺牲者时,通常考虑事务的年龄、优先级、已执行工作量和回滚成本等因素,尽量减少系统开销第十章数据库管理系统系统选择1根据需求选择合适的DBMS数据字典2管理元数据和系统目录查询优化3提高查询执行效率系统功能4的核心组件和架构DBMS数据库管理系统()是管理数据库的软件系统,为用户提供数据定义、操作、控制和管理的功能本章将介绍的基本架构、核心功能、工作原理DBMS DBMS以及选择和使用策略通过学习本章内容,你将了解的内部工作机制,掌握查询处理和优化的基本原理,了解数据字典的作用,以及如何根据实际需求选择合适的数据库管理DBMS系统数据库管理系统的功能与架构
10.1数据存储管理查询处理事务管理负责数据的物理存储和管接收用户的查询请求,进通过事务管理器确保事务DBMS DBMSDBMS理,包括数据文件、索引文件和行语法分析、语义分析、查询优的属性,包括并发控制、故ACID日志文件的组织、分配和回收化和执行计划生成,然后调用存障恢复、日志管理等功能事务存储管理器实现存储结构和访问储管理器访问数据,返回查询结管理器协调多个事务的执行,处方法,提供缓冲区管理,优化果查询处理器的性能直接影响理并发冲突,保证数据的一致性I/O操作,提高数据访问效率数据库系统的响应时间和吞吐量和可靠性安全与完整性控制实现用户认证、访问控制、DBMS数据加密等安全机制,防止未授权访问和数据泄露同时,通过完整性约束确保数据符合定义的规则,保证数据的准确性和一致性查询处理和查询优化
10.2查询处理过程查询处理是将用户的高级查询转换为低级数据操作的过程,包括语法分析、语义分析、查询重写、查询优化、计划生成和计划执行等步骤每个步骤都可能影响查询的执行效率,是数据库系统性能的关键因素查询优化策略查询优化的目标是找到执行查询的最佳方法,减少操作和计算优化策略包括I/O CPU基于规则的优化(使用启发式规则重写查询)和基于成本的优化(计算不同执行计划的成本,选择成本最低的计划)执行计划生成执行计划决定了如何访问数据、连接表和处理操作关键决策包括表的访问方法(全表扫描、索引扫描)、表的连接顺序和方法(嵌套循环、排序合并、哈希连接)、操作的执行顺序(选择、投影、连接)等执行计划评估评估执行计划的成本需要考虑多种因素成本(读写磁盘的次数)、成本(处I/O CPU理数据的计算量)、网络成本(分布式环境中的数据传输)以及这些操作的并行度和内存使用情况数据字典
10.3数据字典的概念数据字典的内容12数据字典(也称为系统目录)是数据字典通常包含以下信息数维护的一组系统表和视图,据库模式定义、表和列的定义、DBMS存储关于数据库对象(表、视图、索引和约束信息、视图定义、存索引、约束等)的元数据它是储过程和触发器代码、用户和权自我描述的核心部分,管限信息、统计信息(如表的大小、DBMS理系统使用这些信息进行查询处行数、索引选择性)等这些信理、权限检查、完整性控制等操息对于的正常运行和优化DBMS作至关重要数据字典的访问与管理3大多数提供特殊的系统表、视图或函数,允许用户和管理员查询数据字DBMS典例如,的架构、的视图、SQL Serversys Oracledata dictionary的等可以通过这些接口监控数据库状态、MySQL information_schema DBA进行性能调优和故障诊断数据库管理系统的选择
10.4功能需求评估选择首先要明确业务对数据库功能的需求,包括数据模型支持(关系型、文档型、图数据等)、DBMS事务处理能力、高可用性和容灾、安全特性、数据量和性能需求等不同的在这些方面有各自的优DBMS势和限制技术架构考量需要与现有技术架构兼容,包括操作系统支持、硬件要求、网络环境、开发语言和框架的集成能DBMS力、云服务兼容性等技术架构的选择可能会限制的选项,或增加集成和维护的复杂性DBMS总拥有成本分析的成本不仅包括软件许可费用,还包括硬件投资、管理和维护成本、培训和支持成本、可能的迁DBMS移成本等开源可能没有直接的许可费用,但可能需要更多的内部支持和专业知识DBMS市场和供应商评估选择成熟且有良好支持的可以降低风险需要评估供应商的市场地位、产品路线图、技术支持质量、DBMS社区活跃度(对于开源产品)以及长期发展战略,确保所选能够满足未来的需求变化DBMS课程总结与展望基础理论实用技能1数据模型与关系理论语言与数据库设计SQL2未来发展高级特性43新技术与应用趋势安全性、完整性与并发控制本课程系统地介绍了数据库的基础理论和核心技术,包括数据模型、关系数据库理论、语言、数据库设计与管理等内容通过学习,你已经掌SQL握了设计和使用数据库系统的基本能力,为进一步学习和应用数据库技术奠定了基础随着大数据、云计算、人工智能等技术的发展,数据库领域也在不断创新,分布式数据库、数据库、数据库等新型数据库系统不断NoSQL NewSQL涌现未来,数据库技术将更加注重扩展性、性能和智能化,为各行各业的数据管理提供更强大的支持。
个人认证
优秀文档
获得点赞 0