第一章
1.1数据库系统概述
1.1.1数据库的4个基本概念
数据:描述事物的符号,数据的含义称为语义,数据与其语义不可分。如93是一个数据,其语义可以是体重,也可以是分数
数据库:长期存储在计算机内、有组织的、可共享的大量数据的集合
数据库管理系统:位于用户和操作系统之间的一层数据管理软件,主要功能包括:
1.数据定义功能 DDL(Data Definition Language)
2.数据操纵功能 DML(Data Manipulation language): 查询、插入、删除、修改
3.数据库的管理
数据库系统:由数据库、数据库管理系统、应用程序和数据库管理员组成的一个系统
1.1.2数据管理技术的发展
人工管理阶段->文件系统阶段->数据库系统阶段
1.2数据模型
数据模型包括概念模型、逻辑模型和物理模型
概念模型(信息模型):按照用户的观点来对数据和信息建模,主要用于数据库设计,实际上是现实世界到机器世界的一个中间层次
逻辑模型:按计算机系统的观点对数据建模,主要用于数据库管理系统的实现
物理模型:对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法
1.2.1概念模型
一些基本概念:
实体(entity):客观存在并且可以相互区别的事物
属性(attribute): 实体具有的某一特性
码(key): 唯一标识实体的属性集
实体型(entity type): 具有相同属性的实体具有共同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型
实体集(entity set): 属于相同实体型的实体的集合
联系(relationship): 包括实体(型)内部各属性之间的联系 和 实体(型)之间的联系
实体之间的联系有 1对1,1对多,多对对 三种类型
概念模型最常用的表示方法是 实体-联系方法(Entity-Relationship approach),简称E-R模型
1.2.2数据模型的组成要素
数据模型是严格定义一组概念的集合,通常由数据结构、数据操作和数据的完整性约束条件构成
1.2.3常用的逻辑数据模型
层次模型
网状模型
关系模型
关系:数据库中的一张表
元组:表中的一行
属性:表中的一列即为一个属性,给每个属性起一个名称即属性名
码:表中的某个属性组,可以唯一的确定一个元组
域:相同数据类型的值的集合,属性的取值范围来自某个域
分量:元组中的一个属性值
关系模型的表示: 关系名(属性1,属性2,...,属性n) //关系的每一个分量必须是不可分的数据项
面向对象数据模型
对象关系数据模型
半结构化数据模型
1.3数据库系统的结构
数据模型中的型和值
型:数据库中一张表的表头
值:某个具体的元组
模式:数据库中全体数据的逻辑结构的特征和描述,仅仅涉及型的描述,不涉及具体的值,模式的一个具体的值称为一个实例(instance)
第二章 关系数据库
关系数据库系统是支持关系模型的数据库系统,一个数据模型包含数据结构,数据操作和数据的完整性约束条件构成,以下分别围绕这三方面展开
2.1 关系数据模型的数据结构
2.1.1关系
关系模型中只包含单一的数据结构——关系,在用户眼中,关系是一张二维表。仅仅通过关系,就能表示现实世界中的实体和联系。
域:具有相同数据类型的值的集合
笛卡尔积:一组域 D1,D2,D3...Dn, D1 x D2 x D3 x ... x Dn 叫做笛卡尔积,其结果为 {(d1,d2,...,dn)} ,其中 di 属于Di , i=1,2,3,...n
每一个(d1,d2,...,dn)叫做一个n元组,或者简称元组 ,每一个 di 叫做 分量
关系:D1 x D2 x D3 x ... x Dn 的有限子集叫做在域 D1,D2,D3...Dn 上的关系, 表示为 R(D1,D2,D3...Dn) , 其中 n 叫做关系的 目(或者度)
属性:关系对应一张表,表中的每一列对应一个域,由于域可以相同,因此为每一列去一个名字,称为属性。
候选码:某一个属性组能唯一的标识元组,而其子集不行
主码:多个候选码中选定的那个
主属性:候选码中的属性,不属于任何候选码的属性称为非主属性
2.1.2三种关系类型
基本关系:通常称为基本表或表,它是实际存在的表,是实际存储数据的逻辑表示
查询表:查询结果对应的表
视图表:由其他视图表或者基本表导出的表,是虚表,不对应实际存储的数据
2.2关系操作
关系操作的对象和结果都仍然是一张表。
2.2.1基本的关系操作
查询(query):
查询中的五种基本操作:选择(select)、投影(project)、并(union)、差(except)、笛卡尔积
其他操作:连接(join)、除(divide)、交(intersection), 其他操作都可以通过五种基本操作导出
插入(insert)、删除(delete)、修改(update)操作
2.2.3 关系数据(操作)语言的分类
关系代数语言(如ISBL)
关系演算语言,又分为
元组关系演算语言(如ALPHA、QUEL)
域关系演算语言(如QBE)
结构化查询语言SQL(同时具有关系代数和关系演算双重特点)
2.3关系的完整性
关系模型的完整性规则是对关系的约束条件,这些条件在任何时候都应该被满足。完整性约束分为实体完整性(entity integrity)、参照完整性(referential integrity)、用户定义完整性(user-defined integrity)。 其中实体完整性和参照完整性是由关系系统支持的,用户定义完整性是为了满足不同具体实际需求的
2.3.1实体完整性
主属性不能取空值
2.3.2参照完整性