학습 내용 기록

주제 선정 사유

  • SQLD 시험 학습 문제 주제 중에 하나
  • SQLD 자격증 강의에 포함되어 있음


주제에 대한 학습 레퍼런스


주제에 대한 학습 내용과 내가 이해한 것을 요약

  • 개념(자주 사용되는 용어)
    • 더 이상 분리되지 않는 최소의 데이터 단위
  • 엔터티, 인스턴스, 속성, 속성 값의 관계
    • 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 함
    • 한 개의 엔터티는 두 개 이상의 속성으로 구성
    • 한 개의 속성은 한 개의 속성 값을 가짐
  • 속성의 표기법
    • IE 표기법 : 주식별자 속성을 선을 그려 구분함
    • Barker 표기법 : 식별자를 특수기호(# * o)로 구분함
  • 속성의 특징
    • 업무에서 필요로 함
    • 더 이상 분리되지 않는 그 자체로 독립성을 유지함
    • 엔터티를 설명하고 인스턴스의 구성요소가 됨
    • 정규화 이론에 기반을 두고 정해진 주식별자에 함수적 종속성을 가져야 함
      • X -> Y // X의 값을 알면 Y를 알 수 있고, X 값에 의해 Y 값이 달라질 때 함수적 종속
      • 대학생의 학번과 이름이 있을 때, 학번을 알면 이름을 알 수 있고 / 학번이 달라지면 표시되는 이름이 달라짐
    • 하나의 속성은 하나의 값을 가짐
  • 속성의 분류
    • 속성의 특징에 따른 분류
      • 기본 속성 : 업무로부터 추출된 대부분의 속성.
      • 설계 속성 : 데이터 모델링, 업무의 규칙화를 위해 새로 만들거나 변형하여 정의하는 속성
      • 파생 속성 : 다른 속성에 영향을 받아 계산된 형태와 같은 값 (환율 -> KRW<파생>)
    • 엔터티 구성 방식에 따른 분류
      • PK : 엔터티를 식별할 수 있는 속성. 주식별자로 사용 (주민번호 / 상품번호)
      • FK : 다른 엔터티와의 관계에 포함된 속성
      • 일반속성 : PK, FK에 포함되지 않은 대부분의 속성
  • 도메인
    • 각 속성이 가질 수 있는 값의 범위
    • 엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약 사항을 지정함
  • 속성의 네이밍
    • 업무에서 사용하는 용어 사용
    • 축약어를 사용하지 않고 온전하게 드러날 수 있도록 작성
    • 서술보다 명사형 사용
    • 수식어가 많이 붙지 않고 명확하게 작성
    • 전체 데이터 모델에서 유일하게 작성
      • 엔터티들이 달라지면 동일한 이름의 속성이 있을 수도 있음

 

 

 


학습 회고 및 내용 평가

학습접근도

(쉽게 찾아볼 수 있다/찾다 보면 나온다/깊게 탐색해야 알아낼 수 있다)

 

학습 필요도

(반드시/그렇다/우선 순위가 아님)

 

학습 난이도

(바로 잘 풀어 설명할 수 있다/몇 번 더 복습해야 한다/아주 깊게 고민하고 탐구해야 한다)

 

학습 메타인지

(정확하게 학습계획과 수행 일치/하루 이틀 정도 계획에서 벗어남/일주일 이상 정도 계획에서 벗어남)

 

학습 평가 결론 및 계획 수정 사항

  • 데이터베이스 이론 중, 쉬운 편에 속함
  • 각 개념에 대해서 잘 이해하기 위해서는 더욱 상세한 내용 학습이 필요하지만, 이후 학습 예정
     

 


분류

#SQL#SQLD#SQLD자격증#데이터#쿼리#데이터모델링#데이터모델링 개념#데이터모델링 표기법#데이터모델링ie#데이터모델링barker#ERD

 
학습 내용 기록

주제 선정 사유

  • SQLD 시험 학습 문제 주제 중에 하나
  • SQLD 자격증 강의에 포함되어 있음


주제에 대한 학습 레퍼런스


주제에 대한 학습 내용과 내가 이해한 것을 요약 

  • 엔터티(Entity)의 정의
    • 우리가 표현하고 싶은 하나의 것(Thing). 개체
    • 사람, 동물, 사물 등의 표현하고 싶은 개체
  • 엔터티와 인스턴스
    • 데이터베이스 관점에서 학생이라는 테이블이 존재한다면
      • 엔터티는 학생 테이블 자체를 의미함
      • 인스턴스는 학생 중 제임스라는 하나의 학생 개체를 의미함
    • 그래서 엔터티는 인스턴스의 집합이라고도 말할 수 있음
  • 엔터티와 속성
    • 데이터베이스 관점에서 학생이라는 테이블이 존재한다면
      • 엔터티는 학생 테이블 자체를 의미함
      • 속성은 학생 테이블에 들어갈 이름/나이/학년 등의 말 그대로 속성을 의미함
엔터티, 인스턴스와 속성을 표현한 그림

 

  • 엔터티의 특징
    • 업무(서비스, 비즈니스)에서 필요로 하는 정보로 구성되어야 함
    • 확실히 구분되는 하나의 엔터티를 만들어야 함
    • 하나의 엔터티는 2개 이상의 인스턴스로 구성되어 있어야 함
      • 인스턴스가 한 개 밖에 없는 엔터티는 집합이 아니기 때문에 엔터티가 아님
    • 엔터티는 업무 프로세스에 활용 되어야 함
    • 엔터티는 설명할 수 있는 속성이 존재해야 의미를 가짐
    • 엔터티가 만들어졌다는 것은 다른 엔터티와의 연관성이 있음을 나타냄
엔터티의 특징 관련 문제 보기
엔터티는 업무 프로세스에 활용되어야 합니다
하나의 엔터티는 2개 이상의 인스턴스로 구성되어 있어야 합니다
주식별자만 존재하고 일반 속성은 전혀 없는 경우 엔터티가 아닙니다
엔터티는 업무에서 필요로 하는 정보로 구성되어야 합니다
관계가 설정되지 않은 엔터티는 부적절한 엔터티가 도출되었거나 다른 엔터티와의 직접적인 연결관계를 찾지 못한 것입니다

 

  • 엔터티의 분류
    • 유/무형에 따른 분류
      • 유형 엔터티 : 물리적인 형태가 존재하는 엔터티 (상품 / 사람)
      • 개념 엔터티 : 물리적인 형태가 아닌 관리해야 할 개념적인 정보로 구분된 엔터티 (학과 / 코스닥 종목)
      • 사건 엔터티 : 특정한 이벤트에 종속되는 엔터티. 업무 수행에 발생하며 통계에 이용 (이벤트 응모 / 주문)
    • 발생 시점에 따른 분류
      • 기본/키 엔터티 : 관계가 아닌 독립적인 생성이 가능한 엔터티. 부모 역할을 함 (고객 / 상품)
      • 중심 엔터티 : 기본 엔터티로부터 발생하며 업무에서 중심 역할 수행 (주문 / 배송)
      • 행위 엔터티 : 두 개 이상의 부모 엔터티로부터 발생. 내용이 바뀌거나 양이 증가 (주문 내역 / 취소 내역)
  • 엔터티의 네이밍
    • 가능한 업무에서 사용하는 용어 사용
    • 의미가 온전하게 드러나게 작성
    • 가능한 축약어를 지양
    • 단수 명사를 사용하고 띄어쓰기를 사용하지 않음
    • 유일한 이름을 부여함
    • 생성 의미대로 이름을 부여함

 

 

 


학습 회고 및 내용 평가

학습접근도

(쉽게 찾아볼 수 있다/찾다 보면 나온다/깊게 탐색해야 알아낼 수 있다)

 

학습 필요도

(반드시/그렇다/우선 순위가 아님)

 

학습 난이도

(바로 잘 풀어 설명할 수 있다/몇 번 더 복습해야 한다/아주 깊게 고민하고 탐구해야 한다)

 

학습 메타인지

(정확하게 학습계획과 수행 일치/하루 이틀 정도 계획에서 벗어남/일주일 이상 정도 계획에서 벗어남)

 

학습 평가 결론 및 계획 수정 사항

  • 데이터베이스 이론 중, 쉬운 편에 속함
  • 각 개념에 대해서 잘 이해하기 위해서는 더욱 상세한 내용 학습이 필요하지만, 이후 학습 예정
     

 


분류

#SQL#SQLD#SQLD자격증#데이터#쿼리#데이터모델링#데이터모델링 개념#데이터모델링 엔터티

 
학습 내용 기록

주제 선정 사유

  • SQLD 시험 학습 문제 주제 중에 하나
  • SQLD 자격증 강의에 포함되어 있음


주제에 대한 학습 레퍼런스


주제에 대한 학습 내용과 내가 이해한 것을 요약

  • 데이터 모델링의 3가지 개념
    • 엔터티(Entity) : 어떠한 것. 실제로 보고 싶은 하나의 개체(사람, 동물, 사물, 건물 등)
    • 속성(Attribute) : 엔터티가 갖는 성격. 사람이 갖는 성격(나이, 몸무게, 키 등)
    • 관계(Relationship) : 엔터티와 엔터티가 서로 가질 수 있는 관계(사람과 사람 사이에 친구 관계 / 헬스 트레이너와 회원)
  • ERD(Entity Rlationship Diagram)
    • 정의
      • 데이터(엔터티)들의 관계를 나타낸 도표
    • 작성법
      • 엔터티(들)를 정의하고 그린다
      • 엔터티를 적절하게 배치한다.
        • 중요한 엔터티를 중심으로 상하좌우에 다른 엔터티를 배치
        • 학교, 학생, 선생 그리고 행정업무 엔터티가 있다면 학교 엔터티가 중심에 위치하고 선생과 학생을 오른쪽에 배치 / 행정업무를 왼쪽에 배치한다
    • 표기법
        • IE/Crow's Foot 표기법
          • 직사각형. 사각형의 밖에 엔터티명 표시.
          • 식별자 속성을 다른 구획으로 구분하여 작성
        • Barker/Case*Method 표기법
          • 모서리가 둥근 사각형. 사각형의 안에 엔터티명 표시.
          • 속성마다 다른 특수기호(식별자# 필수속성* 선택속성o)를 붙여 구분표기법

왼쪽이 IE 표기법, 오른쪽이 Barker 표기법

 


 

 

 


학습 회고 및 내용 평가

학습접근도

(쉽게 찾아볼 수 있다/찾다 보면 나온다/깊게 탐색해야 알아낼 수 있다)

 

학습 필요도

(반드시/그렇다/우선 순위가 아님)

 

학습 난이도

(바로 잘 풀어 설명할 수 있다/몇 번 더 복습해야 한다/아주 깊게 고민하고 탐구해야 한다)

 

학습 메타인지

(정확하게 학습계획과 수행 일치/하루 이틀 정도 계획에서 벗어남/일주일 이상 정도 계획에서 벗어남)

 

학습 평가 결론 및 계획 수정 사항

  • 데이터베이스 이론 중, 쉬운 편에 속함
  • 각 개념에 대해서 잘 이해하기 위해서는 더욱 상세한 내용 학습이 필요하지만, 이후 학습 예정
     

 


분류

#SQL#SQLD#SQLD자격증#데이터#쿼리#데이터모델링#데이터모델링 개념#데이터모델링 표기법#데이터모델링ie#데이터모델링barker#ERD

학습 내용 기록

주제 선정 사유

  • SQLD 시험 학습 문제 주제 중에 하나
  • SQLD 자격증 강의에 포함되어 있음


주제에 대한 학습 레퍼런스


주제에 대한 학습 내용과 내가 이해한 것을 요약

  • 데이터 독립성
    • 데이터 모델링에서 필요한 것은 데이터의 일체적 구성이다 -> 일관된 형태로 데이터를 수집해야 한다 -> 데이터의 독립적 구성이라고도 한다 <-> 데이터 종속성
    • 독립적이라는 것은 다른 데이터에 영향을 주지 않는다는 뜻 -> 회원 목록 A,B,C가 있는데 A를 수정하는데 B/C에 영향이 가지 않는다는 뜻
문제 보기를 이유로 데이터 독립성이 필요해진다
번호 문제 보기
1 유지보수의 비용 증가
2 데이터 복잡도 증가
3 요구사항 대응 저하
4 유지보수 중복성 증가
  • 3층 스키마
    • 데이터베이스를 관점에 따라서 세 단계의 계층으로 나누어보자는 형식의 표준
      • 관점은 사용자, 설계자, 개발자 세 가지로 나누어짐
      • 계층은 외부, 개념, 내부 스키마로 위에서 설명하듯이 세 단계이며, 각 계층을 View라고 부름
  • 외부 스키마(프로그램)
    • 유저 어플리케이션(=프로그램)이 위치하는 단계 -> 최상위 단계 -> 사용자 관점
    • 우리가 쓰는 프로그램
    • 실제로 우리가 보고싶은 데이터만 보고 나머지는 숨길 수 있음 -> 3층 스키마 레이어를 사용하는 이유
    • 예) 고객 정보 백오피스에는 이름과 전화번호 데이터가 보여진다...
  • 개념 스키마(구조)
    • 외부와 내부를 연결하는 단계
    • 데이터베이스를 추상화 하며, 데이터가 어떻게 구성되어 있는지를 봄 -> 설계자 관점
    • 데이터베이스의 물리적 저장 구조는 숨기고, 데이터의 전체적인 구조와 관계에 대해서 집중
    • 모든 사용자 관점을 통합한 조직 전체의 DB를 기술 <- 사용자(외부)를 통합했다로 알아보기
    • 예) 데이터베이스는 이름과 전화번호 데이터를 가지고 있으며, 데이터의 생김새는 무엇이고...
  • 내부 스키마(하드웨어)
    • 실제 데이터베이스가 저장되어 있는 위치 -> 최하위 단계
    • 데이터를 파일에 저장하고, 어디에 있는지를 정하는 기계
    • DB가 물리적으로 저장되어 있다/물리적 장치에서 실제적으로 저장되는 완전히 구체적인 방법 -> 개발자 관점
    • 예) 이 데이터를 a.txt 파일에 저장하고, 저장한 파일은 컴퓨터 내에 어디 경로에 있으며...
  • 매핑
    • 외부 스키마에서 각 계층(View) 간의 응답을 요청하는 행위
    • 외부 스키마에서 요청을 보내면, DBMS에 의해개념 스키마 - 내부 스키마로 전달됨 -> 그리고 이 요청을 응답으로 변환하는 과정 전체를 매핑(사상)이라고 부름

