Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
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
Tags more
Archives
Today
Total
관리 메뉴

기분좋음

국비 29 일차 본문

IT 포트폴리오/국비지원교육 Diary

국비 29 일차

기분좋음:) 2022. 1. 21. 15:56
반응형

16강 정규화

• 정규화(Normalization)

1. 관계형 데이터베이스를 설계할 때

2. 데이터의 중복을 최소화하여 저장 효율을 높이고

   관계에서 바람직하지 않은 삽입, 삭제, 갱신 이상이 발생하지 않도록 함

3. 새로운 형태의 데이터가 삽입될 때 관계를 재구성할 필요성을 줄일 수 있음

4. 보다 간단한 관계 연산에 기초하여 검색을 보다 효율적으로 할 수 있음

 

정규화의 장점

• 데이터베이스의 일관성을 향상

• 데이터베이스의 확장성을 보장

• 데이터베이스의 논리적 구조를 견고하게 만들 수 있다

 

어노말리(이상현상)

• 정규화를 진행하지 않은 경우 발생

• 릴레이션을 조작할 때 이상 (Anomaly)현상이 발생하게 된다.

1. 삽입이상 (insertion Anomaly)

2. 삭제이상 (Deletion Anomaly)

3. 갱신이상 (Update Anomaly)

 

삽입 이상 (Insertion Anomaly)

• 데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상

  제 1정규형에 문제가 있는 경우 발생하는 현상

• 다른 데이터가 존재하지 않아 원하는 데이터를 입력할 수 없는 것이 삽입 이상 현상

 

삭제 이상 (Deletion Anomaly)

• 릴레이션의 한 튜플(행)을 삭제함으로써 연쇄 삭제로 인해 정보의 손실이 발생하는 현상

 

갱신 이상 (Update Anomaly)

• 튜플 중에서 일부 튜플의 값만을 갱신함으로써 정보의 모순성 이 발생하는 현상

  이유는 데이터의 중복

 

학번 -> (학생이름, 학부)        학번에 의해 학생이름, 학부 결정됨

결정자      종속자 

 

어노말리(Anomaly)를 해결하는 방법 => 정규화

정규화를 위해선 속성들 간의 관련성을 파악해야 하는데,

이 속성들 간의 관련성을 함수적 종속성이라고 한다.

일반적으로 하나의 릴레이션에는 하나의 함수적 종속만이 존재하도록 정규화 하게 된다.

 

정규형의 구조

비정규 릴레이션->1NF->2NF->3NF->BCNF->4NF->5NF

주로 제 3규형 까지 배운다 1,2,3(단계별로 작업하는 습관)

 

• 제1정규형 

-속성 값이 원자값(하나의 값)을 갖도록 분해

 

• 제2 정규형 (부분 함수 종속성)

-복합키가 하나의 값을 결정해야한다.  부분적으로 따로 결정할수 있으면 테이블을 나눠준다. 

-제2 정규형은 릴레이션이 제1 정규형을 만족하고,

   기본키가 아닌 속성이 기본키에 완전 함수 종속일 때를 의미

 

• 제3 정규형 (이행적 함수 종속)

- 제 2 정규형에 속하면서, 

  기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속이 되지 않으면 제 3 정규형이다.

이행(移行)적 함수 종속 (Transitive Functional Dependency)

이행적 함수 종속이라는 건 삼단논법 같은 관계를 가진 함수 종속

-X, Y, Z 에 대해 X->Y 이고 Y->Z 이면 X->Z 가 성립한다. 이를 Z 가 X 에 이행적으로 함수 종속되었다고 한다.

-> [X,Y] , [Y,Z] 두 릴레이션으로 나누어 준다.

 

17강 관계 모델

1:1 관계

1 : 1 관계란 어느 쪽 당사자의 입장에서 상대를 보더라도 반드시 단 하나씩 관계를 가지는 것을 말합니다.

EX) 신랑 - 신부 (1:1)관계

개념 상 하나로 합쳐도 문제없다.

 

1:M 관계 

• 1 : M관계는 한쪽이 관계를 맺은 쪽의 여러 객체를 갖는 것을 의미한다.

EX) 부모 - 자식    (한명의 부모와 여러명의 자식) 관계   OR  컴퓨터 디렉터리 구조 역시 마찬가지 입니다.

• 테이블은 서로 선천적으로 관계를 가지고 있다.

• 재귀적 관계 (1:M관계가 파생)

EX)회사 -> 부서 -> 세부부서 (배민 -> 개발부 -> 개발 1팀)

 

N:M 관계 => 가장 많은 형태

• N : M 관계는 관계를 가진 양쪽 당사자 모두에서 1 : M 관계가 존재할 때 나타나는 모습

EX) 학생 -  과목 관계

학생 입장에서는 여러 개 과목을 수강할 수 있고, 과목 입장에서 보면 여러 학생이 이 과목을 선택할 수 있습니다.

어느 쪽에서 봐도 관계가 성립됩니다.

