7 λΆ„ μ†Œμš”

πŸ“š DB ( DataBase )


πŸ“š Basic

DB ( DataBase ) λž€ 무엇인가 ?

λ°μ΄ν„°λ² μ΄μŠ€ ( DB : database ) λŠ” ν†΅ν•©ν•˜μ—¬ κ΄€λ¦¬λ˜λŠ” λ°μ΄ν„°μ˜ 집합체λ₯Ό μ˜λ―Έν•œλ‹€.
μ€‘λ³΅λœ 데이터λ₯Ό μ—†μ• κ³ , 자료λ₯Ό κ΅¬μ‘°ν™”ν•˜μ—¬ 효율적인 처리λ₯Ό ν•  수 μžˆλ„λ‘ κ΄€λ¦¬λœλ‹€.
κ·Έλž˜μ„œ μ—¬λŸ¬ 업무에 μ—¬λŸ¬ μ‚¬μš©μžκ°€ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

DB ( DataBase ) 의 νŠΉμ§•

  • μ‚¬μš©μž μ§ˆμ˜μ— λŒ€ν•˜μ—¬ 즉각적인 μ²˜λ¦¬μ™€ 응닡이 이루어진닀.
  • 생성, μˆ˜μ •, μ‚­μ œλ₯Ό ν†΅ν•˜μ—¬ 항상 μ΅œμ‹ μ˜ 데이터λ₯Ό μœ μ§€ν•œλ‹€.
  • μ‚¬μš©μžλ“€μ΄ μ›ν•˜λŠ” 데이터λ₯Ό λ™μ‹œμ— κ³΅μœ ν•  수 μžˆλ‹€.
  • μ‚¬μš©μžκ°€ μ›ν•˜λŠ” 데이터λ₯Ό μ£Όμ†Œκ°€ μ•„λ‹Œλ‚΄μš©μ— 따라 μ°Έμ‘°ν•  수 μžˆλ‹€.
  • μ‘μš©ν”„λ‘œκ·Έλž¨κ³Ό λ°μ΄ν„°λ² μ΄μŠ€λŠ” λ…λ¦½λ˜μ–΄ μžˆμœΌλ―€λ‘œ, λ°μ΄ν„°μ˜ 논리적 ꡬ쑰와 μ‘μš©ν”„λ‘œκ·Έλž¨μ€ λ³„λ„λ‘œ λ™μž‘λœλ‹€.
DB λ™μž‘ κ³Όμ •

SQL ( Structured Query Language )

SQL ( Structured Query Language ) 은 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 데이터λ₯Ό μ •μ˜, μ‘°μž‘, μ œμ–΄ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” 언어이닀.
λͺ¨λ“  DBMSμ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜κ³  λŒ€μ†Œλ¬ΈμžλŠ” κ΅¬λ³„ν•˜μ§€ μ•Šμ§€λ§Œ λ°μ΄ν„°μ˜ λŒ€μ†Œλ¬ΈμžλŠ” κ΅¬λΆ„ν•œλ‹€.

λͺ©μ μ— 따라 ꡬ뢄할 수 μžˆλ‹€. ( DDL, DML, DCL ) + TCL

DDL ( Data Definition Language )

데이터 μ •μ˜μ–΄
λ°μ΄ν„°λ² μ΄μŠ€λ‚˜ ν…Œμ΄λΈ” 등을 생성, μ‚­μ œν•˜κ±°λ‚˜ λ°μ΄ν„°λ² μ΄μŠ€ 객체의 ꡬ쑰 ( table, view, index, .. )λ₯Ό μ •μ˜ν•œλ‹€.
ν…Œμ΄λΈ” 생성, 컬럼 μΆ”κ°€, νƒ€μž…λ³€κ²½, μ œμ•½μ‘°κ±΄ 지정 λ“±λ“±

  • CREATE
    λ°μ΄ν„°λ² μ΄μŠ€ 객체λ₯Ό 생성
-> dbtest λ°μ΄ν„°λ² μ΄μŠ€ 생성

