2013年12月8日 星期日

[Tips]深入了解V$ - V$session

V$:Dynamic Performance View,又稱為動態視圖,它是儲存在SGA之中。可以透過SELECT * FROM dba_objects WHERE object_name like 'V_$%'來查詢。


根據Oracle Documentation的說明:
This view lists session information for each current session.

--說明了Server process建立與Oracle Server之間的Session連線,而V$session儲存了連線時的相關資訊。

2013年12月5日 星期四

[Tips]深入了解V$ - V$sysstat

V$:Dynamic Performance View,又稱為動態視圖,它是儲存在SGA之中。可以透過SELECT * FROM dba_objects WHERE object_name like 'V_$%'來查詢。


根據Oracle Documentation的說明:
V$sysstat displays system statistics. To find the name of the statistic associated with each statistic number (STATISTIC#), query the V$STATNAME view.


--說明了V$sysstat儲存了資源使用的統計結果,從Instance啟動就開始累計。

2013年11月24日 星期日

[Tips]Oracle 11g Architecture 資料庫架構(下) - Oracle database files

讓我們先回想一下:當提及Oracle Server的時候,它同時包含了Oracle InstanceOracle database files,本篇將探討Oracle database files,如果忘了Oracle Instance可以利用下面連結閱讀^_^
Oracle database files就是存放資料的地方,可以分為實體(Physical)結構和邏輯(Logical)結構,實體結構就是實際儲存在OS上的datafiles或是OS Block;而一般我們透過軟體工具看到的都是邏輯結構,包括Tablespaces、Segments、Extents、Block。

2013年11月23日 星期六

[Tips]Oracle 11g Architecture 資料庫架構(上) - Oracle Instance

從下圖我們可以發現,其資料庫架構看起來相當複雜呢!

大致可以先簡單分為Oracle InstanceOracle database files,當我們提及Oracle Server的時候,它同時包含了上述兩個東西。以下將分為兩篇針對其進行個別探討:
Oracle的架構裡包含了許多複雜的元件,也是Oracle對於初學者相當不好學習的地方,而理解這些對於了解Oracle運作有相當大的幫助,讓我們一起來看看吧^_^

2013年11月21日 星期四

[Tips]運用PL/SQL撰寫procedure/function/package

運用PL/SQL,我們可以撰寫成procedure/function/package,便可以重複呼叫利用,或是放到DBMS_JOB中去例行執行。
  • procedure:沒有回傳值
  • function:要有回傳值
  • package:類似Java的com package概念,利用來打包一至多個procedure/function,更方便管理。

2013年11月13日 星期三

[Tips]如何建立Tablespaces

在Oracle Database中,Tablespaces包含一至多個Datafiles。而Datafiles用來儲存資料,一個Datafile只能存在一個Tablespace中。

CREATE TABLESPACE Tablespace_Name

DATAFILE 'file_specification' SIZE volume
AUTOEXTEND [ON/OFF] NEXT volume MAXSIZE volume;

2013年11月12日 星期二

[Tips]基本介紹Oracle PL/SQL

PL/SQL(Procedural Language/Structured Query Language)是Oracle推出的程序語言(Procedural Language),用來擴充SQL的的功能。PL/SQL中會運用到一些程式裡面變數設定、條件判斷(if..then)、迴圈(for)等概念。

首先我們先來看一個簡單的PL/SQL,主要分為兩個部分,Declare為定義變數的地方,Begin...End為程式邏輯的地方,也是主要撰寫著墨的部分。


DECLARE
  v1 number(5);
  v2 varchar2(10);
  v3 date;
BEGIN
  --to do
END;

2013年11月10日 星期日

[Tips]常用的DBA/USER_、V$的表格和視圖

在Oracle Database中,我們可以用DBA_、USER_和V$的表格和視圖來獲取一些資訊,幫助我們進行資料庫的管理,現在就讓我們來看看吧。
  • DBA_:代表能夠看到所有的資訊。
  • USER_:代表只能看到當前USER的資訊。
  • V$:Dynamic Performance View,又稱為動態視圖,它是儲存在SGA之中。可以透過SELECT * FROM dba_objects WHERE object_name like 'V_$%'來查詢。

2013年11月9日 星期六

[Tips]關於DBA_JOBS及DBMS_JOBS.

在Oracle Database中,我們可以利用DBA/ALL/USER_JOBS來觀看我們排定的工作行程,然後利用DBMS_JOBS.來進行工作的安排和管理。

SELECT * FROM [dba_jobs/all_jobs/user_jobs];

  • DBA_JOBS:代表可以看到所有的Jobs,包含一些只有DBA才能看。
  • ALL_JOBS代表可以看到所有的連線到資料庫的USER的Jobs。
  • USER_JOBS:代表只能看到當前USER的Jobs。
  • DBA_JOBS_RUNNING:代表目前正在運作的Jobs。

2013年11月8日 星期五

[Tips]如何建立Database Link

Oracle Database中,當我們想要查詢其它資料庫的時候,可以利用Database Link來達成目的。

CREATE DATABASE LINK 
DBlink_Name
CONNECT TO user IDENTIFIED BY "password"
using 'Service_Name';

2013年11月7日 星期四

[Tips]如何建立Oracle Materialized View (snapshot)

Materialized View中文翻譯成「實體化視圖」或「物化視圖」。其實就是以前比較熟悉的snapshot,將本機/遠端的資料庫上面一個/多個表格的查詢結果,快照儲存在本機/遠端的表格中。

如果要備份的表格是在遠端資料庫的時候,則必須先建立Database Link,可以參考我寫的另外一篇文章,以下只針對Materialized View的部分進行著墨。

CREATE MATERIALIZED VIEW/SNAPSHOT Material_View_Name
[TABLESPACE Tablespaces_Name]
REFRESH [complete/fast/force(default)] [WITH primary key(default)/rowid/object id]
[START WITH sysdate NEXT (sysdate+1/24)]
AS Sql_Query;

2013年9月21日 星期六

[Tips]當Oracle 11g 忘記帳號密碼或鎖定時

通常可能有以下幾種原因會需要用到此方法。
  1. 嘗試多次失敗造成帳號被鎖住(可能是密碼錯誤),可能會出現「ora-28000 the account is locked」的錯誤訊。
  2. 此帳戶被管理員權限鎖定時,可能會出現同上的錯誤訊號。
  3. 該帳戶密碼到期被鎖定,可能會出現同上的錯誤訊號。
  4. 忘記密碼。

1) 進入cmd
2) sqlplus/nolog
3) conn sys/sys as sysdba
4) alter user system identified by 新密碼
5) conn system/新密碼

