Jayden1116
Jayden`s LifeTrip πŸ”†
Jayden1116
전체 방문자
였늘
μ–΄μ œ
  • Jayden`s (481)
    • 🐯 Hello, Jayden (144)
      • 일기 (1)
      • μ‹ λ¬Έ (121)
      • μŒμ•… (6)
      • 경제 (16)
    • πŸ’› JavaScript (88)
      • 이λͺ¨μ €λͺ¨ (4)
      • λ°±μ€€ (44)
      • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ (40)
      • 버그 (0)
    • 🎭 HTML CSS (6)
      • ννŠΈλ―€λ₯΄ (2)
      • 크슀슀 (4)
    • πŸ’» CS (13)
      • 자료ꡬ쑰 및 μ•Œκ³ λ¦¬μ¦˜ (1)
      • λ„€νŠΈμ›Œν¬ (9)
      • 운영체제 (1)
      • 데이터 베이슀 (0)
      • λ””μžμΈ νŒ¨ν„΄ (1)
    • 🐍 Python (71)
      • λ°±μ€€ (67)
      • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ (4)
    • πŸ’Ώ Data (156)
      • 이λͺ¨μ €λͺ¨ (65)
      • λΆ€νŠΈμΊ ν”„ (89)
      • 그둜슀 ν•΄ν‚Ή (2)

λΈ”λ‘œκ·Έ 메뉴

  • πŸ”΄ λΈ”λ‘œκ·Έ(ν™ˆ)
  • 🐱 Github
  • κΈ€μ“°κΈ°
  • νŽΈμ§‘
hELLO Β· Designed By JSW.
Jayden1116

