数据库原理4
- 格式:ppt
- 大小:114.00 KB
- 文档页数:19
1、设计性能较优的关系模式称为规范化,规范化主要的理论依据是()。
A.关系规范化理论B.关系运算理论C.关系代数理论D.数理逻辑正确答案:A2、下列关于规范化理论各项中正确的是()。
A.对于一个关系模式来说,规范化越深越好B.满足第二范式的关系模式一定满足第一范式C.第一范式要求---非主码属性完全函数依赖关键字D.规范化一般是通过分解各个关系模式实现的,但有时也有合并正确答案:B3、X→Y能从推理规则导出的充分必要条件是()。
A.B.C.D.正确答案:D4、两个函数依赖集F和G等价的充分必要条件是()。
A.B.C.D.5、设有关系模式R(A,B,C,D,E),函数依赖集F={A→B,B→C,C→D,D→A},ρ={AB,BC,AD}是R上的一个分解,那么分解ρ相对于F()。
A.既是无损连接分解,又是保持函数依赖的分解B.是无损连接分解,但不是保持函数依赖的分解C.不是无损连接分解,但是保持函数依赖的分解D.既不是无损连接分解,也不是保持函数依赖的分解正确答案:D6、关系模式中,满足2NF的模式()。
A.可能是1NFB.必定是1NFC.必定是3NFD.必定是BCNF正确答案:B7、不能使一个关系从第一范式转化为第二范式的条件是()。
A.每一个非主属性都完全函数依赖于主码B.每一个非主属性都部分函数依赖于主码C.关系中没有非主属性D.主码由一个属性构成正确答案:B二、判断题1、关系模式的分解是唯一的。
(错)2、一个关系模式属于BC范式,它一定属于第三范式。
(对)3、在关系模式R(U,F)中,如果X→Y,且存在X的真子集X1,使X1→Y,称函数依赖X→Y为完全函数依赖。
(错)4、函数依赖集F={A→B,B→C,C→A,C→B,A→C,BC→A},它的最小函数依赖集Fmin={A→B,B→C,A→C}。
(错)三、填空题1、被函数依赖集F逻辑蕴涵的函数依赖的全体构成的集合,称为。
正确答案:函数依赖集F的闭包2、设有关系模式R(A,B,C,D,M,N),函数依赖集F={N→D,M→D,D→B,BC→D,DC→N},R的候选码为。
数据库原理与运用第4章部分习题答案一、选择题(1)C (2)D (3)C (4)C (5)A(6)B (7)C (8)C (9)A (10)D二、填空题(1) DDL(2) 自含式,嵌入式(3)DROP,DELETE(4)基本表或视图(5)更新(6)CREATE,ALTER,DROP(7)AND,OR,NOT(8)INSERT,UPDATE,DELETE(9)HAVING(10)INTO三、操作题1.每个关系建立相应的表结构,添加若干记录。
CREA TE T ABLE S(SNO V ARCHAR(5) NOT NULL PRIMARY KEY,SNAME V ARCHAR(20) NOT NULL,ADDRESS NV ARCHAR(30),TEL V ARCHAR(20))INSERT INTO S V ALUES(‘S1’,’SN1’,’上海南京路’,’68564345’)……CREA TE T ABLE P(PNO V ARCHAR(5) NOT NULL PRIMARY KEY,PNAME V ARCHAR(20) NOT NULL,SPEC V ARCHAR(20),CITY NV ARCHAR(20);COLOR NV ARCHAR(2))INSERT INTO P V ALUES(‘P1’,’PN1’,’8x8’,’无锡’,’红’)……CREA TE T ABLE J(JNO V ARCHAR(5) NOT NULL PRIMARY KEY,JNAME V ARCHAR(20) NOT NULL,LEADER V ARCHAR(10),BG INT)INSERT INTO J V ALUES(‘J1’,’JN1’,’王总’,10)……CREA TE T ABLE SPJ(SNO V ARCHAR(5) NOT NULL,PNO V ARCHAR(5) NOT NULL,JNO V ARCHAR(5) NOT NULL,QTY INT,CONSTRAINT PR_SPJ PRIMARY KEY(SNO,SPNO,JNO)) INSERT INTO SPJ V ALUES(‘S1’,’P1’,’J1’,200)……2.完成如下查询:(1)找出所有供应商的姓名和地址、电话。
数据库原理第四版试题数据库原理试题一、选择题(每题1分,共30分选择正确答案的编号,得分阅卷教师填在各题后的括号内)1、用二维表结构表示实体以及实体间联系的数据模型为()。
A、网状模型B、层次模型C、关系模型D、面向对象模型2、SQL语言是()标准语言。
A、层次数据库B、网络数据库C、关系数据库D、非数据库3、创建表时,用来说明字段默认值的是( )。
A、 CHECKB、 CONSTRAINTC、 DEFAULTD、 UNIQUE4、下述SQL语句中,更新表中数据作用的命令动词是( )。
A、 ALTERB、 CREATEC、 UPDATED、 INSERT5、在SELECT语句中使用“*”表示()。
A、选择任何字段B、选择全部字段C、选择全部记录 C、选择主码6、视图是从一个可以多个()表中导出的。
A、基表B、虚表C、索引D、记录7、数据库的( )是指数据的正确性和相容性。
A.安全性 B.完整性 C.并发控制 D.恢复8、要保证数据库的数据独立性,需要修改的是( )。
A、三层模式之间的两种映射B、模式与内模式9、空值NULL是()的值。
A、空字符串B、不知道的、不确定或无法填入C、数值零D、以上都不是10、下面是聚合函数的选项是()。
A、 distinctB、sumC、 ifD、top11、子查询可以返回()行而不产生错误。
A、仅一行B、如果不以ANY、ALL、EXISTS或IN开头,则仅一行C、无限多行D、如果不以ANY、ALL、EXISTS或IN开头,则为无限行12、属性是指实体具有的()。
A. 某种描述. B、某种特性 C、某种数值. D、某种类型13、在一个关系中如果有这样一个属性存在着,它的值能惟一地标识关系中的每一个元组,称这个属性为 ( )A.候选码B.数据项C.主属性D.主属性值14、表中可以()一个元组(一个记录)的某个属性组(字段组)称为主键.A、唯一确定B、不唯一确定C、模糊确定D、表达15、若某个属性组不是关系A主码,但它是另一个关系B的主码,则该属性或属性组称为关系A的( )。
数据库一、选择题30’二、填空题20’ 涉及内容:C1,C2,C3,C7概念为主。
其余章节少量涉及。
三、问答题20’(4*5’)1.论述数据、数据库、数据库管理系统、数据库系统的概念;数据:描述事物的符号记录。
是数据库中存储的基本对象。
种类:文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等特点:数据与其语义是不可分的数据库:长期储存在计算机内、有组织的、可共享的大量数据的集合。
基本特征:⏹数据按一定的数据模型组织、描述和储存⏹可为各种用户共享⏹冗余度较小⏹数据独立性较高⏹易扩展数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件,是基础软件,是一个大型复杂的软件系统。
用途:科学地组织和存储数据、高效地获取和维护数据数据库系统:在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
2.数据库系统的特点☐数据结构化整体结构化不再仅仅针对某一个应用,而是面向全组织不仅数据内部结构化,整体是结构化的,数据之间具有联系数据库中实现的是数据的真正结构化数据的结构用数据模型描述,无需程序定义和解释数据可以变长数据的最小存取单位是数据项☐数据的共享性高,冗余度低,易扩充数据库系统从整体角度看待和描述数据,数据面向整个系统,可以被多个用户、多个应用共享使用。
数据共享的好处减少数据冗余,节约存储空间避免数据之间的不相容性与不一致性使系统易于扩充☐数据独立性高物理独立性指用户应用程序与存储在磁盘上的数据库中数据是相互独立的。
当数据的物理存储改变了,应用程序不用改变。
逻辑独立性指用户的应用程序与数据库的逻辑结构是相互独立的。
数据的逻辑结构改变了,用户程序也可以不变。
数据独立性是由DBMS的二级映像功能来保证的☐数据由DBMS统一管理和控制DBMS在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。
免责声明:私人学习之余整理,如有错漏,概不负责1.查询学生选课表中的全部数据SELECT *FROM SC2.查询计算机系的学生的姓名、年龄SELECT Sname,SageFROM StudentWHERE Sdept = '计算机系'3.查询成绩在70到80分之间的学生的学号课程号和成绩SELECT *FROM SCWHERE Grade BETWEEN 70 AND 804.查询计算机系年龄在18-20岁之间且性别为男的学生的姓名和年龄SELECT Sname,SageFROM StudentWHERE Sage BETWEEN 18 AND 20AND Sdept = '计算机系'AND Ssex = '男'5.查询课程号为‘c001’的课程的最高的分数SELECT MAX(Grade)FROM SCWHERE Cno = 'c001'6.查询计算机系学生的最大年龄和最小年龄SELECT MAX(Sage),MIN(Sage)FROM StudentWHERE Sdept = '计算机系'7.统计每个系的学生人数SELECT Sdept,COUNT(*) AS 学生人数FROM StudentGROUP BY Sdept8.统计每门课程的选课人数和考试最高分SELECT Cno,COUNT(*) AS 选课人数,MAX(Grade)FROM SCGROUP BY Cno9.统计每个学生的选课门数和考试总成绩,并按照选课门数升序显示结果SELECT Sno,COUNT(*) AS 选课门数,SUM(Grade) AS 总成绩FROM SCGROUP BY SnoORDER BY COUNT(*) ASC10.查询总成绩超过200分的学生的学号和总成绩SELECT Sno,SUM(Grade) AS 总成绩FROM SCGROUP BY SnoHAVING SUM(Grade) >20011.查询选修了'c002'号课程的学生的姓名和所在系SELECT Sname,SdeptFROM Student INNER JOIN SC ON Student.Sno = SC.SnoWHERE Cno = 'C002'12.查询成绩80分以上的学生的姓名、课程号和成绩,按成绩降序排列SELECT Sname,Cno,GradeFROM Student INNER JOIN SC ON Student.Sno = SC.SnoWHERE Grade > 80ORDER BY Grade DESC13.查询那些学生没有选修课,列出学号、姓名和所在系SELECT Student.Sno,Sname,Sdept,CnoFROM Student LEFT OUTER JOIN SC ON Student.Sno = SC.SnoWHERE Cno IS NULL14.查询与java在同一学期开设的课程的课程名和开课学期SELECT ame,c2.SemesterFROM Course c1 JOIN Course c2 ON c1.Semester = c2.SemesterWHERE ame = 'Java'-- 注意select的列与where的列应该不同15.查询与李勇年龄相同的学生的姓名、所在系和年龄SELECT s1.Sname,s1.Sdept,s1.SageFROM Student s1 JOIN Student s2 ON s1.Sage = S2.SageWHERE s2.Sname = '李勇'16.用子查询实现如下查询1)查询选修了'c001'号课程的学生的姓名和所在系SELECT Sname,SdeptFROM StudentWHERE Sno IN (SELECT Sno FROM SC WHERE Cno = 'c001')2)查询数学系成绩在80分以上的学生的学号、姓名、课程号和成绩SELECT s.Sno,Sname,Cno,GradeFROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Grade > 80 ANDs.Sno IN (SELECT Sno FROM SC WHERE Sdept = '数学系')3)查询计算机系考试成绩最高的学生的姓名SELECT SnameFROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Sdept = '计算机系' ANDgrade = (SELECT MAX(Grade) FROM SC INNER JOIN Student ON SC.Sno = Student.Sno)-- 不用子查询SELECT SnameFROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Sdept = '计算机系'GROUP BY Grade DESC LIMIT 1-- mysql没有top n 可以用limit替代4)查询数据结构考试成绩最高的学生的姓名、所在系、性别和成绩SELECT Sname,Sdept,Ssex,GradeFROM SC INNER JOIN Student s ON SC.Sno = s.SnoWHERE Grade = (SELECT MAX(Grade) FROM SC INNER JOIN Course c ON o = o WHERE Cname = '数据结构')AND Cno = (SELECT Cno FROM Course WHERE Cname = '数据结构')-- 使用排序SELECT Sname,Sdept,Ssex,GradeFROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Cno = (SELECT Cno FROM Course WHERE Cname = '数据结构')GROUP BY Grade DESC LIMIT 1-- mysql没有top n 可以用limit替代17.查询没有选修java课程的学生的姓名和所在系-- 子查询SELECT Sname,SdeptFROM StudentWHERE Sno NOT IN (SELECT Sno FROM SCWHERE Cno = (SELECT Cno FROM Course WHERE Cname = 'Java'))18.查询计算机系没有选课的学生的姓名和性别SELECT Sname,SsexFROM StudentWHERE Sno NOT IN (SELECT Sno FROM SC)19.创建一个新表,表明test_t........CREATE TABLE test_t(COL1 INT,COL2 CHAR(10) NOT NULL,COL3 CHAR(10))INSERT INTO test_t VALUE(NULL,'B1',NULL),(1,'B2','C2'),(2,'B3',NULL)20.删除考试成绩低于50分的学生的选课记录DELETE FROM SCWHERE Grade < 5021.删除没有人选的课程记录DELETE FROM CourseWHERE Cno NOT IN (SELECT Cno FROM SC)22.删除计算机系java成绩不及格学生的java课程选课记录DELETE FROM SCWHERE Sno IN (SELECT Sno FROM Student WHERE Sdept = '计算机系')AND Cno = (SELECT Cno FROM Course WHERE Cname = 'Java')AND Grade < 6023.将第二学期开设的所有课程的学分增加2分UPDATE Course SET Credit = Credit + 2WHERE Semester = 224.将java课程的学分改为3分UPDATE Course SET Credit = 3WHERE Cname = 'Java'25.将计算机系的学生的年龄增加一岁UPDATE Student SET Sage = Sage + 1WHERE Sdept = '计算机系'26.将信息系学生的计算机文化学课程的考试成绩加5分UPDATE SC SET Grade = Grade + 5WHERE Sno IN (SELECT Sno FROM Student WHERE Sdept = '信息系')AND Cno = (SELECT Cno FROM Course WHERE Cname = '计算机文化学')27.查询每个系年龄大于等于20的学生人数,并将结果保存到一个新永久标Dept_ageCREATE TABLE Dept_age (SELECT b.Sdept,IFNULL(人数,0) AS 人数FROM(SELECT Sdept,COUNT(*) AS 人数FROM Student WHERE Sage >= 20 GROUP BY Sdept) a RIGHT OUTER JOIN (SELECT DISTINCT Sdept FROM Student) b ON a.Sdept = b.Sdept)SELECT * FROM Dept_age-- mysql不支持select into from28.查询计算机系每个学生的java考试情况,列出学号、姓名、成绩和成绩情况>=90(好)80-89(较好)70-79(一般)60-69(较差)<60(差)SELECT s.Sno,Sname,Grade,CASEWHEN Grade >= 90 THEN '优'WHEN Grade BETWEEN 80 AND 89 THEN '较好'WHEN Grade BETWEEN 70 AND 79 THEN '一般'WHEN Grade BETWEEN 60 AND 69 THEN '较差'WHEN Grade < 60 THEN '差'END AS 成绩情况FROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Cno = (SELECT Cno FROM Course WHERE Cname = 'Java')29.统计每个学生的选课门数(包括没有选课的人),列出学号、选课门数和选课情况>=6(多)3-5(一般)1-2(偏少)0(未选课)SELECT s.Sno,IFNULL(COUNT(*),0) AS 选课门数,CASEWHEN COUNT(*) >= 6 THEN '多'WHEN COUNT(*) BETWEEN 3 AND 5 THEN '一般'WHEN COUNT(*) BETWEEN 1 AND 2 THEN '偏少'WHEN COUNT(*) IS NULL THEN '未选课'END AS 选课情况FROM Student s LEFT OUTER JOIN SC ON s.Sno = SC.SnoGROUP BY Sno30.修改全部课程的学分,修改规则如下:1-2学期开设的课程加5分3-4学期开设的课程加3分5-6学期开设的课程加1分其余不变UPDATE Course SET Credit = Credit +CASEWHEN Semester BETWEEN 1 AND 2 THEN 5WHEN Semester BETWEEN 3 AND 4 THEN 3WHEN Semester BETWEEN 5 AND 6 THEN 5ELSE 0END31.查询李勇和王大力所选的全部课程,列出课程名、开课学期和学分,不包括重复结果SELECT Cname,Semester,CreditFROM CourseWHERE Cno IN (SELECT Cno FROM SC WHERE Sno IN (SELECT Sno FROM Student WHERE Sname = '李勇' OR Sname = '王大力'))-- 并运算SELECT Cname,Semester,Credit FROM CourseWHERE Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))UNIONSELECT Cname,Semester,Credit FROM CourseWHERE Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))32.查询第3学期开设的课程中,李勇选了但王大力没选的课程,列出课程名和学分SELECT Cname,CreditFROM CourseWHERE Semester = 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))AND Cno NOT IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))-- 差运算mysql不支持EXCEPTSELECT Cname,CreditFROM CourseWHERE Semester = 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))EXCEPTSELECT Cname,CreditFROM CourseWHERE Semester = 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))33.查询学分大于3分的课程中,李勇和王大力所选的相同课程,列出课程名和学分SELECT Cname,CreditFROM CourseWHERE Credit > 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))-- 交运算mysql不支持INTERSECTSELECT Cname,CreditFROM CourseWHERE Credit > 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))INTERSECTSELECT Cname,CreditFROM CourseWHERE Credit > 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))。
数据库的原理数据库是指按照一定规则组织、存储和管理数据的系统。
它是现代信息管理的基石,广泛应用于各个领域。
要了解数据库的原理,首先需要了解数据库的基本概念、数据结构和操作方式。
一、数据库的基本概念数据库是指将相关数据按照结构化的方式存储在计算机内部,以便于对数据进行管理和操作的系统。
它具有持久化存储、共享和并发访问的特点。
数据库可以包含多个表,每个表包含多个记录,每个记录由多个字段组成。
二、数据结构数据库的数据结构是指通过表、字段和索引等方式组织和存储数据的方式。
主要有以下几种类型的数据结构:1. 层次型结构:数据以树状结构组织,父节点和子节点之间存在一对多的关系。
2. 网状型结构:数据以网状结构组织,每个节点可以与多个节点相连,形成复杂的关联关系。
3. 关系型结构:数据以表的形式存储,通过关系建立不同表之间的关联关系。
4. 面向对象结构:数据以对象的形式存储,可以直接对对象进行操作和访问。
其中,关系型结构是最常用和最广泛应用的数据结构,它通过表的关系模型实现了数据的高效管理和操作。
三、数据库的操作方式数据库的操作方式通常包括增加(Insert)、删除(Delete)、修改(Update)和查询(Select)等。
这些操作都是通过结构化查询语言(SQL)来实现的。
SQL是一种专门用于管理和操作数据库的语言,可以对数据库进行增删改查等操作。
1. 增加数据:通过插入数据记录的方式向数据库中添加数据。
2. 删除数据:通过删除数据记录的方式从数据库中移除数据。
3. 修改数据:通过修改数据记录的方式更新数据库中的数据。
4. 查询数据:通过查询语句检索数据库中的数据。
对于不同的操作方式,可以根据业务需求和数据特点选择适合的操作方法,从而实现对数据库的有效管理和利用。
四、数据库的原理数据库的原理主要包括数据的存储和检索、事务和锁、索引和优化等方面。
1. 数据的存储和检索:数据库采用层次结构、索引和哈希等技术来存储和管理数据。
计算机等级考试四级数据库原理第4套试题及答案一、单项选择题(共30分;每题1分)1、下列关于数据与信息的叙述中,哪一条是错误的()。
A)信息总是具有特定的语义,而且可以存储以及加工处理B)文字、图像、声音等都是数据的表现形式C)信息是数据的载体,也是数据的内涵D)信息的价值与它的准确性、及时性、完整性和可靠性有关2、下列哪一个不属于数据库系统中的软件平台()。
A)支持DBMS运行的操作系统(OS)B)检测、预防和消除计算机系统病毒的软件C)以DBMS为核心的应用开发工具D)为特定应用环境开发的数据库应用系统3、下列关于数据模型的叙述中,哪一条是错误的()。
A)数据模型为数据库的表示和操纵提供框架B)数据模型描述了数据库的静态特征与动态行为C)数据模型是数据库系统的核心和基础D)不同抽象层面的数据模型都能很好地模拟现实世界、容易为人们所理解,并且便于在计算机上实现4、下列关于E-R图的叙述中,哪一条是错误的()。
A)E-R图是实体联系图的简称,其英文是Entity-Relationship DiagramB)E-R图是一个图示化模型,能够表示实体型、属性和联系C)E-R图中实体型用矩形表示,矩形框内写明实体名D)E-R图中属性用菱形表示,菱形框内写明属性名5、下列关于关系模型的叙述中,哪一条是错误的()。
A)关系模型是一种物理数据模型B)关系模型用二维表格结构表示各类实体及实体间的联系C)关系模型是数学化的模型,可把表格看成一个集合D)关系模型由IBM公司的研究员E.F.Codd于1970年首次提出6、在数据库技术中,实体-联系模型(即E-R模型)是下列哪一种模型()。
A)概念数据模型B)结构数据模型C)物理数据模型D)逻辑数据模型7、关系数据模型由三大要素组成,下列哪一项表述是正确的()。
A)关系数据结构,关系数据通信,关系操作集合B)关系数据结构,关系操作集合,关系完整性约束C)关系数据通信,关系操作集合,关系完整性约束D)关系数据结构,关系数据通信,关系完整性约束8、设关系R和S具有公共属性集Y,当执行自然连接时,会丢弃那些在Y属性集上没有匹配值的元组。
自考数据库系统原理第四章关系运算课后习题答案2009-09-15 10:454.1 名词解释(1)关系模型:用二维表格结构表示实体集,外键表示实体间联系的数据模型称为关系模型。
(2)关系模式:关系模式实际上就是记录类型。
它的定义包括:模式名,属性名,值域名以及模式的主键。
关系模式不涉及到物理存储方面拿枋觯 鼋鍪嵌允 萏匦缘拿枋觥?(3)关系实例:元组的集合称为关系和实例,一个关系即一张二维表格。
(4)属性:实体的一个特征。
在关系模型中,字段称为属性。
(5)域:在关系中,每一个属性都有一个取值范围,称为属性的值域,简称域。
(6)元组:在关系中,记录称为元组。
元组对应表中的一行;表示一个实体。
(7)超键:在关系中能唯一标识元组的属性集称为关系模式的超键。
(8)候选键:不含有多余属性的超键称为候选键。
(9)主键:用户选作元组标识的一个候选键为主键。
(单独出现,要先解释“候选键”)(10)外键:某个关系的主键相应的属性在另一关系中出现,此时该主键在就是另一关系的外键,如有两个关系S和SC,其中S#是关系S的主键,相应的属性S#在关系SC中也出现,此时S#就是关系SC的外键。
(11)实体完整性规则:这条规则要求关系中元组在组成主键的属性上不能有空值。
如果出现空值,那么主键值就起不了唯一标识元组的作用。
(12)参照完整性规则:这条规则要求“不引用不存在的实体”。
其形式定义如下:如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么R2的关系中, K的取值只允许有两种可能,或者为空值,或者等于R1关系中某个主键值。
这条规则在使用时有三点应注意: 1)外键和相应的主键可以不同名,只要定义在相同值域上即可。
2)R1和R2也可以是同一个关系模式,表示了属性之间的联系。
3)外键值是否允许空应视具体问题而定。
(13)过程性语言:在编程时必须给出获得结果的操作步骤,即“干什么”和“怎么干”。
如Pascal和C语言等。
《数据库系统原理》教案第四章关系系统的查询优化4.1 关系系统4.1.1 关系系统的定义笼统的说,支持关系模型的数据库管理系统(DBMS)称为关系系统。
可见,关系系统和关系模型是密切相关而又相互区别的两个概念。
设计关系模型时,我们不苛求关系模型中每一部分的同等重要性,但是要满足如下几个方面:(1) 以提高用户的生产率作为关系系统的主要目标,方便用户使用。
(2) 保证和提高数据的物理独立性,即实现关系系统能够自动地选择路径。
(3) 确保关系系统能够解决绝大部分的实际问题。
定义4.1一个系统是关系系统当且仅当·支持关系数据库(关系数据结构)。
·支持选择、投影和(自然)连接运算,对这些运算不必要求定义任何物理存取路径。
需要说明的是,该定义是关系系统的最小要求。
一个系统仅支持关系数据结构,但没有选择、投影和连接运算功能的系统仍不能算作关系系统。
支持选择、投影和连接运算,但要求定义物理存取路径,需要用户建立索引才能检索记录,也不能算作真正的关系系统。
当然并不要求关系系统的选择、投影、连接运算和关系代数的相应运算完全一样,而只要求有等价的这三种运算功能就行。
4.1.2 关系系统的分类具体地说:目前的关系系统多是按照E.F.Codd的思想划分的(如图4-1)。
图中的圆表示关系数据模型。
每个圆分为三部分,分别表示关系模型的三个组成部分:结构S(Structure)、完整性I(Integrity)、数据操纵M(Manipulation)。
图中阴影部分表示各类系统支持模型的程度。
(1) 表式系统这类系统仅支持关系数据结构,不支持集合的操作。
表式系统不能算关系系统。
(2) 最小关系系统即定义中的关系系统。
它们仅支持关系数据结构和三种关系操作。
最小关系系统完备的关系系统表式关系系统全关系系统图4-1 关系系统的分类(3) 关系完备的系统这类系统支持关系数据结构和所有的关系代数操作。
(4) 全关系系统这类系统支持关系模型的所有特征。
习题参考答案第1章习题参考答案一、选择题1. C2. B3. D4. C5. D6. B7. A8. B9. D 10. B11. C 12. D 13. D 14. D 15. B16. C 17. D 18. A 19. D 20. A21. D 22. D 23. C 24. A 25. C二、填空题1. 数据库系统阶段2. 关系3. 物理独立性4. 操作系统5. 数据库管理系统(DBMS)6. 一对多7. 独立性8. 完整性控制9. 逻辑独立性10. 关系模型11. 概念结构(逻辑)12. 树有向图二维表嵌套和递归13. 宿主语言(或主语言)14. 数据字典15. 单用户结构主从式结构分布式结构客户/服务器结构浏览器/服务器结构16. 现实世界信息世界计算机世界第2章习题参考答案一、选择题1. A2. C3. C4. B5. B6. C7. B8. D9. C 10. A11. B 12. A 13. A 14. D 15. D 16. B 17. C二、填空题1. 选择(选取)2. 交3. 相容(或是同类关系)4. 并差笛卡尔积选择投影5. 并差交笛卡尔积6. 选择投影连接7. σf(R)8. 关系代数关系演算9. 属性10. 同质11. 参照完整性12. 系编号,系名称,电话办公地点13. 元组关系域关系14. 主键外部关系键15. R和S没有公共的属性16. 关系第3章习题参考答案一、选择题1. B2. A3. C4. B5. C6. C7. B 8. D 9. A 10. D 11. C 12. D二、填空题1.结构化查询语言(Structured Query Language)2.数据查询、数据定义、数据操纵、数据控制3.外模式、模式、内模式4.数据库、事务日志5.NULL/NOT NULL、UNIQUE约束、PRIMARY KEY约束、FOREIGNKEY约束、CHECK约束6.聚集索引、非聚集索引7.连接字段8.行数9.定义10.系统权限、对象权限11.基本表、视图12.(1)INSERT INTO S VALUES('990010','李国栋','男',19) (2)INSERT INTO S(No,Name) VALUES('990011', '王大友') (3)UPDATE S SET Name='陈平' WHERE No='990009'(4)DELETE FROM S WHERE No='990008'(5)DELETE FROM S WHERE Name LIKE '陈%' 13.CHAR(8) NOT NULL14.o=o15.ALTER TABLE StudentADDSGrade CHAR(10)第4章习题参考答案一、选择题1. B2. B3. D4. B5. C6. D7. B8. D9. D 10. D11. A 12.C 13.D 14.B 15.B二、填空题1. 超键(或超码)2. 正确完备3. 属性集X的闭包X +函数依赖集F的闭包F +4. 平凡的函数依赖自反性5. {AD→C} φ6. 2NF 3NF BCNF7. 无损连接保持函数依赖8. AB BC BD9. B→φB→B B→C B→BC10. B→C A→D D→C11. AB1NF12. AD2NF13. BCNF14. 包含15. 函数依赖16. BCNF第5章习题参考答案一、选择题1. B2. B3. C4. A5. C6. D7. A8. C9. D 10. D11. B 12. B 13. A 14. D 15. A二、填空题1.安全性控制、完整性控制、并发性控制、数据库恢复2.数据对象、操作类型3.授权粒度、授权表中允许的登记项的范围4.原始数据(或明文)、不可直接识别的格式(或密文)、密文5.事务、原子性、一致性、隔离性、持久性6.丢失更新、污读、不可重读7.封锁、排它型封锁、共享封锁8.利用数据的冗余9.登记日志文件、数据转储10.事务故障、系统故障、介质故障11.海量转储和增量转储12.静态转储和动态转储13.完整性14.登录账号、用户账号15.public16.服务器、数据库第6章习题参考答案一、选择题1. B2. C3. C4. A5. C6. B7. C8. B9. D 10. C11. D 12. B 13. B 14. D 15. B16. B 17. A 18. C二、填空题1.数据库的结构设计、数据库的行为设计2.新奥尔良法3.分析和设计阶段、实现和运行阶段4.需求分析5.概念结构设计6.自顶向下、自底向上7.属性冲突、命名冲突、结构冲突8.逻辑结构设计9.确定物理结构、评价物理结构10.数据库加载11.运行和维护12.物理13.数据字典14.需求分析15.载入第7章习题参考答案一、选择题1. B2.C3.B4.D5.A二、填空题1.局部变量、全局变量2.- -、/*……*/3.DECLARE4.SQL、流程控制5.AFTER 触发器、INSTEAD OF 触发器6.插入表、删除表7.数据库备份、事务日志备份、差异备份、文件和文件组备份8.简单还原、完全还原、批日志还原9.硬盘、磁带、管道10.。
第1章数据库概述1.试说明数据、数据库、数据库管理系统和数据库系统的概念。
答:数据是数据库中存储的基本对象。
数据库:是存放数据的场所。
数据库管理系统:管理数据库数据及其功能的系统软件。
数据库系统:由数据库、数据库管理系统、数据库管理员和数据库应用程序共同构成的系统。
2.数据管理技术的发展主要经历了哪几个阶段?答:文件管理和数据库管理。
3.文件管理方式在管理数据方面有哪些缺陷?答:(1)编写应用程序不方便。
(2)数据冗余不可避免。
(3)应用程序依赖性。
(4)不支持对文件的并发访问。
(5)数据间联系弱。
(6)难以满足不同用户对数据的需求。
4.与文件管理相比,数据库管理有哪些优点?答:(1)相互关联的数据集合;(2)较少的数据冗余;(3)程序与数据相互独立;(4)保证数据的安全可靠;(5)最大限度地保证数据的正确性;(6)数据可以共享并能保证数据的一致性。
5.比较用文件管理和用数据库管理数据的主要区别。
答:文件系统不能提供数据的独立性,也不能提供数据共享、安全性等功能,这些需要客户端编程实现。
而数据库管理系统可以很方便地提供这些功能。
6.在数据库管理方式中,应用程序是否需要关心数据的存储位置和存储结构?为什么?答:不需要。
因为这些都由数据库管理系统来维护。
7.在数据库系统中,数据库的作用是什么?答:数据库是存储数据的仓库,其作用是存储数据。
8.在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据文件吗?答:不可以。
9.数据独立性指的是什么?它能带来哪些好处?答:数据独立性包括逻辑独立性和物理独立性两部分。
物理独立性是指当数据的存储结构发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。
这两个独立性使用户只需关心逻辑层即可,同时增强了应用程序的可维护性。
10.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?答:数据库系统一般包括3个主要部分:数据库、数据库管理系统和应用程序。
数据库的工作原理数据库是一种用于存储和管理大量数据的系统。
它的工作原理是将数据按照特定的结构和组织方式进行存储,以便于快速的检索和处理。
下面将详细介绍数据库的工作原理。
1. 数据库模型:数据库根据数据的结构和关系来建立模型,常见的数据库模型有层次模型、网络模型和关系模型。
其中,关系模型是最常用的数据库模型,它使用表格(也称为关系)来组织和存储数据。
2. 表的创建与管理:在关系型数据库中,数据按照表格的形式进行存储。
表格由列(字段)和行(记录)组成。
在创建表时需要定义每个字段的类型和约束,以确保数据的完整性和一致性。
数据库通过索引来加快数据的检索速度,可以在表中的特定列上创建索引。
3. 数据的增删改查:数据库提供了对数据进行增删改查的操作。
增加数据时,需要使用INSERT语句将数据插入到表中的特定位置。
删除数据时,使用DELETE语句删除表中的记录。
修改数据时,使用UPDATE语句更新表中的记录。
查询数据时,使用SELECT语句从表中检索所需的数据。
4. 数据库事务:事务是数据库中的一组操作,要么全部执行,要么全部不执行。
数据库使用事务来保证数据的完整性和一致性。
事务具有原子性、一致性、隔离性和持久性四个特性。
原子性指事务中的操作要么全部执行,要么全部不执行;一致性指事务执行前后数据库的状态保持一致;隔离性指多个事务并发执行时相互之间不干扰;持久性指一旦事务提交,其结果将永久保存在数据库中。
5. 数据库索引:索引是数据库中数据的一种快速访问结构,可以大大提高数据检索的速度。
索引一般是在表的某个列上创建的,通过存储该列的值和指向实际数据的指针,可以快速定位到需要的数据。
6. 数据库优化:为了提高数据库的性能,可以进行各种优化操作。
例如,在数据库设计阶段,可以根据数据的特点来选择合适的数据库模型和数据类型;创建合适的索引,以提高数据的检索速度;合理设计查询语句,避免全表扫描等低效操作。
综上所述,数据库的工作原理涉及到数据的存储和管理、表的创建与管理、数据的操作、事务的处理、索引的使用以及性能优化等方面。
习题参考答案第1章习题参考答案一、选择题1. C2. B3. D4. C5. D6. B7. A8. B9. D 10. B11. C 12. D 13. D 14. D 15. B16. C 17. D 18. A 19. D 20. A21. D 22. D 23. C 24. A 25. C二、填空题1. 数据库系统阶段2. 关系3. 物理独立性4. 操作系统5. 数据库管理系统(DBMS)6. 一对多7. 独立性8. 完整性控制9. 逻辑独立性10. 关系模型11. 概念结构(逻辑)12. 树有向图二维表嵌套和递归13. 宿主语言(或主语言)14. 数据字典15. 单用户结构主从式结构分布式结构客户/服务器结构浏览器/服务器结构16. 现实世界信息世界计算机世界三、简答题1、简述数据库管理技术发展的三个阶段。
各阶段的特点是什么?答:数据库管理技术经历了人工管理阶段、文件系统阶段和数据库系统阶段。
(1)、人工管理数据的特点:A、数据不保存。
B、系统没有专用的软件对数据进行管理。
C、数据不共享。
D、数据不具有独立性。
(2)、文件系统阶段的特点:A、数据以文件的形式长期保存。
B、由文件系统管理数据。
C、程序与数据之间有一定的独立性。
D、文件的形式已经多样化E、数据具有一定的共享性(3)、数据库系统管理阶段特点:A、数据结构化。
B、数据共享性高、冗余度底。
C、数据独立性高。
D、有统一的数据控制功能。
2、从程序和数据之间的关系来分析文件系统和数据库系统之间的区别和联系答:数据管理的规模日趋增大,数据量急剧增加,文件管理系统已不能适应要求,数据库管理技术为用户提供了更广泛的数据共享和更高的数据独立性,进一步减少了数据的余度,并为用户提供了方便的操作使用接口。
数据库系统对数据的管理方式与文件管理系统不同,它把所有应用程序中使用的数据汇集起来,以记录为单位存储,在数据库管理系统的监督和管理下使用,因此数据库中的数据是集成的,每个用户享用其中的一部分。
第四章 关系规范化1. 设有关系模式R (职工名,项目名,工资,部门号,部门名,部门经理)(职工名,项目名,工资,部门号,部门名,部门经理) 如果规定:如果规定:每个职工可参加多个项目,各领一份工资;每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门经理;每个项目只属于一个部门经理;每个部门只有一个经理。
每个部门只有一个经理。
该模式中,函数依赖关系如下图所示:该模式中,函数依赖关系如下图所示:试回答下列问题:试回答下列问题:(1) 请分析该模式是不是一个好的关系模式?为什么?(5分)分) (2) 试问关系模式R 最高已经达到第几范式?如果该模式不是一个好的模式,试用规范化理论对其进行分解使之达到第三范式。
( 5分)分)参考答案:参考答案: 2、(1) R (职工名,项目名,工资,部门号,部门名,部门经理)不是一个好的关系模式,因为:模式,因为:通过图中关系依赖图可以发现其码为(职工号,项目名)通过图中关系依赖图可以发现其码为(职工号,项目名)① 插入异常插入异常假设职工号为07102,部门号为S1的职工的职工还未还未还未参加项目,参加项目,因项目名是因项目名是主主属性,因此该学生学生的的信息无法插入R 。
② 删除异常删除异常假定某个职工个职工本来本来本来只参加只参加只参加了了项目名为“三建”的一个工的一个工程程。
现在因某种原某种原因,因,他连“他连“三三建”建”工工程也程也不参加不参加不参加了了。
因项目名是。
因项目名是主主属性,此操作将导致此操作将导致该该学生信息学生信息的的职工名项目名工资部门经理部门号部门名整个元组都要删除元组都要删除。
③ 数据冗余度大据冗余度大如果一个职工参加如果一个职工参加了了10个工个工程程,那么他的部门名的部门名称和称和称和部门经理的部门经理的部门经理的值就要重复值就要重复存储了10次。
④ 修改复杂修改复杂例如由于某种原某种原因,因,因,某某职工职工要改变要改变要改变所参所参所参与与的项目,的项目,在修改此在修改此在修改此职工职工职工元组元组元组的项目的项目名的名的同时同时同时,,还可能需要修改能需要修改其部门号,其部门号,部门名部门名称和称和称和部门经理。