본문 바로가기
DBMS(SQL)

데이터모델링, ERD(Entity Relationship Diagram) (3일차)

by JoinInNoetic 2023. 10. 9.

◆ 데이터 모델링

    - 어떠한 정보 시스템을 구축할 때 내부에 필요한 데이터를 설계하는 과정

    - 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업

    - 데이터베이스의 골격을 이해하고 그 이해를 바탕으로 모델의 기능과 성능적인 측면에서 효율적인 작성이 필요

    - 물리적인 데이터베이스 모델로 환원하여 고객의 요구에 따라

      특정 정보 시스템의 데이터베이스에 반영하는 작업도 포함

    - 데이터베이스 설계에서 첫 번째 단계에 해당

 

◆ 목적

    - 업무 정보를 구성하는 기초가 되는 정보들을 일정한 표기법에 의해 표현함으로써

      정보 시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는 것

    - 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용하기 위한 것 (ERD)

 

◆ 중요성

    - 해당 업무 내용을 분석하고 이해하는 데도 유용하게 사용

    - 데이터베이스 사용자 간에 의사소통을 쉽게 해준다

    - 전체적인 조화와 균형을 유지할 수 있게 해준다

    - 일관성은 있는지 등을 쉽게 파악할 수 있게 해준다

 

◆ 데이터 모델의 종류

    ● 개념적 데이터 모델(인간)

        - 고수준의 데이터 모델

        - 전체 시스템에 대한 개념적인 정보를 나타내는 데 사용

        - 시스템 구상 단계에서 대략적인 스케치를 한다고 생각하면 좋다

        - 논리 모델을 만들기 위한 기초 작업

        - 엔티티-관계(E-R) 모델 구성

            (ERD)

 

    ● 논리적 데이터 모델(인간 + 컴퓨터)

        - 표현 데이터 모델 또는 구현 데이터 모델로도 불림

        - 구축할 시스템의 이미지

        - 종류

            ▶ 관계형 데이터 모델

                - 테이블 형태로 나타내는 데이터 모델

                - 간단하여 이해하기 쉬우며, 데이터의 저장 위치와 접근 방법을 DBMS가 결정하기 때문에

                   사용자는 필요한 데이터만 명시하면 된다.

            ▶ 계층형 데이터 모델

                - 계층형에서 데이터는 레코드와 링크로 구성된 트리 형태로 나타냄

                - 링크로 연결된 레코드의 집합은 부모-자식 관계를 표현

            ▶ 네트워크형 데이터 모델

            ▶ 객체지향형 데이터 모델

                - 데이터와 메소드를 하나의 객체로 다루기 때문에 이해하기 쉽고, 유지와 변경이 용이

                - 객체 지향 프로그래밍의 패러다임을 기반으로 함

        ● 물리적 데이터 모델(컴퓨터)

            - 컴퓨터 내부에서 실제로 데이터들이 어떻게 저장되는 가를 표현

            - 레코드가 실제로 저장되는 형식, 특정 레코드를 효율적으로 탐색하는 구조인 접근 경로 등을 기술

 

 

