DB(Dateabase)
- 데이터들을 저장하고 조회하는 프로그램
- ex) 인터넷 쇼핑몰 - 상품 주문, 학교 성적 조회, 은행 계좌 관리 등
데이터베이스의 필요성
-
데이터들끼리 중복된 정보가 있을 경우 이를 통합하여 구조적이며 효율적으로 데이터를 저장한다.
-
컴퓨터 언어로 제어가 가능하고 앱이나 웹을 통해 전세계로 공유가 가능하다.
-
즉, DB는 파일을 조직적으로 통합하여 자료 항목의 중복을 최대한 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 할 수있다.
DB의 특징
DB는 단순히 아무 데이터나 마구잡이로 저장해 놓지 않고 구조적인 형태를 유지하기 위해 나름 효율적인 데이터 저장 규칙이 존재한다.
-
통합된 데이터
- 여러가지의 데이터를 통합하여 저장하는데 중복된 정보를 그대로 저장하면 용량 낭비가 발생하는 비효율적인 현상이 발생 -> 중복된 정보에 대해서 데이터를 통합하여 자료의 중복을 최소화한 데이터의 모임으로 구성한다.
-
저장된 데이터
- 우리가 사진이나 동영상 파일을 하드디스크나 SSD에 저장하는 것처럼, 컴퓨터가 접근할 수 있는 매체에 데이터를 저장한다.
-
운영 데이터
- DB는 주로 조직의 목적을 위해 존재하고 활용되는 운영 데이터를 다루는데 이용된다.
- 쇼핑몰의 경우 판매량이나 재고량 등이 운영 데이터이다.
- 단순하거나 임시적으로 데이터 저장이 필요하다면 그냥 폴더에 저장해 버리면 된다.
-
공유 데이터
- 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터
- 하나의 컴퓨터나 시스템을 위한 데이터가 아니라 여러 시스템들이 공용으로 엑세스하여 이용한다.
DB의 기능 특징
- 실시간 접근성
- DB는 사용자의 요구에 신속하고 정확하게 응답이 가능해야 한다.
- ex. 쇼핑몰 - 상품 검색 or 주문
- 계속적인 변화
- 현실 세계의 변화를 반영하기 위해 새로운 데이터의 삽입, 삭제, 갱신으로 항상 최신의 데이터를 유지한다.
- ex. 쇼핑몰 - 상품 정보, 가격 정보를 상황에 따라 계속 변경
- 동시 공용
- 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 한다.
- ex. 쇼핑몰 - 여러 고객이 동시에 같은 상품 검색, 구매
- 내용에 의한 참조
- DB에 있는 데이터를 참조할 때 사용자의 요구에 따른 데이터 내용으로 데이터의 위치나 데이터를 찾는다.
- ex. C언어 포인터, URL 주소
DBMS(DataBase Management System)
- DBMS : 데이터베이스를 관리하는 소프트웨어
- DB는 특정 조직의 업무를 수행하는데 필요한 상호 관련된 데이터들의 복잡한 모임이지만, DBMS는 DB의 데이터들을 효율적으로 저장, 검색, 수정, 삭제, 보호할 수 있도록 도와준다.
DBMS의 종류
-
HDBMS
- 최초의 DBMS
- 데이터를 트리 구조로 표현
- 데이터 접근 속도가 빠르고 단순한 구조를 가진다.
- 데이터의 중복이 많고 구조 변경이 어려우며 관계 표현이 제한적이다.
-
NDBMS
- 데이터를 그래프 구조로 표현
- HDBMS보다 관계 표현이 유연하고 다대다 관계를 지원
- 구성과 설계가 복잡하고 데이터 종속성을 해결하지 못한다.
-
RDBMS
- 데이터를 테이블 형태로 표현
- 데이터의 중복을 최소화하고 구조 변경이 쉽고 SQL 언어를 사용하여 데이터를 쉽게 조작이 가능
- ACID 원칙을 준수하여 데이터의 무결성과 일관성 보장
- RDBMS에는 MySQL, Oracle, SQLite 등이 있다.
-
ODBMS
- 데이터를 객체의 형태로 표현
- 객체지향 프로그래밍 언어와 호환성이 높고 복잡한 데이터 타입을 지원
- 성능이 낮고 표준화가 부족하고 SQL과 호환되지 않는다.
-
NO SQL
- 여러가지의 모델로 데이터를 표현
- 어느 한가지 형태의 데이터베이스를 지칭하지 않고, RDBMS의 테이블 형태가 아닌 형태를 띈 DB를 총칭한다.
- RDBMS보다 확장성과 가용성이 높고 유연한 스키마를 가진다.
- 데이터의 일관성이 항상 보장되지 않고 기존 SQL과 호환되지 않는다.
- 대용량 데이터나 분산 처리에 매우 빠르게 대응이 가능하기 때문에 SNS에서 쓰인다.
RDBMS 종류
- Oracle(오라클)
- 전세계적으로 가장 많이 활용되는 관계형 데이터베이스 시스템(RDBMS)
- 오라클사에서 서비스 / Unix, Linux, Windows 등의 대부분의 OS를 지원
- RAC의 기능으로 데이터베이스 관리에 있어 자원의 확장성과 장애에 대한 대처가 유연하다.
- MSSQL / SQL Sever(Microsoft)
- 마이크로소프트사의 대표적인 관계형 데이터베이스 시스템
- MySQL(오라클)
- 썬 마이크로시스템즈에서 개발한 관계형 데이터베이스 시스템
- 유닉스나 리눅스, 윈도우 운영 체제 등에서 사용할 수 있으며, 오픈소스의 장점으로 많은 기업에서 홈페이지나 쇼핑물 등 일반적인 웹 개발에 널리 이용
- 전 세계에서 가장 많이 사용되는 DBMS
- MariaDB
- MySQL과 완벽하게 호환되며 기본적인 명령이나 사용방법까지 동일하기 때문에 개발자 또는 DBA가 쉽게 접할 수 있다.
- MariaDB는 MySQL의 상위 버전
- DB2(IBM)
- 대형화된 데이터 관리를 목적으로 만들어진 IBM의 관계형 데이터베이스 관리 시스템
- 사용자들이 서로 관계된 여러 개의 데이터베이스를 동시에 접근이 가능
- 각 워크로드(업무)의 특성에 맞게 시스템이 최적화될 수 있다.
- 자가 최적화, 자가 치유, 자가 구성, 워크로드 관리, 확장된 자동화 기능 등 다양한 기능 구현
- 데이터 압축 기술이 좋아 대형화된 데이터를 다루는데 최적화
- Sybase