DataBaseSQLD

๐Ÿ“Œ ํ˜„์‹ค ์„ธ๊ณ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ„๋žตํ™”ํ•˜์—ฌ ์ผ์ •ํ•œ ํ‘œ๊ธฐ๋ฒ•์— ๋”ฐ๋ผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋…์ ์ธ ๋„๊ตฌ์˜ ์ง‘ํ•ฉ

ํŠน์ง•

  1. Data Abstraction (์ถ”์ƒํ™”)
  2. Simplification (๋‹จ์ˆœํ™”)
  3. Clarity (๋ช…ํ™•ํ™”)
    โ†” ์ง€์–‘ํ•ด์•ผ ํ•  ์ : Pitfalls (ํ•จ์ •)

๊ด€์ 

  1. Data, What
  2. Process, How
  3. Data vs Process, Interaction, Relationship (๋ฐ์ดํ„ฐ์™€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์„œ๋กœ ์—ฐ๊ด€์„ฑ์ด ํ‘œํ˜„๋˜๋Š” ์ƒ๊ด€ ๊ด€์ )

Modeling ๋‹จ๊ณ„

  1. Conceptual (๊ฐœ๋…์ ): Data Abstraction Level์ด ๊ฐ€์žฅ ๋†’์Œ, ์—…๋ฌด ์ค‘์‹ฌ์ ์ด๊ณ  ํฌ๊ด„์ , ์ „์‚ฌ์  (= ๊ธฐ์—… ์ „์ฒด ๊ด€์ )
    • ํ•ต์‹ฌ Entity ์ถ”์ถœ
  2. Logical (๋…ผ๋ฆฌ์ ): Model์˜ Key, ์†์„ฑ, ๊ด€๊ณ„ ๋“ฑ์„ ๋ชจ๋‘ ํ‘œํ˜„, ๊ฐ€์žฅ ๋†’์€ ์žฌ์‚ฌ์šฉ์„ฑ
  3. Physical (๋ฌผ๋ฆฌ์ ): ์‹ค์ œ DB๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ฑ๋Šฅ, ๊ฐ€์šฉ์„ฑ ๋“ฑ ๋ฌผ๋ฆฌ์  ์„ฑ๊ฒฉ ๊ณ ๋ ค, HW์— DB๋ฅผ ์‹ค์ œ๋กœ ์˜ฌ๋ฆผ

๊ตฌ์„ฑ ์š”์†Œ

  1. Data
  2. Data Relationships (๊ด€๊ณ„)
  3. Data Semantics (์˜๋ฏธ)
  4. Integrity Constraint (๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ)

์ข…๋ฅ˜

  1. Relational Model
  2. ER Model, Super-Subtype Model, Extended ER Model
  3. Object-based Data Model
  4. Semi-structed Data Model (๋ฐ˜๊ตฌ์กฐ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ)
    • NoSQL DBMS์—์„œ ์‚ฌ์šฉ (๐Ÿ”Ž XML, JSON)
  5. Network Model (Graph), Hierarchical Model (Tree)

๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ

Entity

