哈尔滨工业大学-数据库系统(基本知识与关系模型1)

第1讲-初步认识数据库系统

什么是数据库

  • 关系中的概念 :
    表 / 关系
    表名 / 表标题(格式) / 表内容(值)
    列 / 字段 / 属性 / 数据项
    行 / 元组 / 记录

  • 数据库Database)就是 相互有关联关系的若干Table的 集合

什么是数据库系统

数据库系统(工作环境):
数据库DataBase(DB)
数据库管理系统DBMS
数据库应用DBAP
数据库管理员DBA
计算机基本系统

  • 区别 :
  • 数据库系统是一个这样的大的环境
  • 而 数据库管理系统 只是一个管理数据库的一个软件

什么是数据库管理系统(用户角度)

用户角度看数据库管理系统的功能

  • 数据库定义 :数据定义语言DDL;定义数据库中Table的名称、标题
  • 数据库操作 :数据操纵语言DML;向数据库的Table中增、删、改、查
  • 数据库控制 :数据控制语言DCL;控制数据库中数据的使用-哪些用户可以使用,哪些不可以
  • 数据库维护 :一系列程序(实用程序/例行程序);转储/恢复/重组/性能检测/分析

数据库语言

  • 使用者通过数据库语言利用DBMS操作数据库
  • SQL语言 :结构化的数据库语言
  • SQL语言 分为 DDL、DML、DCL
  • 一条数据库语言语句相当于高级语言的一个或多个循环程序
  • 数据库语言可以嵌入到高级语言(宿主语言)中使用 -> 嵌入式数据库语言

什么是数据库管理系统(系统角度)

从系统实现角度看DBMS的功能

  • DBMS为完成DB管理,在后台运行着一系列程序
  • DBMS系统可越过 操作系统 直接管理

第2讲-数据库系统的结构抽象与演变

数据库系统的标准结构

数据 与 数据的结构-模式

  • 模式Schema :数据的结构
    对数据库中数据所进行的一种结构性的描述
    所观察到数据的结构信息
  • 视图View/数据Data :展现的数据
    某一种表现形式下表现出来的数据库中的数据

三级模式两层映像
两层映像 :

  • E-C Mapping :将外模式映射为概念模式;从而支持实现 数据概念视图 向 外部视图 的转换;便于 用户观察和使用
  • C-I Mapping :将概念模式映射为内模式;从而支持实现 数据概念视图 向 内部视图 的转换;便于 计算机进行存储和处理

两个独立性

  • 逻辑数据独立性 :当概念模式变化时,可以不改变外部模式(只需改变E-C Mapping),从而无需改变应用程序
  • 物理数据独立性 :当内部模式变化时,可以不改变概念模式(只需改变C-I Mapping),从而无需改变外部模式

什么是数据模型

三大经典数据模型

  • 关系模型 的形式组织数据
  • 层次模型 的形式组织数据
  • 网状模型 的形式组织数据

关系模型

在这里插入图片描述

层次模型

在这里插入图片描述

网状模型

在这里插入图片描述

数据库系统的演变与发展

  • 由 层次模型数据库、网状模型数据库 到 关系数据库
    层次模型与网状模型数据库 :数据之间的关联关系由复杂的指针系统来维系
    关系数据库 : 数据之间的关联关系由Table中属性的值来表征,结构描述简单
  • 由 关系数据库 到 对象关系数据库、面向对象数据库
    关系数据库 :按行按列形式组织数据 :关系的第1范式;数据项的不可再分;关系运算 :关系代数、元组演算、域演算 -> 标准SQL
    面向对象数据库 :O-O 与 SQL 的结合;支持复杂的数据类型(行对象、列对象、结构对象、聚集对象),数据封装与抽象数据结构;类、继承、封装、多态
    XML数据库 :半结构化数据库 ;数据交换;数据 与 数据的语义

第3讲-关系模型之基本概念

什么是关系模型

  • 关系模型的三个要素 :基本结构、基本操作、完整性约束
  • 关系运算 :关系代数和关系演算
  • 关系演算 :元组演算 和 域演算
  • 关系代数 :基于集合的运算,即,操作的对象及结果都是集合
  • 元组演算 :基于逻辑的运算
  • 域演算 :基于示例的运算

