2. 논리데이터베이스 설계 - 2과목 데이터베이스 구축
지난 시간은 개논물이 나왔습니다. 개념설계은 ERD, 논리 설계은 정규화와 트랜잭션 인터페이스, 물리 설계는 성능과 관련되어 있다고 짧막하게 설명했습니다. 구조, 연산, 제약은 데이터 모델에 꼭 표시해야하는 개념입니다. ERD의 개체는 네모, 속성은 원형, 관계는 마름모로 표시합니다. 상세한 내용은 1. 데이터 베이스 구축 설명을 확인해 보세요.
이번 시간은 정규화 반정규화 등을 배우게 됩니다. 정보처리기사 실기에서 자주 나오는 주요 파트이기 때문에 반드시 학습하셔야합니다. 최소한 개념, 논리, 물리 설계와 정규화는 꼭! 아셔야합니다.
목차
논리적 데이터 모델링이란?
논리적 데이터 모델링은 현실 세계의 업무 규칙과 개체 간의 관계를 기반으로 데이터베이스를 설계하는 과정입니다.
이 과정에서 개체, 속성 및 관계를 식별하고, 이러한 요소들을 표현하는 방법을 결정합니다.
논리적 데이터 모델링은 데이터베이스의 구조와 데이터 저장 방법을 결정하는 중요한 단계 중 하나입니다.
- 개념적 설계 단계에서 추출된 실체와 속성들의 관계를 구조적으로 설계하는 단계
- 모든 데이터를 정규화하여 모델링
- 성능, 제약사항과는 독립적인 모델로 , 특정 DBMS로 부터 독립적이다.
논리적 데이터 모델 종류
데이터 모델 | 특징 | 예시 |
계층형 데이터 모델 | 데이터를 트리 구조로 표현하며, 부모-자식 관계가 중요함 | IMS, Hierarchical DBMS |
네트워크형 데이터 모델 | 그래프 형태로 데이터를 표현하며, 다양한 연결 구조를 지원함 | CODASYL, Network DBMS |
관계형 데이터 모델 | 테이블 형태로 데이터를 표현하며, 행과 열의 관계를 사용하여 데이터 정의 | SQL, RDBMS (MySQL, Oracle) |
객체 지향형 데이터 모델 | 객체와 객체 간의 관계를 중심으로 데이터를 모델링함 | Object-oriented databases |
데이터베이스 정규화란?
데이터 종류 공유, 저장, 통합, 운영 중 통합에서 중복을 줄이지 못하면 이상 현상이 일어날 수 있습니다.
정규화의 목적
- 데이터 중복 최소화: 정규화는 데이터베이스 내에서 중복된 데이터를 최소화하여 저장 공간을 절약하고 데이터 일관성을 유지합니다.
- 데이터 무결성 보장: 정규화는 데이터의 무결성을 보장하기 위해 각 테이블이 잘 정의된 기본 키를 가지고 있도록 합니다. 이를 통해 데이터베이스에서 일관성 있는 정보를 유지할 수 있습니다.
- 연산 효율성 향상: 정규화를 통해 데이터를 논리적으로 구조화하면 데이터 검색, 삽입 및 갱신 연산이 더 효율적으로 수행됩니다.
정규화의 장점, 단점
장점 | 단점 |
데이터 일관성 유지 | 조인 연산 증가 |
데이터 저장 공간 절약 | 복잡성 증가 |
데이터 모델의 유연성 향상 | 적절한 정규화 수준 선택의 어려움 |
이상현상이란?
아래 키워드를 반드시 기억해주세요.
삽입이상 : 불필요한 데이터가 삽입되는 현상
삭제이상 : 연쇄 삭제
갱신이상 : 정보의 모순 오타처럼
이상현상 | 설명 |
삽입이상 | 삽입 연산 시 불필요한 데이터가 추가되는 현상입니다. 예를 들어, 하나의 튜플을 추가하기 위해 다른 속성들에는 의미 없는 값이나 NULL이 삽입되는 경우가 있습니다. |
삭제이상 | 연쇄 삭제가 발생하여 의도치 않은 데이터의 손실이 발생하는 현상입니다. 예를 들어, 부모 테이블에서 튜플을 삭제할 때 해당 튜플과 관련된 자식 테이블의 튜플도 함께 삭제되는 경우입니다. 이로 인해 부모 테이블과 관련된 데이터가 무의미하게 손실될 수 있습니다. |
갱신이상 | 갱신 연산이 모순을 발생시키는 현상입니다. 예를 들어, 하나의 정보가 여러 근원에서 중복되어 저장될 때, 이 중 하나의 정보를 갱신하면 다른 근원의 정보는 업데이트되지 않아 모순된 데이터가 발생할 수 있습니다. |
함수적 종속이란?
릴레이션 R, X, Y로 설명
일반적인 예시 필요
아이디(x) | 이름(y) | 나이 (y) | 배송지 (y) |
ndswso2 | 홍길동 | 35 | 서울특별시 |
avsd23 | 이순신 | 28 | 충북 충주시 |
위 표(릴레이션, R)에서 아이디를 알면 이름을 알 수 있고, 아이디를 알면 나이를 알 수 있고, 아이디를 알면 배송지를 알 수 있습니다.
이와 같이 x를 알면 y를 알 수 있다. X->Y 관계가 함수적 종속관계라고 합니다.
함수적 종속 관계
완전 함수적 종속 관계(Full Functional Dependency)
종속자(x)가 기본키에만 종속되며, 기본키가 여러 속성으로 구성되어 있을 때, 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우.
아이디(x) | 이름(y) | 나이 (y) | 배송지 (y) |
ndswso2 | 홍길동 | 35 | 서울특별시 |
avsd23 | 이순신 | 28 | 충북 충주시 |
위와 같이 아이디하나로 나머지를 모두 알 수 있을 때, 완전 함수 종속 관계라고 합니다.
부분 함수적 종속 관계(Partial Functional Defendency)
기본키가 여러 속성으로 구성되어 있을 때, 기본키를 구성하는 속성 중 일부부만 종속되는 경우.
아이디(x) | 주문번호(x) | 이름(y) | 나이 (y) | 배송지 (y) | 회원가입일 (y) |
ndswso2 | ORD-222 | 홍길동 | 35 | 서울특별시 | 2024.04.01 |
avsd23 | ORD-333 | 이순신 | 28 | 충북 충주시 | 2024.03.01 |
위 릴레이션에서 주문 번호는 회원가입을 추정할 수 없습니다. 즉 회원가입일(y)는 아이디(x)에만 종속되는 부분 함수적 종속 관계입니다.
이행적 함수 종속(Transitive Functional Dependency)
기본키 X가 있을 때, X로 Y를 알 수 있고, Y를 알면 Z를 알 수 있을 때 이행적 함수 종속이라고 말합니다.
X->Y, Y->Z, X->Z를 말합니다.
아이디(x) | 주문번호(x) | 주문 제품 (y) |
ndswso2 | ORD-222 | green t-shirts |
avsd23 | ORD-333 | blue pants |
위와 같이 아이디를 조회하면 아이디가 주문한 주문 번호를 알 수 있고, 주문 번호를 조회하면 주문 제품을 알 수 있을 때, 아이디만 검색해도 주문 제품을 알 수 있는 경우 이행적 함수 종속 관계가 되는 것입니다.
정규화과정
- 1차 정규화 (1NF) - 도메인 분해
- 각 열은 원자 값만 포함해야 합니다.
- 즉, 각 셀에는 단일 값만 포함되어야 합니다.
- 다중 값 속성을 분해하여 각 값에 대한 별도의 열을 만듭니다.
- 예를 들면, 취미가 운동, 독서, 음악듣기 등으로 여러개가 적혀있으면 이걸 분해하는 과정
- 2차 정규화 (2NF) - 부분함수 종속 제거
- 부분 함수 종속성을 제거합니다.
- 부분 함수 종속성이란 후보 키가 아닌 열이 기본 키에 종속되는 경우를 의미합니다.
- 기본 키가 아닌 열이 기본 키의 일부에 종속되는 경우 해당 열을 새로운 테이블로 이동합니다.
- 아이디를 알면, 이름과 지역을 알 수 있을 때, 이 둘을 분리하는 과정
- 3차 정규화 (3NF) - 완전 함수 종속 제거
- 이행 함수 종속성을 제거합니다.
- 이행 함수 종속성이란 한 열이 다른 열을 통해 종속되는 경우를 의미합니다.
- 이행 종속성을 제거하기 위해 새로운 테이블을 생성하고 이를 기존 테이블과 관련 짓습니다.
- 학번을 알면 주민을 알고 주민을 알면 이름을 알 수 있을 때, 학번-주민, 학번-이름을 분리한 과정
- 보이스/코드(BCNF) 정규형 - 결정자 중 후보키가 아닌 것 제거
- 결정자 중 후보키가 아닌 것들을 제거
- BCNF에서 모든 비-키 속성은 기본 키에 대해 완전 함수 종속되어야 함
- BCNF를 달성하기 위해 원래 테이블을 여러 개의 더 작은 테이블로 분해해야 할 수 있어야함
- 4차 정규화 (4NF) - 다치 속성 제거
- 다중 값 종속성을 제거합니다.
- 다중 값 종속성은 한 열 집합이 두 개 이상의 다른 열 집합에 종속되는 경우를 의미합니다.
- 다중 값 종속성을 해소하기 위해 새로운 테이블을 생성하고 이를 원래 테이블과 관련 짓습니다.
- 5차 정규화 (5NF) - 조인 속성 제거
- 조인 종속성을 제거합니다.
- 조인 종속성은 두 개 이상의 테이블을 조인하여 얻을 수 있는 정보가 있을 때 발생합니다.
- 이러한 경우에는 새로운 테이블을 생성하여 조인된 정보를 저장하고, 원래 테이블과의 관계를 설정합니다.
- 조인 종속성이 제거되면서 데이터의 중복성을 최소화하고 데이터의 일관성을 유지할 수 있습니다.
'정보처리기사' 카테고리의 다른 글
4. 데이터 베이스 물리속성 설계 - 2과목 데이터 베이스 구축 (0) | 2024.03.31 |
---|---|
[정처기실기] 3. 물리 데이터베이스 설계 (0) | 2024.03.31 |
1. 데이터 베이스 구축 - 2과목 데이터베이스 구축 (2) | 2024.03.30 |
22. 애플리케이션 패키징- 제품 소프트웨어 패키징 - 1과목 소프트웨어 구축 (0) | 2024.03.29 |
21. 제품 소프트웨어 패키징 - 국제 표준 제품 품질 특성 - 1과목 소프트웨어 구축 (0) | 2024.03.29 |
댓글