考试范围:
第一章
第二章
第三章
第四章SQL
复习题
1. 试述数据管理的发展阶段。
手工管理阶段(50年代中期以前)
文件系统阶段(50年代末-60年代末)
数据库系统阶段(60年代末-至今)
2. 试述数据库系统的三级模式。
DBMS提供数据库定义语言定义数据库结构,包括外模式、模式、内模式及相互之间的映射,定义完整性约束、安全限制等。
数据库内部的模式结构
物理数据独立性:
内模式发生改变时,数据的逻辑结构不变,修改内模式和概念模式之间的映射;
逻辑数据独立性:
概念模式发生改变时,数据库的外模式不变,建立在外模式上的应用程序不需要改变,修改外模式和概念模式之间的映射。
应用访问数据库数据的过程
3试述数据库系统的组成和数据库的用户。
“数据库系统”在大多数时候都是指DBMS。但是严格地来说,数据库系统--DBS是指在计算机系统中引入数据库之后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(DBA--DatabaseAdministrator)和用户构成。即:
DBS = DB + DBMS +APPLICATION + DBA + USER
数据库用户如下:
End Users:naive Userscasual users -----Interactive SQL
Application Programmers-----Procedural SQL,Transaction
Database analyzer and designer-----Data modeling, Normalization theory,
Database Administrators, DBA-----Database maintenance , Security , Integrity,Recovery
Database Management System designer and implementer-----Implementationtechnique of above techniques for Special and New Database Management System
4试述数据库管理系统DBMS的功能。
数据库系统中对数据进行管理的软件,是数据库系统的核心组成部分。
数据库定义:
DBMS提供数据库定义语言定义数据库结构,包括外模式、模式、内模式及相互之间的映射,定义完整性约束、安全限制等;
数据操纵:
提供数据库操作语言实现对数据库的操纵;
数据库运行控制:
数据安全性控制;
数据完整性控制;
并发控制;
数据库恢复机制;
数据库维护:
数据的载入、转储,数据库的重组织、性能监视及分析等。
5 什么是物理数据独立性和逻辑数据独立性?
物理数据独立性:内模式发生改变时,数据的逻辑结构不变,修改内模式和概念模式之间的映射;
•逻辑数据独立性:概念模式发生改变时,数据库的外模式不变,建立在外模式上的应用程序不需要改变,修改外模式和概念模式之间的映射。
6.试描述客户/服务器数据库应用系统典型的两种体系结构和工作方式。
§两层体系结构: E.g.客户端程序通过ODBC/JDBC与数据库交互
§三层体系结构: E.g.基于web的应用,通过中间件构建应用
–把一个应用系统按照逻辑功能分成用户界面、应用表示逻辑、事务逻辑、数据管理等,按照其相对角色的不同区分为客户端和服务器端软件。
–客户软件能够请求服务器软件的服务。客户软件和服务器软件可以分布在网络中不同的计算机节点上,也可以放置在同一台计算机上。
–两层结构、三层结构、多层结构
两层C/S结构的基本工作方式:客户程序运行用户的应用程序,向数据库服务器发送SQL请求,数据库服务器接受客户机的请求,并将处理结果返回客户端。一个客户应用开发语言和一个多用途的用于传送客户请求到服务器的机构是整个两层结构的核心。把SQL语言从客户机传送到服务器上必须能识别服务的标识符或由一个应用程序接口来完成,还必须知道服务器的位置、数据组织形式以及数据如何定义。在服务器中,请求将得到存储逻辑和处理的进一步优化,例如使用权限、完整性、并发控制等。
•客户PC运行数据库应用(界面处理),数据库服务器运行全部或大部分DBMS(数据处理)。服务器运行SQL,将查询结果传送到客户端,减少了网络信息的传输,系统采用数据锁定、事务技术、存储过程等数据库技术保证数据完整一致准确。
三层C/S结构:
•数据库应用的三层C/S结构将应用分成表示部分、应用逻辑(或称商业逻辑)、数据访问部分。三层C/S结构使各部分相互独立并单独实现,分别称为客户、应用服务器和数据库服务器。
•三层C/S结构中数据在发送到网络之前由功能服务器加以过滤,网络流量会减少,另外客户端并不是直接同数据库打交道,而是通过中间层的统一调用来实现,在灵活性和独立性方面较好,适合于不同数据库的互联。
7.分布式数据库的数据存储方式?
•基本特性
–分布性:数据存储在不同场地上。与集中式数据库不同。
–逻辑整体性:数据逻辑上是相互联系的一个整体。与分散在计算机网络不同站点上的一组没有相互联系的本地数据库区别开来。
•定义
–DDBS(DistributedData Base)是一个数据集合,这些数据,分布在计算机网络的不同计算机上,网络中每个结点具有独立处理的能力,可以执行局部应用,同时每个结点也能通过网络通讯支持全局应用。分布式数据库强调场地自治性(局部应用)以及自治场地之间的协作性(全局应用)。“在自治的结点之间协同工作”
数据在分布式数据库的存储途径
–复制系统维护关系的几个完全相同的副本,这些副本存储在不同的结点上。
–分片关系被划分为几个片段,各个片段存储在不同的结点上。分片方式
•水平分片:将关系r按行分为若干子集r1,r2,…,rn,每个子集ri称为一个水平片段。一个水平片段可以看成是关系上的一个选择。
•垂直分片:将关系r按列分为若干属性子集r1,r2,…,rn,每个子集ri称为一个垂直片段。一个垂直片段可以看成是关系上的一个投影。
•导出分片:导出水平分片,分片的条件不是关系本身属性条件,而是其它关系的属性条件。
•混合分片:关系按某种方式分片后,得到的片段再按另一种方式继续分片。
–复制+分片关系被划分为几个片段,系统为每个片段维护几个副本。
8 数据库设计的几个阶段?每个阶段完成的主要的内容和步骤?
⒈需求分析:全面、准确了解用户的实际要求。
⒉概念结构设计:即设计数据库的概念结构。
概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
⒊逻辑结构设计:逻辑结构设计是将抽象的概念结构转换为所选用的DBMS支持的数据模型,并对其进行优化。
⒋数据库物理设计:数据库物理设计是对为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
⒌数据库实施在数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
⒍数据库运行和维护数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
9 关系数据库的实体完整性约束和参照完整性约束?举例说明。
完整性约束规则
候选键:关系模式R(U)的属性集合K是候选键,满足:
(1)R(U)的任何一个关系实例的任意两个元组在属性集合K上的值都不相同;
(2)K的任何真子集都不满足条件(1)。
以上被称为候选键的两性质:唯一性,最小性。
1实体完整性约束:
若A是关系模式R(U)的主键属性,则R(U)的任何一个实例关系不存在任何元组在A上的值为空。
例:Student(NO,Name,Sex,Age,Class,DeptNO),
Course(Cno,Cname,Dept),
S_C(NO,Cno,Grade)
2 关联/参照完整性约束:
外键:关系模式R1包含关系模式R2的主键,这组属性叫做R1参照R2的外键。
设X是关系模式R(U)关于关系模式R’(U’)的外键。如果K是R(U)的关系实例的一个元组的外部键值,则R’(U’)的实例中必存在一个元组T,T在X上的值为K。
例:Student( NO, Name, Sex, Age, Class, DeptNO ) ,
Dept (DeptNO,DeptName)
10 关系数据库的性质?
在关系数据库中的关系有如下性质:
•同一列来自同一个域。
•不同的列可以出自相同的域,必须有不同的属性名。
•不能有完全相同的元组存在。
•关系中元组的顺序无关。
•关系中列的顺序无关。
•每个属性值必须是不可再分的数据项。
11.1NF?2NF?3NF?BCNF?
第一范式
•如果域中元素被认为是不可分的,则域称为是原子的
–非原子域的例子:
•名字集合,复合属性
•象CS101之类的标识号可以分成若干部分
•如果关系模式R的所有属性的域都是原子的,则R称为属于第一范式
•非原子值存储复杂并易导致数据冗余
–E.g. 每个客户的账户集合,以及每个账户的拥有者集合
–我们假定所有关系都属于第一范式
2NF:若R是1NF,且每个非键属性完全依赖于候选键,则称R为2NF(消除非键属性对候选键的部分依赖)。例:关系模式S(SNO,SN,SD,DEAN,CNO,G)(SNO,CNO)为候选键,SNOSN,SNOSD,存在部分依赖,非2NF,则会有以下问题:插入异常:如果学生没有选课,关于他的个人信息及所在系的信息就无法插入。删除异常:如果删除学生的选课信息,则有关他的个人信息及所在的信息也随之删除了。更新异常:如果学生转系,若他选修了k门课,则需要修改k次。数据冗余:如果一个学生选修了k门课,则有关他的所在系的信息重复。可将S分解为:SC(SNO,CNO,G)S_SD(SNO,SN,SD,DEAN)
第三范式
•关系模式R属于第三范式(3NF)当且仅当对所有F+中依赖:下列条件中至少一个成立:
–是平凡的(i.e.,)
–是R的超键
––中的每个属性A包含在R的某个候选键中.(注:各属性可能包含在不同候选键中)或:非主属性既不部分依赖也不传递依赖于R的候选键,则称R是第三范式
12什么是索引?索引的类型?建索引的目的?
索引是一个表中所包含值的列表.索引机制用于加速对所需数据的存取,提高查询效率。两种基本索引:
ê有序索引:搜索键按顺序存储
ê散列索引:搜索键被散列函数一致地分配到若干“桶”中.
有序索引
n有序索引: 索引项按搜索键值的顺序有序存储.
n主索引: 顺序文件的记录顺序正是索引搜索键的顺序.
ê也称为聚簇索引
ê主索引的搜索键通常是主键, 但并非必要.
ê索引顺序文件:带有主索引的顺序文件.
n次级索引:索引搜索键的顺序与文件的记录顺序不同.
ê也称为非聚簇索引
选择索引:目标是确定添加索引是否会改善系统性能。索引选择的一般规则:
•主键的属性一般都要建索引;
•经常用于连接操作的列;
•经常作为最大最小值等聚集函数的参数的属性
•在表中经常按某列的顺序访问记录的列;
•一般,属性值很少、在应用中很少用到、查询频率很低或文件中的记录数很少、小表等情况不用建索引。
索引类型
•主索引(聚集索引)/辅助索引;
•稠密索引/稀疏索引
•唯一索引、非唯一索引
•位图索引
13 什么是聚簇?建聚簇的好处和不好?
为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块称为聚簇.
聚簇的用途
1. 大大提高按聚簇属性进行查询的效率
2. 节省存储空间
•聚簇以后,聚簇码相同的元组集中在一起了,因而聚簇码值不必在每个元组中重复存储,只要在一组中存一次就行了
聚簇的局限性
1. 聚簇只能提高某些特定应用的性能
2. 建立与维护聚簇的开销相当大
•对已有关系建立聚簇,将导致关系中元组移动其物理存储位置,并使此关系上原有的索引无效,必须重建。
•当一个元组的聚簇码改变时,该元组的存储位置也要做相应移动。
14 说明Oracle实例的组成。SGA和后台进程的构成。
15说明Oracle的逻辑存储结构和物理存储结构。
Oracle物理存储结构指Oracle在运行过程中存储数据的操作系统文件
数据文件:存储所有的数据库数据,以及元数据。
日志文件:记录了所有对数据库的修改信息,用于数据库的恢复。数据库的每个实例都有两个或更多个联机重做日志文件。
控制文件:保存对于DBMS操作关键的信息。
参数文件:决定一个实例的特性。
ORACLE逻辑存储结构
•数据库块Block
•范围(区)Extent
•数据库段Segment
•表空间Tablespace
•数据库
•数据库对象:表、视图、索引、簇聚
16现为某一个房地产公司开发其销售管理系统,需要对以下信息和关系进行记录和维护:
(1) 销售部信息.公司有许多销售部分布在不同的城市,销售部的属性包括销售部编号、所在地等;
(2) 每个销售部有一名或多名员工。员工的属性包括员工编号、姓名、性别等,每个员工只能分配到一个销售部工作;
(3) 每个销售部有一名经理,一个经理只能管理他所在的销售部;
(4) 公司要记录房产信息,这些房产的属性包括房产标识、位置等,位置由省、城市、街道、邮编构成;
(5) 销售信息。一个销售部可能销售出多个房产,也可能没有销售出任何一套房产;
(6) 每套房产均有一个或多个拥有者,一个拥有者也可以有一套或多套房产。拥有者的属性包括拥有者编号、姓名、性别等。
对以上要求完成以下内容:
(1) 设计此数据库的E_R图。
(2) 把E_R图转化为关系数据库模式,给出每个关系模式的关键字,要求每个关系模式至少是3NF。
销售部(销售部编号、所在地、经理编号)
销售_员工(销售部编号、员工编号)
员工(员工编号、姓名、性别)
房产(房产标示、省、市、街、邮)
销售地产(销售部编号、地产标示)
拥有者(编号、姓名、性别)
房产_拥有者(编号、房产标示)
17设有一个供应商、零件、工程项目数据库SPJ,并有如下关系,完成一下SQL语句:
S(Sno,Sname,Status,City),分别表示:供应商代码,供应商名,供应商状态,供应商所在城市;
J(Jno, Jname,City),分别表示:工程号,工程名,工程项目所在城市;
P(Pno,Pname,Color, Weight)分别表示:零件代码,零件名称,零件的颜色,零件的重量;
SPJ(Sno, Pno,Jno, Qty)表示供应的情况,由:供应商代码,零件代码,工程号及数量组成;
(1) S1所供应零件的工程号码;
Select Jno From SPJ Where Sno=’S1’
(2) S1供应工程号J3的零件的名称;
Select P.Pname from SPJ,P where SPJ.Pno=P.Pno and SPJ.Sno=’S1’ andSPJ.Jno=’J3’
(3) J3红色零件的北京供应商的名称;
Select S.Sname from J,P,SPJ where J.Sno=SPJ.Sno and SPJ.Pno=P.Pnoand SPJ.Jno=’J3’ AND P.Color=’红色’ and S.City=’北京’
(4) 现有一新工程,工程号是BJ003,工程名是 “学生建筑”,工程项目所在地是北京。供应商代码为gys007的供应商为此工程供应了零件代码为ljdm008的零件数量为10000。把这些数据插入到数据库中。
InsertInto J (Jno, Jname, City) Values(‘BJ003’,‘学生建筑’,’北京’);
InsertInto SPJ(Sno, Pno, Jno, Qty)Values(‘gys007’,’ljdm008’,’BJ003’,10000);
(5) 创建一个视图,包含供应商为项目供应零件的信息,包括:供应商名称、工程名称、零件名称和数量。
CreateView V as SELECT S.Sname,J.Jname,P.Pname,SPJ.Qty from S,J,P,SPJ whereS.Sno=SPJ.Sno And J.Jno=SPJ.Jno and P.Pno = SPJ.Pno
(6) 把供应商“红星公司”的地址改成湖南长沙。
Update S Set City=’湖南长沙’ Where Sname=’红星公司’
18 假设某集团下属多个公司,集团数据库中有一关系模式R表示各公司项目和公司部门项目申请情况:
R(公司编号,项目编号,预算经费,部门编号,负责人)
如果规定:
(1)公司编号都不同,一个公司内部门编号不同,但公司间部门编号有可能相同;
(2)公司内项目编号不同,但不同公司的项目编号有可能相同;
(3)每个公司的每个项目只能由一个部门申请;
(4)每个公司的每个部门只有一个负责人,而一个人可能负责多个部门;
(5)每个公司的每个项目只有一个预算经费。
则:
(1) 写出函数依赖。
(公司编号,项目编号)->部门编号
(公司编号,部门编号)->负责人
(公司编号,项目编号)->预算经费
(2) 给出此关系的候选键。
公司编号,项目编号·
(3) 此关系模式最高属于第几范式?
最高是第二范式,因为存在非候选键的传递依赖的关系
(4) 此关系模式有何异常?如何分解?
1:存在负责人数据冗余
分解:
R(公司编号,项目编号,预算经费,部门编号)
R2(部门编号,负责人)
标签:工程硕士,北邮,数据库,模式,索引,SPJ,编号,数据库系统,属性 From: https://blog.51cto.com/u_15942605/6019948