Bootstrap

数据库系统(一)数据库基础,关系数据库

第一章:数据库基础

第一节:数据库系统概述

一、数据管理:发展阶段

1.人工管理阶段(计算器模型)

(1)data管理者:应用程序,数据不保存

(2)data面向对象:某一应用程序。数据由程序设计、定义、管理,程序员负担重

(3)data共享程度:无共享,冗余度极大。

(4)data独立性:不独立,完全依赖于程序。

(5)data结构化:无结构。

(6)data控制能力:应用程序自己控制。

2.文件系统阶段(word,Excel,txt存储数据)

(1)data管理者:文件系统,数据可长期保存。

(2)data面向对象:某一应用程序。excel打开xls。

(3)data共享程度:共享性差,冗余度大。相同数据重复存储、各自管理,易造成数据不一致性。多个500强表中企业改名。

(4)data独立性:独立性差,数据结构改变须修改应用程序<=>(2)。

(5)data结构化:记录内有结构,整体无结构。

(6)data控制能力:应用程序自己控制。

3.数据库系统阶段

(1)data管理者:DBMS(数据库管理系统)

(2)data面向对象:现实世界

(3)data共享程度:共享性高,冗余度小

(4)data独立性:独立性强

(5)data结构化:整体结构化

(6)data控制能力:由DBMS统一管理和控制

二、数据库:相关概念

1.数据

概念:描述事物的符号记录

特点:数据与语义不可分

2.数据库(DB,database)

概念:长期储存在计算机内、有组织、可共享的数据集合。

特点:共享性高;冗余度小、独立性高;易扩展

3.数据库管理系统(DBMS)

概念:位于用户和操作系统之间的一层数据管理软件。

关系型DBMS:MySQL、Oracle、SQLserver、Sybase、DB2

面向对象型:redis

4.数据库系统(DBS)

DB+DBMS+用户

用户:应用系统及开发工具(软件用户)、数据库管理员(管理用户)、客户用户

三、数据管理系统:功能

1.数据定义功能(DDL,define):

提供数据定义语言,用于定义数据库中的数据对象:表、视图、用户、存储过程

2.数据操纵功能(DML,manipulate):

提供数据操纵语言,实现对数据库基本操作(增删改查)

3.数据控制功能(DCL,control):

(1)data安全性保护:防非法用户访问,需授权。

(2)data完整性检查:防非法数据(不符合语义、错误数据)进入

(3)并发控制:对多用户的并发操作协调控制,防止相互干扰。

(4)数据库恢复:备份=>恢复,可靠性

四、数据库系统:特点

1.结构化

内部结构化,整体结构化

2.共享性

数据面向整体,共享性高

3.冗余度低,易扩充

多个表共用一个元素名,共享性

4.独立性高

(1)物理独立性:程序与存储路径与方法无关,存储结构(存取方法、如何访问)改变,用户程序不用改变。

(2)逻辑独立性:逻辑结构(用户定义的,如甲乙在同一班)改变,用户程序不用改变。

5.数据由DBMS统一管控

DCL四项:安全性保护、完整性检查、并发控制、数据库故障恢复

第二节:数据模型

一、模型分类

1. 概念模型(信息模型)

按用户观点对数据和信息建模,用于数据库设计

2.逻辑模型

DBMS支持的数据模型,用于数据库管理系统的实现

包括网状模型(图),层次模型(树),关系模型(表),对象模型(信息新技术)

3.物理模型

数据在系统内部的存储方式和存取方法,是面向计算机系统的。

二、组成要素

1.数据结构

对象类型(表、树、图)的集合。系统静态特征的描述。

2.数据操作

增删改查

3.数据完整性约束

保证数据合法的规则

三、层次模型(树)

1.基本概念

(1)有且只有一个结点无父结点(根结点),根以外其他结点有且只有一个父结点。

(2)每个结点表示一个记录类型,父子结点间是一对多联系。

(3)每个记录类型(实体)可包含若干字段(属性)。各记录类型、同一记录类型中各字段不能同名。

(4)每个记录类型可定义一个码(key)字段。

2.表示方法

