話說前陣子才剛通過了Oracle Database 11g: SQL Fundamentals I,趁記憶猶新的時候趕快來整理一下Oracle的SQL語法吧。
SELECT *│{[DISTINCT column│expression [alias],‧‧‧}
FROM table;
- SELECT *
FROM departments;
| DEPARTMENT_ID | DEPARTMENT_NAME | LOCATION_ID |
| 10 | Marketing | 170 |
| 20 | Administration | 180 |
| 50 | IT | 150 |
| 80 | Sales | 170 |
- SELECT department_id, department_name FROM departments;
| DEPARTMENT_ID | DEPARTMENT_NAME |
| 10 | Marketing |
| 20 | Administration |
| 50 | IT |
| 80 | Sales |
- SELECT department_name, salary, salary + 500FROM departments;
| DEPARTMENT_NAME | SALARY | SALARY + 500 |
| Marketing | 200 | 700 |
| Administration | 500 | 1000 |
| IT | 300 | 800 |
| Sales | 400 | 900 |
三層式(3-tier)架構好像很有名也很常聽到,諸如網路服務的三層式架構,程式設計的MVC架構等。
那麼在資料庫的三層式架構又是甚麼呢?
首先要先了解資料庫的三層式架構可是著名的ANSI/SPARC架構(Tsichritzis and Klug, 1978),是由ANSI(American National Standards Institute)和SPARC(Standards Planning And Requirements Committee)所制訂的資料庫架構,可以定義分為以下三層:
正規化是資料庫設計一個重要的過程。
最早在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)
有人說ER Diagram猶如是一個小世界的縮影。
不同的實體(Entity)有它自己的特徵和動作,透過關聯(Relationship)去表達實體之間的互動。其圖示是一種概念(Concept)表示,表示的方法有好幾種,目前也沒有統一標準。有些參考書會建議讀者盡量去使用統一格式,但是A書跟B書用的圖又經常不一樣;不同工具、不同廠商也不一樣。
以下將要介紹的是在閱讀資料庫原理相關書籍經常會看得到的,甚至在Peter Chen所撰寫的文章內也是採用這種圖型表示法,就讓我們來看看吧。