[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ] ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ
- -
2022๋ ๋ 1ํ์ฐจ ํ๊ธฐ์ํ ์ค๋นํ๋ฉด์ ๋ ธํธ ์ ๋ฆฌ ํ๋ ๋ด์ฉ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ์ ๋ฆฌํด ๋จ๋ ๋ด์ฉ๋ค์ด ์ผ๋ถ ์ฌ๋ผ์ง ๊ฒ๋ง ๊ฐ์ ๊ธฐ๋ถ์ด๊ธด ํ๋ฐ... ์๋ ์๋ฃ๋ผ๋ ์ฌ๋ ค๋๊ฒ ์ต๋๋ค. ๐คฃ๐คฃ ์ํ์ ๋ณด์ค ๋ถ๋ค๊ป ์์ ๋์์ด ๋์์ผ๋ฉด ํ๋ ๋ง์์ ๋๋ค.
ํด๋น ๋ด์ฉ์ 2022๋ ๋ ์์ ๋น ์ถํ์ฌ์ ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ ์ฑ ์ ๋ด์ฉ์ด ์กฐ๊ธ ํฌํจ๋์ด ์์ต๋๋ค.
๊ฐ๊ธ์ ์ฑ ์ ๊ตฌ๋งคํ์ ์ผ ํ๊ณ ์ถํ์ฌ๋ ์์ ๋น ๋๋ ์๋๊ณต์ผ๋ก ๊ณต๋ถํ์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค.
#1. ๊ฐ๋ ๋ฐ ์ฉ์ด ์ ๋ฆฌ
- ๊ฐ๋
๋ฐ ์ฉ์ด ์ ๋ฆฌ
- ํธ๋ฆฌ๊ฑฐ(Trigger)
- ๊ฐ๋ : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์์ ์ฝ์ , ๊ฐฑ์ , ์ญ์ ๋ฑ์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๋ง๋ค ๊ด๋ จ ์์ ์ด ์๋์ผ๋ก ์ํ๋๋ ์ ์ฐจํ SQL
- ๊ตฌ์ฑ
- ์ ์ธ๋ถ(DECLARE)
- ์ด๋ฒคํธ๋ถ(EVENT)
- ์์/์ข ๋ฃ๋ถ(BEGIN/END)
- ์ ์ด๋ถ(CONTROL)
- SQL
- ์์ธ๋ถ(EXCEPTION)
- ์๋ ํจ์(Window Function)
- ๊ฐ๋ : ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ ์จ๋ผ์ธ ๋ถ์ ์ฒ๋ฆฌ ์ฉ๋๋ก ์ฌ์ฉํ๊ธฐ ์ํด์ SQL์ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ผ๋ก OLAP(On-Line Analytical Processing; ์์ฌ๊ฒฐ์ ์ง์์์คํ ) ํจ์๋ผ๊ณ ๋ ํจ
- ๋ถ๋ฅ
- ์ง๊ณ ํจ์: COUNT, SUM, AVG, MAX, MIN, STDDEV(ํ์คํธ์ฐจ), VARIAN(๋ถ์ฐ)
- ์์ ํจ์: RANK, DENSE_RANK(๋์ผ ์์ ๋ ์ฝ๋ ์กด์ฌ ์์๋ ํ์์๋ฅผ ๋์ด๊ฐ์ง ์์), ROW_NUMBER(๋ฌด๊ดํ๊ฒ ์ฐ์ ๋ฒํธ๋ฅผ ๋ถ์ฌ)
- ํ ์์ ํจ์: FIRST_VALUE(=MIN), LAST_VALUE(=MAX), LAG(์ด์ ๋ก์ฐ์ ๊ฐ), LEAD(์ดํ ๋ก์ฐ์ ๊ฐ)
- ๊ทธ๋ฃน ๋ด ๋น์จ ํจ์: RATIO_TO_REPORT, PERCENT_RANK
- ์๋ ํจ์ ํ์ฉ
- OLAP(On-Line Analytical) ๊ฐ๋ : ์ฌ์ฉ์๊ฐ ๋์ผํ ๋ฐ์ดํฐ, ๋ค์ฐจ์ ๋ฐ์ดํฐ ๋ถ์์ ํ ์ ์๋๋ก ๋์์ฃผ๋ ์์ฌ๊ฒฐ์ ์ง์ ์์คํ
- OLAP ์ฐ์ฐ: Roll-Up, Drill-down, slicing, dicing, Pivoting
- ๋ฐ์ดํฐ ์ ์์ด(DDL; Data Definition Language)
- ๋์
- ๋๋ฉ์ธ(Domain): ํ๋์ ์์ฑ์ด ๊ฐ์ง ์ ์๋ ์์๊ฐ๋ค์ ์งํฉ
- ์คํค๋ง(Schema):
- ์ธ๋ถ ์คํค๋ง(External Schema): ์ฌ์ฉ์๋ ๊ฐ๋ฐ์์ ๊ด์ ์์ ํ์๋ก ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ
- ๊ฐ๋ ์คํค๋ง(Conceptual Schema): ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฒด์ ์ธ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ
- ๋ด๋ถ ์คํค๋ง(Internal Schema): ๋ฌผ๋ฆฌ์ ์ ์ฅ์ฅ์น์ ๊ด์ ์์ ๋ณด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ
- ํ ์ด๋ธ(Table): ๋ฐ์ดํฐ ์ ์ฅ ๊ณต๊ฐ
- ๋ทฐ(view): ํ๋ ์ด์์ ๋ฌผ๋ฆฌ ํ ์ด๋ธ์์ ์ ๋๋๋ ๊ฐ์์ ํ ์ด๋ธ
- ์ธ๋ฑ์ค(Index): ๊ฒ์์ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ
- ๋ช ๋ น์ด: CREATE, ALTER, DROP, TRUNCATE
- ๋์
- ํธ๋์ญ์
(Transaction)
- ๊ฐ๋ : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์์ ํ๋์ ๋ ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ ์์ ์ผ๋ก ์ํํ๊ธฐ ์ํ ์์ ์ ๊ธฐ๋ณธ ๋จ์
- ํน์ง
- ์์์ฑ(Atomicity): All or Nothing; Commit / Rollback ํ๋ณต์ฑ ๋ณด์ฅ
- ์ผ๊ด์ฑ(Consistency): ํธ๋์ญ์ ์ด ์คํ ์ฑ๊ณต ํ ํญ์ ์ผ๊ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ๋ฅผ ๋ณด์กดํด์ผ ํจ; ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด, ๋์์ฑ ์ ์ด
- ๊ฒฉ๋ฆฌ์ฑ(Isolation): ํธ๋์ญ์ ์คํ ์ค ์์ฑํ๋ ์ฐ์ฐ์ ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ ํธ๋์ญ์ ์ด ์ ๊ทผ ๋ถ๊ฐ; Read Uncommit, Read Commit, Repeatable Read, Serializable
- ์์์ฑ(Durability): ์ฑ๊ณต์ด ์๋ฃ๋ ํธ๋์ญ์ ์ ๊ฒฐ๊ณผ๋ ์์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ; ํ๋ณต ๊ธฐ๋ฒ
- ๋ณํ ์ ์ด
- ๋กํน(Locking)
- ๊ฐ์ ์์์ ์์ธ์คํ๋ ๋ค์ค ํธ๋์ญ์ ํ๊ฒฝ์์ DB์ ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๊ธฐ ์ํด ํธ๋์ญ์ ์ ์์ฐจ์ ์งํ์ ๋ณด์ฅํ๋ ์ง๋ ฌํ ๊ธฐ๋ฒ
- ๋๊ด์ ๊ฒ์ฆ: ํธ๋์ญ์ ์ด ์ด๋ ํ ๊ฒ์ฆ๋ ์ํํ์ง ์๊ณ ์ผ๋จ ํธ๋์ญ์ ์ ์ํํ๊ณ , ํธ๋์ญ์ ์ข ๋ฃ ์ ๊ฒ์ฆ์ ์ํํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ํ๋ ๊ธฐ๋ฒ
- ํ์ ์คํฌํ ์์(Time Stamp Ordering): ํธ๋์ญ์
๊ณผ ํธ๋์ญ์
์ด ์ฝ๊ฑฐ๋ ๊ฐฑ์ ํ ๋ฐ์ดํฐ์ ๋ํด ํธ๋์ญ์
์ด ์คํ์ ์์ํ๊ธฐ ์ ์ ํ์ ์คํฌํ(Time Stamp)๋ฅผ ๋ถ์ฌํ์ฌ ๋ถ์ฌ๋ ์๊ฐ์ ๋ฐ๋ผ ํธ๋์ญ์
์์
์ ์ํํ๋ ๊ธฐ๋ฒ
- ๋กํน์ ํน์ง: ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ์ผ, ๋ ์ฝ๋ ๋ฑ์ ๋กํน ๋จ์๊ฐ ๋ ์ ์์ / ๋กํน ๋จ์๊ฐ ์์์ง๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณต์ ๋๊ฐ ์ฆ๊ฐ / ๋กํน ๋จ์๊ฐ ์์์ง๋ฉด ๋กํน ์ค๋ฒํค๋๊ฐ ์ฆ๊ฐ / ํ๊บผ๋ฒ์ ๋กํนํ ์ ์๋ ๊ฐ์ฒด์ ํฌ๊ธฐ๋ฅผ ๋กํน ๋จ์๋ผ๊ณ ํจ
- ๋ค์ค๋ฒ์ ๋์์ฑ ์ ์ด(MVCC; Multi Version Concurrency Control): ํธ๋์ญ์ ์ ํ์์คํฌํ์ ์ ๊ทผํ๋ ค๋ ๋ฐ์ดํฐ์ ํ์์คํฌํ๋ฅผ ๋น๊ตํ์ฌ ์ง๋ ฌ๊ฐ๋ฅ์ฑ์ด ๋ณด์ฅ๋๋ ์ ์ ํ ๋ฒ์ ์ ์ ํํ์ฌ ์ ๊ทผํ๋๋ก ํ๋ ๊ธฐ๋ฒ
- ๋กํน(Locking)
- ํ
์ด๋ธ ๊ด๋ จ ์ฉ์ด
- ํํ(Tuple) / ํ(Row): ๋ ์ฝ๋(Record)๋ผ๊ณ ๋ ํจ
- ์์ฑ(Attribute) / ์ด(Column)
- ์๋ณ์(Identifier): ์ฌ๋ฌ ๊ฐ์ ์งํฉ์ฒด๋ฅผ ๋ด๊ณ ์๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ฐ๊ฐ์ ๊ตฌ๋ถํ ์ ์๋ ๋ ผ๋ฆฌ์ ์ธ ๊ฐ๋
- ์นด๋๋๋ฆฌํฐ(Cardinality): ํํ์ ๊ฐ์๋ฅผ ์นด๋๋๋ฆฌํฐ(Cardinality) ๋๋ ๊ธฐ์๋ผ๊ณ ํจ
- ์ฐจ์(Degree): ์ ํธ๋ฆฌ๋ทฐํธ์ ์๋ฅผ ๋๊ทธ๋ฆฌ(Degree) ๋๋ ์ฐจ์๋ผ๊ณ ํจ
- ๋๋ฉ์ธ(Domain): ํ๋์ ์ ํธ๋ฆฌ๋ทฐํธ๊ฐ ์ทจํ ์ ์๋ ๊ฐ์ ํ์ ์ ์์ ๊ฐ๋ค์ ์งํฉ
- ๋ฐ์ดํฐ ์ฌ์ (Data Dictionary)
- ๊ฐ๋ : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ ํ ์ด๋ธ, ๋ทฐ, ์ธ๋ฑ์ค, ์ ๊ทผ ๊ถํ ๋ฑ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค; ๋ฉํ๋ฐ์ดํฐ(Metadata)
- ์งํฉ ์ฐ์ฐ์(Set Operator)
- ์ ํ
- UNION: ์ค๋ณต ํ์ด ์ ๊ฑฐ๋ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์งํฉ
- UNION ALL: ์ค๋ณต ํ์ด ์ ๊ฑฐ๋์ง ์์ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์งํฉ
- INTERSECT: ๋ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์ ๊ณตํต์ ์ผ๋ก ์กด์ฌํ๋ ์งํฉ (๊ต์งํฉ)
- MINUS: ์ฒซ ์ฟผ๋ฆฌ์ ์๊ณ ๋ ๋ฒ์งธ ์ฟผ๋ฆฌ์๋ ์๋ ์งํฉ (์ฐจ์งํฉ)
- ์ ํ
- ์กฐ์ธ(Join)
- ๋ ผ๋ฆฌ์ ์กฐ์ธ: ๋ด๋ถ ์กฐ์ธ, ์ธ๋ถ ์กฐ์ธ
- ๋ฌผ๋ฆฌ์ ์กฐ์ธ: ์ค์ฒฉ ๋ฐ๋ณต ์กฐ์ธ, ์ ๋ ฌ ํฉ๋ณ ์กฐ์ธ, ํด์ ์กฐ์ธ
- ๊ด๊ณ ๋์
- ์ผ๋ฐ ์งํฉ ์ฐ์ฐ์: ํฉ์งํฉ, ๊ต์งํฉ, ์ฐจ์งํฉ, ์นดํฐ์ ํ๋ก๋ํธ
- ์์ ๊ด๊ณ ์ฐ์ฐ์: ์ ๋ ํธ, ํ๋ก์ ํธ, ์กฐ์ธ, ๋๋น์
- ๊ด๊ณ ๋์์ ๊ด๊ณ ํด์ ๋น๊ต
- ํน์ง: ๊ด๊ณ ๋์๋ ์ ์ฐจ์ ์ธ์ด(์์ ๋ช ์) / ๊ด๊ณ ํด์์ ๋น ์ ์ฐจ์ ์ธ์ด(๊ณ์ฐ ์์์ ์ ์ฐ์ ์ฌ์ฉ), ํ๋ ๋ํท ํด์(Predicate Calculus) ๊ธฐ๋ฐ
- ๋ชฉ์ : ๊ด๊ณ ๋์๋ ์ด๋ป๊ฒ ์ ๋ํ๋๊ฐ?(How) / ๊ด๊ณ ํด์์ ๋ฌด์์ ์ป์ ๊ฒ์ธ๊ฐ?(What)
- ์ข ๋ฅ: ๊ด๊ณ ๋์๋ ์์๊ด๊ณ ์ฐ์ฐ์, ์ผ๋ฐ์งํฉ ์ฐ์ฐ์ / ๊ด๊ณ ํด์์ ํํ ๊ด๊ณ ํด์, ๋๋ฉ์ธ ๊ด๊ณ ํด์
- ๋ฐ์ดํฐ ๋ชจ๋ธ(Data Model)
- ๊ฐ๋ : ํ์ค ์ธ๊ณ์ ์ ๋ณด๋ฅผ ์ธ๊ฐ๊ณผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋๋ก ์ถ์ํํ์ฌ ํํํ ๋ชจ๋ธ
- ์์: ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ, ์ฐ์ฐ, ์ ์ฝ์กฐ๊ฑด
- ์ ์ฐจ
- ๊ฐ๋ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ: ๊ฐ์ฒด๊ด๊ณ ๋ค์ด์ด๊ทธ๋จ
- ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ: ์ ๊ทํ, ํธ๋์ญ์ ์ ๋ํ ์ธํฐํ์ด์ค ์ ์
- ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ: ๋ฐ ์ ๊ทํ, ์ค์ ํธ๋์ญ์ ์ ๋ํ ๋ชจ๋ธ๋ง ์ํ
- ๊ฐ์ฒด-๊ด๊ณ(E-R) ๋ชจ๋ธ ๊ตฌ์ฑ์์: ๊ฐ์ฒด(Entity), ์์ฑ(Attribute), ๊ด๊ณ(Relationship)
- ๊ฐ์ฒด-๊ด๊ณ(E-R) ๋ค์ด์ด๊ทธ๋จ ๊ธฐํธ: ๊ฐ์ฒด(์ฌ๊ฐํ), ๊ด๊ณ(๋ง๋ฆ๋ชจ), ์์ฑ(ํ์), ๋ค์ค ๊ฐ ์์ฑ(์ด์คํ์), ๊ด๊ณ-์์ฑ ์ฐ๊ฒฐ(์ )
- ์ด์ ํ์(Anomaly)
- ๊ฐ๋ : ๋ฆด๋ ์ด์ ์กฐ์ ์ ๋ฐ์ดํฐ๋ค์ด ๋ถํ์ํ๊ฒ ์ค๋ณต๋์ด ์๊ธฐ์น ์๊ฒ ๋ฐ์ํ๋ ๊ณค๋ํ ํ์
- ์ข ๋ฅ: ์ฝ์ , ์ญ์ , ๊ฐฑ์ ์ด์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทํ ๋จ๊ณ
- 1์ ๊ทํ(1NF): ์์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ
- 2์ ๊ทํ(2NF): ๋ถ๋ถ ํจ์ ์ข ์ ์ ๊ฑฐ(์์ ํจ์์ ์ข ์ ๊ด๊ณ)
- 3์ ๊ทํ(3NF): ์ดํ ํจ์ ์ข ์ ์ ๊ฑฐ; a->b, b->c = a->c
- ๋ณด์ด์ค-์ฝ๋ ์ ๊ทํ(BCNF): ๊ฒฐ์ ์๊ฐ ํ๋ณด ํค๊ฐ ์๋ ํจ์ ์ข ์ ์ ๊ฑฐ
- 4์ ๊ทํ(4NF): ๋ค์น(๋ค์ค ๊ฐ) ์ข ์์ฑ ์ ๊ฑฐ
- 5์ ๊ทํ(5NF): ์กฐ์ธ ์ข ์์ฑ ์ ๊ฑฐ
- ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Distributed Database)
- ๊ฐ๋ : ๋คํธ์ํฌ์์์ ์ฌ๋ฌ ์ปดํจํฐ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋์ด ์์ง๋ง, ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฒ๋ผ ์ธ์ํ๋๋ก ๋ ผ๋ฆฌ์ ์ผ๋ก ํตํฉ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ํน์ง
- ์ฅ์ : ๋ถ์ฐ์ ์ด ์ฉ์ด, ์ง์ญ ์์น์ฑ ๋์, ํจ์ฉ์ฑ๊ณผ ์ตํต์ฑ ๋์, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณต์ ๋ฐ ๋ถ์ฐ์ ํตํด ์ฌ์ฉ์ ์ธก๋ฉด์์๋ ํฅ์๋ ์ฑ๋ฅ ์ ๊ณต, ์ฅ์ ๋ก ์ธํ ๋ฐ์ดํฐ ์ ์ค ๋ณต๊ตฌ์๋ ํจ๊ณผ์ , ์์คํ ํ์ฅ ์ฉ์ด
- ๋จ์ : ๋ณต์ก์ฑ ์ฆ๊ฐ, ์ฑ๋ฅ ์ ํ, ๊ฐ๋ฐ ๋น์ฉ ์ฆ๊ฐ
- ํฌ๋ช
์ฑ
- ์์น ํฌ๋ช ์ฑ(Location Transparency)
- ๋ณต์ ํฌ๋ช ์ฑ(Replication Transparency)
- ๋ณํ ํฌ๋ช ์ฑ(Concurrency Transparency)
- ๋ถํ ํฌ๋ช ์ฑ(Fragmentation Transparency)
- ์ฅ์ ํฌ๋ช ์ฑ(Failure Transparency)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด์คํ(Database Replication)
- ์ด์คํ ํํ: ์กํฐ๋ธ-์กํฐ๋ธ(Active-Active), ์กํฐ๋ธ-์คํ ๋ฐ์ด(Active-Standby)
- ํํฐ์
๋(Partitioning)
- ๊ฐ๋ : ๋์ฉ๋์ ํ ์ด๋ธ์ ํํฐ์ ์ด๋ผ๋ ๋ณด๋ค ์์ ๋ ผ๋ฆฌ์ ์ธ ๋จ์๋ก ๋๋์ผ๋ก์จ ์ฑ๋ฅ ์ ํ ๋ฐฉ์ง ๋ฐ ๊ด๋ฆฌ๋ฅผ ์๋์ ์ผ๋ก ๋ณด๋ค ์ฉ์ดํ๊ฒ ํ๊ณ ์ ํ๋ ๊ธฐ๋ฒ
- ํน์ง: ๋ฌผ๋ฆฌ์ ํํฐ์ ๋์ผ๋ก ์ธํด ์ ์ฒด ๋ฐ์ดํฐ ํผ์ ๊ฐ๋ฅ์ฑ์ด ์ค์ด๋ค๊ณ ๋ฐ์ดํฐ ๊ฐ์ฉ์ฑ ํฅ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ ๋จ์๋ก ๊ด๋ฆฌํ์ฌ ํธ๋ฆฌ, ๋ถํ๋ฅผ ๊ฐ๊ฐ ํํฐ์ ๋ค๋ก ๋ถ์ฐ์์ผ ์ฑ๋ฅ ํฅ์
- ์ ํ
- ๋ ์ธ์ง ํํฐ์ ๋: ๋ถํ ํค ๊ฐ์ด ๋ฒ์ ๋ด์ ์๋์ง ์ฌ๋ถ๋ก ๊ตฌ๋ถํ๋ ํํฐ์ ๋ ๊ธฐ๋ฒ (1์, 2์, 3์ ๋ฑ)
- ํด์ ํํฐ์ ๋: ํด์ ํจ์์ ๊ฐ์ ๋ฐ๋ผ ํํฐ์ ์ ํฌํจํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ํํฐ์ ๋ ๊ธฐ๋ฒ (ํด์ #1, #2, #3 ๋ฑ)
- ๋ฆฌ์คํธ ํํฐ์ ๋: ๊ฐ ๋ชฉ๋ก์ ํํฐ์ ์ ํ ๋นํ๊ณ ๋ถํ ํค ๊ฐ์ ๊ทธ ๋ชฉ๋ก์ ๋น์ถ์ด ํํฐ์ ์ ์ ํํ๋ ๊ธฐ๋ฒ
- ์ปดํฌ์งํธ ํํฐ์ ๋: ๋ ์ธ์ง, ํด์, ๋ฆฌ์คํธ ํํฐ์ ๋ ์ค 2๊ฐ ์ด์์ ํํฐ์ ๋์ ๊ฒฐํฉํ๋ ํํฐ์ ๊ธฐ๋ฒ
- ๋ฐ์ดํฐ ์ง์ญํ(Data Locality)
- ๊ฐ๋ : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ด์ฉํ ์ ์๋๋ก ์ ์ฅํ๋ ๊ธฐ๋ฒ
- ์ข
๋ฅ
- ์๊ฐ์ (Temporal) ์ง์ญํ: ์ต๊ทผ์ ์ฐธ์กฐ๋ ๊ธฐ์ต์ฅ์๊ฐ ๊ฐ๊น์ด ์ฅ๋์ ๊ณ์ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ ํน์ฑ; for๋ while ๊ฐ์ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๋ ์กฐ๊ฑด ๋ณ์
- ๊ณต๊ฐ์ (Spacial) ์ง์ญํ: ์ต๊ทผ์ ์ฐธ์กฐ๋ ๊ธฐ์ต์ฅ์์ ๊ฐ๊น์ด ๊ธฐ์ต์ ๋ณด๊ฐ ๊ณ์ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ ํน์ฑ; A[0], A[1]๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ๋ฐฐ์ด์ ์ฐ์ ์ ๊ทผ
- ์์ฐจ์ (Sequential) ์ง์ญํ: ๋ณ๋์ ๋ถ๊ธฐ๊ฐ ์๋ ํ ๋ฐ์ดํฐ๊ฐ ๊ธฐ์ต์ฅ์น์ ์ ์ฅ๋ ์์๋๋ก ์์ฐจ์ ์ผ๋ก ์ธ์ถ๋๊ณ ์คํ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ ํน์ฑ; 1:1, 1:N, N:M
- ๋ธ๋ก์ ๋ค์ด๊ฐ๋ ๋ ์ฝ๋ ์ ๊ณ์ฐ
- (๋ธ๋ก์ ๋น ๊ณต๊ฐ) = BLOCK_SIZE - (๋ธ๋ก ํค๋ ์ฌ์ด์ฆ) - (์๋น์์ญ ์ฌ์ด์ฆ)
- (๋ธ๋ก ํค๋ ์ฌ์ด์ฆ) = 90 + INITRANS
- (์๋น์์ญ ์ฌ์ด์ฆ) = BLOCK_SIZE - (๋ธ๋ก ํค๋ ์ฌ์ด์ฆ) X PCT_FREE
- (๋ธ๋ก์ ๋ค์ด๊ฐ๋ ๋ ์ฝ๋ ์) = (์๋น์์ญ ์ฌ์ด์ฆ)/(๋ ์ฝ๋์ ํ๊ท ๊ธธ์ด)
- BLOCK_SIZE(๋ธ๋ก ์ฌ์ด์ฆ): ๊ธฐ๋ณธ์ ์ผ๋ก 8KB์ธ 8,192๋ฐ์ดํธ
- INITRANS(ํธ๋์ญ์ ์์ฝ ๊ณต๊ฐ): ํธ๋์ญ์ ์ ๋์ ์ ๊ทผ์ ์ํด ๋ฏธ๋ฆฌ ํ ๋น๋ ์์ฝ ๊ณต๊ฐ
- PCT_FREE(์๋น์์ญ ๋น์จ): ๊ธฐ๋ณธ 10%, ํ ์ด๋ธ์ ๋ฐ์ดํฐ ํฌ๊ธฐ๊ฐ ๋ณํ ๋ ์ฌ์ ๊ณต๊ฐ์ผ๋ก ํ์ฉํ๋ ๋น์จ
- ETL(Extraction, Transformation, Loading)
- ๊ฐ๋ : ์์ฒ ์์คํ ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถ(Extraction)ํ์ฌ ๋ณํ(Transformation) ์์ ์ ๊ฑฐ์ณ ๋ชฉ์ ์์คํ ์ผ๋ก ์ ์ฌ(Load)ํ๋ ํ๋ก์ธ์ค. ์์ฒ ์์คํ (Source System)์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ณ ๋ณํํ๋ ์์ ์ ๊ฑฐ์ณ์ ๋ชฉ์ ์์คํ (Target System)์ผ๋ก ์ ์ก ๋ฐ ๋ก๋ฉ
- ํธ๋ฆฌ๊ฑฐ(Trigger)
#2. ๋ฌธ์ ํ์ด ๋ฐ ๋ต์์์ฑ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๊ทธ(log)๋ฅผ ํ์๋ก ํ๋ ํ๋ณต ๊ธฐ๋ฒ์? ์ง์ฐ ๊ฐฑ์ ํ๋ณต ๊ธฐ๋ฒ, ์ฆ๊ฐ ๊ฐฑ์ ํ๋ณต ๊ธฐ๋ฒ
- ๋ฐ์ดํฐ ์ค๋ณต์ผ๋ก ์ธํ์ฌ ๊ด๊ณ์ฐ์ฐ์ ์ฒ๋ฆฌํ ๋ ์๊ธฐ์น ๋ชปํ ๊ณค๋ํ ํ์์ด ๋ฐ์ํ๋ ๊ฒ์?
- ์ด์(Anomaly)
- ์ ํ(Restriction), ์ข ์์ฑ(Dependency), ๋ณํ(Translation)์ ์๋ฏธ๋ ์ ๋ฆฌ ํ์
- ๊ธฐ๋ณธํค - ๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด
- ์นดํฐ์
ํ๋ก๋ํธ(cartesian product) ์ํ ๋ฐฉ๋ฒ ์ ๋ฆฌ ํ์
- R1์ ๋ฐ์ดํฐ ๊ฐ์๋งํผ R2์ ๊ฐ์ด ์ฐ๊ฒฐ
- ์ ๊ทํ์ ๋ํ ์ค๋ช ์ ์ ํ์
- ์ N์ ๊ทํ ๊ฐ๊ฐ ์ ๋ฆฌ ํ์
- ๋ฌผ๋ฆฌ์ /๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ๋ํ ์ค๋ช ์ ๋ฆฌ ํ์
- SQL ๋ ผ๋ฆฌ ์ฐ์ฐ์ ๋ฑ ์ ๋ฆฌ ํ์
- SQL ๊ตฌ๋ฌธ ๋ฌธ์ ์ถ์
- DDL / DML / DCL ๋ด์ฉ ์ ๋ฆฌ ํ์
- ๋์์ฑ ์ ์ด๋ฅผ ์ํ ์ง๋ ฌํ ๊ธฐ๋ฒ์ผ๋ก ํธ๋์ญ์
๊ฐ์ ์ฒ๋ฆฌ ์์๋ฅผ ๋ฏธ๋ฆฌ ์ ํ๋ ๋ฐฉ๋ฒ?
- ํ์์คํฌํ ๊ธฐ๋ฒ
- ๋กํน ๊ธฐ๋ฒ, ๊ฒ์ฆ ๊ธฐ๋ฒ, ๋ฐฐํ ๋กํฌ ๊ธฐ๋ฒ์ ๋ํ ์ ๋ฆฌ๋ ํ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ๋์ ๋
ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์์
์ ๋จ์ ๋๋ ํ๊บผ๋ฒ์ ๋ชจ๋ ์ํ๋์ด์ผ ํ ์ผ๋ จ์ ์ฐ์ฐ๋ค์ ์๋ฏธํ๋ ๊ฒ์?
- ํธ๋์ญ์
- ๋ทฐ, ํํ, ์นด๋๋๋ฆฌํฐ์ ๋ํ ์ ๋ฆฌ๋ ํ์
- ๋กํน ๋จ์(Locking Granularity)์ ๋ํ ์ค๋ช ์ ๋ฆฌ ํ์
- ํค(Key) ์ข ๋ฅ์ ๊ทธ ๊ธฐ๋ฅ์ ๋ํ ์ ๋ฆฌ ํ์
- ํธ๋์ญ์
์ ์ฃผ์ ํน์ฑ ์ฃผ ํ๋๋ก ๋ ์ด์์ ํธ๋์ญ์
์ด ๋์์ ๋ณํ ์คํ๋ ๊ฒฝ์ฐ ์ด๋ ํ๋์ ํธ๋์ญ์
์คํ ์ค์ ๋ค๋ฅธ ํธ๋์ญ์
์ ์ฐ์ฐ์ด ๋ผ์ด๋ค ์ ์์์ ์๋ฏธํ๋ ๊ฒ?
- Isolation
- Log, Consistency, Durability์ ๋ํ ์ ๋ฆฌ๋ ํ์
- ์ธ๋ฑ์ค์ ์ ์ ๋ฐ ๊ด๋ จ๋ ์ค๋ช ์ ๋ฆฌ ํ์
- ์ด๋ค ๋ฆด๋ ์ด์
R์์ X์ Y๋ฅผ ๊ฐ๊ฐ R์ ์ ํธ๋ฆฌ๋ทฐํธ ์งํฉ์ ๋ถ๋ถ ์งํฉ์ด๋ผ๊ณ ํ ๊ฒฝ์ฐ ์ ํธ๋ฆฌ๋ทฐํธ X์ ๊ฐ ๊ฐ๊ฐ์ ๋ํด ์๊ฐ์ ๊ด๊ณ์์ด ํญ์ ์ ํธ๋ฆฌ๋ทฐํธ Y์ ๊ฐ์ด ์ค์ง ํ๋๋ง ์ฐ๊ด๋์ด ์์ ๋ Y๋ X์ ํจ์ ์ข
์์ด๋ผ๊ณ ํ๋ค. ์ด ํจ์ ์ข
์์ ํ๊ธฐ๋ก ์ณ์ ๊ฒ์?
- X → Y
- ๊ด๊ณ ๋์์ ๋ํ ์ค๋ช ์ ๋ฆฌ ํ์
- ๊ด๊ณ ๋์ ์ฐ์ฐ์ด ์๋ ๊ฒ์?
- ํฌํฌ(Fork)
- ๋๋น์ (Division), ํ๋ก์ ํธ(Project), ์กฐ์ธ(Join)์ ๋ํ ์ ๋ฆฌ๋ ํ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฌด๊ฒฐ์ฑ ๊ท์ ๊ณผ ๊ด๋ จ๋ ์ค๋ช ์ ๋ฆฌ ํ์
๋ง์น๋ฉฐ..
์๋๋ ์ ๋ง ๋ณด๋ ค๊ณ ๋ ธํธ ์ ๋ฆฌํ๋ ๋ด์ฉ์ด๋ผ์ ํ์ ํ ์ ์ด ๋ง๊ธฐ๋ ํ ๊ฑฐ๊ณ ์คํ๋ ์์ ์ ์์ต๋๋ค. ์ฐธ๊ณ ์ฉ์ผ๋ก๋ง ๋ด์ฃผ์ธ์ ๐
๋ง์ด ๋ถ์กฑํ ๋ด์ฉ์ด์ จ๊ฒ ์ง๋ง ๋์์ด ๋์ จ๋ค๋ฉด ๋๊ธ ํ ๋ฒ์ฉ ๋จ๊ฒจ์ฃผ์๋ฉด ๋ง์ด ๋ฟ๋ฏํ ๊ฒ ๊ฐ์ต๋๋ค. ๐๐
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ] ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ํ์ฉ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ] ์ ๋ณด์์คํ ๊ตฌ์ถ๊ด๋ฆฌ
'์๊ฒฉ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ] ์ ๋ณด์์คํ ๊ตฌ์ถ๊ด๋ฆฌ (0) | 2023.02.07 |
---|---|
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ] ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ํ์ฉ (0) | 2023.02.07 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ] ์ํํธ์จ์ด ๊ฐ๋ฐ (0) | 2023.02.07 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ] ์ํํธ์จ์ด ์ค๊ณ (2) | 2023.02.07 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ] 2022 ํ๊ธฐ ์ค๊ธฐ ๋ฆ์ ํฉ๊ฒฉ ํ๊ธฐ (0) | 2023.02.07 |
๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค. ๐