create database dbtest
default character set utf8mb3 collate utf8mb3_general_ci;
( utf8mb3 λŠ” λ‹€κ΅­μ–΄ 처리, utf8mb4 λŠ” λ‹€κ΅­μ–΄ 처리 + 이λͺ¨μ§€ μ‚¬μš© κ°€λŠ₯ )
( character set은 각 λ¬Έμžκ°€ 컴퓨터에 μ €μž₯될 λ•Œ μ–΄λ– ν•œ μ½”λ“œλ‘œ μ €μž₯ 될지에 λŒ€ν•œ κ·œμΉ™μ˜ 집합을 μ˜λ―Έν•œλ‹€ )
( Collation은 νŠΉμ • 문자 셋에 μ˜ν•΄ λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 값듀을 비ꡐ κ²€μƒ‰ν•˜κ±°λ‚˜ μ •λ ¬ λ“±μ˜ μž‘μ—…μ„ μœ„ν•΄ λ¬Έμžλ“€μ„ μ„œλ‘œ " 비ꡐ " ν•  λ•Œ μ‚¬μš©ν•˜λŠ” κ·œμΉ™λ“€μ˜ 집합을 μ˜λ―Έν•œλ‹€. )


-> user ν…Œμ΄λΈ” 생성

create table 'user'(
    `id` varchar(40) not null,
    `password` varchar(40) not null,
    `name` varchar(40) not null,
    `email` varchar(40) not null,
    `age` int not null
)

-------------------------------------------------------------------------------------------------------

-> dbtest λ°μ΄ν„°λ² μ΄μŠ€ μ‚¬μš©

use dbtest;

  • ALTER
    기쑴에 μ‘΄μž¬ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€ 객체λ₯Ό μˆ˜μ •
-> dbtest λ°μ΄ν„°λ² μ΄μŠ€ μˆ˜μ • ( 이λͺ¨μ§€ μ‚¬μš© κ°€λŠ₯ν•œ κ²ƒμœΌλ‘œ )

alter database dbtest
default character set utf8mb4 collate utf8mb4_general_ci;

-> user ν…Œμ΄λΈ”μ— phone_number(int) 컬럼 μ‚½μž…
alter table 'user' add column 'phone_number' int;

-> user ν…Œμ΄λΈ”μ˜ phone_number μ»¬λŸΌμ„ varchar(40), not null 둜 λ³€κ²½
alter table 'user' modify column 'phone_number' varchar(40) not null;

-> phone_number 컬럼 μ‚­μ œ
alter table 'user' drop column 'phone_number';
  • DROP
    λ°μ΄ν„°λ² μ΄μŠ€ 객체λ₯Ό μ‚­μ œ
-> dbtest λ°μ΄ν„°λ² μ΄μŠ€ μ‚­μ œ

drop database dbtest;

-> user ν…Œμ΄λΈ” μ‚­μ œ
drop table 'user';

-> λ§Œμ•½ user λΌλŠ” ν…Œμ΄λΈ”μ΄ 있으면 μ‚­μ œ
drop table if exists 'user';

DML ( Data Manipulation Language )

데이터 μ‘°μž‘μ–΄
λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 데이터λ₯Ό μ²˜λ¦¬ν•˜κ±°λ‚˜ 쑰회, κ²€μƒ‰ν•˜κΈ° μœ„ν•œ λͺ…령어이닀.
ν…Œμ΄λΈ”μ˜ λ ˆμ½”λ“œλ₯Ό CRUD ( Create, Read, Update, Delete )

  • insert ( C )
    λ°μ΄ν„°λ² μ΄μŠ€ 객체에 데이터λ₯Ό μž…λ ₯
insert into table_name( col_name1, col_name2 .. )
value ( col_val1, col_val2 .. );


-> col_name 을 μ•ˆ 적으면 전체 속성을 의미
-> col_value μ„ΈνŠΈλ₯Ό μ—¬λŸ¬κ°œ 적어도 λœλ‹€.
  • select ( R )
    λ°μ΄ν„°λ² μ΄μŠ€ κ°μ²΄μ—μ„œ 데이터λ₯Ό 쑰회
