본문 바로가기

카테고리 없음

데이터베이스 관리를 위한 프로그램

반응형

데이터베이스 관리

데이터베이스는 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합으로, 검색과 갱신의 효율화를 위해 관리 시스템이 만들어졌습니다. 이러한 데이터베이스를 관리하는 시스템으로 MySQL, SQLite와 NoSQL로 분류되는 MongoDB, APACHE hadoop, Cassandra 등이 존재합니다. 여기서는 각각의 시스템에 대한 특징과 장단점에 대해서 분석해 보겠습니다.

 

MySQL은 표준 데이터베이스 질의 언어인 SQL을 사용하는 공개 소스의 관계형 데이터베이스 관리 시스템으로 매우 빠르고, 사용하기 쉽다는 특징을 가지고 있습니다. 또한 전 세계의 380개 이상의 시스템을 대상으로 인기 순위를 매긴 DB-Engines Ranking에서 2022년 10월 기준 2번째에 위치하고 있습니다. 해당 시스템이 가진 장점으로는 오픈 소스 라이선스를 따르기 때문에 무료로 사용 가능하고, 다양한 운영체제에서 사용할 수 있으며, 여러 가지 프로그래밍 언어를 지원합니다. 또한 널리 알려진 표준 SQL 형식을 사용하며, 응용 프로그램을 사용자의 용도에 맞게 수정할 수 있습니다. 그러나 사용자 정의 함수(UDF)의 사용이 어렵고 유연하지 못하다는 것과 완벽한 트랜잭션 지원이 불가능하다는 단점을 가지고 있습니다.

 

SQLite는 MySQL과 같은 데이터베이스 관리 시스템이지만, 서버가 아닌 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터 베이스로, 2022년 10월 기준 DB-Engines Ranking에서 10번째에 위치하고 있습니다. 이는 Windows, 맥 OS, 리눅스, iOS, 안드로이드 등 다양한 플랫폼에서 실행이 가능하고, 트랜잭션과 원자성 동작을 지원하므로 프로그램 충돌이나 정전 발생 시에도 데이터베이스가 손상되지 않는다는 장점을 가지지만, 대규모 작업에 적합하지 않고, 수평 확장 설계가 필요한 앱에서 사용이 불가능하며, 여러 연결에서 동시 쓰기 작업을 실행하는 앱을 사용하지 못한다는 단점을 가집니다.

 

몽고 DB, 아파치 하둡, 카산드라 등의 NoSQL은 데이터를 보관하기 위해 고정된 구조화된 테이블이 없는 데이터 베이스로, 정해진 스키마가 없어 자유롭게 데이터를 저장할 수 있습니다. 또한 관계형 데이터베이스 관리 시스템(RDBMS)의 복잡도와 용량 한계를 극복했다는 특징을 가지고 있습니다. NoSQL은 유연성, 확장성, 고성능, 고기능성의 장점을 가지며, 데이터베이스 일관성에 약하고, 데이터 중복으로 인한 수정 작업이 번거로우며, 데이터를 업데이트하는 경우 모든 컬렉션에서 수행하기 때문에 느려진다는 단점을 가지고 있습니다.

 

반응형