๐ DB, DB ์ค๊ณ ๊ณผ๋ชฉ
- DB, DataBase
- ๋ฐฉ์ ๋ฆฌ๋ฅผ ์ ํ ๊น : ์ ์ฐพ์๋ ค๊ณ ! (์ ๋ณด๊ดํ๋ ค๊ณ ๊ฐ ์๋๋ผ)
- ๋ฐ์ดํฐ๋ ๋ฉ๋ชจ์ฅ์ผ๋ก ์ ์ฅํ๋ ๊ฒ๋ณด๋ค ์ฐพ์ ๋ ์ฒ๋ฐฐ ๋ซ๋ค
์ ๋ชฉ (๋ฌธ์์ด)๋ก ์ฐพ๋ ๊ฒ๋ณด๋ค ๋ถ๋ฅ๋ก ์ฐพ๋ ๊ฒ ๋น ๋ฅด๋ค
- No Index : ์ ๋ถ ๋ค ๋ค์ง๋ค
- SQL : ์ ํํ, ๋๊ธฐ์ , ์ค์๋ฅผ ์ ๋๋ก ํ๋ฉด ์๋ ๋
- NoSQL : ๋น์ ํํ, ์์ผ๋ก ๋ญ๊ฐ ๋ง์ด ๋ฐ๋ ๋
- WHAT
- DB, DBMS, Data Model (Kind), DB System
- DB ๊ฐ๋ (4), ํน์ง (4)
- File System VS DB (๋ฐ์ดํฐ ์ ๊ทผ ๋ฐฉ๋ฒ ๋ฑ)
- 3๋จ๊ณ ๊ตฌ์กฐ, ๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ
- 2-Tier, 3-Tier
์ํฐํ๋ผ์ด์ฆ?
ํฌํ?
DB : ๋จ์ ๋ฐ์ดํฐ ์ ์ฅ, ์ ์ฅ๋ฌผ, ๋ฐ์ดํฐ ์งํฉ์ฒด
DB ์์คํ
: ๋ฐ์ดํฐ ์ ์ฅ ๊ณผ์ /์ฒด๊ณ, DB ์์ฐ ๊ณต์ฅ
์์๋ผ์ธ์ ๋ณด์
ํ์ผ ์์คํ ๊ณผ DBMS์ ์ฐจ์ด
DB ์์คํ ์ ์ปดํฌ๋ํธ๋ค
์ฌ๋,์ด DBMS,๋ก ๋ฐ์ดํฐ,๋ฅผ DB,๋ก
๋ฐ์ดํฐ : ๊ฐ๊ณต์ด ์๋ ์ ๋ฌดํ์ SMT
- ๊ด์ฐฐ์ ๊ฒฐ๊ณผ๋ก ๋ํ๋ ์ ๋์ (ํฌ๊ธฐ๊ฐ ์กด์ฌ) ํน์ ์ ์ฑ์ ์ธ(๊ฐ์ผ๋ก ์ธก์ ๋์ง ์๋ : ์ํ๋ค, ๋ชปํ๋ค) ์ค์ ๊ฐ
- ์ฌ์ค(facts, ์ ์ฑ์ )์ด๋ ๊ฐ(values: ์์น(์ซ์), ์คํธ๋ง etc., ์ ๋์ )
์ ๋ณด : ๊ฐ๊ณต๋ ๋ฐ์ดํฐ
- ๋ฐ์ดํฐ์ ์๋ฏธ๋ฅผ ๋ถ์ฌํ ๊ฒ
- ์์ฌ๊ฒฐ์ ์ ํ ์ ์๊ฒ ํ๋ ๋ฐ์ดํฐ์ ํด์์ด๋ ๋ฐ์ดํฐ ์ํธ๊ฐ์ ๊ด๊ณ
์ง์ : ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ
- ์ฌ๋ฌผ์ด๋ ํ์์ ๋ํ ์ดํด
๋ฐ์ดํฐ != ์ ๋ณด
๋จ์ ์ซ์ 3๊ฐ๋ฅผ ๊ทธ๋ฅ ๋ณผ ๋์ 3 ์ฌ์ด์ฆ๋ผ๋ ๊ฒ์ ์๊ณ ๋ณผ ๋์ ์ฐจ์ด
์ ๋ณด์ฒ๋ฆฌ, ์๋ฃ์ฒ๋ฆฌ : ์ ๋ณด์ถ์ถ๋ฐฉ๋ฒ
DB :
์กฐ์ง์ ํ์ํ ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํด ๋
ผ๋ฆฌ์ ์ผ๋ก ์ฐ๊ด๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ ๊ตฌ์กฐ์ ์ผ๋ก ํตํฉํด ๋์ ๊ฒ
๊ตฌ์ถ์ด ์ฌ์
- ๊ณต๋ฃก DB
- ๊ฒ์์ด ๋ง์ง ์์ DB๋ฅผ ๊ตฌ์ถํ ํ์ ์์
- ๋ณด์กด๊ฐ์น๊ฐ ์๋ ๊ฒฝ์ฐ์ ๊ตฌ์ถ
- ๋์
- ์ฌ์ฉ์ ์ ๋ณดํต
- ๊ฒ์์ ๋ง์ง๋ง ๋ฐ์ดํฐ์ ๋ํ ๋ณ๊ฒฝ์ ์ ์
- ๋นํ๊ธฐ ์์ฝ
- ์์ฝ ๋ณ๊ฒฝ/์ทจ์ ๋ฑ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ๋ง์ง๋ง ๊ฒ์์ ์ ์
- ์ค์๊ฐ ๊ฒ์ ๋ฐ ๋ณ๊ฒฝ์ด ์ค์ํจ
- ์ฆ๊ถ
- ์ฌ์ฉ์ ์ ๋ง์
- ๊ฒ์๋ ๋ง๊ณ ๊ฑฐ๋๋ก ์ธํ ๋ณ๊ฒฝ๋ ๋ง์
๊ตฌ์ถ์ด ์ด๋ ค์
DB
ํ ์กฐ์ง(enterprise)์ ์ฌ๋ฌ ์์ฉ ์์คํ
๋ค์ด
๊ณต์ฉ(shared)ํ๊ธฐ ์ํด
ํตํฉ(integrated), ์ ์ฅ(stored)ํ
์ด์ ๋ฐ์ดํฐ(operational data)์ ์งํฉ
DB ๊ฐ๋
- ํตํฉ๋ ๋ฐ์ดํฐ, Integrated data
- ๋ฐ์ดํฐ ํตํฉ โ ๋ฐ์ดํฐ ์ค๋ณต ์ต์ํ, Minimal Redundancy
- ์ Why?
- ์ค๋ณต์ผ๋ก ์ธํ ๋ฐ์ดํฐ ๋ถ์ผ์น ํ์์ ์์ฐ, Controlled Redundancy
- ์ ์ฅ๋ ๋ฐ์ดํฐ, Stored Data
- ๋ฌธ์ X, ์ปดํจํฐ ์ ์ฅ์ฅ์น์ ์ ์ฅ๋ ๋ฐ์ดํฐ (๋์คํฌ, ํ ์ดํ)
- ์ด์ ๋ฐ์ดํฐ Operational Data
- ์กฐ์ง์ ๋ชฉ์ ์ ์ํด ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ
- ์ ๋ฌด๋ฅผ ์ํ ๊ฒ์์ ํ ๋ชฉ์ ์ผ๋ก ์ ์ฅ๋ ๋ฐ์ดํฐ
- ๊ณต์ฉ ๋ฐ์ดํฐ Shared Data
- ํ ์ฌ๋/์ ๋ฌด๋ฅผ ์ํด ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๊ฐ ์๋๋ผ, ๊ณต๋์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ
๊ฐ์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์
ํ ์๋ ์์ง๋ง,
์ด๋ฐ ๊ณตํต ๋ฐ์ดํฐ๋ฅผ ํตํฉ Integrate ํด์ ํ๋๋ก ์ ๋ฆฌ = DB ์ค๊ณ
์ต์ข
์ ์ผ๋ก DBMS๋ฅผ ํตํด ํตํฉ DB ๋ฐ์ดํฐ์ ์ ๊ทผ
DB = ์ด์
๋ฐ์ดํฐ๋ฅผ ํตํฉ
ํ์ฌ ์ ์ฅ
ํ๋ฉฐ ๊ณต์ฉ
์ผ๋ก ์ฌ์ฉ๋จ
DB ํน์ง
- ์ค์๊ฐ ์ ๊ทผ์ฑ, Realtime Accessibility
- ์ค์๊ฐ ์๋น์ค
- ๋ฐ์ดํฐ ์์ฒญ ์ ์ ์ด๋ด์ ๊ฒฐ๊ณผ๋ฅผ ์๋น์ค
- ๊ณ์์ ์ธ ๋ณํ, Continuous Change
- DB์ ์ ์ฅ๋ ๋ด์ฉ์ ์ด๋ ํ ์๊ฐ์ ์ํ
- ๋ฐ์ดํฐ ๊ฐ์ ์๊ฐ์ ๋ฐ๋ผ ํญ์ ๋ฐ๋ : ๋์ (dynamic) ํน์ฑ
- DB๋ CRUD๋ฅผ ํตํ์ฌ ๋ฐ๋ ๋ฐ์ดํฐ ๊ฐ์ ์ ์ฅ
- ๋์ ๊ณต์ , Concurrent Sharing
- DB๋ ์๋ก ๋ค๋ฅธ ์ ๋ฌด/์ฌ์ฉ์๋ค์๊ฒ ๋์์ ๊ณต์ ๋จ
- ๋์(Concurrent)๋ ๋ณํ์ด๋ผ๊ณ ๋ ํ๋ฉฐ, DB์ ์ ๊ทผํ๋ ํ๋ก๊ทธ๋จ์ด ์ฌ๋ฌ ๊ฐ ์๋ค๋ ์๋ฏธ
- ๋ด์ฉ์ ๋ฐ๋ฅธ ์ฐธ์กฐ, Reference By Content
- DB์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์ธ ์์น๊ฐ ์๋๋ผ ๋ฐ์ดํฐ ๊ฐ์ ๋ฐ๋ผ ์ฐธ์กฐ๋จ
- @ ๊ณ์ธต ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํฌ์ธํฐ๋ฅผ ์
- DB์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์ธ ์์น๊ฐ ์๋๋ผ ๋ฐ์ดํฐ ๊ฐ์ ๋ฐ๋ผ ์ฐธ์กฐ๋จ
DB ์์คํ ์ ๊ตฌ์ฑ
- DB ์์คํ
- DB - ๋ฐ์ดํฐ๋ฅผ ๋ชจ์๋ ํ ๋
- DBMS - ์ฌ์ฉ์์ DB๋ฅผ ์ฐ๊ฒฐ์์ผ์ฃผ๋ SW
- ๋ฐ์ดํฐ ๋ชจ๋ธ - ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ธฐ๋ฒ์ ๊ดํ ๋ด์ฉ, DBMS์ ์ฒญ์ฌ์ง
ํด๋ผ์ด์ธํธ โ ์๋ฒ { Apache โ PHP (PHP ํด์๊ธฐ) = WAS โ MySQL } โ DB
๋ถ์ฐ DB ์์คํ
- ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ์์น์ ์ ์ฅ๋ DB
- ๋๊ท๋ชจ์ ์์ฉ ์์คํ ์ ์ฌ์ฉ๋จ
- Distributed Database Types: two types
- Homogenous :
- A network of Identical Databases stored on multiple sites
- Heterogeneous :
- Different schemas, OS, DDBMS (Distributed ~), and different data models
- Homogenous :
- WAS
- Web Application Server
- IPO
- Input Process Output
- Host Language
- ์ผ๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ SQL๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ฐ ์ธ์ด์ ์ฅ์ ์ ์ด๋ฆผ
- = ์ฝ์ ํ๋ก๊ทธ๋๋ฐ Embedded
- SQL, Standard Query Language
- DDL, Data Definition Language, ๋ฐ์ดํฐ ์ ์์ด
- DB์ ์ ์ฅ๋ ํ ์ด๋ธ ๊ตฌ์กฐ ์ ์
- CREATE, ALTER, DROP
- DML, Data Manipulation Language, ๋ฐ์ดํฐ ์กฐ์์ด
- ๋ฐ์ดํฐ ๊ฒ์, ๋ณ๊ฒฝ(์ฝ์ , ์ญ์ , ์์ )์ ์ฌ์ฉ
- SELECT, INSERT, DELETE, UPDATE
- DCL, Data Control Language, ๋ฐ์ดํฐ ์ ์ด์ด
- ๋ฐ์ดํฐ ์ฌ์ฉ ๊ถํ ๊ด๋ฆฌ ๋ฑ
- GRANT, REVOKE
- DDL, Data Definition Language, ๋ฐ์ดํฐ ์ ์์ด
- Query, ์ง์๋ฌธ
- SELECT
- FROM
- WHERE
DBA, DB Administrator
- DBMS์ ๊ธฐ๋ฅ
- ๋ฐ์ดํฐ ์ ์, Data Definition
- ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ ์, ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํ ์ญ์ ๋ฐ ๋ณ๊ฒฝ ๊ธฐ๋ฅ ์ํ
- ๋ฐ์ดํฐ ์กฐ์, Data Manipulation
- ๋ฐ์ดํฐ ์กฐ์ SW(APP)๊ฐ ์์ฒญํ๋ ๋ฐ์ดํฐ ์ฝ์ , ์์ , ์ญ์ ์์ ์ง์
- ๋ฐ์ดํฐ ์ถ์ถ, Data Retrieval
- ์ฌ์ฉ์ ์กฐํ ๋ฐ์ดํฐ, APP ๋ฐ์ดํฐ ์ถ์ถ
- ๋ฐ์ดํฐ ์ ์ด, Data Control
- DB ์ฌ์ฉ์ ์์ฑ, ๋ชจ๋ํฐ๋ง, ์ ๊ทผ ์ ์ด
- ๋ฐฑ์ ๊ณผ ํ๋ณต, ๋์์ฑ ์ ์ด ๋ฑ์ ๊ธฐ๋ฅ ์ง์
- ๋ฐ์ดํฐ ์ ์, Data Definition
- ๋ฐ์ดํฐ ๋ชจ๋ธ
- ๊ฐ๋
์ ๋ฐ์ดํฐ ๋ชจ๋ธ (Like E-R ๋ชจ๋ธ)
- ํ์ค ์ธ๊ณ์ ์ดํด๋ฅผ ์ถ์์ ๊ฐ๋ ์ผ๋ก
- ๋
ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ (์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ ๋ชจ๋ธ์ด๋ผ ํ๋ค๋ฉด)
- ๊ฐ๋ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ปดํจํฐ ๋ ผ๋ฆฌํ
- ๊ฐ๋
์ ๋ฐ์ดํฐ ๋ชจ๋ธ (Like E-R ๋ชจ๋ธ)
- ๋ฐ์ดํฐ ๋ชจ๋ธ
- ๊ณ์ธต ๋ฐ์ดํฐ ๋ชจ๋ธ Hierarchical Data Model
- ํ์ผ ์์คํ ์ด๋ ์ ๋ํฐ ์ค๋ธ์ ํธ Hierarchy ๊ฐ์ด, ๋ถ๋ชจ:์์ 1:N ๊ด๊ณ
- ๋คํธ์ํฌ ๋ฐ์ดํฐ ๋ชจ๋ธ Network Data Model
- ๋งํ
- ๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ Relational Data Model
- ๊ฐ์ฒด(์งํฅํ) ๋ฐ์ดํฐ ๋ชจ๋ธ Object(-Oriented) Data Model
- ๊ฐ์ฒด ์งํฅ ๊ฐ๋ ์ ์์ ํ DB์ ์ ์ฉํด์ ๊ตฌํํ๋ ๊ฒ์ด ์ฝ์ง ์์, ๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ์์ ์ ์ฐจ ํ์ฅ๋์ด ๊ฐ๋ ์ค
- ๊ฐ์ฒดใ ก๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ Objectใ กRelational Data Model
- ๊ณ์ธต ๋ฐ์ดํฐ ๋ชจ๋ธ Hierarchical Data Model
- ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ ํํ
- ํฌ์ธํฐ ์ฌ์ฉ : ๊ณ์ธต ๋ฐ์ดํฐ ๋ชจ๋ธ, ๋คํธ์ํฌ ๋ฐ์ดํฐ ๋ชจ๋ธ
- ์์ฑ ๊ฐ ์ฌ์ฉ : ๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ
- ๊ฐ์ฒด ์๋ณ์ ์ฌ์ฉ : ๊ฐ์ฒด ๋ฐ์ดํฐ ๋ชจ๋ธ
- @ ๊ฐ์ฒด ๋ฐ์ดํฐ ๋ชจ๋ธ vs ๊ด๊ณ ๋ชจ๋ธ
- Class vs Relation/Table
- Object/Object Instance vs Tuple/Record
- Variable vs Attribute/Column
- Method vs Stored Procedure
- @ DBMS Schemas
- Client : External Level/View Level
- Server : Conceptual Level/Internal Level
- DB : Internal Level
3๋จ๊ณ DB ๊ตฌ์กฐ, 3-Layer DB Architecture
Schema : ์กฐ์ง, ๊ตฌ์กฐ (๊ทธ๋ฆฌ์ค์ด)
ER = Entity Elation Model
์ธ๋ถ, ๊ฐ๋
, ๋ด๋ถ
์ธ๋ถ-๊ฐ๋
, ๊ฐ๋
-๋ด๋ถ ์ฌ์ด ๋งคํ
Mapping ๋งคํ = ์ฌ์
์ํธ ๋
๋ฆฝ์ ์ธ ๊ฐ๋
์ ์ฐ๊ฒฐ์์ผ์ฃผ๋ ๋ค๋ฆฌ
- ์ธ๋ถ ๋จ๊ณ External Level
- DB๋ฅผ ๋ฐ๋ผ๋ณด๋ User View (User, ์์ฉ ํ๋ก๊ทธ๋๋จธ)
- ์ ์ฒด DB ์ค์์ ํ๋์ ๋ ผ๋ฆฌ์ ์ธ ๋ถ๋ถ์ ์๋ฏธ
- 1 DB : N * External View (Sub Schema)
- View ๊ฐ๋ (#๊ตฌํ์ด ์๋)
๊ฐ์ DB๋ฅผ ์ฐ๋๋ผ๋,
๊ธฐ๋ฅ๋ง๋ค ๋ค๋ฃจ๋ ๋ฐ์ดํฐ, ๋ฐ์ดํฐ ๊ด๊ณ๋ ๋ค๋ฅด๋๊น
- ์ธ๋ถ/๊ฐ๋
๋งคํ
- ์ธ๋ถ ์คํค๋ง์ ๋ฐ์ดํฐ๊ฐ ๊ฐ๋ ์คํค๋ง์ ์ด๋ ๋ถ๋ถ์ ํด๋น๋๋์ง ๋์์ํด
์ธ๋ถ ์คํค๋ง ๋ญํฑ์ด = ๊ฐ๋
์คํค๋ง
์ธ๋ถ ์คํค๋ง = ๊ฐ๋
์คํค๋ง์ Logical Part
- ๊ฐ๋
๋จ๊ณ Conceptual Level
- ์ ์ฒด DB์ ์ ์
- 1 DB : 1 Conceptual Schema
- ๋ฐ์ดํฐ๊ณผ ๊ด๊ณ, ์ ์ฝ์ฌํญ, ๋ฌด๊ฒฐ์ฑ์ ๋ํ ๋ด์ฉ์ด ํฌํจ๋จ
- ๊ฐ๋
/๋ด๋ถ ๋งคํ
- ๊ฐ๋ ์คํค๋ง์ ๋ฐ์ดํฐ๊ฐ ๋ด๋ถ ์คํค๋ง์ ๋ฌผ๋ฆฌ์ ์ฅ์น ์ด๋์ ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ์ ์ฅ๋๋์ง ๋์์ํด
- ๋ด๋ถ ๋จ๊ณ Internal Level
- ๋ฌผ๋ฆฌ์ ์ ์ฅ์ฅ์น์ DB๊ฐ ์ค์ ๋ก ์ ์ฅ๋๋ ๋ฐฉ๋ฒ์ ํํ
- 1 DB : 1 Internal Schema
- ์ธ๋ฑ์ค, ๋ฐ์ดํฐ ๋ ์ฝ๋์ ๋ฐฐ์น ๋ฐฉ๋ฒ, ๋ฐ์ดํฐ ์์ถ ๋ฑ์ ๊ดํ ์ฌํญ์ด ํฌํจ๋จ
๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ
ํ์ ๋จ๊ณ์ ๋ด์ฉ์ ์ถ์ํ
์์ ๋จ๊ณ์ ์ธ๋ถ ์ฌํญ ์จ๊น
ํน์ ๋จ๊ณ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋์ด๋
๋ค๋ฅธ ๋จ๊ณ ๊ตฌ์กฐ์ ์ํธ๊ฐ์ญ์๋๋ก
๋ด๋ถ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋๋๋ผ๋,
๋ฐ์ดํฐ๋ ๊ธฐ์กด ๊ทธ๋๋ก ๋ด๋ ค์ฌ ๋
๋ฌธ์ ์์ด ์๋ํ ์ ์๋๋ก ?
- ๋
ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋
๋ฆฝ์ฑ, Logical Data Independence
- ์ธ๋ถ/๊ฐ๋ ์ฌ์ด์ ๋ ๋ฆฝ์ฑ
- ๊ฐ๋ ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋์ด๋ ์ธ๋ถ ์คํค๋ง์๋ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ์ง์
- ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋์ด๋ ์์ฉ ํ๋ก๊ทธ๋จ์๋ ์ํฅ์ด ์๋๋ก ํ๋ ๊ฐ๋
- I.E. ๊ฐ๋
์คํค๋ง์ ํ
์ด๋ธ์ ์์ฑํ๊ฑฐ๋ ๋ณ๊ฒฝ
- ์ธ๋ถ ์คํค๋ง๊ฐ ์ง์ ๋ค๋ฃจ๋ ํ ์ด๋ธ์ด ์๋๋ฉด ์ํฅ์ด ์์
- ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ๋
๋ฆฝ์ฑ, Physical Data Independence
- ๊ฐ๋ /๋ด๋ถ ์ฌ์ด์ ๋ ๋ฆฝ์ฑ
- ์ ์ฅ์ฅ์น ๊ตฌ์กฐ ๋ณ๊ฒฝ๊ณผ ๊ฐ์ด ๋ด๋ถ ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋์ด๋ ๊ฐ๋ ์คํค๋ง์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ์ง์
- ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ๋ณด๋ค ๊ตฌํํ๊ธฐ ์ฌ์
- I.E. ์ฑ๋ฅ ๊ฐ์ ์ ์ํ์ฌ ๋ฌผ๋ฆฌ์ ์ ์ฅ ์ฅ์น๋ฅผ ์ฌ๊ตฌ์ฑํ ๊ฒฝ์ฐ
- ๊ฐ๋ /์ธ๋ถ(APP) ์คํค๋ง์ ์ํฅ์ด ์์
๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ
๋ฆด๋ ์ด์
Relation
๊ด๊ณ Relationship
์ด์ธ ๊ทธ๋๋ก ๋ฒ์ญ, Relation = ๊ด๊ณ
- ๋ฆด๋ ์ด์
Relation
- ํ์ด ํ ์ด๋ธ
- ๋ ์งํฉ์ ์์๋ผ๋ฆฌ ๊ด๋ จ์ํจ๋ค๋ ์ํ ์ฉ์ด
- ์ ์ฌํ ๋์๋ค์ ๊ด๋ จ์ํค๋ ์ฑ์ง๋ค์ ํน์ ์กฐํฉ
- ๊ด๊ณ ํ๊ธฐ : R
- ๊ด๊ณ๋ฅผ ๋งบ๋ ๋ฐฉ๋ฒ โ ์งํฉ ์ฐ์ฐ - ์นดํฐ์ ํ๋ก๋ํธ
- ๊ฐ ์งํฉ ์์ ํ๋๊ฐ ์๋ก ๊ด๊ณ๋ฅผ ๋งบ๊ณ , ๊ด๊ณ๊ฐ ๋ชจ์ฌ ๋ฆด๋ ์ด์
- ๊ด๊ณ Relationship
- ๋ฆด๋ ์ด์
๋ด์์ ์์ฑ๋๋ ๊ด๊ณ
- ์ด๋ฐ ๊ด๊ณ๊ฐ ๋ชจ์ฌ ๋ฆด๋ ์ด์
- ๋ฆด๋ ์ด์
๊ฐ์ ๊ด๊ณ
- ๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํน์ง
- ๋ฆด๋ ์ด์
๋ด์์ ์์ฑ๋๋ ๊ด๊ณ
- ๋ฆด๋ ์ด์
๊ตฌ์ฑ
- ์คํค๋ง Schema, ๋ดํฌ
- ๋ฆด๋ ์ด์ ์ด ์ด๋ค ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋์ง
- ํ ์ด๋ธ์ ์ฒซ ํ, ํค๋ Header
- ๊ฐ ๋ฐ์ดํฐ์ ํน์ง์ ๋ํ๋ด๋ ์์ฑ, ์๋ฃ ํ์ ๋ฑ
- ์ธ์คํด์ค Instance, ์ธ์ฐ
- ์คํค๋ง์ ๊ธฐ๋ฐ, ์ค์ ๋ก ์ ์ฅ๋ ๋ฐ์ดํฐ ์งํฉ
- ์คํค๋ง Schema, ๋ดํฌ
- ๋ฆด๋ ์ด์
์คํค๋ง
- ์์ฑ Attribute : ๋ฆด๋ ์ด์ ์คํค๋ง์ ์ด Column
- ๋๋ฉ์ธ : ์์ฑ์ด ๊ฐ์ง ์ ์๋ ๊ฐ์ ์งํฉ
- ์ฐจ์ : ์์ฑ์ ๊ฐ์
๋ฆด๋ ์ด์
์ด๋ฆ (์์ฑ 1, )
๋ฆด๋ ์ด์
์ด๋ฆ (์์ฑ 1 : ๋๋ฉ์ธ 1, โฆ )
๊ด๊ณ DB ์คํค๋ง = ๋ฆด๋ ์ด์ ์คํค๋ง ์งํฉ
- ๋ฆด๋ ์ด์
์ธ์คํด์ค
- ํํ Tuple : ๋ฆด๋ ์ด์ ์ธ์คํด์ค์ ํ Row
- ์นด๋๋๋ฆฌํฐ Cardinality : ํํ์ ์
- ๋ฆด๋ ์ด์
โ ํ
์ด๋ธ
- ๋ฆด๋ ์ด์
: ์ฃผ๋ก ๊ตฌ์กฐ๋ฅผ ๊ฐ์กฐ
- ์ํ ์งํฉ ์ด๋ก ์ ๊ธฐ์ด, ์์ฑ/์ธ์คํด์ค์ ์ค๋ณต ํ์ฉ X
- ํ ์ด๋ธ : ์ฃผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์กฐ
- ๋ฆด๋ ์ด์
: ์ฃผ๋ก ๊ตฌ์กฐ๋ฅผ ๊ฐ์กฐ
- ๋ฆด๋ ์ด์
ํน์ง
- ์์ฑ์ ๋จ์ผ ๊ฐ์ ๊ฐ์ง๋ค
- ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ง ๊ฒฝ์ฐ, ํํ์ ํ๋ ๋ ๋ง๋ค์ด ์์ฑ์ ๊ฐ์ด ๋จ์ผ ๊ฐ์ด ๋๋๋ก
- ์์ฑ์ ์๋ก ๋ค๋ฅธ ์ด๋ฆ์ ๊ฐ์ง๋ค
- ํ ์์ฑ์ ๊ฐ์ ๋ชจ๋ ๊ฐ์ ๋๋ฉ์ธ ๊ฐ์ ๊ฐ์ง๋ค
- ์์ฑ์ ์์๋ ์๊ด์๋ค, ๋ฌ๋ผ๋ ๊ฐ์ ๋ฆด๋ ์ด์ ์คํฌ๋ง
- ๋ฆด๋ ์ด์ ๋ด์ ์ค๋ณต๋ ํํ์ ํ์ฉํ์ง ์๋๋ค
- ํํ์ ์์๋ ์๊ด์๋ค, ๋ฌ๋ผ๋ ๊ฐ์ ๋ฆด๋ ์ด์
- ์์ฑ์ ๋จ์ผ ๊ฐ์ ๊ฐ์ง๋ค
- ์ ์ฝ์กฐ๊ฑด Constraints
- ๊ฐ ๋ฆด๋ ์ด์ ์ ์ ์ฅ๋ ๋ฐ์ดํฐ ๊ฐ์ด ๊ฐ์ ธ์ผ ํ๋ ์ ์ฝ
- Like ๋์ด > 0
- ๊ด๊ณ์ฐ์ฐ
- ๋ฆด๋ ์ด์ ์ ๋ค๋ฃจ๋ ์ฐ์ฐ ๊ท์น
- I.E. ์ฃผ๋ฌธ, ๊ณ ๊ฐ ๋ฆด๋ ์ด์ ์ ์กฐ์ํ์ฌ ํน์ ๊ณ ๊ฐ์ ์ฃผ๋ฌธ ๋ด์ญ ๊ฒ์
@ ๊ด๊ณ๋์
- ๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ
- ๋ฐ์ดํฐ๋ฅผ 2์ฐจ์ ํ ์ด๋ธ ํํ = ๋ฆด๋ ์ด์ ์ผ๋ก ํํ
- ๋ฆด๋ ์ด์
์ ๋ํ ์ ์ฝ์กฐ๊ฑด, ๊ด๊ณ ์ฐ์ฐ์ ์ํ ๊ด๊ณ๋์ Relation Algebra ์ ์
- ๋ฆด๋ ์ด์ ์์ฑ, ๊ด๋ฆฌ, ์ ์ฝ์กฐ๊ฑด ํํ, ๋ฐ์ดํฐ ์ถ์ถ ์ฐ์ฐ ๋ชจ๋ SQL๋ก
Key
- Key
- ๋ฌด์์ธ๊ฐ๋ฅผ ์ ์ผํ๊ฒ ์๋ณ
- ํน์ ํํ ์๋ณ ์ ์ฌ์ฉํ๋ ์์ฑ, ์์ฑ ์งํฉ
- ํค๊ฐ ๋๋ ์์ฑ (ํน์ ์์ฑ์ ์งํฉ)์ ๋ฐ๋์ ๊ฐ์ด ๋ฌ๋ผ์ ํํ์ ๊ตฌ๋ถํ ์ ์์ด์ผ
- ๋ฆด๋ ์ด์ ์ค๋ณต๋ ํํ ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์์ฑ๋ค ์ค ํ๋ ์ด์์ ๊ฐ์ด ๋ฌ๋ผ์ผ
- ๋ฆด๋ ์ด์ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋งบ์ ๋๋ ์ฌ์ฉ
- Super Key
- ํํ์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋ ํ๋์ ์์ฑ, ์์ฑ ์งํฉ
- Composite Key, ๋ณตํฉํค = ์์ฑ ์งํฉ Key
- Like (์ฃผ๋ฏผ๋ฒํธ, ์ด๋ฆ)
- Super Key๊ฐ ์๋ ์์ฑ์ด ํฌํจ๋์ด, Super Key๊ฐ ๋ ์ ์๋ค
- Like (์ฃผ๋ฏผ๋ฒํธ, ์ด๋ฆ)
์ด๋,
ํค๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ์ด ๋ง์ผ๋ฉด
๊ด๊ณ ํํ์ด ๋ณต์กํด์ง, ์ฌ์ฉํ๊ธฐ ๋ถํธ
- Candidate Key ํ๋ณดํค
- ํํ์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋ ์์ฑ์ ์ต์ ์งํฉ
(์ฃผ๋ฏผ๋ฒํธ, ์ด๋ฆ) VS ์ฃผ๋ฏผ๋ฒํธ
- PK, Primary Key ๊ธฐ๋ณธํค
- ์ฌ๋ฌ ํ๋ณดํค ์ค ํ๋๋ฅผ ์ ์ ํ์ฌ ๋ํ๋ก ์ผ๋ ํค
- PK ์ ์ฝ ์กฐ๊ฑด
- ๋ฆด๋ ์ด์ ๋ด ํํ์ ์๋ณํ ์ ์๋ ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ ธ์ผ
- NULL ๊ฐ X
- ํค ๊ฐ์ ๋ณ๋์ด ์ผ์ด๋์ง ์์์ผ
- ์ต๋ํ ์ ์ ์์ ์์ฑ์ ๊ฐ์ง ๊ฒ์ด๋ผ์ผ
- ํฅํ ํค๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ์์ด์ ๋ฌธ์ ๋ฐ์ ์์ง์ผ ์์ด์ผ
- Like ์ฃผ๋ฏผ๋ฒํธ, ๊ฐ์ธ์ ๋ณด ์ด์
๋ฆด๋ ์ด์ ์คํค๋ง๋ฅผ ํํํ ๋, PK๋ ๋ฐ์ค์ ๊ทธ์ด ํ์
- Surrogate Key ๋๋ฆฌํค, Artificial Key ์ธ์กฐํค
- ์ผ๋ จ๋ฒํธ ๊ฐ์ ๊ฐ์์ ์์ฑ
- ์ Why?
- PK๊ฐ ๋ณด์์ ์๊ตฌ or ์ฌ๋ฌ ๊ฐ์ ์์ฑ์ผ๋ก ๊ตฌ์ฑ๋์ด ๋ณต์ก or ๋ง๋ ํ PK๊ฐ ์์
- Alternate Key ๋์ฒดํค
- PK๊ฐ ์๋ ํ๋ณดํค
- FK, Foreign Key ์ธ๋ํค
- ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค๋ฅผ ์ฐธ์กฐํ๋ ์์ฑ
- FK ์ ์ฝ ์กฐ๊ฑด
- ๋ฆด๋ ์ด์ ๊ฐ์ ๊ด๊ณ๋ฅผ ํํ
- ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ PK๋ฅผ ์ฐธ์กฐํ๋ ์์ฑ
- ์ฐธ๊ณ ํ๊ณ (FK) ์ฐธ์กฐ๋๋(PK) ์์ชฝ ๋ฆด๋ ์ด์ ์ ๋๋ฉ์ธ์ ๋์ผ
- ์ฐธ์กฐ๋๋(PK) ๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ์ฐธ์กฐํ๋(FK) ๊ฐ๋ ๋ณ๊ฒฝ
- NULL ๊ฐ๊ณผ ์ค๋ณต ๊ฐ ๋ฑ์ด ํ์ฉ
- ์๊ธฐ ์์ ์ PK๋ฅผ ์ฐธ์กฐํ๋ FK๋ ๊ฐ๋ฅ
- FK๊ฐ ๊ธฐ๋ณธํค์ ์ผ๋ถ๊ฐ ๋ ์ ์์
- Super Key
- Candidate Key
- Primary Key
- Alternate Key
- Some Super Keyโฆ
- Candidate Key
๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด
- ์ Why
- ๋ฐ์ดํฐ๋ ๊ฒฐํจ์ด ์๊ณ , ์ง์์ ๋ํด ์ ๋ขฐ์ฑ ์๋ ๋ต์ ์ ๊ณตํด์ผ
- ๋ฐ์ดํฐ ์ ๋ขฐ๋ ์ ์ง
- ์ผ๊ด์ฑ ์ ์ง, ์ค๋ณต ์ ๊ฑฐ ๋ฑ
So,
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ Integrity ์ ์ง๋๋ ค๋ฉด
๋ฐ์ดํฐ ์ฝ์
, ์ญ์ , ์์ ์ ์ ์ฝ์กฐ๊ฑด์ด ๋ฐ๋ฆ
์ผ์ผ์ด ํ ์ ์์ง๋ง,
DBMS๊ฐ ์ฒ๋ฆฌํด์ค๋ค๋ฉด
- @ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด
- ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ Data Integrity
- DB์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์์ ์ฑ, ์ผ๊ด์ฑ, ์ ํ์ฑ ์งํค๋ ๊ฒ
- ์๋ณธ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ/ํ๊ดด ์์ด ๋ณด์กด๋๋ ํน์ฑ์ ๋ดํฌ
- ALCOA
- Attributable ์์ ํ๊ณ ์ผ๊ด๋๋ฉฐ ์ ํํ ๋ฐ์ดํฐ๋ ์ถ์ฒ๊ฐ ์์ด์ผ ํ๋ฉฐ
- Legible ์ฝ์ ์ ์๊ณ
- Contemporaneously Recorded ๋์์ ๊ธฐ๋ก๋์ด์ผ ํ๋ฉฐ
- Original or a True copy ์๋ณธ ๋๋ ์ง์ ํ ์ฌ๋ณธ์ด์ฌ์ผ ํ๋ฉฐ
- Accurate ์ ํํด์ผ ํจ
- ๋๋ฉ์ธ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด, Domain Integrity Constraint
- = ๋๋ฉ์ธ ์ ์ฝ, Domain Constraint
- ๋ฆด๋ ์ด์ ๋ด์ ํํ๋ค์ด ๊ฐ ์์ฑ์ ๋๋ฉ์ธ์ ์ง์ ๋ ๊ฐ๋ง์ ๊ฐ์ ธ์ผ ํ๋ค๋ ์กฐ๊ฑด
- SQL ๋ฌธ์์ ๋ฐ์ดํฐ ํ์ Type, ๋ Null/NotNull, ๊ธฐ๋ณธ๊ฐ Default, ์ฒดํฌ Check ๋ฑ์ ์ฌ์ฉํ์ฌ ์ง์
- ๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด, Entity Integrity Constraint
- = ๊ธฐ๋ณธํค ์ ์ฝ, Primary Key Constraint
- ๊ธฐ๋ณธํค๋ NULL ๊ฐ์ ๊ฐ์ ธ์๋ ์๋๋ฉฐ ๋ฆด๋ ์ด์ ๋ด์ ์ค์ง ํ๋์ ๊ฐ๋ง ์กด์ฌํด์ผ ํ๋ค๋ ์กฐ๊ฑด
- ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด, Referential Integrity Constraint
- = ์ธ๋ํค ์ ์ฝ, Foreign Key Constraint
- ๋ฆด๋ ์ด์
๊ฐ์ ์ฐธ์กฐ ๊ด๊ณ๋ฅผ ์ ์ธํ๋ ์ ์ฝ์กฐ๊ฑด
- ์ฐธ์กฐ๋๋ Referred ๋ฆด๋ ์ด์ : Parent
- ์ฐธ์กฐํ๋ Refer ๋ฆด๋ ์ด์ : Child
- ์์ ์ธ๋ ํค๋ ๋ถ๋ชจ ๊ธฐ๋ณธํค์ ๋๋ฉ์ธ์ด ๋์ผํด์ผ ํจ
- ์์์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋ ๋ถ๋ชจ์ ์ ์ฝ์ ๋ฐ๋๋ค๋ ๊ฒ
- UNIQUE ์ ์ฝ์กฐ๊ฑด (์ ์ผ์ฑ, ๊ณ ์ ์ฑ ์ ์ฝ์กฐ๊ฑด)
- ์์ฑ ๋ชจ๋ ๊ฐ๋ค์ ์ค๋ณต X
- ์ฌ์ฉ์ ์ ์ ๋ฌด๊ฒฐ์ฑ
- ํธ๋ฆฌ๊ฑฐ (Event) ๋ฐ ์ ์ฅ ํ๋ก์์ (Call) ๋ฅผ ํตํด ๊ตฌํ
- ์ฌ์ฉ์ ์ ์ ์ ์ฝ ์กฐ๊ฑด
- I.E. ์ง์์ ID๊ฐ ํญ์ AfterAcademy์ ๊ฐ์ ํน์ ๋ฌธ์๋ฅผ ์์ํ๊ณ ๊ทธ ๋ค์ ์ซ์๊ฐ ์์ผ ํ๋ค
๋ฆด๋ ์ด์
์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ์ผ์ด๋ ๋ ์ ์ฝ์กฐ๊ฑด์ ์๋ฐฐ๋ ์ ์์
โ ์ ์ฝ์กฐ๊ฑด ์ค์์ฌ๋ถ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ ๋ง๋ค ํ์ธ
- ๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด ์ํ
- ์ฝ์ : PK ๊ฐ์ด ์ค๋ณต๋๋ฉด, NULL์ด๋ฉด ๊ธ์ง
- ์์ : PK ๊ฐ์ด ์ค๋ณต๋๋ฉด, NULL์ด๋ฉด ๊ธ์ง
- ์ญ์ : ์ฆ์ ์ํ (์ฐธ์กฐ ์ค์ด ์๋๋ผ๋ฉด)
- ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด ์ํ
- ์ฝ์
- ๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด ํ์ธ
- FK๊ฐ ๋ถ๋ชจ ๋ฆด๋ ์ด์
์ ์กด์ฌํ๋ PK๋ก ์กด์ฌํ๋์ง ํ์ธ
- FK๊ฐ NULL์ด๋ผ๋ฉด NULL ํ์ฉ ํ์ธ
- ์ญ์
- ์์ ๋ฆด๋ ์ด์ : ์ฆ์ ์ํ
- ๋ถ๋ชจ ๋ฆด๋ ์ด์
- ์ฐธ์กฐํ๊ณ ์๋ ๋ฆด๋ ์ด์ ์ด ์๋์ง ํ์ธ
- ๋ง์ฝ ์กด์ฌํ๋ค๋ฉด (์ต์
)
- RESTRICTED : ์ฆ์ ์์ ์ ์ค์ง
- CASCADE : ์์ ๋ฆด๋ ์ด์ ์ ๊ด๋ จ ํํ์ ์ญ์
- DEFAULT : ์ด๊ธฐ์ ์ค์ ๋ ์ด๋ค ๊ฐ์ผ๋ก ์ค์
- NULL : NULL ๊ฐ์ผ๋ก ์ค์
- ์์
- ์ญ์ ์ ์ฝ์ ๋ช ๋ น ์ฐ์ ์ํ๋จ
- ๋ถ๋ชจ ๋ฆด๋ ์ด์
์ ์์ ์ด ์ผ์ด๋ ๊ฒฝ์ฐ
- ์ญ์ ์ต์ ์ ๋ฐ๋ผ ์ฒ๋ฆฌ๋ ํ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ๋ค์ ์ฝ์ ์ ์ฝ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฒ๋ฆฌ๋จ
- ์ฝ์
๊ด๊ณ๋์
๋ฆด๋ ์ด์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ธ์ด
- ๊ด๊ณ์ฐ์ฐ
- ๋ฆด๋ ์ด์ ์์ ๋ฐ์ดํฐ ์ถ์ถ
- ๊ด๊ณ๋์, ๊ด๊ณํด์ ์ธ์ด๋ฅผ ํตํด
๊ด๊ณ๋์ : ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฐพ๋์ง์ ๋ํ ์ฒ๋ฆฌ์ ์ฐจ๋ฅผ ๋ช
์ํ๋ ์ ์ฐจ์ ์ธ ์ธ์ด
๊ด๊ณํด์ : ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋์ง๋ง ๋ช
์ํ๋ ๋น์ ์ฐจ์ /์ ์ธ์ ์ธ ์ธ์ด
=> Relationally complete ์ค์ ๋์ผํ ํํ ๋ฅ๋ ฅ์ ๊ฐ์ง๊ณ ์์
- ๊ด๊ณ๋์, Relational Algebra (์ ์ ์ ๊ณ์ฐ)
- ์ง์ํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ์ ํ๋ ์ ์ฐจ์ ์ธ์ด
- ํ๋ ์ด์์ ๋ฆด๋ ์ด์ ์, ๊ฒฐ๊ณผ ๋ฆด๋ ์ด์ ์ด ๋์ค๊ธฐ ๊น์ง์ ์ฒ๋ฆฌ ์ฐ์ฐ์ ์งํฉ
๋์ : ์๋ฅผ ๋์ , ์๋ฅผ ๋์ ํ์ฌ ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
๋์ํ : ๋ฐฉ์ ์์ ํธ๋ ๋ฐฉ๋ฒ์ ์ฐ๊ตฌํ๋ ํ๋ฌธ
SQL ์ธ์ด๋ ๊ด๊ณํด์์ ๊ธฐ๋ฐ์ผ๋ก ํ์ง๋ง,
(๊ด๊ณ๋์ ๊ฐ๋
์ญ์ ํผํฉ๋์ด ์์)
DBMS ๋ด๋ถ์์๋ ๊ด๊ณ๋์์ ๊ธฐ๋ฐ์ ๋ ์ฐ์ฐ์ ์ํํ์ฌ
์ต์ข
๊ฒฐ๊ณผ ์งํฉ์ ๋ฐํ
- ๊ด๊ณ์ ์ํ์ ์๋ฏธ
- I.E. A = { 2, 4 }, B = { 1, 3, 5 }
- A X B, ๋ ์งํฉ์ ์นดํฐ์ ํ๋ก๋ํธ
- = A ์์์ B ์์์ ์์์ ์งํฉ
- = { (2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5) }
- ๋ฆด๋ ์ด์
R
- = ์นดํ์ ํ๋ก๋ํธ์ ๋ถ๋ถ ์งํฉ
- R1 = { (2, 1), (4, 1) }
- R2 = { (2, 1), (2, 3), (2, 5) }
- R3 = { (2, 3), (2, 5), (4, 3), (4, 5) }
- ์์ ๊ฐ์๊ฐ n์ธ ์งํฉ์ ๋ถ๋ถ์งํฉ์ ๊ฐ์ : 2^n
A X B์ ๋ถ๋ถ์งํฉ์ ๊ฐ์ : 2^( A X B ) - ๋๋ฉ์ธ Domain
- = ์นดํ์ ํ๋ก๋ํธ์ ๊ธฐ์ด ์งํฉ์ด ๊ฐ๊ฐ์ด ๊ฐ์ง ์ ์๋ ๊ฐ์ ๋ฒ์
- ์งํฉ A์ ๋๋ฉ์ธ = { 2, 4 }
- ์งํฉ B์ ๋๋ฉ์ธ = { 1, 3, 5 }
- ๋ฆด๋ ์ด์
๋ ์งํฉ
- ์งํฉ ์ฐ์ฐ
- ํฉ์งํฉ โ, ๊ต์งํฉ โ, ์นดํฐ์ ํ๋ก๋ํธ X
- R1 โ R2 = { (2, 1), (4, 1), (2, 3), (2, 5) }
- R1 โ R2 = { (2, 1) }
- ์งํฉ ์ฐ์ฐ
S | : ์งํฉ S์ ์์ ์ |
์นดํฐ์ ํ๋ก๋ํธ : ๋ชจ๋ ๊ฒฝ์ฐ์ ์
๋ฆด๋ ์ด์
: ํ๋์ ๊ฒฝ์ฐ
- ๊ด๊ณ๋์ ์ฐ์ฐ์
- ์์ ๊ด๊ณ ์ฐ์ฐ, Relational Operations
- ๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ํด ๊ณ ์
- ์ ๋ ์ Selection, ํ๋ก์ ์ Projection, ์กฐ์ธ Join, ๋๋น์ Division, ๊ฐ๋ช Rename
- ์ผ๋ฐ ์งํฉ ์ฐ์ฐ, Set Operations
- ํฉ์งํฉ Union, ์ฐจ์งํฉ Difference, ๊ต์งํฉ Intersection, ์นดํฐ์ ํ๋ก๋ํธ Cartesian Product
- ์์ ๊ด๊ณ ์ฐ์ฐ, Relational Operations
๋จํญ ์ฐ์ฐ์ Unary Operator
์ดํญ ์ฐ์ฐ์ Binary Operator
์ ๋ ์ฐ์ฐ์ : ๊ธฐ๋ณธ ์ฐ์ฐ์๋ก๋ถํฐ ์ ๋
- ๊ด๊ณ๋์์ Relational Algebra Expression
- ๊ด๊ณ๋์ ์ฐ์ฐ์ ์ํํ๊ธฐ ์ํ ์
- ๋จํญ ์ฐ์ฐ์ : ์ฐ์ฐ์<์กฐ๊ฑด> ๋ฆด๋ ์ด์
- ์ดํญ ์ฐ์ฐ์ : ๋ฆด๋ ์ด์ 1 ์ฐ์ฐ์<์กฐ๊ฑด></sub> ๋ฆด๋ ์ด์ 2
- ๊ฒฐ๊ณผ๋ ๋ฆด๋ ์ด์ , ์ฆ ์ค๋ณต๋ ํํ์ ํ๋๋ง ํ์
Selection, Projection
๊ด๊ณ๋์์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ฐ์ฐ
ํ๋์ R์ ๋์์ผ๋ก ํ๋ ๋จํญ ์ฐ์ฐ์
- Selection
- R์ Tuple ์ถ์ถ
- ๊ฒฐ๊ณผ R ์ฐจ์ = ๋์ R
- ๊ฒฐ๊ณผ R ์นด๋๋๋ฆฌํฐ <= ๋์ R
- ฯ Predicate (R), ฯ ๊ฐ๊ฒฉ <= 8000 (๋์)
- Predicate, ์์ฑ = ์์๊ฐ/์์ฑ ํํ
- ์ฌ๋ฌ ๊ฐ์ Predicate, โง(and) โจ(or) ๏ฟข(not)
- Projection
- R์ ์์ฑ ์ถ์ถ
- ๊ฒฐ๊ณผ R ์ฐจ์ <= ๋์ R
- ๊ฒฐ๊ณผ R ์นด๋๋ ๋ฆฌํฐ = ๋์ R
- ฯ ์์ฑ ๋ฆฌ์คํธ (R), ฯ ์ด๋ฆ, ์ฃผ์, ํธ๋ํฐ (๊ณ ๊ฐ)
ํฉ๋ณ๊ฐ๋ฅ Union Compatible
๋ ํผ์ฐ์ฐ์ ๋ฆด๋ ์ด์
์ ์๋ก ๊ฐ์ ์์ฑ ์์ ์์, ๋๋ฉ์ธ
์งํฉ ์ฐ์ฐ
- โ Union
- ๋ R ํฉํ์ฌ ํ๋์ R๋ก
- ๋ R์ ์๋ก ๊ฐ์ ์์ฑ ์์ ์์, ๋๋ฉ์ธ
- ์์ฑ ์ด๋ฆ์ ์ฒซ ๋ฒ์งธ R์ ๊ฒ์
- โ Intersection
- ๋ R์ด ๊ณตํต์ผ๋ก ๊ฐ์ง๊ณ ์๋ Tuple ๋ฐํ
- ๋ R์ ์๋ก ๊ฐ์ ์์ฑ ์์ ์์, ๋๋ฉ์ธ
- ๊ธฐ๋ณธ ์ฐ์ฐ์๋ก ์ ์ ๊ฐ๋ฅํ ์ ๋๋ ์ฐ์ฐ์, RโS = Rโ(RโS)
- โ Set Difference
- ์ฒซ R์๋ ์ํ๊ณ , ๋ ๋ฒ์งธ R์๋ ์ํ์ง ์๋ Tuple ๋ฐํ
- ๋ R์ ์๋ก ๊ฐ์ ์์ฑ ์์ ์์, ๋๋ฉ์ธ
- โจ Cartesian Product
- ์ํ์ ์ฐ์ฐ (VS ๋ค๋ฅธ ์ฐ์ฐ์๋ค, ์์ง์ ์ฐ์ฐ)
- ๋ R์ ์ฐ๊ฒฐ์์ผ ํ๋์ R๋ก
- ์ฒซ R์ ์ค๋ฅธ์ชฝ์ ๋ ๋ฒ์งธ R์ ๋ชจ๋ Tuple์ ์์๋๋ก ๋ฐฐ์ด
- ์์ฑ๊ณผ ๋๋ฉ์ธ์ด ๋์ผํ์ง ์์๋ ๋จ
- ๊ฒฐ๊ณผ R ์ฐจ์ = ๋ R ์ฐจ์ ํฉ
- ์นด๋๋ ๋ฆฌํฐ = ๋ R ์นด๋๋๋ฆฌํฐ ๊ณฑ
- ์์ฑ ์ด๋ฆ์ ๊ทธ๋๋ก
- ์ถฉ๋ ์ โ๋ฆด๋ ์ด์ ์ด๋ฆ.์์ฑ ์ด๋ฆโ or ์์(์์น) ์ฌ์ฉ
- ๋จ๋ ์ผ๋ก ์ฌ์ฉํ๋ฉด ์๋ฏธ ์๋ ๊ฒฐ๊ณผ, ๋ณดํต Selection, Projection๊ณผ ํจ๊ป
- Join
- ๋ R์ ๊ณตํต ์์ฑ์ ๊ธฐ์ค์ผ๋ก ์์ฑ ๊ฐ์ด ๊ฐ์ Tuple์ ์ํ์ ์ผ๋ก ๊ฒฐํฉ
- ์ฆ, ๋ R์ โจ ํ ํ ฯ (์์ฑ ๊ฐ ๊ฐ์ ์ง) ํ ๊ฒ
- ์ ๋ ์ฐ์ฐ์, RโจcS = ฮดc(RโจS)
- R๊ณผ S๋ ๋์ผ ๋๋ฉ์ธ, c = Join ์กฐ๊ฑด
- ๊ธฐ๋ณธ ์กฐ์ธ ์ฐ์ฐ
ํ์ฅ๋ ์กฐ์ธ ์ฐ์ฐ
- ๊ธฐ๋ณธ ์กฐ์ธ ์ฐ์ฐ
- Theta ์ธํ์กฐ์ธ, ์์ฑ ๊ฐ ๋น๊ต, โจ
- Inner ๋ด๋ถ์กฐ์ธ/Equal ๋๋ฑ์กฐ์ธ, ์กฐ๊ฑด =
- Natural ์์ฐ์กฐ์ธ, ์ค๋ณต ์์ฑ ์ ๊ฑฐ, โจN
- Inner ๋ด๋ถ์กฐ์ธ/Equal ๋๋ฑ์กฐ์ธ, ์กฐ๊ฑด =
- Theta ์ธํ์กฐ์ธ, ์์ฑ ๊ฐ ๋น๊ต, โจ
- ํ์ฅ๋ ์กฐ์ธ ์ฐ์ฐ (์์ฐ์กฐ์ธ Base)
- Semi ์ธ๋ฏธ์กฐ์ธ, ์์ฐ์กฐ์ธ ํ ํ ์ชฝ R์ Tuple๋ง ๋ฐํ
- โจ ๊ธฐํธ์ ์ข์ฐ ๋ซํ ์ ๋ฌด
- Outer ์ธ๋ถ์กฐ์ธ, ์์ฐ์กฐ์ธ ์คํจ ๊ฐ์ NULL๋ก ์ฑ์ ๋ฐํ
- ๊ธฐ์ค R ์์น์ ๋ฐ๋ผ, Left ์ผ์ชฝ, Right ์ค๋ฅธ์ชฝ, Full ์์ ์ธ๋ถ์กฐ์ธ
- โจ ๊ธฐํธ์ ์ข์ฐ ์์นจ ์ ๋ฌด
- Semi ์ธ๋ฏธ์กฐ์ธ, ์์ฐ์กฐ์ธ ํ ํ ์ชฝ R์ Tuple๋ง ๋ฐํ
- Division %
- R ์์ฑ ๊ฐ์ ์งํฉ์ผ๋ก ์ฐ์ฐ
- ์ค๋ฅธ์ชฝ R์ ๋ชจ๋ Tuple์ ์์ฑ์ผ๋ก ๊ฐ์ง๋ ์ผ์ชฝ R์ Tuple๋ค์ ๋ฐํ
@ 114p
Select ฯ (Projection)
From R ()
Where ฮด (Selection)
SQL
QBE Query by Example?
๊ด๊ณ ๋ฐ์ดํฐ ์ฐ์ฐ
- ์ฐ์ฐ Operation๊ณผ ๋ฐ์ดํฐ ์ธ์ด Data Language
- ์ฐ์ฐ : ๋ช ๋ น ์ํ, ์์คํ ์ ์ฅ
- ๋ฐ์ดํฐ ์ธ์ด : ์ฌ์ฉ์ ์ ์ฅ
- ๊ด๊ณ ๋ฐ์ดํฐ ์ธ์ด Relational Data Language
- ์ ํ์ด Formal Language, a Set of Strings of Symbols
- ๊ด๊ณ ๋์ Relational Algebra
- ์ ์ฐจ ์ธ์ด : How, What
- ๊ด๊ณ ํด์ Relational Calculus
- ๋น ์ ์ฐจ ์ธ์ด : What
- Two Calculi
- ํํ ๊ด๊ณ ํด์ Tuple Relational Calculus
- ๋๋ฉ์ธ ๊ด๊ณ ํด์ Domain Relational Calulus
- ๊ด๊ณ ๋์ Relational Algebra
- ์ ํ์ด Formal Language, a Set of Strings of Symbols
- ๊ด๊ณ ํด์๊ณผ ๊ด๊ณ ๋์๋ ํํ๊ณผ ๊ธฐ๋ฅ๋ฉด์์ ๋๋ฑ
- Relationally Complete
- ์ฐ์ฐ Operation๊ณผ ๋ฐ์ดํฐ ์ธ์ด Data Language
, Relational Calculus (์ ์ด ํด์)
- ๊ด๊ณ ํด์ Example
- ํํ ๊ด๊ณ ํด์ Tuple Relational Calculus
{t EMPLOYEE(t) and t.SALARY > 50000} {t P(t)}
- ๋๋ฉ์ธ ๊ด๊ณ ํด์
{uv (โq} (โr) (โs) (EmPLOYEE(qrstuvwxyz) and q = โJohnโ and r = โB) and s = โSmithโ)} - โ, ์์์
- ํํ ๊ด๊ณ ํด์ Tuple Relational Calculus
- QBE Example
- DBSs ๋ค๋ก ๊ตฌํ๋ Query Method
- Graphical Query Language
- ์์ ํ ์ด๋ธ์ ๋ง๋ค์ด Query ์์ฑ
- ๋ช ๋ น P. = ์ธ์
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
~
- ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๊ฐ๋
- Physical Data Model: Blueprint and Data Diagram at the Physical Level
~
- DB ์๋ช
์ฃผ๊ธฐ
- DB Life Cycle
- DB์ ์์ฑ๊ณผ ์ด์๊ณผ ๊ด๋ จ๋ ํน์ง
- Requirements Analysis ์๊ตฌ์ฌํญ ์์ง ๋ฐ ๋ถ์
- ์ฌ์ฉ์๋ค์ ์๊ตฌ์ฌํญ์ ๋ฃ๊ณ ๋ถ์ํ์ฌ DB ๊ตฌ์ถ์ ๋ฒ์๋ฅผ ์ ํจ
- Design ์ค๊ณ
- ๋ถ์๋ ์๊ตฌ์ฌํญ์ ๊ธฐ์ด
- ์ฃผ์ ๊ฐ๋ ๊ณผ ์ ๋ฌด ํ๋ก์ธ์ค ๋ฑ์ ์๋ณ (๊ฐ๋ ์ ์ค๊ณ)
- ์ฌ์ฉํ๋ DBMS์ ์ข ๋ฅ์ ๋ง๊ฒ ๋ณํ (๋ ผ๋ฆฌ์ ์ค๊ณ)
- DB ์คํค๋ง๋ฅผ ๋์ถ (๋ฌผ๋ฆฌ์ ์ค๊ณ)
- Implementation ๊ตฌํ
- ์ค๊ณ ๋จ๊ณ์์ ์์ฑํ ์คํค๋ง๋ฅผ ์ค์ DBMS์ ์ ์ฉ
- ํ ์ด๋ธ ๋ฐ ๊ด๋ จ ๊ฐ์ฒด (๋ทฐ, ์ธ๋ฑ์ค ๋ฑ)๋ฅผ ์์ฑ
- DBMS์ CLI ํน์ GUI
- Operation ์ด์
- ๊ตฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก SW๋ฅผ ๊ตฌ์ถํ์ฌ ์๋น์ค๋ฅผ ์ ๊ณต
- Maintenance ์ ์ง๋ณด์ (Monitoring Modification ๊ฐ์ ๋ฐ ๊ฐ์ )
- DB ์ด์์ ๋ฐ๋ฅธ ์์คํ ์ ๋ฌธ์ ๋ฅผ ๊ด์ฐฐ
- DB ์์ฒด์ ๋ฌธ์ ์ ์ ํ์ ํ์ฌ ๊ฐ์
- Requirements Analysis ์๊ตฌ์ฌํญ ์์ง ๋ฐ ๋ถ์
- ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๊ณผ์
- ์๊ตฌ์ฌํญ ์์ง ๋ฐ ๋ถ์
- ํ์ค์ธ๊ณ์ ๋์ ๋ฐ ์ฌ์ฉ์์ ์๊ตฌ ๋ฑ์ ์ ๋ฆฌ ๋ฐ ๋ถ์
- ์ฌ์ฉ์ ์๋ณ
- DB ์ฉ๋ ์๋ณ
- ์ฌ์ฉ์ ์๊ตฌ ์ฌํญ ์์ง ๋ฐ ๋ช ์ธ
- ์ค๊ณ
- ๊ฐ๋
์ ๋ชจ๋ธ๋ง
- ์ค์ ๊ฐ๋
์ ๊ตฌ๋ถ
- ํต์ฌ Entity(๋ ์ง๊ฐ์ฒด) ๋์ถ
- ERD ์์ฑ
- ์ค์ ๊ฐ๋
์ ๊ตฌ๋ถ
- ๋
ผ๋ฆฌ์ ๋ชจ๋ธ๋ง
- ๊ฐ ๊ฐ๋
์ ๊ตฌ์ฒดํ
- ERD-RDB ๋ชจ๋ธ ์์
- ์์ธ ์์ฑ ์ ์
- ์ ๊ทํ ๋ฑ
- ๊ฐ ๊ฐ๋
์ ๊ตฌ์ฒดํ
- ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง
- DB ์์ฑ ๊ณํ์ ๋ฐ๋ผ ๊ฐ์ฒด, ์ธ๋ฑ์ค ๋ฑ์ ์์ฑ
- DB ๊ฐ์ฒด ์ ์
- ํ ์ด๋ธ ๋ฐ ์ธ๋ฑ์ค ๋ฑ ์ค๊ณ
- DB ์์ฑ ๊ณํ์ ๋ฐ๋ผ ๊ฐ์ฒด, ์ธ๋ฑ์ค ๋ฑ์ ์์ฑ
- ๊ฐ๋
์ ๋ชจ๋ธ๋ง
- DB ๊ตฌํ
- ํ์ค์ธ๊ณ์ ๋์ ๋ฐ ์ฌ์ฉ์์ ์๊ตฌ ๋ฑ์ ์ ๋ฆฌ ๋ฐ ๋ถ์
- ์๊ตฌ์ฌํญ ์์ง ๋ฐ ๋ถ์
- ์๊ตฌ์ฌํญ ์์ง ๋ฐ ๋ถ์
- ์ค์ ๋ฌธ์๋ฅผ ์์งํ๊ณ ๋ถ์ํจ
- ๋ด๋น์์์ ์ธํฐ๋ทฐ๋ ์ค๋ฌธ์กฐ์ฌ๋ฅผ ํตํด ์๊ตฌ์ฌํญ์ ์ง์ ์๋ ดํจ
- ๋น์ทํ ์ ๋ฌด๋ฅผ ์ฒ๋ฆฌํ๋ ๊ธฐ์กด์ DB๋ฅผ ๋ถ์ํจ
- ๊ฐ ์ ๋ฌด์ ์ฐ๊ด๋ ๋ชจ๋ ๋ถ๋ถ์ ์ดํด๋ด
- ๊ฐ๋
์ ๋ชจ๋ธ๋ง Conceptual Modeling
- ์๊ตฌ์ฌํญ์ ์์งํ๊ณ ๋ถ์ํ ๊ฒฐ๊ณผ๋ฅผ ํ ๋๋ก ์ ๋ฌด์ ํต์ฌ์ ์ธ ๊ฐ๋ ์ ๊ตฌ๋ถํ๊ณ ์ ์ฒด์ ์ธ ๋ผ๋๋ฅผ ๋ง๋๋ ๊ณผ์
- ๊ฐ์ฒด(Entity)๋ฅผ ์ถ์ถํ๊ณ ๊ฐ ๊ฐ์ฒด๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์
- ERD Entity Relationship Diagram์ ๋ง๋๋ ๊ณผ์ ๊น์ง๋ฅผ ๋งํจ
- I.E.
- ๋์(๋์์ด๋ฆ,์ถํ์ฌ,๋์๋จ๊ฐ) โ ์ฃผ๋ฌธ(์ฃผ๋ฌธ์ผ์) โ ๊ณ ๊ฐ(๊ณ ๊ฐ์ด๋ฆ,์ฃผ์, ์ ํ๋ฒํธ)
- Entity๋ ๋ช ์ฌ, Relationship์ ๋์ฌ ๋๋
- ๋
ผ๋ฆฌ์ ๋ชจ๋ธ๋ง Logical Modeling
- ๊ฐ๋ ์ ๋ชจ๋ธ๋ง์์ ๋ง๋ ERD์ ์ฌ์ฉํ๋ ค๋ DBMS์ ๋ง๊ฒ ์ฌ์(๋งคํ, Mapping)ํ์ฌ ์ค์ DB๋ก ๊ตฌํํ๊ธฐ ์ํ ๋ชจ๋ธ์ ๋ง๋๋ ๊ณผ์
- To establish the structure af data elements and the relationships among them.
- ๋
ผ๋ฆฌ์ ๋ชจ๋ธ๋ง ๊ณผ์
- ๊ฐ๋ ๋ชจ๋ธ๋ง์์ ์ถ์ถํ์ง ์์๋ ์์ธ ์์ฑ๋ค ๋ชจ๋ ์ถ์ถ
- ์ ๊ทํ ์ํ
- ๋ฐ์ดํฐ ํ์คํ ์ํ
- I.E.
- ๋์(@๋์๋ฒํธ, ๋์์ด๋ฆ,์ถํ์ฌ,๋์๋จ๊ฐ) โ ์ฃผ๋ฌธ(@์ฃผ๋ฌธ๋ฒํธ, ๊ณ ๊ฐ๋ฒํธ(FK), ๋์๋ฒํธ(FK), ์ฃผ๋ฌธ์ผ์) โ ๊ณ ๊ฐ(@๊ณ ๊ฐ๋ฒํธ,๊ณ ๊ฐ์ด๋ฆ,์ฃผ์, ์ ํ๋ฒํธ)
@0406
- ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง Physical Modeling
- DBMS์ ํน์ฑ์ ๋ง๊ฒ ์ ์ฅ ๊ตฌ์กฐ๋ฅผ ์ ์
- ๋ ผ๋ฆฌ์ ๋ชจ๋ธ์ ์ค์ ์ปดํจํฐ์ ์ ์ฅ ์ฅ์น์ ์ ์ฅํ๊ธฐ ์ํ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ ๊ตฌํํ๋ ๊ณผ์
- DB๊ฐ ์ต์ ์ ์ฑ๋ฅ์ ๋ผ ์ ์์
- ํธ๋์ญ์
, ์ ์ฅ ๊ณต๊ฐ ์ค๊ณ ์ธก๋ฉด์์ ๊ณ ๋ คํ ์ฌํญ
- ์๋ต์๊ฐ์ ์ต์ํ
- ์ผ๋ง๋ ๋ง์ ํธ๋์ญ์ ์ ๋์์ ๋ฐ์์ํฌ ์ ์๋์ง ๊ฒํ
- ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๊ณต๊ฐ์ ํจ์จ์ ์ผ๋ก ๋ฐฐ์น
- I.E. CREATE TABLE Book { bookid INT PRIMARY KEY, โฆ }
- ER Entity Relationship ๋ชจ๋ธ
- ์ธ์์ ์ฌ๋ฌผ์ ๊ฐ์ฒดEntityํ์ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณRelationship๋ก ํํํจ
- ERM Entity Relationship Model (ER model)
- Composed of entity types
- Specifies relationships that can exist between instances of those entity types
Design by Peter Chen and published in a 1976 paper
- Entity ๊ฐ์ฒด
- ๋ ์ง์ ์ธ ์๋ฏธ๋ฅผ ์ง๋๊ณ ์๋ ์ ๋ฌดํ์
- ๊ฐ์ฒด์ ํน์ฑ์ ๋ํ๋ด๋ Attribute ์์ฑ์ ์ํด ์๋ณ
- ๊ฐ์ฒด๋ผ๋ฆฌ ์๋ก ๊ด๊ณ๋ฅผ ๊ฐ์ง
- Chen notation, Crowโs foot notation
- ๊ฐ์ฒด, ๊ด๊ณ, ์ญํ (๊ด๊ณ์์ ๊ฐ์ฒด๊ฐ ํ๋ ๊ธฐ๋ฅ, I.E. ๊ฒฐํผ์ด๋ผ๋ ๊ด๊ณ์์์ ์ญํ = ๋จํธ, ์๋ด)
- ER ๋ค์ด์ด๊ทธ๋จ
- ER ๋ชจ๋ธ์ ๊ฐ์ฒด์ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์คํ๋ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋
- ๊ฐ์ฒด์ ๊ฐ์ฒด ํ์
- ๊ฐ์ฒด Entity
- ์ฌ๋, ์ฌ๋ฌผ, ์ฅ์, ๊ฐ๋ , ์ฌ๊ฑด๊ณผ ๊ฐ์ด ์ -๋ฌดํ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋ ๋ฆฝ์ ์ธ ์ค์ฒด
- ๊ฐ์ฒด ์ ํ Entity Type
- Collection of entity having common attribute (Intention:๋ด์ฐ)
- ๊ฐ์ฒด ์งํฉ Entity Set
- A set of entities of some entity type
- Extension of an entity type (์ธ์ฐ)
- ๊ฐ์ฒด Entity
- ๊ฐ์ฒด ํ์
์ ER ๋ค์ด์ด๊ทธ๋จ ํํ
- ์ง์ฌ๊ฐํ์ผ๋ก ๋ํ๋
- ๊ฐ์ฒด ํ์
์ ์ ํ
- ๊ฐํ ๊ฐ์ฒด Strong Entity
- ๋ค๋ฅธ ๊ฐ์ฒด์ ๋์ ์์ด ๋ ์์ ์ผ๋ก ์กด์ฌํ ์ ์๋ ๊ฐ์ฒด, I.E. ์ง์
- ์ฝํ ๊ฐ์ฒด weak Entity
- ๋ ์์ ์ผ๋ก๋ ์กด์ฌํ ์ ์๋ ๋ฐ๋์ ์์ ๊ฐ์ฒด ํ์ ์ ๊ฐ์ง, I.E. ๋ถ์๊ฐ์กฑ
- ๊ฐํ ๊ฐ์ฒด Strong Entity
- ์์ฑ
- ์์ฑ Attribute
- ๊ฐ์ฒด๊ฐ ๊ฐ์ง ์ฑ์ง
- I.E. ๊ฐ์ฒดํ์ : ๋์, ์์ฑ : { ๋์์ด๋ฆ, ์ถํ์ฌ, ๋์๋จ๊ฐ }
- ์์ฑ์ ER ๋ค์ด์ด๊ทธ๋จ ํํ
- ์์ฑ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์์ผ๋ก ํํ
- ๊ฐ์ฒด ํ์ ์ ๋ํ๋ด๋ ์ง์ฌ๊ฐํ๊ณผ ์ค์ ์ผ๋ก ์ฐ๊ฒฐ๋จ
- ์์ฑ์ ์ด๋ฆ์ ํ์์ ์ค์์ ํ๊ธฐ
- ์์์ด ๊ฐ์ฒด๋ฅผ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋ ํค์ผ ๊ฒฝ์ฐ ์์ฑ ์ด๋ฆ์ ๋ฐ์ค์ ๊ทธ์, I.E. ๋์์ด๋ฆ
- ์์ฑ Attribute
- ์์ฑ์ ์ ํ
- I.E. ๋์
- ๋์ ๋ฒํธ
- ์์ฑ
- ์ผ๋ฐ์ ์ก์ฑ
- ๋์ ์ด๋ฆ
- ํค Key ์์ฑ
- ๊ฐ์ฒด๋ฅผ ์ ์ผํ๊ฒ ์๋ณํ๋ ์์ฑ
- ์ด๋ฆ์ ๋ฐ์ค๋ก ํ์
- ๋ถ์ ๊ฐ์กฑ
- ์ฝํ๊ฐ์ฒด ์๋ณ์
- ํค ๋์ ์๋ณ์ Discriminator (or Partial Key)
- ์๋ณ์ ํ์๋ ์ ์
- ์ทจ๋ฏธ
- ๋ค์ค๊ฐ ์์ฑ
- ์ทจ๋ฏธ๋ ์ฌ๋ฌ ๊ฐ๋ฅผ ๊ฐ์ง ์ ์์
- ์ด์ค ํ์
- ๋์ด
- ์ ๋ ์์ฑ
- ์ถ์์ฐ๋๋ก ๋์ด ์ ๋ ๊ฐ๋ฅ
- ์ ์ ํ์
- ์ฃผ์ - { ์, ๋, ๋ฒ์ง }
- ๋ณตํฉ ์์ฑ
- ์ฌ๋ฌ ์์ฑ์ผ๋ก ๊ตฌ์ฑ
- ํฐ ์ ์๋ ์์ ํ์
- ๋์ ๋ฒํธ
- ๊ด๊ณ์ ๊ด๊ณ ํ์
- ๊ด๊ณ Relationship
- ๊ฐ์ฒด ์ฌ์ด์ ์ฐ๊ด์ฑ์ ๋ํ๋ด๋ ๊ฐ๋
- ๊ด๊ณ ํ์
Relationship Type
- ๊ฐ์ฒด ํ์ ๊ณผ ๊ฐ์ฒด ํ์ ๊ฐ์ ์ฐ๊ฒฐ ๊ฐ๋ฅํ ๊ด๊ณ๋ฅผ ์ ์
- ๊ด๊ณ ์งํฉ Relationship Set
- ๊ด๊ณ๋ก ์ฐ๊ฒฐ๋ ์งํฉ์ ์๋ฏธ
- ๊ด๊ณ Relationship
~
@0417
- ER ๋ชจ๋ธ => ๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ ์ฌ์
- ์์ฑ๋ ER ๋ชจ๋ธ => ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ์ ์ํด
- ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง ๋จ๊ณ ์ํ
- ์ด ๋จ๊ณ์์ @์ฌ์(mapping)์ด ์ด๋ฃจ์ด์ง
- @๊ทธ๋ฆผ์ ๋ณํํ๋ ๊ณผ์
- @๊ทธ๋ฆผ => ๋์(๋์๋ฒํธ, ๋์์ด๋ฆ, ์ถํ์ฌ, ๋์๋จ๊ฐ)
- ์์ฑ๋ ER ๋ชจ๋ธ => ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ์ ์ํด
์ฌ์ ์๊ณ ๋ฆฌ์ฆ
- 1-2๋จ๊ณ - ๊ฐ์ฒด ํ์
- 1๋จ๊ณ ๊ฐํ(์ ๊ท) ๊ฐ์ฒด ํ์
- ์ ๊ท ๊ฐ์ฒด ํ์ E์ ๊ฒฝ์ฐ ๋์ํ๋ ๋ฆด๋ ์ด์ R์ ์์ฑํจ
- 2๋จ๊ณ ์ฝํ ๊ฐ์ฒด ํ์
- ์ฝํ ๊ฐ์ฒด ํ์ ์์ ์์ฑํ ๋ฆด๋ ์ด์
- ์์ ์ ๊ธฐ๋ณธํค ๊ตฌ์ฑ
- ์์ ์ ํค์ ํจ๊ป ๊ฐํ ๊ฐ์ฒด ํ์ ์ ํค๋ฅผ ์ธ๋ํค๋ก ์ฌ์
- @๊ฐํ ๊ฐ์ฒด ํ์ (์ฌ์) - ๊ด๊ณ(๋ถ์) - ์ฝํ ๊ฐ์ฒด ํ์ (๊ฐ์กฑ)
- @๊ฐ์กฑ ํ์ ์ด ์ฌ์ ํ์ ์ ์ข ์๋ ์ฝํ ํ์ ์ด๋ฏ๋ก, ์ฌ์ ๊ฐ์ฒด ํ์ ์ ํค์ธ ์ฌ๋ฒ ์์ฑ์ ์ธ๋ํค FK๋ก ํฌํจ
- 1๋จ๊ณ ๊ฐํ(์ ๊ท) ๊ฐ์ฒด ํ์
- 3-6๋จ๊ณ - ๊ด๊ณ ํ์
- ํํ ๋ฐฉ๋ฒ (4๊ฐ์ง)
- 1 ์ค๋ฅธ์ชฝ ๊ฐ์ฒด ํ์
E2๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ด๊ณ R ํํ
- E1(KA1, A2) E2(KA2, A4, KA1)
- 2 ์ผ์ชฝ โ
- E1(KA1, A2, KA2) E2(KA2, A4)
- 3 ๋จ์ผ ๋ฆด๋ ์ด์
ER๋ก ๋ชจ๋ ํตํฉํ์ฌ ๊ด๊ณ R ํํ
- ER(KA1, A2, KA2, A4)
- 4 ๊ฐ์ฒด ํ์
E1, E2์ ๊ด๊ณ ํ์
R์ ๋ชจ๋ ๋
๋ฆฝ๋ ๋ฆด๋ ์ด์
์ผ๋ก ํํ
- E1(KA1, A1) R(KA1, KA2) E2(KA2, A4)
- 1 ์ค๋ฅธ์ชฝ ๊ฐ์ฒด ํ์
E2๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ด๊ณ R ํํ
- 3๋จ๊ณ ์ด์ง 1:1 ๊ด๊ณ ํ์
- ๋ชจ๋ ํํ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ ๊ฐ๋ฅ
- ๊ฐ์ฒด๊ฐ ๊ฐ์ง ์ ๋ณด ์ ํ์ ๋ฐ๋ผ ํ๋จ
- @์ฌ์ - ์ฌ์ฉ - ์ปดํจํฐ
- 4๋จ๊ณ ์ด์ง 1:N ๊ด๊ณ ํ์
- N์ ์์น์ ๋ฐ๋ผ 1, 2 ์ ํ์ผ๋ก ์ฌ์๋จ
- @ํ๊ณผ - ์์ - ํ์
- 5๋จ๊ณ ์ด์ง M:N ๊ด๊ณ ํ์
- 4 ์ ํ์ผ๋ก ์ฌ์
- @ ๊ต์ - ์์ - ๊ณผ๋ชฉ
- @ ์์ ๋ฆด๋ ์ด์ ์ N:M ๊ด๊ณ๋ฅผ ํํํ๋ @๊ต์ฐจ ๋ฆด๋ ์ด์
- 6๋จ๊ณ N์ง ๊ด๊ณ ํ์
- -ER ๋ชจ๋ธ์ ์ฐจ์๊ฐ 3 ์ด์์ธ ๋ค์ง ๊ด๊ณ ํ์ ์ ๊ฒฝ์ฐ
- 4 ์ ํ์ผ๋ก ์ฌ์
- @ ์๊ฐ - ํ์ N, ๊ฐ์ข M, ๊ฐ์์ค 1
- @ ์ฐจ์๊ฐ 3 ์ด์์ธ ๊ด๊ณ ํ์ ์ ๊ต์ฐจ ๋ฆด๋ ์ด์ ์ผ๋ก ํํ
- @ ์์ฑ๋๋ ๋ฆด๋ ์ด์ R์ ํค๋ ๊ฐ ๊ฐ์ฒด ํ์ ์ ๊ธฐ๋ณธํค๋ฅผ ๋ชจ์ ๋ณตํฉํค๋ฅผ ์ฌ์ฉ
- ํํ ๋ฐฉ๋ฒ (4๊ฐ์ง)
- 7๋จ๊ณ - ์์ฑ
- 7๋จ๊ณ ๋ค์ค๊ฐ ์์ฑ
- ์์ฑ์ ๊ฐ์๋ฅผ ์ ์ ์์ผ๋ฉด 1 ์ ํ,
- R(KA, B) RC(KA, C)
- ์์ฑ์ ๊ฐ์๊ฐ ์ ํ์ ์ผ๋ก ์ ํด์ง๋ฉด 2 ์ ํ
- R(KA, B, C1, C2, C3)
- @ ํ์ { ํ๋ฒ, ์ด๋ฆ, ์ทจ๋ฏธ }
- @ ํ์(ํ๋ฒ, ์ด๋ฆ) ์ทจ๋ฏธ(ํ๋ฒ, ์ทจ๋ฏธ์ด๋ฆ)
- @ ํ ํ์์ด ๊ฒ์, ๋ฑ์ฐ, ์คํค, ๋ ธ๋๋ถ๋ฅด๊ธฐ ๋ฑ ์ฌ๋ฌ ์ทจ๋ฏธ๊ฐ ์์ ์ ์์ผ๋ฏ๋ก ๋ ๋ฆฝ์ ์ธ ๋ฆด๋ ์ด์ ์ ๋ง๋ค์ด ์ ์ฅ
- ์์ฑ์ ๊ฐ์๋ฅผ ์ ์ ์์ผ๋ฉด 1 ์ ํ,
- 7๋จ๊ณ ๋ค์ค๊ฐ ์์ฑ
๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ
- @ SET A = { a, b, c }
- @ BAG A = { a, b, b, b, c }
- ๋ฆด๋ ์ด์ , ๋ ๊ฐ์ ์งํฉ์ ๋์๋๋ ๊ฒ์ ๋ฝ์ ๋์ ๊ฒ
- MariaDB ์คํ์์ค DB
- ์ค๊ณฝ ์์ฒด๊ฐ MySQL๋ ๊ฑฐ์ ๊ฐ์
DB ์ฐ๊ฒฐํ ๋ ์ธ์คํด์ค ์์ฒด ๋ํ๋์๋ฅผ MySQL๋ก ์ก๊ณ MariaDB์ ์ ์์ ํ ๋ผ๊ณ ํด๋ ์ ์์ด ๋๊ฑฐ๋ ์
๋ง์ Form์ด ๋ณต์ฌ๋ ์ํ๊ธฐ ๋๋ฌธ์, ์ด์ MySQL ์ฐ๋ ๊ฒ๊ณผ ํฌ๊ฒ ๋ค๋ฅธ ๊ฒ ์๋ค
- MySQL Workbench(GUI) ์ ๊ณตํ๋๋ฐ
MariaDB๋ ๊ทธ๊ฒ ์์ด์ HeidiSQL์ ๋ฐ๋ก ์ค์น
- DB์์ ๊ธฐ๋ณธ์ ์ธ ์คํค๋ง๋ฅผ ์ง๋๊ณ , ๊ทธ๊ฑธ ๊ฐ์ ธ๋ค๊ฐ ์ฐ๊ฑฐ๋ ์