




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网络应用高级编程,陈天洲 浙江大学计算机系 ,WEB基础知识,WEB历史 WEB基本表现形式 静态WEB页面 动态WEB页面 主页 WEB站点 ICP与ISP,IIS-INTERNET 信息服务,什么是IIS 如何安装IIS IIS的使用与配置 其他INTERNET服务提供软件,浏览器,功能 IE NETSCAPE,HTML语言概述,超文本标记语言 HTML语言历史 简单的HTML例子 网页的HTML源代码 HTML语言的优点 HTML语言的功能,FRONTPAGE概述,FRONTPAGE2000的新特征 FRONTPAGE2000的历史 FRONTPAGE2000的环境 网页视图:窗口、图标
2、和菜单,FRONTPAGE2000基本使用,新建打开导入站点 共享模板使用 主题使用 导航栏 超级链接,作业1,1、自行安装配置iis,使之能够运行 2、使用“参见问题”模板建立自己的FAQ页面 3、使用共享边框建立两个以上的页面,公用一个边框 4、运用”商业区“主题建立一个产品介绍页面,产品分类可以参考“超市” 5、制作三个页面,其中一个是主页面,另外两个是子层页面,在页面上放置导航条 6、制作一个个人简介页面,其中可以点击自己的电子邮件,激发电子邮件系统;点击姓名,出现照片,网页元素一,页边距 背景图片 背景颜色 背景声音 横幅 计数器,网页元素二,水平线 时间标志 动画效果 网页过渡 横
3、幅公告 悬停按钮 声音效果 字幕,网页元素的定位,定位方式 设置定位属性,图形使用,图形格式 图形添加 视频服务 ASF MEDIA组件,windows2000 server REAL MEDIA 设置图形 网页效果 热点,表格,创建 使用表格布置文本与图形 表格属性,框架,基本操作 框架设置 框架切换,表单,表单的基本原理 常用表单,讨论组,创建 管理 设置属性,作业2,设计个人网站,使用背景图片,音乐,横幅,计数器,时间戳 页面过渡使用动态效果 为其中的图形设置热点 用表格写个人简历,要求对齐 个人网站的主页面使用框架方式 能够收集浏览者对你的网站的看法,PHP, jsp , asp,PH
4、P,JSP ,ASP都是用于创建动态WEB页面的服务端脚本语言。 ASP主要使用在Windows系统 PHP不适宜制作大型系统,无公用数据库连接 学习难度从易到难 ASP使用的脚本语言为VBScript与JavaScript 脚本语言可以直接在HTML上进行书写,HTML语法页面标记,HTML 文件结构(Document Structures) . , , , , HTML 文件的正文写在这里. . ,页面语言字符集的信息,meta http-equiv=Content-Type content=text/html;charset=# #= us-ascii, iso-8859-1, x-ma
5、c-roman, iso-8859-2, x-mac-ce,iso-2022-jp, x-sjis, x-euc-jp,uc-kr, iso-2022-kr,gb2312, gb_2312-80,x-euc-tw, x-cns11643-1, x-cns11643-2, big5 可在 HTML 文件中设置 MIME 字符集信息。您在浏览主页时,最好自己在浏览器的选项菜单内选择相应的语言(language encoding)。,页面背景色彩和文字色彩, bgcolor - 背景色彩 text - 非可链接文字的色彩 link - 可链接文字的色彩 alink - 正被点击的可链接文字的色彩 v
6、link - 已经点击(访问)过的可链接文字的色彩 #=rrggbb 色彩是用 16 进制的 红绿蓝(red-green-blue, RGB) 值来表示。16 进制的数码有: 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f. 背景图象 Non Scrolling Background ,页面空白(Margin),页面左边的空白 页面上方的空白(天头) #=margin amount,页面链接(Link),基本语法 . 这是一个链接的例子。 点一下带下划线的文字! 这是一个链接的例子。 点一下带下划线的文字! 跳转到页面的另外一个地方,页面开一个新的浏览器窗口,a href=UR
7、L target=Window_Name . 开一个新窗口!,页面标尺线, #=left, right ,字体标题字体(Header), . #=1, 2, 3, 4, 5, 6 - 这些标记显示黑体字。 - 这些标记自动插入一个空行,不必用 标记再加空行。因此在一行中无法使用不同大小的字体。,字体字体大小, . #=1, 2, 3, 4, 5, 6, 7 or +#, -# #=1, 2, 3, 4, 5, 6, 7,物理字体(Physical Style),b今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天
8、天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好!,字体逻辑字体(Logical Style),今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好! 今天天气真好!,指定“字体大小”的标记和“指定字体”的标记的组合使用, 今天 天气 真好! 今天 天气 真好!,字体颜色,指定颜
9、色 . #=rrggbb 16 进制数码,或者是下列预定义色彩:Black, Olive, Teal, Red, Blue, Maroon, Navy, Gray, Lime, Fuchsia, White, Green, Purple, Silver, Yellow, Aqua ff8020,客户端字体(Font Face), . #=客户端可获得的字体 Hellow World! Hellow World!,字符实体(Entities), HTML2.0 字符实体名称列表 HTML3.2 字符实体名称列表 ISO 字符实体名称列表,文字布局行的控制,段(Paragraph) (可以看作是空
10、行) 换行 不换行,文字的对齐(Alignment),. . #=left, center, right .,文字的分区(Division)显示, . . . ,列表,无序列表 . 有序列表 . 定义列表(Definition lists) . Definition lists Compact .,定制列表元素,定制表中的标记 #=disk, circle, square 定制有序列表表中的序号 #=A, a, I, i, 1 定制有序列表表中的序号的起始值 #=number,预格式化文本,. . .,空白(Spacer), #=水平空白宽度 #=竖直空白高度 #=空白的尺寸#=top, mi
11、ddle, bottom, left, right,多列文本, . #=列的数目 . #=列间的空白 . #=列的宽度 块引用(Blockquote) . 闪烁 .,图象链入图象的基本语法, #=图象的 URL #=在浏览器尚未完全读入图象时,在图象位置显示的文字。 ,图象和文字的对齐, #=top, middle, bottom Eg: My face! My face! My face!,图象在页面中的对齐/布局, #=value 边框 #=value,客户端图象映射图,请在下图中用鼠标到处点一点,就会理解“客户端图象映射图”的意思了。 ,表格-表格的基本语法,. - 定义表格 - 定义表
12、行 - 定义表头 - 定义表元(表格的具体数据) 带边框的表格: FoodDrinkSweet ABC 不带边框的表格: FoodDrinkSweet ABC ,跨多行、多列的表元,跨多列的表元 跨多行的表元 ,表格尺寸设置, 边框尺寸设置: 表格尺寸设置: 表元间隙设置: 表元内部空白设置:,表格内文字的对齐/布局, #=left, center, right #=top, middle, bottom, baseline ,表格在页面中的对齐/布局, #=space value,表格的标题, . #=left, center, right . #=top, bottom valign=to
13、p is default.,表格的色彩,表元的背景色彩和背景图象 #=rrggbb 16 进制 RGB 数码, 或者是下列预定义色彩名称:Black, Olive, Teal, Red, Blue, Maroon, Navy, Gray, Lime, Fuchsia, White, Green, Purple, Silver, Yellow, Aqua 表格边框的色彩 表格边框色彩的亮度控制 ,表格的分组显示,按行分组 . - 表的题头(Header) . - 表的正文(Body) . - 表的脚注(Footer) 按列分组 #=left, right, center 列的属性控制 #=从左数
14、起,具有指定属性的列的列数 #=left, right, center,表格中边框的显示,显示所有 4 个边框 只显示上边框 只显示下边框 只显示上、下边框 只显示左、右边框 只显示左边框 只显示右边框 不显示任何边框 ,表格中分隔线(Rules)的显示,显示所有分隔线 只显示组(Groups)与组之间的分隔线 只显示行与行之间的分隔线 只显示列与列之间的分隔线 不显示任何分隔线 ,框架基本语法, . . 在 标记后的文字将只出现在不支持 FRAMES 的浏览器中。 . ,各窗口的尺寸设置, 纵向排列多个窗口: 横向排列多个窗口: COLS JavaScript是 一 种脚本 (Script)
15、语 言 ,面 向 非 程 序 设 计 人 员 编 写Web页、 增 加编 写 交 互 界 面 灵 活 性 的 一 种简洁 易 懂 的 语 言 。 JavaScript源 代 码 无 须 编 译 JavaScript无 须 特 殊 开 发 环 境,JAVAscript特点,(1)节 省 了 CGI的 交 互 时 间 (2)节 省 了 浏 览 者 的 访 问 时 间 和 网 络 的流量量 (3)将 Java Applet作 为 处 理 对 象,Javascript语法,赋值语句 name=“homepage”; var today=new Date(); 表达式 var anExpression=
16、“3*(4/5)”,数据类型,字符串 单引号或双引号 “18” 数字型 整数 浮点 布尔型,操作符,算术操作符 逻辑操作符 位操作符 赋值操作符 操作符优先级,保留字,abstract boolean break byte case catch char class const continue default do double else extends false final finally float for function goto if implements import in instanceof int interface long native new null packag
17、e private protected public return short static super switch synchronized this throw throws transient true try var void while with,变量,变量申明不是必须的 var h1=3; 变量命名规则 第一个必须是字母或者下划线 后面必须是字母、下划线与数字 不能是保留字,变量转换,Var h1=1; Var h2=10; Var h3=“count from ”; H3+=h1+”to”+h2+”.”; h1+=1+”10”;,强制类型转化,parseInt() parseF
18、loat() var h1=0; H1+=1+parseInt(“10”)+parseFloat(“10.5”);,变量域,全局 局部,JAVASCRIPT中的函数,创建函数,Function与javascript语句组成,HTML TITLEThis is a test/TITLE HEAD SCRIPT LANGUAGE=JavaScript !- to hide script contents from old browsers / end hiding contents from old browsers- /SCRIPT /HEAD BODY This is a test: SCRI
19、PT LANGUAGE=JavaScript document.write Hello! /SCRIPT /BODY /HTML,一个简单的例子,函数调用的例子,HTML TITLEThis is a functions test /TITLE HEAD SCRIPT LANGUAGE=JavaScript !- to hide script contents from old browsers function square(i) document.write(The call passed,i,to the square function., ) return i*i document.w
20、rite(The function re-turned,square(8) ,.) /end hiding contents from old drowsers - /SCRIPT /HEAD BODY BR All done. /BODY /HTML,计算例子,HTML TITLEForm Object example /TITLE HEAD SCRIPT LANGUAGE=JavaScript function compute(obj) obj.result.value=eval(obj.expr.value) /SCRIPT /HEAD BODY FORM NAME=evalform M
21、ETHOD=get Enter an expression: TNPUT TYPE=textNAME=expr SIZE=20 BR Result: INPUT TYPE=textNAME=result SIZE=15 BR INPUT TYPE=buttonNAME=Bottom1 VALUE=Calculate onClick=compute(this.form) /FORM /BODY /HTML,Javascript对象列表,anchor applet button checkbox Date document form history link location Math passw
22、ord radioButton reset selection string submit text textArea window,Javacript对象属性,内部对象,数组对象 字符串对象 数学对象 日期对象,数组对象,var table=new array(17) var row=new array(17) for ( var j=0;jtable.length;j+) for ( var i=0;irow.length;i+) rowI=(i+”*”+j+”=“+i*j); ,数组对象的语法,New array() New array(size) New array(element0,
23、e1,en) 单个元素用 表示 如x4 起始编号为0,数组对象的方法,Join方法 Sort方法,字符串对象,语法形式: Stringobj.method Var h3; H3=new string(“欢迎”);,数学对象,语法 Mperty | method 属性 Var radius=2; Var h1=Math.PI*radius*radius; 方法 H1=math.power(radius,3);,日期对象,语法 Var newdateobj=new Date(); Var newdateobj=new Date(year,month,day); Var newdate
24、obj=new Date(year,month,day,hours,minutes,seconds); Var newdateobj=new Date(“year,month,day,hours,minutes,seconds”);,创建自己的对象,面向对象的方法 Fuction cookie() 使用 Var bread=new cookie(“whear”,”yellow”,0.2,”circle”,true,true,true); Bread.butter=true;,条件语句,If condition Statement1 Else Statement2,For语句,For ( ini
25、tialization;test;increment) statement,While语句,While (expression) statement,break,跳出当前的循环 Break;,Continue语句,停止当前循环,直接进行下次循环 Continue;,Return语句,返回值 Return 表达式;,对象操作语句 for in,对象或数组的每个元素,作一条语句 For ( variable in object | array ) statement,function,产生一个新函数,new,创建对象,分配内存空间 New constructor,Var,申明变量 Var vari
26、able=value,variable2=value2,with,为一个语句建立默认对象,进入对象内部 With ( object) Statement With (math) X=cos(3*PI)+sin(LN10(2)) 比较: X=math.cos(3*m ath.PI)+math.sin(math.ln10(2),注释,/ /*/,状态栏显示时间 将下代码copy入你网页的和中的合适地方即可。 12) ? hours -12 :hours),timeValue += (minutes = 12) ? P.M. : A.M. window.status = timeValue; tim
27、erID = setTimeout(showtime(),1000); timerRunning = true; function startclock () stopclock(); showtime(); - 将你Html文件的改为如下: ,弹出窗口的制作 有时候你需要在进入网站的同时,弹出一个小窗口,告诉来访者最新的消息 或则调查,广告之类的东西,实现的方法很简单,将下面的代码插入 之间就可以了: ,setTimeout函数,JavaScript提供了一个很有用的函数setTimeout(),它能在设定的时间之后,对某一事作出反应。相当于其它高级语言中的定时器。 调用格式为: timeo
28、utID=setTimeout(expression,msec) 参数说明: timeoutID是一个仅供clearTimeout()终止事件用的标识 expression字符表达式即对象属性 msec毫秒数,表示多少毫秒以后事件动作JavaScript通过对window.status操作实现状? 行显示。对状态行编程实际上就是先对window.status赋值,再通过setTimeout()函数控制显示实现动态效果。,示例1.状态行闪烁状态行闪烁的原理非常简单,每隔0.5秒在状态行显示一行信息,再隔 0.5秒清空状态行,这样循环操作即实现闪烁的效果。 状态行闪烁 !- Beginning o
29、f JavaScript Applet- var msg = 利用JavaScript实现状态行闪烁效果; var flashed =true; function flash() /建立闪烁函数 ,if (flashed =true) /判断上一状态是显示还是清空 window.status=msg; /将信息显示在状态行 flashed=false; else window.status=; /清空状态行 flashed=true; setTimeout(flash(),500); /提供下一个循环调用的函数 /End of JavaScript Code - /打开该页时自动装入闪烁函数
30、,substring(start, length)函数,它和fox等高级语言? 类似函数的用法一样,截取指定位置某一长度的字符串。, 状态行滚动 msg.length) i = 0; window.setTimeout(Scroll(),200); / End of JavaScript Code- ,Math.random()。显然,它是一个产生随机数的函数, 状态行随机显示 ,状态行逐字滚动下面的程序将信息一个字一个字地向左循环滚动,它还说明了处 理汉字和英文的异同。 状态行逐字滚动 ,作业,制作垂直方向的走马灯 制作状态栏中显示当前时间 制作一个网站,设置在网站内进行关键词检索 设计网页
31、,能够定期更换背景图片 设计按钮,当鼠标移动到按钮上,不需要按下左键,就直接跳到按钮的超级链接 设计一个页面,其中一段文字能够不断地随机变换颜色,数据库概论,数据库系统是一个实际可运行的存储、维护和应用系统提供 数据的软件系统,是存储介质、处理对象和管理系统的集合体。 由软件、数据库和数据管理员组成,软件,包括操作系统 各种宿主语言 实用程序 数据库管理系统,数据库,依照某种数据模型组织起来并存放二级存储器中的数据集合 为多个应用服务,独立于具体的应用程序 数据库由数据 库管理系统统一管理,数据的插入、修改和检索均要通过数据库 管理系统进行 数据库管理系统是一种系统软件,它的主要功能 维护数据
32、库并有效地访问数据库中任意部分数据。对数据库的维护包括保持数据的完整性、一致性和安全性,数据管理员,负责 创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。 数据库管理员一般是由业务水平较高、资历较深的人员 担任,计算机应用的一个里程碑,使得计算 机应用从以科学计算为主转向以数据处理为主 使计算机得以在各行各业乃至家庭普遍使用 文件系统不提供对任意部分数据的快速访 问,而这对数据量不断增大的应用来说是至关重要的 优化快速访问技术,历史,1969年美国的IBM公司开发了第一个数据库系统IMS ,一个层次数据库系统 同年,美国的数据系统语言委员会(CODASYL) 下属的数据库任务组
33、提出了著名的DBTG报告,并在1970年提出了该报告的修订版。定义了数据库操纵语言、 模式定义语言和子模式定义语言的概念 。 七十年代初,E.F.Codd提出了关系数据模型的概念,提出了关系代数和关系演算 确立了完 整的关系理论、数据依赖理论以及关系数据库的设计理论 等等,历史,1986年美国国家标准协会 (ANSI)通过了关系数据库查询语言SQL的文本标准。 80年代以后,百家争鸣,产生了演绎数据库(逻辑数据库,知识库)、面向 对象数据库、工程数据库、时态数据库、地理数据库、模 糊数据库、积极数据库、等新型数据库的研究 到八十年代后期和九十年代初期,出现了面向对象数据库系统,层次数据库,使用
34、以记录类型为结点的有序树或森林结构的数据模型。 记录类型间组成层次式联系,表示实体间的一对多联系。在层次模型中,每棵有序树有若干个记录 类型作为它的结点,每个记录类型可以有若干字段。不同记录类型应有不同的名字,同一个记录类型中不同字段的名字也应不相同。在一棵有序树中,树是以前序的顺序遍历的。上层记录类型和子记录类型,它们的联系是一对多的联系。没有上层记录类型的记录类型称为树的根。除根记录类型外,每个记录类型称为从属记录类型,都有唯一的上层记录类型。IBM公司研制的IMS系统是典型的层次系 统。IMS系统有许多版本,最早于1968年研制成功了IMS-1。,网状数据库,处理以记录类型为结点的网状数
35、据模型的数据库。处 理方法是将网状结构分解成若干棵二级树结构,称为系。系类型是二个或二个以上的记录类型之间联系的一种描述。在一个系类型中,有一个记录类型处于主导地位,称为系主记录类型,其它称为成员记录类型。系主和成员之间的联系是一对多的联系。网状数据库的代表是DBTG系统。 1969年美国的CODASYL组织提出了一份“DBTG报告”,以后,根据DBTG报告实现的系统一般称为DBTG系统。现有的网状 数据库系统大都是采用DBTG方案的。DBTG系统是典型的三级结构体系:子模式、模式、存储模式。相应的数据定义语言分别称为子模式定义语言SSDDL,模式定义语言SDDL,设备介质控制语言DMCL。另
36、外还有数据操纵语言DML。,关系数据库,以二维表格(关系)作为数据模型的数据库称为关系 数据库。关系的每个行称为一条记录,每一个列称为一个 属性(或字段),所有属性名称构成的集合称为关系模式。 关系模型自1970年由美国IBM公司的E.F.Codd提出后,以其 简明的结构(只有唯一的数据模型-关系)和严密的理论 基础,吸引了大批计算机专家投身于关系理论的研究。整 个70年代以及80年代前期,关系数据库的研究得到了突飞猛进的发展。有关关系数据库的新理论与技术不断涌现,如关系代数和关系演算理论、数据依赖、规范化理论、泛关系理论、无限超图理论、查询优化技术、符号表跟踪技术、空值以及视图修改问题等。目
37、前, 关系型的数据库管 理系统 数据库管理系统 已经很多,为当今数据库的系统,各种实现方法, 优化方法比较完善, 关系数据库的设计也 有一整套完善的规范化理论以及提出了第一、二、三、BC、四、五范式, 以确保设计的数据库尽量减少数据冗余及各 种操作异常现象。关系数据库是比较理想的数据处理系统。,演绎数据库,是指具有演绎推理能力的数据库。一般地,它用一个 数据库管理系统和一个规则管理系统来实现。将推理用的 事实数据存放在数据库中,称为外延数据库;用逻辑规则 定义要导出的事实,称为内涵数据库。主要研究内容为, 如何有效地计算逻辑规则推理。具体为:递归查询的优化、 规则的一致性维护等。,统计数据库,
38、管理统计数据的数据库系统。这类数据库包含有大量 的数据记录,但其目的是向用户提供各种统计汇总信息, 而不是提供单个记录的信息。,面向对象数据库,面向对象数据库和面向对象语言源于同一概念,但面 向对象数据库又增加了一些传统的数据库所有的特征。如持久性、并发控制、可恢复性、一致性和查询数据库的能力。也就是说一个面向对象的数据库系统必须满足二个标准:它首先应该是一个数据库管理系统,并且是一个面向对象的系统,即在一个可能的范围内,它与当前的一批面向对象的程序设计语言一致。其面向对象的特征包括复杂对象、对象标识、封装性、类型或类、继承性、可扩充性 及计算完备性。,工程数据库,存放工程数据的数据库。工程数
39、据包括产品设计数据、 产品模型数据、材料数据、绘图数据、成组技术编码数据、测试数据、质量优化数据等等。目前的实际做法是将传统的数据模型加以扩充以适应工程数据的需要,归纳起来有以下几种:扩充的关系模型、扩充的网状模型、语义模型、混合模型等。另外,处理工程数据是面向对象数据库系统 的研究动因之一。因此,面向对象数具模型将是最合适的。,时态数据库,指能够处理时间信息的数据库。时间是现实世界的组 成部分,数据是在一定的时间范围内获得解释的。传统数 据库缺乏记录和处理时间信息的能力,如:无法处理“七 年前李玲的工资是多少”。时态数据库所处理的时间有三 种:事务时间、有效时间和用户自定义时间。事务时间是
40、指信息被放入数据库时的时间。处理事务时间的方法是存 储所有数据库的状态,即每处理一个事务就存储一个数据 库状态,修改只能对最后一个状态进行,但可以查询任意 一个状态。有效时间是有效地模型化企业的时间,处理方 法是对数据库中的每个关系只记录单个历史状态。在时态 数据库中,上两种方法是同时使用的。一个时态关系是一 个历史状态的序列,每个历史状态是能够表示有效时间的 完整的历史关系。每个事务的提交将导致一个新的历史状 态的的产生,因此时态关系只会增加。另外,时态数据库 还允许用户自定义时间,它可以由用户定义时间属性来实 现,不需要专门技术的支持。,模糊数据库,指能够处理模糊数据的数据库。一般的数据库
41、都是以 二值逻辑和精确的数据工具为基础的,不能表示许多模糊 不清的事情。随着模糊数学理论体系的建立,人们可以用 数量来描述模糊事件并能进行模糊运算。这样就可以把不 完全性、不确定性、模糊性引入数据库系统中,从而形成 模糊数据库。模糊数据库研究主要有两方面,首先是如何 在数据库中存放模糊数据;其次是定义各种运算建立模糊 数据上的代数。模糊数的表示主要有模糊区间数、模糊中 心数、模糊集合数和隶属函数等。,多媒体数据库,用计算机管理庞大复杂的多媒体(multimedia)数据 (包括数值(number)、字符串(string)、文本(text)、 图形(graphics)、图象(image)、声音(
42、sound)、视象 (video)以及其它计算机所能处理的信息等等)是现代计 算机应用领域(CAD、CIMS、CASE、OA、AI等)对数据库 管理系统所提出的新要求,未来的数据库管理系统应能有 效地管理这些多媒体数据,从而导致多媒体数据库系统的 研究。即管理多媒体数据的数据库系统为多媒体系统。在 目前的绝大部分多媒体系统中,多媒体数据是存放在外部 文件中的,而在数据库中只存放指向该文件的指针。这样, 数据操纵可以直接对文件进行,而不必通过数据库管理系 统。这就是说,多媒体数据还没有放入数据库中,即还不 能称为多媒体数据库管理系统,只能称多媒体数据处理系 统。从发展的观点来看,将来会有多媒体数
43、据库管理系统 的。,数据库基本概念事务处理,事务是这样一种机制,它确保多个SQL语句被当作单个工作单 元来处理。事务具有以下的作用: 一致性:同时进行的查询和更新彼此不会发生冲突,其他 用户不会看到发生了变化但尚未提交的数据。 可恢复性:一旦系统故障,数据库会自动地完全恢复未完 成的事务。,事务与一致性,务是完整性的单位,一个事务的执行是把数据库从一个一 致的状态转换成另一个一致的状态。 如果事务孤立执行时 是正确的,但如果多个事务并发交错地执行,就可能相互干扰,造成数据库状态的不一致。 不加控制的并发存取会产生以下错误 丢失修改 :一个修改会覆盖掉另一个修改 读的不可重复性 :多个事务按某种
44、时间顺序存取若干数据时 脏读(DIRDY DATA),读的不一致性 光标带来的当前值的混乱 未释放修改造成连锁退出 一事务在对一表更新时,另外的事务却修改或删除此表的 定义。,事务和恢复,数据库本身肩负着管理事务的责任。事务是最小的逻辑工作单元,在这个工作单元中,对数据库的所有更新工作,要么必须全部成功,要么必须全部失败(回退)。只要应用程序指定了某段程序为一个事务并做了相应的处理(提交或回退),数据库系统会自动维护事务本身的特性。,ORACLE数据库的事务定义,ORACLE事务从COMMIT、ROLLBACK、连接到数据库或开始第一 条可执行的SQL语句时开始,到一条COMMIT、ROLLB
45、ACK语句或退出 数据库时结束。 利用ROLLBACK语句可以在COMMIT命令前随时撤消或回退一个 事务。可以回退整个事务,也可以会退部分事务,但是不能回退 一个已经被提交的事务。回退部分事务的ROLLBACK命令为: ROLLBACK to savepoint 存储点名 存储点是用户放入事务中的标记,用来表示一个可被回退的 位置。存储点通过在事务中放入一SAVEPOINT命令而被插入。该 命令的语法是: SAVEPOINT 存储点名 如果在ROLLBACK语句中没有给出存储点名,则整个事务被回 退。,SYBASE数据库的事务定义,SYBASE通过使用BEGIN TRANsaction和CO
46、MMIT TRANsaction命令指 示SQL将任意数目的语句作为一个单元来处理。 ROLLBACK TRANsaction 命令则允许用户恢复到事务的开始,或恢复到事务内部已经被用SAVE TRANsaction命令定义的存储点上。 BEGIN TRANsaction和COMMIT TRANsaction能够包含任意数目的SQL 语句和存储过程,方法很简单: BEGIN TRANsaction 事务名称 COMMIT TRANsaction 如果一个事务由于某些故障或者由于用户改变主意而必须在提交前取消它,则数据库被恢复到这些语句和过程执行之前的状态。,SYBASE数据库的事务定义,利用R
47、OLLBACK TRANsaction命令可以在COMMIT TRANsaction命令 前随时回退一个事务。可以回退整个事务,也可以回退部分事务,但 是不能回退一个已经被提交的事务。ROLLBACK TRANsaction命令为: ROLLBACK TRANsaction 事务名|存储点名 存储点名是用户放入事务中的标记,用来表示一个可以被回退的 位置。存储点名通过在事务中放入一个SAVE TRANsaction命令而被插 入。该命令的句法是: SAVE TRANsaction 存储点名 如果在ROLLBACK TRANsaction中没有给出存储点名或事务名,则 事务被回退到批处理中的第一
48、个BEGIN TRANsaction语句处。,SQL语言介绍,SQL(Structure Query Language)语言是数据库的核心语言。 SQL的发展是从1974年开始的,其发展过程如下: 1974年-由Boyce和Chamberlin提出,当时称SEQUEL。 1976年-IBM公司的Sanjase研究所在研制RDBMS SYSTEM R 时改为SQL。 1979年-ORACLE公司发表第一个基于SQL的商业化RDBMS产品。 1982年-IBM公司出版第一个RDBMS语言SQL/DS。 1985年-IBM公司出版第一个RDBMS语言DB2。 1986年-美国国家标准化组织ANSI宣
49、布SQL作为数据库工业标准。,SQL语言,SQL是一个标准的数据库语言,是面向集合的描述性非过程化语言。 功能强,效率高,简单易学易维护 它是非过程性语言,即大多数语句都是独立执行的,与上下文无关,而 绝大部分应用都是一个完整的过程,显然用SQL完全实现这些功能是很困 难的。所以大多数数据库公司为了解决此问题,作了如下两方面的工作: (1)扩充SQL,在SQL中引入过程性结构; (2)把SQL嵌入到高级语言中, 以便一起完成一个完整的应用。,SQL语言的分类,SQL语言共分为四大类: 数据查询语言DQL, 数据操纵语言DML, 数据定义语言DDL, 数据控制语言DCL。,数据查询语言DQL,数
50、据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE 子句组成的查询块: SELECT FROM WHERE,数据操纵语言,数据操纵语言DML主要有三种形式: 1) 插入:INSERT 2) 更新:UPDATE 3) 删除:DELETE,数据定义语言DDL,数据定义语言DDL用来创建数据库中的各种对象-表、视图、 索引、同义词、聚簇等如: CREATE TABLE/VIEW/INDEX/SYN/CLUSTER 表 视图 索引 同义词 簇,数据控制语言DCL,数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制 数据库操纵事务发生的时间及效果,对数据库实行监视等。如:
51、1) GRANT:授权。 2) ROLLBACK WORK TO SAVEPOINT:回退到某一点。 3) COMMIT WORK:提交。,数据控制语句(ORACLE),提交-COMMIT 在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看 到所做的事情,别人只有在最后提交完成后才可以看到。 提交数据有三种类型:显式提交、隐式提交及自动提交。,提交方式,(1) 显式提交 用COMMIT命令直接完成的提交为显式提交。其格式为: SQLCOMMIT; (2) 隐式提交 用SQL命令间接完成的提交为隐式提交。这些命令是: ALTER,
52、AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP, EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。 (3) 自动提交 若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后, 系统将自动进行提交,这就是自动提交。其格式为: SQLSET AUTOCOMMIT ON;,回滚-ROLLBACK,回滚命令使数据库状态回到上次最后提交的状态。其格式为: SQLROLLBACK;,触发器,触发器是一种特殊的存储过程,它在插入,删除或修改特定表中 的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的 数据控制能力。数
53、据库触发器有以下的作用: 安全性。可以基于数据库的值使用户具有操作数据库的某种权利。 可以基于时间限制用户的操作,例如不允许下班后和节假日 修改数据库数据。 可以基于数据库中的数据限制用户的操作,例如不允许股票的价格的升幅一次超过10%。 审计。可以跟踪用户对数据库的操作。 审计用户操作数据库的语句。 把用户对数据库的更新写入审计表。,实现复杂的数据完整性规则。 实现非标准的数据完整性检查和约束。触发器可产生比规则 更为复杂的限制。与规则不同,触发器可以引用列或数据库对 象。例如,触发器可回退任何企图吃进超过自己保证金的期货。 提供可变的缺省值。 实现复杂的非标准的数据库相关完整性规则。触发器
54、可以对数 据库中相关的表进行连环更新。例如,在auths表author_code列上的 删除触发器可导致相应删除在其它表中的与之匹配的行。 在修改或删除时级联修改或删除其它表中的与之匹配的行。 在修改或删除时把其它表中的与之匹配的行设成NULL值。 在修改或删除时把其它表中的与之匹配的行级联设成缺省值。 触发器能够拒绝或回退那些破坏相关完整性的变化,取消试图进行数据更新的事务。当插入一个与其主健不匹配的外部键 时,这种触发器会起作用。例如,可以在books.author_code列上生成一个插入触发器,如果新值与auths.author_code列 中的某值不匹配时,插入被回退。 同步实时地复
55、制表中的数据。 自动计算数据值,如果数据的值达到了一定的要求,则进行特 定的处理。例如,如果公司的帐号上的资金低于5万元则立即给财务人员发送警告数据。,Oracle触发器,ORACLE与SYBASE数据库的触发器有一定的区别,下面将分别讲述 这两种数据库触发器的作用和写法。 ORACLE产生数据库触发器的语法为: create or replace trigger 触发器名 触发时间 触发事件 on 表名 for each row pl/sql 语句 其中: 触发器名:触发器对象的名称。由于触发器是数据库自动执行 的,因此该名称只是一个名称,没有实质的用途。 触发时间:指明触发器何时执行,该值
56、可取: before-表示在数据库动作之前触发器执行;,after-表示在数据库动作之后出发器执行。 触发事件:指明哪些数据库动作会触发此触发器: insert:数据库插入会触发此触发器; update:数据库修改会触发此触发器; delete:数据库删除会触发此触发器。 表 名:数据库触发器所在的表。 for each row:对表的每一行触发器执行一次。如果没有这一 选项,则只对整个表执行一次。 举例:下面的触发器在更新表auths之前触发,目的是不允许在 周末修改表: create trigger auth_secure before insert or update or delete
57、 /对整表更新前触发 on auths begin if(to_char(sysdate,DY)=SUN RAISE_APPLICATION_ERROR(-20600,不能在周末修改表auths); end if; end,SYBASE触发器,SYBASE数据库触发器的作用与ORACLE非常类似,仅有较小的差异。 SYBASE产生触发器的语法为: CREATE TRIGGER 触发器名 ON 表名 FOR INSERT,UPDATE,DELETE AS SQL_statement | FOR INSERT,UPDATE AS IF UPDATE(column_name) AND|OR UPDA
58、TE(column_name). SQL_statements 上面FOR子句用来指定在触发器上的哪些数据更新命令可激活该 触发器。IF UPDATE子句检查对指定列的操作类型,在IF UPDATE子句 中可指定多个列。,与ORACLE不同,对于每条SQL语句,触发器只执行一次。触发器 在数据更新语句完成以后立即执行。触发器和启动它的语句被当作一 个事务处理,事务可以在触发器中回退。 下面举例说明SYBASE触发器的写法。 create trigger forinsert_books on books for insert as if(select count(*) from auths,in
59、serted where auths.author_code=insert.author_code)!=rowcount begin rollback transaction print books 表中 author_code 列的值在auths 表,存储过程,存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化 后存储在数据库服务器中,使用时只要调用即可。在ORACLE中,若干个 有联系的过程可以组合在一起构成程序包。,存储过程的优点,存储过程的能力大大增强了SQL语言的功能和灵活性。存储过程可 以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的 运算。 可保证数据的安全性和完整性。 通过存储过程可以使没有权限的用户在控制之下间接地存取数据 库,从而保证数据的安全。 通过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国自走轮式谷物联合收割机行业市场现状分析及竞争格局与投资发展报告
- 2025至2030中国自助餐行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国自动计量包装秤行业市场占有率及投资前景评估规划报告
- 2025至2030中国自动注塑机行业市场占有率及投资前景评估规划报告
- 文化创意产业的知识产权保护策略
- 2025至2030中国自主物料搬运设备行业市场深度研究及发展前景投资可行性分析报告
- 2025至2030中国脱发和生长疗法和产品销售行业市场深度研究及发展前景投资可行性分析报告
- 2025至2030中国能量紧致肌肤行业产业运行态势及投资规划深度研究报告
- 2025至2030中国肠外营养产品行业产业运行态势及投资规划深度研究报告
- 2025至2030中国缝合机行业产业运行态势及投资规划深度研究报告
- 林规发防护林造林工程投资估算指标
- 四年级上册 口算题 1000题
- 九上道法知识点梳理(全册)-九年级道德与法治上册必备知识梳理总结(部编版)
- YB/T 5202.1-2003不定形耐火材料试样制备方法第1部分:耐火浇注料
- GB/T 700-2006碳素结构钢
- GB/T 41419-2022数字化试衣虚拟人体用术语和定义
- GB/T 24218.1-2009纺织品非织造布试验方法第1部分:单位面积质量的测定
- GB/T 1633-2000热塑性塑料维卡软化温度(VST)的测定
- 《病毒学》(研究生)全册配套完整课件
- 第十七章其他熔化焊接与热切割作业课件
- 腧穴总论 2特定穴课件
评论
0/150
提交评论