๐ ์ ๊ณต ๊ณต๋ถ/DB๊ธฐ์ด (14) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [SQL] mysql ๋ฌธ์์ด ํจ์ ์ด์ฉ ์ฐ์ต๋ฌธ์ , ์์ ๋ฒ์ญ๊ธฐ ๋๋ฆฐ๊ฑฐ๋ผ ์ด์ํ ๋ฌธ์ฅ์ด ์กด์ฌํฉ๋๋ค! ๊ทธ๋๋ ์ดํดํ ๋งํจ.. ์ฐ์ต์ฉ์ผ๋ก ๋์ถฉ ๋ณด๋ ค๊ณ ์จ๋๋๊ฑฐ๋ผ ๋ฌธ์ฒด ์ด์ํด๋ ๋ฌด์ํจ chatGPT๊ฐ ์ ์ํด์ค mysql ๋ฌธ์์ด ํจ์ ์ด์ฉ ๋ฌธ์ ์ ์์ ๋ต์์ ๋๋ค~ ๋ฌธ์ 1 : users๋ผ๊ณ ํ๋ ํ ์ด๋ธ์ด ์๋๋ฐ ์ปฌ๋ผ์ด ํฌํจ๋์ด ์์ต๋๋ค.full_name๊ฐ ์ฌ์ฉ์์ ์ด๋ฆ๊ณผ ์ฑ์ ์ถ์ถํ์ฌ ๋ค๋ฅธ ์ด์ ํ์ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉดSUBSTRING_INDEX()์์ ์ฑ๊ณผ ์ด๋ฆ์ ์ถ์ถํ๋ ํจ์full_name๊ธฐ๋ฅ. ๋ค์์ ์ด ์์ ์ ์ํํ๋ ์ฟผ๋ฆฌ์ ๋๋ค. SELECT full_name, SUBSTRING_INDEX(full_name, ' ', 1) AS first_name, SUBSTRING_INDEX(full_name, ' ', -1) AS last_name FROM user.. [SQL] mysql ๋ฌธ์์ด์ ๋ค๋ฃจ๋ ํจ์ ์ถ๊ฐ ์ ๋ฆฌ ์๋ธ์คํธ๋ง ํจ์ LEFT(): ๋ฌธ์์ด์์ ๋งจ ์ผ์ชฝ ๋ฌธ์๋ฅผ ๋ฐํํฉ๋๋ค. SELECT LEFT('Hello World', 5); -- Output: Hello RIGHT(): ๋ฌธ์์ด์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ๋ฌธ์๋ฅผ ๋ฐํํฉ๋๋ค. SELECT RIGHT('Hello World', 5); -- Output: World SUBSTRING(): ์ง์ ํ ์์น์์ ์์ํ๋ ๋ฌธ์์ด์์ ํ์ ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. SELECT SUBSTRING('Hello World', 7); -- Output: World SUBSTRING_INDEX(): ์ง์ ํ ์์น์์ ์์ํ์ฌ ์ง์ ๋ ๊ตฌ๋ถ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์์ ํ์ ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. SELECT SUBSTRING_INDEX('www.example.com', '.', 2); -- Outp.. [SQL] mysql ๋ด์ฅํจ์ ์ ๋ฆฌ ๋ฌธ์์ด ํจ์ CONCAT(): 2๊ฐ ์ด์์ ๋ฌธ์์ด์ ์ฐ๊ฒฐํฉ๋๋ค. SELECT CONCAT('Hello', 'World'); -- Output: HelloWorld SUBSTR(): ๋ฌธ์์ด์์ ํ์ ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. SELECT SUBSTR('Hello World', 7); -- Output: World UPPER(): ๋ฌธ์์ด์ ๋๋ฌธ์๋ก ๋ณํํฉ๋๋ค. SELECT UPPER('Hello World'); -- Output: HELLO WORLD LOWER(): ๋ฌธ์์ด์ ์๋ฌธ์๋ก ๋ณํํฉ๋๋ค. SELECT LOWER('Hello World'); -- Output: hello world LENGTH(): ๋ฌธ์์ด ๊ธธ์ด๋ฅผ ๋ฐํํฉ๋๋ค. SELECT LENGTH('Hello World'); -- Output: 11 ์ซ.. [SQLD] ์ ๊ณต์ sqld ์ํ ํ๊ธฐ/ ์ค๋น๋ฐฉ๋ฒ/ ๊ณต๋ถ https://www.dataq.or.kr/www/main.do โฌโฌ ๋ฐ์ดํฐ์๊ฒฉ๊ฒ์ ํํ์ด์ง โฌโฌ SQLD๋ SQL "๊ฐ๋ฐ์" ์๊ฒฉ์ฆ ์ํ์ ์ฝ์์ ๋๋ค!! ์ ๋ฌธ๊ฐ ์ํ(SQLP)์ ์ค๊ธฐ๋ ์๊ณ ๋ ์ด๋ ค์ด ๋ฐ๋ฉด์, ๊ฐ๋ฐ์ ์ํ์ ํ๊ธฐ๋ง ์น๋ฉด ๋๊ณ ์๋์ ์ผ๋ก ์ฌ์์ ๋ํ์๋ค๋ ๋ง์ด ์์ํ๋๋ผ๊ณ ์. ์ ๋ ํ๊ต์์ "๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ์ด" ๊ณผ๋ชฉ์ ์๊ฐํ๋ฉด์, ์ ๋ฐฐ์๊ฒ SQLD ์ํ์ ๊ฐ์ด ์น๋ฉด ์ข๋ค๋ ๋ง์ ๋ฃ๊ณ ์ํ์ ์ค๋นํ๊ธฐ ์์ํ์ต๋๋ค! ์ฌ์ค ์ง์ง ์ํ์ค๋น๋ 4์ผ๋์๋ง ํ๊ธด ํ๋๋ฐ,...(์ ๊ณต์๋ผ์) ์ฐ์ DB ๊ณผ๋ชฉ์์ ๊ธฐ๋ณธ์ ์ธ SQL๋ฌธ์ ๋ํด์๋ ๋ค ๋ฐฐ์ด ์ํ์๊ณ ์, ์ผ๋ง์ ์ ์ค๊ฐ๊ณ ์ฌ๋ฅผ ๋ณธ๋ค๊ณ ๊ณต๋ถ๋ ์ด์ฌํ ํด ๋์ ์ํ๋ผ์ ์์น ์ ์์๋ ๊ฒ ๊ฐ๊ธฐ๋ ํฉ๋๋ค ์ฐ์ , SQL ์ํ์ ์น์ค ์๊ฐ์ด๋ผ๋ฉด ์๋ ์นดํ์ .. [DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณด์ Database Security and Authorization Subsystem ๋ณด์ ๋ฐ ๊ถํ๋ถ์ฌ DB security legal and ethical policy issues system-related issues security levels Threats to Databases Loss of integrity : ๋ฌด๊ฒฐ์ฑ ์์ค Loss of availability : ๊ฐ์ฉ์ฑ ์์ค Loss of confidentiality : ๊ธฐ๋ฐ์ฑ ์์ค access control, inference control, flow control, encryption DB security : not an isolated concern multiuser DB system database security and authoriza.. [DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณต๊ตฌ Recovery Techniques Recovery Concept recent consistent state : no errors in db, no inconsistencies in db systme log Catastrophic failure (์น๋ช ์ ์ฅ์ ) → backed up, redoing Noncatastrophic failure (๋น์ฌํด์ ์ฅ์ ) → undoing, redo, deferred update&immediate update Caching(Buffering) of disk blocks ํจ์จ์ฑ์ ์ํด์ ์บ์ ์ฌ์ฉ DBMS cache Buffer replacement : ๋ฒํผ ๊ต์ฒด( flush ) dirty bit : ๋ฒํผ๊ฐ ์์ ๋์๋์ง ์ฌ.. [DB] ๋์์ฑ ์ ์ด Concurrency Control Techniques Concurrency Control Protocols : guarantee serializability (์ง๋ ฌํ ๋ณด์ฅ) Locking Timestamps multiversion CC protocols Optimistic protocols Multiple granularity concurrency control protocol Two-phase Locking Techniques : ์ด์ค ๋ผํน lock ์ํ 1, unlock ์ํ๋ 0 Lock table : lock ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๋ ์๋ธ์์คํ plus a queue for transactions that are waiting to access item Shared/Exclusive (or Read/Wr.. [DB] Transaction processing Transaction Concepts Concurrent Executions Transaction Schedule Serializability Recoverability Single-User vs Multiuser Systems ๊ต๋ ์ํ : interleaved concurrency Transaction : an executing program that forms a logical unit of db processing Begin transaction - end transaction; includes DB access operations read-only / read-write transaction read-item(X) : ๋์คํฌ๋ธ๋ก ์ฃผ์์ฐพ๊ธฐ-๋ฒํผ์ ๋ณต์ฌ-ํ๋ก๊ทธ๋จ ๋ณ์๋ก ๋ณต์ฌ write-item(X).. ์ด์ 1 2 ๋ค์