๐Ÿ“Œ ๋…๋ฆฝ์ฒด, ์‘์šฉ ๋ถ„์•ผ ํ˜„์‹ค ์„ธ๊ณ„์˜ ๊ณ ์œ  ์‹๋ณ„์„ฑ์„ ๊ฐ–๋Š” ๊ฐ์ฒด, ๋ฐ์ดํ„ฐ๋ฅผ ์šฉ๋„๋ณ„๋กœ ๋ถ„๋ฅ˜ํ•œ ๊ทธ๋ฃน
= Table, (Strong) Entity Set
โ†” Entity

  • ํŠน์ง•
    1. ์—…๋ฌด์— ํ•„์š”, ์‹ค์ œ๋กœ Process์—์„œ ํ™œ์šฉ
    2. ์‹๋ณ„์ž๋ฅผ ํ†ตํ•ด ๊ฐ Instance์˜ ๊ณ ์œ  ์‹๋ณ„์„ฑ ๋ณด์žฅ
    3. 2๊ฐœ ์ด์ƒ์˜ Instance
    4. 2๊ฐœ ์ด์ƒ์˜ Attributes
    5. ๋‹ค๋ฅธ Entity์™€ 1๊ฐœ ์ด์ƒ์˜ Relationship
  • ๋ถ„๋ฅ˜
    1. ์œ /๋ฌดํ˜•
      • ์œ ํ˜• (๋ฌผ๋ฆฌ์  ํ˜•ํƒœ O)
      • ๊ฐœ๋… (X)
      • ์‚ฌ๊ฑด (Event)
    2. ๋ฐœ์ƒ ์‹œ์ 
      • ๊ธฐ๋ณธ (๋…๋ฆฝ์  ์ƒ์„ฑ)
        • Process์— ์›๋ž˜ ์กด์žฌ, ์ž์‹ Entity ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ
      • ์ค‘์‹ฌ (๊ธฐ๋ณธ์—์„œ ํŒŒ์ƒ๋จ, ํ–‰์œ„๋ฅผ ํŒŒ์ƒ)
        • Process์—์„œ ์ค‘์‹ฌ์ ์ธ ์—ญํ• , ๋ฐ์ดํ„ฐ ๋งŽ์ด ๋ฐœ์ƒ, Process ๊ณผ์ • ์ค‘ ํ•˜๋‚˜
      • ํ–‰์œ„ (Active, 2๊ฐœ ์ด์ƒ์—์„œ ํŒŒ์ƒ)
  • ๋ช…๋ช…
    1. ๋„์–ด์“ฐ๊ธฐ X ๋‹จ์ˆ˜ ๋ช…์‚ฌ
    2. ํ•œ๊ธ€ ์•ฝ์–ด X
    3. ์˜๋ฌธ ๋Œ€๋ฌธ์ž
    4. ๋‹ค๋ฅธ Entity์™€ ์˜๋ฏธ์ƒ ์ค‘๋ณต X

Instance

= Row, Entity, Instance

  • ํŠน์ง•
    1. ๊ณ ์œ  ์‹๋ณ„์„ฑ
    2. 2๊ฐœ ์ด์ƒ์˜ Attribute

Attribute

๐Ÿ“Œ Instance์˜ ํŠน์ง•์„ ์„ค๋ช…ํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ๋‹จ์œ„
= Column, Attribute

  • ํŠน์ง•
    1. ์—…๋ฌด์— ํ•„์š”, ์‹ค์ œ๋กœ Process์—์„œ ํ™œ์šฉ
    2. ์˜๋ฏธ์ƒ ๋” ์ชผ๊ฐค ์ˆ˜ ์—†๋Š” ๋‹จ์œ„, ์ตœ์†Œ ๋ฐ์ดํ„ฐ Level
    3. ํ•œ Instance์—์„œ, ํ•œ Attribute์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ์†์„ฑ๊ฐ’๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ โฌ… ์ œ 1์ •๊ทœํ˜• (1NF)
  • ๋ถ„๋ฅ˜
    1. ํŠน์„ฑ
      • ๊ธฐ๋ณธ (Basic): Process ๋ถ„์„์„ ํ†ตํ•ด ๋ฐ”๋กœ ์ •์˜
      • ์„ค๊ณ„ (Designed): Process์—๋Š” ์—†์œผ๋‚˜, ์„ค๊ณ„ ๊ณผ์ • ์ค‘ ๋„์ถœ
        • ๐Ÿ”Ž ๊ณ ์œ ๋ฒˆํ˜ธ, ํ˜„์‹ค์—๋Š” ์—†์œผ๋‚˜ ๊ณ ์œ  ์‹๋ณ„์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…
      • ํŒŒ์ƒ (Derived): ์ž์ฃผ ์“ฐ์ด๋Š” ๋‹ค๋ฅธ Attribute์˜ ์†์„ฑ๊ฐ’์„ ์กฐํ•ฉํ•˜์—ฌ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐ/๊ฐ€๊ณต
    2. ๊ตฌ์„ฑ ๋ฐฉ์‹
      • PK (Primary Key): Entity์˜ Instance์— ๊ณ ์œ  ์‹๋ณ„์„ฑ ๋ถ€์—ฌ
      • FK (Foreign Key): ๋‹ค๋ฅธ Entity์˜ PK ์ฐธ์กฐ (๋˜๋Š” null), ๋‹ค๋ฅธ Entity์™€ Relationship์„ ๋งบ๊ฒŒ ํ•ด์ฃผ๋Š” ๋งค๊ฐœ์ฒด
      • ์ผ๋ฐ˜: PK, FK๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€
    3. ๋ถ„ํ•ด ๊ฐ€๋Šฅ ์—ฌ๋ถ€
      • ๋‹จ์ผ: ํ•˜๋‚˜์˜ ์˜๋ฏธ๋กœ ๊ตฌ์„ฑ
      • ๋ณตํ•ฉ: ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์˜๋ฏธ๋กœ ๊ตฌ์„ฑ (๐Ÿ”Ž ์ฃผ์†Œ = ์‹œ + ๊ตฌ + ๋™)
      • ๋‹ค์ค‘๊ฐ’: ํ•œ ์†์„ฑ์ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’ ๊ฐ€์ง โžก ์ œ 1์ •๊ทœํ˜• (1NF)
  • ERD ํ‘œ๊ธฐ
    1. IE: ๋งจ ์œ„๊ฐ€ PK
    2. Barker
      • #: PK
      • *: Required
      • โ—‹: Optional (null ํ—ˆ์šฉ)

