본문 바로가기

끄적대기

관계형 데이터베이스 ORM

728x90
반응형

˙관계형 데이터베이스 ORM(RDBMS)

 상호 관련성을 가진 형태로 표현된 데이터(자료)로, 데이터베이스(DB)끼리 서로 관계를 맺고 있는 형태이다. 대표적으로는, Oracle, SQL, MySQL, PostgreSQL, Maira 등이 대표적으로 존재한다.

 

 ▷ ORM : Object Relational Mapping | 객체 관계 매핑

   Object와 관계형 데이터베이스의 데이터를 자동으로 연결해주는 행위로, 객체 모델과 관계형 모델 간의 불일치를 ORM을 통한 객체 간의 관계를 바탕으로 SQL 자동 생성하여 불일치를 해결한다. 객체를 통하여 간접적으로 데이터베이스의 데이터를 다루는 형태이다. ORM을 이용하게 되면 긴 SQL 문을 작성하지 않고도 한층 더 쉽게 만들 수 있다. 관계형 모델과 관련된 성능 오버헤드를 수반하지 않고도 적합한 모델을 생성할 수 있다(Object 관점).

 

 객체 지향적인 코드로 인하여 객관적이고 비즈니스 로직에 집중할 수 있도록 한다(효율적인 코드 작성 및 가독성 증가). 재사용 및 유지보수 등에 대한 편리성이 보다 증가(매핑 정보가 명확하여, ERD를 보는 것에 대한 의존도 감소)한다. DBMS에 대한 종속성이 상대적으로 감소(대부분의 ORM은 DB에 종속적이지 않음)한다. 하지만, 완벽한 ORM으로만 서비스를 구성하기 쉽지 않다(사용은 편리할 수 있어도, 기획은 신중하게 해야 함). 프로시저가 많은 시스템에서는 장점을 활용하기 어려운 부분이 있다(다시 객체로 변경해야 하는 상황이 발생하며, 리스크가 큼).

 

 ▷ Transaction

   RDBMS는 원자성*, 일관성*, 고립성*, 지속성*을 보유하고 있다. Transaction 기능을 보장하기 위함으로, 일련의 작업들을 하나로 묶어서 관리하기 위한 것으로, 하나의 작업이라도 실패할 시에는 모두 실패하는 것과 동일한 결과가 도출된다.

 

 ▷ Table(Relation)

   기본단위로 데이터를 저장하는 DB 공간으로, 서로 간의 통신이 가능하고, 여러 개의 DB를 동시에 운영 가능하다. 2차원적인 테이블을 여러 개 만들어서 데이터를 나누어 관리할 수 있고, 다른 테이블과의 관계를 맺을 수 있다.

 

 ▷ SQL(Structured Query Language)

   데이터 정의어, 조작어, 제어어를 통한 RDB를 활용한다.

 

 ▷ Schema

   테이블을 관리하고 디자인하기 위한 형태이다.

 

 ▷ Relation

   테이블 간의 관계를 표현하는 것으로, 1:1, 1:N, N:N(N:M) 등의 형태가 가능하다.

 

 

 

 * 원자성 : Transaction은 분해가 불가능한 최소의 단위인 하나의 원자처럼 동작하는 단위

 * 일관성 : Transaction 작업 시작 전에 데이터베이스 상태가 일관된 상태 일시, 종료 후에도 일관된 상태를 유지

 * 고립성 : Transaction 작업 수행 중에는 다른 Transaction에 영향을 주거나 받아서는 안된다는 것을 의미

 * 지속성 : Transaction 조작(일련의 데이터 조작)을 완료하고 통지를 받는 시점에 그 행위를 영구적으로 관리

728x90
반응형

'끄적대기' 카테고리의 다른 글

소프트웨어 설계  (0) 2022.03.24
블록체인 생태계 선도를 위한 과제와 전략  (0) 2022.03.24
Python Code Layout PEP8  (0) 2022.03.24
자료구조 & 알고리즘  (0) 2022.03.24
프로세스(Process)와 스레드(Thread)  (0) 2022.03.24