JUINTINATION

DBMS와 ORM 본문

정보처리기사 정리

DBMS와 ORM

DEOKJAE KWON 2024. 2. 16. 23:19
반응형

DBMS 접속

DBMS는 데이터베이스 관리 시스템은 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합으로 사용자는 DBMS에 접근하기 위해 API 또는 API의 사용을 편리하기 도와주는 프레임워크 등을 사용한다.

  • 응용 시스템은 사용자로부터 매개 변수를 전달받아 SQL을 실행하고 DBMS로부터 전달받은 결과를 사용자에게 전달하는 매개체 역할을 수행한다.
  • 인터넷을 통해 구동되는 웹 응용 프로그램은 웹 응용 시스템을 통해 DBMS에 접근한다.
    • 웹 응용 시스템은 웹 서버와 웹 애플리케이션 서버(WAS)로 구성되며 서비스 규모가 작은 경우 웹 서버와 웹 애플리케이션 서버를 통합하여 하나의 서버만으로 운용할 수 있다.
    • 웹 응용 시스템의 구조는 아래와 같다.
      • 사용자는 웹 서버에 접속하여 데이터를 주고 받는다.
      • 웹 서버는 많은 수의 서비스 요청을 처리하기 때문에 사용자가 대용량의 데이터를 요청하면 직접 처리하지 않고 WAS에게 해당 요청을 전달한다.
      •  WAS는 수신한 요청을 트랜잭션 언어로 변환한 후 DBMS에 전달하여 데이터를 받는다.
      • 이렇게 받은 데이터는 처음 요청한 웹 서버로 다시 전달되어 사용자에게 되돌아간다.
    • DBMS 접속 기술로는 JDBC(Java Database Connectivity), ODBC(Open Database Connectivity), MyBatis 등이 있다.
      • MyBatis는 JDBC 코드를 단순화하여 사용할 수 있는 SQL Mapping 기반 오픈 소스 접속 프레임워크이다.
      • JDBC의 데이터베이스에 접속하기 위한 다양한 메서드 호출 및 해제를 간소화하고 접속 기능을 강화하였다.
      • SQL 문장을 분리하여 XML 파일을 만들고 Mapping을 통해 SQL을 실행한다.
      • MyBatis는 SQL을 거의 그대로 사용할 수 있어 SQL 친화적인 국내 환경에 적합하여 많이 사용된다.

ORM(Object-Relational Mapping)

ORM은 객체지향 프로그래밍의 객체(Object)와 관계형 데이터베이스(Relational Database)의 데이터를 연결(Mapping)하는 기술을 의미한다. 이 글에서 정리한 내용에 따르면 ORM은 "객체로 연결을 해준다"라는 의미로 어플리케이션과 데이터베이스 연결 시 SQL언어가 아닌 어플리케이션 개발언어로 데이터베이스를 접근할 수 있게 해주는 툴이다.

  • ORM으로 생성된 가상의 객체지향 데이터베이스는 프로그래밍 코드 또는 데이터베이스와 독립적이므로 재사용 및 유지보수가 용이하다.
  • ORM은 SQL 코드를 직접 입력하지 않고 선언문이나 할당 같은 부수적인 코드가 생략되기 때문에 직관적이고 간단하게 데이터를 조작할 수 있다.
  • ORM 프레임워크의 종류는 다음과 같다.
    • JAVA : JPA, Hibernate, EclipseLink, DataNucleus, Ebean 등
    • C++ : ODB, QxOrm 등
    • Python : Django, SQLAlchemy, Storm 등
    • Ios : Database Objects, Core Data 등
    • JNET : NHibernate, DatabaseObjects, Dapper 등
    • PHP : Doctrine, Propel, RedBean 등

ORM의 한계

  • 프레임워크가 자동으로 SQL을 작성하기 때문에 의도대로 SQL이 작성됐는지 확인할 필요가 있다.
  • 객체지향적인 사용을 고려하고 설계된 데이터베이스가 아닌 경우 프로젝트가 크고 복잡해질수록 ORM 기술을 적용하기 어려워진다.
  • 기존의 기업들은 ORM을 고려하지 않은 데이터베이스를 사용하고 있기 때문에 ORM에 적합하게 변환하려면 많은 시간과 노력이 필요하다.
728x90
Comments