. 1 첫 번째 패러다임 (1NF) 에 중복 열이 없습니다.
첫 번째 패러다임 (1NF) 은 데이터베이스 테이블의 각 열이 분할할 수 없는 기본 데이터 항목이라는 것을 의미합니다. 동일한 열에 여러 값을 가질 수 없습니다. 즉, 엔티티 내의 한 속성에 여러 값이나 중복 속성이 있을 수 없습니다. 중복 속성이 있는 경우 새 엔티티를 정의해야 할 수 있습니다. 새 엔티티는 원본 엔티티와 일대다 관계를 갖는 중복 속성으로 구성됩니다. 첫 번째 패러다임 (1NF) 에서 테이블의 각 행에는 정보 인스턴스가 하나만 포함되어 있습니다. 요컨대, 첫 번째 패러다임은 반복되지 않습니다.
참고: 모든 관계형 데이터베이스에서 첫 번째 패러다임 (1NF) 은 관계형 스키마에 대한 기본 요구 사항이며 첫 번째 패러다임 (1NF) 을 충족하지 않는 데이터베이스는 관계형 데이터베이스가 아닙니다.
1.2 두 번째 패러다임 (2NF) 속성은 기본 키 [일부 하위 함수 종속성 제거] 에 전적으로 의존합니다
제 2 패러다임 (2NF) 은 제 1 패러다임 (1NF) 을 기반으로 합니다. 즉, 제 2 패러다임 (2NF) 을 만족시키려면 먼저 제 1 패러다임 (1NF) 을 만족시켜야 합니다. 두 번째 패러다임 (2NF) 에서는 데이터베이스 테이블의 각 인스턴스 또는 행이 고유하게 구분되어야 합니다. 구분하기 위해 각 인스턴스의 고유 id 를 저장하기 위해 테이블에 열을 추가해야 하는 경우가 많습니다. 예를 들어, 직원 번호 (emp_id) 열을 직원 정보 테이블에 추가합니다. 각 직원의 직원 번호는 고유하므로 각 직원을 고유하게 구분할 수 있습니다. 이 고유한 속성 열을 기본 키 또는 기본 키 및 마스터 코드라고 합니다.
두 번째 패러다임 (2NF) 에서는 엔티티의 속성이 primary 키워드에 완전히 종속되어야 합니다. 완전 의존이란 main 키워드의 일부에만 의존하는 속성을 가질 수 없다는 것입니다. 그렇다면 이 속성은 main 키워드의 이 부분과 분리되어 새 엔티티를 형성하고 새 엔티티와 원본 엔티티의 관계는 일대다. 구분하기 위해 각 인스턴스의 고유 id 를 저장하기 위해 테이블에 열을 추가해야 하는 경우가 많습니다. 간단히 말해서, 두 번째 패러다임은 속성이 기본 키에 전적으로 의존한다는 것이다.
1.3 세 번째 패러다임 (3NF) 속성은 다른 비 마스터 속성과 독립적입니다 [전달 종속성 제거]
제 3 패러다임 (3NF) 을 만족시키려면 먼저 제 2 패러다임 (2NF) 을 만족시켜야 한다. 간단히 말해, 세 번째 패러다임 (3NF) 에서는 데이터베이스 테이블에 이미 다른 테이블에 포함된 기본 키가 아닌 정보가 포함되지 않아야 합니다. 예를 들어 각 부서에 부서 번호 (dept_id), 부서 이름, 부서 아카이브 등의 정보가 있는 부서 정보 테이블이 있습니다. 그런 다음 직원 정보 테이블에 부서 번호를 나열한 후에는 직원 정보 테이블에 부서 이름, 부서 아카이브 등의 부서 관련 정보를 추가할 수 없습니다. 부서 정보 테이블이 없는 경우 세 번째 패러다임 (3NF) 에 따라 구성해야 합니다. 그렇지 않으면 많은 데이터 중복이 발생합니다. 간단히 말해서, 세 번째 패러다임은 속성이 다른 비주석 속성에 종속되지 않는다는 것입니다.
둘. 패러다임의 응용 사례 분석
한 학교의 학생 시스템을 예로 들어 이러한 패러다임의 응용을 설명하다. 첫째, 첫 번째 패러다임 (1NF): 데이터베이스 테이블의 필드는 단일 속성이므로 세분화할 수 없습니다. 이 단일 속성은 정수, 실수, 문자, 논리, 날짜 등을 포함한 기본 유형으로 구성됩니다. 현재의 관계형 데이터베이스 관리 시스템 (DBMS) 에서는 바보가 첫 번째 패러다임에 맞지 않는 데이터베이스를 만들 수 없습니다. 이러한 DBMS 는 데이터베이스 테이블의 열을 두 개 이상의 열로 나누는 것을 허용하지 않기 때문입니다. 따라서 기존 DBMS 에서 첫 번째 패러다임에 맞지 않는 데이터베이스를 설계할 수 없습니다.
우선, 우리는 우리가 디자인하고 싶은 것들에 그런 것들이 포함되어 있는지 확인해야 한다. 학번, 학명, 나이, 성별, 교과 과정, 교과 학점, 학과, 학업 성적, 학과 사무실 주소, 학과 사무실 전화 등 정보. 간단히 하기 위해서, 우리는 잠시 이 필드들을 고려한다. 우리는 다음과 같은 방면에서 이 정보를 주시하고 있다.
학생들은 어떤 기본 정보를 가지고 있습니까?
학생들은 어떤 과목을 배웠고 성적은 어떻습니까?
각 수업의 학점은 얼마입니까?
학생이 어느 과에 속하는지, 학과의 기본 정보는 무엇입니까?
2. 1 제 2 패러다임 (2NF) 사례 연구
먼저 이 모든 정보 (학명, 학명, 나이, 성별, 과정, 과정 학점, 학과, 과목 성적, 학과 사무실 주소, 학과 사무실 전화) 를 한 표 아래에 두는 것을 고려해 본다.
(학호) → (이름, 나이, 성별, 부서, 부서 사무실 주소, 부서 사무실 전화)
(과정 이름) → (학점)
(학번, 과정) → (학업 성적)
2.1..1문제 분석
따라서 제 2 패러다임의 요구를 충족시키지 못하면 다음과 같은 문제가 발생할 수 있다.
데이터 중복: 같은 수업은 N 명의 학생이 선택하며,' 학점' 은 n- 1 번을 반복한다. 같은 학생이 M 과목을 수강했고 이름과 나이는 m- 1 번을 반복했다.
업데이트 예외:
1) 강좌에 대한 학점이 조정되면 데이터 테이블의 모든 행에 대한 학점 값이 업데이트됩니다. 그렇지 않으면 동일한 강좌에 대해 다른 학점이 나타납니다.
2) 새로운 커리큘럼을 열어야한다고 가정하면 아직 배우지 않았습니다. 이렇게 하면' 학번' 키워드가 없어 데이터베이스에 과정 이름과 학점을 기록할 수 없습니다.
삭제 시 예외: 학생 그룹이 선택 과목을 완료했다고 가정하면 데이터베이스 테이블에서 선택 레코드를 삭제해야 합니다. 그러나 과정 이름과 학점 정보도 삭제됩니다. 분명히 이로 인해 삽입 예외가 발생할 수도 있습니다.
2. 1.2 용액
선택 관계 테이블을 다음 세 테이블로 변경합니다.
학생: 학생 (학번, 이름, 나이, 성별, 학과, 학과 사무실 주소, 학과 사무실 전화)
과정: 과정 (과정 이름, 학점);
수강 선택 관계: SelectCourse (학번, 교과과정 이름, 학년).
2.2 제 3 패러다임 (3NF) 사례 연구
그런 다음 위의 학생표 (학번, 이름, 나이, 성별, 학과, 학과 주소, 학과 전화) 를 보면 키워드는 단일 키워드' 학호' 입니다. 다음과 같은 결정관계가 있기 때문입니다.
(학호) → (이름, 나이, 성별, 부서, 부서 사무실 주소, 부서 사무실 전화)
하지만 다음과 같은 결정적인 관계도 있다.
(학호) → (학원) → (학원 장소, 학원 전화)
즉, 키 필드 "대학 위치" 및 "대학 전화" 는 키 필드 "학습 번호" 의 전달 함수에 따라 달라집니다.
또한 데이터 중복, 업데이트 예외, 삽입 예외 및 삭제 예외도 있습니다. (데이터 업데이트 및 삭제는 여기서 분석되지 않습니다. 분석을 위해 2. 1. 1 을 참조할 수 있습니다.)
세 번째 패러다임에 따라 학생 관계 테이블은 다음 두 개의 테이블로 나누어 세 번째 패러다임을 충족시킬 수 있습니다.
학생: (학번, 이름, 나이, 성별, 학과);
부서: (부서, 부서 사무실 주소, 부서 사무실 전화).
요약
위의 데이터베이스 테이블은 I, II, III 패러다임을 준수하고, 데이터 중복을 제거하고, 예외를 업데이트하고, 예외를 삽입하고, 예외를 삭제합니다.