数据库一、数据库系统基本概念1、数据库的基本概念(1)信息:信息是现实世界事物的存在方式或运动状态的反映,是对事物间相互联系、相互作用的描述。信息具有可感知、可存储、可加工、可传递和可再生的自然属性。(2)数据:数据是描述现实世界事物的符号记录。(3)信息与数据的关系:数据是信息的符号表示,或称载体;信息是数据的内涵,是数据的语义解释。(4)数据库:数据库是按一定结构组织并可以长期存储在计算机内的、在逻辑上保持一致的、可共享的大量相关联数据的集合。(5)数据库中的数据通常分为两部分:用户数据和系统数据(6)系统数据:亦称为数据字典,包括对数据库的描述信息、数据库的存储管理信息、数据库的控制信息、用户管理信息和系统事务管理信息等。数据字典亦称为元数据或系统目录。(7)数据库管理系统:是位于用户和操作系统之间的一个定义、操纵、管理、构建和维护数据库的系统软件,是数据库和用户之间的一个接口。(8)数据库管理员(DBA)的职责:确定数据库中的信息内容和结构确定数据库的存储结构和存储策略定义数据的安全性要求和完整性约束监控数据库的使用和运行数据库的性能改进定期对数据库进行重组和重构,以提高系统的性能(9)系统分析员的职责:负责应用系统的需求分析和规范说明确定系统的软硬件配置并参与数据库系统的概要设计(10)数据库设计人员的职责:参加用户需求调查和系统分析负责数据库中数据的确定、数据库各级模式的设计(11)1968年,美国IBM公司推出第一个数据库管理系统IMS(12)1970年,美国IBM公司的高级研究员E.F.Codd提出了关系数据模型及其相关概念。奠定了关系数据库的理论基础。2、数据库方法的主要特征(1)数据库方法的优势:数据库系统自描述特点数据结构化数据共享性高、冗余度小、易扩充数据独立性高由DBMS进行统一的数据管理和控制(2)DBMS的数据控制功能:提供数据库数据的安全性保护,限制非授权的访问提供数据库的备份和恢复功能提供定义和确保数据库完整性检查提供并发控制功能提供高效的数据查询处理和优化提供多用户界面3、数据库系统的构成成分(P2)(1)构成:数据库操作系统、数据库管理系统、应用开发工具、应用系统、数据库管理员、数据库用户4、数据库技术的研究领域(1)数据库管理系统软件的研究研究的目的:提高系统的性能和提高用户的生产率(2)数据库设计技术和方法的研究(3)数据库理论的研究二、数据模型1、数据模型基本概念和主要成分(1)数据模型:数据模型是用来描述数据库数据的结构、定义在结构上的操纵,以及数据间的约束的一组概念和定义,描述了数据库的静态特征与动态行为,为数据库的表示和操纵提供框架。(2)数据模型应满足的三点要求:能比较真实地模拟现实世界容易为人所理解便于在计算机上实现(3)数据模型组成的要素:数据结构:以一种统一的方式描述基本数据项的类型与性质以及数据与数据间的关联数据操作:表示数据模型的动态结构数据约束:既刻画了数据静态特征,也表示了数据动态行为准则主要是数据完整性约束(4)数据模型是数据库系统的核心和基础。2、数据模型的抽象层次和相互关联3、各抽象层次的主要数据模型(1)数据模型的分类:概念层模型、逻辑层模型、物理层模型(2)概念层模型:简称概念模型,是现实世界到信息世界的语义抽象,主要用于数据库概念设计。(3)逻辑层模型:简称逻辑模型,用于描述数据库数据的整体逻辑结构。传统的逻辑模型是基于记录的模型,分为:层次模型、网状模型和关系模型。面向对象模型不是传统的基于记录的模型。(4)物理层模型:简称物理模型,描述逻辑模型的物理实现,是数据库最底层的抽象。它确定数据的物理存储结构、数据存储路径以及调整、优化数据库的性能。物理模型的设计目标是提高数据库性能和有效利用存储空间4、概念数据模型——E-R模型(1)概念模型用于信息世界的建模,与具体的DBMS无关(2)几个概念:实体:客观存在并可以相互区别的事物称为实体。属性:实体所具有的某一特性称为属性。域:属性的取值范围称为该属性的域。实体型:用实体名及其属性名集合来抽象和刻画同类实体,称为实体型实体集:同类实体的集合,称为实体集。(3)两个实体型之间的联系:一对一联系(1:1)一对多联系(1:n)多对多联系(m:n)一对一联系是一对多联系的例,一对多联系是多对多联系的特例(4)概念模型的表示方法——实体-联系模型(E-R模型)(5)E-R模型是一个图示化模型,提供了表示实体型、属性和联系的方法。实体型:用矩形表示,矩形框内写明实体名属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁边标注上联系的类型(1:1、1:n或m:n)注:联系型本身也是一种实体型,也可以有属性(6)E-R模型的两个优点:接近人的思维方式,容易理解与计算机无关,用户容易接受(7)E-R模型由于其易理解性且易于向关系模型转换,成为数据库概念设计的最一般的模型5、常用的逻辑数据模型(1)逻辑数据模型分类:层次数据模型、网状数据模型、关系数据模型、面向对象数据模型,以及对象-关系数据模型(2)层次模型和网状模型层次模型主要反映现实世界中实体间的层次关系,是以树状结构表示各类实体以及他们的联系层次模型的存储结构通过邻接法、链接法和邻接-链接混合法实现数据的存储链接。层次模型引入冗余数据和指针来实现实体的多对多联系(3)关系模型关系模型是目前最常用的一种数据模型关系模型用二维表格结构表示各类实体及实体间的联系,一个关系数据库一般由多张二维表组成,每张二维表称为一个关系。二维表的表头称为关系模式;二维表中的数据称为关系实例,简称关系(4)面向对象模型面向对象模型既是概念模型又是逻辑模型6、数据库系统的三级模式结构和数据独立性(1)从数据库管理系统角度看,数据库系统常采用三级模式结构:外模式、模式及内模式。这是数据库系统内部的系统结构。(2)从数据库最终用户角度看,数据库系统的结构分为集中式结构、分布式结构、客户机/服务器结构以及面向Web应用的三层和n层体系结构。这是数据库系统外部的体系结构。(3)型:是指对某一类数据的结构和属性的描述,值是型的一个具体赋值。数据库的型是固定不变的,而数据库的值是随时间变化的。数据库的型亦称为数据库的内涵,数据库的值亦称为数据库的外延(4)数据库的模式:是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及“型”的描述,不涉及具体的“值”。(5)在某个特定时刻,数据库中的数据被称为一个数据库状态,也称为数据库的具体值的当前集合。每个模式机构都有它自己实例的当前集合。(6)数据库系统的三级模式:外模式、模式、内模式。这是数据库系统内部的体系结构或总体结构。模式:也称逻辑模式或概念模式。一个数据库只能有一个模式。外模式:也称子模式或用户模式。一个数据库可以有多个外模式。内模式:也称物理模式或存储模式。一个数据库只能有一个内模式。(7)外模式/模式映像:保证数据与程序的逻辑独立性,简称数据的逻辑独立性。(8)模式/内模式映像:保证数据与程序的物理独立性,简称数据的物理独立性。(9)数据模型和数据库系统的三级模式和两层映像的体系结构是整个数据库系统的核心和基础。三、关系数据模型1、关系数据库系统基本概念(1)关系数据模型由关系数据结构、关系操作集合和关系完整性约束三大要素组成。(2)关系数据结构:(3)关系操作集合:关系操作的特点:集合操作方式。这种操作方式也称为一次一个集合的方式。菲关系数据模型的数据操作方式则为一次一个记录方式。用户不必请求DBA为他建立特殊的存取路径,存取路径的选择由DBMS的优化机制来完成。用户不必要求助于循环和递归来完成数据的重复操作。两种表示方式:代数方式和逻辑方式(4)关系完整性约束:数据库的数据完整性指数据库中数据的正确性、一致性和相容性2、关系模型的数据结构和基本术语(1)关系:一个关系对应一个二维表,二维表名就是关系名。(2)属性:在二维表中的列(字段),称为属性。(3)关系模式:在二维表中的行定义(记录的型),即对关系的描述称为关系模式。(4)元组:在二维表中的行(记录的值),称为元组。(5)分量:元组中的一个属性值(6)候选码或候选键:如果在关系的一个码或键中,不能从中移去任何一个属性,否则它就不是这个关系的码或键,则称这样的码或键为该关系的候选码或候选键。(7)超码或超键:如果在关系的一个码中移去某个属性,它仍然是这个关系的码,则称这样的码或键为该关系的超码或超键。每个关系至少有一个默认的超码或超键,即该关系的所有属性的集合,也是这个关系的最大超码或超键。(8)主码或主键:在一个关系中的若干个候选码或候选键中指定一个用来唯一标识该关系的元组,则称这个被指定的候选码或候选键为该关系的主码或主键。(9)主属性和非主属性:关系中包含在任何一个候选码中的属性称为主属性或码属性,不包含在任何一个候选码中的属性称为非主属性或非码属性。(10)外码或外键:当关系中的某个属性(或属性组)虽然不是这个关系的主码或只是主码的一部分,但却是另一个关系的主码时,称该属性(或属性组)为这个关系的外码或外键。(11)参照关系与被参照关系:参照关系也称从关系,被参照关系也称主关系。以外码为主码的关系称为被参照关系,外码所在的关系称为参照关系。(12)以数学的观点定义关系称为关系的形式定义:用集合论的观点定义关系:关系是一个度为K的元组的有限集合,即这个关系有若干个元组,每个元组有K个属性值(把关系看成一个集合,集合中的元素是元组。)用值域的概念来定义关系:关系是属性值域笛卡儿积的一个子集(13)关系数据库对关系的限定:每一个属性是不可分解的每一个关系仅仅有一种关系模式每一个关系模式中的属性必须命名,在同一个关系模式中,属性名必须是不同的在关系中元组的顺序是无关紧要的,可任意交换。在关系中属性的顺序是五关紧要的,可任意交换。同一个关系中不允许出现候选码或候选键值完全相同的元组3、关系操作的特征、关系代数(1)关系代数的操作可分为三类:基于传统集合论的操作:从行的角度进行的,有并、交、差、笛卡儿积专门的关系操作:分为一元操作和二元操作。一元操作有选择和投影,二元操作有连接和除扩充的关系操作:主要有广义投影、赋值、外连接、半连接、聚集、外部并(2)并、差、笛卡儿积、选择、投影是五种基本的操作。(3)基于传统集合论的关系操作是集合上的标准数学操作,包括并、交、差、笛卡儿积四种操作,它们都是二元操作。前三种操作必须满足相容性条件。(4)如果两个关系满足相容性条件,则这两个关系具有相同的属性个数,并且每对相对应的属性都具有相同的域。(5)P42-P49.相应操作的定义,以及关系代数。4、关系的完整性约束(1)关系数据模型的完整性约束主要包括实体完整性约束、参照完整性约束和用户定义完整性约束。(2)实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系数据库管理系统(DBMS)自动支持(3)实体完整性约束实体完整性约束是对关系中主码或主键属性值的约束。由实体完整性规则实现。实体完整性规则:若属性A是关系R的主属性,则属性A不能取空值。由此可见:实体完整性约束是对关系的约束每个关系必须有主码,主码的值唯一,用于标识关系的元组组成主码的属性都不能取空值,而不仅仅是主码属性集整体不能取空值(4)参照完整性约束不仅两个或两个以上的关系间可以存在参照关系,同一个关系的属性间也可能存在参照关系。外码不一定要与相应的主码同名参照完整性规则:若属性(或属性组)F是关系R的外码,它与关系S的主码K相对应(关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值参照完整性规则中,R和S可以是同一个关系(5)用户定义完整性约束主要是对属性的取值进行限定,所以主要是域完整性约束域完整性约束是对属性的值域的约束,是指对关系中属性取值的正确性限制,包括数据类型、精度、取值范围、是否允许空值、是否有默认值等。取值范围又分为静态定义