이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 2184|회답: 0

[통신] 관계형 데이터베이스 설계: 세 가지 패러다임에 대한 대중적 이해

[링크 복사]
게시됨 2024. 3. 21. 오전 10:53:13 | | | |
면접 중에 일부 면접관들이 데이터베이스 패러다임에 대해 묻기도 하는데, 저는 대학 때 데이터베이스를 공부한 적이 있지만 패러다임에 대해 들어본 적이 없거나 선생님이 언급한 적이 없어서 주의를 기울이지 않았다고 하더군요?

현재 관계형 데이터베이스에는 여섯 가지 패러다임이 있습니다: 첫 번째 패러다임(1NF), 두 번째 패러다임(2NF), 세 번째 패러다임(3NF), 배스-코드 패러다임(BCNF), 네 번째 패러다임(4NF), 그리고 다섯 번째 패러다임(5NF, 완전 패러다임으로도 알려짐)입니다.

보통 우리는 첫 번째 패러다임(1NF), 두 번째 패러다임(2NF), 그리고 세 번째 패러다임(3NF)을 사용하는데, 이 세 번째 패러다임은 이 글에서 다룰 "세 가지 패러다임"입니다.

첫 번째 패러다임 (1NF): 데이터베이스 테이블의 각 열이 분할 불가능한 원자 데이터 항목이어야 함을 요구합니다.

설명:



위 표에서 "가족 정보"와 "학교 정보" 열은 원자성 요건을 충족하지 못해 첫 번째 패러다임을 충족하지 못하며, 다음과 같이 조정됩니다:



각 조정된 열은 나눌 수 없으므로 첫 번째 패러다임(1NF)을 만족한다;

패러다임 2 (2NF): 1NF를 기반으로 비코드 속성은 후보 코드에 완전히 의존해야 합니다(1NF 기준으로 마스터 코드에 대한 비기본 속성의 부분 기능 의존성을 제거함)

두 번째 패러다임은 데이터베이스 테이블의 모든 열이 기본 키의 일부만 있는 것이 아니라 기본 키와 관련되어 있어야 합니다(주로 연합 주요 키의 경우).

설명:



위 도표의 경우, 같은 주문에도 다른 상품이 포함될 수 있으므로, 기본 키는 '주문 번호'와 '제품 번호'의 조합이어야 합니다.

하지만 제품 수량, 할인 가격, 제품 가격은 모두 "주문 번호"와 "제품 번호"와 관련이 있지만, 주문 금액과 주문 시간은 "주문 번호"에만 해당되며 "제품 번호"와는 무관하다는 것을 알 수 있습니다.

이는 두 번째 패러다임의 요구사항을 충족하지 못하며, 다음과 같이 조정되며, 두 개의 표로 나누어야 합니다:



세 번째 패러다임(3NF): 2NF를 기반으로 비주요 속성은 다른 주요 속성에 의존하지 않는다(2NF를 기반으로 전송 의존성을 제거함)

세 번째 패러다임은 데이터 테이블의 각 데이터 열이 간접적으로 연관되지 않고 기본 키와 직접 관련되도록 보장해야 합니다.

설명:



위 표에서 모든 속성은 학생 수에 전적으로 의존하므로 두 번째 패러다임은 충족되지만, "담임 선생님 성별"과 "담임 선생님 나이"는 "담임 선생님 이름"에 직접 의존합니다.

주요 키인 "학생 번호" 대신에 다음과 같은 조정이 필요합니다:



이렇게 하면 세 번째 패러다임의 요구사항이 충족됩니다.

ps:如果把上表中的班主任姓名改成班主任教工号可能更确切,更符合实际情况,不过只要能理解就行。

BCNF (보브체 코드 정상형 바커스 패러다임)

세 번째 수정 패러다임은 기본 키의 한 열이 다른 열에 의존하지 않도록 방지하는 것입니다. 3NF가 주요 속성 코드에 대한 일부 함수 의존성과 전달 함수 의존성을 제거하면 이를 BCNF라고 부릅니다.

특성:

1. 모든 주요 속성은 각 코드에 완전히 함수적으로 의존합니다

2. 모든 주요 속성은 해당 코드를 포함하지 않는 각 코드에 완전히 함수 의존적입니다

3. 완전히 기능적이며 비코드 속성 집합에 의존하는 속성은 없습니다

예를 들어, 재고 테이블(창고 이름, 관리자 이름, 제품명, 수량)의 기본 키는 (창고 이름, 관리자 이름, 제품명)로, 앞선 세 가지 패러다임을 만족하지만 창고 이름과 관리자 이름 사이에 의존성이 있어 창고를 삭제하면 관리자가 삭제되므로 BCNF가 만족되지 않습니다.

4NF 제4 패러다임

비기본 속성은 여러 값을 가지면 안 됩니다. 만약 다중 값이 존재한다면, 이는 네 번째 패러다임을 위반합니다. 4NF는 속성 간에 비자명하거나 함수에 의존하지 않는 다중 값 의존성을 허용하지 않는 제한 관계 패턴입니다.

예를 들어, 사용자 연락처 정보 테이블(사용자 ID, 유선전화, 휴대전화)에서는 사용자 ID가 기본 키로 BCNF를 만족하지만, 사용자가 여러 개의 유선 전화나 여러 휴대전화를 가질 수 있다면 이 설계는 비합리적이며 (사용자 ID, 연락처 유형, 전화번호)로 변경해야 합니다.

참고: 함수 의존성만 고려할 경우, 관계 패턴의 정규화가 가장 높은 패러다임은 BCNF입니다. 다중 값 의존성을 고려하면 4NF입니다.

5NF 제5패러다임

다섯 번째 패러다임은 최종 패러다임으로, 4NF의 연결 의존성을 제거하며, 다섯 번째 패러다임은 다음 요구사항을 충족해야 합니다:

1. 네 번째 패러다임을 충족해야 한다

2. 테이블은 논리적으로 원래 테이블과 동일한 기본 키를 가진 경우를 제외하고, 더 작은 테이블로 분해될 수 있어야 합니다.

일반적인 실용적 응용에서는 다섯 번째 패러다임을 고려할 필요가 없습니다.

전근 출처:하이퍼링크 로그인이 보입니다.
참조:하이퍼링크 로그인이 보입니다.





이전의:알리바바 클라우드는 사설 네트워크(가상 스위치)를 대체하며, 네트워크에 접속할 수 없습니다
다음:PM2로 가디언 ASP.NET 코어 앱을 시작하세요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com