ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/DataBase

[SQL] ๋ฐ์ดํ„ฐ ์‚ฌ์ „ Data dictionary

NaNaRin๐Ÿ™ƒ 2021. 3. 15. 15:51

0. ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”

- ์‚ฌ์šฉ์ž ํ…Œ์ด๋ธ”(User Table, Normal Table)๊ณผ ๋ฐ์ดํ„ฐ ์‚ฌ์ „(Data dictionary, Base Table)์œผ๋กœ ๋‚˜๋‰จ

- ์‚ฌ์šฉ์ž ํ…Œ์ด๋ธ” : ์—ฌ๋Ÿฌ SQL ๋ฌธ์—์„œ ์‚ฌ์šฉํ•œ EMP, DEPT ๋“ฑ์˜ ํ…Œ์ด๋ธ”

- ๋ฐ์ดํ„ฐ ์‚ฌ์ „ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์šด์˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ํŠน์ˆ˜ํ•œ ํ…Œ์ด๋ธ”

 

1. ๋ฐ์ดํ„ฐ ์‚ฌ์ „ Data dictionary

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ์‹œ์ ์— ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์ง

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฉ”๋ชจ๋ฆฌ, ์„ฑ๋Šฅ, ์‚ฌ์šฉ์ž, ๊ถŒํ•œ, ๊ฐ์ฒด ๋“ฑ ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šด์˜์— ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€

- ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์‹œ ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์งˆ ์ˆ˜๋„ ์žˆ์Œ

- ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ ์‚ฌ์ „ ์ •๋ณด์— ์ง์ ‘ ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ

- ๋Œ€์‹  ๋ฐ์ดํ„ฐ ์‚ฌ์ „ ๋ทฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ SELECT๋ฌธ์œผ๋กœ ์ •๋ณด ์—ด๋žŒ์ด ๊ฐ€๋Šฅ

 

2. ๋ฐ์ดํ„ฐ ์‚ฌ์ „ ๋ทฐ

- USER_XXXX : ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์œ ํ•œ ๊ฐ์ฒด ์ •๋ณด

- ALL_XXXX : ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์œ ํ•œ ๊ฐ์ฒด ๋˜๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์œ ํ•œ ๊ฐ์ฒด ์ค‘ ์‚ฌ์šฉ ํ—ˆ๊ฐ€๋ฅผ ๋ฐ›์€ ๊ฐ์ฒด, ์ฆ‰ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฐ์ฒด ์ •๋ณด

- DBA_XXXX : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ •๋ณด (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ๊ถŒํ•œ์„ ๊ฐ€์ง„ SYSTEM, SYS ์‚ฌ์šฉ์ž๋งŒ ์—ด๋žŒ ๊ฐ€๋Šฅ)

- V$_XXXX : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ฑ๋Šฅ ๊ด€๋ จ ์ •๋ณด (X$_XXXX ํ…Œ์ด๋ธ”์˜ ๋ทฐ)

-- 1.
SELECT * FROM DICT;
SELECT * FROM DICTIONARY;

  (1) ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์‚ฌ์ „์„ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ ์กฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•

 

2-1. USER_XXXX

- USER_ ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ด๋ฆ„์˜ ๋ฐ์ดํ„ฐ ์‚ฌ์ „์—๋Š” ํ˜„์žฌ ์˜ค๋ผํด์— ์ ‘์†ํ•ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์œ ํ•œ ๊ฐ์ฒด ์ •๋ณด๊ฐ€ ์ €์žฅ๋จ

-- 1.
SELECT TABLE_NAME
  FROM USER_TABLES;

  (1) USER_TABLES : ํ˜„์žฌ ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•ด ์žˆ๋Š” ๊ณ„์ •์ด ์†Œ์œ ํ•˜๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ” ์ด๋ฆ„ ์ถœ๋ ฅ

 

2-2. ALL_XXXX

- ALL_ ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ด๋ฆ„์˜ ๋ฐ์ดํ„ฐ ์‚ฌ์ „์€ ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ ‘์†ํ•ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์œ ํ•œ ๊ฐ์ฒด ๋ฐ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์œ ํ•œ ๊ฐ์ฒด ์ค‘ ์‚ฌ์šฉ์ด ํ—ˆ๋ฝ๋˜์–ด ์žˆ๋Š” ๊ฐ์ฒด ์ •๋ณด๊ฐ€ ์ €์žฅ๋จ

-- 1.
SELECT OWNER, TABLE_NAME
  FROM ALL_TABLES;

  (1) ALL_TABLES : SCOTT ๊ณ„์ •์œผ๋กœ ์ ‘์†ํ•˜์—ฌ ALL_TABLES๋ฅผ ์กฐํšŒํ•˜๋ฉด SCOTT ๊ณ„์ •์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ด๋ธ” ์ •๋ณด๋ฅผ ์ถœ๋ ฅ

  - USER_TABLES์™€ ๋‹ฌ๋ฆฌ ALL_TABLES๋Š” OWNER๋ผ๋Š” ์นผ๋Ÿผ์ด ํ•˜๋‚˜ ๋” ์žˆ๋Š”๋ฐ ์ด ์นผ๋Ÿผ์€ ํ…Œ์ด๋ธ”์„ ์†Œ์œ ํ•œ ์‚ฌ์šฉ์ž๋ฅผ ๋ช…์‹œ 

 

2-3. DBA_XXXX

- DBA_ ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ด๋ฆ„์˜ ๋ฐ์ดํ„ฐ ์‚ฌ์ „์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž(SYSTEM, SYS)๋งŒ ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅ

- ์กฐํšŒ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ณ„์ •์œผ๋กœ ์กฐํšŒ๋ฅผ ์‹œ๋„ํ•˜๋ฉด ํ•ด๋‹น ๊ฐœ์ฒด๊ฐ€ ์กด์žฌํ•˜๋”๋ผ๋„ '์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค' ๋ผ๊ณ  ์ถœ๋ ฅ๋จ

- ์‚ฌ์šฉ ๊ถŒํ•œ์ด ์—†๋Š” ์‚ฌ์šฉ์ž๋Š” ํ•ด๋‹น ๊ฐœ์ฒด์˜ ์กด์žฌ ์—ฌ๋ถ€์กฐ์ฐจ ํ™•์ธํ•  ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธ(๋ณด์•ˆ ๋ฌธ์ œ ๋•Œ๋ฌธ)

- ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šด์˜๊ณผ ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ์ •๋ณด๋ฅผ ๋ณด๊ด€

-- 1.
SELECT * FROM DBA_TABLES;

-- 2.
SELECT * 
  FROM DBA_USERS
 WHERE USERNAME = 'SCOTT';

  (1) DBA_TABLES : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ํ…Œ์ด๋ธ”์ด ์ถœ๋ ฅ๋จ

  (2) DBA_USERS : ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ถœ๋ ฅ. WHERE ์ ˆ์— ์กฐ๊ฑด์œผ๋กœ ์ง€์ •๋œ SCOTT ์‚ฌ์šฉ์ž๋งŒ ์ถœ๋ ฅ