當步驟5完成後可以連結表示成功,就可以使用該帳戶登入。

註解:
  • 進入cmd之後,輸入sqlplus會開啟SQL PLUS並帶出登入提示。利用sqlplus/nolog則可以不出現登入提示。
  • conn是connect的縮寫,可以用來連結資料庫。conn 帳戶/密碼

2013年9月5日 星期四

[Tips]Markdown語法

2013年8月17日 星期六

三層式綱要架構(Three-schema Architecture)

三層式(3-tier)架構好像很有名也很常聽到,諸如網路服務的三層式架構,程式設計的MVC架構等。

那麼在資料庫的三層式架構又是甚麼呢?
首先要先了解資料庫的三層式架構可是著名的ANSI/SPARC架構(Tsichritzis and Klug, 1978),是由ANSI(American National Standards Institute)和SPARC(Standards Planning And Requirements Committee)所制訂的資料庫架構,可以定義分為以下三層:

[Books]書摘:amazon.com的秘密

和蘋果一樣,當你在google搜尋Amazon的時候,出現的不是世界最大的亞馬遜雨林,而是電子商務龍頭亞馬遜(Amazon)。與亞馬遜的高人氣相比,其執行長貝佐斯就顯得低調,在賈伯斯(1955-2011)逝世後,貝佐斯被媒體視為賈伯斯的接班人。
看完本書之後,我認為貝佐斯和亞馬遜的成功,來自於貝佐斯的獨到眼光,可以發現不論是一鍵下單、Kindle電子書、雲端服務等,亞馬遜一直走在最前面。而貝佐斯的創新和重視顧客的態度,我想是目前亞馬遜屹立不搖的原因吧。

