Develop/DB
λͺ
μ¬μ λμ¬λ₯Ό λΉΌκ³ λ€ μ κ±°νμ κ³Όλͺ© / νλ
/ λ΄λΉ μ μλ μν(μ€κ°κ³ μ¬,κΈ°λ§κ³ μ¬) νμ / νλ
/ λ° / λ°°μ νλ€ / κ³ μ λ²νΈ(λ°λ³) λ΄μμ μλ / μ μλ # ν λ°μ νμ 40λͺ
# λ¨λ
곡ν #μμ°¨(λ¨λ
κ³΅ν΅ 1λ±λΆν° μμ) λ§μ€ν° ν
μ΄λΈμ μ€κ³νμ 1:M κ΄κ³λ₯Ό μ°Ύμ보μ νλμ νλ
μ΄ μ¬λ¬κ°μ λ°μ κ°λλ€ λ° μ
μ₯μμ 보면 νλ
μ νλλ€ ( 1νλ
1λ°μ΄μ§λ§ 2νλ
1λ° μΌμλ μλ€ ) νλ
μ 1,2,3 νλ
λ°μ μλ€ κ°μ λ£μ΄μ€μ μλ DBλ λ£μ΄μ£Όκ³ λ΄μΈμν€μ ( SELECT λ§ μ΄μ΄λκ³ λ€ λ§λλ€ )
Develop/DB
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
μ 리λ₯Ό ν΄λ³΄μ λμκ΄μλ κ° μκ³ /μκ°μ λ§μ μ±
λ€μ΄ μλ€. --> λμκ΄ , μκ³ /μκ° , μ±
κ³ κ°λ€μ μΈν°λ·μ ν΅ν΄μ λ‘κ·ΈμΈν ν λμ λͺ©λ‘μ μ‘°νν μ μλ€. --> κ³ κ° , λ‘κ·ΈμΈνλ€ , λμ λͺ©λ‘ , μ‘°ννλ€ κ³ κ°λ€μ μνλ μ±
μ λμΆ λ°μ μ μλ€. --> κ³ κ° , μ±
, λμΆλ°λ€ κ³ κ°μ μ±
μ΄ μμ κ²½μ° λμΆ μμ½μ ν μ μμΌλ©° , λμΆμ μν΄μλ μ§μ λ°©λ¬Έν΄μ μ±
μ μ°Ύμμ λμΆμ ν΄μΌ νλ€. --> κ³ κ° , μ±
, λμΆμμ½νλ€ μκ³ @Entity public class Library { @Id @GeneratedValue @Column(name = "library_id") private Long id; @Column(name = "library_name") private String nam..
Develop/DB
M:N κ΄κ³ λΉμ¦λμ€ κ΄κ³ N : M κ΄κ³λ κ΄κ³λ₯Ό κ°μ§ μμͺ½ λΉμ¬μ λͺ¨λμμ 1 : M κ΄κ³κ° μ‘΄μ¬ν λ λνλλ λͺ¨μ΅μ
λλ€. μλ₯Όλ€λ©΄, νμκ³Ό κ³Όλͺ©μ κ΄κ³μ
λλ€. νμ μ
μ₯μμλ μ¬λ¬ κ° κ³Όλͺ©μ μκ°ν μ μκ³ , κ³Όλͺ© μ
μ₯μμ 보면 μ¬λ¬ νμμ΄ μ΄ κ³Όλͺ©μ μ νν μ μμ΅λλ€. μ΄λ μͺ½μμ λ΄λ λ€:λ€ κ΄κ³κ° μ±λ¦½λ©λλ€. κ΄κ³λ₯Ό νμ΄λ³΄λ©΄ PK μ€λ³΅μ΄ λ°μ N:M κ΄κ³λ₯Ό ν΄κ²°νκΈ° μν΄μλ λ νλμ ν
μ΄λΈμ΄ νμνλ€ . " νμμ΄ κ³Όλͺ©μ μκ°ν©λλ€ " λΌλ λΉμ¦λμ€μ λͺ
μ¬μ λμ¬λ₯Ό μ°Ύλλ€ --> νμ , κ³Όλͺ© , μκ° νμκ³Ό κ³Όλͺ©μ κ΄κ³κ° μλ€ . νμ§λ§ λΉμ¦λμ€ λ‘μ§μ΄ λ€μ΄μ€λ μκ° κ΄κ³κ° λ§Ίμ΄μ§λ€ μκ°μ΄λΌλ κ΄κ³ ν
μ΄λΈ - νμκ³Ό κ³Όλͺ©μ κ΄κ³λ₯Ό λ§Ίμ΄μ€λ€. μμ) λ²μ€κ° 1μ΄λ©΄ μ’μμ N μΈκ°? -> ..
Develop/DB
1:M κ΄κ³ νμͺ½μ΄ κ΄κ³λ₯Ό λ§Ίμ μͺ½μ μ¬λ¬ κ°μ²΄λ₯Ό κ°λ κ²μ μλ―Έ λΆμμ§κ°μ κ΄κ³ λΆλͺ¨λ μμμ 1λͺ
, 2λͺ
, 3λͺ
, κ·Έ μ΄μλ κ°μ§ μ μλ€. λ°λλ‘ μμ μ
μ₯μμλ λΆλͺ¨(μλ²μ§, μ΄λ¨Έλμ μ)λ₯Ό νλλ§ κ°μ§ μ λ°μ μλ€. λΆλͺ¨ 1 : μμ M λΆλͺ¨ ν
μ΄λΈμ PK κ° μμν
μ΄λΈμ ν€κ°μΌλ‘ λνλΌλ μ΄ ν€λ₯Ό μΈλν€(FK:Foreign Key) λΌκ³ νλ€. μΈλν€λ λ ν
μ΄λΈμ μλ‘ μ°κ²°νλ λ° μ¬μ©λλ ν€μ΄λ€. μΈλν€κ° ν¬ν¨λ ν
μ΄λΈμ μμ ν
μ΄λΈμ΄λΌκ³ νκ³ μΈλν€ κ°μ μ 곡νλ ν
μ΄λΈμ λΆλͺ¨ ν
μ΄λΈμ΄λΌνλ€. λΆλͺ¨μ μμκ°μ κ΄κ³λ₯Ό λ°μ΄ν°λ² μ΄μ€ μλ²μ μ μΈν΄μ£Όλ©΄ λ²μΉμ μ§μΌμ λΆλͺ¨μλ μμ(μ€λͺ
ν μ μλ λ°μ΄ν°, ex) λΆλͺ¨ID:4 μΈ - λ°xx )μ λ°μ΄ν°λ² μ΄μ€ μλ²μ λ±λ‘λλ κ²μ λ§μμ€λ€ . μ..
Develop/DB
Primary Key μ€κ³ μ£Ό μλ³μλ νλμ ν
μ΄λΈμμ κ°μ₯ μ€μν μν μ λ§‘κ³ μμ΅λλ€. λν λ€λ₯Έ ν
μ΄λΈκ³Όμ κ΄κ³λ₯Ό λ§λ€κΈ° μν΄μλ λ°λμ νμν κ²μ
λλ€. μ£Ό μλ³μλ₯Ό μ΄λ»κ² μ€κ³νλ κ²μΈμ§μ λν΄μ μμΈν λ€λ£¨μ΄ λ΄
λλ€. μ μΌνκ³ Not NULL μΈ μ»¬λΌ ν보 μλ³μκ° μλ κ²½μ° μ°λ¦¬κ° μλ³μλ₯Ό μμλ‘ λ§λ€μ΄μ λΆμ¬ν μ μλ€ ! ( μΈμ‘° μλ³μ ) κ°μ λ‘ μλ³μ 컬λΌμ λ§λ λ€ PKμ λ°μ΄ν° νμ
κ²°μ λ μ½λμ λ°μ κ°λ₯ν μ΅λ μλ₯Ό μμΈ‘νλ€ μ) 1λ
μ λͺ κ° μ λ λ°μνλκ°? ν λ¬μ λͺ κ°μ λ λ°μνλκ°? μ) μ²λ¦¬ν΄μΌ νλ λμμ΄ λλ΅ λͺ κ°μ λ λλκ°? λ°μ΄ν° νμ
μ λμ λλ¬νλ©΄ μΈ μ μκΈ° λλ¬Έ PK λ₯Ό ꡬμ±νλλ° λ°λμ νλμ 컬λΌλ§μ μ¬μ©ν νμλ μλ€ ( λ
λ - μ - Seq..
Develop/DB
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(relational database)λ? κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ ν
μ΄λΈ(table)λ‘ μ΄λ£¨μ΄μ Έ μμΌλ©°, μ΄ ν
μ΄λΈμ ν€(key)μ κ°(value)μ κ΄κ³λ₯Ό λνλ
λλ€. κ³ μ μλ³μ Unique μ¬λ¬κ°μ μ§ν©μ²΄λ₯Ό λ΄κ³ μλ νλμ ν΅μμ κ°κ°μ ꡬλΆν μ μλ λ
Όλ¦¬μ μΈ μ΄λ¦μ ꡬλΆμλ₯Ό μλ―Έν©λλ€. νλμ μν°ν°μ ꡬμ±λμ΄ μλ μ¬λ¬κ°μ μμ± μ€μ μν°ν°λ₯Ό λνν μ μλ μμ±μ μλ―Ένλ©° νλμ μν°ν°λ λ°λμ νλμ μλ³μκ° μ‘΄μ¬ν΄μΌ ν©λλ€. μ°Έμ‘° λ¬΄κ²°μ± ν
μ΄λΈμμ μΈλν€λ₯Ό μ μΈ μΈλν€λ λ€λ₯Έ ν
μ΄λΈμ μ μλ κ³ μ μλ³μλ₯Ό μ°Έμ‘° μΈλν€μ κ°μ λ€λ₯Έ ν
μ΄λΈμ μ μλ κ³ μ μλ³μμ κ°μ λ²μλ₯Ό λμ μ μλλ‘ μ νλ¨ μ£Ό μλ³μ(Primary Key) νλμ λ μ½λλ₯Ό κ³ μ νκ² κ΅¬λΆν μ μλ ..
Develop/DB
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..