(1)实体型:记录类型-结点

(2)属性:字段-内容

(3)联系:结点间一对多有向箭头-边

3.主要特点

(1)父节点唯一

(2)只能直接处理一对多的实体联系

(3)每个记录类型定义一个码字段(关键字)

(4)任何记录值的查看都需要路径

(5)子节点无法脱离父节点独立存在

4.数据操纵与完整性约束

(1)数据操纵=>增删改查。增删改要满足层次模型的完整性约束。

(2)进行插入操作时,无父不子。

(3)进行删除操作时,删除父结点会同时删除对应子结点。

5.优点

(1)层次数据模型简单,一对多层次关系描述自然、直观,容易理解。

(2)性能优于关系模型,不低于网状模型。

(3)良好的完整性支撑。

6.缺点

(1)无法表示多对多关系。

(2)插入和删除操作限制多。层次命令趋于程序化。

(3)查询子结点须通过父结点。

(4)效率<网状模型。

四、网状模型(图)

1.基本概念

(1)允许一个以上结点无父结点;一个结点可以有多于一个父结点。

(2)描述现实世界更直观。层次模型为网状模型的特例。

(3)每个结点表示一个记录类型(实体),每个实体有若干字段(属性),结点间连线表示实体间一对多的父子联系。

2.表示方法

(1)实体型:结点

(2)属性:字段

(3)联系:边

3.主要特点

(1)能处理多对多实体联系。     

(2)每个记录类型定义一个码字段。                                           

(3)任何记录值只有按其路径查看,才能显出全部意义。

4.数据操纵与完整性约束

网状模型没有层次模型那么严格的完整性约束条件。

(1)支持记录key的概念,key即唯一标识记录的数据项的集合。

(2)保证一个联系(路径)中父结点和子结点是一对多的联系。

(3)可以支持父结点与子结点间某些约束条件。例如,有些子结点与对应父节点同生共死。

5.优点

(1)更直接描述现实世界。

(2)性能好,效率高。

6.缺点

(1)结构较复杂,且随应用环境扩大,数据库结构越复杂,不利于用户掌握。

(2)DDL、DML复杂,用户不易使用。

五、关系模型(表)

1.基本概念

(1)关系模型中数据逻辑结构为二维表。

(2)由行与列组成。必须满足一定的规范条件。

2.表示方法

(1)实体型:关系-行

(2)属性:属性名-列

(3)联系:一对一、一对多联系隐含在实体对应的关系中;多对多联系直接用关系表示。

3.关系模型三要素

(1)数据结构:二维表

(2)数据操纵:对数据的操作,包括增删改查。

(3)数据完整性约束:实体完整性(主键),参照完整性(外键),取值唯一非空等操作。

4.优点

(1)建立在严格概念的数学基础上,概念单一。

(2)数据结构简单、清晰、易懂易用。

(3)数据独立性高(查找不需要路径),保密性高,简化程序员和数据库开发的工作。

5.缺点

(1)查询不需要路径导致查询效率低。

(2)为提高性能,须优化查询请求,增加开发DBMS难度。

六、对象模型(分布式数据库)

1.特点

(1)面向对象数据库系统(OODBS)支持面向对象数据模型(OO模型)。是一个持久可共享对象库的存储和管理者。

2.OODB语言
3.优点
4.缺点

第三节、数据库系统结构

一、三级模式

1.数据库的三级模式

三级模式是对数据的三个抽象级别:内模式(1)、模式(1)、外模式(多)。

f6582d64179b43e0802b48b48613a6a7.png

2.模式(概念模式/逻辑模式)(表)

(1)模式定义:DB中全体数据的逻辑结构和特征的描述;是所有用户的公共数据视图。

(2)一个数据库只有一个模式。

(3)综合所有用户的需求,定义模式的逻辑整体,数据的逻辑结构,数据间联系,数据的安全性完整性要求。

(4)DBMS提供模式定义语言(DDL)来严格定义模式。

(5)模式的地位:DBS的中间层;与数据的物理存储细节和硬件环境无关;与具体的应用程序、开发工具及高级程序设计语言无关。

