SQLD 자격증 정보 및 이론 학습 | 데이터 모델링의 이해(엔터티, 인스턴스, 속성, ERD, 식별자)

2024. 10. 18. 22:01자격증

728x90
반응형

 

반응형



 

SQLD 자격증 정보

SQL 개발자 자격시험 객관식 50문항

합격기준 총점 60점 이상, 과락 기준 과목별 40% 미만

 

데이터 모델링의 이해  SQL 기본 및 활용
10문항, 배점 20점 40문항, 배점 80점
- 데이터 모델링의 이해 : 데이터 모델의 이해, 엔터티, 속성, 관계, 식별자
- 데이터 모델링과 SQL : 정규화, 관계와 조인, 트랜잭션, NULL 속성 이해, 본질 식별자와 인조식별자
- SQL 기본 : 관계형 데이터베이스, SELECT문, 함수, WHERE절, GROUP BY, HAVING 절, 조인, 표준 조인
- SQL 활용 : 서브 쿼리, 집합 연산자, 그룹함수, 윈도우 함수, TOP N 쿼리, 계층형 징의와 셀프 조인, PIVOT 절과 UNNPIBOT절, 정규 표현식
- 관리 구문 : DML, DDL, DCL, TCL

 

노랭이 책 참고하여 문제 풀이


데이터 모델링의 이해

 

데이터 모델링의 특징

데이터 모델링 : 현실세계를 단순화하여 표현하는 기법

 

데이터 모델의 특징

  1. 추상화 : 현실 세계를 일정한 형식으로 표현
  2. 단순화 : 단순하고 쉽게 표현
  3. 명확화 : 누구나 이해할 수 있도록 불분명함을 제거

 

데이터 모델링의 세가지 관점

  1. 데이터 관점 : 어떤 데이터들이 업무와 얽혀있는지, 데이터 간에는 어떤 관게가 있는지
  2. 프로세스 관점 : 업무가 실제로 처리하고 있는 것이 무엇인지
  3. 데이터와 프로세스의 상관 관점 : 프로세르의 흐름에 따라서 데이터가 어떤 영향을 받는지

데이터 모델링의 유의사항

  1. 중복 : 같은 데이터가 중복으로 저장되는 것을 지양
  2. 비유연성 : 데이터 모델과 프로세스를 유연하게 설계하여 유지 보수가 쉽게 설계
  3. 비일관성 : 다른 데이터와의 연관성을 고려하여 모델링

 

데이터 모델링의 세가지 단계

  1. 개념적 데이터 모델링 : 전사적 데이터 모델링 수행시 행해지면 추상화 레벨이 가장 높음
  2. 논리적 데이터 모델링 : 데이터베이스에 대한 KE, 속성, 관계 등을 표현
  3. 물리적 데이터 모델링 : 실제 데이터 베이스로 구현할 수 있도록 성능 등을 고려한 모델링

 

데이터의 독립성

  1. 외부 스키마(사용자의 관점) : 프로그램의 사용자가 보는 데이터베이스의 스키마를 정의
  2. 개념 스키마(통합된 관점) : 모든 사용자가 보는 데이터베이스의 구조
  3. 내부 스키마(물리적인 관점) : 데이터베이스의 실질적인 저장구조나 컬럼, 인덱스 정의

 

Database Schema and Catalog - Junhyunny’s Devlogs [DB] 스키마(Schema)란? 외부스키마, 개념스키마, 내부스키마 (tistory.com)

 

 

엔터티 : Table(표)

  1. 업무에 반드시 필요한 정보 
  2. 유니크한 식별자가 있어야 한다(ex. 고객 번호)
  3. 2개 이상의 인스턴스
  4. 반드시 한 개 이상의 속성을 보유
  5. 다른 엔터티와 한 개 이상의 관계

엔터티의 이름을 정할 때 유의 사항

  1. 업무에 실제로 사용되는 용어 사용
  2. 다른 엔터티와 중복 불가
  3. 영문은 대문자, 한글은 약어 사용 X
  4. 단수 명사로 표현하며 띄어쓰기 X

sql_데이터 모델링 4요소 (엔터티, 속성, 관계, 식별자) (velog.io)

 

엔터티(Entity)

 

엔터티의 분류

유형 엔터티 & 무형 엔터티

- 유형 엔터티 : 물리적인 형태가 존재하는 엔터티(상품, 회원, 고객)

- 개념 엔터티 : 개념적인 엔터티(부서, 학과, 직위)

- 사건 엔터티 : 행위를 통해 생성(주문, 결제)

 

발생 시점에 따른 엔터티

- 기본 엔터티 : 독립적으로 생성되며 자식 엔터티를 가질 수 있음(상품, 회원, 고객)

- 중심 엔터티 : 기본 엔터티로부터 파생되며 행위 엔터티를 생성(주문, 계약)

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

 

 

인스턴스 : Row(행)

 

속성 : Colimn(열)

의미가 더 이상 조개지지 않는 엔터티의 특징을 나타내는 최소 데이터 단위

 

속성의 특징

  1. 속성은 한 개의 속성값을 가진다