◆ 엔티티-관계(E-R) 모델

    - 개념적 데이터 모델

    - 엔티티, 애트리뷰트, 관계를 이용해서 실세계를 개념적으로 표현

    - 구성 요소

    - 엔티티(개체) : 모델의 관리 대상, 실체가 있는 것이나 개념, DB의 테이블, 사각형 표시

    - 애트리뷰트(속성) : 엔티티의 구성 요소, 타원 표시

    - 관계 : 엔티티 간의 관계(1:1, 1:N, N:M), 관계형 DB로 매핑(사상), 마름모

 

    ● 엔티티

        - 실제로 존재하는 대상

        - ER 모델에서 가장 기본이 되며, 고유하게 식별이 되어야 한다

        ex) 사람 : 학생, 교수, 사원 / 장소 : 학교, 강의실 / 사물 : 교과서, 생산제품 / 사건 : 강의, 면담

            / 개념 : 강좌, 과목, 프로젝트

 

    ● 엔티티 타입

        - 엔티티가 모여서 하나의 집단을 이룬 형태

        - ER 다이어크램에서 엔티티 타입은 사각형으로 표현

        - 그냥 엔티티라고 생각해도 좋다

        - 분류

            - 강한 엔티티 타입 : 보통의 엔티티 타입

            - 약한 엔티티 타입 : 자신의 키(기본키) 애트리뷰트가 없는 엔티티 타입,

            다른 엔티티에 종속되어서 해당 엔티티가 없다면 존재하지 않는 종속성을 가진다.

 

    ● 애트리뷰트

        - 엔티티 또는 관계가 갖는 성질이나 특성

        - 엔티티는 반드시 하나 이상의 키 애트리뷰트를 갖고 있어서 나머지 애트리뷰트를 유일하게 정의할 수 있다.

        - 쉽게 말하자면 보통의 엔티티들은 자신의 키(기본키) 애트리뷰트를 가지고 있다는 뜻이다.

        - 분류

            ▶ 단순 애트리뷰트

                - 보통의 애트리뷰트

             ▶ 키 애트리뷰트

                - 엔티티들을 식별할 수 있는 유일한 제약조건을 갖는 애트리뷰트

                - 보통 ER 다이어그램에서는 기본키나 후보키를 키 애트리뷰트라고 하고 모두 밑줄을 그어 표시

                ex) 학생의 학번, 사원의 사원번호, 사람의 주민등록번호

            ▶ 복합 애트리뷰트

                - 두 개 이상의 애트리뷰트

                - 애트리뷰트가 또 다른 애트리뷰트로 나눠지는 것

            ▶ 다치 애트리뷰트

                - 애트리뷰트 하나에 여러 값이 들어갈 수 있는 애트리뷰트

                - 두 선으로 타원을 그려 표시

                ex) 강사 엔티티의 보유 기술 애트리뷰트는 강사가 보유한 다양한 기술이 들어갈 수 있음

            ▶ 유도된 애트리뷰트

                - 실제 값이 저장되어 있는 것이 아니라 저장된 값에서 계산해 얻은 값을 사용하는 애트리뷰트

                ex) 나이는 실제 나이를 저장하지 않고 생년월일(저장된 값)과 오늘 날짜로부터 계산해서 얻음

            ▶ 부분 키 애트리뷰트

                - 키와 비슷하지만 완벽하게 키라고는 할 수 없고 약한 엔티티에서만 사용

                - 보통 잘 사용하지 않지만 점선으로 밑줄을 그어서 표현

 

        ● 관계

            - 엔티티 타입 간의 관계를 표현할 때 사용

            - 엔티티 간에 존재하는 수학적 관계를 말함

            - ER 다이어그램에서 마름모를 사용하여 표현

            - 일대일(1:1), 일대다(1:N), 다대다(N:M)관계가 있음

 

        ● 식별 관계

            - 약한 엔티티를 식별할 때 사용하는 관계 타입

            - 강한 엔티티와 약한 엔티티의 연결 고리

            - 그림에서 보이는 약한 관계가 식별관계

 

        ● 카디널리티 비율

            - 두 엔티티 사이의 관계에서 참여자의 수를 표현하는 것

            - 비율이 종류

                ▶ 일대일 관계 (1:1)

                    - 하나의 엔티티에 대하여 하나의 엔티티만이 관계를 맺는 경우

                    ex) 고유한 한 사람마다 고유한 하나의 주민번호를 가지기 때문에 이 관계는 1:1 관계

                ▶ 일대다 관계 (1:N)

                    - 하나의 엔티티에 대하여 여러 개의 엔티티가 관계를 맺는 경우

                    ex) 하나의 공급자가 여러 물건들을 공급한다고 한다면 이 관계는 1:N 관계

                ▶ 다대다 관계 (N:M)

                    - 여러 개의 엔티티에 대하여 여러 개의 엔티티가 관계를 맺는 경우

                    ex) 각 사원은 여러 대의 PC를 사용할 수 있고, 각 PC는 여러 명의 사원이 사용한다고 한다면

                        이 관계는 N:M 관계

 

        ● 전체 참여와 부분 참여

            - 모든 부서마다 반드시 1명의 관리자가 있어야 하기 때문에, 부서엔티티는 관리 관계에 전체 참여

               -> 두 줄 표시

            - 반면, 일부 사원들만 부서의 관리자가 될 수 있기 때문에, 직원 엔티티는 관리 관계에 부분 참여

               -> 한 줄 표시

 

        ● ER 다이어그램 예시

 

        ● 실습