北邮梁美玉数据库知识点整理

数据库知识点整理

基本概念类

DB 和 DBS 和DBMS和 DBAS
DB = database = 数据库
DBS = database system = 数据库系统 = DBMS+DB+DBA(数据库使用者)
DBMS = database management system = 数据库管理系统(SQL、MYSQL之类的获取DB中数据的一系列程序)
DBAS = database application system = DBS +applocation programs

数据抽象的层次
物理层(physical)⇒ 逻辑层(logical)==> 视图层(view)

模式:schema
指的是数据库的总体设计。分为物理模式(physical schema)和逻辑模式(logical schema),其中,逻辑模式中构造应用程序。
如果一个逻辑模式下的应用程序不依赖物理模式,称之为具有“物理数据独立性”(physical data independence)

数据模型:data model
注意model和schema之间的区别
数据模型基本有四种类型:

  • 关系模型(Relation Model)
  • 实体联系模型(Entity-Relation Model)
  • 基于对象的数据模型
  • 半结构化数据模型

数据库语言:
数据库语言分为两类

  • DDL(数据定义语言):包括数据存储语言和数据库定义语言。
  • DML(数据操纵语言):包括一些数据库查询修改的语句。可以细分为:过程化DML 和声明式 DML。两者的区别在于:过程化DML需要说明如何获得数据,而声明式DML不需要说明。
  • 注:本书中学习的SQL语言属于“声明式DML”

关系数据库:
是一类基于记录(record)的数据模型(data model)。由表(tabel)组成,表中的每一行表示一组数据之间的联系,是个n元组(n-tuple)。
特定时刻的关系数据库某行叫做“实例”(instance)。
表 = 关系//表中的行 = 元组 // 表的列 = 属性
····table = relationship
····line = n-tuple
····row = attribute
元组顺序在关系中没有什么讲究。
关系数据库是一类数据模式,内部具有关系模式(relationship schema)。关系模式由属性序列(attribute list)和每个属性的对应属性域(corresponding domains)组成 。
属性域指的是每个属性允许取值的集合,域是原子的(atomic),即域中的元素不可以再分。
在一个关系型数据库中,关系模式通常保持不变,但是关系实例随时可能发生变化。

注:这里的原子性可以理解成:一个集合需要用不可分割的元素组成,比如说字符串由一组字符组成,这里的字符无法再分。又比如说一个班级由一班同学组成,这里的每个同学不能再分,没有半个人这种说法。这就叫原子性。

数据库管理系统 DBMS(常考知识点)
由存储管理器(storage manager)和查询管理器组成(query manager)

码/键:key
超码:super key ,一个属性集合,可以用来唯一标识元组。超码作为一个集合,它有超集和子集的概念。超码的超集也是超码,但是有属性冗余,超码的子集可能是超码,也可能不是超码。
候选码:candidate key,数据库中的最小超码称为候选码(candidate key)。它的子集军均不是超码。
主码:primary key,被DB设计者选中的候选码,一般选择那些值很少变化的属性集合。主码不能为空且唯一
外码:foreign key,关系模式r1在属性中包含另一个关系模式r2的主码,那么这时,r1称为参照关系(referencing relation),r2称为被参照关系(referenced relation),在两个关系模式中被参照的就是外码。和外码有关的一个概念是:参照完整性约束(referential integrity constraint),指的是对于referencing relation的约束,在referencing relation模式上的某些实例的外码取值必然等于其参考的referenced relation上的被参照属性的实例取值。
外码依赖一般可以通过模式图(schema diagram)表示。

关系代数中的运算种类:
包括六个基本运算:

  • 选择 :select 选择元组
  • 投影:project 选择属性
  • 并集 union 将两个关系模式全体属性简单相加
  • 集合差 set difference 将两个关系模式的全体属性集合进行相减操作
  • 笛卡尔积 Cartesian-product
  • 更名 rename 更名运算

注意总结他们和SQL语句的转换。
关系代数、元组关系演算(tuple relationship calculus)、域关系演算(domain relationship calculus)互相等价。
关系代数是过程式语言,元组关系演算和域关系演算是非过程化语言。

SQL系统的组成部分:
DDL、DML、完整性约束(integrity constraint)、视图定义(view definition)、事务控制(transaction control)、嵌入式SQL(embeded SQL)、动态SQL(dynamic SQL)、授权(authorization)。

