| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- sqld
- MySQL로배우는데이터베이스개론과실습
- 후기
- 연습문제
- 오리엔테이션
- KT
- 입문자
- 스프링
- intelij
- 에이블스쿨
- 회복
- KT AIVLE SCHOOL
- 풀이
- 백업과 복원
- Aivle school
- 미니프로젝트
- MySQL
- 코린이
- 합격후기
- 답안
- 회고
- 자료구조
- 트리
- 동시성제어
- IT's Your Life
- Spring
- 문제풀이
- 보안과 권한
- 9기
- 데이터베이스
- Today
- Total
모둥이의 일지
SQL 정리 본문

▶ 데이터 모델링
⸰ 현실세계 → DB로 표현 : 추상화
⸰ 의사소통 → 고객의 업무 프로세스 이해
⸰ 쉽게 이해할 수 있게 모델링
⸰ 고객의 업무 프로세스 → 추상화, sw분석
▶ 데이터 모델링 특징
⸰ 추상화
⸰ 단순화
⸰ 명확성
▶ 데이터 모델링 단계 (개념적 → 논리적 → 물리적)
⸰ 개념적
- 중요한 부분 위주 모델링.
- 엔터티와 속성 도출. 개념적 ERD 작성.
- 추상화 수준이 가장 높음.
- 업무 측면에서 모델링(계층 데이터·네트워크·관계모델에 관계없이) → 기술적 용어 가급적 사용X.
- 전사적 관점에서 기업의 데이터 모델링.
- 고객의 비즈니스 프로세스를 분석하고 업무 전체에 대해서 데이터 모델링 수행.
⸰ 논리적
- 정규화 → 데이터 모델의 독립성 확보. 재사용성 높음.
- 개념적 → 논리적으로 변환하는 작업
- 식별자 정의, 도출, 필요한 릴레이션 정의, 관계, 속성 등 표현
⸰ 물리적
- DB 실제 구축. 테이블, 인덱스 등 생성.
- 성능, 보안, 가용성 등을 고려하여 DB구축.
▶ 데이터 모델링의 유의점 & 중요성
⸰ 중복
⸰ 비유연성 : 수시로 변경X
⸰ 비일관성 : 데이터 간 상호 연관관계에 대해 명확히 정의
▶ 데이터 모델링 관점
⸰ 데이터 : 비즈니스 프로세스에서 사용되는 데이터.
구조분석, 정적분석
⸰ 프로세스 : 비즈니스 프로세스에서 수행하는 작업.
시나리오분석, 도메인분석, 동적분석
⸰ 데이터와 프로세스 : 프로세스와 데이터 간의 관계.
CRUD분석(Create, Read, Update, Delete)
▶ 데이터 모델링 3요소
⸰ Things
⸰ Attributes
⸰ Relationships
▶ 좋은 데이터 모델의 요소
안정성, 중복배제, 업무규칙, 데이터 재사용, 의사소통, 통합성
▶ 데이터 모델의 고려사항
⸰ 데이터 모델의 독립성
⸰ 고객의 요구사항 표현
⸰ 데이터 품질 확보
▶ ERD (Entity Relationship Diagram)
엔터티와 엔터티 간의 관계를 정의하는 모델링 방법
▶ ERD 작성절차
- 엔터티 도출, 그림
- 엔터티 배치
- 엔터티 간의 관계 설정
- 관계명 서술
- 관계 참여도 표현
- 관계의 필수 여부 표현
▶ 3층 스키마
⸰ 데이터베이스 독립성을 확보하기 위한 방법.
⸰ 사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 기술하고 관계 정의한 ANSI 표준.
⸰ 3단 계층 분리 → 독립성 확보
▶ 3층 스키마의 독립성
⸰ 논리적 : 개념 스키마가 변경되더라도 외부 스키마 영향X
⸰ 물리적 : 내부 스키마가 변경되더라도 개념 스키마 영향X
▶ 3층 스키마 구조
⸰ 외부 스키마
- 사용자의 관점. 업무상 관련 있는 데이터 접근.
- 관련 DB의 뷰(view) 표시. 응용 프로그램이 접근하는 DB 정의.
⸰ 개념 스키마
- 설계자 관점. 사용자 전체 집단의 DB구조.
- 전체 DB내의 규칙과 구조 표현.
⸰ 내부 스키마
- 개발자 관점. DB의 물리적 저장구조.
- 데이터 저장구조, 레코드 구조, 필드 정의, 인덱스 등 의미.
▶ 엔터티 (Entity)
⸰ 업무에서 관리해야 하는 데이터의 집합
⸰ 저장되고 관리되어야 하는 데이터
⸰ 개념, 사건, 장소 등의 명사
⸰ 고객의 비즈니스 프로세스에서 관리되어야 하는 정보 추출
▶ 엔터티의 종류
⸰ 유형과 무형에 따른
- 유형 : 업무에서 도출, 지속적 사용. 물리적 형태 O. ex) 고객, 상품, 부서 등
- 개념 : 물리적 형태 X. ex) 거래소 종목, 코스닥 종목
- 사건 : 비즈니스 프로세스 실행하면서 생성. ex) 주문, 체결, 주문 취소, 수수료 청구 등
⸰ 발생시점에 따른
- 기본(=키) : 다른 엔터티로부터 영향 받지 X, 독립적으로 생성. ex) 고객, 상품, 부서 등
- 중심 : 기본 엔터티로부터 발생, 행위 엔터티 생성. ex) 계좌, 주문, 취소, 체결 등
- 행위 : 2개 이상의 엔터티로부터 발생. ex) 주문이력, 체결이력 등
▶ 엔터티 특징
⸰ 식별자 - 유일한 식별자
⸰ 인스턴스 집합 - 2개 이상의 인스턴스
⸰ 속성 - 반드시 존재 해야함.
⸰ 관계 - 다른 엔터티와 최소한 한개 이상의 관계가 있어야 함.
⸰ 업무 - 업무에서 관리되어야 하는 집합
▶ 속성
⸰ 업무에서 필요한 정보인 엔터티가 가지는 항목.
⸰ 더이상 분리되지 않는 단위, 업무에 필요한 데이터 저장.
⸰ 인스턴스의 구성요소, 의미적으로 더이상 분해X.
⸰ 일반적으로 하나의 값만 가짐.
⸰ 주식별자에게 함수적으로 종속.
⸰ 기본키가 변경되면 속서으이 값도 변경.
▶ 속성의 종류
⸰ 분해 여부에 따른
- 단일 속성 : 하나의 의미로 구성된 것. ex) 회원ID, 이름 등
- 복합 속성 : 여러개의 의미가 있는 것. ex) 주소
- 다중값 속성 : 속성에 여러 개의 값을 가질 수 있는 것. ex) 상품리스트
⸰ 특성에 따른
- 기본 : 비즈니스 프로세스에서 도출되는 본래의 속성. ex) 회원ID, 이름, 계좌번호 등
- 설계 : 데이터 모델링 과정에서 발생되는 속성. 유일한 값 부여. ex) 상품코드, 지점코드 등
- 파생 : 다른 속성에 의해서 만들어지는 속성. ex) 합계, 평균 등
⸰ 구성방식에 따른 분류
- PK 속성 : 엔터티의 인스턴스들을 식별할 수 있는 속성. ex) 회원번호
- FK 속성 : 다른 엔터티의 속성에서 가져온 속성. ex) 회원등급코드
- 일반속성 : PK, FK를 제외한 나머지 속성. ex) ID, 회원명, 핸드폰 번호
▶ 관계 : 엔터티 간의 관련성
⸰ 존재관계 : 두 개의 엔터티가 존재 여부에 관계가 있는 것.
⸰ 행위관계 : 두 개의 엔터티가 어떤 행위에 의한 관련성이 있는 것.
▶ UML에서의 관계
⸰ 연관관계(실선) : 항상 이용하는 관계
⸰ 의존관계(점선) : 상대 행위에 발생하는 관계
▶ UML에서의 관계
⸰ 관계명 : 관계의 이름 (포함한다/소속된다)
⸰ 관계차수 : 1:1, 1:N, M:N
⸰ 관계선택성 : 필수관계, 선택관계
▶ 관계 체크사항
⸰ 2개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?
⸰ 2개의 엔터티 사이에 정보의 조합이 발생하는가?
⸰ 업무 기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
⸰ 업무 기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?
▶ 식별자 : 엔터티를 대표할 수 있는 유일성을 만족하는 속성
▶ 주식별자
⸰ 최소성
⸰ 존재성
⸰ 유일성
⸰ 불변성
▶ 데이터베이스 키 종류
⸰ 기본키(Primary key) : 후보키 중 엔터티를 대표할 수 있는 키
⸰ 후보키(Candidate key) : 유일성과 최소성을 만족하는 키
⸰ 슈퍼키(Super key) : 유일성은 만족하지만, 최소성을 만족하지 않는 키
⸰ 대체키(Alternative key) : 여러 개의 후보키 중에서 기본키를 선정하고 남은 키
⸰ 외래키(Foreign key) : 참조 무결성을 확인하기 위해 사용되는 키
▶ 정규화 절차
⸰ 제1정규화 : 속성의 원자성 확보.
⸰ 제2정규화 : 기본키가 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성 제거.
⸰ 제3정규화 : 이행 함수 종속성 제거.
⸰ BCNF : 기본키를 제외하고 후보키가 있는 경우, 후보키가 기본키를 종속시키면 분해.
⸰ 제4정규화 : 다중값 종속성 제거.
⸰ 제5정규화 : 조인에 의해서 종속성이 발생되는 경우 분해.
▶ 반정규화 : 데이터베이스의 성능향상을 위하여 데이터 중복을 허용하고 조인을 줄이는 DB 성능 향상 방법.
▶ SQL 종류
⸰ DDL(데이터 정의어) : CREATE, ALTER, DROP, RENAME, TRUNCATE
⸰ DML(데이터 조작어) : INSERT, UPDATE, DELETE, SELECT, MERGE
⸰ DCL(데이터 제어어) : GRANT, REVOKE
⸰ TCL : COMMIT, ROLLBACK, SAVEPOINT