Develop/DB

Develop/DB

[RDBMS Modeling 기초] 6. 관계(Relation) - μ—°μŠ΅λ¬Έμ œ1

λͺ…사와 동사λ₯Ό λΉΌκ³  λ‹€ μ œκ±°ν•˜μž κ³Όλͺ© / ν•™λ…„ / λ‹΄λ‹Ή μ„ μƒλ‹˜ μ‹œν—˜(쀑간고사,기말고사) 학생 / ν•™λ…„ / 반 / λ°°μ •ν•˜λ‹€ / 고유번호(λ°˜λ³„) λ‹΄μž„μ„ μƒλ‹˜ / μ„ μƒλ‹˜ # ν•œ 반의 학생 40λͺ… # 남녀 곡학 #석차(남녀 곡톡 1λ“±λΆ€ν„° μˆœμ„œ) λ§ˆμŠ€ν„° ν…Œμ΄λΈ”μ„ μ„€κ³„ν•˜μž 1:M 관계λ₯Ό μ°Ύμ•„λ³΄μž ν•˜λ‚˜μ˜ 학년이 μ—¬λŸ¬κ°œμ˜ λ°˜μ„ κ°–λŠ”λ‹€ 반 μž…μž₯μ—μ„œ 보면 학년은 ν•˜λ‚˜λ‹€ ( 1ν•™λ…„ 1λ°˜μ΄μ§€λ§Œ 2ν•™λ…„ 1반 μΌμˆ˜λŠ” μ—†λ‹€ ) 학년은 1,2,3 ν•™λ…„ 밖에 μ—†λ‹€ 값을 λ„£μ–΄μ€„μˆ˜ μžˆλŠ” DBλŠ” λ„£μ–΄μ£Όκ³  λ΄‰μΈμ‹œν‚€μž ( SELECT 만 열어두고 λ‹€ λ§‰λŠ”λ‹€ )

Develop/DB

[MySQL] Mac OSμ—μ„œ μ„€μΉ˜ 및 μ‚¬μš©λ°©λ²• (homebrew 이용)

M1칩을 νƒ‘μž¬ν•œ μƒˆλ‘œμš΄ λ§₯μ—μ„œ Homebrewλ₯Ό μ„€μΉ˜ /bin/bash -c "$(curl -fsSL https://gist.githubusercontent.com/nrubin29/bea5aa83e8dfa91370fe83b62dad6dfa/raw/48f48f7fef21abb308e129a80b3214c2538fc611/homebrew_m1.sh)" brew μ„€μΉ˜κ°€ μ™„λ£Œν›„ μ—…λ°μ΄νŠΈ brew update mysql을 μ„€μΉ˜ $ brew install mysql mysql μ„œλΉ„μŠ€ 켜기 $ brew services start mysql λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ mysql -uroot -p λ°μ΄ν„°λ² μ΄μŠ€ λͺ©λ‘ 쑰회 show databases; μ½˜μ†” μ’…λ£Œ mysql> exit mysql μ„œλΉ„μŠ€λ₯Ό μ’…λ£Œ $ brew service..

Develop/DB

[RDBMS Modeling 기초] 5. 관계(Relation) - μ—°μŠ΅λ¬Έμ œ