2013年8月16日 星期五

OCPJP(原SCJP)考取心得

考完已經過了半年了...趕快來補寫一下忘記的心得。
自從Oracle收購SUN之後,原本SUN底下的Java資格認證也調整名稱了。原本的Sun Certified Programmer for Java (SCJP)正式改名為新認證Oracle Certified Professional, Java SE 7/SE 6 Programmer(OCPJP)。
OCPJP

2013年7月24日 星期三

正規化(Normalization)

正規化是資料庫設計一個重要的過程。
最早在Codd(1972)提出的正規化形式:第一正規化(first normal form, 1NF)、第二正規化(2NF)、第三正規化(3NF),而Boyce和Codd後來又提出Boyee-Codd正規化(BCNF)。
以上這些是根據功能相依(functional dependent)為基礎,當然還有後來提出的第四正規化(4NF)和第五正規化(5NF),我將在後面再作說明。

快速了解何謂三階正規化:
1NF:去除重複資料

2NF:去除部分相依(partial functional dependency)
3NF:去除遞移相依(transitive dependency)

2013年6月18日 星期二

建立正向工程(Forward Engineer Generation)

還記得我們在第一章介紹ERWin的時候提到:
ERWin支援正向工程(透過資料模型來建立資料綱要(Data Schema)及資料庫),可以應用在Microsoft Access、SQL Server、Oracle、DB2、MySQL等。

本章將介紹如何把繪製好的ER Model(零件),利用向工程(Forward Engineer Generation)進一步產生SQL語法,並建立實體資料庫(實物)。

2013年5月1日 星期三

建立Schema

Schema一般翻譯成「基模」或「綱要」等非常抽像的中文字,在這邊可以想像Table Schema其實就是描述資料表的輪廓或是架構,舉凡表格內的欄位屬性定義、限制、關聯等。
而這樣的設定可以透過上一篇提到的Domains來建立,本章將介紹如何透過建立好的Domains去設定;以及在沒有建立Domains的情況下,一樣可以設定Schema。

2013年4月26日 星期五

看懂ER Diagram

有人說ER Diagram猶如是一個小世界的縮影。
不同的實體(Entity)有它自己的特徵和動作,透過關聯(Relationship)去表達實體之間的互動。其圖示是一種概念(Concept)表示,表示的方法有好幾種,目前也沒有統一標準。有些參考書會建議讀者盡量去使用統一格式,但是A書跟B書用的圖又經常不一樣;不同工具、不同廠商也不一樣。

以下將要介紹的是在閱讀資料庫原理相關書籍經常會看得到的,甚至在Peter Chen所撰寫的文章內也是採用這種圖型表示法,就讓我們來看看吧。

Oracle 11g OCA考取心得

取得Oracle 11g OCA也好一陣子,趁這個機會來分享一下心得。
Oracle 11g OCA
OCA(Oracle Certified Associate)是Oracle資料庫的入門階級,要取得11g OCA必須考取1z0-051和1z0-052兩科。或是擁有9i或10g OCA的人,也可以再選考1z0-052這一科來取得11g OCA。因此有些論壇討論區也會建議初次考的人,先考取10g OCA,再考1z0-052來同時取得10g OCA和11g OCA,不過因為現在10g OCA也是要考兩科,所以這部分就見仁見智了。

[Books]書摘:將將

將將是延續打造將才基因的續作,和上一本相比,不同的之處在於本書著墨於針對主管能力的修練,對於有志於晉升經理人的上班族,本書提供作者三十年來的豐富經驗,幫助我們建構完整的管理框架,帶領下屬共同創造公司的最大價值。
書摘:

2013年4月20日 星期六

