数据库系统(上):系统与语言

第一讲:初步认识数据库系统

概念(数据库系统构成):

数据库(Database):

电子化信息的集合,相互有关联关系的数据的集合;

数据库管理系统(Database Management system简称DBMS):

管理数据库的一种系统软件;

数据库应用程序(Database Applicant简称DBAP):

不同用户使用的完成某功能的应用程序;

数据库管理员(Database Administrator简称DBA):

对数据库进行维护与控制

数据库结构:

数据库类型:

关系数据库、图像数据库、工程数据库;

数据库语言:

数据定义语言(DDL):

DBMS提供给用户,以便用户定义数据格式;定义表名,表标题,列名及其结构形式;

数据操纵语言(DML):

DBMS提供给用户,以便用户对数据进行操作;增加、删除、修改数据、查询数据、检索数据、统计数据

数据控制语言(DCL):

DBMS提供给用户,以便用户对数据进行控制;定义对不同操作的约束、对不同操作者的约束

习题

第二讲:数据库系统的结构演变与抽象

概念:

DBMS管理数据的三级模式:

外模式,概念模式,内模式;

外模式:某一用户能够看到与处理的数据的结构描述;

概念模式:从全局角度理解的数据的结构描述;

内模式:存储在介质上的数据的结构描述;

DBMS管理数据的两层映像:

E-C映像,C-I映像;

理解:外模式和内模式分别对应用户角度和计算机角度,为了方便用户与计算机数据沟通,构建了概念模式,概念模式通过两层映像分别为外模式和内模式服务;

两个独立性:

逻辑数据独立性:当概念模式发生变化时,可以不改变外部模式,只改变EC映像即可,从而无需改变应用程序;

物理数据独立性:当内部模式发生变化时,可以不改变概念模式,只改变CI映像即可,从而不改变外部模式

数据模型、模式、数据:

模式是数据结构的抽象,数据模型是模式结构的抽象;

三大经典数据模型:

关系模型:的形式组织数据;

层次模型:的形式组织数据;

网状模型:的形式组织数据;

数据库系统的重要发展:

由层次模型数据库、网状模型数据库到关系数据库;

由关系数据库到对象关系数据库、面向对象数据库;

习题:

其中外模式又称用户模式或局部模式,概念模式又称逻辑模式或全局模式,内模式又称存储模式或物理模式;

物理数据独立性:不会因为内模式的变化而影响概念模式从而影响外模式,而是只改变CI映像;

逻辑数据独立性:不会因为概念模式的变化而影响外模式,而是只改变EC映像从而保证应用程序不受影响;

数据模型是对模式结构的抽象,模式是对数据结构的抽象

第一代:基于网状模型或层次模型的数据库系统;

第二代:基于关系模型的数据库系统;

第三代:基于对象关系或面向对象的数据库系统;

第三讲:关系模型之基本概念

概念:

关系模型的三要素:

关系运算:

关系代数和关系演算;关系演算:元组演算和域演算;

基数:

集合中元素的个数;

关系与关系模式:

候选键:

在关系模型中,候选键又称候选码,是某个关系变量的一组属性所组成的集合,它需要同时满足下列两个条件:

  1. 这个属性集合始终能够确保在关系中能唯一标识元组;

  1. 在这个属性集合中找不出合适的真子集能够满足条件;

  1. 候选键可以由元组的一个或者多个属性构成;

全码:

所有属性构成这个关系的候选码;

主键(主码):

  1. 主键是在候选键的基础上选取的;

  1. 主键的属性值不能为空值或者没有意义;

  1. 主键能够唯一的标识元组;

外键:

  1. 如果该列元素在另一个表中是候选键则该列元素是外键;

  1. 外键可以是表中的主属性或者非主属性

第一规范式(1NF):

关系中的所有分量不可再分,即数据库表中的字段都是单一属性的,不可再分。

完整性规则:

  1. 实体完整性(与主键有关):表(table)中主键的属性值不能为空值或者没有意义;

  1. 参照完整性(与外键有关):表(table)中的外键的属性值可以为空值或者没有意义,但是外键的属性值一定要与对应的表中的值吻合,不可出现不存在的属性值;

  1. 用户自定义完整性:针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

  1. 举例说明:

1.

R(int A,int B,int C)其中A是主键

A

B

C

1

2

3

1

4

5

该表违反了实体完整性约束,因为第一行元组和第二行元组的主键属性值相同,主键是用来区分两个不同元组的关键因素,如果主键相同则对应两个元组的属性值应该一样,在某些表中相同的元组是可以出现的。

2.

R(int A,int B,int C)其中A是主键,c是外键

A

B

C

1

2

1

1

4

3

R(int C,int D,int E)其中c是主键

C

D

E

1

2

3

2

4

5

该表违反了参照完整性约束条件,表一中第二行元组外键C的属性值为3,但是在表二中主键C并没有3

易错点:

  1. R(A1:D1,A2:D2,.......,An:Dn):该描述是关系模式,其中Ai是第i列的属性值,Di是Ai所在的域

习题:

错题原因:s表第三行元组的外键为3,但是表R中的主键属性值只有1和2所以违反了参照完整性约束条件

错误原因:

A:由于主键是属性A,第一元组和第二元组的主键值相等,无法区分不同的元组;

B:由于主键的属性值不能为空或者不存在所以错误;

C:属性B的类型是整数型,但是输入的值是浮点数类型;

笛卡尔积的基数=2*2*3=12

错误原因:患者编号是患者table的主键,所以医疗关系中的外键是患者编号

错误原因:

B:属性D#为外键,外键的可能取值范围为01,02。由于外键的属性值为05所以违反了参照完整性约束条件;

C:属性S#为主键,主键的属性值不能为空值或者不存在,所以C错误;

D:由于S#的值超过了规定的范围所以违反了用户自定义完整性约束条件;

由于每个学生的学号是唯一的所以学号适合作为候选码

错误原因:关系是以内容来区分的

错误原因:关系的任意两列上的值可以完全相同

错误原因:

B:每一列的属性值必须是相同的数据类型;

C:空值不是空格;

第四讲:关系模型之关系代数

概念:

关系代数操作:

并相容性

习题:

第五讲 关系模型之关系演算

概念:

这里相当于对student和sc做了一个自然连接,保证学生号相同

习题:

关系代数,安全的元组演算和安全的域演算是安全的,所以关系演算不全是安全的

域演算的非过程性最好,其次是元组演算,关系代数最差

第六讲 概览SQL语言

概念:

注意:这种写法是经典的错误,不存在一个课程号既是001又是002,查询该问题需要和自己做自然连接查询第一个表课程号是001,第二个表课程号是002

注意:这个语句并不正确,每个人可能学习很多门课程,其中一门不是李明老师的课程就会被列出名字,但是并不是用户所期望的名字

总结:Delete和Drop的区别在于delete是删除表中的元组,Drop是撤销表的格式,所有元组等一系列操作

习题:

第七章 SQL语言之复杂查询与视图

概念:

还可以写成:

Select S1.S# From SC SC1,SC SC2

Where SC1.S#=SC2.S# and SC1.C#='001' and SC2.S#='002'

如果视图不包含原表的主键就无法对基本表进行更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值