Home > SQL > 2024 > πŸ’Ύ[Database] DBMS의 κ°œμš”.

πŸ’Ύ[Database] DBMS의 κ°œμš”.
Database

πŸ’Ύ[Database] DBMS의 κ°œμš”.

1️⃣ λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ •μ˜μ™€ νŠΉμ§•.

  • λ°μ΄ν„°λ² μ΄μŠ€λŠ” μ—¬λŸ¬ μ‚¬μš©μžλ‚˜ μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ κ³΅μœ ν•˜κ³  λ™μ‹œμ— μ ‘κ·Ό κ°€λŠ₯ν•œ β€˜λ°μ΄ν„°μ˜ 집합’이라고 μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 그리고 DBMS(DataBase Management System)λŠ” μ΄λŸ¬ν•œ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 관리.μš΄μ˜ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄μž…λ‹ˆλ‹€.
  • 일반적으둜 μ‚¬μš©ν•˜λŠ” MS의 μ—‘μ…€ 같은 ν”„λ‘œκ·Έλž¨μ€ λ°μ΄ν„°μ˜ 집합을 닀루기 λ•Œλ¬Έμ— DBMS와 λΉ„μŠ·ν•΄ λ³΄μ΄μ§€λ§Œ, λŒ€μš©λŸ‰ 데이터λ₯Ό κ΄€λ¦¬ν•˜κ±°λ‚˜ μ—¬λŸ¬ λͺ…μ˜ μ‚¬μš©μžκ°€ κ³΅μœ ν•˜λŠ” 것은 μ•„λ‹ˆλ―€λ‘œ DBMS라고 λΆ€λ₯΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • λ°μ΄ν„°λ² μ΄μŠ€λŠ” β€˜λ°μ΄ν„°μ˜ μ €μž₯ 곡간’ 자체λ₯Ό μ˜λ―Έν•˜κΈ°λ„ ν•©λ‹ˆλ‹€.
  • MySQLμ—μ„œλŠ” λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μžλ£Œκ°€ μ €μž₯λ˜λŠ” λ””μŠ€ν¬ 곡간(주둜 파일둜 ꡬ성됨)으둜 μ·¨κΈ‰ν•©λ‹ˆλ‹€.
  • DBMSλŠ” λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό κ΄€λ¦¬ν•˜λŠ” 역할을 ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄μž…λ‹ˆλ‹€.
  • μ—¬λŸ¬ μ‚¬μš©μžλ‚˜ μ‘μš© ν”„λ‘œκ·Έλž¨μ€ DBMSκ°€ κ΄€λ¦¬ν•˜λŠ” 데이터에 λ™μ‹œμ— μ ‘μ†ν•˜μ—¬ 데이터λ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€.
    • 즉, DBMSμ—μ„œλŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ‚¬μš©λ˜λŠ” 데이터가 집쀑 κ΄€λ¦¬λ©λ‹ˆλ‹€.

