κ΄€κ³„ν˜• 데이터 베이슀(RDBMS)와 SQL μ’…λ₯˜

데이터 베이슀(DataBase)λž€?

μ—°κ΄€λœ λ°μ΄ν„°λ“€μ˜ 집합

데이터 λ² μ΄μŠ€λŠ” μ—¬λŸ¬ μ‘μš©ν”„λ‘œκ·Έλž¨μ—μ„œ 각자의 λͺ©μ μ— 맞게 κ³΅μœ ν•΄μ„œ μ‚¬μš©ν•΄μ•Όν•˜λ―€λ‘œ μ‹€μ‹œκ°„μœΌλ‘œ 접근이 κ°€λŠ₯ν•΄μ•Όν•˜κ³ , λ™μ μœΌλ‘œ λ³€ν™”ν•΄μ•Όν•˜λ©°, λ™μ‹œμ— μ ‘κ·Όν•˜μ—¬ κ³΅μœ ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€. λ˜ν•œ 관계 ν‘œν˜„μ„ μœ„ν•΄ λ‚΄μš©μ— μ˜ν•œ μ°Έμ‘°κ°€ κ°€λŠ₯ν•΄μ•Ό ν•œλ‹€.

데이터 베이슀 κ΅¬μ„±μš”μ†Œ

  • 개체(Entity) : 데이터 λ² μ΄μŠ€μ—μ„œ ν‘œν˜„ν•˜κ³ μž ν•˜λŠ” 유, λ¬΄ν˜•μ˜ 객체. μ„œλ‘œ κ΅¬λ³„λ˜λŠ” 것듀. κ°œμ²΄λŠ” λ‹¨λ…μœΌλ‘œ μ‘΄μž¬ν•  수 있고 μ •λ³΄λ‘œμ„œμ˜ 역할을 ν•œλ‹€.

    • ex) 고객, 학생, κ³Όλͺ©, ν•™κ³Ό, 사원, λΆ€μ„œ
  • 속성(Attribute) : 개체의 νŠΉμ„±μ΄λ‚˜ μƒνƒœ. κ°œμ²΄κ°€ κ°€μ§€λŠ” μ„ΈλΆ€ μ„±μ§ˆ

    • ex) 학생(ν•™λ²ˆ, 이름, ν•™λ…„, 반 λ“±), 사원(μ‚¬λ²ˆ, 이름, 직책, κΈ‰μ—¬, λΆ€μ„œ λ“±)
  • 관계(Relationship) : κ°œμ²΄μ™€ 객체, ν˜Ήμ€ κ°œμ²΄μ™€ 속성 κ°„ 관계

    • ex) 학생이 κ³Όλͺ©μ„ μˆ˜κ°•μ‹ μ²­ν•œλ‹€. 사원이 λΆ€μ„œμ— μ†Œμ†λ˜μ–΄ μžˆλ‹€. A학생은 6λ°˜μ΄λ‹€.

κ΄€κ³„ν˜• 데이터 베이슀(RDBMS)

데이터 κ°„ 논리적인 값에 μ˜ν•΄ 관계가 μ‘΄μž¬ν•˜λŠ” 데이터 베이슀(RDB, Relational DataBase)λ₯Ό μ§€μ›ν•˜λŠ” μ‘μš©ν”„λ‘œκ·Έλž¨(RDBMS, Relational DataBase Management System)

RDBMSμ—μ„œμ˜ κ΄€κ³„λŠ” ν…Œμ΄λΈ”λ‘œ ν‘œν˜„ν•  수 있으며, ν…Œμ΄λΈ”μ˜ λ°μ΄ν„°λ“€μ˜ κ΄€κ³„ν˜• 연산은 SQL(Structured Query Language) λͺ…λ Ήμ–΄λ‘œ μˆ˜ν–‰ν•  수 μžˆλ‹€.

Primary Key & Foreign Key

  • Primary Key

    • ν•œ ν…Œμ΄λΈ”μ˜ 각 λ ˆμ½”λ“œλ₯Ό μœ μΌν•˜λ„λ‘ μ‹λ³„ν•΄μ£ΌλŠ” μ—΄, λ˜λŠ” μ—΄μ˜ 집합
    • PK둜 null 값이 올 수 μ—†λ‹€.
    • 일반적으둜 λ³€κ²½λ˜μ§€ μ•ŠλŠ” κ°’μœΌλ‘œ μ„€μ •ν•œλ‹€.
  • Foreign Key

    • 같은 ν…Œμ΄λΈ” λ˜λŠ” λ‹€λ₯Έ ν…Œμ΄λΈ”μ˜ PKλ₯Ό μ°Έμ‘°ν•˜λŠ” 단일 μ—΄, λ˜λŠ” μ—΄μ˜ 집합
    • FKλŠ” κ΄€κ³„ν˜• 데이터 베이슀의 데이터 κ°„ 논리적 관계λ₯Ό ν‘œν˜„ν•΄μ£ΌλŠ” 도ꡬ
    • FKλŠ” FKκ°€ μ°Έμ‘°ν•˜λŠ” PK의 κ°’μ΄λ‚˜ null κ°’λ§Œ κ°€μ§ˆ 수 μžˆλ‹€.

SQL μ’…λ₯˜

  1. 데이터 μ‘°μž‘μ–΄(DML, Data Manipulation Language)

    • 데이터 λ² μ΄μŠ€μ— μ ‘κ·Όν•˜μ—¬ 데이터λ₯Ό 검색(Retrieve), κ°±μ‹ (Update), μ‚½μž…(Create), μ‚­μ œ(Delete)ν•˜λŠ” κΈ°λŠ₯(CRUD)
    • INSERT, SELECT, UPDATE, DELETE
  2. 데이터 μ •μ˜μ–΄(DDL, Data Definition Language)

    • 데이터 베이슀의 논리적, 물리적 ꡬ쑰λ₯Ό μ •μ˜ν•˜λŠ” κΈ°λŠ₯
    • CREATE, ALTER, DROP, TRUNCATE λ“±
  3. 데이터 μ œμ–΄μ–΄(DCL, Data Control Language)

    • 데이터 베이슀의 λ‚΄μš©μ΄ μ •ν™•ν•˜κ³  μ•ˆμ „ν•˜λ„λ‘ μ œμ–΄ν•˜λŠ” κΈ°λŠ₯
    • GRANT, REVOKE