公务员 数据库、数据库技术.doc_第1页
公务员 数据库、数据库技术.doc_第2页
公务员 数据库、数据库技术.doc_第3页
公务员 数据库、数据库技术.doc_第4页
公务员 数据库、数据库技术.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 数据库、数据库技术、数据库系统、数据库管理系统的概念、数据模型、数据视图数据:实际上就是描述事物的符号记录。 数据的特点:有一定的结构,有型与值之分,如整型、实型、字符型等。而数据的值给出了符合定型的值,如整型值15。 数据库:是数据的集合,具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序共享。 数据库存放数据是按数据所提供的数据模式存放的,具有集成与共享的特点。 数据库管理系统:一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是数据库的核心。 数据库管理系统功能: (1)数据模式定义:即为数据库构建其数据框架; (2)数据存取的物理构建:为数据模式的物理存取与构建提供有效的存取方法与手段; (3)数据操纵:为用户使用数据库的数据提供方便,如查询、插入、修改、删除等以及简单的算术运算及统计; (4)数据的完整性、安生性定义与检查; (5)数据库的并发控制与故障恢复; (6)数据的服务:如拷贝、转存、重组、性能监测、分析等。 为完成以上六个功能,数据库管理系统提供以下的数据语言: (1)数据定义语言:负责数据的模式定义与数据的物理存取构建; (2)数据操纵语言:负责数据的操纵,如查询与增、删、改等; (3)数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等。 数据语言按其使用方式具有两种结构形式:交互式命令(又称自含型或自主型语言)宿主型语言(一般可嵌入某些宿主语言中)。 数据库管理员:对数据库进行规划、设计、维护、监视等的专业管理人员。 数据库系统:由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成的运行实体。 数据库应用系统:由数据库系统、应用软件及应用界面三者组成。 文件系统阶段:提供了简单的数据共享与数据管理能力,但是它无法提供完整的、统一的、管理和数据共享的能力。 层次数据库与网状数据库系统阶段 :为统一与共享数据提供了有力支撑。 关系数据库系统阶段 数据库系统的基本特点:数据的集成性 、数据的高共享性与低冗余性 、数据独立性(物理独立性与逻辑独立性)、数据统一管理与控制。 数据库系统的三级模式: (1)概念模式:数据库系统中全局数据逻辑结构的描述,全体用户公共数据视图; (2)外模式:也称子模式与用户模式。是用户的数据视图,也就是用户所见到的数据模式; (3)内模式:又称物理模式,它给出了数据库物理存储结构与物理存取方法。 数据库系统的两级映射: (1)概念模式到内模式的映射; (2)外模式到概念模式的映射。 数据模型 数据模型的概念:是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。 E-R模型的基本概念 (1)实体:现实世界中的事物; (2)属性:事物的特性; (3)联系:现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。 E-R模型三个基本概念之间的联接关系:实体是概念世界中的基本单位,属性有属性域,每个实体可取属性域内的值。一个实体的所有属性值叫元组。 E-R模型的图示法:(1)实体集表示法; (2)属性表法; (3)联系表示法。 层次模型的基本结构是树形结构,具有以下特点: (1)每棵树有且仅有一个无双亲结点,称为根; (2)树中除根外所有结点有且仅有一个双亲。 从图论上看,网状模型是一个不加任何条件限制的无向图。 关系模型采用二维表来表示,简称表,由表框架及表的元组组成。一个二维表就是一个关系。 在二维表中凡能唯一标识元组的最小属性称为键或码。从所有侯选健中选取一个作为用户使用的键称主键。表A中的某属性是某表B的键,则称该属性集为A的外键或外码。 关系中的数据约束: (1)实体完整性约束:约束关系的主键中属性值不能为空值; (2)参照完全性约束:是关系之间的基本约束; (3)用户定义的完整性约束:它反映了具体应用中数据的语义要求。 关系代数 关系数据库系统的特点之一是它建立在数据理论的基础之上,有很多数据理论可以表示关系模型的数据操作,其中最为著名的是关系代数与关系演算。 关系模型的基本运算: (1)插入 (2)删除 (3)修改 (4)查询(包括投影、选择、笛卡尔积运算) 数据库设计与管理 数据库设计是数据应用的核心。 数据库设计的两种方法: (1)面向数据:以信息需求为主,兼顾处理需求; (2)面向过程:以处理需求为主,兼顾信息需求。 数据库的生命周期:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。 需求分析常用结构析方法和面向对象的方法。结构化分析(简称SA)方法用自顶向下、逐层分解的方式分析系统。用数据流图表达数据和处理过程的关系。对数据库设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。 数据字典是各类数据描述的集合,包括5个部分:数据项、数据结构、数据流(可以是数据项,也可以是数据结构)、数据存储、处理过程。 数据库概念设计的目的是分析数据内在语义关系。设计的方法有两种 (1)集中式模式设计法(适用于小型或并不复杂的单位或部门); (2)视图集成设计法。 设计方法:E-R模型与视图集成。 视图设计一般有三种设计次序:自顶向下、由底向上、由内向外。 视图集成的几种冲突:命名冲突、概念冲突、域冲突、约束冲突。 关系视图设计:关系视图的设计又称外模式设计。 关系视图的主要作用: (1)提供数据逻辑独立性; (2)能适应用户对数据的不同需求; (3)有一定数据保密功能。 数据库的物理设计主要目标是对数据内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度有效利用存储空间。一般RDBMS中留给用户参与物理设计的内容大致有索引设计、集成簇设计和分区设计。 数据库管理的内容: (1)数据库的建立; (2)数据库的调整; (3)数据库的重组; (4)数据库安全性与完整性控制; (5)数据库的故障恢复; (6)数据库监控。 关系演算及关系模型关系模型是用一种称为“关系”的二维表表示数据。属性:关系的标题栏中各列的名字。属性描述了该列各数据项的含义。模式:关系的名称和关系的属性集称为关系的“模式”。Student ( StudentNo, StudentName, Age, Dept )在关系模型中,数据库设计包含一个或多个关系模式,我们将所设计的关系模式的集合称为“关系数据库模式”,或者简称为“数据库模式”。元组:除了关系的标题栏以外,其他各行统称为“元组”。通常一个元组就表示一个对象,而元组所属的关系就表示对象所属的类。(990011,李明,19,计算机系)域:与关系的每个属性相关的特定基本类型称为“域”。需要注意的问题:关系模型要求每个元组的每个分量都是原子的,不能是结构、集合、列表、数组等类型。关系的模式和元组都是集合,而不是列表,因此它们的顺序是无关紧要的,我们可以重新排列关系的行和列,而关系并不改变。通常都为关系选择一个“标准”的属性顺序。实例:给定关系中元组的集合称为该关系的“实例”。举例:关系模型的基本概念SNoSNameAgeCNoscore304江民16A0183305王海17A0266308李小亮17A0173关系 Student属性:Sname或Age模式:Student(Sno, Sname, Age, Cno, score)元组:(304,江民,16,A01,83)实例:如下三个元组的集合就是一个实例。304江民16A0183305王海17A0266308李小亮17A01732、 结构化查询语言SQL01SQL提供的基本数据类型 A整型:int; B实型(单精度):real; C实型(双精度):float; D字符型:char; E日期型:date; F日期时间型:datetime; G文本型:text; H图像型:image .02创建数据表 格式:CREATE TABLE(.) 说明:A:DEFAULT B分为:列约束和表约束。列约束是对某一个特定列的约束,包含在列定义中,直接跟在该列的其它定义之后,用空格分隔,不必指定列名;表约束与列定义相独立,不包括在列定义中,通常用于对多个列一起进行约束,与列定义用“,”分隔,定义表约束时,必须指出要约束的列的名称。的基本语法为格式为: CONSTRAINT 约束类型有: NULL/NOT NULL:空值/非空值约束。对于非主键,默认为NULL(表示不知道、不确定或者没有数据)。 UNIQUE:惟一值约束。惟一键允许为空,但系统为保证其惟一性,最多只可以出现一个NULL值。 PRIMARY KEY:主键约束。在一个基本表中只能定义一个PRIMARY KEY约束,但可以定义多个UNIQUE约束。PRIMARY KEY约束只含NOT UNLL和UNIQUE约束。 CHECK():取值范围约束。 FOREIGN KEYREFERENCES.()外部键约束。 例如:create 学生( 学号 char(8) primary key, 姓名 char(8) not null, 性别 char(2) default 女, 出生年月 date check(出生年月=01/01/80), 入校总分 int(3) check(入校总分 between 0 and 750) create 选课( 学号 char(8), 课程号 char(4), 成绩 int check(成绩=0 and 成绩=100), primary key(学号,课程号), foreign key(学号) references 学生(学号), foreign key(课程号) references 学生(课程号) 03修改数表(结构) 格式:ALTER TABLE ADD/ MODIFY DROP 说明:AADD增加;MODIFY修改;DROP删除。 B不能改变列名。 C不能将含有空值的列的定义修改为NOT NULL约束。 D若列中有数据,则不能减少该列的宽度,也不能改变其数据类型。 E只能修改NULL/NOT NULL约束,其它类型的约束在修改之前必须先删除,然后再重新添加攸改过的约束定义。 例如:alter table 学生 add 电话 char(8),住址 char(30) alter table 选课 add check(成绩=0 and 成绩=100) alter table 学生 modify column 姓名 char(10) 04删除数据 格式:DROP TABLE 例如:drop table 学生SQL的数据查询功能 格式:SELECTALL/DISTINCT TOPPERCENT AS ,AS */.*. FROMAS表别名1 AS表别名2 INTO/TO FILE/TO PRINTER/TO SCREEN WHERE GROUP BY,HAVING ORDER BYASC/DESC ,ASC/DESC 01投影查询() ALL/DISTINCT:ALL允许在查询结果中出现内容重复的行;DISTINCT在查询结果中不允许出现内容重复的行。省略为ALL。 TOPPERCENT:指定查询结果包括特定数目的行数,或者包括全部行数的百分比,使用TOP子名时必须同时使用ORDER BY子句。 AS ,AS */.*:表达式1和表达式2由源表字段、函数等构成。列名1和列名2为生成表字段名。*代表源表中的所有字段。 例如:select 学号,姓名,入校总分,性别,出生年月 from 学生select top 5 学号 as 学生编号,姓名 as 学生姓名,性别 as 学生性别,入校总分 as 高考分数 from 学生 order by 入校总分select distinct 学号 from 选课select * from 教师 02条件查询(WHERE子句) 条件由三部分组成:列名;比较运算符;列名、常数。 常用比较运算符: 比较大小:= = = != 多重条件:AND OR NOT 确定范围:BETWEEN AND NOT BETWEEN AND 确定集合:IN NOT IN 字符匹配:LINK 1)比较大小select 学号,成绩 from 选课 where 课程号=c140 2)多重比较(复合逻辑表达式)select 学号,课程号,成绩 from 选课 where 成绩=90 3)确定范围select 学号,课程号,成绩 from 选课 where (课程号=c120 or 课程号=c140) and 成绩=80select 教师号,姓名,职称 from 教师 where 工资 between 1500 and 2000又:select 教师号,姓名,职称 from 教师 where 工资=1500 and 工资=80又:select 学号,课程号,成绩 from 选课 where (课程号=c140 or 课程号=c160) and 成绩=80select 学号,课程号,成绩 from 选课 where 课程号 not in(c140,c160) and 成绩 between 85 and 90又:select 学号,课程号,成绩 from 选课 where 课程号c140 and 课程号c160 and 成绩=85 and 成绩=90 5)部分匹配查询 格式:LIKE 说明:可包括符号%表示任意长度的字符串;_表示任意一个字符。select 学号,姓名 from 学生 where 姓名 like 张%select 学号,姓名 from 学生 where 姓名 like _红% 6)统计查询 在原有数据的基础上通过计算,输出统计结果。函数: AVG按列计算平均值 SUM按列计算值的总和 COUNT按列值统计个数 MAX求一列中的最大值 MIN求一列中的最小值select 学号,sum(成绩) as 总分,avg(成绩) as 平均分 from 选课 where 学号=s0201109select 学号,max(成绩) as 最高分,min(成绩) as 最低分, max(成绩)-min(成绩) as 相差娄数 from 选课 where 课程号=c140select count(学号) as 入校总分在580分以上的人数 from 学生 where 入校总分=580select count(*) as 教授和副教授的人数 from 教师 where 职称 in(教授,副教授) 7)分组查询 按属性列或属性列组合在行的方向上进行分组,每组在属性列或属性列组上具有相同的值。select 教师号,count(*) as 任课门数 from 授课 group by 教师号select 学号 as 选课在两门以上课程的学生号,count(*) as 选课门数 from 选课 group by 学号 having count(*)=2select 课程号,avg(成绩) as 平均分 from 选课 where 课程号 in (c120,c140,c150,c160) group by 课程号 having avg(成绩)=80 8)查询的排序(ORDER BY子句)select 学号,课程号,成绩 from 选课 where 课程号=c140 order by 成绩 descselect 学号,课程号,成绩 from 选课 where 课程号 in(c120,c130,c150) order by 课程号,成绩 descselect 学号,avg(成绩) as 平均成绩 from 选课 where 成绩=60 group by 学号 having count(*)=3 order by 学号 desc 9)连接查询 当查询同时涉及到两个以上的表时的查询。(通过相同属性列的关联建立查询) 方法:表之间满足一定条件的行进行连接; 利用关键字JOIN进行连接,放入FROM子句中,有ON与之相对应,表明连接的条件。即 INNER JION:显示符合条件的记录(默认) LEFT JION:显示符合条件的记录以及左边表中不符合条件的记录,此时右边的列显示为NULL。 RIGHT JION:显示符合条件的记录以及右边表中不符合条件的记录,此时左边的列显示为NULL。 FULL JOIN:显示符合条件的记录以及左右表中不符合条件的记录,此时右左边的列显示为NULL。 A等值连接与非等值连接 格式:.select 教师.教师号,姓名,课程号 from 教师,授课 where 教师.教师号=授课.教师号 and 姓名=陈 静 *select 教师.教师号,姓名,课程号 from 教师 inner join 授课 on 教师.教师号=授课.教师号 and 姓名=陈 静select 学生.学号,姓名,课程名,成绩 from 学生,课程,选课 where 学生.学号=选课.学号 and 选课.课程号=课程.课程号 and (课程名=数据库 or 课程名=电子商务) B自身连接select x.姓名,x.性别,x.职称 from 教师 as x,教师 as y where x.职称=y.职称 and y.姓名=周 密 C外连接(左为主表,右为从表)select 姓名,职称,课程名 from 教师,课程,授课 where 教师.教师号=授课.教师号 and 授课.课程号=课程.课程号select 姓名,职称,课程名 from 教师 left join 授课 on 教师.教师号=授课.教师号 left join 课程 on 授课.课程号=课程.课程号 10)嵌套查询 A返回一个值的子查询select 姓名,职称 from 教师 where 职称=(select 职称 from 教师 where 姓名=陈 静) B返回一组值的子查询(ANY、IN、ALL和EXISTS)select 姓名 from 教师 where 教师号=any(select 教师号 from 授课 where 课程号=c140)select 姓名,入校总分 from 学生 where 入校总分any(select 入校总分 from 学生 where 性别=男) and 性别男select 姓名 from 教师 where 教师号=in(select 教师号 from 授课 where 课程号=c140)select 姓名,入校总分 from 学生 where 入校总分all(select 入校总分 from 学生 where 性别=男) and 性别=女select 姓名 from 教师 where exists (select * from 授课 where 教师.教师号=授课.教师号 and 课程号=c140) 11)查询结果的输出 INTO TABLE:到数据表 INTO CURSOR:到临时表 TO FILE:到文本文件 TO PRINT:到打印机 TO SCREEN:到VF主窗口SQL的数据更新功能 01插入一行新数据记录 INSERT INTO(,.)VALUES(,.) 02插入多行数据记录 INSERT INTO(,.) 03修改数据记录 UPDATESET=,=.WHERE 04删除数所记录 DELETE FROMWHERE用查询设计器建立查询 CREATE QUERY 查询文件名数据的完整性与安全性数据库完整性(Database Integrity)是指数据库中数据的正确性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。数据库完整性约束可以通过DBMS或应用程序来实现,基于DBMS的完整性约束作为模式的一部分存入数据库中。通过DBMS实现的数据库完整性按照数据库设计步骤进行设计,而由应用软件实现的数据库完整性则纳入应用软件设计(本文主要讨论前者)。数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面 .数据库的一个特点就是要保证数据的安全可靠和正确有效。但是由于各方面的原因 ,数据库的安全性不能达到完美的境地。一方面,数据库中数据模型的加工技术在不断完善的过程中,存在着隐患和入侵的可能性,比如关系数据库中的二维表就难以控制横向的入侵;另一方面数据库中大量数据集中存放,而且为各个用户共享,从而使安全性问题显得特别突出。这里仅谈及对数据的恶意破坏和非法使用所采取的一些措施。从物理的角度出发,将数据以密码的形式存储,加强警卫以识别用户身份,保护存储设备以防止从通讯线路上窃听或盗窃存储设备等。在系统处理上,采用以下一些措施:设置用户口令,对用户身份进行鉴定; 对用户权限进行限制,如用户可以读某些属性却不能改变其属性值或者用户可以取得整体统计信息但不能取得个体信息等; 建立日志文件,利用日志文件监视数据库活动; 对数据采取集中管理方式。此外,还强调对数据结构的隐蔽。 事实上,安全措施越复杂越全面,系统的开销就越大,同时,用户的使用也会相应复杂,面对这样的情况,进行安全保护的原则就是:企图破坏安全的人花费的代价应远远超出他们得到的利益数据库事务管理在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态。为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态。对事务的操作是这样进行的:先定义开始一个事务,然后对数据作修改操作,这时如果提交(COMMIT),这些修改就永久地保存下来,如果回退(ROLLBACK),数据库管理系统将放弃您所作的所有修改而回到开始事务时的状态。此外有些数据库支持事务的存储点(savepoint)这一概念:即在一个事务进程中任意一点您都可以进行当前状态的存储,回退时只是回到你所设定的存储点,而不必退回全部的事务。如果您的事务可以分成几组对数据库的修改,那就可以设置多个存储点,根据需要您可以回退到任意一个存储点,而不使所有事务的修改数据全部丢失。正确地管理事务可以保证数据的完整性,当您所做的工作全部完成和得到确认之前,没有任何数据物理地写进数据库。让我们来看这样一个实例,我们有这样一个银行应用系统,前台使用者作出将储户甲的一百元存款划归储户乙帐下的操作;在后台的数据库中,这两个客户的记录分储在两张表中,当使用者在屏幕上作出如上操作时,在后台需要对两张表进行修改。如果在数据库中对甲用户存款余款作减去一百元修改后,对乙用户加一百元的操作修改却失败时,前一张表也必须回到修改前的状态,否则数据库的内容不统一,甲储户白白损失一百元,信息必然是不正确的。因此进行事务管理是必须的。 传统地,我们认为一个事务包括了对一个或多个表的修改,而随着分布式数据库和数据仓库的发展,事务可能包括了对一个或多个数据库的修改。在上例中甲乙两用户就可能是异地用户,信息分储在不同地域的不同数据库中,上述的一个事务就涉及到了对不同数据库的操作。 数据库并发控制数据库是一个共享资源,可以提供多个用户使用。这些用户程序可以一个一个地串行执行,每个时刻只有一个用户程序运行,执行对数据库的存取,其他用户程序必须等到这个用户程序结束以后方能对数据库存取。但是如果一个用户程序涉及大量数据的输入/输出交换,则数据库系统的大部分时间处于闲置状态。因此,为了充分利用数据库资源,发挥数据库共享资源的特点,应该允许多个用户并行地存取数据库。但这样就会产生多个用户程序并发存取同一数据的情况,若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性,所以数据库管理系统必须提供并发控制机制。并发控制机制的好坏是衡量一个数据库管理系统性能的重要标志之一。DM用封锁机制来解决并发问题。它可以保证任何时候都可以有多个正在运行的用户程序,但是所有用户程序都在彼此完全隔离的环境中运行。数据库故障恢复原理系统故障及恢复原理系统故障主要是由于服务器在运行过程中,突然发生操作系统错误、停电等原因造成的非正常中断,用户对数据库进行处理的事务被突然中断,内存缓冲区中的数据全部丢失,但硬盘、磁带等外设上的数据未受损失。介质故障及恢复原理介质故障是由于硬件的可靠性较差出现的存储介质发生物理损坏。数据库的数据全部或部分丢失,破坏性较大。事务故障及恢复原理事务故障是某些对数据库进行操作的事务违反了系统设定的条件,如输入数据错误、运算溢出等,使事务未能正常完成就终止。发生事务故障时,事务对数据库的操作可能已经修改了部分数据,因此数据库管理系统必须提供某种恢复机制,强行回滚该事务对数据库的所有修改,使系统回到该事务发生前的状态。数据库的设计数据库设计(Database Design)是指根据用户的需求,在某一具体的数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论