DBMS λ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ€‘μš”ν•œ νŠΉμ§•.

  • 데이터 무결성.
    • λ°μ΄ν„°λ² μ΄μŠ€ μ•ˆμ˜ λ°μ΄ν„°λŠ” μ–΄λ–€ 경둜λ₯Ό 톡해 λ“€μ–΄μ™”λ“  였λ₯˜κ°€ μžˆμ–΄μ„œλŠ” μ•ˆ λ˜λŠ”λ° 이λ₯Ό 무결성(Integrity)이라고 ν•©λ‹ˆλ‹€.
    • 무결성을 지킀기 μœ„ν•΄ λ°μ΄ν„°λ² μ΄μŠ€λŠ” μ œμ•½ 쑰건(constraint)을 λ”°λ¦…λ‹ˆλ‹€.
      • 예λ₯Ό λ“€μ–΄ 학생 λ°μ΄ν„°μ—μ„œ λͺ¨λ“  학생은 ν•™λ²ˆμ΄ λ°˜λ“œμ‹œ μžˆμ–΄μ•Ό ν•˜κ³  ν•™λ²ˆμ΄ μ€‘λ³΅λ˜λ©΄ μ•ˆ λœλ‹€λŠ” μ œμ•½ 쑰건을 μƒκ°ν•΄λ΄…μ‹œλ‹€.
      • 이 μ œμ•½ 쑰건을 μΆ©μ‹€νžˆ 지킨닀면 ν•™λ²ˆμœΌλ‘œλ„ 학생 λ°μ΄ν„°μ—μ„œ 학생을 μ •ν™•νžˆ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.
        • 즉, ν•™λ²ˆμ€ λ¬΄κ²°ν•œ 데이터λ₯Ό 보μž₯ν•˜λŠ” μš”μ†Œμ΄λ©°, μžλ™ λ°œκΈ‰κΈ°λ‘œ 성적 증λͺ…μ„œλ‚˜ μž¬ν•™ 증λͺ…μ„œλ₯Ό λ—„ λ–Ό ν•™λ²ˆλ§Œ μ‘°νšŒν•΄λ„ μ •ν™•ν•œ 자료λ₯Ό 좜λ ₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ°μ΄ν„°μ˜ 독립성.
    • λ°μ΄ν„°λ² μ΄μŠ€μ˜ 크기λ₯Ό λ³€κ²½ν•˜κ±°λ‚˜ 데이터 파일의 μ €μž₯μ†Œλ₯Ό λ³€κ²½ν•˜λ”λΌλ„ 기쑴에 μž‘μ„±λœ μ‘μš© ν”„λ‘œκ·Έλž¨μ€ μ „ν˜€ 영ν–₯을 받지 μ•ŠμŠ΅λ‹ˆλ‹€.
      • 즉 λ°μ΄ν„°λ² μ΄μŠ€μ™€ μ‘μš© ν”„λ‘œκ·Έλž¨μ€ μ„œλ‘œ 의쑴적인 관계가 μ•„λ‹ˆλΌ 독립적인 κ΄€κ³„μž…λ‹ˆλ‹€.
        • 예λ₯Ό λ“€μ–΄ λ°μ΄ν„°λ² μ΄μŠ€κ°€ μ €μž₯된 λ””μŠ€ν¬κ°€ μƒˆκ²ƒμœΌλ‘œ λ³€κ²½λ˜μ–΄λ„ 기쑴에 μ‚¬μš©ν•˜λ˜ μ‘μš© ν”„λ‘œκ·Έλž¨μ€ μ•„λ¬΄λŸ° λ³€κ²½ 없이 계속 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ³΄μ•ˆ.
    • λ°μ΄ν„°λ² μ΄μŠ€ μ•ˆμ˜ λ°μ΄ν„°λŠ” μ•„λ¬΄λ‚˜ μ ‘κ·Όν•  수 μžˆλŠ” 것이 μ•„λ‹ˆλΌ 데이터λ₯Ό μ†Œμœ ν•œ μ‚¬λžŒμ΄λ‚˜ 데이터에 접근이 ν—ˆκ°€λœ μ‚¬λžŒλ§Œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • λ˜ν•œ 같은 데이터에 μ ‘κ·Όν•  λ•Œλ„ μ‚¬μš©μžμ˜ 계정에 λ”°λΌμ„œ 각각 λ‹€λ₯Έ κΆŒν•œμ„ κ°–μŠ΅λ‹ˆλ‹€.
    • 졜근 λ“€μ–΄ 고객 정보 유좜 사고가 λΉˆλ²ˆν•˜μ—¬ λ³΄μ•ˆ(Security)은 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ”μš± μ€‘μš”ν•œ μ΄μŠˆκ°€ 되고 μžˆμŠ΅λ‹ˆλ‹€.
  • 데이터 쀑볡 μ΅œμ†Œν™”.
    • λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œλŠ” λ™μΌν•œ 데이터가 μ—¬λŸ¬ ꡰ데 쀑볡 μ €μž₯λ˜λŠ” 것을 λ°©μ§€ν•©λ‹ˆλ‹€.
      • 학ꡐλ₯Ό 예둜 λ“€λ©΄, 학생 정보λ₯Ό μ΄μš©ν•˜λŠ” ꡐ직원듀(ν•™μƒμ²˜, ꡐ무처, 과사무싀 λ“±)이 각 μ§μ›λ§ˆλ‹€ λ³„λ„μ˜ μ—‘μ…€ 파일둜 학생 정보λ₯Ό κ΄€λ¦¬ν•˜λ©΄ ν•œ λͺ…μ˜ 학생 정보가 각각의 μ—‘μ…€ νŒŒμΌμ— 쀑볡 μ €μž₯λ©λ‹ˆλ‹€.
      • κ·ΈλŸ¬λ‚˜ λ°μ΄ν„°λ² μ΄μŠ€μ— ν†΅ν•©ν•˜μ—¬ κ΄€λ¦¬ν•˜λ©΄ ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”μ— 데이터λ₯Ό μ €μž₯ν•œ ν›„ μ‘μš© ν”„λ‘œκ·Έλž¨λ§ˆλ‹€ 이λ₯Ό κ³΅μœ ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆμ–΄ λ°μ΄ν„°μ˜ 쀑볡을 μ΅œμ†Œν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ‘μš© ν”„λ‘œκ·Έλž¨ 제μž₯ 및 μˆ˜μ • 용이.
    • κΈ°μ‘΄ 파일 μ‹œμŠ€ν…œμ—μ„œλŠ” 각각의 파일 포맷에 맞좰 μ‘μš© ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν–ˆμŠ΅λ‹ˆλ‹€.
    • κ·ΈλŸ¬λ‚˜ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ΄μš©ν•˜λ©΄ ν†΅μΌλœ λ°©μ‹μœΌλ‘œ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•  수 있고 μœ μ§€.보수 λ˜ν•œ μ‰½μŠ΅λ‹ˆλ‹€.
  • λ°μ΄ν„°μ˜ μ•ˆμ „μ„± ν–₯상.
    • λŒ€λΆ€λΆ„μ˜ DBMSλŠ” 데이터 λ°±μ—…/볡원 κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.
      • λ”°λΌμ„œ 데이터가 μ†μƒλ˜λŠ” λ¬Έμ œκ°€ λ°œμƒν•˜λ”λΌλ„ μ›λž˜μ˜ μƒνƒœλ‘œ 볡원 λ˜λŠ” 볡ꡬ할 수 μžˆμŠ΅λ‹ˆλ‹€.

