ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQLD] SQL 개발자 공부하기 Day 1 : 데이터 모델링 / ERD / 엔터티 / 속성
    Study/SQL 2024. 2. 16. 23:11
    728x90
    반응형
    목차
    1. 데이터 모델링 / ERD / 3층 스키마
    2. 엔터티 / 속성 / 관계 / 식별자

    1. 데이터 모델링 / ERD / 3층 스키마

     

     

    데이터 모델링

    데이터를 단순화시켜 데이터베이스로 표현하기 위한 작업.

     

    데이터 모델링의 특징

    1. 추상화

    2. 단순화

    3. 명확성

     

    데이터 모델링 단계

    1. 개념적 모델링 - 프로세스 분석, 전사적 관점에서 데이터 모델링, 추상화 수준이 가장 높음

    2. 논리적 모델링 - 정규화를 통해서 재사용성을 높임

    3.  물리적 모델링 - 데이터 베이스를 실제로 구축

     

    데이터 모델링 고려사항

    1. 데이터 모델의 독립성

    2. 고객 요구사항의 표현

    3. 데이터 품질 확보

     

     

    ERD Entity Relationship Diagram

    엔터티와 엔터티 간의 관계를 정의하는 모델링 방법.

     

    *엔터티(Entity)란

    업무에서 관리해야 하는 데이터 집합을 의미하며, 저장되고 관리되어야 하는 데이터

     

    ERD 작성 절차

    1. 엔터티를 도출하고 그린다.
    2. 엔터티를 배치한다.
    3. 엔터티 간의 관계를 설정한다.
    4. 관계명을 서술한다.
    5. 관계 참여도를 표현한다.
    6. 관계의 필수 여부를 표현한다.
    728x90

     

    ERD 작성 시 고려사항

    ・ 중요한 엔터티를 가급적 왼쪽 상단에 배치한다.

    ・ 복잡하지 않아야 한다.

     

     

    3층 스키마 3-Level Schema

    데이터베이스의 독립성을 확보하기 위한 방법.

     

    3층 스키마의 독립성

    ・ 논리적 독립성 - 개념 스키마가 변경되어도 외부 스키마가 영향을 받지 않음

    ・ 물리적 독립성 - 내부 스키마가 변경되어도 개념 스키마가 영향을 받지 않음

     

    3층 스키마의 구조

    외부 스키마 - 사용자 관점, 응용 프로그램이 접근하는 데이터베이스를 정의한다.

    ・ 개념 스키마 - 설계자 관점, 통합 데이터베이스 구조이다.

    ・ 내부 스키마 - 개발자 관점, 데이터베이스의 물리적 저장 구조이다.

     

     

     


    2. 엔터티 / 속성 / 관계 / 식별자

     

    엔터티 Entity

    업무에서 관리해야 하는 데이터 집합을 의미하며, 저장되고 관리되어야 하는 데이터

     

    엔터티의 특징

     식별자 - 유일한 식별자가 있어야 함.

     인스턴스 집합 - 2개 이상의 인스턴스가 있어야 함.

     속성 - 속성을 가지고 있어야 함.

     관계 - 다른 엔터티와 최소 한 개 이상 관계가 있어야 함.

     업무 - 업무에서 관리되어야 하는 집함임.

     

    엔터티의 종류

     유형과 무형에 따른 엔터티 종류

         - 유형 엔터티 : 지속적으로 사용되는 엔터티. ex) 고객, 강사 사원

         - 개념 엔터티 : 개념적으로 사용되는 엔터티. 물리적 형태가 없다. ex) 거래소 종목, 코스닥 종목

         - 사건 엔터티 : 비즈니스 프로세스를 실행하면서 생성되는 엔터티. ex) 주문, 체결, 취소주문

     

     발생 시점에 따른 엔터티 종류

         - 기본 엔터티 : 키 엔터티, 독립적으로 생성되는 엔터티. ex) 고객, 상품, 부서

         - 중심 엔터티 : 기본 엔터티로부터 발생되고 행위 엔터티를 생성하는 것. ex) 계좌, 주문, 취소

         - 행위 엔터티 : 2개 이상의 엔터티로부터 발생 ex) 주문 이력, 체결 이력

     

     

    속성

    엔터티가 가지는 항목이며, 더 이상 분리되지 않는 단위이다.

     

    속성의 특징

     일반적으로 하나의 값만 갖는다.

     주식별자에게 함수적 종속된다. -> 기본키가 변경되면 속성의 값도 변경된다는 것.

     

    속성의 종류

    분해 여부에 따른 속성의 종류

     단일 속성 - 하나의 의미로 구성된 것. ex) 회원 ID, 이름

     복합 속성 - 여러 개의 의미가 있는 것. ex) 주소 - 주소는 시, 군 동 등으로 분해 가능

     다중값 속성 - 속성에 여러 개의 값을 가질 수 있는 것. ex) 상품 리스트

     

    특성에 따른 속성의 종류

     기본 속성 - 본래의 속성 ex) 회원 ID, 이름

    ・ 설계 속성 - 데이터 모델링 과정에서 발생되는 속성, 유일한 값을 부여 ex) 상품코드, 지점코드

     파생 속성 - 다른 속성에 의해서 만들어지는 속성 ex) 합계, 평균

     

     

    관계

    엔터티 간의 관련성을 의미

     

    관계의 종류

     존재 관계 : 두 개의 엔터티의 존재 여부의 관계

    ・ 행위 관계 : 두 개의 엔터티가 어떤 행위에 의한 관계

    반응형

    관계 차수

    두 개의 엔터티 간에 관계에 참여하는 수를 의미

     

    관계 차수의 종류

    ・ 1대1 관계 : 하나의 엔터티에 관계되는 엔터티의 관계가 하나인 경우, 하나이거나 없을 경우에 따라 완전 1대1 관계, 선택적 1대1 관계로 분리된다. ex) 고객은 하나의 휴대폰번호를 가지거나 없을 수 있다.

    ・ 1대N 관계 : 엔터티에 행이 하나 있을 때 다른 엔터티의 값이 여러 개 있는 관계. ex) 고객은 여러 개의 계좌를 가질 수 있다.

    ・ M대N 관계 : 두 개 엔터티가 서로 여러 개의 관계를 가지고 있는 것. -> M대N 관계를 1대N, N대로 해소해야 한다. ex) 한 명의 학생이 여러 개의 과목을 수강할 수 있고, 반대로 한 개의 과목은 여러 명의 학생이 수강한다.

    ・ 필수적 관계와 선택적 관계 : 반드시 있어야 하냐, 아니냐에 따라 나뉜다.

     

     

    엔터티 식별자

    식별자라는 것은 엔터티를 대표할 수 있는 유일성을 만족하는 속성

     

    주 식별자(기본 키, Primary key)

    ・ 최소성         ・ 대표성         ・ 유일성         ・ 불변성         ・ 존재성

     

    키의 종류

    ・ 기본 키: 후보키 중에서 엔터티를 대표할 수 있는 키

    ・ 후보 키: 유일성과 최소성을 만족하는 키

    ・ 슈퍼 키: 유일성은 만족하지만 최소성은 만족하지 않는 키

    ・ 대체 키: 여러 개의 후보키 중 기본키를 선정하고 남은 키

    ・ 외래 키: 무결성을 확인하기 위해서 사용되는 키

     

    식별자의 종류

    대표성 여부에 따른 식별자 종류

    ・ 주 식별자 : 엔터티를 대표하는 식별자

    ・ 보조 식별자 : 대표성을 만족하지 못하는 식별자

     

    생성 여부에 따른 식별자 종류

    ・ 내부 식별자 : 내부에서 스스로 생성되는 식별자

    ・ 외부 식별자 : 관계로 인해 만들어지는 식별자

     

    속성의 수에 따른 식별자 종류

    ・ 단일 식별자 : 하나의 속성으로 구성

    ・ 복합 식별자 : 두 개 이상의 속성으로 구성

     

    대체 여부에 따른 식별자 종류

    ・ 본질 식별자 : 비즈니스 프로세스에서 만들어지는 식별자

    ・ 인조 식별자 : 인위적으로 만들어지는 식별자 

    * 인조 식별자는 후보 식별자 중 주식별자로 선정할 것이 없거나 주식별자가 너무 많은 칼럼으로 되어 있는 경우에 사용.

     

     

     

    728x90
    반응형

    댓글

Designed by Tistory.