东华大学数据库整理.docx
- 文档编号:24453684
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:29
- 大小:24.59KB
东华大学数据库整理.docx
《东华大学数据库整理.docx》由会员分享,可在线阅读,更多相关《东华大学数据库整理.docx(29页珍藏版)》请在冰豆网上搜索。
东华大学数据库整理
数据库整理
概念:
什么是事务?
事务的性质有哪些?
二段封锁协议的内容是什么?
答案:
事务是构成单一逻辑工作单元的操作集合。
事务的性质有:
(1)原子性
(2)一致性(3)隔离性(4)持久性
两段锁协议的内容:
在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁,在释放一个封锁之后,事务不再获得任何其他封锁。
试述实现数据库安全性控制的常用方法和数据库恢复的基本原则。
答案:
实现数据库安全性控制的常用方法如下:
1、帐号安全性---用户名/口令
2、系统权限安全性---用角色管理系统级命令
3、对象安全性--- 数据库对象的访问权限
4、审计机制---核查对数据库的操作(对话、语句、特权、对象)
5、视图机制---敏感数据的保密
6、环境参数控制---控制用户对系统和数据库资源的使用。
数据库恢复的基本原则是冗余,即数据库重复存储。
具体方法为:
平时做好转储和建立日志,一旦发生数据库故障,数据库遭到破坏,则将转储数据装入,通过日志文件进行重做(REDO),如数据库未被破坏,但数据不可靠,则通过日志文件进行撤消(UNDO)
请述将ER模型转换成关系模型的基本原则。
答案:
E-R图转换为关系模型的原则:
1. 一个实体集转换为一个关系模式。
2. 一个m:
n联系转换为一个关系模式。
3. 一个1:
n联系可以与n端对应的关系模式合并(1的关键字放入N的关系中)。
4. 一个1:
1联系可以与任意一端对应的关系模式合并。
5. 三个或三个以上实体间的多元联系转换为一个关系模式
6. 同一实体集间的联系(自联系),可按上述1:
1、1:
n和m:
n三种情况分别处理。
试述下列概念
1. 数据库;
答案:
数据库是长期存储在计算机内的、有组织的、共享的数据集合。
它可以供用户共享,具有尽可能小的冗余度和较高的数据独立性,使得数据存储最优,数据最容易操作,并且具有完善的自我保护能力和数据恢复能力。
2. 视图;
答案:
视图是从一个或几个基本表(或视图)中导出的虚表。
数据库中只保存视图的定义。
视图是RDBMS提供给用户以多种角度观察数据库中数据的重要机制。
3. 函数依赖;
答案:
函数依赖(FunctionalDependency)是关系模式中属性之间的一种逻辑依赖关系。
具体定义如下,设关系模式R(U),U是属性全集,X和Y是U的子集。
如果对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的值与之对应,则称X决定函数Y,或Y函数依赖于X,记作X→Y。
称X为决定因素,Y为依赖因素。
4. 数据字典;
答案:
指对系统中全部数据的描述,包括数据项、数据结构、数据流、数据存储和管理五个部分。
数据库系统的生命周期。
答案:
基于数据库系统的生存期,数据库设计分为:
规划、需求分析、概念设计、逻辑设计、物理设计、实现与运行维护等七个阶段。
规划:
进行必要性和可行性分析,确定数据库系统在组织中和信息系统中的地位,以及各个数据库之间的关系;
需求分析:
收集数据库所需要的信息内容和处理需求,并加以规范化和分析;
概念设计:
将用户的信息需求统一到一个整体逻辑结构;
逻辑设计:
包括数据库结构设计和应用程序设计。
;
物理设计:
包括物理数据库结构的选择和程序设计中程序模块说明的精确化。
实现:
产生一个具体的数据库和应用程序
运行和维护:
收集和记录系统运行状态的数据,用以评价数据库的性能,用于对数据库系统修正甚至扩充。
1.简述事务的ACID特征,以及这些特征分别由数据库的什么子系统来完成。
1)原子性
事务的原子性是指一个事务的所有操作要么全做,要么全不做,保证原子性是数据库系统本身的职责,由DBMS的事务管理子系统来实现。
2)一致性
事务的一致性是指每个事务的执行保证数据库从一致的正确的状态变成一致的正确的状态,确保单个事务的一致性是编写事务的应用程序员的职责,系统运行时,由DBMS的完整性子系统执行测试任务。
3)隔离性
在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样,此时称事务达到了隔离性的要求。
隔离性是由DBMS的并发控制子系统实现的。
4)持久性
一个事务一旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中,不会丢失,即使以后系统发生故障,也是如此。
由DBMS的恢复管理子系统实现。
2. 关系规范化过程实质上是对关系不断分解的过程。
分解关系的基本规则是什么?
1)无损分解
2)保持函数依赖
3.简述数据库管理系统的二级映射,并说明它们分别保证了什么?
1)外模式/逻辑模式映像存在于外模式和逻辑模式之间,用于定义外模式和逻辑模式之间的对应性。
这个映像一般放在外模式中描述的。
用于保证当数据库的逻辑模式发生变化时,外模式可以不变。
2)逻辑模式/内模式映像存在于逻辑模式和内模式之间,用于定义逻辑模式和内模式之间的对应性,这个映像一般放在内模式中描述的。
用于保证当数据库的内模式发生变化时,模式可以不变。
4.简述一个设计不好的数据库会带来哪些问题?
1)数据冗余。
2)操作异常。
包括修改异常、插入异常、删除异常。
5.简述关系模型有哪三类完整性规则?
1)实体完整性规则:
主键不重复、主键不为空
2)参照完整性规则:
不允许引用不存在的实体
3)用户定义的完整性规则:
如Betweenand约束;NOTNULL约束;UNIQUE约束;值域约束
三层模式体系结构:
外模式:
用户与数据库系统的接口,是用户用到那部分数据的描述。
外模式由若干个外部记录类型组成。
(视图)
逻辑模式:
数据库中全部数据的整体逻辑结构的描述。
它由若干个逻辑记录类型组成,还包含记录间联系、数据完整性和安全性等要求。
内模式:
数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件组织方式以及数据控制方面的细节。
数据库的并发操作通常会带来三个问题:
丢失更新问题、读脏数据问题、不可重复读问题。
数据独立性有:
物理数据独立性和逻辑数据独立性。
DBMS主要功能:
(1)数据库定义
(2)数据库操纵(3)数据库保护(4)数据库维护(5)数据字典
关系模型的三层体系结构:
1)关系模式:
模式名、属性名、域名以及模式的主键
2)子模式:
用户用到的那部分数据的描述
3)存储模式:
关系存储作为文件看待,一个元组就是一条记录。
启发式优化原则:
1)尽可能早得执行选择操作
2)尽可能早得执行投影操作
3)避免直接做笛卡尔积
关系模式的范式:
第一范式:
如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是1NF的模式。
第二范式:
如果关系模式是1NF,而且每个非主属性完全函数依赖于候选键,那么称R是2NF的模式。
第三范式:
无传递依赖。
SQL:
(1)检索学号为S3的学生所学课程的课程名与任课教师名。
(2)检索至少选修LIU老师所授一门课的男学生的姓名。
(3)检索WANG同学不学的课程的课程号。
(4)检索至少选修C2和C4课的学生的学号。
(5)检索学习全部课程的学生名。
(6)检索每个学生已选修课程的门数及平均成绩。
(7)删除学号为*****的学生选修的课程号为C2的记录。
(8)建立数学系学生的视图C_STUDENT,并要求进行修改和插入数据时,仍需保证该视图只有数学系的学生。
视图的属性名为:
S#,SNAME,AGE,DEPT。
答案:
(1)
SelectCNAME,Teacher
FromSC,C
WhereSC.C#=C.C#andS#=’S3
(2)
SelectSNAME
FromS
WhereS#in(SelectS#
FromSC
WhereC#in(SelectC#
FromC
Whereteacher=’LIU?
)
(3)
SelectC#
FromSC
WhereS#notin(SelectS#
FromS
WhereSNAME=’WANG
(4)
SelectS#
FromSCX,SCY
WhereX.S#=Y.S#andX.C#=’C2?
andY.C#=’C4
(5)
SelectSNAME
FromS
Wherenotexists(Select*
FromC
Wherenotexists(select*
FromSC
WhereC#=C.C#andS#=S.S#))
(6)
SelectS#,count(*),avg(GRADE)
FromSC
GroupbyS#
(7)
Delete
FromSC
WhereS#=?
5002?
andC#=’C2
(8)
CreateViewC_STUDENT(S#,SNAME,AGE,DEPT)AS
SelectS#,SNAME,AGE,DEPT
FromS
WhereDEPT=数学系
Withcheckoption
2、 查询每一门课的间接先修课(即先修课的先修课)。
SELECTFIRST.Cno,SECOND.Cpno
FROMCourseFIRST,CourseSECOND
WHEREFIRST.Cpno=SECOND.Cno;
1、 查询其他系中比信息系某一学生年龄小的学生姓名和年龄
SELECTSname,Sage
FROMStudent
WHERESage FROMStudent WHERESdept='IS') ANDSdept<>'IS'; 2、 查询没有选修1号课程的学生姓名。 SELECTSname FROMStudent WHERENOTEXISTS (SELECT* FROMSC WHERESno=Student.Sno ANDCno='1'); 3、 查询选修了全部课程的学生姓名。 SELECTSname FROMStudent WHERENOTEXISTS (SELECT* FROMCourse WHERENOTEXISTS (SELECT* FROMSC WHERESno=Student.Sno ANDCno=Course.Cno)); 4、 查询至少选修了学生95002选修的全部课程的学生号码。 SELECTDISTINCTSno FROMSCSCX WHERENOTEXISTS (SELECT* FROMSCSCY WHERESCY.Sno='95002' AND NOTEXISTS (SELECT* FROMSCSCZ WHERESCZ.Sno=SCX.SnoAND SCZ.Cno=SCY.Cno)); 5、 建立1号课程的选课视图,并要求通过该视图进行的更新操作只涉及1号课程,同时对该视图的任何操作只能在工作时间进行。 CREATEVIEWIS_SC AS SELECTSno,Cno,Grade FROM SC WHERE Cno='1' ANDTO_CHAR(SYSDATE,'HH24')BETWEEN9AND17 ANDTO_CHAR(SYSDATE,'D')BETWEEN2AND6 WITHCHECKOPTION; 关系代数: (1) 参与过20万元及以上项目的教师姓名和所属部门; (2) 至少参与过两个项目的教师姓名和年龄。 1)∏tname,depart (σ fee>=20(T⋈ I ⋈P)) 2)∏tname,age (T⋈(σ 1=5∧2≠6(I×I)) 范式: 假设某商业集团的商品销售数据库有一关系模式R如下: R(商店编号,商品编号,商品名称,库存数量,部门编号,部门名称、部门负责人) 现规定: (1) 每个商店的每种商品只在一个部门销售; (2) 每个商店的每个部门只有一个部门负责人; (3) 每个商店的每种商品只有一个库存数量。 试回答下列问题: 1)根据上述规定,写出关系模式R的基本函数依赖; 说明: 关于现实意义有多种假设,其中之一: (1) 商品编号在所有商店是一致的; (2) 各个商店对部门有自己的编号; (3) 不同商店对同一商品可能分配到不同部门。 根据以上假设得到的函数依赖有: (1) (商店编号,商品编号)->(部门编号,库存量) (2) (商店编号,部门编号)->部门负责人 (3) 商品编号->商品名称 (4) 部门编号->部门名称 根据其它假设可能有不同的函数依赖。 2)找出关系模式R的候选健; 关系模式R的候选键为(商店编号,商品编号)。 3)试问关系模式R最高已经达到第几范式? 为什么? 在R,存在非主属性如商品名称对候选键的部分函数依赖,所以不是2范式(2NF)。 但是每个属性都是原子项,不可再分。 综上所述,R是1范式(1NF)。 4)如果R不属于3NF,请将R分解成3NF模式集。 在1)中的函数依赖,已经是极小化后并合并相同左部。 R无损连接并保函数依赖的分解为: R1(商店编号,商品编号,部门编号,库存量),F1={(商店编号,商品编号)->(部门编号,库存量)}; R2(商店编号,部门编号,部门负责人),F2={(商店编号,部门编号)->部门负责人}; R3(商品编号,商品名称),F3={商品编号->商品名称}; R4(部门编号,部门名称),F4={部门编号->部门名称}。 SQL语句: 一、约束和排序 语法格式: SELECT*|{[DISTINCT]column|expression[alias],...} FROMtable [WHEREcondition(s)] [ORDERBY{column,expr,alias}[ASC|DESC]]; 1、使用WHERE子句 SELECTemployee_id,last_name,job_id,department_id FROMemployees WHEREdepartment_id=90; 2、字符串和日期 SELECTlast_name,job_id,department_id FROMemployees WHERElast_name='Whalen'; 3、使用比较条件 SELECTlast_name,salary FROMemployees WHEREsalary<=3000; 4、使用BETWEEN条件 SELECTlast_name,salary FROMemployees WHEREsalaryBETWEEN2500AND3500; 5、使用IN条件 SELECTemployee_id,last_name,salary,manager_id FROMemployees WHEREmanager_idIN(100,101,201); 6、使用LIKE条件 SELECTfirst_name FROMemployees WHEREfirst_nameLIKE'S%'; SELECTlast_name FROMemployees WHERElast_nameLIKE'_o%'; 7、使用NULL条件 SELECTlast_name,manager_id FROMemployees WHEREmanager_idISNULL; 8、使用AND操作 SELECTemployee_id,last_name,job_id,salary FROMemployees WHEREsalary>=10000 ANDjob_idLIKE'%MAN%'; 9、使用OR操作 SELECTemployee_id,last_name,job_id,salary FROMemployees WHEREsalary>=10000 ORjob_idLIKE'%MAN%'; 10、使用NOT操作 SELECTlast_name,job_id FROMemployees WHEREjob_id NOTIN('IT_PROG','ST_CLERK','SA_REP'); 11、ORDERBY子句 SELECTlast_name,job_id,department_id,hire_date FROMemployees ORDERBYhire_date; 12、降序排序 SELECTlast_name,job_id,department_id,hire_date FROMemployees ORDERBYhire_dateDESC; 13、用列别名排序 SELECTemployee_id,last_name,salary*12annsal FROMemployees ORDERBYannsal; 14、多列排序 SELECTlast_name,department_id,salary FROMemployees ORDERBYdepartment_id,salaryDESC; 二、从多表中显示数据 SELECTtable1.column,table2.column FROMtable1,table2 WHEREtable1.column1=table2.column2; 1、等值连接 SELECTemployees.employee_id,employees.last_name, employees.department_id,departments.department_id, departments.location_id FROMemployees,departments WHEREemployees.department_id=departments.department_id; 2、使用表别名 SELECTe.employee_id,e.last_name,e.department_id, d.department_id,d.location_id FROMemployeese,departmentsd WHEREe.department_id=d.department_id; 3、非等值连接 SELECTe.last_name,e.salary,j.grade_level FROMemployeese,job_gradesj WHEREe.salary BETWEENj.lowest_salANDj.highest_sal; 4、外连接 SELECTtable1.column,table2.column FROMtable1,table2 WHEREtable1.column(+)=table2.column; SELECTtable1.column,table2.column FROMtable1,table2 WHEREtable1.column=table2.column(+); SELECTe.last_name,e.department_id,d.department_name FROMemployeese,departmentsd WHEREe.department_id(+)=d.department_id; 5、自连接 SELECTworker.last_name||'worksfor' ||manager.last_name FROMemployeesworker,employeesmanager WHEREworker.manager_id=manager.employee_id; 三、组函数 1、组函数 ●AVG ●COUNT ●MAX ●MIN ●STDDEV ●SUM ●VARIANCE 2、分组查询语法 SELECT[column,]group_function(column),... FROMtable [WHEREcondition] [GROUPBYcolumn] [ORDERBYcolumn]; 四、子查询 1、子查询的语法 SELECTselect_list FROMtable WHEREexproperator (SELECTselect_list FROMtable); 2、使用子查询 SELECTlast_name FROMemployees WHEREsalary> (SELECTsalary FROMemployees WHERElast_name='Abel'); 3、单行子查询 SELECTlast_name,job_id,salary FROMemployees WHEREjob_id= (SELECTjob_id FROMemployees WHEREe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东华 大学 数据库 整理