2️⃣ DBMS의 λΆ„λ₯˜.

  • DBMSλŠ” 크게 κ³„μΈ΅ν˜•(Hierarchical), λ§ν˜•(network), κ΄€κ³„ν˜•(relational), 객체지ν–₯ν˜•(object-oriented), κ°μ²΄κ΄€κ³„ν˜•(object-relational)으둜 λΆ„λ₯˜λ©λ‹ˆλ‹€.
  • ν˜„μž¬λŠ” κ΄€κ³„ν˜• DBMS(Relational DBMS)κ°€ κ°€μž₯ 많이 μ‚¬μš©λ˜λ©°, 일뢀 λ©…ν‹°λ―Έλ””μ–΄ λΆ„μ•Όμ—μ„œλŠ” 객체지ν–₯ν˜•(object-oriented)λ‚˜ κ°μ²΄κ΄€κ³„ν˜•(object-relational) DBMSκ°€ ν™œμš©λ˜κΈ°λ„ ν•©λ‹ˆλ‹€.
  • MySQL을 λΉ„λ‘―ν•΄ Oracle, DB2, SQL Server, Access 등은 λͺ¨λ‘ κ΄€κ³„ν˜• DBMSμž…λ‹ˆλ‹€.

κ³„μΈ΅ν˜• DBMS(Hierarchical DBMS)

  • 1960λ…„λŒ€μ— 처음 λ“±μž₯ν•œ DBMS κ°œλ…μž…λ‹ˆλ‹€.

  • μœ„ κ·Έλ¦Όμ—μ„œ 보듯이 각 계측이 트리 ν˜•νƒœλ₯Ό 띠고 1:N 관계λ₯Ό κ°–μŠ΅λ‹ˆλ‹€.
    • 예λ₯Ό λ“€μ–΄ 사μž₯ 1λͺ…에 λΆ€μ„œ 3κ°œκ°€ μ—°κ²°λ˜μ–΄ μžˆλŠ” ꡬ쑰가 κ³„μΈ΅ν˜• κ΅¬μ‘°μž…λ‹ˆλ‹€.
  • κ³„μΈ΅ν˜• DBMSλŠ” κ΅¬μΆ•ν•œ ν›„ ꡬ쑰λ₯Ό λ³€κ²½ν•˜κΈ°κ°€ μƒλ‹Ήνžˆ κΉŒλ‹€λ‘­κ³ , 주어진 μƒνƒœμ—μ„œ 검색은 λΉ λ₯΄μ§€λ§Œ μ ‘κ·Όμ˜ μœ μ—°μ„±μ΄ λΆ€μ‘±ν•˜μ—¬ μž„μ˜ 검색 μ‹œ 어렀움이 μžˆλŠ” 것이 λ‹¨μ μž…λ‹ˆλ‹€.

