1.数据库管理系统有哪些功能?
数据库定义功能
数据组织、存储和管理
数据操纵功能
数据库的事物管理和运行管理
数据库的建立和维护功能
2.什么是数据库的数据独立性?
数据独立性包括物理独立性和逻辑独立性
物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。
3.什么是数据库的安全性?
数据的安全性是指保护数据以防止不合法使用造成的数据泄漏和破坏。
数据的完整性指数据的正确性,有效性和相容性。
4.试述数据库系统的三级模式结构,并说明这种结构的优点是什么?
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。
数据库系统的这种结构具有以下优点:
(1)保证数据独立性。将外模式与模式分开,保证了数据的逻辑独立性;将内模式与模式分开,保证了数据的物理独立性。
(2)有利于数据共享,减少了数据冗余。
(3)有利于数据的安全性。不同的用户在各自的外模式下根据要求操作数据,只能对限定的数据进行操作。
(4)简化了用户接口。按照外模式编写应用程序或输入命令,而不需了解数据库全局逻辑结构和内部存储结构,方便用户系统。
5.试述实现数据库安全性控制的常用方法和技术?
1)用户标识和鉴别:
该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才能提供系统的使用权
(2)存取控制
通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未授权的人员无法存取数据
(3)视图机制
为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
(4)审计
建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人,时间和内容等。
(5)数据加密
对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。
6.简述数据库系统从哪些方面来保证数据的完整性。
(1).列级约束:数据类型,宽度,缺省值,检查约束,是否空值,唯一约束
(2)。主键约束
(3)外键约束
(4)用户自定义约束:主要通过触发器完成
7.简述事务的acid特性。
1原子性(A) :事务中的操作要么全做,要么-一个也不做
2致性(C) :事务执行的结果必须是使数据库从一个-致性状态变到另一个
一致性状态
3隔离性(I) :一个事务的执行不能被其它事务干扰
4持续性(D) :一个事务一旦提交,它对数据库中数据的修改应该是永久的
3.简述并发控制不当带来的数据不一致性问题
1丢失修改:两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了
T1的结果,导致T1 的修改被丢失
2不可重复读:是指事务 TI读取数据后,事务T2执行更新操作,使TI无法
再现前一次读取结果
3读“脏”数据:是指事务T1修改某- -数据, 并将其写回磁盘,事务T2读取
同- -数据后,T1由于某种原因被撇销,这时TI已修改过的数据恢复原值,T2
读到的数据就与数据库中的数据不一致。 则T2读到了“脏"数据,即不正确的
数据。
4产生上述三类数据不-致性的主要原因是并发操作破坏了事务的隔离性。
9.数据库设计分哪几阶段?
需求分析阶段
概念设计阶段
逻辑结构设计阶段
物理结构设计阶段
数据库实施阶段
数据库运行和维护阶段
10.试述数据库系统的组成。
数据系统一般由数据库,数据库管理系统(及开发工具),应用系统,数据库管理员和用户构成
数据库是计算机系统中按照一定方式组织、存储和应用的____________。
参考答案:相关数据集合^数据集合^
现实世界到机器世界过渡的中间层次是_________。
参考答案:概念模型^
θ连接操作由关系代数的_________操作和_________操作组合而成。
参考答案:笛卡尔积^选择^选择^笛卡尔积^
若关系为1NF,且它的每一非主属性都__________候选码,则该关系为2NF。
参考答案:完全函数依赖于^完全函数依赖^
在数据库技术中,把未提交的随后被撤消的数据称为__________。
参考答案:脏数据^
关系模型的三类完整性约束是指______________、_______________和_____________。
参考答案:实体完整性^参照完整性^用户定义的完整性^
基本表结构的修改用_________关键字,基本表内容的修改用_________关键字。
参考答案:ALTER^UPDATE^
________是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。
参考答案:强制存取控制(MAC)^MAC^强制存取控制^
在一个关系R中,若每个数据项都是不可再分割的,那么R一定属于__________。
参考答案:1NF^1范式^第一范式^
数据库的并发操作带来三个问题是:丢失更新问题、读脏数据问题和_________。
参考答案:不可重复读问题^不可重复读^
数据模型是用来描述数据库的结构和语义的,数据模型有概念数据模型和结构数据模型两类,ER模型是_________。
参考答案:概念数据模型^概念模型^
SELECT语句进行查询时,如果要列出所查表中的所有列的简便方法是列名表用_________表示。
参考答案:*^
在SQL中删除记录使用_________语句。
参考答案:DELETE^delete^Delete^
支持数据库各种操作的软件系统叫_________。
参考答案:DBMS^数据库管理系统^
职工(职工号,姓名,年龄,部门号)和部门(部门号,部门名称)存在引用关系,其中________________是参照关系,____________是外码。
参考答案:职工^部门号^
视图是一种虚表,它是从_________导出的表。
参考答案:基本表^
数据库中只存放视图的_________而不存放视图的_________。
参考答案:定义^记录数据^
如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选码,则称R为________关系模式。
参考答案:3NF^3范式^第三范式^
数据库应用系统设计中逻辑设计的主要内容是把ER模型的_________和_________转换为关系模式。
参考答案:实体^联系^联系^实体^
如果在查询结果中不允许出现重复元组,应在SELECT语句中增加保留字_________。
参考答案:DISTINCT^
设关系R(U),X,Y∈U,X→Y是R的一个函数依赖,如果存在X′∈X,使X′→Y成立,则称函数依赖X→Y是___________函数依赖。
参考答案:部分^
在关系A(S,SN,D)和B(D,CN,NM)中,A的主码是S,B的主码是D,则D在S中称为_________。
参考答案:外码^
对关系进行垂直分割的操作称为_________,对关系进行水平分割的操作称为_________。
参考答案:投影^选择^
DBS的维护工作由_________承担。
参考答案:DBA^
事务运行过程中,由于种种原因,使事务未运行到正常终止点就被撤消,这种情况称为_________。
参考答案:事务故障^
事务的原子性由DBMS的_________子系统来实现的。
参考答案:事务管理^
关系模型由____________、关系操作集合和关系完整性约束三部分组成。
参考答案:数据结构^关系数据结构^
使用SQL修改数据库的语句为_________。
参考答案:ALTERDATABASE^alterdatabase^AlterDatabase^Alterdatabase^alter^
数据实施阶段包括两项重要的工作,一项是数据的_________,另一项是应用程序的编码和调试。
参考答案:载入^
“为哪些表,在哪些字段上,建立什么样的索引”这一设计内容应该属于数据库设计中的_________阶段。
参考答案:物理设计^
数据库的物理设计是对一个给定的_________模型选取一个最合适应用环境的物理结构的过程。
参考答案:逻辑数据^
由计算机硬件、操作系统、DBMS、数据库、应用程序及有关人员等组成的一个整体叫_________。
参考答案:数据库系统^DBS^数据库应用系统^
概念设计的目标是产生反映_________的数据库概念结构,即概念模式。
参考答案:企业组织信息需求^信息需求^需求^
在SQL中如果要对查询结果进行排序,则需要使用_________子句。
参考答案:orderBY^order^orderby^
数据库角色是被命名的一组与________相关的权限,角色是________的集合。
参考答案:数据库操作^权限^权限^数据库操作^
用户标识和鉴别的方法有很多种,而且在一个系统中往往是多种方法并举,以获得更强的安全性。常用的方法有通过输入________和________来鉴别用户。
参考答案:用户名^口令^口令^用户名^
在SQL中添加记录使用_________语句。
参考答案:INSERT^insert^Insert^INSERTINTO^InsertInto^insertinto^
SQL中的自主存取控制是通过________语句和________语句来实现的。
参考答案:GRANT^REVOKE^REVOKE^GRANT^
ER图向关系模型转化要解决的问题是如何将实体和实体之间的联系转换成关系模式,如何确定这些关系模式的_________。
参考答案:属性和键^
关系代数是以_________为运算对象的一组高级运算的集合。
参考答案:关系^
实体完整性规则是对_________的约束,参照完整性规则是对的_________约束。
参考答案:主键^外键^
用户权限是由两个要素组成的:________和________。
参考答案:数据对象^操作类型^操作类型^数据对象^
使用SQL删除数据库的语句为_________。
参考答案:DROPDATABASE^dropdatabase^DropDatabase^Dropdatabase^drop^
排序的时候关键字DESC表示_________的含义。
参考答案:降序^降^降序^递减^递减顺序^倒序^倒^
ER数据模型一般在数据设计的_________阶段使用。
参考答案:概念设计^
在SQL中如果要对查询结果进行分组,则需要使用_________子句。
参考答案:group^groupby^
删除数据库中表的命令是:_________。
参考答案:droptable^
使用SQL创建数据库的语句为_________。
参考答案:CREATEDATABASE^createdatabase^CreateDatabase^Createdatabase^create^
在SELECT语句中,HAVING子句必须跟在_________子句后面。
在关系代数运算中,最浪费时间的两个运算是_________和_________。
参考答案:笛卡尔积^连接运算^连接运算^笛卡尔积^
SQL中表结构的修改命令是_________。
参考答案:ALTER^ALTERTABLE^
通过________可以把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
参考答案:视图机制^视图^
INSERT INTO czyb(czydm,czykl,czylb) VALUES("000","000",0);
INSERT INTO czyb(czydm,czykl,czylb) VALUES("001","001",1);
INSERT INTO spb(spmc,spmcsx,spdw,spbz) VALUES("可口可乐","kkkl","瓶","无");
INSERT INTO spb(spmc,spmcsx,spdw,spbz) VALUES("百事可乐","bskl","瓶","无");
INSERT INTO spb(spmc,spmcsx,spdw,spbz) VALUES("伊利牛奶","ylnn","盒","无");
INSERT INTO spb(spmc,spmcsx,spdw,spbz) VALUES("农夫山泉","nfsq","瓶","无");
INSERT INTO spb(spmc,spmcsx,spdw,spbz) VALUES("涪陵榨菜","flzc","袋","无");
INSERT INTO spb(spmc,spmcsx,spdw,spbz) VALUES("青岛啤酒","qdpj","听","无");
INSERT INTO ckb(ckmc,ckdz) VALUES("第一仓库","洛阳涧西区");
INSERT INTO kcb(ckid,spid,jhdj,xsdj,kcsl,zgkc,zdkc) VALUES(1,1,"2.50","3.00","10","100","2");
INSERT INTO kcb(ckid,spid,jhdj,xsdj,kcsl,zgkc,zdkc) VALUES(1,2,"2.50","3.00","10","100","2");
INSERT INTO kcb(ckid,spid,jhdj,xsdj,kcsl,zgkc,zdkc) VALUES(1,3,"4.50","5.00","10","100","2");
INSERT INTO kcb(ckid,spid,jhdj,xsdj,kcsl,zgkc,zdkc) VALUES(1,4,"1.50","2.00","50","1000","2");
INSERT INTO kcb(ckid,spid,jhdj,xsdj,kcsl,zgkc,zdkc) VALUES(1,5,"0.80","1.20","10","100","2");
INSERT INTO kcb(ckid,spid,jhdj,xsdj,kcsl,zgkc,zdkc) VALUES(1,6,"4.50","5.00","10","100","2");
INSERT INTO ghsb(ghsmc,ghspysx,shengid,shiid,ghsdz,ghslxfs,ghsbz) VALUES("凯悦公司","kygs",1,1,"涧西区58#","1235648","无");
INSERT INTO ghsb(ghsmc,ghspysx,shengid,shiid,ghsdz,ghslxfs,ghsbz) VALUES("零度公司","ldgs",1,1,"涧西区58#","1235648","无");
INSERT INTO khb(khmc,khmcsx,khdz,khlxfs,khbz) VALUES("张三","zs","涧西区1-201","无","无");
INSERT INTO khb(khmc,khmcsx,khdz,khlxfs,khbz) VALUES("李四","ls","涧西区1-202","无","无");
INSERT INTO khb(khmc,khmcsx,khdz,khlxfs,khbz) VALUES("王五","ww","涧西区1-203","无","无");
/*当进货时(插入进货记录时),修改库存数量*/
DELIMITER $$
CREATE TRIGGER updatekcb
AFTER INSERT
ON jhmxb FOR EACH ROW
BEGIN
UPDATE kcb SET kcsl=kcsl+jhsl;
END$$
DELIMITER ;
/*当销售时(插入销售记录时),修改库存数量*/
DELIMITER $$
CREATE TRIGGER updatekcb2
AFTER INSERT
ON xsmxb FOR EACH ROW
BEGIN
UPDATE kcb SET kcsl=kcsl-xssl;
END$$
DELIMITER ;
/*八、编写存储过程
(一)批量插入进货表和进货明细表*/
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
PROCEDURE insertjhb(IN spstr VARCHAR(1000))
BEGIN
DECLARE jhid0 INT;
DECLARE ghsid0 INT;
DECLARE czyid0 INT;
DECLARE spid0 INT;
DECLARE zje0 DECIMAL(18,2);
DECLARE dj0 DECIMAL(18,2);
DECLARE sl0 DECIMAL(18,2);
SET ghsid0=CAST(MID(spstr,1,LOCATE('|',spstr)-1) AS UNSIGNED);
SET spstr=MID(spstr,LOCATE('|',spstr)+1);
SET czyid0=CAST(MID(spstr,1,LOCATE('|',spstr)-1) AS UNSIGNED);
INSERT INTO jhzb(ghsid,jhrq,czyid)VALUES(ghsid0,NOW(),czyid0);
SELECT LAST_INSERT_ID() INTO jhid0;
SET spstr=MID(spstr,LOCATE('|',spstr)+1);
SET zje0=0;
WHILE spstr>'' DO
SET spid0=CAST(MID(spstr,1,LOCATE('|',spstr)-1) AS UNSIGNED);
SET spstr=MID(spstr,LOCATE('|',spstr)+1);
SET dj0=CAST(MID(spstr,1,LOCATE('|',spstr)-1) AS DECIMAL(18,2));
SET spstr=MID(spstr,LOCATE('|',spstr)+1);
SET sl0=CAST(MID(spstr,1,LOCATE('|',spstr)-1) AS DECIMAL(18,2));
INSERT INTO jhmxb(jhid,spid,jhdj,jhsl)VALUES(jhis0,spid0,dj0,sl0);
SET zje0=zje0+dj0*sl0;
SET spstr=MID(spstr,LOCATE('|',spstr)+1);
SET zje0=0;
END WHILE;
UPDATE jhzb SET jhje=zje0 WHERE jhid=jhid0;
END$$
DELIMITER ;