ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터베이스 모델링, SQLD의 기본 개념
    데이터베이스와 SQL 2022. 9. 14. 23:30

    SQLD 자격증을 딴 지도 약 1년이 되어간다. 

    실무에서 SQL을 직접 사용하면서 SQL 의 기본적인 개념 역시 매우 중요하다는 것을 느끼고 있다. 

    그런 의미에서 SQLD 자격증을 준비할 때 공부했던 이론들을 다시 복습해 보기로 했다. 

    가장 먼저 데이터베이스 모델링에 대한 부분이다. 

    언뜻 쉽기도 하고, 지루하기도 한 내용이지만 해당 부분에 대한 개념을 확실히 잡아야 나중에 데이터 관리할 때 이상한 값들이 있는지 쉽게 파악할 수 있다.

     

    데이터베이스 모델링?

    데이터베이스 모델링이란, 현실 세계의 복잡한 데이터를 추상화, 단순화, 명확화를 통해 DBMS(DataBase Managemenet System) 에 옮겨 넣는 방법을 결정하는 과정이라고 할 수 있다. 

     

    쉽게 예를 들자면, 온라인 쇼핑몰에 들어가는 회원 ID, 이름, 주소, 전화번호, 가입 날짜, 구입 물품, 개수, 구매 날짜 등 대량의 정보를 DBMS 상에 테이블 형태로 저장할 수 있다.

     

    그렇다면 DBMS는 또 무엇인가?

     

    약자 그대로 데이터베이스를 관리 및 운영하는 시스템이다. MySQL, PostgresSQL, Oracle, SQL Server, SQLite, MariaDB 등 다양한 DBMS 가 존재 한다. DBMS를 통해 데이터를 보다 효율적으로 구축/관리/운영 할 수 있게 되었다. 이 DBMS 에서 데이터를 관리하기 위해서 SQL(Structured Query Langauge)이라는 언어를 사용한다. 

     

    데이터베이스의 특징은 다음과 같다. 

    다음 세 가지의 특징은 DB를 구축할 때 필수적으로 참고해야 하는 특징이다.

     

    1. 데이터의 무결성 (Integrity)

    데이터베이스 안에는 데이터에 오류가 있어서는 안된다는 의미이다. 

    무결성을 위해서 데이터베이스는 제약조건(Constraint) 라는 특성을 가진다. 

    위에서 언급했던 온라인 쇼핑몰 회원 정보가 담긴 데이터베이스의 경우, 회원 ID는 무조건 존재해야 하며, 중복되면 안되는 제약조건이 있을 수 있다.

     

    2. 데이터의 독립성

    데이터의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도 기존에 작성된 데이터 모델은 영향을 받아서는 안된다.  데이터 독립성은 유지보수 비용 절감, 데이터 복잡도 및 중복 데이터 감소 등을 목적으로 한다. 

     

     

    3. 데이터 중복의 최소화

    동일한 데이터가 여러 개 중복되어 존재하면 안된다. 실무 하면서 이 중복 데이터는 찾기 가장 쉽기도 하지만 가장 잦은 문제를 일으키는 주 원인이기도 하다. 

     

     

    데이터 모델링의 요소는 다음과 같다. 

     

    1. 어떤 것: Things -> 엔터티 (Entity) , 인스턴스 (Instance)

    또 다시 위에서 언급한 예시를 들자면, 온라인 쇼핑몰 홈페이지 데이터베이스를 모델링을 한다면 회원 정보, 구매정보를 엔터티라고 할 수 있다. 이 엔터티를 각각의 인스턴스로 생성할 수 있다. 회원정보 인스턴스, 구매 정보 인스턴스와 같이

    실제로는 엔터티와 인스턴스를 혼용해서 사용하기도 하고, 복수/단수의 개념으로 사용하기도 하고.. 다양하게 사용하는 것 같다. 나는 실무에서 거의 인스턴스라는 용어만 사용한다. 

     

     

    2. 어떤 것의 성격: Attributes -> 속성 (Attribute)

    속성은 인스턴스가 가지는 세부 사항들을 의미한다. 

    즉, 회원 정보 인스턴스의 속성으로 회원 ID, 이메일, 이름 등이 있을 수 있다. 

     

     

    3. 어떤 것 간의 연관성: Relationships  -> 관계

    회원정보 인스턴스와 구매정보 인스턴스의 연관성을 예로 들 수 있다. 

    회원정보의 회원 ID와 구매 정보의 회원 ID가 동일하게 존재한다면, 각각의 인스턴스에서 필요한 정보를 추출 할 수 있게 된다. 여기서 회원 ID는 필수적으로 존재해야만 하는 기본 키 (Primary Key) 이면서 두 인스턴스의 관계를 맺어주는 외래 키(Foreign Key)가 된다.

     

     

     

     

    참고)

    SQL 개발자 가이드 - 데이터 전무가 포럼, 2020.08

    이것이 MySQL이다 - 우재남

     

     

     

     

     

     

     

     

     

     

    반응형

    댓글

Designed by Tistory.