RDBMS와 NoSQL
Β·
πŸ“ Computer Science/✏ Database
1. RDBMS λ°μ΄ν„°λŠ” μ •ν•΄μ§„ 데이터 μŠ€μΉ΄λ§ˆμ— 따라 ν…Œμ΄λΈ”μ— μ €μž₯되고 관계λ₯Ό 톡해 μ—¬λŸ¬ ν…Œμ΄λΈ”μ— λΆ„μ‚°λœλ‹€. 슀카마λ₯Ό μ€€μˆ˜ν•˜μ§€ μ•Šμ€ λ ˆμ½”λ“œλŠ” ν…Œμ΄λΈ”μ— μΆ”κ°€ν•  수 μ—†λ‹€. λ°μ΄ν„°μ˜ 쀑볡을 ν”Όν•˜κΈ° μœ„ν•΄ 관계λ₯Ό μ΄μš©ν•œλ‹€. ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”μ—μ„œ 쀑볡 없이 ν•˜λ‚˜μ˜ λ°μ΄ν„°λ§Œμ„ κ΄€λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— λ‹€λ₯Έ ν…Œμ΄λΈ”μ—μ„œ λΆ€μ •ν™•ν•œ 데이터λ₯Ό λ‹€λ£° μœ„ν—˜μ΄ μ—†μ–΄μ§„λ‹€. ACID νŠΉμ§•μ„ κ°€μ§„λ‹€. mySQL 1) μž₯점 λͺ…ν™•ν•˜κ²Œ μ •μ˜λœ μŠ€ν‚€λ§ˆλ‘œ 데이터 무결성을 보μž₯ν•œλ‹€. 관계λ₯Ό 톡해 λΆ„μ‚° μ €μž₯ν•˜κΈ° λ•Œλ¬Έμ— 각 데이터λ₯Ό 쀑볡 없이 ν•œ 번만 μ €μž₯ν•œλ‹€. 2) 단점 μœ μ—°ν•˜μ§€ μ•Šλ‹€. 데이터 μŠ€ν‚€λ§ˆλ₯Ό 사전에 κ³„νšν•˜κ³  μ•Œλ €μ•Ό ν•΄μ„œ λ‚˜μ€‘μ— μˆ˜μ •ν•˜κΈ° νž˜λ“€λ‹€. 관계λ₯Ό λ§Ίκ³  μžˆμ–΄μ„œ 쑰인문이 λ§Žμ€ λ³΅μž‘ν•œ 쿼리가 λ§Œλ“€μ–΄μ§ˆ 수 μžˆλ‹€. 3) μ–Έμ œ μ‚¬μš©? 관계λ₯Ό λ§Ίκ³  μžˆλŠ” 데..
SQL SELECT
Β·
πŸ“ Computer Science/✏ Database
SELECT [PREDICATE] [ν…Œμ΄λΈ”λͺ….]속성λͺ… [AS 별칭], ... FROM ν…Œμ΄λΈ”λͺ… [AS 별칭], ... WHERE 쑰건 ORDER BY 속성λͺ… [ASC | DESC], ... GROUP BY 속성λͺ…, ... HAVING 쑰건; 1. SELECT 절 쑰건에 λ§žλŠ” νŠœν”Œμ„ κ²€μƒ‰ν•œλ‹€. PREDICATE: 뢈러올 νŠœν”Œ 수λ₯Ό μ œν•œν•  λͺ…λ Ήμ–΄λ₯Ό κΈ°μˆ ν•œλ‹€. DISTINCT: μ€‘λ³΅λœ νŠœν”Œμ΄ 있으면 그쀑 첫 번째 ν•œ 개만 κ²€μƒ‰ν•œλ‹€ DISTINCT: μ€‘λ³΅λœ νŠœν”Œμ„ μ œκ±°ν•˜κ³  ν•œ 개만 κ²€μƒ‰ν•˜μ§€λ§Œ μ„ νƒλœ μ†μ„±μ˜ 값이 μ•„λ‹Œ νŠœν”Œ 전체λ₯Ό λŒ€μƒμœΌλ‘œ ν•œλ‹€. κΈ°λ³Έ ν…Œμ΄λΈ”μ„ κ΅¬μ„±ν•˜λŠ” λͺ¨λ“  속성을 μ§€μ •ν•  λ•ŒλŠ” '*'λ₯Ό κΈ°μˆ ν•œλ‹€. 2. ORDER BY 절 νŠΉμ • 속성을 κΈ°μ€€μœΌλ‘œ μ •λ ¬ν•˜μ—¬ 검색할 λ•Œ μ‚¬μš©ν•œλ‹€. [ASC | DESC]:..
SQL
Β·
πŸ“ Computer Science/✏ Database
SQL ꡭ제 ν‘œμ€€ λ°μ΄ν„°λ² μ΄μŠ€ 언어이며 질의 κΈ°λŠ₯κ³Ό μ œμ–΄ κΈ°λŠ₯을 λͺ¨λ‘ κ°–μΆ”κ³  μžˆλ‹€. 1. DDL(Data Define Language) 데이터 μ •μ˜μ–΄λ‘œ SCHEMA, DOMAIN, TABLE, VIEW, INDEXλ₯Ό μ •μ˜ν•˜κ±°λ‚˜ λ³€κ²½, μ‚­μ œν•  λ•Œ μ‚¬μš©ν•œλ‹€. 1) CREATE SCHEMA, DOMAIN, TABLE, VIEW, INDEXλ₯Ό μ •μ˜ν•œλ‹€. 2) ALTER TABLE에 λŒ€ν•œ μ •μ˜λ₯Ό λ³€κ²½ν•œλ‹€. ALTER TABLE ν…Œμ΄λΈ”λͺ… ADD 속성λͺ… λ°μ΄ν„°νƒ€μž… [DEFAULT 'κΈ°λ³Έκ°’']; // μƒˆλ‘œμš΄ 속성 μΆ”κ°€ ALTER TABLE ν…Œμ΄λΈ”λͺ… ALTER 속성λͺ… [SET DEFAULT 'κΈ°λ³Έκ°’']; // μ†μ„±μ˜ κΈ°λ³Έκ°’ λ³€κ²½ ALTER TABLE ν…Œμ΄λΈ”λͺ… DROP 속성λͺ… [CASCADE]; // 속성 제거 3) DR..
[C/C++] Tip
Β·
πŸ“ Computer Science/✏ Algorithm
μž…μΆœλ ₯// 1. μž…λ ₯// 곡백, νƒ­ 등을 ν¬ν•¨ν•œ ν•œ 쀄 전체 λ¬Έμžμ—΄ μž…λ ₯ λ°›κΈ° (C++)getline(cin, string);// 숫자 ν•œ μžλ¦¬μ”© 읽기 (C)scanf("%1d", &a[i]);// μž…λ ₯ μ’…λ£Œ μ‹œκΉŒμ§€ 숫자λ₯Ό 계속 μž…λ ₯ λ°›κΈ° (C, C++)while (scanf("%d", &n) != EOF)while (cin >> n)// 2. 좜λ ₯// 자릿수 μ±„μš°κΈ° (C)printf("%02d", test); // μ •μˆ˜ 좜λ ₯ μ‹œ, μ΅œμ†Œ 2자리둜 좜λ ₯ν•˜λ©° 빈 μžλ¦¬λŠ” 0으둜 채움// μ†Œμˆ˜μ  자리 κ³ μ • (C, C++)printf("%.6lf"); // μ†Œμˆ˜μ  μ•„λž˜ 6μžλ¦¬κΉŒμ§€ 좜λ ₯cout 문자/λ¬Έμžμ—΄ λ³€ν™˜// 문자(char)와 숫자(int) λ³€ν™˜int num = ch - '0'; // char to intc..
νŠΈλžœμž­μ…˜(Transaction)
Β·
πŸ“ Computer Science/✏ Database
νŠΈλžœμž­μ…˜(Transaction) λ°μ΄ν„°λ² μ΄μŠ€μ˜ μƒνƒœλ₯Ό λ³€ν™˜μ‹œν‚€λŠ” ν•˜λ‚˜μ˜ 논리적 κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ μž‘μ—…μ˜ λ‹¨μœ„, 일련의 연산듀을 μ˜λ―Έν•œλ‹€. 1. ACID μ›μžμ„±(Atomicity): νŠΈλžœμž­μ…˜μ˜ 연산은 λ°μ΄ν„°λ² μ΄μŠ€μ— λͺ¨λ‘ λ°˜μ˜λ˜λ„λ‘ μ™„λ£Œ(Commit)λ˜λ“ μ§€ μ•„λ‹ˆλ©΄ μ „ν˜€ λ°˜μ˜λ˜μ§€ μ•Šλ„λ‘ 볡ꡬ(Rollback)λ˜μ–΄μ•Ό ν•œλ‹€. 일관성(Consistency): νŠΈλžœμž­μ…˜μ΄ μ™„λ£Œλœ λ‹€μŒμ˜ μƒνƒœμ—μ„œλ„ νŠΈλžœμž­μ…˜μ΄ μΌμ–΄λ‚˜κΈ° μ „μ˜ 상황과 λ™μΌν•˜κ²Œ λ°μ΄ν„°μ˜ 일관성을 보μž₯ν•΄μ•Ό ν•œλ‹€. 고립성(Isolation): ν•œ νŠΈλžœμž­μ…˜μ΄ μž‘μ—…μ„ ν•˜λŠ” λ™μ•ˆ μ™„λ£Œλ˜κΈ° μ „μ—λŠ” μž‘μ—… 쀑인 데이터λ₯Ό λ‹€λ₯Έ νŠΈλžœμž­μ…˜λ“€μ΄ μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λ„둝 ν•΄μ•Ό ν•œλ‹€. 지속성(Durability): νŠΈλžœμž­μ…˜μ˜ 싀행이 μ„±κ³΅μ μœΌλ‘œ μ‹€ν–‰ μ™„λ£Œλœ ν›„μ—λŠ” μ‹œμŠ€ν…œμ— 였λ₯˜κ°€ λ°œμƒν•˜λ”..
μ •κ·œν™”(Normalization)
Β·
πŸ“ Computer Science/✏ Database
μ •κ·œν™”λ₯Ό κ±°μΉ˜μ§€ μ•ŠμœΌλ©΄ λ°μ΄ν„°λ² μ΄μŠ€ 내에 데이터듀이 λΆˆν•„μš”ν•˜κ²Œ 쀑볡, μ’…μ†λ˜μ–΄ 이상 ν˜„μƒμ΄ λ°œμƒν•œλ‹€. 1. 이상(Anomaly) ν˜„μƒ μ‚½μž…(Insertion) 이상: μ˜λ„μ™€λŠ” 상관없이 μ›ν•˜μ§€ μ•Šμ€ 값듀도 ν•¨κ»˜ μ‚½μž…λ˜λŠ” ν˜„μƒ μ‚­μ œ(Deletion) 이상: μ˜λ„μ™€λŠ” μƒκ΄€μ—†λŠ” 값듀도 ν•¨κ»˜ μ‚­μ œλ˜λŠ” 연쇄가 μΌμ–΄λ‚˜λŠ” ν˜„μƒ κ°±μ‹ (Update) 이상: 일뢀 νŠœν”Œμ˜ μ •λ³΄λ§Œ κ°±μ‹ λ˜μ–΄ 정보에 λͺ¨μˆœμ΄ μƒκΈ°λŠ” ν˜„μƒ 2. μ •κ·œν™”(Normalization) μ •κ·œν™”λž€ κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 쀑볡을 μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•΄ 데이터λ₯Ό κ΅¬μ‘°ν™”ν•˜λŠ” μž‘μ—…μœΌλ‘œ 잘λͺ» μ„€κ³„λœ λ¦΄λ ˆμ΄μ…˜μ„ 더 μž‘μ€ μ†μ„±μœΌλ‘œ λΆ„ν•΄ν•˜μ—¬ λ°”λžŒμ§ν•œ λ¦΄λ ˆμ΄μ…˜μœΌλ‘œ λ§Œλ“€μ–΄ κ°€λŠ” 과정이닀. ν•¨μˆ˜μ  쒅속성을 μ΄μš©ν•΄ νŒλ‹¨ν•œλ‹€. 무손싀 쑰인을 보μž₯ν•œλ‹€. μ—¬κΈ°μ„œ 무손싀 μ‘°μΈμ΄λž€ μ‘°μΈν•˜λ©΄ μ›λž˜μ˜..