Jayden`s LifeTrip πŸ”†

πŸ’Ώ Data/λΆ€νŠΈμΊ ν”„

[TIL]48_DataBase, SQL_Basics(SQLite)

2022. 1. 19. 23:41

λ°μ΄ν„°λ² μ΄μŠ€

  1. IN-Memory : ν”„λ‘œκ·Έλž¨μ΄ 싀행될 λ•Œμ—λ§Œ μ‘΄μž¬ν•˜λŠ” 데이터 ex) νŒŒμ΄μ¬μ—μ„œ λ³€μˆ˜ μ €μž₯, 리슀트 μ €μž₯ λ“±
  1. File I/O : νŒŒμΌμ„ μ½μ–΄μ˜€λŠ” λ°©μ‹μœΌλ‘œ μ—‘μ…€ μ‹œνŠΈ, CSV와 같은 ν˜•νƒœ
  • νŒŒμΌμ„ 맀번 μ½μ–΄μ™€μ•Όν•˜λ―€λ‘œ λ²ˆκ±°λ‘­λ‹€. λ˜ν•œ 파일 크기가 컀질수둝 μž‘μ—…μ΄ λ²„κ±°μ›Œμ§„λ‹€.
  • 파일이 μ†μƒλ˜κ±°λ‚˜ μ—¬λŸ¬ 개의 νŒŒμΌλ“€μ„ λ™μ‹œμ— λ‹€λ€„μ•Όν•˜κ±°λ‚˜ ν•˜λŠ” λ“± λ³΅μž‘ν•˜κ³  λ°μ΄ν„°λŸ‰μ΄ λ§Žμ•„μ§ˆμˆ˜λ‘ 점점 νž˜λ“€μ–΄μ§
  1. λ°μ΄ν„°λ² μ΄μŠ€(κ΄€κ³„ν˜•) : ν•˜λ‚˜μ˜ csv νŒŒμΌμ΄λ‚˜ μ—‘μ…€ μ‹œνŠΈλ₯Ό ν•œ 개의 'ν…Œμ΄λΈ”(μ—”ν‹°ν‹°)'둜 μ €μž₯ν•  수 있음
  • ν•œλ²ˆμ— μ—¬λŸ¬ 개의 ν…Œμ΄λΈ”μ„ κ°€μ§ˆ 수 있기 λ•Œλ¬Έμ— 데이터λ₯Ό κ°€μ Έμ˜€κΈ° μˆ˜μ›”
  • λ˜ν•œ μ• μ΄ˆμ— μ—‘μ…€ μ‹œνŠΈ, CSV 파일 λ“± νŠΉμ • ν˜•νƒœμ˜ νŒŒμΌλ“€μ€ λŒ€μš©λŸ‰μ˜ 데이터λ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•œ λͺ©μ μ΄ μ•„λ‹˜

SQL(Structured Query Language)

  • λ°μ΄ν„°λ² μ΄μŠ€ μ–Έμ–΄μ˜ κΈ°μ€€μœΌλ‘œ 주둜 κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ‚¬μš©
  • MySQL, Oracle, SQlite λ“± λ‹€μ–‘ν•œ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ°μ΄ν„°λ² μ΄μŠ€μ— 쿼리(질의문)을 보내 μ›ν•˜λŠ” λ°μ΄ν„°λ§Œ κ°€μ Έμ˜€λŠ” μ–Έμ–΄
  • λ°μ΄ν„°λ² μ΄μŠ€ μ’…λ₯˜λ₯Ό SQLμ΄λΌλŠ” μ–Έμ–΄λ‘œ λΆ„λ₯˜ν•  μ •λ„λ‘œ SQL은 맀우 μ€‘μš”!

Query

  • 질의문
  • μ €μž₯λ˜μ–΄μžˆλŠ” 정보λ₯Ό ν•„ν„°ν•˜κΈ° μœ„ν•œ 질문

NoSQL

  • 데이터 ꡬ쑰가 κ³ μ •λ˜μ–΄μžˆμ§€ μ•Šμ€ λ°μ΄ν„°λ² μ΄μŠ€
  • ν…Œμ΄λΈ”μ„ μ‚¬μš©ν•˜μ§€ μ•Šκ³  λ‹€λ₯Έ ν˜•νƒœλ‘œ 데이터λ₯Ό μ €μž₯ ex) MongoDB(λ¬Έμ„œ μ§€ν–₯ λ°μ΄ν„°λ² μ΄μŠ€)

SQL의 μ’…λ₯˜

  1. Data Definition Language : 데이터λ₯Ό μ •μ˜ν•  λ•Œ μ‚¬μš©λ˜λŠ” μ–Έμ–΄
  2. Data Manipulation Language : λ°μ΄ν„°λ² μ΄μŠ€μ— 데이터λ₯Ό μ €μž₯ν•  λ•Œ
  3. Data Control Language : λ°μ΄ν„°λ² μ΄μŠ€μ— μ ‘κ·Ό κΆŒν•œκ³Ό κ΄€λ ¨λœ 문법
  4. Data Query Language : μ •ν•΄μ§„ μŠ€ν‚€λ§ˆ λ‚΄μ—μ„œ 쿼리λ₯Ό ν•  수 μžˆλŠ” μ–Έμ–΄
  5. Transaction Control Language : DML(Data Manipulation Language; 데이터 μ‘°μž‘ μ–Έμ–΄)을 거친 데이터 변경사항 μˆ˜μ • κ°€λŠ₯

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

  • κ΅¬μ‘°ν™”λœ 데이터가 ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”λ‘œ ν‘œν˜„μ΄ λ˜λŠ”λ° 사전에 μ •μ˜λœ ν…Œμ΄λΈ”μ„ relation 이라고도 뢀름
  • 즉, ν…Œμ΄λΈ”μ„ μ‚¬μš©ν•˜λŠ” 데이터 베이슀λ₯Ό 의미

μ•Œμ•„λ‘¬μ•Όν•  ν‚€μ›Œλ“œ

  1. 데이터 : 각 ν•­λͺ©μ— μ €μž₯λ˜λŠ” κ°’μž…λ‹ˆλ‹€.
  2. ν…Œμ΄λΈ” (ν˜Ήμ€ relation) : 사전에 μ •μ˜λœ ν–‰κ³Ό μ—΄λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλŠ” μ²΄κ³„ν™”λœ λ°μ΄ν„°μž…λ‹ˆλ‹€.
  3. ν•„λ“œ (ν˜Ήμ€ column) : ν…Œμ΄λΈ”μ˜ 열을 κ°€λ¦¬ν‚΅λ‹ˆλ‹€.
  4. λ ˆμ½”λ“œ (ν˜Ήμ€ tuple) : ν…Œμ΄λΈ”μ˜ ν•œ ν–‰μ˜ μ €μž₯된 μ •λ³΄μž…λ‹ˆλ‹€.
  5. ν‚€ : ν…Œμ΄λΈ”μ˜ 각 λ ˆμ½”λ“œλ₯Ό ꡬ뢄할 수 μžˆλŠ” κ°’. 각 λ ˆμ½”λ“œλ§ˆλ‹€ κ³ μœ κ°’μ΄μ–΄μ•Ό ν•˜λ©° κΈ°λ³Έν‚€ (primary key) 와 μ™Έλž˜ν‚€ (foreign key) 등이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

κ΄€κ³„μ˜ μ’…λ₯˜

  1. 1:1 관계
  • ν…Œμ΄λΈ”μ˜ λ ˆμ½”λ“œ ν•˜λ‚˜ λ‹Ή λ‹€λ₯Έ ν…Œμ΄λΈ”μ˜ λ ˆμ½”λ“œ ν•˜λ‚˜μ™€ μ—°κ²°λ˜μ–΄ μžˆλŠ” 경우

ν•˜μ§€λ§Œ 이런 κ΄€κ³„λŠ” ν”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ–΄μ°¨ν”Ό 1:1이라면 같이 μ λŠ” 게 효율적일 μˆ˜λ„ 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

  1. 1:N 관계
  • ν…Œμ΄λΈ”μ˜ λ ˆμ½”λ“œ ν•˜λ‚˜ λ‹Ή μ—¬λŸ¬ 개의 λ ˆμ½”λ“œμ™€ μ—°κ²°λ˜μ–΄ μžˆλŠ” 경우

κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 제일 많이 μ‚¬μš©λ©λ‹ˆλ‹€. ex) μ‚¬μš©μž - μ „ν™”λ²ˆν˜Έ (μ‚¬μš©μž 1λͺ…이 μ „ν™”λ²ˆν˜Έ μ—¬λŸ¬κ°œ 일 수 있음, κ·ΈλŸ¬λ‚˜ μ „ν™”λ²ˆν˜Έ 1κ°œλŠ” 무쑰건 μ‚¬μš©μž 1λͺ…)

  1. N:N 관계
  • μ—¬λŸ¬ 개의 λ ˆμ½”λ“œκ°€ μ—¬λŸ¬ 개의 λ ˆμ½”λ“œμ™€ μ—°κ²°λ˜μ–΄ μžˆλŠ” 경우
  • λ°”λ‘œ 연결이 μ•ˆλ˜κ³ , 쀑간에 Join Table을 λ§Œλ“€μ–΄ 각각의 1:N κ΄€κ³„λ‘œ μ—°κ²°

  1. 자기참쑰 관계(Self Referencing Relationship)
  • ν•˜λ‚˜μ˜ ν…Œμ΄λΈ” λ‚΄μ—μ„œλ„ 관계가 ν•„μš”ν•  λ•Œ

ex) μΆ”μ²œμΈμ΄ λˆ„κ΅¬μΈμ§€ νŒŒμ•…, 쑰직 λ‚΄μ˜ μƒν•˜ 관계 등을 ν‘œν˜„ν•˜κΈ° μœ„ν•΄

μœ μ €λŠ” 1λͺ…λ§Œ μΆ”μ²œ κ°€λŠ₯, μΆ”μ²œμΈ μž…μž₯에선 μ—¬λŸ¬ λͺ…μ—κ²Œ μΆ”μ²œ 받을 수 μžˆλ‹€.

μŠ€ν‚€λ§ˆ λ””μžμΈ

μ°Έκ³ 

μΆ”κ°€)
VARCHAR(120) -> 120λ°”μ΄νŠΈκΉŒμ§€ μ €μž₯ κ°€λŠ₯ν•œ λ¬Έμžμ—΄ ν˜•νƒœ

ERD 와 μŠ€ν‚€λ§ˆ 찾아보기

DBeaver 같은 건 DBMS -> Data Base Management System

ν…Œμ΄λΈ” κ°„μ˜ 관계 μ„€μ •ν•  λ•Œ primary key와 foreign key μ„€μ • 잘 ν•΄μ£ΌκΈ°

Primary key(κΈ°λ³Έν‚€)λŠ” unique ν•΄μ•Όν•˜κ³  null 값이 μ‘΄μž¬ν•˜λ©΄ μ•ˆλ¨. λ‹€λ₯Έ ν…Œμ΄λΈ”μ—μ„œ Foreign key둜 μ‚¬μš©λ¨

'πŸ’Ώ Data > λΆ€νŠΈμΊ ν”„' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[TIL]50.DB_ API  (0) 2022.01.21
[TIL]49_Transaction(BEGIN, COMMIT/ROLLBACK)_ACID  (0) 2022.01.20
[TIL]47_Git&Github and conda(κ°€μƒν™˜κ²½)  (0) 2022.01.19
[TIL]46_Section1_review_마무리  (0) 2022.01.17
[TIL]45.8_Section1_sprint2_개인볡슡(주말)  (0) 2022.01.17
    'πŸ’Ώ Data/λΆ€νŠΈμΊ ν”„' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [TIL]50.DB_ API
    • [TIL]49_Transaction(BEGIN, COMMIT/ROLLBACK)_ACID
    • [TIL]47_Git&Github and conda(κ°€μƒν™˜κ²½)
    • [TIL]46_Section1_review_마무리
    Jayden1116
    Jayden1116
    μ•„λ§ˆλ„ ν•œλ²ˆ 뿐인 인생을 μ—¬ν–‰ 쀑인 Jayden의 μΌμ§€πŸ„πŸŒŠ

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”