λ°μν
π‘ λ³Έ λ¬Έμλ 'λ°μ΄ν°λ² μ΄μ€μμ μ¬μ©νλ μ©μ΄'λ₯Ό μ 리ν΄λμ κΈμ λλ€.
νν λ§νλ λ°μ΄ν°λ² μ΄μ€μΈ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ¬μ©νλ€λ³΄λ©΄ κ°λ ν·κ°λ¦¬λ μ©μ΄κ° μμ΄ ν΄λΉ λ΄μ©μ μ 리ν΄λμ λ¬Έμμ λλ€. μ°Έκ³ λΆνλ립λλ€.
1. λ°μ΄ν°λ² μ΄μ€ μμ€ν κ°μ
1.1 λ°μ΄ν°λ² μ΄μ€(Database)
- λ°μ΄ν°μ λκ·λͺ¨ μ μ₯μλ‘μ, μ¬λ¬ λΆμμμ μνλ μ¬λ¬ μ¬μ©μμ μν΄ λμμ μ¬μ©λ¨.
- λͺ¨λ λ°μ΄ν°κ° μ€λ³΅μ μ΅μννλ©΄μ ꡬ쑰μ μΌλ‘ ν΅ν©λ¨.
- λ°μ΄ν°λ² μ΄μ€λ ν μ‘°μ§μ²΄μ μ΄μ λ°μ΄ν°λΏλ§ μλλΌ κ·Έ λ°μ΄ν°μ κ΄ν μ€λͺ (λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§, λ©νλ°μ΄ν°)κΉμ§ ν¬ν¨.
- νλ‘κ·Έλ¨κ³Ό λ°μ΄ν° κ°μ λ 립μ±μ΄ μ 곡.
- ν¨μ¨μ μΌλ‘ μ κ·Όμ΄ κ°λ₯νκ³ μ§μ(Query)λ₯Ό ν μ μμ.
1.2 Database Management System(DBMS)
λ°μ΄ν°λ² μ΄μ€λ₯Ό μ μνκ³ , μ§μμ΄λ₯Ό μ§μνκ³ , 리ν¬νΈλ₯Ό μμ±νλ λ±μ μμ μ μννλ μννΈμ¨μ΄
- μλ‘μ΄ λ°μ΄ν°λ² μ΄μ€ μμ±
- λ°μ΄ν°λ² μ΄μ€μ ꡬ쑰λ₯Ό λͺ μ
- λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ μ§μ λ° μμ
- μμ€ν μ κ³ μ₯μ΄λ κΆνμ΄ μλ μ¬μ©μλ‘λΆν° λ°μ΄ν°λ₯Ό μμ νκ² λ³΄νΈ
- λμμ μ¬λ¬ μ¬μ©μκ° λ°μ΄ν°λ² μ΄μ€λ₯Ό μ κ·Όνλ κ²μ μ μ΄
1.3 λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§
- μ 체μ μΈ λ°μ΄ν°λ² μ΄μ€ ꡬ쑰
- μμ£Ό λ³κ²½λμ§λ μμ
- λ°μ΄ν°λ² μ΄μ€μ λͺ¨λ κ°λ₯ν μνλ₯Ό 미리 μ μ. λ΄ν¬(intension).
- e.g. DEPARTMENT (DEPTNO, DEPTNAME, FLOOR)
1.4 λ°μ΄ν°λ² μ΄μ€ μν
νΉμ μμ μμμ λ°μ΄ν°λ² μ΄μ€μ λ΄μ©μ μλ―Ένλ©°, μκ°μ΄ μ§λ¨μ λ°λΌ κ³μν΄μ λ°λ. μΈμ°(extension).
DEPTNO | DEPTNAME | FLOOR |
1 | μμ | 8 |
2 | κΈ°ν | 10 |
3 | κ°λ° | 9 |
2. DBMS λ°μ κ³Όμ
2.1 λ°μ΄ν° λͺ¨λΈμ λΆλ₯
- conceptual data model: μ¬λμ΄ μΈμνλ κ²κ³Ό μ μ¬νκ² DBμ μ 체μ μΈ λ Όλ¦¬μ ꡬ쑰λ₯Ό λͺ μ. κ°μ²΄μ§ν₯, Entity-Relationship(ER) λ°μ΄ν° λͺ¨λΈμ΄ ν¬ν¨.
- representation data model: μ΅μ’ μ¬μ©μκ° μ΄ν΄νλ κ°λ . κ³μΈ΅, λ€νΈμν¬, κ΄κ³ λ°μ΄ν° λͺ¨λΈμ΄ ν¬ν¨.
- physical data model: λ°μ΄ν°λ² μ΄μ€μ λ°μ΄ν°κ° μ΄λ»κ² μ μ₯λλκ°? Unifying, ISAN, VSAN λ±
2.2 DBMS λ°μ κ³Όμ
- κ³μΈ΅ DBMS: νΈλ¦¬κ΅¬μ‘°λ₯Ό κΈ°λ°μΌλ‘ νλ κ³μΈ΅ λ°μ΄ν° λͺ¨λΈμ μ¬μ©. DBκ° μμ±λ λ κ°κ°μ κ΄κ³λ₯Ό λͺ μμ μΌλ‘ μ μν΄μΌνλ©°, λ μ½λλ€μ΄ νΉν¬λ‘ μ°κ²°λμ΄ μμ΄ λ μ½λ ꡬ쑰λ₯Ό λ³κ²½νκΈ° μ΄λ €μ. λν many to many κ΄κ³λ₯Ό μ²λ¦¬νμ§ λͺ» ν¨.
- λ€νΈμν¬ DBMS: λ μ½λλ€μ΄ λ Έλλ‘, λ μ½λλ€ μ¬μ΄μ κ΄κ³κ° κ°μ μΌλ‘ ννλλ κ·Έλνλ₯Ό κΈ°λ°μΌλ‘ νλ λ€νΈμν¬ λ°μ΄ν° λͺ¨λΈ μ¬μ©.
- κ΄κ³ DBMS: μ¬μ©μλ μμ μ΄ μνλ κ²λ§ λͺ μνκ³ λ°μ΄ν°κ° μ΄λμ μλμ§, μ΄λ»κ² μ κ·Όνλμ§λ DBMSκ° κ²°μ (e.g. μ€λΌν΄, MS SQL Server, Sybase, DB2, Informix λ±).
- κ°μ²΄ μ§ν₯ DBMS: λ°μ΄ν°μ νλ‘κ·Έλ¨μ κ·Έλ£Ήννκ³ , 볡μ‘ν κ°μ²΄λ€μ μ΄ν΄νκΈ° μ¬μ°λ©°, μ μ§μ λ³κ²½μ΄ μ©μ΄ν¨(e.g. ONTOS, OpenODB, GemStone, ObjectStore, Versant, O2 λ±).
- κ°μ²΄κ΄κ³ DBMS: κ΄κ³ DBMSμ κ°μ²΄μ§ν₯μ κ°λ μ ν΅ν©ν λ°μ΄ν° λͺ¨λΈμ μ μ(e.g. μ€λΌν΄, Informix Universal Server λ±).
2.3 νλμ κ΄κ³ DBMS
- ν¨μ¨μ μΈ μ§μ μ²λ¦¬λ₯Ό μ§μ: μ§μ μ΅μ ν, μΈλ±μ± λ±
- κ³ κΈ μ¬μ©μ μΈν°νμ΄μ€λ₯Ό μ§μ: SQL, μμ°μ΄, ν° κΈ°λ° λ±
- νΈλμμ κ°λ μ μ§μ: λ€μμ νΈλμμ λ€μ λμμ μ€ννκ³ , λ°±μ κ³Ό ν볡μ μν.
- νΉλ³ν λ°μ΄ν° νμ μ μ§μ: μ΄λ―Έμ§, HTML λ§ν¬, 곡κ°μ 보 λ±
- κ°μ²΄μ§ν₯ κ°λ μ μ§μ
- μ μΈν°νμ΄μ€μ XMLμ μ§μ.
- λ°μ΄ν° λ§μ΄λ μ°μ°λ€μ μ§μ.
- OLAPμ λ°μ΄ν° μ¨μ΄νμ°μ€λ₯Ό μ§μ.
3. DBMS μΈμ΄
3.1 λ°μ΄ν° μ μμ΄ (Data Definition Language(DDL))
- μ¬μ©μλ λ°μ΄ν° μ μμ΄λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§λ₯Ό μ μ.
- λ°μ΄ν° μ μμ΄λ‘ λͺ
μλ λ¬Έμ₯μ΄ μ
λ ₯λλ©΄ DBMSλ μ¬μ©μκ° μ μν μ€ν€λ§μ λν λͺ
μΈλ₯Ό μμ€ν
μΉ΄λ¬λ‘κ·Έ λλ λ°μ΄ν° μ¬μ μ μ μ₯.
- CREATE TABLE: λ°μ΄ν° ꡬ쑰 μμ±
- ALTER TABLE: λ°μ΄ν° ꡬ쑰 λ³κ²½
- DROP TABLE: λ°μ΄ν° ꡬ쑰 μμ
- CREATE INDEX: λ°μ΄ν° μ κ·Όμ μν΄ νΉμ μ νΈλ¦¬λ·°νΈ μμ μΈλ±μ€λ₯Ό μ μ
3.2 λ°μ΄ν° μ‘°μμ΄ (Data Manipulation Language)
- λ°μ΄ν° μ‘°μμ΄λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ² μ΄μ€ λ΄μ μνλ λ°μ΄ν°λ₯Ό κ²μ, μμ , μ½μ
, μμ
- SELECT: λ°μ΄ν° κ²μ
- UPDATE: λ°μ΄ν° μμ
- DELETE: λ°μ΄ν° μ½μ
- INSERT: λ°μ΄ν° μμ
4. κ΄κ³ λ°μ΄ν° λͺ¨λΈ
4.1 릴λ μ΄μ μ©μ΄ μ 리
- 릴λ μ΄μ (relation): 2μ°¨μμ ν μ΄λΈ(μ€νλ λ μνΈμ μ μ¬)
- λ μ½λ(record): 릴λ μ΄μ μ κ° ν
- ν¬ν(tuple): λ μ½λλ₯Ό μ’λ 곡μμ μΌλ‘ λΆλ₯΄λ μ©μ΄
- μ νΈλ¦¬λ·°νΈ(attribute): 릴λ μ΄μ μμ μ΄λ¦μ κ°μ§ νλμ μ΄
- μ°¨μ(degree): ν 릴λ μ΄μ μ λ€μ΄μλ μ νΈλ¦¬λ·°νΈλ€μ μ
- μΉ΄λλ 리ν°(cardinality): 릴λ μ΄μ μ νν μ
- λ맀μΈ(domain)
- ν μ νΈλ¦¬λ·°νΈμ λνλ μ μλ κ°λ€μ μ§ν©
- κ° μ νΈλ¦¬λ·°νΈμ λλ©μΈμ κ°λ€μ μμκ°
- νλ‘κ·Έλλ° μΈμ΄μ λ°μ΄ν° νμ κ³Ό μ μ¬ν¨
- λμΌν λλ©μΈμ΄ μ¬λ¬ μ νΈλ¦¬λ·°νΈμμ μ¬μ©λ μ μμ
- λ³΅ν© μ νΈλ¦¬λ·°νΈλ λ€μΉ(multivalued) μ νΈλ¦¬λ·°νΈλ νμ©λμ§ μμ
- λλ©μΈ μ μ
- CREATE DOMAIN EMPNAME CHAR(10)
- CREATE DOMAIN EMPNO INTEGER
- CREATE DOMAIN DNO INTEGER
4.2 릴λ μ΄μ μ νΉμ±
- κ° λ¦΄λ μ΄μ μ μ€μ§ νλμ λ μ½λ νμ λ§ ν¬ν¨
- ν μ νΈλ¦¬λ·°νΈ λ΄μ κ°λ€μ λͺ¨λ κ°μ μ ν
- λμΌν ννμ΄ λ κ° μ΄μ μ‘΄μ¬νμ§ μμ.
- ν ννμ κ° μ νΈλ¦¬λ·°νΈλ μμκ°(νλμ κ°)μ κ°μ§.
- κ° μ νΈλ¦¬λ·°νΈμ μ΄λ¦μ ν 릴λ μ΄μ λ΄μμλ§ κ³ μ
4.3 릴λ μ΄μ μ ν€
κ° ν¬νμ κ³ μ νκ² μλ³ν μ μλ νλ μ΄μμ μ νΈλ¦¬λ·°νΈλ€μ λͺ¨μ
- μνΌ ν€(super key): ν 릴λ μ΄μ λ΄μ νΉμ ννμ κ³ μ νκ² μλ³νλ ν μ νΈλ¦¬λ·°νΈ λλ μ νΈλ¦¬λ·°νΈλ€μ μ§ν©(UNIQUE).
- ν보 ν€(candidate key): κ° ννμ κ³ μ νκ² μλ³νλ νμνμ μ νΈλ¦¬λ·°νΈλ€μ λͺ¨μ. λ κ° μ΄μμ μ νΈλ¦¬λ·°νΈλ₯Ό κ°μ§ μ μμΌλ©° μ΄λ° κ²½μ° λ³΅ν© ν€(composite key)λΌκ³ ν¨.
- κΈ°λ³Έ ν€(primary key): ν 릴λ μ΄μ μ ν보 ν€κ° λ κ° μ΄μ μμΌλ©΄ μ΄λ€ μ€μμ νλλ₯Ό κΈ°λ³Έ ν€λ‘ μ μ ν¨.
- λ체 ν€(alternate key): κΈ°λ³Έν€κ° μλ ν보 ν€
- μΈλ ν€(foreign key): μ΄λ€ 릴λ μ΄μ μ κΈ°λ³Έ ν€λ₯Ό μ°Έμ‘°νλ μ νΈλ¦¬λ·°νΈ. μ°Έμ‘°λλ 릴λ μ΄μ μ κΈ°λ³Έν€μ λμΌν λλ©μΈ.
λ¬΄κ²°μ± μ μ½μ‘°κ±΄
λ°μ΄ν° 무결μ±(data integrity): λ°μ΄ν°μ μ νμ± λλ μ ν¨μ±μ μλ―Έ. μΌκ΄λ λ°μ΄ν°λ² μ΄μ€ μνλ₯Ό μ μνλ κ·μΉμ μ μ.
λλ©μΈ μ μ½μ‘°κ±΄(domain constraint)
- κ° μ νΈλ¦¬λ·°νΈ κ°μ΄ λ°λμ μμκ°.
- μ νΈλ¦¬λ·°νΈ κ°μ λν΄νΈ κ°, κ°λ₯ν κ°λ€μ λ²μ λ±μ μ§μ ν μ μμ.
- λ°μ΄ν° νμμ ν΅ν΄ κ°λ€μ λλ©μΈ(μ ν)μ μ ννκ³ , CHECK μ μ½ μ‘°κ±΄μ ν΅ν΄ κ°λ€μ λ²μλ₯Ό μ νν μ μμ.
- ν€ μ μ½μ‘°κ±΄: ν€ μ νΈλ¦¬λ·°νΈμ μ€λ³΅λ κ°μ΄ μ‘΄μ¬ν΄μλ μλ¨.
κΈ°λ³Έ ν€μ μν°ν° λ¬΄κ²°μ± μ μ½μ‘°κ±΄(entity integrity constraint)
- κΈ°λ³Έ ν€κ° κ° ν¬νλ€μ μλ³νκΈ° μν΄ μ¬μ©λκΈ°μ
릴λ μ΄μ μ κΈ°λ³Έ ν€λ₯Ό ꡬμ±νλ μ΄λ€ μ νΈλ¦¬λ·°νΈλ λκ°μ κ°μ§ μ μλ€λ μ μ½μ‘°κ±΄. - μν°ν°: μ¬λ μ₯μ μ¬λ¬Ό μ¬κ±΄ λ±κ³Ό κ°μ΄ λ 립μ μΌλ‘ μ‘΄μ¬νλ©΄μ κ³ μ νκ² μλ³μ΄ κ°λ₯ν μ€μΈκ³μ 물리μ λλ λ Όλ¦¬μ κ°μ²΄
μΈλ ν€μ μ°Έμ‘° λ¬΄κ²°μ± μ μ½μ‘°κ±΄(referential integrity constraint)
- λ 릴λ μ΄μ μ μ°κ΄λ ν¬νλ€ μ¬μ΄μ μΌκ΄μ±μ μ μ§νλλ° μ¬μ©λ¨.
λ°μν
'Study: ComputerScience(CS) > CS: Database(SQL)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[DB] MySQL μν€ν μ² (feat. Real MySQL) (2) | 2022.11.18 |
---|---|
[DB] RDB νΈλμμ (feat. νΈλμμ 격리 μμ€) (0) | 2022.11.08 |
[DB] DB λ°μ΄ν° dumpνλ λ°©λ² : MySQL λ°μ΄ν°λ₯Ό export, import νμ! (feat. mysqldump) (0) | 2022.09.09 |
[DB] 컀λ₯μ ν(DBCP)μ΄λ? DB Connection Pool (0) | 2022.08.22 |