select * | { [] ALL | DISTINCT ] col_name1 | expression [ alias ] .. }
from table_name
where conditions;
order by col_name1 [ ASC | DESC ] ..

-> * : ν…Œμ΄λΈ”μ˜ λͺ¨λ“  열을 선택
-> ALL : μ„ νƒλœ λͺ¨λ“  행을 λ°˜ν™˜ ( default ) μƒλž΅ κ°€λŠ₯
-> DISTINCT : μ„ νƒλœ λͺ¨λ“  ν–‰ μ€‘μ—μ„œ 쀑볡 ν–‰ 제거
-> col_name1 : μ§€μ •λœ μ—΄
-> expression : μ—°μ‚°μž 및 SQL ν•¨μˆ˜μ˜ μ‘°ν•©
-> alias : 별칭, 화면에 λ‚˜μ˜€λŠ” 이름을 μ •ν•  수 μžˆλ‹€.
-> where : 쑰건을 λ§Œμ‘±ν•˜λŠ” ν–‰ 검색
-> order by : col_name1 κΈ°μ€€μœΌλ‘œ μ •λ ¬ ( ASC : μ˜€λ¦„μ°¨μˆœ (default μƒλž΅κ°€λŠ₯), DESC : λ‚΄λ¦Όμ°¨μˆœ )
-> order by col_name1 col_name2 desc;  => col_name1둜 μ˜€λ¦„μ°¨μˆœ μ •λ ¬ ν›„ col_name2둜 λ‚΄λ¦Όμ°¨μˆœ μ •λ ¬ν•œλ‹€.

πŸ”’ alias, 사칙연산, NULL Value
select employee_id as μ‚¬λ²ˆ, first_name as "이 름"
        salary * 12 "μ—° 봉", (salary + salary * IFNULL(commission_pct, 0)) * 12 "μ»€λ―Έμ…˜ 포함 연봉"
from employee;

-> IFNULL ( commission_pct, 0 ) : expr1이 null이면 expr2κ°€ return => μ»€λ―Έμ…˜μ΄ null이면 0을 λ°˜ν™˜ν•œλ‹€.


πŸ”’ CASE exp1 WHEN exp2 THEN exp3
             WHEN exp4 THEN exp5
             ..
             ELSE exp6
    END

select employee_id, first_name, salary,
        case when salary > 15000 then 'κ³ μ•‘ 연봉'
             when salary > 8000 then '평균 연봉'
             else 'μ €μ•‘ 연봉'
        end "연봉 λ“±κΈ‰"
from employees;

-> 봉급이 15000 이상이면 'κ³ μ•‘ 연봉' 8000 이상 '평균 연봉' λ‚˜λ¨Έμ§€λŠ” 'μ €μ•‘ 연봉'

    
πŸ”’ and, or, not

πŸ”’ in , not in
ν¬ν•¨ν•˜λƒ μ•ˆν¬ν•¨ν•˜λƒ 

- λΆ€μ„œ λ²ˆν˜Έκ°€ 50, 60, 70 에 κ·Όλ¬΄ν•˜λŠ” μ‚¬μ›μ˜ μ‚¬λ²ˆ, 이름, λΆ€μ„œλ²ˆν˜Έ 검색

select employee_id, first_name, department_id
from employees
where department_id in (50,60,70);

- λΆ€μ„œ λ²ˆν˜Έκ°€ 50, 60, 70 κ°€ μ•„λ‹Œ κ·Όλ¬΄ν•˜λŠ” μ‚¬μ›μ˜ μ‚¬λ²ˆ, 이름, λΆ€μ„œλ²ˆν˜Έ 검색

select employee_id, first_name, department_id
from employees
where department_id not in (50,60,70);

πŸ”’ between A and B
A 와 B 사이 κ°’

