다양한 데이터베이스
1. 데이터베이스 종류
계층형 데이터베이스
: 역사가 오래된 DBMS로, 폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식의 DB이다(트리 구조겠네). 하드디스크나 DVD 파일 시스템이 이러한 계층형 DB이다. 하지만 요즘에는 DBMS로서 채택되는 경우가 거의 없다.
관계형 데이터베이스(RDBMS)
: ‘관계 대수(relational algebra)’라는 것에 착안하여 고안한 DB. 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 DB를 가리킨다.
표 형식 데이터란 2차원 데이터를 말한다. 가로 방향으로 ‘행’(Row), 세로 방향으로 ‘열’(Col)을 나열한다. RDBMS는 이러한 표를 잔뜩 저장해두고, 각각의 표에 이름을 붙여 관리(구별)한다. 이때 DB안의 데이터는 SQL 명령어로 조작가능하다.
객체지향 데이터베이스
: 자바나 c++이 객체지향(Object - Oriented)인데, ‘객체(Object)’라는 것을 중심으로 프로그래밍하는 언어이다.
객체지향 DB는 ‘가능하면 객체 그대로를 DB의 데이터로 저장하는 것’ 이다.
=> 크… 마치 Packet 과 같네.
XML 데이터베이스
: XML이란 자료 형식을 가리키는 용어로, 태그를 이용해 마크업 문서를 작성할 수 있게 정의한 것인데, XML 데이터베이스는 이처럼 XML 형식으로 기록된 데이터를 저장하는 데이터베이스이다.
키-밸류 스토어(KVS)
: 키(Key)와 그에 대응하는 값(밸류,Value)이라는 단순한 형태의 데이터를 저장하는 데이터베이스이다. 키와 밸류의 조합은 연상배열(== Map, Dictionary)이나 해시 테이블(hash table)에서 자주 볼 수 있다. NoSQL(Not noly SQL)이라는 슬로건으로부터 생겨난 DB로, 열 지향 데이터베이스라고 불린다.
2. RDBMS 사용 시스템
-
메인프레인(main frame) 에서 대부분 RDBMS를 사용한다. 기업의 기반 시스템으로 채택되는 것은 일반적인 일.
- 하지만 요즘엔 다운사이징으로 메인프레임에서 소형 워크스테이션(workstation) 으로 대체되면서 데이터베이스 서버로 RDBMS 가 사용됐는데 이때부터 서버/클라이언트 구조 유행함.
- 현재 일반적으로 사용하는 인프라는 인터넷. 웹 시스템과 연동하여 RDBMS를 사용하는 경우가 매우 많아짐. 비행기의 대규모 예약 시스템에서 마을 병원의 작은 예약시스템까지 RDBMS는 널리 쓰임.
- 단말이 고성능화, 소형화되면서 지금은 휴대폰에도 RDBMS가 내장됨. 예를 들어 구글이 개발한 휴대전화용 OS인 안드로이드에는 ‘SQLite’라는 RDBMS가 표준으로 내장되어있다.
3. 데이터베이스 제품
- 전부 RDBMS(Relational Database)
-
Oracle
- Oracle Database. 오라클 회사에서 만든 데이터베이스. 역사가 깊고, 현재 가장 많이 쓰이는 RDBMS 중 하나로, RDBMS 의 표준이라고 해도 문제없을 정도로 유명하다. -
DB2
- IBM이 개발한 DB2는 Oracle처럼 역사가 오래된 RDBMS이다. 다만 오라클이 유닉스(UNIX) 워크스테이션 중심이었던 것과 달리, DB2는 한동안 IBM 컴퓨터에서만 구동되었고, 이는 다른 플랫폼에서 사용할 수 없다는 불편함 때문에 시장 점유율을 많이 가져가지 못했다. 이후 유닉스나 윈도우에서도 DB2가 구동가능해졌지만 시장 점유율은 확대되지 못했다. -
SQL Server
- SQL Server는 윈도우를 개발한 Microsoft 가 개발한 RDBMS로, 윈도우 플랫폼에서만 동작한다. 윈도우가 서버분야로 영역을 넓히면서 SQL Server를 사용하는 시스템이 많이 증가함. -
PostgreSQL
- PostgreSQL은 오픈소스 커뮤니티에서 개발한 RDBMS로, 무료다. 기반이 되는 RDBMS 는 캘리포니아 대학 버클리캠퍼스에서 탄생했고, 그래서인지 실험적인 기능도 포함되어 있거나 독특한 구조를 가지기도 한다. -
MySQL
- PostgreSQL처럼 오픈소스 커뮤니티에서 탄생한 RDBMS. 이후 썬이 가지고 이후 오라클이 소유하고 있다. 처음 나올땐 경량 DB로서 최소한의 기능만을 갖추었지만, 지금은 다른 RDBMS와 비교해도 부족하지 않다. -
SQLite
- 오픈소스 커뮤니티에서 태어난 SQLit는 임베디드 시스템에 자주 쓰이는 작은 하드웨어용으로 경량화한 RDBMS이다.
4. SQL의 방언과 표준화
SQL을 여러 RDBMS 회사가 사용하면서 자연스레 특정 데이터베이스 제품에만 통용되는 고유 명령어, 즉 고유 방언이 생겨났다. 고유 방언을 사용하면 다른 데이터베이스에는 적용되지 않으므로 SQL 표준어(표준 명령어)를 사용하도록 하자.