λ§ν˜• DBMS(Network DBMS)

  • λ§ν˜• DBMSλŠ” κ³„μΈ΅ν˜• DBMS의 λ¬Έμ œμ μ„ κ°œμ„ ν•˜κΈ° μœ„ν•΄ 1970λ…„λŒ€μ— μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
  • λ§ν˜• DBMSμ—μ„œλŠ” 1:1, 1:N, N:M(λ‹€λŒ€λ‹€) 관계가 μ§€μ›λ˜μ–΄ 효과적이고 λΉ λ₯Έ 데이터 μΆ”μΆœμ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.
  • κ·ΈλŸ¬λ‚˜ κ³„μΈ΅ν˜• DBMS와 λ§ˆμ°¬κ°€μ§€λ‘œ 맀우 λ³΅μž‘ν•œ λ‚΄λΆ€ 포인터λ₯Ό μ‚¬μš©ν•˜κ³  ν”„λ‘œκ·Έλž˜λ¨Έκ°€ λͺ¨λ“  ꡬ쑰λ₯Ό μ΄ν•΄ν•΄μ•Όλ§Œ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•  수 μžˆλ‹€λŠ” 단점이 μ—¬μ „νžˆ μ‘΄μž¬ν•©λ‹ˆλ‹€.

κ΄€κ³„ν˜• DBMS

  • κ΄€κ³„ν˜• DBMS(Relational DBMS)λŠ” 1969λ…„ μ—λ“œκ±° F.μ½”λ“œ(Edgar F.Codd)κ°€ μˆ˜ν•™ λͺ¨λΈμ— κ·Όκ±°ν•˜μ—¬ κ³ μ•ˆν–ˆμŠ΅λ‹ˆλ‹€.
  • κ΄€κ³„ν˜• DBMS의 ν•΅μ‹¬κ°œλ…μ€ β€˜λ°μ΄ν„°λ² μ΄μŠ€λŠ” ν…Œμ΄λΈ”(table)μ΄λΌλŠ” μ΅œμ†Œ λ‹¨μœ„λ‘œ κ΅¬μ„±λ˜μ–΄ 있으며, 이 ν…Œμ΄λΈ”μ€ ν•˜λ‚˜ μ΄μƒμ˜ μ—΄(Column)둜 κ΅¬μ„±λ˜μ–΄ μžˆλ‹€β€™λŠ” κ²ƒμž…λ‹ˆλ‹€.

  • κ΄€κ³„ν˜• DBMSμ—μ„œλŠ” λͺ¨λ“  데이터가 ν…Œμ΄λΈ”μ— μ €μž₯λ©λ‹ˆλ‹€.
  • ν…Œμ΄λΈ”μ΄λΌλŠ” κ΅¬μ‘°λŠ” κ΄€κ³„ν˜• DBMS의 κ°€μž₯ 기본적이고 μ€‘μš”ν•œ κ΅¬μ„±μœΌλ‘œ, ν…Œμ΄λΈ”μ„ 잘 μ΄ν•΄ν•˜λ©΄ κ΄€κ³„ν˜• DBMS의 기본적인 것을 μ΄ν•΄ν–ˆλ‹€κ³  말할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • ν…Œμ΄λΈ”μ€ 데이터λ₯Ό 효율적으둜 μ €μž₯ν•˜κΈ° μœ„ν•œ κ΅¬μ‘°μž…λ‹ˆλ‹€.
  • κ΄€κ³„ν˜• DBMSμ—μ„œλŠ” 데이터λ₯Ό ν•˜λ‚˜κ°€ μ•„λ‹Œ μ—¬λŸ¬ 개의 ν…Œμ΄λΈ”μ— λ‚˜λˆ„μ–΄ μ €μž₯ν•˜λ―€λ‘œ λΆˆν•„μš”ν•œ κ³΅κ°„μ˜ λ‚­λΉ„λ₯Ό 쀄이고 데이터 μ €μž₯의 νš¨μœ¨μ„±μ„ 보μž₯ν•©λ‹ˆλ‹€.
    • μ΄λ ‡κ²Œ λ‚˜λ‰œ ν…Œμ΄λΈ”μ˜ 관계λ₯Ό κΈ°λ³Έν‚€(Primary Key, PK)와 μ™Έλž˜ν‚€(Foreign Key, FK)λ₯Ό μ‚¬μš©ν•˜μ—¬ 맺음으둜써 두 ν…Œμ΄λΈ”μ„ λΆ€λͺ¨μ™€ μžμ‹ κ΄€κ³„λ‘œ λ¬ΆμŠ΅λ‹ˆλ‹€.
    • 그리고 λΆ€λͺ¨μ™€ μžμ‹ κ΄€κ³„λ‘œ μ—°κ²°λœ ν…Œμ΄λΈ”μ„ μ„œλ‘œ μ‘°ν•©ν•˜μ—¬ μ›ν•˜λŠ” κ²°κ³Όλ₯Ό 얻을 수 μžˆλŠ”λ°, μ΄λ•Œ SQL(Structured Query Language, κ΅¬μ‘°ν™”λœ 질의 μ–Έμ–΄)의 쑰인(join) κΈ°λŠ₯을 μ΄μš©ν•©λ‹ˆλ‹€.