- κΈ‰μ—¬κ°€ 6000 이상 10000 μ΄ν•˜μΈ μ‚¬μ›μ˜ μ‚¬λ²ˆ, 이름, κΈ‰μ—¬ 검색

select employee_id, first_name, department_id
from employees
where salary between 6000 and 10000;

πŸ”’ NULL 비ꡐ : IS NULL, IS NOT NULL
 = NULL 둜 검색이 μ•ˆλœλ‹€ !!
 
- μ»€λ―Έμ…˜μ„ λ°›λŠ” μ‚¬μ›μ˜ μ‚¬λ²ˆ, 이름, κΈ‰μ—¬, μ»€λ―Έμ…˜ 검색

select employee_id, first_name, salary, commission_pct
from employees
where commission_pct is not null;

πŸ”’ LIKE( % , _ )

% : 개수 μƒκ΄€ν•˜μ§€ μ•Šκ³  λͺ‡ 번째 상관 X
_ : 개수, λͺ‡ 번째 λ‹€ λ§žμ•„μ•Όν•œλ‹€ 

- 이름에 'x'κ°€ λ“€μ–΄κ°„ μ‚¬μ›μ˜ μ‚¬λ²ˆ, 이름 검색

select employee_id, first_name
from employees
where first_name like '%x%';

- μ΄λ¦„μ˜ λμ—μ„œ 3번째 μžλ¦¬μ— 'x'κ°€ λ“€μ–΄κ°„ μ‚¬μ›μ˜ μ‚¬λ²ˆ, 이름 검색

select employee_id, first_name
from employees
where first_name like '%x__';



  • update ( U )
    λ°μ΄ν„°λ² μ΄μŠ€ 객체에 데이터λ₯Ό μˆ˜μ •
update table_name
set col_name1 = col_val1 ..
where conditions;

-> where 절의 conditions( 쑰건 )에 λ§Œμ‘±ν•˜λŠ” λ ˆμ½”λ“œμ˜ 값을 λ³€κ²½ν•œλ‹€.
-> where μ ˆμ„ μƒλž΅ν•˜λ©΄ λͺ¨λ“  데이터가 바뀐닀.
  • delete ( D )
    λ°μ΄ν„°λ² μ΄μŠ€ 객체에 데이터λ₯Ό μ‚­μ œ
delete from table_name
where conditions;

-> where 절의 conditions( 쑰건 )에 λ§Œμ‘±ν•˜λŠ” λ ˆμ½”λ“œμ˜ 값을 μ‚­μ œν•œλ‹€.
-> where μ ˆμ„ μƒλž΅ν•˜λ©΄ λͺ¨λ“  데이터가 μ‚­μ œλœλ‹€.

DCL ( Data Control Language )

데이터 μ œμ–΄μ–΄
λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 데이터λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•˜μ—¬ λ°μ΄ν„°μ˜ λ³΄μ•ˆμ„± 및 무결성 등을 μ œμ–΄ν•˜κΈ° μœ„ν•œ λͺ…령어이닀.
DB, Table의 μ ‘κ·Ό κΆŒν•œ μ΄λ‚˜ CRUD κΆŒν•œμ„ μ •μ˜ν•œλ‹€.
νŠΉμ • μ‚¬μš©μžμ—κ²Œ ν…Œμ΄λΈ”μ˜ κ²€μƒ‰κΆŒν•œμ„ λΆ€μ—¬/κΈˆμ§€ 등을 ν•œλ‹€.

grant create user, alter user, drop user
to js with admin option;

-> jsμ—κ²Œ create, alter, drop κΆŒν•œμ„ μ€€λ‹€. ( κ°μ²΄λŠ” select, insert .. 도 κ°€λŠ₯ )
-> with admin option 은 κΆŒν•œ 받은 μ‚¬μš©μžκ°€ λ‹€λ₯Έ μ‚¬μš©μžμ—κ²Œλ„ κΆŒν•œμ„ λΆ€μ—¬ν•  수 μžˆλŠ” 것
revoke create user, alter user, drop user
from js;

