IT 지식 공부

[JAVA] RDBMS 개념

wonderson 2022. 5. 24. 10:07
반응형

1. DB(DataBase)는 무엇인가?

  • 컴퓨터에 저장되는 데이터 집합입니다. 이런 데이터들은 쉽게 접근, 사용하기 위해서 구조화된 형태로 존재한다. (Table, key-value 형태 등등)

2. DBMS(DataBase Management System)는 무엇인가?

  • DB를 관리하는 시스템을 의미한다.
  • DB는 그 자체로는 어떠한 작업을 할 수 없는 그저 정보이기 때문에 다루기 위해서 DBMS라는 소프트웨어 프로그램이 필요하다.
  • DBMS에서는 DB와 유저, 프로그램 사이의 인터페이스 역할을 수행하고 유저가 정보를 생성, 검색, 수정, 삭제 등등의 작업을 관리할 수도 있게 해준다. 추가적으로 SQL 튜닝이나, 데이터 백업, 복구, 모니터링까지도 가능하게 해준다.(SQL 기반 DBMS경우)
  • 최고의 DBMS는 데이터를 효과적으로 처리하며 사용자의 데이터를 정확한 기록으로 유지할 수 있도록 도와주며 데이터 구성, 조작, 검색을 제공하고 적시에 원하는 정보에 엑세스하도록 하는 것이다.
  • 단점
    • 데이터를 계층 또는 탐색 형식으로 저장한다. 파일 시스템을 사용해 저장하며 따라서 테이블 간에는 아무런 관계가 없다.
    • 데이터에 대한 많은 보안을 제공하지 않고 정규화를 수행할 수 없어 데이터들이 높은 중복성을 가질 수도 있다.
  • DBMS의 예로 Sybase, dbase 및 Microsoft Access 등이 있다.

 

3. RDBMS(Relational Database Management System)는 무엇인가?

  • 관계형 모델(RDB)을 기반으로 하는 데이터베이스 관리 시스템이다.
    • RDB(Relational Database)는 데이터 베이스 안에서 데이터들 사이의 관계성을 가지는 데이터들을 다루는 DB
  • 장점
    • RDBMS의 테이블은 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다.
    • 정규화를 통해 데이터의 중복성을 최소화하면 트랜잭션을 수행하는 것이 더 쉽다.
    • 데이터의 원자성, 일관성, 격리 및 내구성을 유지하면 데이터 무결성을 높인다.
  • RDBMS의 ACID 특징 참고
    • 더보기
      Atomicity : 원자성은 트랜잭셔과 관련된 작업들이 부분적으로 실행되다가 중지되는 것이 아니라 하나의 원자 단위로 수행되는 것을 보장하는 특징이 있다. 즉, 중간 단계까지 실행되는 것이 아니라 처음부터 끝까지 완전하게 실행되며 중간에서 실패하는 일이 없도록 한다.

      Consistency : 일관성은 트랜잭션이 완료되면 언제나 일관된 DB 상태를 유지하는 것을 의미한다.

      Isolation : 독립성은 트랜잭션을 수행 할 시, 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미하는데, 다시말해 다른 트랜잭션의 연산이 중간 단계의 데이터를 볼 수 없음을 의미한다.

      Durability : 지속성은 성공적인 트랜잭션은 영원히 반영되어야 함을 의미한다. 시스템 에러, DB 일관성 체크 등을 하더라도 유지되어야함을 의미한다. 트랜잭션은 로그에 모든 것이 저장된 후에만 Commit 상태로 간주될 수 있다.
  • RDBMS의 예로 MSSQL, MySQL, Oracle 등이 있다.
  • RDBMS는 DBMS의 한 유형이다.

 

3. RDBMS의 종류와 특징

