名站网址导航为大家提供关于数据库教程相关的教程网站知识。
Oracle动态交叉表生成
范式下的Oracle网站数据库设计, 数据关系的复杂性导致了表中数据冗余的存在,数据冗余增加了维护网站数据库的负担,也占用了大量的磁盘空间,直接造成性能下降。为了消除这些负面影响,就应该对网站数据库表格进行规范化,使其遵守一定的规则的,尤其是, 关系必须是规范化的,简单说来,就是在结构表设计时,消除冗余性和不协调的从属关系。即每一个分量必须是不可分的数据项,但是这只是最基本的规范化。规范化理论就是研究如何将一个不好的关系模式转化为好的关系, 在Oracle上设计网站数据库时更要符合范式的要求,假如如果把一个不符合规范的网站数据库放在Oracle中,是不会突出Oracle的性能的,甚至是非常糟糕。, 例如:学生的成绩表,咱们一般都要求打印一目了然。, 这也是符合1NF的,但假如如果是在网站数据库中定义的表结构也这样,则是不完善的,是有潜在冲突的。如要增加考试科目,就得更改表结构,特别是大学,专业多、科目多,而有些科目是选学的,这将会使表结构变得相当复杂, 在数据范式理论的指导下,对网站数据库表格进行规范化,使其结构更合理,消除存储异常,使数据冗余尽量最小,便于插入、删除和更新,进一步保持了数据的完整性。经过探索,我在成绩管理系统的设计上采用了如下的表结, 由此看出,经数据规范化的数据虽然使数据冗余小,便于插入、删除和更新,但假如如果直接输出是不符合人们观看习惯的,必需要把其输出为上面表1的格式才行,这就是列向表生成横向表的问题,即交叉表的生成。, 动态交叉表的生成, 为了简述起见,在学生基本信息表中,只建两个字段,学号、姓名,其他的诸如性别、科具体相关代码等则略。其中班、教师具体相关代码库、考试次数标志(即第几次测验,还是期中、期末考试)等也略,只保留下面数据结构足以能说明交, 各表结构简化如下:, 学生基本信息表:JBXX, xh char(13) //学号, xm char(8) //姓名,针对不同情况,可用变长字符。, 科目具体相关代码表:KMDM, no number(3) //科目代号,现可用900多科目可用,若不够,可定义四位。, mc varchar(20) //科目中文名称。, 成绩表: CJ, xh char(13) //学号,关联JBXX的Xh。, xq number(2) //学期,指该学生所在校的学期。, km number(3) //科目代号。, cj number(3) //该科成绩。, 至此,数据表结构已全部建好,此时的任务是把下面表3的数据进行生成交叉表,表4。 交叉表的生成,在Oracle中可以用SQL数据库语句实现。, select jbxx.xh,jbxx.xm , (select cj.cj from cj where cj.xh=jbxx.xh and cj.xq=1 and cj.km=1) as km1, Java语言有“编写一次,随处运行”的跨平台能力,具有强大的网络能力。Oracle是一种关系型的大型网站数据库,可在多种硬件平台上运行,支持多种操作办法系统,支持大网站数据库、多用户的高性能的事务处理,以其强,
相关开始执行命令
文中主要用到三个开始执行命令,这里先单独介绍一下:
export: 将网站数据库中数据备份成一个二进制系统网站网站文件,它有三种模式: 用户模式、表模式、整个网站数据库模式。还可分为三种备份类型:完全型、积累型、增量型。本文以整个网站数据库模式下的完全型为例说明。export使用格式为:
exp userid file
其中:userid的用法为username/userpassword,即Oracle中的用户名/口令。userid必须为exp的第一个参数,file指备份网站网站文件所放位置及名称。
ftp: 一般情况下可通过交互相关方式实现两台主机间的数据传输,即需要手工输入目标主机的IP地址、用户名、口令等。但是当用户使用ftp开始执行命令时,系统将会先在该用户的注册目录中寻找.netrc网站网站文件,并首先执行该网站网站文件。这样,咱们可以通过编写一个.netrc的网站网站文件来达到自动备份的目的。要注意该网站网站文件必须命名为.netrc,且必须存放在启动ftp开始执行命令主机上的用户注册目录里。ftp经常用的选项:
-i:进行多网站网站文件传送时关闭交互提示;
-n:在连接之后不进行自动登录。
本文使用“-i”选项,以关闭交互提示。
crontab: cron是一个永久进程,它由/etc/rc.local启动执行。cron检查/var/spool/cron/crontabs/目录中的网站网站文件,找到所要执行的任务和执行任务的时间,并自动完成。该目录中网站网站文件由crontab开始执行命令建立。用户所建立的crontab网站网站文件存于/var/spool/cron/crontabs中,其网站网站文件名与用户名一致,本文使用crontab的用户为Oracle,所建立的网站网站文件名也为Oracle。
cron使用者的权限记载在下列两个网站网站文件中: /usr/var/adm/cron/cron.deny和/usr/var/adm/cron/cron.allow。前面的网站网站文件中所列的用户不允许使用crontab开始执行命令;后一网站网站文件中所列的用户允许使用crontab开始执行命令。crontab开始执行命令的经常用的格式为:
crontab -l:显示用户的crontab网站网站文件的内容;
crontab -r:从crontabs目录中删除用户的crontab网站网站文件;
crontab -e:编辑用户的crontab网站网站文件。
crontab网站网站文件每行中有6个字段,前5个为时间设定段,第6个为所要执行的开始执行命令。时间段分别为: minutes、hours、day of month、month、day of week,字段之间用空格或Tab分开。字段假如如果为“*”,表示该字段在所有可能的取值范围内取值; 假如如果一个字段是由连字符隔开的两个数字,表明开始执行命令可以在两个数字之间的范围内执行。
备份网站数据库
设定网站数据库的拥有者为Oracle,用户名为mistest,其口令为test,新建备份目录为/export/home/oracle/backup。建立一个命名为testbackup的备份网站网站文件,网站网站文件内容如下:
ORACLE-hOME=/export/home/oracle/815;export ORACLE-hOME
ORACLE-SID=ora815;export ORACLE-SID
rm /export/home/oracle/backup/*
rq=丶date “%m%d”丶
/export/home/oracle/815/bin/exp mistest/test file=/export/home/oracle
/backup/exp$rq.dmp log=/exoport/home/oracle/backup/exp$rq.log
说明:前两句对Oracle网站数据库初始化,第3条数据库语句清空备份目录,第4条数据库语句建立一个取当前日期的变量,以便在最后一条数据库语句的备份网站网站文件名里含有当前日期信息。 [NextPage]
异地传输
在备份主机里建立一个备份目录:/data/oradata/newbackup, 在本地主机Oracle用户的注册目录/export/home/oracle里建立一个.netrc网站网站文件。设定好备份主机的IP地址,备份主机上的用户为oraclebk, 口令为testbk2。.netrc网站网站文件内容为:
machine x.x.x..x
login oraclebk
password testbk2
macdef init
bin
lcd /export/home/oracle/backup
cd /data/oradata/backup
mput *
bye
说明: 前3条数据库语句完成在备份主机上的登录,第4条数据库语句定义一个名为init的宏,第5条数据库语句表示以二进制传输,第6条数据库语句表示进入本地工作目录,第7条数据库语句表示进入备份主机目录,第8条数据库语句完成将本地主机/export/home/oracle/backup目录下的所有网站网站文件传输至备份主机/data/oradata/backup目录下,最后一条数据库语句退出ftp会话进程。
.netrc网站网站文件编写完成后,用开始执行命令“chmod 600
.netrc”使该网站网站文件只能被该用户所访问。
自动执行
咱们以oracle用户登录本地主机,用“crontab -e”编写crontab网站网站文件用以启动自动备份进程。oracle网站网站文件内容如下:
10 23 * * * /export/home/oracle/testbackup
30 23 * * * ftp -i x.x.x.x
说明:第1条数据库语句指定每天自动在23点10分执行对网站数据库的备份,第2条数据库语句指定每天自动在23点半启动ftp,将备份网站网站文件传输到备份主机(备份主机为符合数据库语句中指定IP地址的主机)。
Oracle网站网站文件只能在Oracle用户名下用“crontab -e”开始执行命令来编辑。编辑完成后,可以在用“crontab-l”开始执行命令来查看crontab网站网站文件内容,同时在/var/spool/cron/crontabs目录下查看是否增加了一个Oracle网站网站文件。
至此,本地主机可以每天定时备份网站数据库,并定时把备份数据传到备份主机。这样,较好地实现了Oracle数据异地自动备份,本地主机假如如果有什么故障,数据有了可靠备份,同时,在一定程度上也减轻了系统管理人员烦琐、重复的备份工作。
上一页
关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。