什么是关系

  • “列”的取值范围“域” :一组值的集合,这组值具有相同的数据类型;集合中元素的个数称为 域的基数
  • “元组”及所有可能组合成的元组 :笛卡尔积;笛卡尔积是由n个域形成的所有可能的n-元组集合;若 D i D_i Di的基数为 m i m_i mi,则笛卡尔积的基数,即元组个数为 m 1 ∗ m 2 ∗ m_1*m_2* m1m2
  • 由于笛卡尔积中的所有元组并不都是有意义的,因此:关系 :一组域的笛卡尔积的子集

关系有什么特性

  • 列是同质
  • 理论上, 关系 的任意两个元组不能完全相同;现实应用中, Table 可能并不完全遵守
  • 属性不可再分特性 :又被称为 关系第一范式(前面有举例(不能是 聚集对象 之类的))

候选码与外码

  • 候选码/候选键 :关系中的一个 属性组 ,其值能唯一标识一个元组;若从该属性组中去掉任何一个属性,它就不具有这一性质了;有时,关系中有很多组候选码
  • 主码/主键 :当有多个候选码(也就是说有很多组)时,可以选定一个作为主码;DBMS以主码为主要线索管理关系中的各个元组
  • 主属性 :包含在 任何一个 候选码中的属性;而其他属性被称作 非主属性;最极端的,所有属性构成这个关系的候选码,称为 全码(例如,关系“教师授课”)
  • 外码/外键 :不是本关系的候选码,但它与另一个关系的候选码相对应;两个关系通常是靠外码连接起来的(例如,关系”合同“中的客户号)

关系模型的完整性

  • 空值 :不知道、不存在或无意义的值
  • 参照完整性 :如果关系R1的外码Fk与关系R2的主码Pk相对应,则R1中的每一个元组的Fk值或者等于R2中某个元组的Pk值,或者为空值
  • 用户自定义完整性 :用户针对具体的应用环境定义的完整性约束条件

第4讲-关系模型之关系代数

什么是关系代数

  • 基于集合
  • 基本操作(并、差、笛卡尔积(广义积)、选择、投影和更名);扩展操作(交、连接、关系除)

在这里插入图片描述

并相容性的概念

  • 某些关系代数操作,需满足“并相容性”
  • 关系R与关系S存在相容性 当且仅当 :
    1)属性数目相同
    2)关系R的第i个属性的域必须和关系S的第i个属性的域相同

并操作

  • R U S
  • 满足并相容
  • 在合并时去掉重复的元组
  • “或者。。或者。。” 通常意义是 并运算 的要求

差操作

  • R - S
  • 满足并相容
  • 出现在R中 但不出现在S中
  • “是。。但不含。。” 通常意义是 差运算 的要求

广义笛卡尔积操作

  • R X S
  • 关系R与关系S的( 广义笛卡尔积 广义积 积 笛卡尔积) 也是一个关系
  • 由关系R中的元组 与 S的元组 进行所有可能的拼接构成

选择操作

  • 关系R,同时给一个选择的条件,选择运算结果也是一个关系
  • 从关系R中选择出满足给定条件的 元组 构成
  • 条件书写很重要,注意运算符的优先次序,从高到低为 括弧;比较;非;交;并

投影操作

  • 关系R,投影运算结果也是一个关系
  • 从关系R中选出属性包含在条件A中的 构成

交操作

  • R ^ S
  • 满足并相容
  • 交运算可以通过差运算来实现 :R^S=R-(R-S)
  • “既。。又。。” 通常意义是 并运算 的要求

theta-连接操作

  • 投影和选择操作只是对单个关系(表)进行操作,对多个表之间操作就需要theta-连接操作
  • 关系R和关系S的theta-连接 由 关系R和S的 笛卡尔积 中,选取 R中属性A 与 S中属性B 之间满足theta条件的 元组构成

在这里插入图片描述

等值连接

  • 由关系R和关系S的笛卡尔积中选取R中属性A与S中属性B上 值相等 的元组构成
  • 当theta-连接中运算符为“=”时,就是等值连接

自然连接操作

  • 由关系R和关系S的笛卡尔积中选取 相同属性组B上值相等 的元组构成
  • 自然连接是一种特殊的 等值连接
  • 要求R和S必须由相同的属性组,值也必须相等 才可以连接
  • 连接后去除重复的列

在这里插入图片描述
在这里插入图片描述

应用关系代数操作训练

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 第二个方案中,做了自然连接以后,还是原先三个属性,因此,仍然是不行的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

除操作

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

外连接操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值