3.外模式(子模式/用户模式)(视图)

(1)是数据库用户使用的局部数据的逻辑结构和特征的描述;用户的数据视图,是于某一应用有关的数据的逻辑的表示。

(2)一个数据库可以有多个外模式(外模式为模式的子集)。

(3)DBMS提供模式定义语言(DDL)来严格定义外模式。

(4)外模式的地位:介于模式和应用之间。

(5)模式与外模式的关系是一对多。

(6)外模式与应用的关系是一对多。

(7)保证数据库安全性、独立性。每个用户只能看到其对应的数据。

4.内模式(存储模式)(索引)

(1)数据物理结构和存储方式的描述;是数据在数据库内部的表示方法。

(2)一个数据库只有一个内模式。

二、二级映象

二级映象在DBMS内部实现三个抽象层次的联系和转换。实现数据的逻辑独立性和物理独立性,即数据独立性。

1.外模式/模式映象

(1)概念:定义外模式与模式之间的对应关系;每一个外模式都对应一个外模式/模式映象。

(2)用途:保证数据的逻辑独立性。当模式改变时,DBA修改对应外模式/模式映象,外模式保持不变。

2.模式/内模式映象

(1)概念:定义data全局逻辑结构与存储结构之间的对应关系。

(2)用途:保证数据的物理独立性。当数据库存储结构改变,DBA修改模式/内模式映象,模式保持不变。

3.三级模式及独立性

(1)模式:全局逻辑结构,是数据库的中心与关键,独立于其它层次。设计数据库是首先确定。

(2)内模式:依赖于模式,独立于外模式(用户视图),也独立于具体存储设备。

(3)外模式:面向具体应用程序,定义于模式之上,独立于内模式和存储设备。设计时应考虑扩充性。

(4)应用程序:依赖于外模式,独立于模式和存储结构。不同应用程序有时可共用一个外模式。

4.二级映象的作用

(1)保证外模式稳定性,从而保证应用程序稳定性。

(2)数据与程序间独立性使得数据数据的定义和描述可以从应用程序中分离出去。

第二章:关系数据库

第一节:关系

一、关系:概念

1.关系的数据结构

(1)单一的数据结构:关系。实体及实体间联系。

(2)数据的逻辑结构:二维表。

2.常用的关系操作

(1)查询操作:选择、投影、连接、除、交、并、差。

(2)数据更新操作:插入、删除、修改。

3.关系操作的特点

(1)集合操作方式:操作对象和结果都是集合。

·用关系运算表达查询要求。

·具有关系代数和关系演算双重特点的语言代表是SQL。

(2)三类完整性约束:实体完整性、参照完整性、用户自定义完整性。

4.三类关系

(1)基本关系(基本表/基表):实际存在的表,实际存储数据的逻辑表示。模式。

(2)查询表:查询结果对应的表。

(3)视图表:由基本结果或其它视图导出的虚表,不存储数据。外模式。

二、关系:术语

1.域

域是一组具有相同数据类型的值的集合。属性取值来自于某个域。

2.分量

(1)笛卡尔积元素(d1,d2,...,dn)中每一个值di叫做一个分量。

(2)元组中的一个属性值就是分量。

3.关系

(1)D1×D2×...×Dn的子集叫做在域D1,D2,...,Dn上的关系,表示为:R(D1,D2,...,Dn);其中R为关系名,n是关系的目或度。

(2)关系是一个二维表,表的每行对应一个元组,表的每列对应一个域。

4.元组

关系中的每个元素是关系中的元组

5.属性

(1)关系中不同列可以对应相同的域,每列必须起一个名字,称为属性。

(2)n目关系必有n个属性。

6.关系模式

(1)对关系的描述称为关系模式,由关系名和其属性集合构成。

(2)格式:关系名(属性名1,属性名2,…,属性名n)。R(D1,D2,...,Dn)

(3)通常一个关系模式对应一个文件的关系结构。

三、关系:键(码/key)

1.超码

关系中一个或多个属性的集合,可以唯一地标识一个元组。

2.候选码

(1)不含多余属性的超码称为候选码。即在候选码中,若再删除属性,就不是超码了。