TIP: ν…Œμ΄λΈ”μ€ λ¦΄λ ˆμ΄μ…˜(Relation), μ—”ν‹°ν‹°(Entity) λ“±μœΌλ‘œ λΆˆλ¦½λ‹ˆλ‹€.

  • κ΄€κ³„ν˜• DBMSλŠ” λ‹€λ₯Έ DBMS에 λΉ„ν•΄ 업무 변화에 따라 λ°”λ‘œ μˆœμ‘ν•  수 있고 μœ μ§€.보수 μΈ‘λ©΄μ—μ„œλ„ νŽΈλ¦¬ν•˜λ‹€λŠ” νŠΉμ§•μ΄ μžˆμŠ΅λ‹ˆλ‹€.
  • λ˜ν•œ λŒ€μš©λŸ‰ 데이터λ₯Ό μ²΄κ³„μ μœΌλ‘œ 관리할 수 있고 λ°μ΄ν„°μ˜ 무결성도 잘 보μž₯λ©λ‹ˆλ‹€.
    • λ”°λΌμ„œ λ™μ‹œμ— μ ‘κ·Όν•˜λŠ” μ—¬λŸ¬ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ μ‚¬μš©ν•  λ•Œ κ΄€κ³„ν˜• DBMSλŠ” μ μ ˆν•œ 선택이 될 수 μžˆμŠ΅λ‹ˆλ‹€.
  • κ΄€κ³„ν˜• DBMS의 λ‹¨μ μœΌλ‘œλŠ” μ‹œμŠ€ν…œ μžμ›μ„ 많이 μ°¨μ§€ν•˜μ—¬ μ‹œμŠ€ν…œμ΄ μ „λ°˜μ μœΌλ‘œ λŠλ €μ§„λ‹€λŠ” 것을 꼽을 수 μžˆμŠ΅λ‹ˆλ‹€.
    • κ·ΈλŸ¬λ‚˜ μ΅œκ·Όμ—λŠ” ν•˜λ“œμ›¨μ–΄μ˜ κΈ‰μ†ν•œ λ°œμ „μœΌλ‘œ μ΄λŸ¬ν•œ 단점이 많이 λ³΄μ™„λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

