一个名叫Sid的男人,狂热地爱好拍摄、保存和整理照片。Sid的妻子名叫Debbie,他们有三个儿子Logan、Archie和Chuck。 (sid是oracle实例,照片是数据)

 
    他有一所很大的房子,同住的有男管家Simon和女仆Pam。我将介绍他的家庭、他的房子和他的爱好:拍摄、收集和炫耀他的照片。     现在,Sid快乐地生活着—家庭、朋友和假期。他不时地拍照。事实上,他总是随身带着相机。他不想错过任何东西。

    每一个早餐、午餐和晚宴,都会被拍下来。当孩子们从学校回家,镜头摄入他们对父亲的问候。当孩子们做家庭作业的时候,“卡嚓、卡嚓、卡嚓”,照相机的快门响个不停。

(照相只是要说明数据库不断从外部接受数据)

    棒球赛上,儿子Archie的每一个投掷都被拍摄下来。学校的舞会上,Chuck的父亲拍下了每一个缓慢的舞步以及在苏打水机器旁的交谈。而他的狗——Sadie则是这个世界上被拍摄次数最多的狗。

他和他的家庭收藏了数以百万计的照片。一些照片被销毁掉了,一些则经历了改变。Sid有一套神奇的系统来处理这些照片。

让我来告诉你一些关于他的家庭、他的房子的事,以及关于他和他的家人如何致力于发展、组织和保护所有这些照片。

Sid用一架特殊的相机拍摄。他的相机每拍摄一次,就同时产生一张照片和一张底片。他从来不用换胶卷(这是一种科幻技术)。

照片被贴在房间的墙壁上,而底片则被保存在一个安全的地方。

1.1.1 Sid的家

    我介绍过Sid的家了吗?嗯。那里非常的大而且到处都是照片。因为照片实在是太多了,所以Sid必须寻找地方来放置它们。

    一些照片被挂在墙上,一些被藏在照相簿内,一些被插入剪贴簿里,一些被放在储藏室的一个盒子里再也不会被撇上一眼。所有这些照片都被放在他家中的某处。(照相簿和剪贴簿应该指的是SGA中的某部分)

    他称呼这些放置照片的地方为“相片空间”。一个相片空间可能是一个有着很多墙壁的房间,或者是有着很多页的剪贴簿。一个房间是照片的逻辑存储单元。 (房间是表空间)

房间内的墙壁则是相片空间中保存照片的物理结构。

(墙壁是数据文件,房间是由多个墙壁组成的)

 1.1. 2 Debbie的家务事

    因为Sid忙于拍摄和处理照片,他没有足够的精力来放置和储存它们—那是她妻子的工作。Debbie的全名是Debra Wrider。 (写进程)

    她的T恤衫上印着DBWR—这是一种家庭传统—为所有的东西做标签。

    把所有这些照片放置得井井有条是一件巨大的工作,不过Sid和Debbie已经建立了一个系统。当Sid拍摄结束后,他把照片都放在厨房里一个特定的架子上。 (架子是DBBUFFER)

    那个特定的架子被称为“DB_BUFFER_CACHE”。Debbie时常检查那个架子,看看上面是否有新拍摄的照片。在白天,她把从架子上取回的照片分别放置到对应的相片空间。

(这里没有说明她工作的几个要求,干什么事情都要有激发条件的,不然谁做^_^)

     事实上,在一场棒球赛或者学校的舞会上,Sid制作照片的速度太快了。以至于Debbie几乎跟不上。这是一个特别的情景,Sid拍摄照片,然后放置在那个特定的架子上,Debbie把这些照片放在剪贴簿里,挂在墙上或者插入照相簿内。

    当Sid带着照片和底片进入厨房时,他和他妻子之间可能会有这样的一段对话:

(照片是提交后数据,底片为日志数据)

    Sid:“亲爱的,猜猜我给你带回来了什么?”

    Debbie:“你又拍了很多照片,是吗?你知道我是多么喜欢整理照片啊。”

    Sid:“当然了,Archie的棒球队赢得了最后一局。他在第九局以两个二垒打获胜,我全部都拍摄下来了。”

    Debbie:“太好了,那些照片放在相片空间9号墙壁的运动类里,看上去一定棒极了。我已经等不及去放置它们了,我将邀请所有的邻居来观赏。”

    Sid:“Archie也非常高兴。OK,我再去拍一些照片,我将在23毫秒后回来。哦,顺便说一下,我刚才将那些照片放在DB_BUFFER_CACHE架子上。

  现在Sid的目录号为1332935。”Debbie:“知道了,再见。”

  为了易于管理照片、框架和日志,他使用一种特殊的数字来建立目录,称之为Sid的目录编号。他用这些独特的、不断递增的数字来追踪对这所房子内所有照片的操作。(SCN)

    Sid和Debbie已经对查阅Sid的目录编号感到厌倦。Sid在所有的照片、录像带和底片上都写上“Sid的目录编号”,累得手要抽筋。

    最后,他们将“Sid的目录编号”缩略为SCN。记住SCN,Sid的生活都围绕着它展开。

