❶ 高起专数据库技术及应用期末考试综合题第4题。请各路大神施以援手!!!!
1 pai部门编号,职务(sigma姓名=’王小毛’ (员工))
2 pai项目名称,员工姓名(员工|><|项目|><| sigma工时>=100(施工))
3 select 姓名 from 员工 order by 职称 desc
4 select 员工编号, sum(工时) 总工时 from 施工 group by 员工编号
5 select 姓名, 部门名称
from 施工,员工,部门,项目
where 员工.部门编号=部门.部门编号 and 员工.员工编号=施工.员工编号 and 施工.项目编号=项目.项目编号 and 职称='高级工程师' and 预算>100000000
group by 姓名, 部门名称 having count(*)>=1
6 create view 工作量 as
select 员工.员工编号,姓名,项目名称,工时
from 施工,员工,项目
where 员工.员工编号=施工.员工编号 and 施工.项目编号=项目.项目编号
7 update 施工 set 工时=工时+50 where 项目编号 in (select 项目编号 from 项目 where 项目名称='高教新区项目')
❷ 数据库应用技术试题答案
1.1 A 1.2 A 1.3 A 1.4 A 1.5 c 1.6 d 1.7c 1.10 b 1.8 d
1.9 d
1.10 我插到前面了 按照你的顺序哈
❸ 谁有《电子商务数据库技术》的复习资料和练习题啊
第一章
1.电子商务是发生在开放网络上包含企业之间、企业和消费者之间的商业交易(狭义)。广义的定义除电子交易外,还包括利用计算机网络技术进行的全部商业活动。
2.电子商务的类型:1企业经营2网上银行3网上商店和网上购物4网络服务5其他,有关认证,海关税务等部门。
3.电子商务的基本框架:社会环境(公共政策、法律、规则等)、自然科技环境(文档、安全、网络协议的技术标准)和电子商务技术内容构成了电子商务应用平台的三个支柱。
4.基础通信网络是电子商务的硬件基础设施,承担着电子商务传输的任务。数据库承担着对商品信息的存贮、管理、查询、结算和处理等功能。
5.Web与数据库的集成有三种形式:运用Web发布数据,运用Web共享数据,用数据库驱动Web站点。
6.数据仓库是指大量散布在网络数据库中的数据进行组织,使之能形成一个可被检索、搜索、分析和报告的商业信息清单。
7.数据挖掘是指对庞大的历史交易数据进行再分析,以选定目标客户分辨市场定位发现新的商业机会。
8.企业建立电子商务网站的步骤:1选自ISP和ICP2注册域名和选侧接入方式3网页设计制作4创建和维护数据库5整合数据库和网站6在Web上使用数据库。
9.数据库驱动Web站点的核心是网络数据库软件。
10.数据库软件的类型:桌面型,中小型面向对象型,大型分布型,数据仓库型。(包含的种类)
11.电子商务Web站点数据库的特征:1对电子商务运营各个方面确保数据安全2对电子商务交易过程管理3对客户确认已经完成,但由于硬件软件故障而未能执行的交易可以弥补。
12.创建网络数据库的调件:1要符合企业电子商务的需要2能被某个数据库管理系统接受3具有较高的质量,便于维护,理解,效率高。
脚本语言用途:1可以处理用户在表单中输入的数据,编辑,复制他们到隐含域2可以增强界面效果3可以控制表单的提交合生成复杂的URL地址。
第二章数据库系统概论
1.数据库管理的三个阶段:人工管理阶段,文件系统阶段,数据库系统阶段。
2.按照模型发展划分:1第一代数据库管理系统,层次数据库和网状数据库管理系统2第二代数据库管理系统,关系数据库管理系统(RDMS)3第三代数据库管理系统,新一代,面向对象数据库管理系统。
3.数据模型是数据库系统的数学形式框架,是用来描述数据的一组该念和定义包括:数据的静态特征,数据的动态特征,数据的完整约束性。大体可分两类:面向值得数据模型和面向对象的数据模型。
4.在实际应用中,为了更好的描述现实世界中数据的特征,常常针对不同的场合或不同的目的,采用不同的方法描述数据特征,统称为数据模型。有如下几种:1概念数据模型,这是面向数据库用户的相士世界的数据模型,与具体的DBMS无关2逻辑数据模型,这是用户从数据库中所看到的数据模型,是具体的DBMS所支持的数据模型,既要面向用户又要面向系统3物理数据模型,描述数据在存储介质山的组织方式的数据模型,不仅与DBMS有关还和操作系统和硬件有关。
5.现实世界:是指存在于人脑之外的客观世界。
6.概念世界:是现实世界在人们脑中的反映,是对客观事物及其联系的一种抽象描述。
7.实体:我们把客观存在并可以相互区别的事物称为实体。同一类实体的集合称为实体集。属性的集合表征一种实体的类型,称为实体型。
8.属性:属性是用来描述实体的某一方面的特性。属性的具体取值为属性值。
9.实体标志符:如果某个属性或属性集合的值能够唯一的标志出实体集中的每一个实体,则可以选择该属性或属性集合作为实体标志符。
10.联系:实体集之间的对应关系称为联系,它反映现实世界的事物之间的相互关系。分实体内部各属性之间的联系和实体之间的联系。
机器世界:信息经过加工编码而进入机器世界,机器世界处理的对象是数据。
记录:相对应每一实体的数据叫记录。
字段:相对应属性的数据称为字段,或者数据项,又叫数据元素或初等项。
文件:相对应实体集的叫文件,它是同类记录的集合。
记录型:相对应于实体型的叫记录型。
关键字:相应于实体标志符的为关键字,关键字又称外码。
11.E-R模型:E-R图所描述的现实世界的信息结构称为组织模式或企业模式,同时把这种描述结果称为E-R模型。三要素:实体,属性,实体之间的联系。
12.联系抽象后可归结为三种:一对一联系,一对多联系,多对多联系。
13.作实体-联系图(E-R图)的步骤:1确定所有的实体集合2选择实体集应包含的属性3确定实体集之间的联系4确定实体集的关键字,用下划线在属性上表明关键字的属性集合5确定联系的类型,在用线将表示联系的菱形框联系到实体集时,在线旁边注明是1或n来表示联系的类型。
14.层次数据模型就是根据现实世界中存在的层次结构特点而提出的一种数据模型。用树型结构来表示实体之间联系的模型称为层次模型。
15层次模型只能表示一对多关系,引入虚拟记录型和指针转换多对多关系。
16.网状模型:用逻辑记录型来代替实体型。逻辑记录所包括的所有字段的名字及其类型描述了逻辑记录格式,这样一逻辑记录型为节点所形成的有向网络结构称为网状模型。网状模型中给每一个父结点及子节点之间的联系都指定名字,这种联系称为系。
17.关系模型:关系模型是同过表格数据来表示和实现两个实体之间的联系。关系就是二维表格,表格中的每一行称作一个元组,它相当于一个记录值;每一列是一个属性值,列可以命名,称为属性名,属性相当于记录中的数据项或字段值。关系是元组的集合。
18.关系有如下属性:表格中的每一列都是不可再分的基本属性;各列的名字不同,顺序不重要;行的次序无关紧要;关系中部不允许有完全相同的两行存在。.
19.域:域是值的有限集合。关系:笛卡尔积d1*d2*…dn 的任意一个子集称为在d1,d2…dn上的一个关系。用R(d1,d2,…dn)表示,R为关系名。n为关系的度或目。
20.关系模式:我们将关系名及其属性名集合称为关系模式,具体的关系是实例。
21.数据库模式;在支持关系模型的数据中,数据被看作是一个个的关系,描述数据库全部关系的一组关系模式称为关系的数据库模式。任何时刻数据库的所有具体的关系组成关系数据库的一个实例。
22.关系运算:选择σF(R) 投影ПAR 连接RfS
23.数据库系统由五个部分组成:硬件资源(CPU,内存,磁盘),软件资源(操作系统,数据库管理系统,高级编程语言),数据库结构,数据库管理员和用户。
24.数据库管理系统的三级模式结构:用户级数据库,概念几数据库,物理级数据库。
25.用户数据库是用户看到使用的数据库,所以又称用户视图,子模式,外模式,用户模式等。
26.概念级数据库是DBA(数据库管理员)看到的数据库,因此也称DBA视图,又称为模式。
27.物理级数据库又称为存储模式,内模式,是数据库管理系统内部的表示,即对数据的物理结构和方式的描述。
28.为了保证数据库能够高效正常的运行,一般大型数据库都设有专门人员负责数据库管理系统的管理工作,这种专门的人员成为数据库管理人员(DBA)。主要职责:1负责数据库核心及其开发工具的安装及升级2为数据库管理系统分配存储空间并规划未来的存储要求3协助开发者建立基本的对象(表、视图、索引)4负责注册用户并维护系统的安全性5负责数据库管理系统的备份和恢复。
29.数据库管理系统用户分:最终用户和专业用户即应用程序员。
30.数据库管理系统是对数据库定义、管理、维护和检索的一组软件。其功能如下:1存储数据2创建并维护数据结构3允许多用户并发访问4加强安全性和保密性5允许提取和操作已存储的数据6实现数据录入和数据加载7提供不同记录的一致性8提供对指定数据快速提取的高效索引机制。
31.数据库管理系统必须提供数据的安全性、并发性、完整性、数据备份、数据恢复等数据保护能力以保证数据库中数据的安全可靠和正确性。为此需要建立数据库保护机制,用于以阻止一切物理破坏和读写破坏,并能以最快的速度使其恢复工作。
32.数据库的安全性主要是指保护数据库,防止因用户非法使用数据库造成数据泄密、更改或破坏。保证安全性关键是控制和识别。
33.用户操作数据库中的数据至少三层安全防线:1操作系统的安全保护机制2数据库管理系统的安全保护机制3数据库中的安全防护机制a用户标示和鉴定b存取控制c视图d数据加密e数据库审计。
34.数据库的完整约束性是指数据的正确性、相容性和一致性,即防止不符合语义的错误数据输入和输出,同时还要使存储在不同副本中的同一数据保持一致协调,使数据之间的结构不受破坏。
35.数据完整约束条件分类:1属性值的约束和联系的约束a属性值的约束是对一个列的取值的说明b关于数据之间的联系约束,在关系数据库中指多个属性或多个元组之间的联系的约束2静态约束和动态约束3立即执行约束和延迟执行约束。
36.完整性约束方法分两类:隐含约束方法和显式约束方法(a采用断言说明句b采用CHECK子句或constraint 子句c采用数据库触发器d将完整性约束的说明和检查任务交给应用程序)。
37.并发控制的基本单位是事务。
38.并发控制所带来的数据不一致分三类:丢失数据,不可重读数据和读“脏”数据。
39.并发控制的基本思想:当一个应用程序对数据库的某一部分执行修改操作时,对该部分数据实行封锁,拒绝其他用户对该部分的并发访问控制要求,直到该事务执行完毕(正常结束或撤销)。
40.并发控制的策略包括:封锁单位大小的确定、死锁的预防、检测和解除。
41.分布式数据库系统是在两台或多台地理上或物理上分散而逻辑上集中的数据库系统,管理这样的数据库系统的软件称为分布式数据库管理系统(DDBMS)。
42.面向对象(OO)数据模型比传统模型优势:1具有表示和构造复杂对象的能力2通过封装和消息隐藏技术提供了程序的模块化机制3继承和类层次技术不仅能表示is-a,还提供了软件重用机制4通过滞后联编等概念提供系统扩充能力5提供与宿主语言的无缝连接。
43.能够管理数值、文件、表格、图形、图像、声音等多媒体的数据库称为多媒体数据库(MDB)。
44.管理应用方式:1基于关系模型,加以扩充,使之支持多媒体数据库类型2基于OO模型来实现对多媒体信息的描述和操作3基于超文本模型。
45.多媒体数据库的特殊功能:1支持图像、声音、动画等多媒体字段和用户自定义字段2支持长数据和非长数据的集成管理3支持复杂的实体表示4有保证完整性和一致性机制5支持同一实体多种表现形式6具有良好的用户界面7至此多媒体的特殊查询和良好的接口处理8支持分布式环境。
46.多媒体数据库关键技术:1数据模型技术2数据存储管理和压缩解压技术3多媒体再现和良好的用户界面技术4多媒体信息检索和查询及其他处理技术5分布式环境与并行处理技术。
第三章数据库设计基础
1.数据库设计的基本问题是如何建立一个良好的数据库模式,亦即给出一组数据,如何构造一个合适于他们的数据模式,无论是存储还是操纵反面都有较好的性能。
2.关系数据库设计理论主要包括:函数依赖、范式和模式设计方法。
数据库问题:数据冗余、更新异常、插入异常、删除异常。
3.规范化的目的:1把关系中的每一个数据项转换成一个不可再分的基本项2消除冗余,并使关系的检索简化3消除数据在插入、修改、删除时的异常情况4关系模型灵活,易于使用非过程化的高级查询语言进行查询。
4.函数依赖:设R(A1A2A)是关系U={A1A2A}是R的所有属性集合,X、Y、Z分别是R的属性子集
1若对于R中的X的任何一个具体值,Y仅有唯一的具体值与之相对应,则称R的属性Y函数依赖于属性X,记作X→Y,X称为决定因素。
如果X→Y,且Y不是X的子集,则称X→Y是非平凡的函数依赖。
2若在R中,如果属性集Y函数依赖于属性集X,且不与X的任何真子集函数依赖,则称Y完全依赖于X记作Xf→Y,否则称Y部分依赖于X,记作Xp→Y
3在R中对于属性子集X、Y、Z,若Xf→Y,Y→Z,则称Z对X传递函数依赖,记作Xt→Z。
关键字(码):4在R中,设K是U的属性或属性集合。如果Kf→U,则称K是关系R的一个后选关键字。若R中有一个以上的关键字,则选定其中一个作为主关键字(主码),如果K是属性集合,则称为组合关键字或合成关键字。
5.包含在任意一个候选字中的属性,称为主属性,不包含在任何候选关键字中的属性称为非主属性。
6.若关系的全部属性作为关键字,则称为完全关键字。此时无非主属性。
后选关键字的两个性质:a标识的唯一性b无冗余性。
5在关系R中,若属性或属性集合X不是R的关键字,但X是其他关系中的关键字,则称X是关系R的外关键字或外码。
6在关系R中,XYZ是属性集合,且Z=U-X-Y,多值依赖X→→Y成立当且仅当对R中给定的一对(X,Z)值有一组Y的值与之对应,这组值决定于X值二与Z值无关。关系模式中至少存在三个属性,才有可能存在多值依赖。
7.第一范式(1NF):如果关系R的每一个属性的值为不可分离的原子值,即每个属性都是不可再分的基本数据项,则R是第一范式记作R∈1NF。
8.第二范式:如果关系R∈1NF,且R中的每一非主属性完全函数依赖于主关键字,则R是第二范式,记作R∈2NF。
9.第三范式:如果R∈2NF,而且它的任何一个非主属性都不传递依赖于任何主关键字,则R是第三范式,记作R∈3NF。
10.BCNF:如果关系R∈3NF,X,Y∈U,若,且Y∈/U时,X必含有码,则R是BCNF,记作R∈2NF。满足BCNF的关系模式:a非主属性对关键字完全函数依赖b主属性对不包含它的关键字完全函数依赖c没有属性完全函数依赖于一组非主属性。
11.第四范式:如果关系模式R∈BCNF,若X→→Y(Y∈/X)是平凡多值依赖,且X含有码,则称R是第四范式,记作R∈4NF.
12.规范化的小结:
目的:规范化的目的是使结构合理,清除存储异常并使数据冗余尽量小,便于插入、删除和更新。
原则:遵从概念单一化“一事一地”原则,即一个关系模式描述一个实体或实体间的一种联系。规范化的实质是概念单一化。
方法:将关系模式投影分解成两个或两个以上的关系模式。
要求:分解后的关系模式集合应当与原关系模式等价,即经过自然联结可恢复原关系而不丢失信息,并保持属性间的合理联系。
13.E-R模型转换为关系模型的规则:1E-R图中的每个实体集,都相应的转换成一个关系,实体集的名字就作为关系的名字,实体集的属性就作为关系的属性,实体集的关键字作为关系的关键字。2对于E-R图中联系,一个联系转化为一个关系,练习的名称作为关系的名称,联系的属性作为关系的属性,所有参加联系的实体集的关键字也作为关系的属性,关系的属性有联系的类型决定。
第四章 面向对象数据可设计
1.OO中对象的定义:对象是一些属性(属性值刻画了一个对象的状态)及专用服务的封装体,是问题空间中一些东西的抽象。
2.类和事例:具有相同结构和相同行为的对象被组合在同一类中,这是一种抽象类型的表示,称为类。任何单个对象都是某个类的实例。
3.消息:对象的存取或使用都是通过一种方式来实现的,即发送消息。
4.继承:继承是指对象继承了它所在的类的结构、操作和约束,也指一个类继承另一个类的结构、操作和约束,可以说继承体现了一种共享机制。
5.一个合格的面向对象的数据库管理系统应具备的性质和特征:1必备的:是指面向对象的数据库管理系统所必须满足的特征。它们是复杂对象、对象标识、封装型、类、继承性及迟后绑定虫灾、可扩充性、计算完备性、持久性、辅存管理、并发性、恢复和即席查询功能。2可选类:是指为了使系统更加完善可添加的功能。分别是多继承性类型检查和推理分布设计事务处理和版本。3开放的:是设计人员可以选择的特征。分别是程序设计范例、表示系统、类型系统及单一性。
6.对象关系数据数据库管理系统必须具备的特征:1允许基本类型扩充2支持复杂对象管理3支持结构,数据和函数的继承、包括多重继承4对产生规则的支持。
7.集中式结构,所有资源(数据)和处理(程序)都在一台称为主机的计算机上完成,用户输入的信息通过客户机终端传导主机上。
文件服务器系统结构中,应用程序在客户工作站上运行,而不是在文件服务器上运行,文件服务器只提供资源的集中式管理和访问路径。
8.两层客户机/服务器结构
客户机:从其他计算机中读取数据,经过加工处理后将数据存储到原来提供数据的计算机中的计算机。
服务器:向其他计算机提供数据的计算机。
客户机/服务器有三个基本组成部分:客户机、服务器、客户机与服务器的连接。
9.客户机是一个面向最终用户的接口或应用程序。
10.服务器的主要功能是建立进程和网络服务地址,监听用户的调用,处理客户的请求,将结果交给客户机和释放与客户机的连接。
客户机与服务器之间的连接时通过网络连接实现的。
11.客户/服务的关键在于任务的划分,一般的客户完成用户接口任务,主要是输入/输出和任务提交;服务器则主要完成数据的存储、访问和复杂的计算任务;连接件主要完成客户和服务取得数据交换。
12.三层结构:客户机、应用服务器和数据服务器。
13.客户机上只需要安装应用程序,负责处理与用户的交互和与应用程序的交互。
14.应用服务器负责处理应用逻辑,即接受客户机方应用程序的请求,然后根据应用逻辑将这个请求转化为数据库请求后与数据库服务器进行交互,并将与数据库服务器交互的结果传送给客户机方的应用程序。
15.数据服务器软件根据应用服务器发送的请求,进行数据库操作,并将操作结果传送给应用服务器。
16.应用逻辑被所有用户共享是两层结构和三层应用软件的最大区别。中间层即应用服务器是整个系统的核心,它必须具有处理系统的具体应用的能力,并提供事务处理、安全控制以及满足不同数量客户机的请求而进行性能调整的能力。
17.三层结构应用软件开发系统优点明显:1整个系统被分为不同的逻辑块,层次非常清晰2能够使肥客户机办成瘦客户机3开发和管理的时间向服务器方转移,使得分布数据处理成为可能4管理和维护变得相对简单。另外引进三层机构体系,客户机便可省去与数据库系统直接互动的麻烦。
18.数据库管理系统的实现技术
采用存储过程技术的好处如下:1高性能2共享性3简化了应用开发过程,提高了应用开发效率4简化了安全控制。
19.分布是数据库管理技术:1数据复制和分布2两个阶段提交a协调者询问各个参与者能否提交该事务,并等待他们的回答b各参与者根据收到协调者所做的决定进行事务处理或回滚,并向协调者作出答复。协调者在收到所有应答后,该事务结束。
第五章 sql
1.Sql 数据库的数据体系是三级结构。关系模式(模式)称为基本表,存储模式(内模式)称为存储文件,子模式(外模式)称为视图,元组称为行,属性成为列。
2.Sql的组成:一个Sql 数据可是表的集合;表有行构成,行是列的集合;一个表或者是基本表或者是视图;一个基本表可以跨一个或多个存储文件,一个存储文件可存一个或多个基本表;用户可以操作基本表也可以操作视图;SQL用户可以是应用程序,也可以是终端用户。
3.SQL组成:数据定义(DDL,定义数据库的逻辑结构,包括定义数据库,基本表,视图和索引四个部分。)
数据操作:DML包括查询和更新(插入,删除,更新)。
数据控制:基本表和视图的授权,完整性规则的描述,事物控制语句。
4.嵌入语言的使用规定:规定SQL在宿主语言的程序中的使用规则。
SQL语言优点:非过程化语言,统一的语言,所有关系数据库的公共语言。
5.数据字典是关于数据描述的信息的一个特殊数据库。包含每一个数据类型的名字,意义,描述,来源,格式,用途以及与其他数据的联系等数据,这类数据成为元数据。因而数据字典又称与数据库。
数据字典库的数据类型:数据项,组项,记录,文件,外模式,概念模式,内模式,用户应用程序,存取口令,安全性要求,完整性要求,映像等。
6.DD/D(数据字典/目录)的用途:1是系统分析员,数据库设计人员的得力助手2是协助DBA管理数据库的有力工具3支持DBMS4帮助应用程序员和终端用户更好的使用数据库。
7.SQL server 备份类型:数据库备份;事务日志备份;差异备份;文件和文件组备份。
8.数据库恢复模式:简单恢复;完全恢复;批日志恢复。
Truncate table tablename
Numeric distinct identity grant revoke commit rollback column
Use master
Exec sp_admpdevice ‘tape’ ,”tape2’, ‘\\.tape0’
foreign key reference
9.通用网关接口CGI就是Web服务器与一个外部程序(又称CGI程序)进行通信的协议接口,这个接口协议规定了Web服务器与CGI程序传送消息的格式,信息的内容和格式,同时也规定了CGI程序返回信息的内容和输出标准。在Web页面中,主要通过超链接或者指定表格和图形的方法来执行CGI程序。
10.在网络服务器上,通常许多程序,用来完成不同的任务,在技术上网络服务器上的这些程序统称为CGI程序。
11.ODBC具有最大的互操作性,可以使用一个单独的程序来提取数据可信息,在提供一种方法让应用程序读取数据。一个应用程序可以存取不同的数据库管理系统,而应用程序不必和DBMS绑在一起进行编译,连接,运行,而只要在应用程序中通过选择一个叫做数据库驱动程序的模块就可以把应用程序和所选的ODBCl连接在一起。
12.ODBC组件:应用程序,驱动程序管理器,驱动程序,数据源。
13.ODBC的两个基本用途:1在电子商务实际过程中,涉及企业,客户,银行海关,运输和保险等部门和单位,他们的应用平台不一致,需要同时访问多种异构数据库。使用ODBC技术,设计人员只需要编写一个程序版本,即可以方问任何数据库,从而使程序具有更好的兼容性和适应性。2有些应用程序需要防问某种数据库,就要求程序所在的计算机安装相应的数据库软件。数据库软件有的庞大,加之很多单机版要与Web互联,为此ODBC 提供了一批常用数据库软件驱动程序,这样,计算机上即使没有安装相应的数据库管理系统,但只要安装了相应的驱动程序,CGI程序就可以防问。应用程序不必关心ODBC与DBMS之间的底层通信协议。
第七章 MYSQL
1.恢复root口令:1停止Mysqld server 服务,在任务管理器中终止MySQL进程。2使用—skop-grant-tables参数启动mysqld.3使用mysql –h –hostname mysql 命令登陆到mysql server,用grant 命令改变口令;也可以这样:mysqladmin –h hostname –u user –passwordnew password 。4载入权限表:mysqladmin –h hostname flush-privileges,或使用SQL 命令FLUSH Privileges(当然也可以重启Mysql)。 Mysqlmp
2.优化操作系统:不要交换区,不要使用NFS磁盘,增加系统和Mysql服务器的打开文件数量,增加系统进程和线程的数量,使用支持大文件的文件系统,使用合适的文件系统。
第八章 ORACLE
1.Oracle数据库的突出优点:1支持大数据库,多用户的高性能的事务处理2Oracle遵守数据存取语言,操作系统,用户接口和网络通信协议的工业标准3实施安全性和完整性控制4支持分式数据库和分布处理5具有可移植性,可兼容性和可连接性。
2.Oracle 三种访问数据库的方法;1用SQL*Plus,他用SQL命令以交互的应用程序访问数据库2用第四代语言应用开发工具的应用程序访问数据库,SQL*Froms,sql*reportwriter,sql*menu 等,3用第三代语言嵌入的Sql语言或Oracle库函数调用来访问。Prol*C。
数据保护也称数据控制主要包括数据库的完整性控制,安全性控制,并发控制和恢复。
3.Oracle用下列机制管理数据库的安全性:存取机制,特权(对象特权,系统特权)和角色,审计(语句审计,特权审计,对象审计)
数据库不一致类型: 不一致性,不可重读性,读脏数据,丢失更改,破坏DDL操作。
4.封锁:数据封锁,DDL封锁,内部封锁。
5.Oracle使用的结构,当发生故障时保护数据:数据库后备(完全后备,部分后备),日志(在线日志,归档日志),回滚段和控制文件。
6.Oracle数据库的三种标准备份方法:导出/导入(逻辑备份),冷备份和热备份(物理备份)。
Exec sql begin declare section
….
Exec sql end declare section;
Exec sql include sqlca ;
Exec sql connect : 用户名
Indentified by : 口令
定义游标
Exec sql declare 游标名 cursor for
Select 列
From 表;
打开游标
Exec sql open 游标名;
取数据
Exec sql fetch 游标名 into : 变量2,变量3 ..;
关闭游标
Exec sql close 游标名;
❹ 2011年9月计算机三级数据库技术试题答案
选择题:DCCBD BCBBD BBAAB BDCAA
BCABA CBCDC BDCBB ADDDD
BBCDA BADDD BCCBD BCBCD
数据库填空题
1、源程序
2、ADSL
3、1
4、m/2
5、200
6、进程控制块
7、空间
8、当前
9、DBTG
10、用户自
11、关系
12、对象—关系
13、排他锁
14、日志
15、对象
16、二进制数据文件
17、BCNF
18、函数依赖
19、维表
20、数据准备
百分之九十以上的正确率吧
❺ 数据库选择题。
11 C 12 B 13 A 14 C 15 D
16 D 17 D 18 B 19 D 20 A
21 D 22 A 23 D 24 C 25 B
打字不易,如满意,望采纳。
❻ 两个数据库技术及应用试题
创建数据库
选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。
在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点
右键单击【数据库】节点,从弹出来的快捷菜单中选择【新建数据库】命令。
执行上述操作后,会弹出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,
在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。
在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。
在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。
切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。
切换到【文件组】页,在这里可以添加或删除文件组。
完成以上操作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。
❼ 计算机三级——数据库技术选择题
7次
内存中的数据 缺页次数
最后的被覆盖
2 1
3,2 2
2,3
1,2,3 3
5,1,2 4
2,5,1
4,2,5 5
5,4,2
3,5,4 6
2,3,5 7
5,2,3
2,5,3
❽ 求数据库应用题
数据库语言的目标
要说清这个目标,先要理解数据库是做什么的。
数据库这个软件,名字中有个“库”字,会让人觉得它主要是为了存储的。其实不然,数据库实现的重要功能有两条:计算、事务!也就是我们常说的 OLAP 和 OLTP,数据库的存储都是为这两件事服务的,单纯的存储并不是数据库的目标。
我们知道,SQL 是目前数据库的主流语言。那么,用 SQL 做这两件事是不是很方便呢?
事务类功能主要解决数据在写入和读出时要保持的一致性,实现这件事的难度并不小,但对于应用程序的接口却非常简单,用于操纵数据库读写的代码也很简单。如果假定目前关系数据库的逻辑存储模式是合理的(也就是用数据表和记录来存储数据,其合理性与否是另一个复杂问题,不在这里展开了),那么 SQL 在描述事务类功能时没什么大问题,因为并不需要描述多复杂的动作,复杂性都在数据库内部解决了。
但计算类功能却不一样了。
这里说的计算是个更广泛的概念,并不只是简单的加加减减,查找、关联都可以看成是某种计算。
什么样的计算体系才算好呢?
还是两条:写着简单、跑得快。
写着简单,很好理解,就是让程序员很快能写出来代码来,这样单位时间内可以完成更多的工作;跑得快就更容易理解,我们当然希望更短时间内获得计算结果。
其实 SQL 中的 Q 就是查询的意思,发明它的初衷主要是为了做查询(也就是计算),这才是 SQL 的主要目标。然而,SQL 在描述计算任务时,却很难说是很胜任的。
SQL为什么不行
先看写着简单的问题。
SQL 写出来很象英语,有些查询可以当英语来读和写(网上多得很,就不举例了),这应当算是满足写着简单这一条了吧。
且慢!我们在教科书上看到的 SQL 经常只有两三行,这些 SQL 确实算是写着简单的,但如果我们尝试一些稍复杂化的问题呢?
这是一个其实还不算很复杂的例子:计算一支股票最长连续上涨了多少天?用 SQL 写出来是这样的:
- selectmax(consecutive_day)from(selectcount(*) (consecutive_dayfrom(selectsum(rise_mark) over(orderbytrade_date) days_no_gainfrom(selecttrade_date,case when closing_price>lag(closing_price) over(order by trade_date)then 0 else 1 END rise_markfrom stock_price ) )group by days\_no\_gain)
- SELECTTOP 10x FROMT ORDERBYx DESC
- stock_price.sort(trade_date).group@o(closing_price
- T.groups(;top(-10,x))
这个语句的工作原理就不解释了,反正有点绕,同学们可以自己尝试一下。
这是润乾公司的招聘考题,通过率不足 20%;因为太难,后来被改成另一种方式:把 SQL 语句写出来让应聘者解释它在算什么,通过率依然不高。
这说明什么?说明情况稍有复杂,SQL 就变得即难懂又难写!
再看跑得快的问题,还是一个经常拿出来的简单例子:1 亿条数据中取前 10 名。这个任务用 SQL 写出来并不复杂:
但是,这个语句对应的执行逻辑是先对所有数据进行大排序,然后再取出前 10 个,后面的不要了。大家知道,排序是一个很慢的动作,会多次遍历数据,如果数据量大到内存装不下,那还需要外存做缓存,性能还会进一步急剧下降。如果严格按这句 SQL 体现的逻辑去执行,这个运算无论如何是跑不快的。然而,很多程序员都知道这个运算并不需要大排序,也用不着外存缓存,一次遍历用一点点内存就可以完成,也就是存在更高性能的算法。可惜的是,用 SQL 却写不出这样的算法,只能寄希望于数据库的优化器足够聪明,能把这句 SQL 转换成高性能算法执行,但情况复杂时数据库的优化器也未必靠谱。
看样子,SQL 在这两方面做得都不够好。这两个并不复杂的问题都是这样,现实中数千行的 SQL 代码中,这种难写且跑不快的情况比比皆是。
为什么 SQL 不行呢?
要回答这个问题,我们要分析一下用程序代码实现计算到底是在干什么。
本质上讲,编写程序的过程,就是把解决问题的思路翻译成计算机可执行的精确化形式语言的过程。举例来说,就象小学生解应用题,分析问题想出解法之后,还要列出四则运算表达式。用程序计算也是一样,不仅要想出解决问题的方法,还要把解法翻译成计算机能理解执行的动作才算完成。
用于描述计算方法的形式语言,其核心在于所采用的代数体系。所谓代数体系,简单说就是一些数据类型和其上的运算规则,比如小学学到的算术,就是整数和加减乘除运算。有了这套东西,我们就能把想做的运算用这个代数体系约定的符号写出来,也就是代码,然后计算机就可以执行了。
如果这个代数体系设计时考虑不周到,提供的数据类型和运算不方便,那就会导致描述算法非常困难。这时候会发生一个怪现象:翻译解法到代码的难度远远超过解决问题本身。
举个例子,我们从小学习用阿拉伯数字做日常计算,做加减乘除都很方便,所有人都天经地义认为数值运算就该是这样的。其实未必!估计很多人都知道还有一种叫做罗马数字的东西,你知道用罗马数字该怎么做加减乘除吗?古罗马人又是如何上街买菜的?
代码难写很大程度是代数的问题。
再看跑不快的原因。
软件没办法改变硬件的性能,CPU 和硬盘该多快就是多快。不过,我们可以设计出低复杂度的算法,也就是计算量更小的算法,这样计算机执行的动作变少,自然也就会快了。但是,光想出算法还不够,还要把这个算法用某种形式语言写得出来才行,否则计算机不会执行。而且,写起来还要比较简单,都要写很长很麻烦,也没有人会去用。所以呢,对于程序来讲,跑得快和写着简单其实是同一个问题,背后还是这个形式语言采用的代数的问题。如果这个代数不好,就会导致高性能算法很难实现甚至实现不了,也就没办法跑得快了。就象上面说的,用 SQL 写不出我们期望的小内存单次遍历算法,能不能跑得快就只能寄希望于优化器。
我们再做个类比:
上过小学的同学大概都知道高斯计算 1+2+3+…+100 的小故事。普通人就是一步步地硬加 100 次,高斯小朋友很聪明,发现 1+100=101、2+99=101、…、50+51=101,结果是 50 乘 101,很快算完回家午饭了。
听过这个故事,我们都会感慨高斯很聪明,能想到这么巧妙的办法,即简单又迅速。这没有错,但是,大家容易忽略一点:在高斯的时代,人类的算术体系(也是一个代数)中已经有了乘法!象前面所说,我们从小学习四则运算,会觉得乘法是理所当然的,然而并不是!乘法是后于加法被发明出来的。如果高斯的年代还没有乘法,即使有聪明的高斯,也没办法快速解决这个问题。
目前主流数据库是关系数据库,之所以这么叫,是因为它的数学基础被称为关系代数,SQL 也就是关系代数理论上发展出来的形式语言。
现在我们能回答,为什么 SQL 在期望的两个方面做得不够好?问题出在关系代数上,关系代数就像一个只有加法还没发明乘法的算术体系,很多事做不好是必然的。
关系代数已经发明五十年了,五十年前的应用需求以及硬件环境,和今天比的差异是很巨大了,继续延用五十年前的理论来解决今天的问题,听着就感觉太陈旧了?然而现实就是这样,由于存量用户太多,而且也还没有成熟的新技术出现,基于关系代数的 SQL,今天仍然是最重要的数据库语言。虽然这几十年来也有一些改进完善,但根子并没有变,面对当代的复杂需求和硬件环境,SQL 不胜任也是情理之中的事。
而且,不幸的是,这个问题是理论上的,在工程上无论如何优化也无济于事,只能有限改善,不能根除。不过,绝大部分的数据库开发者并不会想到这一层,或者说为了照顾存量用户的兼容性,也没打算想到这一层。于是,主流数据库界一直在这个圈圈里打转转。
SPL为什么能行
那么该怎样让计算写着更简单、跑得更快呢?
发明新的代数!有“乘法”的代数。在其基础上再设计新的语言。
这就是 SPL 的由来。它的理论基础不再是关系代数,称为离散数据集。基于这个新代数设计的形式语言,起名为SPL(Structured Process Language)。
SPL 针对 SQL 的不足(更确切地说法是,离散数据集针对关系代数的各种缺陷)进行了革新。SPL 重新定义了并扩展许多结构化数据中的运算,增加了离散性、强化了有序计算、实现了彻底的集合化、支持对象引用、提倡分步运算。
限于篇幅,这里不能介绍 SPL(离散数据集)的全貌。我们在这里列举 SPL(离散数据集)针对 SQL(关系代数)的部分差异化改进:
游离记录
离散数据集中的记录是一种基本数据类型,它可以不依赖于数据表而独立存在。数据表是记录构成的集合,而构成某个数据表的记录还可以用于构成其它数据表。比如过滤运算就是用原数据表中满足条件的记录构成新数据表,这样,无论空间占用还是运算性能都更有优势。
关系代数没有可运算的数据类型来表示记录,单记录实际上是只有一行的数据表,不同数据表中的记录也不能共享。比如,过滤运算时会复制出新记录来构成新数据表,空间和时间成本都变大。
特别地,因为有游离记录,离散数据集允许记录的字段取值是某个记录,这样可以更方便地实现外键连接。
有序性
关系代数是基于无序集合设计的,集合成员没有序号的概念,也没有提供定位计算以及相邻引用的机制。SQL 实践时在工程上做了一些局部完善,使得现代 SQL 能方便地进行一部分有序运算。
离散数据集中的集合是有序的,集合成员都有序号的概念,可以用序号访问成员,并定义了定位运算以返回成员在集合中的序号。离散数据集提供了符号以在集合运算中实现相邻引用,并支持针对集合中某个序号位置进行计算。
有序运算很常见,却一直是 SQL 的困难问题,即使在有了窗口函数后仍然很繁琐。SPL 则大大改善了这个局面,前面那个股票上涨的例子就能说明问题。
离散性与集合化
关系代数中定义了丰富的集合运算,即能将集合作为整体参加运算,比如聚合、分组等。这是 SQL 比 Java 等高级语言更为方便的地方。
但关系代数的离散性非常差,没有游离记录。而 Java 等高级语言在这方面则没有问题。
离散数据集则相当于将离散性和集合化结合起来了,既有集合数据类型及相关的运算,也有集合成员游离在集合之外单独运算或再组成其它集合。可以说 SPL 集中了 SQL 和 Java 两者的优势。
有序运算是典型的离散性与集合化的结合场景。次序的概念只有在集合中才有意义,单个成员无所谓次序,这里体现了集合化;而有序计算又需要针对某个成员及其相邻成员进行计算,需要离散性。
在离散性的支持下才能获得更彻底的集合化,才能解决诸如有序计算类型的问题。
离散数据集是即有离散性又有集合化的代数体系,关系代数只有集合化。
分组理解
分组运算的本意是将一个大集合按某种规则拆成若干个子集合,关系代数中没有数据类型能够表示集合的集合,于是强迫在分组后做聚合运算。
离散数据集中允许集合的集合,可以表示合理的分组运算结果,分组和分组后的聚合被拆分成相互独立的两步运算,这样可以针对分组子集再进行更复杂的运算。
关系代数中只有一种等值分组,即按分组键值划分集合,等值分组是个完全划分。
离散数据集认为任何拆分大集合的方法都是分组运算,除了常规的等值分组外,还提供了与有序性结合的有序分组,以及可能得到不完全划分结果的对位分组。
聚合理解
关系代数中没有显式的集合数据类型,聚合计算的结果都是单值,分组后的聚合运算也是这样,只有 SUM、COUNT、MAX、MIN 等几种。特别地,关系代数无法把 TOPN 运算看成是聚合,针对全集的 TOPN 只能在输出结果集时排序后取前 N 条,而针对分组子集则很难做到 TOPN,需要转变思路拼出序号才能完成。
离散数据集提倡普遍集合,聚合运算的结果不一定是单值,仍然可能是个集合。在离散数据集中,TOPN 运算和 SUM、COUNT 这些是地位等同的,即可以针对全集也可以针对分组子集。
SPL 把 TOPN 理解成聚合运算后,在工程实现时还可以避免全量数据的排序,从而获得高性能。而 SQL 的 TOPN 总是伴随 ORDER BY 动作,理论上需要大排序才能实现,需要寄希望于数据库在工程实现时做优化。
有序支持的高性能
离散数据集特别强调有序集合,利用有序的特征可以实施很多高性能算法。这是基于无序集合的关系代数无能为力的,只能寄希望于工程上的优化。
下面是部分利用有序特征后可以实施的低复杂度运算:
1) 数据表对主键有序,相当于天然有一个索引。对键字段的过滤经常可以快速定位,以减少外存遍历量。随机按键值取数时也可以用二分法定位,在同时针对多个键值取数时还能重复利用索引信息。
2) 通常的分组运算是用 HASH 算法实现的,如果我们确定地知道数据对分组键值有序,则可以只做相邻对比,避免计算 HASH 值,也不会有 HASH 冲突的问题,而且非常容易并行。
3) 数据表对键有序,两个大表之间对位连接可以执行更高性能的归并算法,只要对数据遍历一次,不必缓存,对内存占用很小;而传统的 HASH 值分堆方法不仅比较复杂度高,需要较大内存并做外部缓存,还可能因 HASH 函数不当而造成二次 HASH 再缓存。
4) 大表作为外键表的连接。事实表小时,可以利用外键表有序,快速从中取出关联键值对应的数据实现连接,不需要做 HASH 分堆动作。事实表也很大时,可以将外键表用分位点分成多个逻辑段,再将事实表按逻辑段进行分堆,这样只需要对一个表做分堆,而且分堆过程中不会出现 HASH 分堆时的可能出现的二次分堆,计算复杂度能大幅下降。
其中 3 和 4 利用了离散数据集对连接运算的改造,如果仍然延用关系代数的定义(可能产生多对多),则很难实现这种低复杂的算法。
除了理论上的差异, SPL 还有许多工程层面的优势,比如更易于编写并行代码、大内存预关联提高外键连接性能等、特有的列存机制以支持随意分段并行等。
再把前面的问题用 SPL 重写一遍有个直接感受。
一支股票最长连续上涨多少天:
计算思路和前面的 SQL 相同,但因为引入了有序性后,表达起来容易多了,不再绕了。
1 亿条数据中取前 10 名:
SPL 有更丰富的集合数据类型,容易描述单次遍历上实施简单聚合的高效算法,不涉及大排序动作。
这里还有更多 SPL 代码以体现其思路及大数据算法:
重磅!开源SPL交流群成立了
简单好用的SPL开源啦!
为了给感兴趣的小伙伴们提供一个相互交流的平台,
特地开通了交流群(群完全免费,不广告不卖课)
需要进群的朋友,可长按扫描下方二维码
❾ 数据库技术试题
真题网http://www.pass-e.com
计算机等级考试三级数据库技术历年真题打包http://www.pass-e.com/article.php?articleid=5179
下载
http://www.pass-e.com/d.php?url=三级数据库技术.rar
❿ 几个数据库技术及应用题目
单选题 1.下面哪个不是数据库技术的主要特点 (D)
A.数据的结构化 B.数据的冗余度小 C.较高的数据独立性 D.程序的标准化
2.下列叙述正确的为(B)
A.关系中允许有重复的元组,也允许有重复的属性名
B.关系中允许有重复的元组,不允许有重复的属性名
C.关系中不允许有重复的元组,允许有重复的属性名
D.关系中不允许有重复的元组,也不允许有重复的属性名
3.如果两个实体之间的联系是1:M,则实现l:M联系的方法是 (C)
A.将两个实体转换成一个关系
B.将两个实体转换的关系中,分别加入另一个关系的主码。
C.将“1”端实体转换的关系的主码,放入“M”端实体转换的关系中
D.将“M”端实体转换的关系的主码,放入“1”端实体转换的关系中
4.SQL的标准库函数COUNT,SUM,AVG,MAX与MIN等,不允许出现在下列语句 (D)中 A.SEIECT
B.HAVING C.GROUP……HAVING D.WHERE
填空题
1、班级和学生之间的联系是(一对多)联系,班级和班长之间的联系是( 一对一 )联系,学生和课程之间的
联系是( 多对多 )联系。
2、在数据库的三级模式结构中,外模式有( 多个 ),模式和内模式只有( 一个 )。
3、DB的含义是( 数据库 ),DBS的含义是( 数据库系统 ),DBMS的含义是( 数据库管理系统 )。
简答题:
1、SQL Server中的语句权限的含义及内容。
语句权限主要指用户是否具有权限来执行某一语句,这些语句通常是一些具有管理性的操作,如创建数据库、表、存储过程、触发器等。
2、SQL Server中数据库和应用程序的安全机制有哪四种?
用户标识与鉴别;存取控制;视图机制;审计机制等
3、事务故障的恢复方法。
反向扫描日志文件,查找该事务的更新操作;对该事务的更新操作进行逆向操作;继续反向扫描日志文件,查找该事务的其他更新操作并逆向操作;继续处理,直到事务的开始标记。
4、E-R图设计中,合并分E-R图时可能产生的冲突及解决办法。
冲突主要有三种:属性冲突、命名冲突和结构冲突。属性冲突需要靠各部门协商讨论解决,但也非易事;命名冲突通常也像处理属性冲突一样,通过讨论协商等行政手段进行解决;结构冲突主要是根据应用的语义对实体联系
的类型进行综合或调整。
5、事务的四个性质。
(1)原子性(Atomicity)
事务的原子性是指事务中包含的所有操作要么全做,要么全不做(all or none)。
(2) 一致性(Consistency)在事务开始以前,数据库处于一致性的状态,事务结束后,数据库也必须处于一致性状态。 事务应该把数据库从一个一致性状态转换到另外一个一致性状态。
(3) 隔离性(Isolation)事务隔离性要求系统必须保证事务不受其他并发执行的事务的影响,也即要达到这样一种效果:对于任何一对事务T1 和 T2,在事务 T1 看来,T2 要么在 T1 开始之前已经结束,要么在 T1 完成之
后才开始执行。这样,每个事务都感觉不到系统中有其他事务在并发地执行。
(4)持久性(Durability)一个事务一旦成功完成,它对数据库的改变必须是永久的,即便是在系统遇到故障的情况下也不会丢失。数据的重要性决定了事务持久性的重要性。
6、有两个实体集,若它们之间存在着一个M:N联系、1:M联系和1:1联系,根据ER模型转换成关系数据库的规则,这个ER结构转换成表的个数分别是多少?
M:N联系:三个表,1:M联系:两个表,1:1联系:两个表
7、举例说明参照完整性规则中对外码有何要求。
若属性F是基本关系R的外码,它与基本关系S的主码KS相对应,则对于R中每一元组在F上的值必须为:或者为空,或者等于S中某个元组的主码值。比如:学生关系中每个元组的专业号属性只能取下面两类值:空值,表示未给该
学生分配专业;非空值,这时该值必须是专业关系中某个元组的专业号值。
8、举例说明SQL Server中有哪3类触发器。
INSERT触发器、UPDATE触发器和DELETE触发器 (不再举例)
SQL语言设计题
将借书日期在2006年4月以前的借阅记录存入临时的超期借阅表。
select * into #超期借阅表 from 借阅记录表 where 日期<'2006-04-01'
设有如下三个关系模式,用SQL语句完成:
学生(学号,姓名,性别,年龄,专业)
课程(课程号,课程名,学分,先行课)
选课(学号,课程号,任课教师,成绩)
1、创建电子商务专业学生成绩视图,属性包括学号、姓名、课程名和成绩。
create view '电子商务专业学生成绩视图' as
select s.学号,s.姓名,c.课程名,s_c.成绩 from table 学生 s,课程 c,选课 s_c where
s.学号=s_c.学号 and s_c.课程号=c.课程号 and s.专业='电子商务'
2、创建计算机应用专业的学生成绩统计视图,属性包括学号、姓名、总成绩和平均成绩。
create view ‘计算机专业学生成绩统计视图’ as
select s.学号,s.姓名,sum(成绩),avg(成绩) from 学生 s,选课 s_c
where s.学号=s_c.学号 and 专业='计算机应用'
group by 学号,姓名
3、查询没有成绩的学生的学号、姓名和课程号。
select distinct s.学号,s.姓名,s_c.课程号 from s,s_c where s.学号=s_c.学号 where s_c.成绩=0
4、查询选修课程号为001且成绩为最好的学生的学号、姓名和成绩
select s.学号,s.姓名,max(s_c.成绩) from 学生 s,选课 s_c where s.学号=s_c.学号 and s_c.课程号=‘001’
5、查询至少选修了二门及二门以上课程的学生的学号
select 学号 from 选课表 group by 学号 having count(*)>=2