-> jsμ—κ²Œμ„œ create, alter, drop κΆŒν•œμ„ νšŒμˆ˜ν•œλ‹€.

TCL ( Transaction Control Language )

νŠΈλžœμž­μ…˜ μ œμ–΄μ–΄
transaction μ΄λž€ λ°μ΄ν„°λ² μ΄μŠ€μ˜ 논리적 μ—°μ‚° λ‹¨μœ„

use jsdb;

create table test(
    var varchar(10)
);

start transaction;

insert into test
values('a');

insert into test
values('b');

commit;
-- μ—¬κΈ°κΉŒμ§€ a,b μ €μž₯

insert into test
values('c');

rollback;
-- commitν•œ μƒνƒœλ‘œ λŒμ•„κ° -> cλŠ” μ €μž₯ μ•ˆλ¨


-> savepoint f1으둜 μ €μž₯ν•˜κ³  rollback to f1으둜 λŒμ•„κ°ˆ μˆ˜λ„ μžˆλ‹€.

ν…Œμ΄λΈ” 생성

  • μŠ€ν‚€λ§ˆ
    μŠ€ν‚€λ§ˆλž€ λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν…Œμ΄λΈ”μ— μ €μž₯될 λ°μ΄ν„°μ˜ ꡬ쑰와 ν˜•μ‹μ„ μ •μ˜

  • ER Diagram ( ERD )
    개체 νƒ€μž…κ³Ό κ΄€κ³„νƒ€μž…μ„ κΈ°λ³Έ κ°œλ…μœΌλ‘œ ν˜„μ‹€ 세계λ₯Ό κ°œλ…μ μœΌλ‘œ ν‘œν˜„ν•˜λŠ” 방법

  • μŠ€ν‚€λ§ˆλ₯Ό μ°Έμ‘°ν•˜μ—¬ ν…Œμ΄λΈ” 생성 SQL μž‘μ„±

member ν…Œμ΄λΈ” 생성

create table member{
    idx         int     auto_increment,
    userid      varchar(16) not null,
    username    varchar(20),
    userpwd     varchar(16),
    primary key (idx)
};

  • μ œμ•½ 쑰건
    • μ»¬λŸΌμ— μ €μž₯될 λ°μ΄ν„°μ˜ 쑰건을 μ„€μ •
    • μ œμ•½μ‘°κ±΄μ„ μ„€μ •ν•˜λ©΄ 쑰건에 μœ„λ°°λ˜λŠ” λ°μ΄ν„°λŠ” μ €μž₯ λΆˆκ°€
    • ν…Œμ΄λΈ” 생성 μ‹œ μ»¬λŸΌμ— 직접 μ§€μ •ν•˜κ±°λ‚˜ constraint둜 지정, λ˜λŠ” ALTERλ₯Ό μ΄μš©ν•˜μ—¬ μ„€μ •κ°€λŠ₯
  • NOT NULL
    μ»¬λŸΌμ— NULL 값을 μ €μž₯ν•  수 μ—†λ‹€.

  • UNIQUE
    μ»¬λŸΌμ— μ€‘λ³΅λœ 값을 μ €μž₯ν•  수 μ—†λ‹€. NULL 값은 ν—ˆμš©

  • PRIMARY KEY
    μ»¬λŸΌμ— μ€‘λ³΅λœ 값을 μ €μž₯ν•  수 μ—†κ³  NULL 값도 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
    μœ μΌν•œ 값을 지정할 λ•Œ μ‚¬μš© , 기본킀라고 λΆ€λ₯Έλ‹€.

  • FOREIGN KEY
    νŠΉμ • ν…Œμ΄λΈ”μ˜ PK μ»¬λŸΌμ— μ €μž₯λ˜μ–΄ μžˆλŠ” κ°’λ§Œ μ €μž₯
    μ°Έμ‘°ν‚€, μ™Έλž˜ν‚€λΌ 뢈리며 NULL 값을 ν—ˆμš©ν•œλ‹€.
    referenceλ₯Ό μ΄μš©ν•˜μ—¬ μ–΄λ–€ μ»¬λŸΌμ— μ–΄λ–€ 데이터λ₯Ό μ°Έμ‘°ν•˜λŠ”μ§€ λ°˜λ“œμ‹œ 지정

  • DEFAULT
    NULL 값이 λ“€μ–΄μ˜¬ 경우 κΈ°λ³Έ μ„€μ •λ˜λŠ” 값을 지정

  • CHECK
    κ°’μ˜ λ²”μœ„λ‚˜ μ’…λ₯˜λ₯Ό 지정