선으로 연결된게 매핑

3층 스키마 정리
이름 실제 사용되는 보기 관점
외부 스키마 실제로 보고 싶은 데이터만 보고 나머지는 숨김 사용자
개념 스키마 물리적 저장 구조는 숨기고, 전체적인 구조에 집중, 모든 사용자 관점을 통합 설계자
내부 스키마 물리적 장치에서 실제로 저장하는 구체적인 방법 개발자

 

  • 3층 스키마와 데이터 독립성
    • 데이터 독립성은 상위 스키마를 변경하지 않고, 하나의 계층에서 스키마를 변경할 수 있는 능력
    • 내부 스키마를 수정하더라도, 개념 스키마를 따로 건드리지 않아도 된다
      • 개념 스키마를 수정한다고 하더라도 외부 스키마를 수정하지 않아도 된다
    • 3계층의 스키마에서 각각의 관계가 하나씩, 2개의 독립성을 갖고 있음
      • 논리적 독립성 : 구조 -> 개념-외부 스키마 간의 독립성
      • 물리적 독립성 : 하드웨어 -> 내부-개념 스키마 간의 독립성
  • 논리적 독립성
    • 개념 스키마를 변경하더라도 외부 스키마를 변경할 필요가 없음
    • 논리적 구조가 변경되어도, 응용 프로그램에 영향이 없음
  • 물리적 독립성
    • 내부 스키마를 변경하여도 개념 스키마를 변경할 필요 없음
    • 구조상 최하위인 실제 데이터베이스 저장 장치의 구조가 변경되어도, 응용 프로그램 및 논리적 구조에 영향을 주지 않음

 

 

 


