728x90
๋ฐ์ํ
1. ํ ์ด๋ธ์ ์์ฑ ๋ฐ ์ฉ๋ ์ ๋ฆฌํ
ํ ์ด๋ธ ์ ํ | STANDARD TABLE | SORTED TABLE | HASHED TABLE |
๊ตฌ์กฐ | ๋น์ ๋ ฌ, ์์๋๋ก ๋ฐ์ดํฐ ์ ์ฅ | ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ ์ ๋ ฌ๋ ํ ์ด๋ธ | ํค ๊ธฐ๋ฐ์ ํด์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฐ์ดํฐ ์ ์ฅ |
ํค | ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ๋ฑ์ค ํค | ์ ์ผํ ๋น๋ฐ ํค ๋๋ ๋น์ ์ผ ํค ๊ฐ๋ฅ | ์ ์ผํ ๋น๋ฐ ํค๋ง ์ฌ์ฉ ๊ฐ๋ฅ |
์ ๊ทผ ๋ฐฉ์ | ์์ฐจ์ ๊ฒ์(Linear Search) | ์ด์ง ๊ฒ์(Binary Search) | ํด์ ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ฐ ๊ฒ์(O(1)) |
์ฑ๋ฅ | ๋๋ ๋ฐ์ดํฐ์์ ๋๋ฆผ | ์ ๋ ฌ๋ ๋ฐ์ดํฐ ๊ฒ์ ์ ๋น ๋ฆ | ๊ฐ์ฅ ๋น ๋ฅธ ๊ฒ์ ์๋ ์ ๊ณต |
๋ฐ์ดํฐ ์ฝ์ | ์ฝ์ ์์๋๋ก ์ถ๊ฐ | ์ฝ์ ์ ์๋ ์ ๋ ฌ | ํด์ ์๊ณ ๋ฆฌ์ฆ์ ํตํด ์ ์ฅ |
์ค๋ณต ํ์ฉ | ์ค๋ณต ํ์ฉ ๊ฐ๋ฅ | ํค ๊ธฐ์ค์ผ๋ก ์ค๋ณต ํ์ฉ ๊ฐ๋ฅ | ์ค๋ณต ํ์ฉ ์ ๋จ |
์ฌ์ฉ ์ฌ๋ก | ์์ฐจ์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ | ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ | ๊ณ ์ ๊ฒ์, ์ค๋ณต์ด ์์ด์ผ ํ๋ ๊ฒฝ์ฐ |
ํต์ฌ ์์ฝ | ๋จ์ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์์ฐจ ์ฒ๋ฆฌ | ์ ๋ ฌ๋ ๋ฐ์ดํฐ ๋ฐ ํจ์จ์ ์ธ ๊ฒ์ | ๊ณ ์ ๊ฒ์ ๋ฐ ์ ์ผ ํค๊ฐ ํ์ํ ๋ |
2. Standard Table ์ด๋
- ํน์ง
- ์์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ฉฐ, ์ ๋ ฌ๋์ง ์์ต๋๋ค.
- ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ๋(์ธ๋ฑ์ค ์ ๊ทผ) ์ ํํ์ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
- ์ ํ ํ์: ๋ฐฐ์ด์ด๋ ๋ฆฌ์คํธ์ ์ฒ์๋ถํฐ ๋๊น์ง ํ๋์ฉ ๊ฐ์ ๋น๊ตํ๋ฉด์ ํ์ํ๋ ๋ฐฉ๋ฒ
- ํค ๊ณ ์ ์ฑ (Key Uniqueness): Standard table์ ํค๋ ์ค๋ณต๋ ์ ์์ต๋๋ค. ์ฆ, ๋ฐ์ดํฐ ์ค๋ณต์ด ํ์ฉ๋ฉ๋๋ค.
- ์๋ ์๋ฆฌ
- ๋ฐ์ดํฐ๊ฐ ์ฝ์ ๋๋ ์์๋๋ก ์ ์ฅ๋ฉ๋๋ค.
- ๊ฒ์ ์, ์์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ ๋ ์ฝ๋๋ฅผ ํ์ดํ๋ฉฐ ๋ชฉํ ๋ฐ์ดํฐ์ ๋๋ฌํฉ๋๋ค. (๊ฒ์ ์๊ฐ์ด ๋ฐ์ดํฐ ํฌ๊ธฐ์ ๋น๋ก)
- ์ฌ์ฉ ์์
- ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋์ง ์์๋ ๋๊ณ , ์์ฐจ์ ์ธ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ.
- ๋ฐ์ดํฐ ์์ด ์ ์ด ๊ฒ์ ์๋๊ฐ ํฌ๊ฒ ์ค์ํ์ง ์์ ๋.
- ์ ์ธ ๋ฐฉ๋ฒ
- ... STANDARD TABLE OF ... WITH EMPTY KEY
DATA: itab TYPE STANDARD TABLE OF mara WITH EMPTY KEY.
3. Sorted Table ์ด๋?
- ํน์ง
- Sorted table์ ๋ฐ์ดํฐ๊ฐ ์ฝ์ ๋ ๋ ์๋์ผ๋ก ์ ๋ ฌ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ์ ์ ๊ทผํ ๋ ์ด์ง ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ๊ฒ์ ์๋๋ฅผ ํฅ์์ํต๋๋ค.
- ํค ์ ๊ทผ (Key Access): Sorted table์์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ ๋๋ ํค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์ง์ ์ ์ธ ์ก์ธ์ค๊ฐ ์ด๋ฃจ์ด์ง๋๋ค. ์ด์ง ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ต๋๋ค.
- ์ค๋ณต ํค ํ์ฉ ์ฌ๋ถ๋ฅผ ์ ํ ๊ฐ๋ฅํฉ๋๋ค. (๊ธฐ๋ณธ๊ฐ: ์ค๋ณต ํ์ฉ ์๋จ)
- ์๋ ์๋ฆฌ
- ๋ฐ์ดํฐ ์ฝ์ ์, ์ง์ ๋ ํค์ ๋ฐ๋ผ ํ ์ด๋ธ์ด ์ ๋ ฌ๋ฉ๋๋ค.
- ๊ฒ์ ์, ์ด์ง ๊ฒ์์ ์ฌ์ฉํ์ฌ ๊ฒ์ ์๋๊ฐ ๋น ๋ฆ ๋๋ค. (๊ฒ์ ์๊ฐ์ O(log n))
- ์ฌ์ฉ ์์
- ํค ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋ ๋ฐ์ดํฐ๊ฐ ํ์ํ๊ฑฐ๋, ๊ฒ์ ์๋๊ฐ ์ค์ํ ๊ฒฝ์ฐ.
- ์ค๋ณต ํค๊ฐ ํ์ฉ๋๊ฑฐ๋ ๊ธ์ง๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋.
- ์ ์ธ ๋ฐฉ๋ฒ
- ... SORTED TABLE OF ... WITH UNIQUE KEY ...
DATA: itab TYPE SORTED TABLE OF mara WITH UNIQUE KEY matnr.
4. Hash Table ์ด๋?
- ํน์ง
- Hashed table์ ํด์ ํจ์์ ์ํด ์์ฑ๋ ํด์ ํค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ํ ์ด๋ธ์ ๋๋ค.
- ํด์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๊ฒ์ํฉ๋๋ค.
- Hashed table์ ํค๋ ์ค๋ณต๋ ์ ์์ต๋๋ค. ์ฆ, ๋์ผํ ํด์ ํค๋ฅผ ๊ฐ์ง ๋ ๊ฐ์ ํญ๋ชฉ์ด ํ ์ด๋ธ์ ์กด์ฌํ ์ ์์ต๋๋ค. ( Unique Key)
- ์ค๋ณต ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉฐ, ๊ฐ์ฅ ๋น ๋ฅธ ๊ฒ์ ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์๋ ์๋ฆฌ
- ๋ฐ์ดํฐ ์ฝ์ ์, ํค ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํด์ ์๊ณ ๋ฆฌ์ฆ์ด ํด์ ๊ฐ์ ์์ฑํ์ฌ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ฉ๋๋ค.
- ๊ฒ์ ์, ํด์ ๊ฐ์ ์ด์ฉํด ์ง์ ํด๋น ๋ฐ์ดํฐ ์์น๋ก ์ ๊ทผํฉ๋๋ค.
- ๊ฒ์ ์๊ฐ์ O(1), ๋ฐ์ดํฐ ํฌ๊ธฐ์ ๊ด๊ณ์์ด ์ผ์ ์๊ฐ ์์๋ฉ๋๋ค.
- ์ฌ์ฉ ์์
- ๊ณ ์ ๊ฒ์์ด ์๊ตฌ๋๋ฉฐ, ์ค๋ณต ๋ฐ์ดํฐ๊ฐ ์์ด์ผ ํ๋ ๊ฒฝ์ฐ.
- ๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๋น๋ฒํ ์กฐํ ์์ ์ด ์๋ ๊ฒฝ์ฐ.
- ์ ์ธ ๋ฐฉ๋ฒ
- ... TYPE HASH TABLE OF ... WITH UNIQUE KEY ...
DATA: itab TYPE HASHED TABLE OF mara WITH UNIQUE KEY matnr.
5. ํ ์ด๋ธ ์ ํ ์ ํ ๊ฐ์ด๋
- STANDARD TABLE
- ๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ์๋ ๊ฐ๋จํ ์์ฐจ์ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ.
- ๋ฐ์ดํฐ ๊ฒ์ ๋น๋๊ฐ ๋ฎ๊ฑฐ๋, ๋ฐ์ดํฐ ์ฝ์ ์์๊ฐ ์ค์ํ ๊ฒฝ์ฐ.
- SORTED TABLE
- ๋ฐ์ดํฐ๊ฐ ํญ์ ์ ๋ ฌ๋ ์ํ๋ก ์ ์ง๋์ด์ผ ํ๋ ๊ฒฝ์ฐ.
- ๊ฒ์ ๋ฐ ์ ๋ ฌ์ด ๋น๋ฒํ ์์ .
- ์ค๋ณต ํค๋ฅผ ํ์ฉํ๊ฑฐ๋ ์ ํํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ.
- HASHED TABLE
- ๋๋ ๋ฐ์ดํฐ์์ ๊ณ ์ ๊ฒ์์ด ํ์์ ์ผ ๋.
- ์ค๋ณต ๋ฐ์ดํฐ๊ฐ ํ์ฉ๋์ง ์์ผ๋ฉฐ, ํญ์ ๊ณ ์ ํ ํค๊ฐ ์กด์ฌํด์ผ ํ๋ ๊ฒฝ์ฐ.
6. Standard, Sorted, Hashed table ์ฌ์ฉ ์์
" ๋ณ์ ์ ์ธ
TYPES: BEGIN OF TY_MARA,
MATNR TYPE MATNR, " ์์ฌ ๋ฒํธ
MAKTX TYPE MAKTX, " ์์ฌ ์ค๋ช
END OF TY_MARA.
DATA: STANDARD_ITAB TYPE STANDARD TABLE OF TY_MARA,
SORTED_ITAB TYPE SORTED TABLE OF TY_MARA WITH UNIQUE KEY MATNR,
HASHED_ITAB TYPE HASHED TABLE OF TY_MARA WITH UNIQUE KEY MATNR.
DATA: WA TYPE TY_MARA.
" ๋ฐ์ดํฐ ์ฝ์
(STANDARD TABLE)
WA-MATNR = '1001'.
WA-MAKTX = 'Screw'.
APPEND WA TO STANDARD_ITAB.
" ๋ฐ์ดํฐ ์ฝ์
(SORTED TABLE)
WA-MATNR = '1002'.
WA-MAKTX = 'Bolt'.
INSERT WA INTO TABLE SORTED_ITAB.
" ๋ฐ์ดํฐ ์ฝ์
(HASHED TABLE)
WA-MATNR = '1003'.
WA-MAKTX = 'Nut'.
INSERT WA INTO TABLE HASHED_ITAB.
" STANDARD TABLE ์์ฐจ ํ์ ๋ฐ ์ถ๋ ฅ
CLEAR WA.
READ TABLE STANDARD_ITAB INTO WA WITH KEY MATNR = '00'.
IF SY-SUBRC = 0.
WRITE: / 'STANDARD TABLE ๊ฒ์ ๊ฒฐ๊ณผ:',
/ 'MATNR:', WA-MATNR,
/ 'MAKTX:', WA-MAKTX.
ELSE.
WRITE: / 'STANDARD TABLE์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.'.
ENDIF.
" SORTED TABLE ์ด์ง ํ์ ๋ฐ ์ถ๋ ฅ
CLEAR WA. WRITE: / '-'.
READ TABLE SORTED_ITAB INTO WA WITH KEY MATNR = '1002'.
IF SY-SUBRC = 0.
WRITE: / 'SORTED TABLE ๊ฒ์ ๊ฒฐ๊ณผ: ',
/ 'MATNR: ', WA-MATNR,
/ 'MAKTX: ', WA-MAKTX.
ELSE.
WRITE: / 'SORTED TABLE์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.'.
ENDIF.
" HASHED TABLE ํด์ ํ์ ๋ฐ ์ถ๋ ฅ
CLEAR WA. WRITE: / '-'.
READ TABLE HASHED_ITAB INTO WA WITH KEY MATNR = '1003'.
IF SY-SUBRC = 0.
WRITE: / 'HASHED TABLE ๊ฒ์ ๊ฒฐ๊ณผ: ',
/ 'MATNR: ', WA-MATNR,
/ 'MAKTX: ', WA-MAKTX.
ELSE.
WRITE: / 'HASHED TABLE์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.'.
ENDIF.
- ํ
์ด๋ธ ์ ์
- standard_itab: ๋ฐ์ดํฐ๋ฅผ ์์๋๋ก ์ ์ฅ.
- sorted_itab: matnr ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋ ์ํ๋ก ์ ์ฅ.
- hashed_itab: matnr๋ฅผ ํด์ ํค๋ก ์ฌ์ฉํ๋ ํ ์ด๋ธ.
- ๋ฐ์ดํฐ ์ฝ์
- ๊ฐ ํ ์ด๋ธ์ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํฉ๋๋ค.
- ๋ฐ์ดํฐ ๊ฒ์
- READ TABLE ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ฐ ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์.
- ๊ฒ์ ์ฑ๊ณต ์ฌ๋ถ๋ ์์คํ
๋ณ์ sy-subrc๋ก ํ์ธ:
- sy-subrc = 0: ๊ฒ์ ์ฑ๊ณต.
- ๊ทธ ์ธ: ๊ฒ์ ์คํจ.
728x90
๋ฐ์ํ
'๐งโ๐ผ SAP > ABAP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SAP ABAP] OCCURS 0(N) ์ด๋? (์์ ํฌํจ) (2) | 2025.01.03 |
---|---|
[SAP ABAP] ABAP Dictionary ํ ์ด๋ธ ์์ฑ ๋ฐฉ๋ฒ ๋ฐ ์ํธ๋ฆฌ ์ถ๊ฐ ๋ฐฉ๋ฒ (0) | 2025.01.03 |
[SAP ABAP] BAPI ๋? BAPI ์์ (1) | 2024.12.23 |
[SAP ABAP] COMPARING ์ด๋? (0) | 2024.12.19 |
[SAP ABAP] AT SELECTION-SCREEN ON <ํ๋ ์ด๋ฆ> ๊ตฌ๋ฌธ ์ด๋? (์์ ํฌํจ) (0) | 2024.10.25 |