概论
1.1 数据库的定义
1.1.1 数据
数据是数据库中存储的基本对象,人们为了认识世界,交流信息而对事物进行描述的符号称为数据。数据在人们头脑中的直觉反应就是数字。但数字只是数据的一种最简单的形式。数据的解释是指对数据含义的说明。数据的含义称为数据的语义,数据与语义是不可分的。
1.1.2信息
信息是对现实世界事物存在方式或运动状态的反映,是加工后的数据。数据是信息的载体,而信息是数据的内涵。同一信息可以有不同的数据表示形式,而同一数据也可能有不同的解释。
1.1.3数据库
DataBase,顾名思义,是存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定格式存放的。 严格来讲,数据库是长期存储在计算机内有组织的,可共享的大量数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。概括来讲:永久存储、有组织和可共享三个基本特点
1.1.4数据库管理系统
DataBase Management System ,是位于用户和操作系统之间的一种数据管理软件
1.1.5数据库系统
是指在计算机中引入数据库后的系统。一个数据库系统是一个实际可运行的,按照数据库方式存储为何和向应用系统提供数据和信息支持的系统。他是存储介质、处理对象和管理系统的集合。通常由数据库,数据库管理软件、应用系统、数据库管理员组成
1.2数据管理技术的产生和发展
1.2.1人工管理阶段
- 不保存数据 应用程序管理数据 数据不共享,冗余度大 程序和数据不具有独立性
1.2.2文件系统管理阶段
- 数据可以长期保存 文件系统管理数据 程序和数据之间有了一定的独立性 数据共享性差,冗余度大 数据独立性差
1.2.3数据库系统管理阶段
数据库系统包括应用程序,数据库管理系统,数据库,用户,计算机硬件环境和操作系统。其中,应用程序、数据库管理系统、数据库是数据库系统最基本的组成部分。
1.3.2软件
- 数据库管理系统 操作系统 具有数据库访问接口的高级语言及编程环境 以数据库管理系统为核心的实用工具
1.3.3 人员
数据库系统中包含的人员主要有数据库管理员、系统分析人员、数据库设计人员、应用编程人员和和最终用户
1.4数据库系统的特点
- 数据结构化。 数据的共享性高,冗余度低,容易扩充 数据独立性高 数据由DBMS统一管理和控制
数据库系统结构
本章主要介绍数据模型和数据库系统的构成,主要包括概念模型、逻辑模型和物理模型以及数据库系统的三级模式。概念模型是对现实世界的抽象和模拟,逻辑模型是为了方便计算机处理数据所采用的模型,物理模型是数据在计算机中的具体存储实现,使用户不必关心数据在数据库中的具体细节。
2.1数据模型
数据模型是对现实世界数据特征的模拟和抽象,用来描述数据是如何组织、存储和操作的 如一组建筑的沙盘,一架航模飞机等都是具体的模型,通过这些模型,可以联想到现实中具体的事物。
数据库中所指的数据模型也是一种模型,是为了让计算机系统能够表达和处理现实中的各种事物和动作,是对其进行数据化的工具。
- 数据结构是所描述的对象类型的集合,是对系统静态特性的描述 数据操作是对系统动态特性的描述 数据的完整性约束条件。在关系模型中,任何关系必须满足实体完整性和参照完整性
2.1.3数据模型的分类
数据模型对应不同的应用层从分成三种类型:概念模型,逻辑模型和物理模型
2.1.4概念模型
概念模型是现实世界到机器世界的一个中间层次
信息世界中的基本概念 描述 实体 实体可以是具体的人、事、物,也可以是抽象的概念或联系 属性 学生实体可以由学号、姓名、性别 码 唯一标识实体的属性集称为码 实体型 具有相同属性的实体必然具有共同的特征和性质。学生(学号,姓名,性别) 实体集 全体学生就是一个实体集 联系 通常情况下的联系都是实体之间的联系
特别要注意的是两个以上实体之间的联系 对于课程、教师与参考书三个实体,如果一门课程可由若干个教师讲授且使用若干本参考书,一个教师可以讲授多们课程,一本参考书可以供多门课程使用,课程与教师、参考书之间的联系是多对多的。
2.1.5 逻辑模型
概念数据模型必须转换成逻辑数据模型,才能在DBMS中实现,因此逻辑模型即要面向用户,又要面向系统。 逻辑模型是从数据的组织方式来描述数据即用什么样的数据结构来组织数据,是具体的DBMS所支持的数据模型。
- 层次模型:它的结构是一颗有向树,可以方便的表示实体之间扽一对多联系。 网状模型:网状模型没有层次模型那样严格的完整性约束条件。他能够直接的描述客观世界,可表示实体间的多种复杂联系。具有良好的性能和存储效率。 关系模型:用关系表示实体之间的联系的模型称为关系模型。关系模型用二维表来组织数据,而这个二维表在关系数据库中称为关系。关系数据库就是表的集合。在关系数据库中,表是逻辑结构而不是物理结构。
关系数据库是指对应于一个关系模型的所有关系的集合。
关系模型中的基本术语:关系—二维表(关系就是表,但不能说表就是关系)
2.1.6物理模型
是面向计算机物理表示的模型,描述了数据在存储介质上的组织结构,如存储位置、记录的顺序、记录的访问结构(索引,散列表)他不但与具体的DBMS有关,而且与操作系统和硬件有关。每一种逻辑模型在实现时都有其对应的物理模型。
2.2数据库系统的三级模式和二级映像
2.2.1数据库系统的三级模式结构
概念模式:是内模式和外模式之间的中间层次,是数据库中所有数据的逻辑结构和特征描述,是所有用户的公共数据视图
- 与数据的物理存储细节和硬件环境无关 与具体的应用程序、开发工具及高级程序设计语言无关
内模式:一个数据库只有一个内模式 外模式: 外模式的地位:介于模式与应用之间 模式与外模式的关系:一对多 外模式与应用的关系:一对多:同一个外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式
2.2.2数据库的二级映像功能与数据独立性
- 外模式/模式映像,同一个模式,可以有多个外模式,对于每一个外模式,数据库系统都有一个外模式到概念模式映像,它定义了该外模式与概念模式之间的对应关系。这些映像定义通常包含在各自外模式的描述中。保证程序和数据的逻辑独立性(1)当模式改变时,数据库管理员修改有关的外模式/模式映像(也可能不做任何修改)使外模式保持不变(2)应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性。 -模式/内模式映像:是唯一的。它定义了全局逻辑结构和存储结构之间的对应关系。该映像通常包含在模式描述中 保证了数据的物理独立性
2.3数据库管理系统
数据库管理系统是一种操作和管理数据库的大型软件,用于建立、使用和维护书库。 DBMS:
- 数据定义 数据操作 优化和执行 数据安全和完整性 数据恢复和并发 数据字典 性能
第三章 关系数据库基础
3.1.1关系
关系就是表,但不能说表就是关系,因为关系是一种特殊的表,用表格的形式来描述和保存有序多元组,而表的形式却可以多种多样。在数据库中,多对多的联系也是通过关系来表达实现的。
3.1.2关系模式
关系的描述称为关系模式。对关系的描述为:关系名(属性1,属性2)
3.1.3关系数据库相关概念
关系数据库是建立在关系理论基础上的数据库,在关系数据库中,实体和实体之间的联系均以关系的形式进行描述
- 元组:每一行 属性:每一列 域:属性的取值范围 码:也称为键,指取值具有唯一性的属性,可以唯一确定表中的一个元组,它可以由多个属性共同组成 主码:一个关系中所有的码构成候选码,为了管理方便,选定一个候选码作为元组标识,这个候选码称为主码,主码的取值具有唯一性且不能为空 外码:外键把不同的关系(表)连接起来,用于表达实体与实体之间的联系,并实现相应的强制性约束。外码必须与其所参照的主码具有相同的域,且外码的取值只能引用参照主码的值或使用空值
3.2关系的完整性
关系的完整性约束是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。完整性通常包括域完整性,实体完整性,用户定义完整性
3.3关系操作
五种基本查询操作:选择,投影,并,差,笛卡尔积是5种基本查询操作。并且对关系的操作是以元组为基本单位的,操作的对象是元组构成的集合,操作的结果也是元组构成的集合
3.3.2关系数据语言的分类
3.4关系代数
3.4.1 关系代数运算符
关系代数的运算符包括集合运算符:并,交,差,笛卡尔积 专门的关系运算符:选择,投影,连接,除,算术比较符,逻辑运算符… 集合运算符将关系看出元组的集合进行运算,是从水平方向进行的;专门的关系运算符不仅涉及行而且设计列,算数比较符和逻辑运算符辅助专门的关系运算符
3.4.2传统的集合运算
3.4.3专门的关系运算
- 选择 投影 投影之后不仅取消了原关系中的某些列,而且还能取消某些元组(避免重复行),因此投影结果的元组数小于等于原关系的元组个数 连接 主要用于将两个有联系的关系关联起来。如果的为‘=’则称为等值连接,等值连接是使用最广泛的一种链接。
如果两个有共通属性(同名属性)的关系进行同名属性间的等值连接,则可简化为自然连接。运算符为*。自然连接会将两个关系中同名的属性组自动设为相等并作为连接条件进行等值连接,同时将连接结果中同名的属性只保留一份
自然连接自然连接是一种特殊的等值连接,两个关系中进行比较的分量必须是同名属性(组) 把结果重复的属性列去掉 举例:
查询选修了2号课程的学生的学号:Πsno(选择cno=‘2’(SC)) 查询选修了2号课程且成绩在90分以上的学生的学号 ΠSno(选择Cno=2 ∩ grade>=90(SC)) 查询选修了2号课程的学生的学号,姓名 ΠSno,Sname(选择Cno=2(SC*STudent)) ΠSno,Sname(选择Cno=2(SC)*Student) 查询至少选修了一门学分为4的课程的学生姓名 ΠSname(选择Credit=4(Course*SC*Student))
- 除
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/290992.html