Domain

๐Ÿ“Œ Attribute๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์†์„ฑ๊ฐ’์˜ ๋ฒ”์œ„, ํŠน์ • ์†์„ฑ์— ๋“ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์†์„ฑ๊ฐ’๋“ค์˜ Set

  • Type, Data Size๋ฅผ ํ†ตํ•ด ์ •์˜

Relationship

๐Ÿ“ŒEntity ๊ฐ„ ๊ด€๊ณ„
= Relationship

  • ์ข…๋ฅ˜
    1. ์—ฐ๊ด€์„ฑ
      • ์กด์žฌ (๐Ÿ”Ž ์†Œ์†๋œ๋‹ค)
      • ํ–‰์œ„ (๐Ÿ”Ž ์‘๋ชจํ•œ๋‹ค, ์ฃผ๋ฌธ๋œ๋‹ค)
        • Dependency (์˜์กด), ์ƒ๋Œ€ Class์˜ ํ–‰์œ„์— ์˜ํ•ด ๊ด€๊ณ„ ํ˜•์„ฑ, ํ–‰์œ„(Operation, Method) ํŒŒ๋ผ๋ฏธํ„ฐ
      • ERD์—์„œ๋Š” ์ด๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ, UMLClass DIagram์—์„œ๋Š” ๊ตฌ๋ถ„
    2. ์‹๋ณ„์ž
      • ์‹๋ณ„์ž (Identification, ๋ถ€๋ชจ์˜ PK๊ฐ€ ์ž์‹์˜ PK์— ํฌํ•จ, 1:1 ๋˜๋Š” 1:ๅคš)
        • ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„: ๋ถ€๋ชจ Entity๊ฐ€ ์žˆ์–ด์•ผ์ง€๋งŒ ์ž์‹ Entity ์ƒ๊น€
          • โค๏ธ ๋ฐ์ดํ„ฐ Integrity (๋ฌด๊ฒฐ์„ฑ)
          • ๐Ÿ’” ๊ตฌ์กฐ ๋ณ€๊ฒฝ ์–ด๋ ค์›€, ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ ๋ฐ˜์˜ ์–ด๋ ค์›€
        • ERD์—์„œ ์‹ค์„  (ํ•ญ์ƒ ์—ฐ๊ฒฐ), ๋ถ€๋ชจ-์ž์‹ ํ•ญ์ƒ ์œ ์ง€๋จ, Join ์ตœ์†Œํ™” ๊ฐ€๋Šฅ
      • ๋น„์‹๋ณ„์ž (Non-Identification, ๋ถ€๋ชจ์˜ PK๊ฐ€ ์ž์‹์˜ ์ผ๋ฐ˜ Attribute)
        • ERD์—์„œ ์ ์„  (์„ ํƒ์  ์—ฐ๊ฒฐ)
  • ํ‘œ๊ธฐ
    • ๊ด€๊ณ„๋ช… (Membership): ๊ฐ Entity ๊ด€์ ์—์„œ ํ•˜๋‚˜์”ฉ, ํ˜„์žฌํ˜•
    • ๊ด€๊ณ„์ฐจ์ˆ˜ (Cardinality): 1:1, 1:ๅคš, ๅคš:ๅคš
    • ๊ด€๊ณ„์„ ํƒ์‚ฌ์–‘, ๊ด€๊ณ„์„ ํƒ์„ฑ (Optionality): ํ•„์ˆ˜, ์„ ํƒ

