๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๐Ÿ—‚.๋Œ€์™ธํ™œ๋™/๐Ÿ“.์นด์นด์˜คํด๋ผ์šฐ๋“œ์Šค์ฟจ19

[JavaScript] ๊ฐ์ฒด ๐Ÿ“– ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด ์ •์˜ ์ž๋ฐ”๋Š” ์ƒ์†์„ ์ œ์–ด์™€ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์˜ค๋กœ์ง€ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ(๊ณต์œ )์„ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. ๐Ÿ“•๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹: ES3 var pobj ={ x: 100, y: 200, myShape: 'Player', display: function(){ document.write(""+this.x+", "+this.y+"="+this.myShape+"") } }; pobj.display(); ๐Ÿ“— ์ƒ์„ฑ์žํ•จ์ˆ˜ ํŒจํ„ด์˜ ๊ฐ์ฒด ์ƒ์„ฑ: ES5 // java: ClassType object = new ClassType(); function Person(){ // ์ƒ์„ฑ์žํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐ. // ์ธ์Šคํ„ด์Šค์˜ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ดˆ๊ธฐํ™” this.x= 100; // ํ•จ์ˆ˜์˜ ์ƒ์„ฑ์žํ•จ์ˆ˜ .. 2024. 1. 17.
[DB] ์ธ๋ฑ์Šค( Index ) ๐Ÿ“‘ ์ธ๋ฑ์Šค( Index ) ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋‹ค. ๋น ๋ฅธ ํƒ์ƒ‰ ์†๋„๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ๐Ÿ“‘ ์ธ๋ฑ์Šค ์ƒ์„ฑ ๊ณ ๋ ค์‚ฌํ•ญ WHERE์ ˆ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ ์กฐ์ธ์ด ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ ๋‹จ์ผ ํ…Œ์ด๋ธ”์— ์ธ๋ฑ์Šค ๋งŽ์œผ๋ฉด ์†๋„๊ฐ€ ๋Š๋ ค์ง„๋‹ค. (3~4๊ฐœ ๊ถŒ์žฅ) ๐Ÿ“‘ ์ธ๋ฑ์Šค์˜ ์ข…๋ฅ˜ ์ž๋™์ธ๋ฑ์Šค: ๊ธฐ๋ณธํ‚ค(PK), UNIQUE ๊ทœ์น™์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ์ธ๋ฑ์Šค์ด๋‹ค. ์ˆ˜๋™์ธ๋ฑ์Šค: CREATE INDEX ๋ช…๋ น์œผ๋กœ ์ƒ์„ฑ๋œ ์ธ๋ฑ์Šค์ด๋‹ค. ๐Ÿ‘‰ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘๊ฑฐ๋‚˜, ์ž์ฃผ ๊ฐฑ์‹ ๋  ๋•Œ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€์•Š๋Š”๋‹ค. ๐Ÿ“‘ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ํƒ์ƒ‰ ์œ„์˜ ๊ฒฐ๊ณผ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „ ๊ฒฐ๊ณผ์ด๊ณ , ๋ฐ‘์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•œ ํƒ์ƒ‰ ๊ฒฐ๊ณผ์ด๋‹ค. COST๋ฅผ ๋ณด๋ฉด 2์”ฉ ๋‚ด๋ ค๊ฐ”๋‹ค. ๐Ÿ‘‰ ์ธ๋ฑ์Šค์˜ ์‚ฌ์šฉํ•  ์‹œ ํƒ์ƒ‰์˜ ํšจ์œจ์„ ๋น„๊ตํ•ด๋ณด์•˜์„.. 2024. 1. 3.
[DB] ๋ทฐ VIEW ๐Ÿ–ผ ๋ทฐ( View ) ํ…Œ์ด๋ธ”์„ ํ•ฉ์ณ์„œ ๋งŒ๋“  ๊ฐ€์ƒ์˜ ํ…Œ์ด๋ธ”์ด๋‹ค. ํŽธ๋ฆฌ์„ฑ, ์žฌ์‚ฌ์šฉ์„ฑ: ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ณต์žกํ•œ ์งˆ์˜๋ฅผ ๋ทฐ๋กœ ๋ฏธ๋ฆฌ ์ •์˜ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณด์•ˆ์„ฑ: ์ค‘์š”ํ•œ ์งˆ์˜(ex. ๊ฐœ์ธ์ •๋ณด)์˜ ๊ฒฝ์šฐ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž๋ณ„๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์„ ๋ณ„ํ•ด ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. ๋…๋ฆฝ์„ฑ: ์›๋ณธ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๊ฐ€ ๋ณ€ํ•ด๋„ ์‘์šฉํ•ด ์˜ํ–ฅ์ฃผ์ง€ ์•Š๋„๋กํ•˜๋Š” ๋…ผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ์ด ์ œ๊ณต๋œ๋‹ค. ๐Ÿ–ผ ๋ทฐ์˜ ํŠน์ง• ์›๋ณธ ๋ฐ์ดํ„ฐ ๊ฐ’์— ๋”ฐ๋ผ ๊ฐ™์ด ๋ณ€ํ•œ๋‹ค.(์—ฐ๊ฒฐ) ๋…๋ฆฝ์ ์ธ ์ธ๋ฑ์Šค ์ƒ์„ฑ ์–ด๋ ต๋‹ค. ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฐฑ์‹  ์—ฐ์‚ฐ์— ๋งŽ์€ ์ œ์•ฝ์ด ์กด์žฌํ•œ๋‹ค. SELECT * FROM BOOK WHERE BOOKNAME LIKE '%์ถ•๊ตฌ%'; -- ๋ทฐ ์ƒ์„ฑ CREATE VIEW VW_BOOK AS SELECT * FROM BOOK WHERE BOOKNAME LIKE '%.. 2024. 1. 3.
[DB] ์ •๊ทœํ™” ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ์œ„ํ•ด์„œ ์ •๊ทœํ™”๋ฅผ ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ€์žฅ ํฐ ๋ชฉ์ ์€ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์™œ? ์ค‘๋ณต์ด ์žˆ์œผ๋ฉด ์ด์ƒ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๐ŸŽฒ ์ด์ƒ ํ˜„์ƒ ( Anomaly ) ์‚ญ์ œ์ด์ƒ: ์—ฐ์‡„์  ์‚ญ์ œ ๋ฌธ์ œ ๋ฐœ์ƒ ์‚ฝ์ž…์ด์ƒ: NULL ๊ฐ’ ๋ฌธ์ œ ๋ฐœ์ƒ ์ˆ˜์ •์ด์ƒ: ๋ถˆ์ผ์น˜ ๋ฌธ์ œ ๋ฐœ์ƒ ๐ŸŽฒ ํ•จ์ˆ˜ ์ข…์†์„ฑ( Functional Dependency ) ์–ด๋–ค ์†์„ฑ์˜ ๊ฐ’์„ ์•Œ๋ฉด ๋‹ค๋ฅธ ์†์„ฑ ๊ฐ’์ด ์œ ์ผํ•˜๊ฒŒ ์ •ํ•ด์ง€๋Š” ์˜์กด ๊ด€๊ณ„๋ฅผ ์ข…์†ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ex. ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ์•Œ๋ฉด ํ•™์ƒ์ด๋ฆ„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•™์ƒ๋ฒˆํ˜ธ๋กœ ํ•™์ƒ์ด ์ˆ˜๊ฐ•ํ•˜๋Š” ๊ฐ•์ขŒ์ด๋ฆ„์„ ์œ ์ผํ•˜๊ฒŒ ์•Œ ์ˆ˜๋Š” ์—†๋‹ค. (์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์ˆ˜๊ฐ•ํ•  ์ˆ˜ ๋„ ์žˆ๊ธฐ๋•Œ๋ฌธ์—) X ๊ฐ๊ฐ์˜ ๊ฐ’์ด Y์˜ ๊ฐ’ ํ•œ ๊ฐœ์™€ ๋Œ€์‘์ด ๋˜๋ฉด ‘X๋Š” Y๋ฅผ ํ•จ์ˆ˜์ ์œผ๋กœ ๊ฒฐ์ •ํ•œ๋‹ค’, X→Y๋กœ ํ‘œ๊ธฐํ•œ๋‹ค. X๊ฐ€ ๊ฒฐ์ •์ž์ด๋‹ค. * ํ•จ์ˆ˜ .. 2024. 1. 2.
[DB] ๋ถ€์† ์งˆ์˜(sub query) ์—ฐ์Šต๋ฌธ์ œ 1. ๋งˆ๋‹น์„œ์ ์˜ ๊ณ ๊ฐ์ด ์š”๊ตฌํ•˜๋Š” ๋‹ค์Œ ์งˆ๋ฌธ์— ๋Œ€ํ•ด SQL ๋ฌธ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. (5) ๋ฐ•์ง€์„ฑ์ด ๊ตฌ๋งคํ•œ ๋„์„œ์˜ ์ถœํŒ์‚ฌ ์ˆ˜ (6) ๋ฐ•์ง€์„ฑ์ด ๊ตฌ๋งคํ•œ ๋„์„œ์˜ ์ด๋ฆ„, ๊ฐ€๊ฒฉ, ์ •๊ฐ€์™€ ํŒ๋งค๊ฐ€๊ฒฉ์˜ ์ฐจ์ด (7) ๋ฐ•์ง€์„ฑ์ด ๊ตฌ๋งคํ•˜์ง€ ์•Š์€ ๋„์„œ์˜ ์ด๋ฆ„ -- 5. SELECT PUBLISHER FROM BOOK WHERE BOOKID IN (SELECT BOOKID FROM ORDERS WHERE CUSTID=1); -- 6. SELECT CS.NAME, BK.BOOKNAME, BK.PRICE, BK.PRICE - OD.SALEPRICE "์ฐจ์ด" FROM CUSTOMER CS, ORDERS OD, BOOK BK WHERE CS.CUSTID = OD.CUSTID AND OD.BOOKID = BK.BOOKID AND CS.CUSTID.. 2023. 12. 29.
[DB] ๋ถ€์† ์งˆ์˜(subquery) ๐ŸŽˆ ๋ถ€์† ์งˆ์˜(subquery) ํ•˜๋‚˜์˜ SQL๋ฌธ ์•ˆ์— ๋‹ค๋ฅธ SQL๋ฌธ์ด ์ค‘์ฒฉ ๋œ ์งˆ์˜๋ฅผ ๋งํ•œ๋‹ค. ๐ŸŽˆ ์œ„์น˜์— ๋”ฐ๋ฅธ ๋ถ€์† ์งˆ์˜์˜ ์ข…๋ฅ˜ ์œ„์น˜์— ๋”ฐ๋ผ ๋ถ€์† ์งˆ์˜์˜ ํ˜•ํƒœ๊ฐ€ ๋‹ค๋ฅด๋‹ค. ๋ช…์นญ ์œ„์น˜ ์˜๋ฌธ ๋ฐ ๋™์˜์–ด ์Šค์นผ๋ผ ๋ถ€์† ์งˆ์˜ SELECT scalar subquery ์ธ๋ผ์ธ ๋ทฐ FROM inline view / table subquery ์ค‘์ฒฉ ์งˆ์˜ WHERE nested subquery / predicate subquery ๐ŸŽˆ ์ฃผ ์งˆ์˜(main query)์™€ ๋ถ€์† ์งˆ์˜(sub query) ๊ฐ„์˜ ์ƒ๊ด€๊ด€๊ณ„ ๐Ÿ‘‰ ์ƒ๊ด€ ๋ถ€์† ์งˆ์˜ ์ฃผ ์งˆ์˜์˜ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•ด์„œ ๋ถ€์† ์งˆ์˜์— ์ ์šฉํ•  ๋•Œ ์ƒ๊ด€ ๋ถ€์† ์งˆ์˜์ด๋‹ค. ์ฃผ ์งˆ์˜์—์„œ ๋จผ์ € ์ˆ˜ํ–‰๋˜์–ด์„œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ง€๊ณ  ๋ถ€์† ์งˆ์˜์˜ ๋‚ด์šฉ์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์™œ ์ด๋ ‡๊ฒŒ ํ•˜๋ƒ๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ.. 2023. 12. 29.
728x90