3️⃣ SQL의 κ°œμš”

  • SQL은 κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ‚¬μš©λ˜λŠ” μ–Έμ–΄λ‘œ β€˜μ—μŠ€νμ—˜β€™ λ˜λŠ” β€˜μ‹œν€„β€™μ΄λΌκ³  μ½μŠ΅λ‹ˆλ‹€.
  • κ΄€κ³„ν˜• DBMS(κ·Έμ€‘μ—μ„œλ„ MySQL)λ₯Ό 배우렀면 SQL을 μ΅νžˆλŠ” 것이 ν•„μˆ˜μž…λ‹ˆλ‹€.
  • SQL은 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‘°μž‘ν•˜λŠ” β€˜μ–Έμ–΄β€™λ‘œ, 일반적인 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄(C, C++, Java, C# λ“±)와 λ‹€λ₯Έ νŠΉμ„±μ„ 가지고 μžˆλ‹€.

SQL의 νŠΉμ§•.

  • DBMS μ œμž‘ νšŒμ‚¬μ™€ λ…λ¦½μ μž…λ‹ˆλ‹€.
    • λͺ¨λ“  DBMS μ œμž‘ νšŒμ‚¬μ— ν‘œμ€€ SQL이 κ³΅κ°œλ˜μ–΄ 각 νšŒμ‚¬λŠ” 이 ν‘œμ€€ SQL에 맞좰 DBMSλ₯Ό κ°œλ°œν•©λ‹ˆλ‹€.
    • λ”°λΌμ„œ SQL은 λŒ€λΆ€λΆ„μ˜ DBMS μ œν’ˆμ—μ„œ κ³΅ν†΅μ μœΌλ‘œ ν˜Έν™˜λ©λ‹ˆλ‹€.
  • λ‹€λ₯Έ μ‹œμŠ€ν…œμœΌλ‘œμ˜ 이식성이 μ’‹μŠ΅λ‹ˆλ‹€.
    • SQL은 μ„œλ²„μš©, 개인용, νœ΄λŒ€μš© μž₯λΉ„ λ“± μš΄μ˜λ˜λŠ” DBMSλ§ˆλ‹€ μƒν˜Έ ν˜Έν™˜μ„±μ΄ λ›°μ–΄λ‚©λ‹ˆλ‹€.
    • ν•œ μ‹œμŠ€ν…œμ—μ„œ μ‚¬μš©ν•˜λ˜ SQL을 λ‹€λ₯Έ μ‹œμŠ€ν…œμœΌλ‘œ μ΄μ‹ν•˜λŠ” 데 큰 λ¬Έμ œκ°€ μ—†μŠ΅λ‹ˆλ‹€.
  • ν‘œμ€€μ΄ 계속 λ°œμ „ν•©λ‹ˆλ‹€.
    • SQL은 SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011 λ“±μœΌλ‘œ κ°œμ„ λœ ν‘œμ€€μ•ˆμ΄ 계속 λ°œν‘œλ˜μ—ˆμœΌλ©°, μ§€κΈˆλ„ κ°œμ„ λœ μ•ˆμ΄ κΎΈμ€€νžˆ μ—°κ΅¬λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
  • λŒ€ν™”μ‹ μ–Έμ–΄μž…λ‹ˆλ‹€.
    • κΈ°μ‘΄ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” ν”„λ‘œκ·Έλž¨ μž‘μ„±, 컴파일 및 디버깅, μ‹€ν–‰ 과정을 κ±°μ³μ•Όλ§Œ κ·Έ κ²°κ³Όλ₯Ό 확인할 수 μžˆμ§€λ§Œ SQL은 λ°”λ‘œ μ§ˆμ˜ν•˜κ³  κ²°κ³Όλ₯Ό μ–»λŠ” λŒ€ν™”μ‹ μ–Έμ–΄μž…λ‹ˆλ‹€.
  • ν΄λΌμ΄μ–ΈνŠΈ/μ„œλ²„ ꡬ쑰λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.
    • SQL은 λΆ„μ‚°ν˜• ꡬ쑰인 ν΄λΌμ΄μ–ΈνŠΈ/μ„œλ²„ ꡬ쑰λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.
    • ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ 질의λ₯Ό ν•˜λ©΄ μ„œλ²„μ—μ„œ κ·Έ 질의λ₯Ό λ°›μ•„ μ²˜λ¦¬ν•˜μ—¬ ν΄λΌμ΄μ–ΈνŠΈμ— μ „λ‹¬ν•˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€.

  • SQL을 μ‚¬μš©ν•  λ•Œ μ£Όμ˜ν•  점은, λͺ¨λ“  DBMS μ œν’ˆμ˜ SQL 문이 μ™„λ²½ν•˜κ²Œ λ™μΌν•˜μ§€λŠ” μ•Šλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
  • λ§Žμ€ νšŒμ‚¬κ°€ λ˜λ„λ‘ ν‘œμ€€ SQL을 μ€€μˆ˜ν•˜λ €κ³  λ…Έλ ₯ν•˜μ§€λ§Œ 각 νšŒμ‚¬μ˜ DBMSλ§ˆλ‹€ νŠΉμ§•μ΄ 있기 λ•Œλ¬Έμ— ν˜„μ‹€μ μœΌλ‘œ μ™„μ „νžˆ ν†΅μΌλ˜κΈ°λŠ” μ–΄λ ΅μŠ΅λ‹ˆλ‹€.
  • 각 νšŒμ‚¬λŠ” 가급적 ν‘œμ€€ SQL을 μ§€ν‚€λ©΄μ„œλ„ μžμ‹ μ˜ μ œμΆ€μ— νŠΉν™”λœ SQL을 μ‚¬μš©ν•©λ‹ˆλ‹€.
    • 이λ₯Ό μ˜€λΌν°μ—μ„œλŠ” PL/SQL, SQL Serverμ—μ„œλŠ” T-SQL이라 λΆ€λ₯΄κ³  MySQLμ—μ„œλŠ” κ·Έλƒ₯ SQL이라 μΌμ»«μŠ΅λ‹ˆλ‹€.

  • μœ„ κ·Έλ¦Όκ³Ό 같이 각 νšŒμ‚¬μ˜ μ œν’ˆμ€ λͺ¨λ‘ ν‘œμ€€ SQL을 κ³΅ν†΅μœΌλ‘œ μ‚¬μš©ν•˜λ©΄μ„œ 자기 μ œν’ˆμ˜ νŠΉμ„±μ— 맞좘 ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” SQL 문도 μ‚¬μš©ν•©λ‹ˆλ‹€.