Identifier, Key

๐Ÿ“Œ ์‹๋ณ„์ž, ๊ฐ Instance๋ฅผ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋Œ€ํ‘œ Attribute
= Key

  • ๋ถ„๋ฅ˜
    1. ๋Œ€ํ‘œ์„ฑ ์—ฌ๋ถ€
      • ์ฃผ (Primary, ๋Œ€ํ‘œ ์‹๋ณ„์ž, ๋‹ค๋ฅธ Entity์™€ ์ฐธ์กฐ ๊ด€๊ณ„)
      • ๋ณด์กฐ (Alternate, ์‹๋ณ„์„ฑ ์žˆ์œผ๋‚˜ ๋Œ€ํ‘œ X, ์ฐธ์กฐ ๊ด€๊ณ„ X)
    2. ์Šค์Šค๋กœ ์ƒ์„ฑ ์—ฌ๋ถ€
      • ๋‚ด๋ถ€ (Internal, ๋‹ค๋ฅธ Entity์—์„œ ์ฐธ์กฐํ•ด์˜จ ๊ฒƒ X)
      • ์™ธ๋ถ€ (Foreign, FK, ๋‹ค๋ฅธ Entity์™€์˜ ์—ฐ๊ฒฐ๊ณ ๋ฆฌ)
    3. ๋‹จ์ผ ์†์„ฑ ์—ฌ๋ถ€
      • ๋‹จ์ผ (Single, Attribute ํ•˜๋‚˜๋กœ ๊ตฌ์„ฑ)
      • ๋ณตํ•ฉ (Composite, 2๊ฐœ ์ด์ƒ์˜ Attribute๋กœ)
    4. ๋Œ€์ฒด ์—ฌ๋ถ€
      • ์›์กฐ, ๋ณธ์งˆ (Original, Process์— ์กด์žฌ, ๊ฐ€๊ณต X)
      • ๋Œ€๋ฆฌ, ์ธ์กฐ (Surrogate, 2๊ฐœ ์ด์ƒ์˜ Attribute๋ฅผ ํ•˜๋‚˜์˜ Attribute๋กœ ์ธ์œ„์  ๊ฐ€๊ณต)

์ฃผ์‹๋ณ„์ž

โŠƒ PK (Primary Key, ๊ธฐ๋ณธํ‚ค)

  • ํŠน์ง•
    1. ์œ ์ผ์„ฑ: Unique, ๊ฐ Instance์— ๊ณ ์œ  ์‹๋ณ„์„ฑ ๋ถ€์—ฌ
    2. ์ตœ์†Œ์„ฑ: Candidate Key์—ฌ์•ผ ํ•จ, ์ฆ‰ Super Key ์ค‘ ์ตœ์†Œ ๊ฐœ์ˆ˜์˜ Attribute๋กœ ๊ตฌ์„ฑ๋œ Key๋“ค ์ค‘ ํ•˜๋‚˜์—ฌ์•ผ ํ•จ
    3. ๋ถˆ๋ณ€์„ฑ: ์†์„ฑ๊ฐ’์ด ์ตœ๋Œ€ํ•œ ๋ณ€ํ•˜์ง€ ์•Š์•„์•ผ ํ•จ
    4. ์กด์žฌ์„ฑ: ์†์„ฑ๊ฐ’์œผ๋กœ null X