数据定义语言:DDL
数据定义语言中包含的关系信息有如下部分:

  • 关系模式
  • 每个属性的取值类型
  • 完整性约束
  • 关系维护的索引集合
  • 关系的安全性和授权信息
  • 关系在磁盘上的物理存储结构
  • ……

关系模式创建的SQL语言

create table 关系模式名
(
A1,D1,
//A1表示属性1,D1表示属性1对应的属性域1,
A2,D2,
……
An,Dn,
<完整性约束1>
//比如定义主键/主码、定义外码、定义哪些属性不能为空(not NULL)
<……>
<完整性约束k>;

关系模式增删改的SQL语言

//插入元组,即在表中插入行
insert in 关系模式名 values (V1,V2,……,Vn);//元组的值需要和当前属性的属性类型对应
//插入属性
alter table 关系模式名 add A D;//增加属性,A为属性集合,取值域为D,A中的元组取值初始为NULL
//删去属性
alter table 关系模式名 drop A;//删去属性集合A对应的列
//删除元组
delete from 关系模式名 (where 条件);//删去关系模式中的所有元组(或者符合条件的元组),但是保留关系模式的格式,可以后续继续添加
//删除所有元组和模式
drop table 关系模式名;//彻底删去这个表的一切,包括格式,后续需要新建一个表在进行修改
//更新

数据库设计
数据库设计流程:需求分析—>概念设计(conceptual design)(E-R图设计)–>功能需求规格说明–>逻辑设计阶段(E-R图和关系型数据库的转化)–>物理设计阶段(指明数据库物理特征)

E-R数据模型:
三个基本概念:实体集(entity set)、联系集(relationship set)、属性(attribute)。

全部参与和部分参与
全部参与:实体集E中每个实体都参与到联系集R的至少一个联系中,称为E在R上全部(total)参与。
部分参与:实体集E中部分实体参与到联系集R的联系中,称为E在R上部分(partial)参与。


E-R数据模型中也有码的概念。码用来唯一标识集合内元素,是一个属性集合。
实体集的码:
和关系模式上的码相同(超码-候选码-主码),没有主码的实体集称之为弱实体集(weak entity set)
联系集的码:
联系集主码的构成依赖于和联系集R相关联的属性集合。
联系集中的属性集合是参与的实体集主码集合的并集和联系集自带的属性集合的并集。
超码是与之相关联的实体集的主码并集。
主码和映射基数相关。

  • 多对多时,是所有参与的实体集的主码并集;
  • 一对多时,举例子说明一下,比如老师和学生的联系集,一个老师可以有多个学生,那么老师和学生的实体集之间是一对多的,就以学生的主码作为联系集的主码;
  • 一对一时,在多个实体集的主码中任意选一个作为实体集主码。

弱实体集:weak entity set
没有足够的属性形成主码的实体集。
弱实体集相关联的实体集称之为标识实体集/属主实体集(identifying entity set/owner entity set)
弱实体集—存在依赖(existence dependent)–>标识实体集
标识实体集—拥有(own)—>所标识的弱实体集
弱实体集中的主码:由标识实体集的主码和该弱实体集的分辨码(discriminator)组成。

标识性联系
弱实体集和标识实体集之间的联系称之为标识性联系(identifying relationship)。标识性联系是多对一的,且若实体集全部参与,标识性联系集没有描述性属性。
注1:从弱实体集到标识实体集,多对一,表示一个标识实体集可以有多个弱实体集,一个弱实体集只有一个标识实体集。可以理解为一个老大可以有很多小弟,一个小弟只能有一个老大。
注2:全部参与:一个实体集E中所有实体都参与联系集R的某个或者多个联系中,称为E在R上全部参与。

特化和概化
特化:specialization
概化:generalization
两者定义一个高层实体集和若干个低层实体集之间的包含关系。

题型总结

期末考试题型主要有填空题和计算大题。
(1)填空题的技巧
填空题的考点主要集中在第一章“引言”部分,在复习的时候需要看书复习。
(2)大题的解答技巧
大题的主要考点:

  • SQL语句书写
  • SQL语句和关系代数之间的转换
  • E-R图和关系数据库之间的转换
  • DB规范性的分解算法(3NF和BCNF尤为重要)
  • 索引类型
  • 查询优化(启发式优化)
  • 事务相关的恢复机制和锁机制
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值