본 포스팅은
BDA 빅데이터분석학회 SQLD 스터디 학습내용입니다.
[2024 이기적 SQL 개발자 이론서+기출문제]
서적과 강의를 바탕으로 서술한 내용임을 밝힙니다.
데이터베이스
- 여러 사람들이 모여 통합으로 관리하는 기술
- 여러 사람들이 함께 사용하고 공유 가능
01. 데이터 모델링
데이터 모델링: 현실 세계의 대상을 추상화, 단순화, 명확화하여 데이터베이스를 표현하는 것
- 추상화: 현실 세계를 간략하게 표현
- 단순화: 누구나 쉽게 이해할 수 있도록 표현
- 명확화: 명확하게 의미가 해석되어야 하고 한 가지 의미를 가짐
- 계획/분석시, 업무 분석 및 설계, 설명에 사용
- 구축/운영시, 변경, 관리 목적으로 사용
ERD(Entitiy Relationship Diagram)
: 엔티티와 엔티티 간의 relationship(관계)를 발견하고 이를 Diagram(그림)으로 표현하는 행위
→ 개념적 데이터 모델링의 결과물
- 엔티티를 도출하고 그린다.(속성 제외)
- 엔티티를 배치한다. → 중요한 엔티티는 왼쪽 상단에 배치한다.
- 엔티티 간의 관계를 설정한다.
- 관계명을 서술한다.
논리적 모델링
- 속성을 모두 아래로 입력
- 각 엔티티에서 식별자(PRIMARY KEY)를 선택
- 정규화를 수행해 중복되는 데이터 입력이 없도록 함
- 관계설정(FOREIGN KEY)을 함 → 정규화로 쪼개진 대상들을 연결하기 위해 식별자를 빌려옴
데이터 모델링의 중요성
- 파급효과: 초반에 엉망으로 설계하고 개발하다가 나중에 엎게 되면 힘들어짐
- 간결한 표현: 서로 의사소통을 위해 모델링된 설계도(erd 등)으로 쉽게 이해 가능
- 데이터 품질: 애초에 데이터 모델링을 제대로 해야 이상한 데이터(데이터 중복, 비유연성, 비일관성 등)가 안 들어감
02. 데이터 베이스 3단계 구조(3층 스키마 구조)
- 외부(External) 스키마: 여러 사용자 각각의 관점
- 개념(Conceptual) 스키마: 통합적, 조직 전체의 DB 관점
- 내부(Internal) 스키마: 데이터 물리 저장 구조 표현
* 저장공간(하드디스크)등을 데이터베이스에 추가해도 직원 테이블(=엔터티)의 내용이 변경하지 않는다. → 독립성
03. 엔터티(Entity)
Entity: 업무에 필요한 정보를 관리/저장하기 위한 집합적인 명사 개념
인스턴스(Instance): 엔터티 집합 내에 존재하는 개별적인 대상
- 반드시 업무에서 필요한 대상이고 업무에 사용될 것
- 유일한 식별자로 식별이 가능할 것
- 인스턴스가 2개 이상일 것
- 속성이 반드시 2개 이상 존재할 것
- 관계가 하나 이상 존재할 것(단, 코드성/통계성은 생략 가능)
엔터티의 분류
1. 유형과 무형에 따른 종류
2. 엔터티가 발생하는 시점
엔터티 명명 규칙
- 가능한 현업 용어 사용
- 가능한 약어 사용X
- 단수 명사 사용
- 엔터티 이름은 유일
- 엔터티 생성 의미대로 이름 부여
04. 속성(Attribute)
속성: 우리가 관리하고자 하는 정보
- 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다.
속성 명명 규칙
- 가능한 현업 용어 사용
- 가능한 약어 사용X
- 명사형을 쓰고 서술식이나 수식어 등을 제한
- 가능한 속성 이름은 전체 데이터 모델에서 유일
05. 관계(Relationship)
: 엔터티 내의 인스턴스들 간에 서로 논리적인 연관성이 있는 상태
- ERD: 존재/행위 등 관계를 위처럼 똑같이 표시
- UML 클래스다이어그램: 연관관계(존재)는 실선으로 표기하고 의존관계(행위)는 점선으로 표시
관계를 표현하는 방법
관계명(Membership), 관계차수(Cardinality/Degree), 관계선택사양(Optionality)
06. 엔터티 식별자
식별자: 엔터티 내 유일한 인스턴스를 식별할 수 있는 속성의 집합
식별자 분류
- 대표성여부: 주식별자 vs. 보조식별자
- 스스로생성여부(자생여부): 내부식별자 vs. 외부식별자
- 단일속성여부: 단일식별자 vs. 복합식별자
- 대체여부: 본질식별자 vs. 인조식별자
주식별자 도출기준과 특징
- 업무에서 자주 쓰는 속성일 것
- 명칭, 이름 등은 피할 것
- 속성의 수가 많지 않을 것
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] 2파트 SQL 기본 및 활용 - SQL 활용 (0) | 2024.11.16 |
---|---|
[SQLD] 2파트 SQL 기본 및 활용 - SQL 기본 학습 (2) | 2024.11.02 |
[SQLD] 1파트 데이터 모델과 SQL (8) | 2024.10.28 |
댓글