RDB ( Relational DataBase ) λž€ 무엇인가 ?

λ°μ΄ν„°μ˜ 쒅속성을 κ΄€κ³„λ‘œ ν‘œν˜„ν•˜λŠ” 것이 κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ˜ νŠΉμ§• 이닀.
ν˜„μž¬ κ°€μž₯ 많이 쓰이고 μžˆλŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν•œ μ’…λ₯˜μ΄λ‹€.
ν…Œμ΄λΈ”λ‘œ 이루어져 있으며 이 ν…Œμ΄λΈ”μ€ 킀와 κ°’μ˜ 관계λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.

RDB ( Relational DataBase ) 의 νŠΉμ§•

  • λ°μ΄ν„°μ˜ λΆ„λ₯˜, μ •λ ¬, 탐색 속도가 λΉ λ₯΄λ‹€.
  • μ˜€λž«λ™μ•ˆ μ‚¬μš©λœ 만큼 신뒰성이 λ†’κ³ , μ–΄λ–€ μƒν™©μ—μ„œλ„ λ°μ΄ν„°μ˜ 무결성을 보μž₯ν•΄ μ€€λ‹€.
  • 기쑴에 μž‘μ„±λœ μŠ€ν‚€λ§ˆλ₯Ό μˆ˜μ •ν•˜κΈ°κ°€ μ–΄λ ΅λ‹€.
  • λ°μ΄ν„°λ² μ΄μŠ€μ˜ λΆ€ν•˜λ₯Ό λΆ„μ„ν•˜λŠ” 것이 μ–΄λ ΅λ‹€.

πŸ“š DBMS ( DataBase Management System )

DBMS ( DataBase Management System ) λž€ 무엇인가 ?

DBMSλŠ” λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ‹œμŠ€ν…œμ΄λ‹€.
μ‚¬μš©μžμ™€ DBμ‚¬μ΄μ—μ„œ μ‚¬μš©μžμ˜ μš”κ΅¬μ— 따라 데이터λ₯Ό 생성해주고 DBλ₯Ό κ΄€λ¦¬ν•΄μ£ΌλŠ” SW이닀.
DBMSλŠ” 데이터λ₯Ό 계측 λ˜λŠ” 탐색 ν˜•μ‹μœΌλ‘œ μ €μž₯ν•œλ‹€. 파일 μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•΄ μ €μž₯ν•˜λ©° λ”°λΌμ„œ ν…Œμ΄λΈ” κ°„μ—λŠ” μ•„λ¬΄λŸ° 관계가 μ—†λ‹€.
데이터에 λ§Žμ€ λ³΄μ•ˆμ„ μ œκ³΅ν•˜μ§€ μ•ŠμœΌλ©° μ •κ·œν™”λ₯Ό μˆ˜ν–‰ν•  수 μ—†μ–΄ λ°μ΄ν„°λŠ” 높은 쀑볡성을 κ°€μ§ˆ μˆ˜λ„ μžˆλ‹€.
Sybase, dbase 및 Microsort AccessλŠ” DBMS의 λͺ‡κ°€μ§€ μ˜ˆμ΄λ‹€.

RDBMS ( Relational DataBase Management System ) λž€ 무엇인가 ?