(2)若关系的所有属性是候选码,则称该候选码为全码。

(3)一个关系中,可能有多个候选码。

3.主码

(1)用户选择作为关系中的唯一标识的候选码。

(2)主码只能有一个。

(3)可以无主码。

4.主属性

(1)候选码的诸属性称为主属性。

(2)不在任何候选码中的属性称为非主属性。

5.外码

(1)如果一个关系R中的属性或属性组并非该关系的码,但它们是另一个关系S的码,则称其为关系R的外码。

(2)其中R和S不一定是不同的关系。

(3)被参照关系S的主码Ks和参照关系的外码F必须定义在同一个域上。

(4)外码并不一定要与对应主码同名,但通常取同名便于识别。

(5)外码要么空,要么为引用的主码值。

四、关系:性质

关系必是二维表,二维表不一定是关系。

关系的每一个分量必须是一个不可分割的数据项。

(1)列是同质的:每一列的分量类型一样,值域一样。

(2)不同列可出自一个域:每个列为一个属性,不同属性不同名。

(3)列的顺序无所谓。

(4)行的顺序无所谓。

(5)任意两个元组不能完全相同(冗余)。

(6)分量必须取原子值:每个分量必须是不可分的数据项。

第二节:关系代数

一、基础知识

1.关系代数

(1)关系代数是一种抽象的查询语言。

(2)用对关系的运算来表达查询。

2.关系代数运算的分类

 (1)传统的集合运算:并、差、交、笛卡尔积。

 (2)专门的关系运算:选择、投影、连接、除。

 (3)其中:并、差、交、笛卡尔积、连接、除为双目运算符;选择和投影为单目运算符。

3.基本关系运算

 (1)基本关系运算:并、差、笛卡尔积、选择、投影。

 (2)其他运算:交、连接、除均可通过上面5中运算表达。

7a01f88f570c486795df521d72ee0a7e.jpg

二、集合运算

1.并运算

R与S具有相同的目n,属性的目、域相同。

2.差运算

R与S具有相同的目n,属性的目、域相同。

3.交运算

R与S具有相同的目n,属性的目、域相同。

三、笛卡尔积

(1)R是n目关系,有k1个元组;S是m目关系,有k2个元组。(不要求同目)

(2)R×S是n+m列元组的集合,有k1×k2个元组。

四、选择运算

(1)在关系R中选择满足给定条件的诸元组。

(2)选择运算是从行的角度进行的运算。

其中F为选择条件,是一个逻辑表达式

五、投影运算

(1)从R中选出若干属性列组成新的关系。

(2)投影运算是从列的角度进行的运算,不仅取消某些列,还可能取消某些元组(避免重复行)。

                其中A为R中属性列(单个或多个列名或列序号)

六、内连接运算

1.运算方法

连接也称θ连接,是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。

2.等值连接

θ为等号的连接运算

3.自然连接

(1)自然连接是等值连接的子集,比较的分量必须是相同的属性组,在结果中去掉重复属性组。

(2)没有重复列的自然连接是笛卡尔积。

七、外连接运算

1.全外连接

结果返回左表和右表中的所有行,当某行在另一个表中没有匹配行时,则另一个表中的选择列均为空值。

2.左外连接

结果返回左表中的所有行,当左表某行在右表中没有匹配行时,则右表中的选择列均为空值。

3.右外连接

结果返回右表中的所有行,当右表某行在左表中没有匹配行时,则左表中的选择列均为空值。

八、除运算

1.象集Zx

给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集为:Zx={t[Z]|t∈R,t[X]=x}。它表示R中属性组X上值为x的诸元组在Z上分量的集合。

示例:在关系R中,A可以取{a1,a2,a3,a4}

        a1的象集为:{(b1,c1),(b2,c3),(b2,c1)}

        a2的象集为:{(b3,c7),(b2,c3)}

        a3的象集为:{(b4,c6)}

        a4的象集为:{(b6,c6)}

2.运算方法

(1)给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中Y与S中Y可以不同名,但要同域。

(2)R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。

如图:R÷S={a1}。

;