학습 회고 및 내용 평가

학습접근도

(쉽게 찾아볼 수 있다/찾다 보면 나온다/깊게 탐색해야 알아낼 수 있다)

 

학습 필요도

(반드시/그렇다/우선 순위가 아님)

 

학습 난이도

(바로 잘 풀어 설명할 수 있다/몇 번 더 복습해야 한다/아주 깊게 고민하고 탐구해야 한다)

 

학습 메타인지

(정확하게 학습계획과 수행 일치/하루 이틀 정도 계획에서 벗어남/일주일 이상 정도 계획에서 벗어남)

 

학습 평가 결론 및 계획 수정 사항

  • 데이터베이스 이론에 대해 알고 있지 않다면, 상당히 어려운 내용
  • 각 개념에 대해서 잘 이해하기 위해서는 충분한 설명과 함께 예시가 적절해야 알 수 있음
  • 충분한 숙지 및 바로바로 풀어 설명하며 문제를 해결하기 위해서는 조금 더 학습할 필요가 있음
     

 


분류

#SQL#SQLD#SQLD자격증#데이터#쿼리#데이터모델링#3층스키마

학습 내용 기록

주제 선정 사유

  • SQLD 시험 학습 문제 주제 중에 하나
  • SQLD 자격증 강의에 포함되어 있음


