数据库的若干概念

1、数据:描述事物的符号记录;

      数据库:长期存储在计算机内、有组织、可共享的大量数据的集合;(数据库数据具有永久存储、有组织、可共享三大特点。)

      数据库管理系统:位于用户和os之间的一层数据管理软件,是系统软件。

 2、数据库系统的三级模式结构(王珊版数据库系统概论P32)

(1)模式:   数据库中全体数据的逻辑结构和特征的描述。一个数据库只有一个模式。

(2)外模式:局部数据的逻辑结构和特征的描述。一个数据库可以有多个外模式。

(3)内模式:数据物理结构和存储方式的描述。一个数据库只有一个内模式。

3、关系的三类完整性约束

(1)实体完整性:主属性唯一且不为空。

(2)参照完整性:主键与外键构成参照完整性,防止出现数据不一致。

(3)用户自定义完整性:用户针对某一具体关系数据库的约束条件,列值非空,列值唯一,用check检查列值是否满足某个布尔表达式。(P156)

4、SQL功能及关键词:

(1)数据查询:select。

(2)数据定义:create,drop,alter。

(3)数据操纵:insert,update,delete。

(4)数据控制:grant,revoke。

5、关系数据库几个概念

(1)模式(schema):相当于命名空间,在该空间中,可以进一步定义数据库对象,如基本表、视图、索引等。

(2)基本表:本身独立存在的表,在SQL中,一个关系对应一个基本表。

(3)视图(view):从一个或几个基本表导出的表。数据库只存放视图定义,而不存放视图对应数据,视图是一个虚表,视图上可以再定义视图。视图的作用:简化数据查询语句;使用户从多角度看待同一数据;提高了数据的安全性;提供了一定程度的逻辑独立性。

(4)drop table student [restrict | cascade]。restrict是默认值,表示有条件删除;cascade表示无条件删除,删除该表时将与之有关的对象一并删除。(P88)

(5)建立索引(index)可以加快查询速度。一个基本表可以建立一个或多个索引。注意unique与cluster的区别。(P90)

(6)lower()、upper()、临时列、distinct、等。(P92)

(7)between 下限 and 上限。(P95)

(8)注意escape关键字的使用。(P96)

(9)order by 默认是升序排列。

6、数据库角色:是被命名的一组与数据库操作相关的权限,角色是权限的集合。用create role创建角色;用grant给角色授予权限;用revoke收回角色的权限。

7、完整性约束命名子句constraint。(P158)

8、触发器:是一种特殊的存储过程。一般的存储过程是通过存储过程名直接调用,而触发器主要是通过事件(增、删、改)进行触发而被执行的。其在表中数据发生变化时自动强制执行。常见的触发器有两种:after(for)、instead of,用于insert、update、delete事件。(P160)

(1)after(for):表示执行代码后,执行触发器

(2)instead of:表示执行代码前,用已经写好的触发器代替你的操作

9、范式(P175)

(1)1NF:每个属性不可重复不可再分。

(2)2NF:非主键字段只依赖主键,不依赖其它非主键字段。

例:选课关系 SCI(SNO,CNO,GRADE,CREDIT)其中SNO为学号, CNO为课程号,GRAD 为成绩,CREDIT 为学分。 由以上条件,关键字为组合关键字(SNO,CNO)
在应用中使用以上关系模式有以下问题:
a.数据冗余,假设同一门课由40个学生选修,学分就 重复40次。
b.更新异常,若调整了某课程的学分,相应的元组CREDIT值都要更新,有可能会出现同一门课学分不同。
c.插入异常,如计划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入。
d.删除异常,若学生已经结业,从当前数据库删除选修记录。某些门课程新生尚未选修,则此门课程及学分记录无法保存。
原因:非关键字属性CREDIT仅函数依赖于CNO,也就是CREDIT部分依赖组合关键字(SNO,CNO)而不是完全依赖。
解决方法:分成两个关系模式 SC1(SNO,CNO,GRADE),C2(CNO,CREDIT)。新关系包括两个关系模式,它们之间通过SC1中的外关键字CNO相联系,需要时再进行自然联接,恢复了原来的关系。

(3)3NF:消除非主属性对关键字的传递依赖。例如:S1(SNO,SNAME,DNO,DNAME,LOCATION) 各属性分别代表学号,姓名,所在系,系名称,系地址。关系中存在传递依赖造成的。即SNO -> DNO。 而DNO -> SNO却不存在,DNO -> LOCATION, 因此关键字 SNO 对 LOCATION 函数决定是通过传递依赖 DNO -> LOCATION 实现的。也就是说,SNO不直接决定非主属性LOCATION。解决方法:分为两个关系 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)。

(4)BCNF:在2NF,3NF基础上,消除主属性对关键字的部分、传递依赖。

10、聚簇:为了提高某个属性组的查询速度,把这个属性组上具有相同值的元组集中存放在连续的物理块。

11、存储过程:在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。(P247)

12、并发、并发带来的三种数据不一致、死锁。(P293)

(1)并发操作带来的三种数据不一致性:丢失修改、不可重复读、读脏数据。

(2)封锁:事务在对数据操作前,对数据加锁。

(3)活锁:一系列封锁不按照先后顺序执行时,导致某些事务无限期等待。解决方法:先来先服务。

(4)死锁:事务1封锁R1,事务2封锁R2,事务1又请求封锁R2,同时,事务2也请求封锁R1,这个过程一直持续。解决方法:一次封锁;顺序封锁。

13、事务:用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务的四大特性:原子性、一致性、隔离性、持续性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值