现在,全家人都知道这个数字被简称为SCN。你可以在每一个地方都看到SCN。Sid把它们写在底片上,然后他把低位和高位的SCN写在每一包底片外面。

    Debbie把它们写在她放置照片的地方。这些数字在Sid的复杂家庭生活中显得尤为重要。

    Debbie把照片放在框架里,房子里的每一个框架都是一样大小。一些框架只保存了一张照片,一些框架则保存了几张照片。一些特别大的照片则要占据多个框架。(框架是segment)

    Sid有一张和原物同样大小的照片,拍摄的是他在跳伞后在空中做造型动作,这张照片占据了两个框架。当照片跨越框架时,Sid称之为照片链。

    任何时候,只要Debbie改变框架内的照片,她就把照片的SCN写在框架上。房子内的每张照片都有一个惟一的数字。他们称照片的这个数字为照片ID。 (rowid)

    这些照片ID帮助Sid管理家中所有墙上的照片。如果他需要尽快找到一张照片,他通过照片ID来实现。通过照片ID,Sid能够迅速找到墙壁和保存照片的框架。

    有时候,Sid会对照片进行一些改变。如果他要编辑一张照片,那么他让Debbie通过照片ID找到他的照片。Debbie给他一份包括所需照片的整个框架的拷贝。(数据更改前映像)

    为防止Sid可能改变主意,不喜欢他已经做的一些改变,他把那份拷贝放在一个储藏室内,称之为“回退”储藏室。当Sid完成了更改并且确定了以后,Debbie把更改后的照片放回到墙壁上原先的地方,并且把新的SCN写在框架上。如果Sid不喜欢他的更改,他们就从“回退”储藏室里取出框架并且把它放回墙上。(储藏室是回滚段或者UNDO空间)

    这样一来,照片就和Sid没有改动以前一样。

1.1.3 Logan的家务事

    Debbie为了处理Sid的照片已经忙得焦头烂额,所以她没有足够的时间和精力来处理Sid的底片。Sid认为他的儿子们在玩电子游戏和吃土豆片上浪费了太多的时间,他决定给他们安排任务。

    Sid的大儿子叫做Logan William Randolph。Logan的衬衫上都印着LGWR。Logan有一个非常简单但是非常重要的任务。 (LGWR日志写进程)

    Sid的相机产生照片的同时产生了底片,Logan的任务是将底片放入笔记本里。家中的厨房里竖着另一个架子,架子上Sid贴了一个标签,用来标记那些发送给大儿子的底片。

    标签被称为“LOG_BUFFER”,Logan坐在厨房的桌子旁,观察这个特殊的LOG_BUFFER架子。当有底片被放到这个架子上时,他立即把底片放在笔记本里。 (又一个架是logbuffer)

    Sid称这些笔记本为“重做笔记本”。他使用这个名称是因为以后他可以用里面的底片重新制作一张照片。Logan检查他的架子的频率要比Debbie的高得多。

    (lgwr要比dbwr更频繁,不过还是没指名lgwr工作的触发条件)

    Sid表示,只要有底片,他就可以随时重新制作一份照片。Logan和他父亲的对话简短而温馨:

    Sid:“Logan,底片在架子上了!”

    Logan:“知道了,我会立即处理的。”

    Logan按照他得到底片的顺序将这些底片放入“重做笔记本”。一旦当前的笔记本装满了底片,他就换另一个新的笔记本。每一次他更换“重做笔记本”后,

    都在“告警笔记本”上做一个记录,然后通知他的兄弟来进行他们的家务活。

    (日志切换点log switch,发生的时候会记录到告警日志中)

    悲哀,是不是?老爸和他的大儿子太专注于底片了!

    顺便提到,不是所有的照片都有对应的底片保存。Sid指定某些照片不必被做日志,这些照片就没有对应的底片保存在“重做笔记本”里。Sid称其为“无日志”。 (nolog的情况)

 1.1.4 Archie的家务事

    Sid的第二个儿子Archibald则另有任务。他的衬衫上写着ARCH。Archie从重做笔记本里提取底片后,把它们放置在一个安全的地方。 (ARCHIVE归档进程)

    当Archie发现Logan更换到另一个重做笔记本的时候,他就开始行动。他拿起重做笔记本中的那些底片,把它们放在房子外面的一个安全地方。

    Sid在后院建造了一个控制好温湿的地下室。那是他保存底片的安全地点。如果暴风来到,破坏了房子,他可以使用保存在地下室的底片来替换那些被损坏的照片。