주제에 대한 학습 레퍼런스


주제에 대한 학습 내용과 내가 이해한 것을 요약

 

  • 모델링의 이해
    • 데이터베이스에서 모델은 데이터베이스의 구조나 형식을 의미
    • 컴퓨터에 현실세계에 존재하는 데이터를 데이터베이스로 형식을 맞춰서 저장하기 위해 모델을 만드는 과정인 모델링이 필요
    • 데이터모델은 데이터베이스의 큰 그림을 이해하고 이를 바탕으로 SQL 쿼리를 작성하기 위해 필요하다
  • 데이터 모델링의 정의 관련 문항 정리 
번호 올바른 표현의 보기 틀리기 쉬운 보기
1 정보시스템을 구축하기 위해 데이터 관점의 업무를 분석하는 과정 데이터베이스 개발(구현) 만을 위해 필요한 것은 아님
2 현실 세계의 데이터를 약속된 표기법에 의해서 표현하는 과정  
3 데이터베이스를 구축하기 위한 분석 및 설계의 과정  

 

  • 데이터 모델링의 특징
    • 추상화(Abstraction) : 현실 세계를 일정한 형식에 맞춰서 표현하는 것
    • 단순화(Simplification) : 복잡한 현실을 약속된 규칙에 맞춰서 제한된 언어나 표기로 표현하는 것
    • 명확화(Clarification) : 대상에 대한 애매모호함을 제거하고 현상을 정확하게 기술하는 것
    • 요약하면, 현실 세계의 정보를 데이터베이스의 형식으로 추상화하고, 제한된 언어로 단순화하고, 명료하게 기술하는 명확화를 거쳐 모델링을 한다
  • 데이터 모델링의 단계
    1. 개념적 모델링 : 데이터의 요구사항을 찾고 분석하는 단계. 단순함, 중요한 부분 위주, 추상화 수준이 높고 업무 중심적
    2. 논리적 모델링 : 정보의 논리적 구조를 명확하게 표기하는 단계. 데이터를 갖고 누가/어떻게 비즈니스를 할까를 고려함. 정규화(일관성 확보 및 데이터의 중복을 제거하기 위한 작업)를 수행하여 독립성을 확보하게 됨
    3. 물리적 모델링 : 데이터 저장소로써 어떻게 컴퓨터에 표현될 것인지를 다루는 단계. 테이블/인덱스를 생각하여 구축
  • 데이터 모델링의 관점
    • 데이터 모델링은 각각 데이터 관점/프로세스 관점/ 그리고 데이터와 프로세스의 상관 관점으로 구성됨
    • 데이터 관점(What) : 업무가 어떤 데이터와 관련이 있는지를 기준으로 모델링에 고민
    • 프로세스 관점(How) : 업무가 실제 하는 일무엇을 해야 하는지를 기준으로 모델링에 고민 -> 도메인, 시나리오 분석
    • 상관 관점(Interaction) : 실제 일의 절차에 따라 데이터가 어떤 영향을 받는지를 기준으로 모델링에 고민 -> CRUD 분석
  • 프로젝트 라이프사이클과 데이터 모델링 단계