정리λ₯Ό ν•΄λ³΄μž λ„μ„œκ΄€μ—λŠ” 각 μ„œκ³ /μ„œκ°€μ— λ§Žμ€ 책듀이 μžˆλ‹€. --> λ„μ„œκ΄€ , μ„œκ³ /μ„œκ°€ , μ±… 고객듀은 인터넷을 ν†΅ν•΄μ„œ λ‘œκ·ΈμΈν•œ ν›„ λ„μ„œ λͺ©λ‘μ„ μ‘°νšŒν•  수 μžˆλ‹€. --> 고객 , λ‘œκ·ΈμΈν•˜λ‹€ , λ„μ„œ λͺ©λ‘ , μ‘°νšŒν•˜λ‹€ 고객듀은 μ›ν•˜λŠ” 책을 λŒ€μΆœ 받을 수 μžˆλ‹€. --> 고객 , μ±… , λŒ€μΆœλ°›λ‹€ 고객은 책이 μžˆμ„ 경우 λŒ€μΆœ μ˜ˆμ•½μ„ ν•  수 있으며 , λŒ€μΆœμ„ μœ„ν•΄μ„œλŠ” 직접 λ°©λ¬Έν•΄μ„œ 책을 μ°Ύμ•„μ„œ λŒ€μΆœμ„ ν•΄μ•Ό ν•œλ‹€. --> 고객 , μ±… , λŒ€μΆœμ˜ˆμ•½ν•˜λ‹€ μ„œκ³  @Entity public class Library { @Id @GeneratedValue @Column(name = "library_id") private Long id; @Column(name = "library_name") private String nam..

Develop/DB

[RDBMS Modeling 기초] 4. 관계(Relation) - M:N 관계

M:N 관계 λΉ„μ¦ˆλ‹ˆμŠ€ 관계 N : M κ΄€κ³„λŠ” 관계λ₯Ό 가진 μ–‘μͺ½ λ‹Ήμ‚¬μž λͺ¨λ‘μ—μ„œ 1 : M 관계가 μ‘΄μž¬ν•  λ•Œ λ‚˜νƒ€λ‚˜λŠ” λͺ¨μŠ΅μž…λ‹ˆλ‹€. 예λ₯Όλ“€λ©΄, 학생과 κ³Όλͺ©μ˜ κ΄€κ³„μž…λ‹ˆλ‹€. 학생 μž…μž₯μ—μ„œλŠ” μ—¬λŸ¬ 개 κ³Όλͺ©μ„ μˆ˜κ°•ν•  수 있고, κ³Όλͺ© μž…μž₯μ—μ„œ 보면 μ—¬λŸ¬ 학생이 이 κ³Όλͺ©μ„ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€. μ–΄λŠ μͺ½μ—μ„œ 봐도 λ‹€:λ‹€ 관계가 μ„±λ¦½λ©λ‹ˆλ‹€. 관계λ₯Ό 풀어보면 PK 쀑볡이 λ°œμƒ N:M 관계λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” 또 ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”μ΄ ν•„μš”ν•˜λ‹€ . " 학생이 κ³Όλͺ©μ„ μˆ˜κ°•ν•©λ‹ˆλ‹€ " λΌλŠ” λΉ„μ¦ˆλ‹ˆμŠ€μ— λͺ…사와 동사λ₯Ό μ°ΎλŠ”λ‹€ --> 학생 , κ³Όλͺ© , μˆ˜κ°• 학생과 κ³Όλͺ©μ€ 관계가 μ—†λ‹€ . ν•˜μ§€λ§Œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직이 λ“€μ–΄μ˜€λŠ” μˆœκ°„ 관계가 맺어진닀 μˆ˜κ°•μ΄λΌλŠ” 관계 ν…Œμ΄λΈ” - 학생과 κ³Όλͺ©μ˜ 관계λ₯Ό λ§Ίμ–΄μ€€λ‹€. μ˜ˆμ‹œ) λ²„μŠ€κ°€ 1이면 μ’Œμ„μ€ N 인가? -> ..

Develop/DB

[RDBMS Modeling 기초] 3. 관계(Relation) - 1:M 관계

1:M 관계 ν•œμͺ½μ΄ 관계λ₯Ό 맺은 μͺ½μ˜ μ—¬λŸ¬ 객체λ₯Ό κ°–λŠ” 것을 의미 λΆ€μžμ§€κ°„μ˜ 관계 λΆ€λͺ¨λŠ” μžμ‹μ„ 1λͺ…, 2λͺ…, 3λͺ…, κ·Έ 이상도 κ°€μ§ˆ 수 μžˆλ‹€. λ°˜λŒ€λ‘œ μžμ‹ μž…μž₯μ—μ„œλŠ” λΆ€λͺ¨(아버지, μ–΄λ¨Έλ‹ˆμ˜ 쌍)λ₯Ό ν•˜λ‚˜λ§Œ κ°€μ§ˆ 수 밖에 μ—†λ‹€. λΆ€λͺ¨ 1 : μžμ‹ M λΆ€λͺ¨ ν…Œμ΄λΈ”μ˜ PK κ°€ μžμ‹ν…Œμ΄λΈ”μ˜ ν‚€κ°’μœΌλ‘œ λ‚˜νƒ€λ‚Όλ•Œ 이 ν‚€λ₯Ό μ™Έλž˜ν‚€(FK:Foreign Key) 라고 ν•œλ‹€. μ™Έλž˜ν‚€λŠ” 두 ν…Œμ΄λΈ”μ„ μ„œλ‘œ μ—°κ²°ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” 킀이닀. μ™Έλž˜ν‚€κ°€ ν¬ν•¨λœ ν…Œμ΄λΈ”μ„ μžμ‹ ν…Œμ΄λΈ”μ΄λΌκ³  ν•˜κ³  μ™Έλž˜ν‚€ 값을 μ œκ³΅ν•˜λŠ” ν…Œμ΄λΈ”μ„ λΆ€λͺ¨ ν…Œμ΄λΈ”μ΄λΌν•œλ‹€. λΆ€λͺ¨μ™€ μžμ‹κ°„μ˜ 관계λ₯Ό λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„μ— μ„ μ–Έν•΄μ£Όλ©΄ 법칙을 μ§€μΌœμ„œ λΆ€λͺ¨μ—†λŠ” μžμ‹(μ„€λͺ…ν•  수 μ—†λŠ” 데이터, ex) λΆ€λͺ¨ID:4 인 - λ°•xx )은 λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„μ— λ“±λ‘λ˜λŠ” 것을 막아쀀닀 . 예..

Develop/DB

[RDBMS Modeling 기초] 2. Primary Key 섀계

