数据库(DB):长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件,科学地组织和存储数据,高效的获取和维护数据。
功能:数据定义;数据组织、存储和管理;数据操纵;数据库的事务管理和运行管理;数据库的建立和维护;其他功能。 数据库系统(DBS):由数据库,数据库管理系统,应用程序和数据库管理员和用户组成的存储、管理、处理和维护数据的系统。
数据结构化:数据库系统实现整体数据的结构化是与文件系统的本质区别。 数据库系统的主要特点:数据结构化;数据的共享性高、冗余度低且易扩充;数据独立性高;数据由数据库管理系统统一管理和控制。 数据模型类型:概念模型;逻辑模型和物理模型。 实体之间的联系通常是指不同实体集之间的联系。
实体之间的联系有一对一、一对多和多对多等多种类型。
数据模型的组成要素:数据结构、数据操作、数据的完整性约束条件。 常用的数据模型是关系模型。 模式:是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,它仅仅涉及型的描述。
数据库系统的三级模式结构:外模式,模式,内模式。
一个数据库只有一个模式,一个内模式,但可以有多个外模式。 外模式:是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
内模式:是数据物理结构和存储方式的描述,是数据库内部的组织方式。 数据库的二级映像功能与数据独立性:模式映像和内模式映像;数据独立性使得数据的定义和描述可以从应用程序中分离出去。
数据库系统的组成:硬件平台及数据库;软件;人员。
基本关系的6条性质:①列是同质的,即每一列的分量是用一类型的数据,来自同一个域;②不同的列可以出自同一个域;③列的顺序无所谓,即列的次序可以随意交换;④任意两个元组的候选码不能取相同的值;⑤行的顺序无所谓,可随意交换;⑥分量必须取原子值,即每一个分量都必须是不可分的数据项。(最基本的一条)
关系模型的三类完整性约束:实体完整性、参照完整性、用户定义的完整性。 实体完整性规则:主码不能为空。
空值是一个很特殊的值,含有不确定性,它不是0,不是空串,是Null。
视图:从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。 视图定义后,用户可以像对基本表一样对视图进行查询。
并不是所有的视图都是可更新的,更新受限但是检索不受限制。 视图的作用:①视图能够简化用户的操作②视图使用户能以多种角度看待同一数据③视图对重构数据库提供了一定程度的逻辑独立性④视图能够对机密数据提供安全保护⑤适当利用视图可以更清晰地表达查询。 数据库的安全性:保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。 安全级别:A1:验证设计B3:安全域B2:结构化保护B1:标记安全保护C2:受控的存取保护C1:自主安全保护D:最小保护。(D级是最低级别)。
数据库的安全性主要包括用户身份鉴别、多层存取控制、审计、视图和数据加密等安全技术。
审计功能把用户对数据库的所有操作自动记录下来放入审计日志中,审计员可以利用审计日志监控数据库中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、事件和内容等。
数据库安全审计系统提供了一种事后检查的安全机制。 数据库的完整性是指数据的正确性和相容性。 数据的完整性和安全性是有区别的。 为了维护数据库的完整性,数据库管理系统必须能够实现:①提供定义完整性约束条件的机制②提供完整性检查的方法③进行违约处理。 用户定义的完整性属性值不许取空值,且列值唯一。
如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集,亦称为最小依赖集或最小覆盖。
F的最小依赖集Fm不一定是唯一的,它与对各函数依赖FDi及X→A中X各属性的处置顺序有关。
并不是规范化程度越高模式就越好。
数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
数据库设计步骤:需求分析;概念结构设计;逻辑结构设计;物理结构设计;数据库实施;数据库运行和维护。
概念结构设计阶段的结果:把用户的信息要求统一到一个整体逻辑结构中。 逻辑结构设计阶段的结果:将概念模型转化为某个DBMS所支持地数据模型。 数据字典包括数据项、数据结构、数据流、数据存储和处理过程。 E-R 图构成的基本要素是:实体型、属性、联系。
实体与属性的划分原则:属性是系统中最小的信息单位,不再具有描述性质;属性不能与其他实体有联系。
E-R图的集成:合并;修改和重构。
各子系统的E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。 消除不必要的冗余,设计基本E-R图。
逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用数据库管理系统产品所支持地数据模型相符合的逻辑结构。 数据模型的优化:并不是规范化程度越高的关系就越优。 逻辑结构设计:①E-R图向关系模型的转化②数据模型的优化③设计用户子模式 事务:用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
COMMIT表示提交,即提交事务的所有操作,事务正常结束。 事务的特性(简称ACID特性):原子性、一致性、隔离性和持续性。 事务是恢复和并发控制的基本单位。
故障的种类:事物内部的故障、系统故障、介质故障和计算机病毒。 恢复的实现技术就是冗余。
转储分为:静态转储和动态转储。
数据转储方法分为:动态海量转储、动态增量转储、静态海量转储和静态增量转储。
日志文件:用来记录事务对数据库的更新操作的文件。 日志文件的作用:①事务故障恢复和系统故障恢复必须用日志文件。②在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库③在静态转储方式中也可以建立日志文件,当数据库毁坏后可重新装入后院副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理。 登记日志文件的原则:登记的次序严格按并发事务执行的时间次序;必须先写日志文件,后写数据库。 一旦出现介质故障,可由镜像磁盘继续提供使用,同时数据库管理系统自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。 在没有出现故障时,数据库镜像还可以用于并发操作,即当一个用户对数据加排他锁修改数据时,其他用户可以读镜像数据库上的数据,而不必等待该用户释放锁。
并发控制≠安全性控制≠完整性控制
数据的不一致性:丢失修改、不可重复读和读“脏”数据。 并发控制机制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰。
并发控制的技术:封锁、时间戳、乐观控制法和多版本并发控制。 封锁类型:排他锁又称写锁,共享锁称为读锁。 可串行化调度:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同。
可串行性是并发事务正确调度的唯一的准则。 两段锁协议:所有事务必须分两个阶段对数据项加锁和解锁。对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;在释放一个封锁之后,事务不再申请和获得任何其他封锁。
事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件。 封锁粒度与系统的并发度和并发控制的开销密切相关。封锁的粒度越大,数据库所能够封锁的数据单元越少,并发度就越小,系统开销也越小。 各种范式之间存在的联系
【算法6.l】求属性集输入:X,F 输出:步骤:(1)令(2)求B这里(3)(5)若
与
(4)判断相等或
,则
就是
,算法终止。
=X,i=0
关于U上的函数依赖集F的闭包
(6)若否,则i=i+l,返回第(2)步。
1.查询全体学生的学号与姓名。
SELECT Sno,Sname FROM Student; 2.查询全体学生的姓名、学号、所在系。
SELECT Sname,Sno,Sdept FROM Student; 3.查询选修了课程的学生学号。 SELECT Sno FROM SC;
4.查询计算机科学系全体学生的名单。
SELECT Sname FROM Student WHERE Sdept=’CS’; 5. 查询所有年龄在20岁以下的学生姓名及其年龄。
SELECT Sname,Sage FROM Student WHERE Sage < 20; 6.查询考试成绩不及格的学生的学号。
SELECT DISTINCT Sno FROM SC WHERE Grade<60;
7.查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。 SELECT Sname,Sdept,Sage FROM Student
WHERE Sage BETWEEN 20 AND 23;
8.查询年龄不在20~23岁之间的学生的姓名、系别和年龄。 SELECT Sname,Sdept,Sage FROM Student
WHERE Sage NOT BETWEEN 20 AND 23; 9.查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。 SELECT Sname,Ssex FROM Student
WHERE Sdept IN ( 'IS','MA','CS' );
10.查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。 SELECT Sname,Ssex FROM Student
WHERE Sdept NOT IN ( 'IS','MA','CS );
11.查询所有姓刘学生的姓名、学号和性别。 SELECT Sname,Sno,Ssex FROM Student
WHERE Sname LIKE ‘刘%’;
12.查询姓\欧阳\且全名为三个汉字的学生的姓名。 SELECT Sname FROM Student
WHERE Sname LIKE ‘欧阳_ ’ ;
13.查询所有不姓刘的学生姓名、学号和性别。 SELECT Sname,Sno,Ssex FROM Student
WHERE Sname NOT LIKE '刘%'; 14.查询学生总人数。
相关推荐: