第一篇:大型数据库技术教案01
课
题
概述
目的要求
1、了解Oracle产品简史,学习大型数据库技术课程的意义。
2、了解网格计算的概念及特点及其在数据库中的技术应用。
3、理解数据库管理的主要工作内容。
教学重点
1、Oracle产品简史,网格计算的概念和特点
2、Oracle Database 10g系统特点,数据库技术特点
3、数据库管理员的关键任务
教学难点
网格计算的概念和特点
教学课时
教学方法
大屏幕投影、PowerPoint幻灯课件
教学内容与步骤
1.1 Oracle产品简史 1.2 网格计算的概念和特点 1.3 Oracle Database 10g系统特点 1.4 数据库技术特点
1.5 数据库管理员的工作任务 教学过程
导入语:Oracle Database 10g产品把我们带入了网格计算时代。Oracle Database 10g是由Oracle公司推出的数据库系统,本书将全面介绍Oracle Database 10g数据库系统的功能特点。据统计,Oracle在全球数据库市场上的占有率超过三分之一,多年来持续性地雄踞全球数据库市场霸主地位。我国于1987引进了Oracle系统,当前,Oracle公司在中国的业务取得了迅猛发展,赢得了国内许多行业主管部门、应用单位和合作伙伴的广泛信任和支持,确立了在中国数据库和电子商务应用市场的绝对领先优势。1 Oracle产品简史 × 25 = 500
Oracle,甲骨文自20世纪70成功推出Oracle产品以来,它成为世界上最大的数据库专业厂商之一。1996年,Oracle公司成功推出了专门面向中国市场的数据库产品,即Oracle 7。1997年,Oracle公司推出了基于网络计算的数据库产品,即Oracle 8。1999年,针对Internet技术的发展,Oracle公司推出了第一个基于Internet的数据库,即Oracle 8i。2001年,Oracle公司又推出了新一代Internet电子商务基础架构,即Oracle 9i。2003年9月,Oracle公司发布了其最新数据库产品,即Oracle Database 10g。网格计算的概念和特点
围绕网格计算,本节讲述两个方面的内容,首先讲述网格计算的概念,然后探索网格计算的基本特点。
背景介绍:企业IT不断承受使用越来越少的资源做好越来越多事情的压力。同时,为了应付计算需求的不可预测性和即时性,公司一般扩大服务器规模来适应高峰负载。
为了解决这些问题,出现了一种新的计算模型,即网格计算模型。但是也有其他说法:
按需计算(computing on demand)自适应计算(adaptive computing)效用计算(utility computing)托管计算(hosted computing)有机计算(organic computing)泛在计算(ubiquitous computing)网格计算的概念:核心思想是计算应当和公用设施一样可靠、深入和透明。网格计算的目标是使计算成为一项公用设施—— 一种无处不在的数据日用品。网格计算基础架构的5个特点
每一层计算堆栈上的虚拟化;
根据策略和动态需求来提供工作和资源; 集中资源以提高利用率; 自我调整和修补的自适应软件; 统一管理和供应。Oracle Database 10g系统特点 × 25 = 500
Oracle Database 10g提供了4个版本,每一个版本适用于不同的开发和部署环境。除了Oracle Database 10g系统之外,Oracle还提供了另外几种数据库产品,这些针对特殊应用需求的数据库产品大大增强了Oracle Database 10g 的功能。
本节从版本类型、可选产品和Oracle管理程序包了个方面来介绍Oracle Database 10g系统的特点。
在服务器集群上运行和调整全部应用负载的独特能力是企业网格的重要基础。利用两个主要的新功能使得管理集群数据库变得更加容易:集成的集群件/自动工作负载管理 4 数据库技术特点
本节从数据库和实例、表、视图、索引、数据存储、数据保护、可编程的结构等几个方面概括介绍Oracle Database 10g系统的技术特点。
数据库:每一个Oracle数据库都是一个数据的集合,这些数据包含在一个或多个文件中。数据库有物理和逻辑两种结构。
Oracle实例:由被称为系统全局区(system global area,SGA)的内存区域和相应的后台进程组成。这些后台进程负责SGA和数据库磁盘文件之间的交互。表:在Oracle数据库中,表是最基本的结构。Oracle Database 10g系统支持多种类型的表,这些表包括关系表、对象关系表、索引编排表、外部表、分区表、物化视图、临时表、群集表、删除的表。
视图:可以使用视图访问表中的数据。视图可以处理连接和聚集、限制返回的数据行、更改显示的列名称等。在Oracle Database 10g系统中,视图既可以是只读的,也可以是可更新的,既可以引用本地表,也可以引用远程表。
索引:为了提高对表中数据的访问效率,Oracle系统支持多种类型的索引,这些索引包括B树索引、位图索引、反转键值索引、基于函数的索引、分区索引、文本索引等。
数据存储:数据库中的所有逻辑结构都必须存储在数据库中的某个地方。Oracle系统提供了一个记录与所有对象相关的元数据的数据字典。对于需要物理空间保存的对象,Oracle系统会在一个表空间中为其分配空间。
表空间由一个或多个文件组成,数据文件可能是表空间的全部,也可能是一个表空间的一部分。× 25 = 500
数据保护:在Oracle系统中,可以完全控制数据的访问权限。可以为用户授予执行select、update等特定操作所需要的权限。可以对角色授权,然后把角色授予用户,从而简化权限的管理。
可编程的结构:SQL语言是操纵数据库的最基本的方法。
可以使用PL/SQL创建存储过程和函数,可以在查询中调用已创建的函数,过程和函数可以集中存放在程序包中。可以使用PL/SQL创建触发器,用于通知数据库当不同的事件发生时应该分别采取什么样的操作。5 数据库管理员的工作任务
在Oracle系统中,数据库管理员(database administrator,DBA)是最重要的角色。DBA的工作目标是确保Oracle系统正常高效的运行。DBA的工作是最繁忙的,无论是性能调整,还是灾难恢复,都离不开DBA的支持。一般情况下,作为一个DBA,应该做好下面12项任务。
安装和配置;容量规划;应用架构设计;管理数据库对象;存储空间管理;安全管理;备份和恢复;作业调度;网络管理;高可用性和高可伸缩性管理;故障解决 × 25 = 500
第二篇:银行通用大型数据库
银行通用大型数据库---Db2 日常实用操作 收藏
怎么没人发DB2啊,我记得我刚参加工作时面试,有一个问题是“你用过什么大型数据库?”,我当时还搞不清什么叫大型,就顺便说了FOX,ACCESS,主考的人看着我的,用一句歌词来形容就是”得意的笑,他得意的笑“,也幸好去面试的只有一个人说了个INFORMIX,我才在公司学了DB2,学了 INFORMIX,学了SOCKET,哈,看着公司一年有十亿RMB的进账,看着我每月薪水都在一把(一把是一百张,一张是一百元,哈)以上,真是感慨良多啊!哈,幸好是走过来了!
先贴点基础的,可别小看,这是你以后的基础,就像现在IBM搞培训,不到一周时间,会讲600M的文档,知识点也就讲个名字,要不老师会累死,哈!
以下是正文:
1、Load 方法装入数据:
export to tempfile of del select * from TABLENAME where not 清理条件; load from tempfile of del modified by delprioritychar replace into TABLENAME nonrecoverable;
说明:
在不相关的数据表export数据时,可以采取并发的形式,以提高效率;
TABLENAME指待清理table的名称;
modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况;replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;
nonrecoverable无日志方式装入;
2、查找当前的应用:
db2 list application |grep DBSNAME;
3、删除当前正在使用的application:
db2 “force application(Id1,Id2,Id3)”
Id1,Id2,Id3 是List显示的应用号;
4、查看当前应用号的执行状态:
db2 get snapshot for application agentid 299 |grep Row5、查看数据库参数:
db2 get db cfg for
6、修改数据库的Log数据:
db2 update db cfg using <参数名> <参数值>、Db2Stop Force的用法:
在进行Bind的时候出现如下错误:
SQL0082C An error has occurred which has terminated processing.SQL0092N No package was created because of previous errors.SQL0091N Binding was ended with “3” errors and “0” warnings.主要是表文件被加锁,不能继续使用;
在进行stop的时候报错:db2stop
8/03/2005 21:46:53 0 0SQL1025N The database manager was not stopped because databases are still active.SQL1025N The database manager was not stopped because databases are still active.需要使用如下命令可以解决这个问题: db2stop force
08/03/2005 21:47:4900SQL1064N DB2STOP processing was successful.SQL1064N DB2STOP processing was successful.然后启动数据库db2start,连接数据库db2s后,重新进行bind即可。
8、缓冲池参数修改:
db2 alter bufferpool ibmdefaultbp size 10240
查看本表的数据内容如下:
db2 “select * from syscat.bufferpools”;
9、DB2 日志处理:
DB2日志是以文件的形式存放在文件系统中,分为两种模式:循环日志和归档日志。当创建新数据库时,日志的缺省模式是循环日志。在这种模式下,只能实现数据库的脱机备份和恢复。如果要实现联机备份和恢复,必须设为归档日志模式。目前在综合业务系统中,设置的均是归档日志模式;其它系统(如事后监督、经营决策、中间业务等)一般都设置为循环日志模式。至于采用何种模式,可以通过修改数据库配置参数(LOGRETAIN)来实现: 归档日志模式:db2 update db cfg for
必须按照以下正确的步骤进行操作:要求必须使用DB2命令PRUNE进行清理,不建议使用rm命令删除。删除前应保证应用已停止(即联机已下来)。查看当前使用的日志文件目录及第一活动日志文件用 “db2 get db cfg for
$ db2 connect to
$ db2 prune logfile prior to S???.LOG
注:S???.LOG为查看到的第一活动日志文件。此命令可以将当前第一活动日志文件之前的归档日志文件全部删除。
11、如何清理db2diag.log文件
db2diag.log,是用来记录DB2数据库运行中的信息的文件。可以通过此文件,查看记录的有关DB2数据库详细的错误信息。此文件也是不断增大的,需要定期进行清理。可以通过查看实例的配置参数DIAGPATH,来确定db2diag.log文件是放在哪个目录下:db2 get dbm cfg 如果Diagnostic data directory path(DIAGPATH)= /home/db2inst1/sqllib/db2dump,则此文件是放在/home/db2inst1/sqllib/db2dump目录下。当文件系统/home的使用率达到80%-90%左右时,应及时删除db2diag.log文件。请按以下正确步骤操作:确认应用(如BTP)、DB2已经停止。将原db2diag.log文件备份到其它文件系统下。删除db2diag.log文件。删除后,DB2会自动创建一个新的文件。
12、Load 操作
在进行load的时候
db2 “load from acmmst.txt of del modified by coldel| replace into acmmst nonrecoverable ”
由于数据不规范出现错误,强行中断以后,进行操作的时候出现如下错误:
SQL0668N Operation not allowed for reason code ”3“ on table ”BTP.ACMMST“.SQLSTATE=57016
此时,进行反方向操作即可:
db2 ”load from /dev/null of del terminate into acmmst nonrecoverable“。
如果没有使用参数nonrecoverable,则会出现数据库状态不正确的情况,使用:
db2 list tablesapces show detail 查看状态,如果不是正常状态,则脱机状态进行备份即可。
两个表文件之间UPDATE的方法:
db2 ”update cdmcrd set offset =(select cdmlsl.offset from cdmlsl where cdmlsl.crdno=cdmcrd.crdno)where cdmcrd.crdno in(select cdmlsl.crdno from cdmlsl)
13、多字段条件查询和修改:
表A中的字段有actno, cnlno,bal,pwd;表B中的字段为Actno,Cnlno,TxnAmt;目的是将A表中的bal修改为B表中的TxnAmt,命令:
db2 “update A set bal=(select txnamt from B where actno=A.actno and cnlno=A.Cnlno)where A.actno||A.cnlno in(select Actno||cnlno from B);
14、多条件匹配查询
查询某个表中条件是B?AAA的记录:
db2 ”select * from A where actno like 'B_AAA%'“.查询数据中存在某些字符的记录:
db2 ”select * from A where actno like '%-AAA%“.15/数据库恢复的处理
进行数据库恢复的时候使用以下的命令:
restore db db1 to /tstdb2/catalog into db newlogpath /tstdb2/db2log buffer 2048
replace existing redirect parallelism 16;
set tablespace containers for 1 using(path '/tstdb2/db2tmp');
set tablespace containers for 2 using
(device '/dev/rtstcontlv00' 2621440, device '/dev/rtstcontlv01' 2621440,device '/dev/rtstcontlv02' 2621440, device '/dev/rtstcontlv03' 2621440);
restore db db1 continue;
恢复完成以后执行命令db2s时报如下的错误:
P570:>db2s
SQL1117N A connection to or activation of database ”DB" cannot be made because of ROLL-FORWARD PENDING.SQLSTATE=57019
DB21034E The command was processed as an SQL statement because it
was not a
valid Command Line Processor command.During SQL processing it returned:
SQL1024N A database connection does not exist.SQLSTATE=08003 解决办法如下:
P570:>db2 rollforward db db to end of logs and complete
Rollforward Status
Input database alias= db
Number of nodes have returned status= 1
Node number= 0
Rollforward status= not pending
Next log file to be read=
Log files processed=-
Last committed transaction= 2005-11-20-10.59.23.000000
DB20000I The ROLLFORWARD command completed successfully.
第三篇:数据库教案
任务引入 [4分钟]
布置任务 [4分钟] 任务分析 [6分钟] 任务实施 [35分钟]
在手机商城中,当用户注册时,要填写用户注册表单,那么,我们填写的数据就要保存在后台数据库中,当注册成功后用户登
录时,就可以直接从后台数据库的注册信息进行信息验证。现在,教师引导 我们就在MOBILE数据库中创建一个用户注册的数据表吧。
任务:
在MOBILE数据库中创建数据表,并为表中各列设置恰当 的数据类型,设置主键。
要完成手机商城数据库中数据表创建,可按照前面设计阶段 的各表结构建立相关数据表,并按照设计阶段的分析为表中各列 设置恰当的数据类型以及设置主键。
一、使用MySQL界面方式创建手机商城数据库中的数据表。学生操作 具体见任务书
教师指导
二、使用SQL命令创建数据表。
(商品大类别表)CREATE TABLE class
(复习数据classID INT PRIMARY KEY, 类型 classNAME CHAR(20)NULL);
三、修改表
ALTER TABLE用于更改原有表的结构。例如,可以增加或 删减列,创建或取消索引,更改原有列的类型,重新命名列或表,还可以更改表的评注和表的类型。
语法格式:
ALTER [IGNORE] TABLE tbl_name
alter_specification [, alter_specification]...相关知识 [13分钟] alter_specification:
ADD [COLUMN] column_definition [FIRST | AFTER col_name ]
/*添加列*/
| ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
/*修改默认值*/
| CHANGE [COLUMN] old_col_name column_definition
/*对列重命名*/
[FIRST|AFTER col_name]
| MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
/*修改列类型*/
| DROP [COLUMN] col_name /*删除列*/
| RENAME [TO] new_tbl_name
/*重命名该表*/
| ORDER BY col_name
/*排序*/
| CONVERT TO CHARACTER SET charset_name [COLLATE collation_name] /*将字符集转换为二进制*/
|
[DEFAULT]
CHARACTER
SET
charset_name [COLLATE collation_name]
/*修改默认字符集*/
| table_options
| 列或表中索引项的增、删、改
四、复制表 语法格式:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[()LIKE old_tbl_name [ ] ]
| [AS(select_statement)];说明:
学生练习
学生练习[25分钟] 小结 [3分钟]
使用LIKE关键字创建一个与old_table_name表相同结构的新表,列名、数据类型、空指定和索引也将复制,但是表的内容不会复制,因此创建的新表是一个空表。使用AS关键字可以复制表的内容,但索引和完整性约束是不会复制的。select_statement表示一个表达式,例如,可以是一条SELECT语句。
完善表的设计,并输入记录数据。
本次课我们学习了创建数据表的另一种方法,以及表的修改和复制等方法,同学们要在课后多加练习。
第四篇:数据库教案
任务引入 [4分钟]
请同学们回忆在设计关系时定义了哪些主键? 引导学生思考:
学生浏览相关资料
有的关系中的某些字段是需要参考另外一个关系中的主键,布置任务 [4分钟] 任务实施 [45分钟]
相关知识 [34分钟]
怎样在MySQL中实现这些?
任务:正确设置相关表的主键、外键等约束,部分实现表的数据完整性。
实施步骤:
1.教师将学生分组,每个小组经商讨后,进一步明确需在表中实现的数据完整性。
2.小组成员先尝试实现主键约束;再尝试实现外键约束、UNQUE约束、CHECK约束、默认值等。3.学生访问参考网址,自行搜索所需资料:
http://www.xiexiebang.com http://www.xiexiebang.com ……
4.在实现过程中,教师提示引导同学们参考教材,最后整理设计结果并形成文件,上交到指定位置。相关知识
二、数据的完整性
数据库完整性就是确保数据库中数据的一致性和正确性。MySQL通过各种约束、默认值、规则等数据库对象来保证数据库的完整性。
1.约束
(1)PRIMARY KEY约束
表的一列或多列称为表的主键,通过它可强制表的实体完整性。
教师引导
学生分组
学生讨论
主键是在创建表时进行创建的,添加到表中还没有创建主键 约束的数据表中,一个表只能有一个PRIMARY KEY约束。如 果已经创建了一个PRIMARY KEY约束,则可以对其进行修改或删除。在一个表中,不能有两行包含相同的主键值。不能在主键内的任何列中输入NULL值。
(2)FOREIGN KEY约束
FOREIGN KEY约束标识表之间的关系,用于强制参照完整性,为表中一列或者多列数据提供参照完整性。
FOREIGN KEY作为表定义的一部分在创建表时创建。如果FOREIGN KEY约束与另一个表(或同一表)已有的PRIMARY KEY约束或UNQUE约束相关联,则可向现有表添加FOREIGN KEY约束。一个表可以有多个FOREIGN KEY约束。可以对已有的FOREIGN KEY约束进行修改或删除。
(3)UNQUE约束
实施实体完整性。确保在非主键列中不输入重复的值。想要强制一列或多列组合的唯一性时使用该约束而不是PRIMARY KEY约束,可以对一个表声明多个UNIQUE约束,且允许NULL值。
(4)CHECK约束
CHECK约束通过限制用户输入的值来加强域完整性。它指定应用于列中输入的所有值的布乐搜索条件,拒绝所有不取值为TRUE的值。可以为每列指定多个CHECK约束。
(5)列约束和表约束
约束可以是列约束和表约束。列约束被定为列定义的一部分,并且仅适用于那个列,表约束的声明与列的定义无关,可以适用于表中一个以上的列。当一个约束中必须包含一个以上的列时,必须使用表约束。
2.默认值
在设计表结构时可根据需要为某列设置默认值,也可以创建默认值对象并绑定到某一列。
小结 [3分钟]
本次课我们了解了B2C网站应该具有的会员在线订购功能及流程,并且设计了结构合理的数据表,存储相关信息。
第五篇:电子商务数据库技术重点
数据库的建立:CREATE DATABASE<数据库名>; 删除: DROP DATABASE<数据库名>
基本表的定义:EATE TABLE[<数据库名>]<表名>;删除DROP TABLE[<数据库名>]表名
修改:a增加属性:ALTER TABLE[<数据库名>]表名ADD
B删除属性:ALTER TABLE[<数据库名>]表名DROP
3)视图的定义:REATE VIEW 视图名AS SELECT语句;删除:DROP VIEW 视图名
4)索引的定义:CREATE [UNIQUE] INDEX 索引名ON;删除DROP INDEX 索引名
8SQL查询1)“*”为通配符,表示查找FROM中所指出关系的所有属性的值
1、表、视图、索引的定义及使用:(1)基本表的定义:create table 〔﹤数据库名﹥.〕﹤表名﹥(﹤列名﹥ 数据
类型 ﹝缺省值))eg.建一个学生情况表(student)create table student st-class chat(8),st-no char(10),……(2)视图的定义:create view 视图名 as select 语句eg.从基本表student和score中导出只包括女学生且分数在60分以上的视图create view woman-score as select student.st-class,student.st-no,student.st-name,student.st-age,score.sc-score from student.score where student.st-sex=“女”and score.sc-score>=60 and student.st-no=score.st-no(3)索引的定义:create 〔unique〕index索引名on〔﹤数据库名﹥.〕表名(列名〔ASC/DESC〕,列名〔ASC/DESC〕…)eg.对基本表student中的st-no和st-age建立索引,分别为升序与降序,且索引值不允许重复create unique index stindex on student(st-no ASC,st-age DESC)
2、SQL查询语言的主要应用:(1)无条件查询例子:找出所有学生的选课情况select st-no,su-nofrom score
(2)条件查询例子:找出任何一门课成绩在70分以上的学生情况、课号及分数select unique student.st-class,student.st-no,student.st-name,student.st-sex,student.st-age,score.su-no,score.scorefrom student,scorewhere score.score>=70 and score.stno=student.st-no(3)排序查询例子:查询不及格的课程,并将结果按照课程号从大到小排列select unique su-nofrom scorewhere score<60 oeder by su-no desc(4)嵌套查询例子:查询课程编号为c03且课程成绩在80分以上的学生的学号、姓名select st-no,st-name from student where stno in(select st-no from score from score where su-no=’c03’and score>80)(5)计算查询常用函数有:count(*)计算元组的个数;count(列名)对某一列中的值计算个数;sum(列名)求某一列值的总和(此值是数值型);avg(列名)求某一列的平均值;max(列名)求一列中的最大值;min(列名)求一列中的最小值例子:求男学生的总人数和平均年龄select count(*),avg(st-age)from student where st-sex=’男’
3、SQL数据的主要插入、删除、修改操作:(1)数据插入:将数据插入SQL的基本表有两种方式,一种是单元
组的插入,eg:向基本表score中插入一个成绩元组(100002,c02,95)insert into score(st-no,su-弄,score)values(’100002’,’c02’,95);另一种是多元组的插入;(2)数据删除:单元组的删除 eg,把学号为100002的学生从学生表student中删除delete from student where st-no=’100002’;多元组的删除eg,把学号为100002的成绩从表score中删除delete from score where st-no=’100002’ ;带有子查询的删除操作eg.删除所有不及格的学生记录delete from student where st-no in(select st-no from score where score<60)(3)数据修改eg.把c02的课程名改为英语 update subject set su-subject=’英语’ where su-no=’c02’