프로젝트 라이프사이클(Waterfall 기반) 단계 번호 데이터 모델링 및 데이터베이스 관련 작업
분석 1 개념적 모델링 / 논리적 모델링
설계 2 물리적 모델링
개발 3 데이터베이스 구축
테스트 4 데이터베이스 튜닝
전환/이행 5 데이터베이스 전환

 

 

 


학습 회고 및 내용 평가

학습접근도

(쉽게 찾아볼 수 있다/찾다 보면 나온다/깊게 탐색해야 알아낼 수 있다)

 

학습 필요도

(반드시/그렇다/우선 순위가 아님)

 

학습 난이도

(바로 잘 풀어 설명할 수 있다/몇 번 더 복습해야 한다/아주 깊게 고민하고 탐구해야 한다)

 

학습 메타인지

(정확하게 학습계획과 수행 일치/하루 이틀 정도 계획에서 벗어남/일주일 이상 정도 계획에서 벗어남)

 

학습 평가 결론 및 계획 수정 사항

 

  • 내용에 대해서 짧게나마 외울 수 있지만, 이해하기는 쉽지 않은 내용
  • 왜 그러한 관점에서 고민 했는지 명확한 정보 이외에도 스스로 설명하는 것을 보충해보면 좋을 것 같다 

 


분류

 