• 이 관계는 선천적으로는 테이블과 테이블의 관계가 없습니다. 각 테이블은 스스로 존재하고 있습니다.

  그런데 이들 사이에 어떤 관계를 맺어 줌으로써 관계가 형성됩니다.

 

 

학생 - 과목 PK 중복발생한다.(과목 id-여러명동일)

->

• N:M 관계를 해결하기 위해서 또 하나의 테이블이 필요

학생 - 수강 - 과목 (수강테이블에 속성을 학생id 과목id 생성 (복합키)해서 pk중복을 없앤다. )

방법 1

시퀀스 생성해서 PK로 설정 

학생ID, 과목ID를  각각 학생테이블 ID와 과목테이블 ID를 참조하는 FK로 설정

방법 2

학생ID, 과목ID를  각각 학생테이블 ID와 과목테이블 ID의 상속형 PK사용 FK로 설정

방법 3

관계 테이블에 PK와 대체키(보조키=후보키) (alternate key)를 사용하는 모델

방법2에 다가 시퀀스를 생성해 보조키로 설정

 

18강 데이터 베이스 모델링

데이터 베이스 설계

• 테이블에 데이터를 저장하기 위해서는 테이블 구성해야 하는데

  전체 시스템을 고려하여 테이블을 구성하는 과정을 데이터베이스 설계라고 한다.

 

요구사항 분석

• 요구사항 분석은 프로그램의 방향을 결정하고 범위를 설정

• 요청자의 의도를 파악해서 요구되는 정보가 무엇인지 정확하게 분석해야 한다.

• 요구사항 결과물로 요구사항 명세서, 업무 흐름도를 얻을수 있다 (모든 시나리오 도출해서 전반적인 흐름정리)

 

논리적 데이터 모델링 단계

• 요구사항에 대한 분석이 마무리 되면 요구사항 정의서를 토대로 모델링 단계를 거치게 된다.

• 관계형 모델을 근거로 E-R 모델링(Entity-Relationship Modeling)을 한다.

   • E-R 다이어 그램을 그리는 권장 사이트 : https://app.diagrams.net/

 

Flowchart Maker & Online Diagram Software

Flowchart Maker and Online Diagram Software diagrams.net (formerly draw.io) is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPM

app.diagrams.net

• 객체 관계 모델은 DBMS 종류에 관계 없이 데이터를 속성으로 구성된 엔티티와 이들간의 관계를 묘사한다.

 

엔티티는 필요한 정보에 해당하는 주요 대상, 현실세계에서 다른 모든 것과 구분이 되어 업무 수행을 위해 알아야한      대상이 되는 유형, 무형의 것을 말하며 다양한 속성으로 구성 된다. => 사각형  ex 고객

• 엔티티의 구성 요소인 속성은 엔티티를 설명하거나 제한 하는 특성, 성질등 구체적으로 나타내는 세부항목이다. =>

  타원형 ex) 고객 아이디, 이름, 암호, 주소, 연락처

• 엔티티를 구성하는 데 중요한 제약중 하나가 엔티티들의 서로 상이한 값만 갖는 속성이 다 이런 속성을 키속성이라고     한다.

• 키속성은 각 엔티티 인스턴스를 유일하게 식별하는 데 사용한다.  =>  타원형 안에 밑줄 ex 고객아이디

 

EXAMPLE

엔티티명               포함되는 속성

고객             고객 아이디, 고객 암호, 고객이름, 주소, 우편번호, 연락처, 가입일

관리자          관리자 아이디, 관리자 암호, 관리자 이름, 연락처 상품 상품코드, 상품명, 등록 상품 구분, 상품 원가,                          상품 판매가, 판매가와 원가의 차액, 상품 내용, 상품 이미지 명, 사이즈 시작, 사이즈 끝, 수량, 상                                품을 등록한 관리자 아이디, 상 품 사용 유무, 등록일

주문             주문자 아이디, 주문상품코드, 주문 상품 사이즈, 주문 수량, 주문 처리 여부, 주문일 , 주문 일련번호

 

• 용어 사전 정의

• 데이터 베이스 설계에 사용할 용어를 미리 정의해둔 문서

1) 엔티티이름과 속성이름을 모아 리스트 작성

2) 엔티티이름이나 속성 이름이 여러 단어를 포함하는 경우 이를 분리한다.

3) 마지막 단어를 기준으로 정렬

4) 각 단어에 영단어를 붙이고 용어의 의미를 설명.

 

 

물리적 데이터 베이스 설계를 한다.

• 엔티티, 관계, 속성, 식별자들을 테이블, 칼럼, 키 등으로 변환하는 과정

• 주로 테이블 정의서를 작성한다.

 

물리적 데이터 모델링 단계

• 해당 테이블 정의를 통해서 설계도를 그린다.

• 권장 사이트 : https://www.erdcloud.com/

반응형

'IT 포트폴리오 > 국비지원교육 Diary' 카테고리의 다른 글

국비 31 일차  (0) 2022.01.25
국비 30 일차  (0) 2022.01.25
국비 28 일차  (0) 2022.01.20
국비 27 일차  (0) 2022.01.20
국비 26 일차  (0) 2022.01.18