#27 [ORACLE] μΈλ±μ€, κΈ°λ³Έν€, constraint, μ½λ, λ°μ΄ν° νμ , commit, μ κ·ν
π μΈλ±μ€
: λ°μ΄ν° λ μ½λλ₯Ό λΉ λ₯΄κ² μ κ·ΌνκΈ° μν΄μ [ν€ : ν¬μΈν° ] μμΌλ‘ ꡬμ±λλ λ°μ΄ν° ꡬ쑰
DBμ ν μ΄λΈμ λ°μ΄ν°κ° λ§μ λ, κ²μ μλλ₯Ό ν₯μν΄μ£ΌκΈ° μν΄ μ¬μ©νλ κ°μ²΄
νμ§λ§, μΈλ±μ€λ₯Ό μμ±νλ€κ³ 무쑰건 λ°μ΄ν°λ₯Ό λΉ λ₯΄κ² κ²μν μ μλ κ²μ μλ
μΈλ±μ€λ₯Ό μμ±νλ©΄ μΈλ±μ€λ₯Ό μν λμ€ν¬ 곡κ°μ΄ νμνκ³ μΈλ±μ€λ₯Ό ν¬ν¨ν ν μ΄λΈμ μμ μ ν κ²½μ°,
μΈλ±μ€ μ λ ¬μ μν λ λ§μ λΉμ©κ³Ό μκ°μ΄ νμνκΈ° λλ¬Έ.
μΈλ±μ€ μμ± μ ν΄λΉ ν μ΄λΈμ μλλ₯Ό νμ ν νμ μν©μ λ§κ² μ μ ν μΈλ±μ€λ‘ ꡬμ±ν΄μΌ νλ€
π‘ ν΄λ¬μ€ν°ν μΈλ±μ€ (Clustered Index)
: μ± μμ μλ λͺ©μ°¨ (νμ΄μ§λ‘ λ°λ‘ κ·Έ νμ΄μ§λ₯Ό νΌ μ μμ), νμ μμλ₯Ό μ μ§ν΄μΌ νλ μΈλ±μ€
ν΄λ¬μ€ν°λ μΈλ±μ€ μμλ‘ λ μ½λλ€μ΄ νλ λμ€ν¬μ μ μ₯μ΄ λ¨
ν΄λ¬μ€ν°λ μΈλ±μ€λ₯Ό λ°λ‘ μ§μ νμ§ μμΌλ©΄ κΈ°λ³Έν€κ° ν΄λ¬μ€ν°λ μΈλ±μ€κ° λ¨
ν μ΄λΈ μμ± μ κΈ°λ³Έν€λ₯Ό μ§μ νλ©΄ κ·Έ μΉΌλΌμ μλμΌλ‘ ν΄λ¬μ€ν°λ μΈλ±μ€κ° λ§λ€μ΄μ§
λ°μ΄ν° μ λ ₯, μμ , μμ (INSERT, DELETE, UPDATE) μ νμ μ λ ¬ μνλ₯Ό μ μ§ν΄μΌ νλ€
π λ°μ΄ν°μ μ λ ₯, μμ , μμ μ μλκ° λλ¦Ό
물리μ μΌλ‘ νμ μ λ ¬λμ΄ μμΌλ―λ‘ μ‘°ν(SELECT) μλλ λΉ λ¦
π NOTE
ν μ΄λΈ λ°μ΄ν°κ° μμ£Ό μ λ°μ΄νΈλμ§ μλ κ²½μ°
νμ μ λ ¬λ λ°©μμΌλ‘ λ°μ΄ν°λ₯Ό λ°νν΄μΌ νλ κ²½μ°
μ½κΈ° μμ μ΄ μλ±ν λ§μ κ²½μ° , ν΄λ¬μ€ν°ν μΈλ±μ€κ° λ λΉ λ₯΄λ€
π‘ λ Ό ν΄λ¬μ€ν°ν μΈλ±μ€ (Non Clustered Index)
: μ± λ€μ μλ μμΈ (μ°Ύκ³ μ νλ λ΄μ©μ νμ΄μ§λ₯Ό λ¨Όμ μ°Ύκ³ κ·Έ νμ΄μ§λ‘ μ΄λ)
λ μ½λμ μλ³Έμ μ λ ¬λμ§ μκ³ , μΈλ±μ€ νμ΄μ§λ§ μ λ ¬λ¨
λ°μ΄ν° νμ΄μ§λ₯Ό 건λλ¦¬μ§ μκ³ , λ³λμ μ₯μμ μΈλ±μ€ νμ΄μ§λ₯Ό μμ±ν¨
π μ©λμ λ μ°¨μ§ν¨
ν΄λ¬μ€ν°νλ³΄λ€ κ²μ μλλ λ λ리μ§λ§ λ°μ΄ν°μ μ λ ₯, μμ , μμ λ λ λΉ λ₯΄λ€.
π NOTE
쑰건문μ νμ©νμ¬ ν μ΄λΈμ νν°λ§νκ³ μ ν κ²½μ°
λ°μ΄ν°κ° μμ£Ό μ λ°μ΄νΈλ κ²½μ°
νΉμ μΉΌλΌμ΄ 쿼리μμ μμ£Ό μ¬μ©λ κ²½μ°
π Key
: DBμμ 쑰건μ λ§μ‘±νλ ννμ μ°Ύκ±°λ μμλλ‘ μ λ ¬ν λ λ€λ₯Έ ννλ€κ³Ό ꡬλ³ν μ μλ μ μΌν κΈ°μ€μ΄ λλ μμ±
π‘ νν (Tuple) : 릴λ μ΄μ μ ꡬμ±νλ κ°κ°μ ν, μμ±μ λͺ¨μμΌλ‘ κ΅¬μ± ( λ μ½λμ λΉμ·ν κ°λ )
1. ν보 ν€ (Candidate Key)
: 릴λ μ΄μ μ ꡬμ±νλ μμ±λ€ μ€μμ ννμ μ μΌνκ² μλ³ν μ μλ μμ±λ€μ λΆλΆ μ§ν©μ μλ―Έ
λͺ¨λ 릴λ μ΄μ μ λ°λμ νλ μ΄μμ ν보 ν€λ₯Ό κ°μ ΈμΌ ν¨
릴λ μ΄μ μ μλ λͺ¨λ ννμ λν΄μ μ μΌμ±κ³Ό μ΅μμ±μ λ§μ‘±μμΌμΌ ν¨
2. κΈ°λ³Έν€ (Primary Key)
: ν보 ν€ μ€μμ μ νν μ£Όν€
ν 릴λ μ΄μ μμ νΉμ ννμ μ μΌνκ² κ΅¬λ³ν μ μλ μμ±
Null κ°μ κ°μ§ μ μμ (κ°μ²΄ 무결μ±)
κΈ°λ³Έν€λ‘ μ μλ μμ±μλ λμΌν κ°μ΄ μ€λ³΅λμ΄ μ μ₯λ μ μμ (κ°μ²΄ 무결μ±)
3. λμ²΄ν€ (Alternate Key)
: ν보 ν€κ° λ μ΄μμΌ λ, κΈ°λ³Έν€λ₯Ό μ μΈν λλ¨Έμ§ ν보ν€
4. μνΌ ν€ (Super Key)
: ν 릴λ μ΄μ λ΄μ μλ μμ±λ€μ μ§ν©μΌλ‘ ꡬμ±λ ν€
μ μΌμ±μ λ§μ‘±νμ§λ§, μ΅μμ±μ λ§μ‘±μν€μ§ λͺ»ν¨
5. μΈλ ν€ (Foreign Key)
: κ΄κ³λ₯Ό λ§Ίκ³ μλ 릴λ μ΄μ R1, R2μμ R1μ΄ μ°Έμ‘°νκ³ μλ R2μ κΈ°λ³Έν€μ κ°μ R1μ μμ±
μΈλ ν€λ μ°Έμ‘°λλ 릴λ μ΄μ μ κΈ°λ³Έν€μ λμλμ΄ λ¦΄λ μ΄μ κ°μ μ°Έμ‘° κ΄κ³λ₯Ό νννλλ° μ€μν λκ΅¬λ‘ μ¬μ©λ¨
μΈλ ν€λ‘ μ§μ λλ©΄ μ°Έμ‘° ν μ΄λΈμ κΈ°λ³Έν€μ μλ κ°μ μ λ ₯ν μ μμ (μ°Έμ‘° λ¬΄κ²°μ± μ‘°κ±΄)
π μ μ½μ‘°κ±΄
: λ°μ΄ν°λ² μ΄μ€ λ°μ΄ν°μ μ νμ±μ μ μ§νκΈ° μν λͺ©μ μΌλ‘ μ¬μ©νλ©° ν μ΄λΈμ μ μ₯ν λ°μ΄ν°λ₯Ό μ μ½νλ νΉμν κ·μΉ
μ μ½ μ‘°κ±΄ μ’ λ₯ | |
NOT NULL | ν΄λΉ 컬λΌμ λ°λμ κ°μ΄ μ λ ₯λμ΄μΌν¨ |
UNIQUE | 컬λΌμ λ€λ₯Έ νμ μ΄λ―Έ μ λ ₯λ κ°μ΄ λ μ λ ₯λ μ μμ |
PRIMARY KEY | ν μ΄λΈμμ ν νμ λννλ λ°μ΄ν° κ° |
FOREIGN KEY | λ€λ₯Έ ν μ΄λΈ 컬λΌμ μλ κ°μ μ λ ₯ν μ μμ |
CHECK | 쑰건μ μλ°νλ λ°μ΄ν° μ λ ₯ κΈμ§ |
π λ°μ΄ν° νμ
π‘ λ¬Έμν λ°μ΄ν° νμ
λ°μ΄ν°νμ | μ€λͺ |
CHAR(n) | κ³ μ κΈΈμ΄ λ¬Έμ, μ΅λ 2000byte, default : 1byte |
VARCHAR(n) | κ°λ³ κΈΈμ΄ λ¬Έμ, μ΅λ 4000byte, default : 1byte |
NCHAR(n) | κ³ μ κΈΈμ΄ μ λμ½λ λ¬Έμ, μ΅λ 2000byte, default : 1byte |
NVARCHAR(n) | κ°λ³κΈΈμ΄ μ λμ½λ λ¬Έμ, μ΅λ 2000byte, default : 1byte |
LONG | μ΅λ 2GB ν¬κΈ°μ κ°λ³κΈΈμ΄ λ¬Έμν |
CLOB | λμ©λ ν μ€νΈ λ°μ΄ν° νμ (μ΅λ 4GB) |
NCLOB | λμ©λ ν μ€νΈ μ λμ½λ λ°μ΄ν° νμ (μ΅λ 4GB) |
π‘ μ«μν λ°μ΄ν° νμ
λ°μ΄ν° νμ | μ€λͺ |
NUMBER (μ«μ μ΄ κ°μ(P), μμμ μ΄ν μ΄ κ°μ(S)) | κ°λ³μ«μ P : 1~38, λν΄νΈ : 38, S : -84~127, λν΄νΈ : 0 , μ΅λ 22byte |
FLOAT(P) | NUMBERμ νμνμ P l 1~128, λν΄νΈ : 128, μ΅λ 22byte |
BINARY_FLOAT | 32λΉνΈ λΆλμμμ μ / μ΅λ 4byte |
BINARY_DOUBLE | 64λΉνΈ λΆλμμμ μ / μ΅λ 8byte |
π‘ λ μ§ λ°μ΄ν° νμ
λ°μ΄ν° νμ | μ€λͺ |
DATE | BC 4712λ 1μ 1μΌ ~ 9999λ 12μ 31μΌ μ°μμΌμλΆμ΄κΉμ§ μ λ ₯κ°λ₯ |
TIMESTAMP | μ°μμΌμλΆμ΄ + λ°λ¦¬μ΄κΉμ§ μ λ ₯κ°λ₯ |
π‘ LOB λ°μ΄ν° νμ
λ°μ΄ν° νμ | μ€λͺ |
CLOB | λ¬Έμν λμ©λ κ°μ²΄ κ³ μ κΈΈμ΄μ κ°λ³κΈΈμ΄ λ¬Έμμ§ν© μ§μ |
NCLOB | μ λμ½λλ₯Ό μ§μνλ λ¬Έμν λμ©λ κ°μ²΄ |
BLOB | μ΄μ§ν λμ©λ κ°μ²΄, μ΄λ―Έμ§, λμμ, MP3 |
BFILE | λμ©λ μ΄μ§ νμΌμ λν μμΉ, μ΄λ¦μ μ₯ |
β LOB (Large Object)
: μΌλ°μ μΌλ‘ λΉμ ν λ°μ΄ν°λ₯Ό μ μ₯ν λ μ¬μ©ν¨
π COMMIT, ROLLBACK
π‘ COMMIT
: INSERT, UPDATE, DELETE λ± μνν λ΄μ©μ λ°μ΄ν° λ² μ΄μ€μ μ μ₯νλ€.
COMMITμ νμ§ μμΌλ©΄ λ°μ΄ν°λ² μ΄μ€μ λ°μμ΄ λμ§ μμ
COMMIT;
π‘ ROLLBACK
: λ§μ§λ§ COMMIT ν μνλ‘ λλλ¦°λ€.
ROLLBACK;
π μ κ·ν
: μ΄μνμμ΄ μλ 릴λ μ΄μ μ λΆν΄νμ¬ μ΄μνμμ μμ λ κ³Όμ
π‘ μ₯μ
1. λ°μ΄ν° λ² μ΄μ€ λ³κ²½ μ μ΄μ νμμ μ κ±°ν μ μλ€
2. μ κ·νλ λ°μ΄ν°λ² μ΄μ€ ꡬ쑰μμλ μλ‘μ΄ λ°μ΄ν° νμ μΆκ°λ‘ μΈν νμ₯ μ, ꡬ쑰μ λ³κ²½μ μ΅μνν μ μλ€
3. λ°μ΄ν°λ² μ΄μ€μ μ°λλ μμ© νλ‘κ·Έλ¨μ μ΅μνμ μν₯λ§μ λ―ΈμΉκ² λμ΄ μμ©νλ‘κ·Έλ¨μ μλͺ μ μ°μ₯μν¨λ€
π‘ λ¨μ
1. 릴λ μ΄μ μ λΆν΄λ‘ μΈν΄ 릴λ μ΄μ κ°μ JOIN μ°μ°μ΄ λ§μμ§λ€
2. μ§μμ λν μλ΅ μκ°μ΄ λλ €μ§ μλ μλ€.
3. λ°μ΄ν°λ₯Ό μ²λ¦¬ν λ μλκ° λΉ¨λΌμ§ μλ μκ³ , λλ €μ§ μλ μλ€.
4. λ§μ½ μ‘°μΈμ΄ λ§μ΄ λ°μνμ¬ μ±λ₯ μ νκ° λνλλ©΄ λ° μ κ·νλ₯Ό μ μ©ν μλ μλ€.