#SQL#SQLD#SQLD자격증#데이터#쿼리#데이터모델링

학습 내용 기록

주제 선정 사유

  • SQLD 시험 학습 문제 주제 중에 하나
  • SQLD 자격증 강의에 포함되어 있음


주제에 대한 학습 레퍼런스


주제에 대한 학습 내용과 내가 이해한 것을 요약

  • 데이터란?
    • 데이터는 정보인데, 저장이나 처리에 효율적인 형태로 변환된 정보
    • 매일 초당 2억개 정도의 메일이 발송되고 있음 -> 이런 정보들이 데이터
    • 2025년에는 175ZB에 도달할 것 -> 무한할 정도로 생겨나는 데이터를 효율적으로 잘 이해해서 저장하고 관리할 수 있어야 한다
  • 데이터베이스
    • 데이터를 저장하자!
      • 데이터를 저장하는 효과적인 방법은 아래와 같이 발전
      • 먼저 표(스프레드시트)의 형태로 구현됨
      • 그러나 데이터가 무한정 늘어날 수 없게끔 한계가 있음(엑셀 파일의 경우 10만 라인만 늘어나도)
      • 엑셀 파일과 같은 형식에서는 고객의 계좌정보 표에서 계좌번호 및 비밀번호에 대한 노출이 쉬워짐
      • 헬스장에서의 회원과 트레이너 표가 있다면 유기적으로 연결된 것이 깨지지 않아야 하지만 보장하기 어려움(무결성)
    • 데이터베이스
      • 스프레드시트와 같은 형식에서 데이터 관리의 불편함을 느끼고, 관리할 수 있는 시스템을 만들게 됨 -> 이것이 데이터베이스
      • 데이터베이스는 잘 조직화된 데이터들의 모음을 의미하며, 이러한 데이터베이스를 관리하는 것이 바로 DBMS
    • DBMS
      • Database Management System -> DBMS -> 데이터베이스를 관리하는 프로그램
      • 이러한 DBMS 중의 예시들이 SQLite, MySQL, MongoDB, MariaDB ...
      •  각 DBMS마다 사용하는 디테일이 다르다 -> 국제표준화기구에서 표준을 만들게 되며 큰 골자는 같음

 

 


 

 

 


학습 회고 및 내용 평가

학습접근도

(쉽게 찾아볼 수 있다/찾다 보면 나온다/깊게 탐색해야 알아낼 수 있다)

 

학습 필요도

(반드시/그렇다/우선 순위가 아님)

 

학습 난이도

(바로 잘 풀어 설명할 수 있다/몇 번 더 복습해야 한다/아주 깊게 고민하고 탐구해야 한다)

 

학습 메타인지

(정확하게 학습계획과 수행 일치/하루 이틀 정도 계획에서 벗어남/일주일 이상 정도 계획에서 벗어남)

 

학습 평가 결론 및 계획 수정 사항

  • 처음 공부하는 것은 아닌지라, 아주 가볍게 생각하고 넘어갔었지만 의외로 다시 돌아보며 생각하는데 도움이 되었음
  • 데이터에 대해서 알지 못하는 단계에서는 떠올리기 어려운 관념이지만, 머리에 새겨두면 향후 학습에도 도움이 됨

 


분류

#SQL#SQLD#SQLD자격증#데이터#쿼리

+ Recent posts