아마도 여러분은 관계형 데이터베이스의 가장 많이 사용되고 있을 건데요. 그중에서도 오라클이 가장 익숙하실 겁니다. 오늘은 대표적인 관계형 DB인 오라클, My SQL Server 살펴보도록 하겠습니다.
오라클의 특징이 곧 관계형 데이터베이스의 특징이라 해도 과언은 아닙니다. 그 만큼 많은 사람들이 사용했고 레퍼런스도 많다는 장점이 있습니다. 처음에 데이터베이스에 입문할 때도 Oracle로 하는 경우가 많습니다.
관계형 데이터베이스 특징
1. 2차원 테이블로 데이터 표현
관계형 db의 테이블을 가장 쉽게 이해하는 방법은 엑셀(excel)과 비슷하다고 생각할 수 있습니다. 엑셀 창을 열면 행과 열로 표현할 수 있게 되어 있습니다. 처음에 SQL을 배우면 아래 그림처럼 데이터를 출력하는 방법부터 배웁니다.
2. 데이터 무결성(Data Integrity) 보장
데이터베이스의 특징에서 설명한 것처럼 데이터 무결성을 보장합니다. 동일한 데이터가 두번 들어가지 않게 일관성을 유지해 줍니다. 중복이 발생한다면 데이터 활용에 혼란이 생기겠죠.
3. 데이터 처리를 위해 SQL 사용
SQL이라는 표준 언어를 사용할 수 있습니다. 스크립트 언어이고 ANSI 표준과 각 데이터베이스만의 고유한 SQL이 있기도 합니다. 하지만 대체로 SQL은 비슷합니다. 데이터베이스를 사용하기 위해서는 SQL를 무조건 알아야 합니다. SQL의 기본적인 이해를 위해 링크를 참고하시기 바랍니다.
4. 집합처리 개념
관계형 데이터베이스는 한번에 레코드를 처리하는 것이 아니라 집합을 처리합니다. SQL을 배우다 보면 알게 되겠지만 단건 처리가 아니라 집합으로 작업을 한다는 것을 알 수 있습니다. 단건 처리는 속도가 느리기 때문에 다중처리(arrary processing)을 사용합니다.
5. ACID
정보처리기사나 SQLD를 공부하다 보면, ACID 개념이 나오는데요. ACID는 dbms에서 트랜잭션을 안전하게 작동할 수 있게 보장하는 네 가지 중요한 특성의 약자입니다. (ACID는 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)의 약자)
삽입(Insert), 삭제(Delete), 갱신(Update) 문에 의해 데이터는 항상 변화합니다. 그 변화 속에서도 현재의 정확한 데이터 유지해야 합니다. 이것을 '트랜젝션'이라는 개념을 통해 할 수 있습니다.
오라클 아키텍처
오라클 아키텍처는 크게 3가지만 알면 됩니다. 물론 3가지 내에 각각의 기능들에 대해서는 더 자세한 공부가 필요합니다. 하지만 전체적인 아키텍처를 이해하는 데는 아래 3가지면 충분합니다.
1. 프로세스 영역
이 영역은 백그라운드 프로세스(DBWR, LGWR, PMON, SMON, CKPT)와 사용자 프로세스 그리고 서버 프로세스로 구성되어 있습니다.
2. 메모리 영역
공유풀 영역(SHARED POOL), 데이터 버퍼캐쉬(DATA BUFFER CACHE) 영역, 로그 버퍼(LOGO BUFFER) 영역 그리고 라지풀(LARGE POOL) 영역으로 구성되어 있습니다.
3. 파일 영역
컨트롤 파일(CONTROL FILES), 파라메터 파일(PARAMETER FILES), 데이터 파일(DATA FILES) 그리고 리두로그 파일(REDO-LOG FILES)로 구성되어 있습니다.
오라클 장단점
오라클의 장점은 뛰어난 신뢰성과 안정성입니다. 고성능의 복잡한 쿼리를 처리하기에 적합합니다. 오라클은 보안 기능이 확실합니다. 데이터 암호화, 권한 관리 및 감사 추적(Auditing)을 통해 데이터를 안전하게 보호합니다.
단점은 라이선스 비용이 비싸다는 것입니다. 아무래도 중소기업 및 스타트업에게는 부담이 될 수밖에 없는 금액대입니다. 오라클의 라이런스 정책은 두가지가 있습니다.
- Named User 라이선스 : 접속하는 사용자 수를 기반으로 책정하는 방식입니다. 예를 들어, 500 user가 사용한다면 그만큼에 비례해서 가격이 정해집니다.
- Processor 라이선스 : 서버 CPU 수를 기반으로 책정하는 방식입니다. 이 방식은 사용자 수는 상관하지 않지만 서버에 얼마나 많은 CPU가 꽂혀 있는지에 따라 정해지는 방식입니다.
사이트마다 라이선스 정책을 따져보고 가장 저렴한 방법을 채택할 수 있게 하고 있습니다. 오라클 데이터베이스도 클라우드 환경에서 Oracle을 실행하고 관리할 수 있게 서비스를 제공하고 있습니다. 또 빅데이터 및 데이터 분석을 위한 도구 및 서비스를 제공하여 실시간 분석 및 머신러닝을 지원합니다.
Microsoft SQL Server
오라클은 UNIX, 리눅스, 윈도우, IBM AIX 등에 플랫폼에서 실행할 수 있는 반면, SQL Server는 주로 윈도우 환경에서 사용하기 위해 설계되었다고 보면 됩니다. 리눅스나 컨테이너 환경에서 가능은 하지만 사용하는 경우는 거의 드뭅니다.
SQL Server의 차별화 전략은 소규모 및 중규모 기업용 환경에 적합하게 만들어 공략하는 것이었습니다. 또 BI 및 DW 개발 환경을 지원하는 데 강점을 가지고 있습니다. 작은 규모에서는 무료로 사용할 수 있는 SQL Server Express Edition을 있고, 오라클에 상대적으로 저렴한 가격대와 옵션이 있어 상당한 점유율을 차지합니다.
마치며
관계형 데이터베이스의 대표적인 두 dbms를 알아보았습니다. 요즘에는 database시장이 다변화되어 글로벌 회사들도 상용 dbms와 함께 오픈소스 dbms도 많이 사용합니다. 예를 들어, MySQL, PostgerSQL 등 사용하는 추세입니다. 오픈소스 rdbms에 대해 자세한 내용은 아래 링크를 참고하세요.
PostgreSQL vs MySQL, 오픈소스 db 뭐가 더 좋을까?
'데이터베이스' 카테고리의 다른 글
Sybase IQ 특징 및 장단점 - Column-wise, Bit-wise Index (0) | 2023.11.09 |
---|---|
MySQL 아키텍처 및 특징 - Scale Out, Sharding(샤딩) (0) | 2023.11.08 |
데이터베이스(Database) 종류, DB 역사는 어떻게 달라졌나? (1) | 2023.11.06 |
데이터베이스 아키텍처 구성 요소 및 작동 원리 (0) | 2023.11.03 |
데이터베이스(Database)는 어떤 특징이 있는가? (0) | 2023.11.02 |