1. Oracle DB

  • 오라클사에서 만들어 판매중인 상업용 DB이고 점유율 1위 DBMS이다.
  • 관계형 모델에서 객체-관계형 DB로 확장하면서 복잡한 비즈니스 모델을 RDBMS에 저장할 수 있도록 만들었다. 객체지향 데이터베이스를 지원한다는 것은 개발자가 스스로 데이터형과 메서드를 자유롭게 정의하여 DB를 개발할 수 있도록 돕는다. (사용자 정의 유형, 상속 및 다형성과 같은 객체 지행 기능을 구현 가능)
  • 장점
    • Window, Linux, Unix 등 다양한 OS에 설치 가능하며 대기업에서 주로 사용하는데 이는 MySQL, MS-SQL 과 비교하여 대량의 데이터 처리에 용이한 특징이 있기 때문이다.
  • 단점
    • 비공개 코드 소스에 폐쇄적인 운영과 고비용이기 때문에 오픈소스 및 무료 DBMS들에 비해서 접근성이 떨어진다.

 

2. MySQL

  • 상용버전으로 서비스 시작해서 현재는 Oracle에 합병되었다. 중소기업 뿐만 아니라 최근 많은 대기업에서도 사용하고 있는 DBMS인데 상업적으로 사용할때 비용이 발생하나, Oracle에 비해서 저렴하고 오픈소스이며 기본적으로 무료 프로그램이라는 장점 때문에 현재 시장 점유율 2위를 기록하고 있다.
  • Window, Linux, Unix 등 다양한 OS에 설치 가능하고, 클라이언트/서버 시스템에 적용 가능하며 임베디드 시스템에서도 동작이 가능하다.
  • 장점
    • 웹 기반 애플리캐이션을 개발한다면 최고의 DB라고 할 수 있다.
    • 프로시저를 통해서 데이터 레코드 삽입, 삭제와 같은 단계를 하나로 묶어서 사용될 수 있으며 이벤트식으로 동작하는 트리거도 존재한다.
    • 5천건 이하의 데이터를 다루는데 적합하며, 속도, 안정성, 확장 가능성을 가장 추구하는 DBMS라고 할수 있다.

 

3. MS-SQL(Microsoft SQL Server)

  • Microsoft 사에서 개발한 사업용 DB이며 현재 점유율 3위이다.
  • 리눅스 버전은 오픈소스이지만, 비공개 소스에 폐쇄적인 운영을 하고 있습니다. 다른 OS에서도 사용이 가능하나 Window OS에 특화되어 있다는 것이 특징입니다.
  • 장점
    • 높은 보안성 수준을 보여주며 신뢰성, 생산성, 지능적 특징을 가지는 DBMS

 

 

 

 

참고자료

https://velog.io/@choijaehyeokk/DBMS%EC%99%80-RDBMS

 

DB, DBMS, RDBMS를 한페이지로 정리!

DB, DBMS, RDBMS에 대해서 한번에 정리가 필요한사람! 세상에 DBMS 종류가 이렇게 많았구나..

velog.io

https://m.blog.naver.com/cjhol2107/221758915414

 

[DB] DBMS와 RDBMS의 개념, 차이, 관계

DBMS - DBMS는 DataBase Management System의 약자로 데이터베이스를 관리하는 시스템이다. - ...

blog.naver.com

https://jwprogramming.tistory.com/52

 

RDB, RDBMS 란?

보통, Database를 사용하면 Oracle 또는 MySQL을 많이 접하게 됩니다. Oracle과 MySQL 둘 다 관계형 데이타베이스(이하 RDB)입니다. 요즘은 NoSQL이 많이 뜨는 추세인데, 추후에 NoSQL에 대해서도 다뤄보도록

jwprogramming.tistory.com

 

반응형

'IT 지식 공부' 카테고리의 다른 글

[JAVA/Springboot] DTO 개념  (0) 2022.05.26
[JAVA/Springboot] Path variable 개념  (0) 2022.05.25
[JAVA] JPA 개념  (0) 2022.05.23
[JAVA] Getter와 Setter 사용하는 이유?  (0) 2022.05.23
[JAVA] Gradle 개념  (0) 2022.05.21