Primary Key 섀계 μ£Ό μ‹λ³„μžλŠ” ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”μ—μ„œ κ°€μž₯ μ€‘μš”ν•œ 역할을 맑고 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ λ‹€λ₯Έ ν…Œμ΄λΈ”κ³Όμ˜ 관계λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄μ„œλ„ λ°˜λ“œμ‹œ ν•„μš”ν•œ κ²ƒμž…λ‹ˆλ‹€. μ£Ό μ‹λ³„μžλ₯Ό μ–΄λ–»κ²Œ μ„€κ³„ν•˜λŠ” 것인지에 λŒ€ν•΄μ„œ μžμ„Ένžˆ 닀루어 λ΄…λ‹ˆλ‹€. μœ μΌν•˜κ³  Not NULL 인 컬럼 후보 μ‹λ³„μžκ°€ μ—†λŠ” 경우 μš°λ¦¬κ°€ μ‹λ³„μžλ₯Ό μž„μ˜λ‘œ λ§Œλ“€μ–΄μ„œ λΆ€μ—¬ν•  수 μžˆλ‹€ ! ( 인쑰 μ‹λ³„μž ) κ°•μ œλ‘œ μ‹λ³„μž μ»¬λŸΌμ„ λ§Œλ“ λ‹€ PK의 데이터 νƒ€μž… κ²°μ • λ ˆμ½”λ“œμ˜ λ°œμƒ κ°€λŠ₯ν•œ μ΅œλŒ€ 수λ₯Ό μ˜ˆμΈ‘ν•œλ‹€ 예) 1년에 λͺ‡ 개 정도 λ°œμƒν•˜λŠ”κ°€? ν•œ 달에 λͺ‡ κ°œμ •λ„ λ°œμƒν•˜λŠ”κ°€? 예) μ²˜λ¦¬ν•΄μ•Ό ν•˜λŠ” λŒ€μƒμ΄ λŒ€λž΅ λͺ‡ κ°œμ •λ„ λ˜λŠ”κ°€? 데이터 νƒ€μž…μ˜ 끝에 λ„λ‹¬ν•˜λ©΄ μ“Έ 수 μ—†κΈ° λ•Œλ¬Έ PK λ₯Ό κ΅¬μ„±ν•˜λŠ”λ° λ°˜λ“œμ‹œ ν•˜λ‚˜μ˜ μ»¬λŸΌλ§Œμ„ μ‚¬μš©ν•  ν•„μš”λŠ” μ—†λ‹€ ( 년도 - μ›” - Seq..

Develop/DB

[RDBMS Modeling 기초] 1. κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€

κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€(relational database)λž€? κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€λž€ ν…Œμ΄λΈ”(table)둜 이루어져 있으며, 이 ν…Œμ΄λΈ”μ€ ν‚€(key)와 κ°’(value)의 관계λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 고유 μ‹λ³„μž Unique μ—¬λŸ¬κ°œμ˜ 집합체λ₯Ό λ‹΄κ³  μžˆλŠ” ν•˜λ‚˜μ˜ ν†΅μ—μ„œ 각각을 ꡬ뢄할 수 μžˆλŠ” 논리적인 μ΄λ¦„μ˜ κ΅¬λΆ„μžλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. ν•˜λ‚˜μ˜ 엔터티에 κ΅¬μ„±λ˜μ–΄ μžˆλŠ” μ—¬λŸ¬κ°œμ˜ 속성 쀑에 μ—”ν„°ν‹°λ₯Ό λŒ€ν‘œν•  수 μžˆλŠ” 속성을 μ˜λ―Έν•˜λ©° ν•˜λ‚˜μ˜ μ—”ν„°ν‹°λŠ” λ°˜λ“œμ‹œ ν•˜λ‚˜μ˜ μ‹λ³„μžκ°€ μ‘΄μž¬ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ°Έμ‘° 무결성 ν…Œμ΄λΈ”μ—μ„œ μ™Έλž˜ν‚€λ₯Ό μ„ μ–Έ μ™Έλž˜ν‚€λŠ” λ‹€λ₯Έ ν…Œμ΄λΈ”μ— μ •μ˜λœ 고유 μ‹λ³„μžλ₯Ό μ°Έμ‘° μ™Έλž˜ν‚€μ˜ 값은 λ‹€λ₯Έ ν…Œμ΄λΈ”μ— μ •μ˜λœ 고유 μ‹λ³„μžμ˜ κ°’μ˜ λ²”μœ„λ₯Ό λ„˜μ„ 수 없도둝 μ œν•œλ¨ μ£Ό μ‹λ³„μž(Primary Key) ν•˜λ‚˜μ˜ λ ˆμ½”λ“œλ₯Ό κ³ μœ ν•˜κ²Œ ꡬ뢄할 수 μžˆλŠ” ..

Develop/DB

[λ°μ΄ν„°λ² μ΄μŠ€] H2 λ°μ΄ν„°λ² μ΄μŠ€ μ„€μΉ˜ν•˜κΈ°

H2 λ°μ΄ν„°λ² μ΄μŠ€ κ°œλ°œμ΄λ‚˜ ν…ŒμŠ€νŠΈ μš©λ„λ‘œ 가볍고 νŽΈλ¦¬ν•œ DB, μ›Ή ν™”λ©΄ 제곡 λ‹€μš΄λ‘œλ“œ https://www.h2database.com/html/main.html H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size Supp www.h2database.com λ°μ΄ν„°λ² μ΄μŠ€ 파일 생성 방법 http..

hello_u
'Develop/DB' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