建立Drill Through

請先建立一份客戶銷售資料表(productSales.rptdesign)和客戶銷售資料明細表(productSalesDetial.rptdesign)

2013年4月19日 星期五

2013年4月18日 星期四

建立範例報表(Report)_PART1

請選擇Palette內的Report Item底下的Grid元件(),拉到編輯區內
1、輸入1columns2rows,完成後按OK

2013年4月17日 星期三

建立Domains

透過設定Domain可以設定集合屬性的允許範圍,例如針對星期屬性可以設定為{Mon,Tues...,Sat,Sun}。
在定義Domain時,必須定義資料型態(Datatype)和限制(Constraint)。資料型態代表的是屬性的性質,例如字串、數字、日期等;限制代表的是針對屬性的限制範圍,例如書本單價必須大於零(price>0)。

2013年2月12日 星期二

建立關聯(Relationship)

  • IDEF1X及IE(also call Crows Foot)
  • 建立Identifying Relationship及Non-Identifying Relationship
  • 建立Supertypes / Subtypes Relationship


建立實體(Entity)

你將會開始建立一個簡單的圖書館管理系統(Library Management System),有書本、出版商的基本資料,以及會員的出借紀錄。結構如下圖,實體(Entity)包括書本(BOOKS)、出版商(PUBLISHER)、會員(MEMBER)。

建立資料管理(Data Explorer)

建立資料來源(Data Source)

請選擇左上角的 Data Explorer 底下的 Data Sources,按右鍵[New Data Source]
1、請選擇Flat File Data Source,完成後按[Next >]

建立一個Eclipse BIRT的新專案報表


建立Eclipse BIRT新專案

請按功能表上的File,按一下開新專案[New Project…]
1、選擇項目Business Intelligence and Reporting Tools 底下的Report Project

安裝及啟動Eclipse BIRT

BIRT(Business Intelligence and Reporting Tools)是一套Open Source的軟體
提供報表和商業智慧的功能。BIRT具備可視覺化的報表設計工具,可以很容易的產生報表,並且佈署到任何Java環境。

官方也很貼心的準備了兩段教學影片:

Youtube -BIRT Report Designer Tutorial Part-1

Youtube -BIRT Report Designer Tutorial Part-2


2013年2月7日 星期四

[Books]書摘:做自己與別人生命中的天使

嚴長壽先生一直是我相當喜愛的作者,本書沿習一貫的樸實文字及生動的故事,再再都能打動讀者你我的心。在快速混亂的時代裡,本書勉勵我們了解自己,突破自我潛能,保持工作熱忱,學習過一個平凡但不平庸的人生,進而去影響改變週遭的人們,就如同本書的標題:

「做自己與別人生命中的天使」。

開始使用CA ERwin Data Modeler

這篇文章的誕生,是因為我在Google搜尋「ERwin教學」的時候,居然找不到一篇繁體中文的教學文章,如此埋沒了這麼好用的工具,實在可惜。假如你曾經有使用過Visio、Dia、甚至是PowerPoint等工具畫過ER Model的經驗,那麼我相信你使用過ERwin Data Modeler後,就...再也回不去了。

ERwin是由Computer Associates(CA)發行。ERwin和Visio、Dia等工具的差別在於,它只能畫ER Model,且該產品還支援資料建模、正向工程(透過資料模型來建立資料綱要(Data Schema)及資料庫)、逆向工程(透過已經存在的資料庫來反向建立資料模型),可以應用在Microsoft Access、SQL Server、Oracle、DB2、MySQL等。

[Books]書摘:打造將才基因

講到杜書伍,也許不是那麼熟悉。但提到赫赫有名的聯強國際,我想沒人不知道吧。聯強國際是亞洲第一、全球第三的科技通路商,而杜書伍先生是聯強國際集團總裁兼執行長。本書收納來自聯強EMBA的文章,全是作者三十年來的經驗觀察,針對有志者如何學習從組織基礎的小兵,逐步成為能夠運籌帷幄的將才之士。