RDBMSλŠ” DBMS의 ν•œκ°€μ§€ μœ ν˜•μœΌλ‘œ κ΄€κ³„ν˜• λͺ¨λΈμ„ 기반으둜 ν•˜λŠ” DBMS의 μœ ν˜•μ΄λ‹€.
RDBMSλŠ” ν…Œμ΄λΈ”μ΄ μ„œλ‘œ μ—°κ΄€λ˜μ–΄ μžˆμ–΄ 일반 DBMS 보닀 효율적으둜 데이터λ₯Ό μ €μž₯ , ꡬ성 및 관리할 수 μžˆλ‹€.
그리고 ν…Œμ΄λΈ” κ°„μ˜ 관계 ( join )λ₯Ό μ΄μš©ν•˜μ—¬ ν•„μš”ν•œ 데이터λ₯Ό 검색할 수 μžˆλ‹€.
μ •κ·œν™”λ₯Ό 톡해 λ°μ΄ν„°μ˜ 쀑볡성을 μ΅œμ†Œν™”ν•˜μ—¬ νŠΈλžœμž­μ…˜μ„ μˆ˜ν–‰ν•˜λŠ” 것이 더 쉽닀.
λ°μ΄ν„°μ˜ 원사성, 일관성, 격리 및 내ꡬ성을 μœ μ§€ν•˜λ©° 데이터 무결성을 높인닀.
MSSQL, MySQL, Oracle이 RDBMS의 λͺ‡κ°€μ§€ μ˜ˆμ΄λ‹€.

DATABASE 기본 마무리

κ·Έλž˜λ„ 비ꡐ적 DataBase에 λŒ€ν•œ 지식이 남아 μžˆμ–΄μ„œ 쉬웠닀.
κ·ΈλŸ¬λ‚˜ μ›λž˜ DBκ°€ μ΄ˆλ°˜μ—λŠ” 쉽고 λ’€λ‘œ 갈 수둝 (join) λ³΅μž‘ν•΄ 지기 λ•Œλ¬Έμ— 이제 μ‹œμž‘μ΄λ‹€.
sqld μžκ²©μ¦λ„ λ³΄μœ ν•˜κ³  μžˆμ§€λ§Œ 아직 많이 DBλ₯Ό μ‹€μ œλ‘œ 닀뀄보지 λͺ»ν–ˆκΈ° λ•Œλ¬Έμ— μ—΄μ‹¬νžˆ κ³΅λΆ€ν•΄μ•Όν•œλ‹€.
μ–΄λŠ κ³³μ—μ„œλ‚˜ μ‚¬μš©ν•˜λŠ” DBλ₯Ό 잘 μ•Œκ³  μžˆμ–΄μ•Ό ν•œλ‹€. 그리고 ν•œ 번의 잘λͺ»λœ μ‹€ν–‰μœΌλ‘œ λ‚˜λ½μœΌλ‘œ 갈 수 있기 λ•Œλ¬Έμ— μ‹ μ€‘ν•˜κ²Œ μ‚¬μš©ν•˜μ—¬μ•Ό ν•œλ‹€.( 그런 사둀가 λ§Žλ‹€λ”λΌ γ…‹γ…‹)
이제 기본적인 DB와 DBMS 그리고 ν˜„μž¬ 많이 μ‚¬μš©ν•˜κ³  μžˆλŠ” RDB, RDBNS, SQL 에 λŒ€ν•΄ μ•Œμ•„ λ³΄μ•˜λŠ”λ° 기초λ₯Ό νƒ„νƒ„νžˆ 해놔야 뒀에 μ—¬λŸ¬ ν…Œμ΄λΈ”λ“€μ„ μ΄μš©ν•΄ κ²€μƒ‰ν•˜λŠ” 것을 이해할 수 μžˆλ‹€.
그리고 μ •κ·œν™” 과정도 λ³΅μž‘ν•˜κΈ° λ•Œλ¬Έμ— 기초λ₯Ό νƒ„νƒ„νžˆ ν•˜μž !!





πŸ‘ μ°Έμ‘°
http://www.tcpschool.com/mysql/DB
https://m.blog.naver.com/cjhol2107/221758915414