[DataBase] 데이터베이스 기초
오늘날을 정보화 시대라고 부르는 만큼 사람들은 엄청난 양의 데이터 속에서 살아가고 있습니다.
이미지, 텍스트, 문서, 문자열, 숫자 등 데이터는 다양한 형태로 존재하며 각각 용도에 맞게 처리되어 사람들에게 보입니다.
많은 양의 데이터를 효율적으로 관리하고 처리하기 위해 고안한 것이 데이터베이스입니다.
(1) 데이터베이스
1-1. 데이터베이스 정의
-
데이터베이스는 체계적으로 조직된 데이터의 집합
-
가장 많이 사용되는 데이터 모델은 관계형 데이터 모델이며, 표 형식으로 구성
-
데이터 구조화 > 사용자가 얻는 이점이 많고, 대량 데이터를 처리하는 여러 기관, 기업, 웹 사이트 등에서 필수적 사용
[표 1] 데이터베이스 예시
고객 아이디 | 주문번호 | 주문일자 | 결제완료일자 | 결제금액 |
100101 | 20200301-001 | 2020-03-01 | 2020-03-01 | 100,000 |
100102 | 20200301-002 | 2020-03-01 | 2020-03-01 | 70,000 |
100103 | 20200301-003 | 2020-03-01 | 2020-03-02 | 200,000 |
100104 | 20200302-001 | 2020-03-02 | 2020-03-02 | 50,000 |
100105 | 20200302-002 | 2020-03-02 | 2020-03-03 | 300,000 |
100106 | 20200303-001 | 2020-03-03 | 2020-03-03 | 10,000 |
100107 | 20200304-001 | 2020-03-04 | 2020-03-04 | 40,000 |
100108 | 20200304-002 | 2020-03-04 | 2020-03-05 | 150,000 |
[표 2] 주문일자가 2020-03-01인 데이터만 추출한 결과
고객 아이디 | 주문번호 | 주문일자 | 결제완료일자 | 결제금액 |
100101 | 20200301-001 | 2020-03-01 | 2020-03-01 | 100,000 |
100102 | 20200301-002 | 2020-03-01 | 2020-03-01 | 70,000 |
100103 | 20200301-003 | 2020-03-01 | 2020-03-02 | 200,000 |
위 결과를 보면 비슷한 유형의 데이터끼리 분류되어 있는 것을 알 수 있다.
데이터가 일정한 순서로 나열되어 데이터를 수정 및 검색하는 데에 걸리는 시간이 크게 줄어든다.
사용자는 SQL(Structured Query Language)이라는 쿼리 언어로 원하는 데이터만 추출이 가능하다.
위와 같이 주문일자가 2020-03-01인 정보만을 원한다면, 조건을 추가한 쿼리를 다음과 같이 입력한다.
SELECT * FROM 주문정보 WHERE 주문일자 = '2020-03-01'
-
데이터 추출뿐만 아니라, 데이터 삭제 / 수정 / 추가할 때도 간단한 명령문을 입력
-
일괄적 변경 가능, 표의 내용 일부 변경도 가능
-
여러 표를 한데 묶어 출력하는 것도 가능
1-1-1. 데이터베이스에 어떻게 접근하는가?
-
사내 네트워크망에 포함되지 않은 외부 사용자는 인터넷을 통해 공개된 웹 서버에 접속
-
해당 서버는 필요한 데이터를 데이터베이스 서버로부터 불러옴
※ 데이터베이스 보안을 위해 외부 사용자가 데이터베이스 서버에 직접 접속하지 못하게 하는 것
(하지만 웹이나 애플리케이션 보안이 취약하면 공격자가 악의적인 SQL 구문을 입력하여 민감 정보 빼오기 가능)
1-2. 데이터베이스 특징
1) 데이터 중복 허용 X
-
DBA(Database Adminstrator)로 중앙 집중화되어 관리 > 불필요한 데이터 중복 피함
-
저장하고 있는 데이터 총 용량도 줄어듦
-
데이터 중복은 예기치 못한 상황을 만들 수 있어 허용하지 않는 것이 일반적 (몇몇 경우는 일부러 허용하기도 함)
2) 데이터 공유
-
여러 사용자와 응용 프로그램이 데이터베이스 내의 데이터 공유 가능
3) 데이터 무결성
-
데이터 일관성과 정확성 보장 > DB, RDBMS(Relational Database Management System)의 중요 특징
-
중앙 집중화 된 관리 > 데이터 정확성, 일관성 유지
4) 데이터 보안
-
DBA는 사용자마다 데이터베이스 접근 권한 부여 > 허가받지 않은 접근 차단
-
접근 권한 부여 및 회수 명령어는 SQL 중 DCL로 GRANT와 REVOKE가 있음
5) 데이터 독립성
-
물리적 독립성과 논리적 독립성으로 나뉨
-
물리적 독립성은 데이터를 담고 있는 저장장치가 바뀌어도 응용 프로그램까지 바꿀 필요 없음을 의미
-
논리적 독립성은 데이터베이스 테이블에 데이터가 새로 추가/삭제 /갱신되어도 응용 프로그램을 바꿀 필요가 없음을 의미
-
결론적으로, 데이터베이스 환경 변화는 해당 데이터베이스를 사용하는 응용 프로그램에 영향을 끼치지 않음
# Reference
'DB' 카테고리의 다른 글
[DataBase]DCL (데이터 제어어) (0) | 2020.03.20 |
---|---|
[DataBase] DML (데이터 조작어) (0) | 2020.03.20 |
[DataBase] DDL (데이터 정의어) (0) | 2020.03.20 |
[DataBase] DBMS(Database Management System) (0) | 2020.03.18 |
[DataBase] 데이터베이스 모델 (0) | 2020.03.16 |