속성의 특성에 따른 분류

  1. 기본 속성 : 원래 있는 속성(이름)
  2. 설계 속성 : 필요해서 만든 속성(학번)
  3. 파생 속성 : 다른 속성값을 계산하거나 변형하여 만든 속성(평균 학점)

 

엔터티, 인스턴스, 속성, 속성값 간의 관계

entity(엔터티), attribute(속성), relationship(관계) 요약 - 암기용 · Jistol Github Page

  1. 한 개의 엔터티는 두개 이상의 인스턴스를 갖는다
  2. 한 개의 인스턴스는 두개 이상의 속성을 갖는다
  3. 한 개의 속성은 한 개의 속성값을 갖는다

 

구성 방식에 따른 속성 분류

  1. PK(Primary Key)속성 : 기본키, 주식별자 등 엔터티의 인스턴스들을 식별할 수 있는 유니크한 속성, 중복 불가, Null 불가
  2. FK(Foreign Key)속성 : 외래키, 다른 엔터티에서 가져온 속성, 중복가능, Null 가능
  3. 일반속성 : PK속성과 FK속성을 제외한 모든 속성

- 도메인(Domain) : 속성이 가질 수 있는 속성 값의 범위

- 용어 사전 : 엔터티의 속성명을 정의할 때 용어의 혼란을 없애기 위해 용어 사전을 만들어 룰을 정한다

 

 

관계(Relationship)

엔터티와 엔터티의 관계

 

entity(엔터티), attribute(속성), relationship(관계) 요약 - 암기용 · Jistol Github Page

 

- 존재 관계 (관계차수)

  • 존재 자체로 연관
  • 직원은 팀에 포함
  • 팀 1개에 직원은 0,1,M개 모두 가능

- 행위 관계 (관계선택사항)

  • 행위를 통해 연관성이 생기는 관계
  • 고객이 주문을 통해 주문이라는 엔터티와 관계 생성
  • 고객 1개에 주문은 0,1, M개 모두 가능

 

ERD(Entity Relationship Diagram) : 엔터티 간의 관계를 나타내는 다이어그램

- IE/Crow's Foot : 까마귀발 표기법

  1. 관계명 : 엔터티 간의 관계는 각자의 관점에서 관계명이 있기 때문에 두개
    • ex. 주문 엔터티는 제품 상세 엔터티를 포함
    • ex. 제품 상세 엔터티는 주문 엔터티에 포함
  2. 관계차수 : 두 엔터티 사이에는 1:1, 1:M, N:M 의 관계가 존재
  3. 관계선택사항 : 필수적인 관계 : |, 선택적인 관계 : O
  4. 실선 : 식별자 관계, 점선 : 비식별자 관계

 

ERD(Entity Relationship Diagram)  작성 순서

  1. 엔터티 구상 및 그리기
  2. 엔터티 배치(핵심 엔터티 좌측 상단, 이후 우측 하단에 배치)
  3. 엔터티 간의 관계 설정
  4. 엔터티 간의 관계명 기술
  5. 관계의 참여도 기술(1:1, 1:M, N:M)
  6. 관계의 필수/선택 여부 기술(|, O)

 

식별자(Identifiers)

인스턴스(row, 행)를 구분 가능하게 해주느 대표 속성(Column, 열)

주식별자 : 기본키, PK(Primary Key)

  • 유일성 : 각 인스턴스에 유니크함을 부여하여 식별이 가능하도록 만든다
  • 최소성 : 유일성을 보장하는 최소 개수여야 한다
  • 불변성 : 속성값이 변하지 않아야 한다
  • 존재성 : 속성값이 null일 수 없다

 

주 식별자 VS 보조 식별자

[SQLD] 5. 식별자(Identifiers) (tistory.com)

 

주 식별자 : 유일성, 최소성, 불변성, 존재성을 가진 대표식별자, 다른 엔터티와 참조 관계로 연결

보조 식별자 : 인스턴스를 식별할 수 있지만 대표 식별자는 아니다. 다른 엔터티와 참조 관계로 연결되지 않음

 

[SQLD] 5. 식별자(Identifiers) (tistory.com)

 

내부 식별자 VS 외부 식별자

내부 식별자 : 엔터티 내부에서 스스로 생성

외부 식별자 : 다른 엔터티에서 온 식별자

 

원조 식별자 VS 대리 식별자

원조 식별자 : 가공되지 않은 식별자

대리 식별자 : 주식별자의 속성이 두개 이상인 경우 그 속성들을 묶어서 하나로 사용(주문 번호 EX 주문일자 + 순번)

 

단일 식별자 VS 복합 식별자

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

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

 

 

[SQLD] 식별자 관계, 비식별자 관계 (velog.io)

 

식별자 관계

  • 부모 엔터티의 식별자가 자식 엔터티의 주 식별자
  • 부모가 있어야 자식이 있다
  • 주식별자 NOT NULL

 

비식별자 관계

  • 부모 엔터티의 식별자가 자식 엔터티의 일반 속성
  • 일반 속성 NULL 가능 → 부모 없는 자식 가능, 자식 있는 상태에서 부모 삭제 가능

 

 

 

728x90

 

728x90
반응형