관계형 데이터베이스. 관계형 데이터베이스 개념

홈> 강의

DB 강의 2장 관계형 데이터베이스 2.1. 용어 및 정의관계형 데이터베이스의 개발은 1960년대 말에 시작되어 전문가에게 친숙한 테이블 형식의 형식화된 데이터 표현 방법을 사용할 가능성이 논의된 첫 작품이 등장했습니다. 일부 전문가는 이러한 방식으로 정보를 의사결정 테이블로, 다른 전문가는 테이블 형식 알고리즘이라고 불렀습니다. 관계형 데이터베이스 이론가들은 정보를 데이터 논리적 모델로 표현하는 표 형식의 방법이라고 불렀습니다. 관계형 데이터베이스 이론의 창시자는 1970년 6월 6일 "A Relational Model of Data for Large Shared Data Banks" "A Relational Model of Data for 대규모 공유 데이터 뱅크". 이 기사에서 처음으로 "관계형 데이터 모델"이라는 용어를 사용하여 관계형 데이터베이스의 기반을 마련했습니다. 1970년대에 개발된 관계형 데이터베이스 이론. 미국에서는 Dr. E. F. Codd가 집합론의 수학적 장치에 의존했습니다. 그는 모든 데이터 세트가 수학에서 관계라고 알려진 특별한 종류의 2차원 테이블 형태로 표현될 수 있음을 증명했습니다. 영어 단어 "relation" "relation")에서 "relational data model"이라는 이름이 나왔습니다. 현재 데이터베이스(DB) 설계의 이론적 기반은 관계 대수학의 수학적 장치입니다(섹션 1.2 참조). 따라서 관계형 데이터베이스는 객체에 대한 정보(데이터)로, 2차원 배열 형태로 표시됩니다. 즉, 특정 링크로 결합된 테이블입니다. 데이터베이스는 하나의 테이블로 구성될 수도 있습니다. 관계형 데이터베이스에 대한 추가 연구를 진행하기 전에 이론과 실제에서 사용되는 용어와 정의를 살펴보겠습니다. 데이터베이스 테이블- 객체의 한 클래스에 대한 정보를 포함하는 2차원 배열. 관계 대수학 이론에서는 2차원 배열(테이블)을 태도.테이블은 필드, 셀, 레코드의 요소로 구성됩니다(그림 2.1). 데이터베이스 개체를 특징 짓는 속성 중 하나의 값을 포함합니다. 테이블의 필드 수는 데이터베이스 개체를 특징짓는 기호의 수에 해당합니다. 22 해당 필드의 특정 값(한 개체의 속성)을 포함합니다. 녹음- 테이블 행. 그것은 하나의 객체를 특징 짓는 모든 기호의 값을 포함합니다. 레코드(라인)의 수는 테이블에 포함된 데이터인 객체의 수에 해당합니다. 데이터베이스 이론에서 용어 녹음개념에 해당 코르테즈- AND(AND) 관계에 의해 서로 관련된 속성의 시퀀스. 그래프 이론에서 수행원방향 그래프 - 트리의 간단한 가지를 의미합니다. 테이블 2.1은 관계형 데이터베이스 개발의 이론과 실제에서 사용되는 용어를 보여줍니다. 관계형 데이터베이스에 대한 최적의 구조를 구축하는 데 필요한 중요한 개념 중 하나는 키 또는 키 필드의 개념입니다. 열쇠필드가 고려되며 그 값은 테이블의 다른 모든 필드 값을 명확하게 결정합니다. 예를 들어, "여권 번호" 또는 "납세자 식별 번호(TIN)" 필드는 개인의 특성을 고유하게 정의합니다(기업의 인사 부서 또는 회계 부서에 대한 해당 데이터베이스 테이블을 컴파일할 때).
23

테이블의 키는 하나가 아니라 여러 필드일 수 있습니다. 이 경우 필드 집합은 고유성과 최소성이라는 두 가지 시간 독립 조건이 충족되는 경우에만 테이블에 대한 가능한 키가 될 수 있습니다. 기본 키의 일부가 아닌 각 필드를 테이블에서 키가 아닌 필드라고 합니다.

독창성 key는 주어진 시간에 데이터베이스 테이블이 동일한 키 필드 값을 가진 두 개의 다른 레코드를 포함할 수 없음을 의미합니다. 고유성 조건의 충족은 필수입니다. 질환 미니멀리즘키 필드는 선택한 필드의 값 조합만이 데이터베이스 테이블 레코드의 고유성에 대한 요구 사항을 충족한다는 것을 의미합니다. 이는 또한 키에 포함된 필드가 고유성을 위반하지 않고 키에서 제외될 수 없음을 의미합니다. 여러 필드로 구성된 데이터베이스 테이블의 키를 구성할 때 다음 조항에 따라야 합니다. 키에 테이블 필드를 포함하지 않아야 하며, 그 값 자체가 테이블의 레코드를 고유하게 식별합니다 . 예를 들어, "여권 번호" 및 "납세자 식별 번호" 필드를 동시에 포함하는 키를 생성해서는 안 됩니다. 이러한 각 속성은 테이블의 레코드를 고유하게 식별할 수 있기 때문입니다. 키에 고유하지 않은 필드, 즉 테이블에서 값이 반복될 수 있는 필드를 포함할 수 없습니다. 각 테이블에는 다음과 같이 선택되는 하나 이상의 가능한 키가 있어야 합니다. 기본 키.테이블에 필드가 있고 각각의 값이 레코드를 고유하게 정의하는 경우 이러한 필드는 다음과 같이 사용할 수 있습니다. 대체 키.예를 들어 납세자 식별 번호를 기본 키로 선택하면 여권 번호가 대체 키로 사용됩니다. 2.2. 관계형 데이터베이스 테이블 정규화관계형 데이터베이스는 서로 관련된 테이블 집합입니다. 하나의 파일 또는 하나의 데이터베이스에 있는 테이블 수는 여러 요인에 따라 달라지며, 그 중 주요 요인은 다음과 같습니다. 데이터베이스 사용자 구성, 정보 무결성 보장(특히 다중 사용자 정보 시스템에서 중요), 필요한 최소 메모리 양 및 최소 시간 데이터 처리. 24

관계형 데이터베이스 설계에서 이러한 요소를 고려하는 것은 테이블의 정규화 방법과 테이블 간의 연결 설정에 의해 수행됩니다.

테이블 정규화하나의 데이터베이스 테이블을 일반적으로 위에 나열된 요구 사항을 충족하는 여러 테이블로 나누는 방법입니다. 테이블의 정규화는 마지막 형식의 정규화 요구 사항을 충족할 때까지 테이블 구조의 순차적 변경입니다. 정규화에는 총 6가지 형식이 있습니다.
    제1정규형(제1정규형 - 1NF); 제2정규형(제2정규형 - 2NF); 제3정규형(제3정규형 - ЗNF); 정규형 Boyes - Codd(Brice - Codd 정규형 -BCNF); 네 번째 정규형 (앞으로정규형 - 4NF); 다섯 번째 정규형 또는 정규 투영형 - 연결(제5 정규형 - 5NF 또는 PJ/NF ).
일반 형식을 설명할 때 다음 개념이 사용됩니다. "필드 간의 기능적 종속성"; "필드 간의 완전한 기능적 의존성"; "필드 간의 다중값 기능 종속성"; "필드 간의 전이적 기능 의존성"; "분야 간의 상호 독립". 기능적 종속성필드 A와 B 사이의 관계는 임의의 순간에 A의 각 값이 가능한 모든 값 중에서 B의 단일 값에 해당하는 관계라고 합니다. 기능적 관계의 예는 납세자의 식별 번호와 여권 번호 간의 관계입니다. 완전한 기능적 종속성복합 필드 A와 필드 B 사이는 필드 B가 필드 A에 기능적으로 의존하고 필드 A의 어떤 부분 집합에도 기능적으로 의존하지 않는 종속성이라고 합니다. 다중값 기능 의존성필드 사이는 다음과 같이 정의됩니다. 필드 A는 필드 A의 각 값에 대해 필드 B에 대한 해당 값의 "잘 정의된 집합"이 있는 경우 필드 B를 모호하게 식별합니다. 예를 들어 필드를 포함하는 학교 학생의 학교 성적 테이블을 고려하는 경우 "제목"(필드 A) 및 "점수"(필드 B), 필드 B에는 허용 가능한 값의 "잘 정의된 집합"이 있습니다. 1, 2, 3, 4, 5, 즉 "제목" 필드의 각 값에 대해 "평가" 필드 값의 다중값 "잘 정의된 집합"이 있습니다. 전이 함수 종속성필드 A와 C 사이에 필드 C가 기능적으로 필드 B에 종속되고 필드 B가 필드 A에 기능적으로 종속되는 경우 존재합니다. 이 경우 필드 B에 대한 필드 A의 기능적 종속성은 없습니다. 분야간 상호 독립성는 다음과 같이 정의됩니다. 어떤 필드도 다른 필드에 기능적으로 종속되지 않는 경우 여러 필드는 상호 독립적입니다. 첫 번째 정규형.필드에 둘 이상의 값이 포함되지 않고 키 필드가 비어 있지 않은 경우에만 테이블이 첫 번째 일반 형식입니다. 첫 번째 정규형은 관계형 데이터 모델의 기초입니다. 관계형 데이터베이스의 모든 테이블은 자동으로 첫 번째 정규 형식이 됩니다. 그렇지 않으면 정의에 의해 단순히 불가능합니다. 이러한 테이블에는 여러 필드(특성)로 나눌 수 있는 필드(특성)가 포함되어서는 안 됩니다. 일반적으로 비정규화 테이블은 원래 포함된 정보의 컴퓨터 처리용이 아닌 테이블입니다. 예를 들어, 테이블에서. 2.2는 금속 절삭 공작 기계 실험 연구소(ENIMS)에서 발행한 참고서 "범용 금속 절삭 기계"의 표 일부를 보여줍니다. 이 테이블은 다음과 같은 이유로 정규화되지 않습니다. 1. 한 셀에 "가장 큰 가공 직경, mm" 및 "스핀들 회전 주파수, rpm"과 같이 한 셀에 한 필드의 여러 값이 있는 라인이 포함되어 있습니다. 2. 하나의 필드 - "전체 치수(길이 x 너비 x 높이), mm"는 "길이, mm", "너비, mm" 및 "높이, mm"의 세 가지 필드로 나눌 수 있습니다. 그러한 분할의 편의는 면적 또는 점유 부피의 후속 계산의 필요성에 의해 정당화될 수 있습니다. 원래 테이블은 첫 번째 일반 형식으로 변환되어야 합니다. 이를 위해서는 다음이 필요합니다. 한 셀에 포함된 값의 수에 따라 "최대 가공 직경, mm" 및 "스핀들 회전 주파수, rpm" 필드를 여러 필드로 나눕니다.
26

"전체 치수(길이 x 너비 x 높이), mm" 필드는 "길이, mm", "너비, mm", "높이, mm"의 세 가지 필드로 나뉩니다. 이 테이블의 키 필드는 "기계 모델" 또는 "아니오. 2.3. 다른 예를 들어보겠습니다. 그림에서. 2.2는 이전 예에서와 같이 원래 컴퓨터 처리용이 아닌 시험 점수 시트의 일부를 보여줍니다. 에 따라 시험-시험 세션의 결과를 자동으로 처리하기 위한 데이터베이스를 생성한다고 가정합니다.
27

시험 및 시험 시트의 내용과 함께. 이를 위해 양식의 내용을 데이터베이스 테이블로 변환합니다. 필드 간의 기능적 종속 조건을 준수해야 할 필요성에 따라 최소한 두 개의 테이블을 구성해야 합니다(그림 2.3)(각 테이블의 키 필드는 굵게 표시됨). 첫 번째 표에는 특정 과목의 각 학생이 테스트(시험)를 통과한 결과가 나와 있습니다. 두 번째 표에는 특정 과목에서 특정 학생 그룹의 시험(시험)을 통과한 최종 결과가 나와 있습니다. 첫 번째 테이블에서 키는 "학생의 전체 이름" 필드이고 두 번째 테이블에서는 "규율" 필드입니다. 테이블은 "분야" 및 "그룹 코드" 필드로 연결되어야 합니다.

제시된 테이블 구조는 첫 번째 정규 형식의 요구 사항을 완전히 충족하지만 다음과 같은 단점이 있습니다. 테이블에 새 데이터를 추가하려면 모든 필드에 값을 입력해야 합니다. 각 테이블의 각 줄에 "분야", "교사의 전체 이름", "그룹 코드"필드의 반복 값을 입력해야합니다. 결과적으로 이러한 테이블 구성 및 구조에는 추가 메모리가 필요한 정보가 명확하게 중복됩니다. 나열된 단점을 방지하려면 테이블을 두 번째 또는 세 번째 정규형으로 가져와야 합니다. 두 번째 정규형.테이블이 첫 번째 일반 형식의 요구 사항을 충족하고 기본 키에 포함되지 않은 모든 필드가 기본 키에 따라 완전히 기능하는 경우 테이블은 두 번째 일반 형식입니다. 28

테이블에 하나의 필드로만 구성된 단순 기본 키가 있는 경우 자동으로 두 번째 일반 형식이 됩니다.

기본 키가 복합인 경우 테이블은 선택적으로 두 번째 일반 형식입니다. 그런 다음 기본 키가 모든 필드의 값을 고유하게 식별하는 방식으로 두 개 이상의 테이블로 나누어야 합니다. 테이블에 기본 키에 종속되지 않는 필드가 하나 이상 있으면 기본 키에 추가 열이 포함되어야 합니다. 이러한 열이 없으면 새 열을 추가해야 합니다. 제2정규형을 결정짓는 이러한 조건을 바탕으로 컴파일된 테이블의 특성에 대해 다음과 같은 결론을 도출할 수 있다(그림 2.3 참조). 첫 번째 테이블에서 키 필드와 "교사의 전체 이름" 필드 사이에는 직접적인 관계가 없습니다. 왜냐하면 같은 과목의 합격이나 시험은 다른 교사가 응시할 수 있기 때문입니다. 테이블에는 다른 모든 필드와 키 필드 "분야" 사이에만 완전한 기능적 종속성이 있습니다. 마찬가지로 두 번째 테이블에서는 키 필드와 "교사의 전체 이름" 필드 사이에 직접적인 관계가 없습니다. 데이터베이스를 최적화하려면 특히 각 레코드에서 "분야" 및 "교사 이름" 필드의 값을 반복해야 하기 때문에 필요한 메모리 양을 줄이려면 데이터베이스 구조를 변경해야 합니다. 원래 테이블을 두 번째 정규 형식으로 변환합니다. 수정된 데이터베이스 구조의 테이블 구성은 그림 1에 나와 있습니다. 2.4. 변환된 데이터베이스 구조는 6개의 테이블로 구성되며 그 중 2개는 상호 연결되어 있습니다(각 테이블의 키 필드는 굵게 표시됨). 모든 테이블은 제2정규형의 요구사항을 만족합니다. 다섯 번째와 여섯 번째 테이블에는 필드에 중복 값이 ​​있지만 이러한 값이 텍스트 데이터가 아닌 정수라는 점을 감안할 때 정보를 저장하는 데 필요한 총 메모리 양은 원래 테이블보다 훨씬 적습니다(그림 2.1 참조). ). 또한, 데이터베이스의 새로운 구조는 다양한 전문가(관리 서비스 부문)에 의해 테이블을 채울 수 있는 기능을 제공할 것입니다. 데이터베이스 테이블의 추가 최적화는 세 번째 정규 형식으로 가져오기로 축소됩니다. 세 번째 정규형.테이블이 제2정규형의 정의를 만족하고 키가 아닌 필드가 다른 키가 아닌 필드에 기능적으로 의존하지 않는 경우 테이블은 제3정규형에 있습니다. 29

테이블이 두 번째 정규 형식이고 키가 아닌 각 필드가 기본 키에 전이적으로 종속되지 않는 경우 테이블이 세 번째 정규 형식이라고 말할 수도 있습니다. 세 번째 정규 형식 요구 사항은 키가 아닌 모든 필드가 기본 키에만 의존하고 서로 의존하지 않는다는 것입니다. 이러한 요구 사항에 따라 데이터베이스 테이블(그림 2.3 참조)의 일부로 첫 번째, 두 번째, 세 번째 및 네 번째 테이블이 세 번째 정규형에 속합니다. 다섯 번째 및 여섯 번째 테이블을 세 번째 정규형으로 가져오기 위해 학생 그룹으로 시험이나 시험이 열리는 과목 구성에 대한 정보가 포함된 새 테이블을 만듭니다. 키로 각 레코드가 고유해야 하므로 테이블의 레코드 수를 설정하는 "카운터" 필드를 생성합니다. 서른

그 결과, 우리는 그림 5와 같은 새로운 데이터베이스 구조를 얻습니다. 2.5(각 테이블의 키 필드는 굵게 표시됨). 이 구조에는 세 번째 정규형의 요구 사항을 충족하는 7개의 테이블이 있습니다.

Boyce의 정규형은 Codd입니다.테이블은 필드 간의 기능적 종속성이 가능한 키에 대한 완전한 기능적 종속성으로 축소되는 경우에만 일반 Boyce-Codd 형식입니다. 이 정의에 따르면 데이터베이스 구조(그림 2.4 참조)에서 모든 테이블은 Boyes - Codd 정규형의 요구 사항을 충족합니다. 데이터베이스 테이블의 추가 최적화는 테이블의 완전한 분해로 축소되어야 합니다. 전체 테이블 분해임의의 수의 투영 모음이라고하며 그 연결은 테이블의 내용과 완전히 일치합니다. 프로젝션은 새 테이블의 하나 이상의 열을 포함하지 않는 테이블의 복사본입니다. 네 번째 정규형.제4정규형은 제5정규형의 특수한 경우로, 완전한 분해는 두 개의 투영의 합집합이어야 합니다.
31

제4정규형이지만 제5정규형의 정의를 만족하지 않는 테이블을 찾는 것은 매우 어렵습니다.

다섯 번째 정규형.테이블은 모든 투영이 전체 분해 위치 각각에 가능한 키를 포함하는 경우에만 다섯 번째 정규 형식입니다. 완전한 분해가 없는 테이블도 제5정규형입니다. 실제로 데이터베이스 테이블의 최적화는 3차 정규식으로 끝납니다. 네 번째 및 다섯 번째 정규형으로 표를 축소하는 것은 순전히 이론적인 관심의 대상입니다. 실제로 이 문제는 새 테이블을 만드는 쿼리를 개발하여 해결됩니다. 2.3. 테이블 간의 관계 설계초기 데이터베이스 테이블을 정규화하는 프로세스를 통해 정보 시스템의 최적 구조를 생성할 수 있습니다. 즉, 최소한의 메모리 리소스가 필요한 데이터베이스를 개발하고 결과적으로 정보에 대한 가장 짧은 액세스 시간을 제공합니다. 동시에 하나의 소스 테이블을 여러 개로 나누려면 정보 시스템 설계를 위한 가장 중요한 조건 중 하나를 충족해야 합니다. 즉, 데이터베이스 작동 중 정보의 무결성을 보장합니다. 위의 원본 테이블의 정규화 예(그림 2.3 참조)에서 2개의 테이블에서 마침내 7개의 테이블이 세 번째 및 네 번째 정규형으로 축소되었습니다. 실습에서 알 수 있듯이 실제 프로덕션 및 비즈니스에서 데이터베이스는 다중 사용자 시스템입니다. 이는 별도의 테이블에서 데이터를 생성 및 유지 관리하고 정보를 사용하여 의사 결정을 내리는 데 모두 적용됩니다. 위에서 고려한 예에서 실제로 작동하는 대학 또는 대학의 교육 프로세스 관리 시스템에서 스터디 그룹의 초기 구성은 입학 시험 결과를 기반으로 지원자를 등록할 때 입학 위원회에서 수행합니다. 대학 그룹의 학생 구성에 대한 추가 유지 관리는 학장 사무실과 대학의 교육 부서 또는 관련 구조에 할당됩니다. 그룹의 학문 분야 구성은 다른 서비스 또는 전문가에 의해 결정됩니다. 교직원에 대한 정보는 인사 부서에서 구성됩니다. 시험 및 시험 결과는 32명의 합격자에 대한 장학금 지급 또는 불합격자에 대한 "장학금 철회" 결정을 포함하여 학장 및 학과장이 필요합니다. 데이터베이스에 있는 테이블의 변경 사항은 다른 모든 테이블에서 적절한 변경 사항을 찾아야 합니다. 이것이 데이터베이스의 무결성을 보장하는 핵심입니다. 실제로 이 작업은 데이터베이스 테이블 간의 링크를 설정하여 수행됩니다. 테이블 간의 관계를 설정하기 위한 기본 규칙을 공식화해 보겠습니다. 1. 두 개의 연결된 테이블에서 마스터와 슬레이브를 선택합니다. 2. 각 테이블에서 키 필드를 선택합니다. 기본 테이블의 키 필드는 기본 키.슬레이브 테이블의 키 필드는 외래 키. 3. 바운드 테이블 필드는 동일한 데이터 유형이어야 합니다. 4. 테이블 사이에 다음 유형의 링크가 설정됩니다. "일대일"; 일대다; 다대다: 마스터 테이블의 특정 행이 주어진 시간에 종속 테이블의 한 행에만 연결될 때 일대일 관계가 설정됩니다. 주어진 시간에 기본 테이블의 특정 행이 있는 경우 일대다 관계가 설정됩니다.
33은 종속 테이블의 여러 행과 연관됩니다. 이 경우 하위 테이블의 모든 행은 기본 테이블의 한 행에만 연결됩니다. 다대다 관계는 언제든지 주 테이블의 특정 행이 하위 테이블의 여러 행과 연결되고 동시에 하위 테이블의 한 행이 주 테이블의 여러 행과 연결되는 경우에 설정됩니다. 테이블. 마스터 테이블의 기본 키 값을 변경할 때 종속 테이블의 다음과 같은 동작이 가능합니다. 계단식.기본 테이블의 기본 키 데이터가 변경되면 종속 테이블의 해당 외래 키 데이터가 변경됩니다. 모든 기존 연결이 유지됩니다. 얽매다.종속 테이블의 행과 연결된 기본 키 값을 변경하려고 하면 변경 사항이 삭제됩니다. 종속 테이블과의 연결이 설정되지 않은 기본 키 값만 변경할 수 있습니다. 설립(관계).기본 키의 데이터가 변경되면 외래 키가 널(NULL) 값으로 설정됩니다. 종속 테이블에 대한 행 소유권 정보가 손실됩니다. 기본 키의 여러 값을 변경하면 이전에 변경된 키와 연결된 종속 테이블에 여러 행 그룹이 형성됩니다. 그 후에는 어떤 행이 어떤 기본 키와 연결되었는지 확인할 수 없습니다. 그림에서. 2.6은 그림 2에 표시된 데이터베이스 테이블 간의 연결 다이어그램을 보여줍니다. 2.5. 통제 질문 1. 데이터베이스 테이블의 다음 요소에 대한 정의를 제공하십시오: 필드, 셀, 레코드. 2. "키", "키 필드"라는 개념은 무엇을 의미합니까? 3. 기본 키라고 하는 키 필드와 외래 키라고 하는 필드는 무엇입니까? 4. 데이터베이스 테이블을 정규화하는 프로세스는 무엇입니까? 5. 데이터베이스 테이블의 5가지 일반 형식을 알고 있습니까? 6. 데이터베이스 테이블 간에 다음 유형의 관계를 정의합니다. "일대일"; 일대다; 다대다.

관계형 데이터베이스의 기본 개념은 데이터 유형, 도메인, 속성, 튜플, 기본 키 및 관계입니다. 특정 조직의 직원에 대한 정보가 포함된 EMPLOYEES 관계의 예를 사용하여 이러한 개념의 의미를 보여 드리겠습니다.

1. 데이터 유형

개념 데이터 형식관계형 데이터 모델에서는 프로그래밍 언어의 데이터 유형 개념에 완전히 적합합니다. 일반적으로 최신 관계형 데이터베이스는 문자, 숫자 데이터, 비트 문자열, 특수 숫자 데이터(예: "돈") 및 특수 "시간" 데이터(날짜, 시간, 시간 간격)를 저장할 수 있습니다. 추상 데이터 유형을 사용하여 관계형 시스템의 기능을 확장하는 접근 방식이 활발히 개발되고 있습니다(예: Ingres/Postgres 제품군의 시스템에는 이러한 기능이 있습니다). 이 예에서는 문자열, 정수 및 돈의 세 가지 데이터 유형을 다루고 있습니다.

2. 도메인

개념 도메인일부 프로그래밍 언어의 하위 유형과 유사하지만 데이터베이스에 더 구체적입니다. 가장 일반적인 형태에서 도메인은 도메인의 요소가 속하는 몇 가지 기본 데이터 유형과 데이터 유형의 요소에 적용되는 임의의 논리 표현식을 지정하여 정의됩니다. 이 부울 표현식이 true로 평가되면 데이터 항목은 도메인 항목입니다. 도메인 개념에 대한 가장 정확하고 직관적인 해석은 도메인을 주어진 유형의 허용 가능한 잠재적 값 집합으로 이해하는 것입니다. 예를 들어, 이 예에서 도메인 "이름"은 문자열의 기본 유형으로 정의되지만 그 값은 이름을 나타낼 수 있는 문자열만 포함할 수 있습니다(특히 이러한 문자열은 소프트 기호로 시작할 수 없음). 도메인 개념의 시맨틱 로드도 주목해야 합니다. 데이터는 동일한 도메인에 속하는 경우에만 비교할 수 있는 것으로 간주됩니다. 이 예에서 "Gap Numbers" 및 "Group Numbers" 도메인의 값은 정수 유형이지만 비교할 수 없습니다. Oracle V.7에서 이미 지원하고 있지만 대부분의 관계형 DBMS는 도메인 개념을 사용하지 않습니다.

3. 관계 스키마, 데이터베이스 스키마

관계 스키마는 명명된 쌍의 집합입니다(속성 이름, 도메인 이름(또는 도메인 개념이 지원되지 않는 경우 유형)). 관계 체계의 정도 또는 "arity"는 이 집합의 카디널리티입니다. EMPLOYEES 관계의 정도는 4, 즉 4-ary입니다. 한 관계의 모든 속성이 서로 다른 도메인에 정의되어 있는 경우 속성 이름을 지정하기 위해 해당 도메인의 이름을 사용하는 것이 합리적입니다(물론 이것은 편리한 이름 지정 방법일 뿐이며 도메인 및 속성의 개념). DB 스키마(구조적 의미에서)는 명명된 관계 스키마의 집합입니다.

4. 튜플, 관계

주어진 관계 스키마에 해당하는 튜플은 관계 스키마에 속하는 각 속성 이름의 발생을 한 번 포함하는 (속성 이름, 값) 쌍의 집합입니다. "값"은 주어진 속성(또는 도메인 개념이 지원되지 않는 경우 데이터 유형)에 대한 유효한 도메인 값입니다. 따라서 튜플의 차수 또는 "arity", 즉 그 안에 있는 요소의 수는 해당 관계 체계의 "arity"와 일치합니다. 간단히 말해서 튜플은 지정된 유형의 명명된 값 모음입니다.
관계는 동일한 관계 스키마에 해당하는 튜플 집합입니다. 간혹 헷갈리지 않게 하기 위해 'relation-schema'와 'relation-instance'라고 하기도 하고, 때로 관계의 도식을 관계의 제목이라 부르기도 하고, 튜플들의 집합으로서의 관계를 '본체'라고 부르기도 한다. 관계. 사실 관계 스키마의 개념은 프로그래밍 언어의 구조화된 데이터 유형 개념에 가장 가깝습니다. 관계 스키마를 별도로 정의한 다음 해당 스키마와 하나 이상의 관계를 정의하는 것은 매우 논리적입니다.
관계의 일상적인 표현은 테이블이며, 제목은 관계 다이어그램이고 행은 인스턴스 관계의 튜플입니다. 이 경우 속성 이름은 해당 테이블의 열 이름을 지정합니다. 따라서 때때로 그들은 "관계 속성"을 의미하는 "테이블 열"이라고 말합니다. 관계형 데이터베이스는 이름이 데이터베이스 스키마의 관계 스키마 이름과 동일한 관계 집합입니다.

관계의 기본 속성

1. 중복 투플 없음

관계에 중복 튜플이 포함되지 않는 속성은 관계 정의에서 튜플 집합으로 따릅니다. 고전적 집합 이론에서 정의에 따르면 각 집합은 서로 다른 요소로 구성됩니다. 이 속성은 각 관계에 소위 기본 키(속성 집합)가 있음을 의미하며, 그 값은 관계의 튜플을 고유하게 결정합니다. 각 관계에 대해 최소한 해당 속성의 전체 집합에 이 속성이 있습니다. 그러나 기본 키의 형식적 정의에서는 "최소"임을 보장해야 합니다. 기본 키의 속성 집합에는 튜플을 명확하게 식별하기 위해 주요 속성을 침해하지 않고 버릴 수 있는 속성이 포함되어서는 안 됩니다. 개념 기본 키데이터베이스 무결성 개념과 관련하여 매우 중요합니다.

2.튜플 순서 부족

관계의 튜플이 순서가 지정되지 않은 속성은 인스턴스 관계를 튜플의 집합으로 정의한 결과이기도 합니다. 관계의 튜플 집합에 대한 순서를 유지해야 하는 요구 사항이 없기 때문에 데이터베이스를 외부 메모리에 저장할 때와 데이터베이스에 대한 쿼리를 실행할 때 DBMS에 추가적인 유연성이 제공됩니다. 이것은 예를 들어 SQL 언어로 데이터베이스에 대한 쿼리를 공식화할 때 일부 열의 값에 따라 결과 테이블을 정렬해야 할 수 있다는 사실과 모순되지 않습니다. 일반적으로 이러한 결과는 관계가 아니라 일부 정렬된 튜플 목록입니다.

3.속성 순서의 부족

정의에 따라 관계 스키마에는 많은 쌍(속성 이름, 도메인 이름)이 있기 때문에 관계 속성은 순서가 지정되지 않습니다. 속성 이름은 항상 관계의 튜플에 있는 속성 값을 참조하는 데 사용됩니다. 이 속성을 사용하면 이론적으로 예를 들어 새 속성을 추가할 뿐만 아니라 기존 속성을 제거하여 기존 관계의 체계를 수정할 수 있습니다. 그러나 대부분의 기존 시스템에서는 그러한 가능성이 허용되지 않으며 관계의 속성 집합의 순서가 명시적으로 요구되지는 않지만 종종 관계 스키마를 정의하는 선형 형식의 순서가 암시적 순서로 사용됩니다. 속성.

4.속성 값의 원자성.

모든 속성 값은 원자적입니다. 이것은 도메인을 간단한 데이터 유형의 잠재적인 값 세트로 정의한 것, 즉 도메인 값은 값 세트(관계)를 포함할 수 없습니다. 관계형 데이터베이스에서는 정규화된 관계 또는 첫 번째 정규 형식으로 표현되는 관계만 허용된다고 말하는 것이 관례입니다.
관계형 데이터 모델. Date에 따르면 관계형 모델은 관계형 접근 방식의 다양한 측면을 설명하는 세 부분, 즉 구조적 부분, 조작 부분, 통합 부분으로 구성됩니다. 모델의 구조적 부분에서 관계형 데이터베이스에서 사용되는 유일한 데이터 구조는 정규화된 n-ary 관계로 고정됩니다. 모델의 조작 부분은 관계형 데이터베이스를 조작하기 위한 두 가지 기본 메커니즘인 관계 대수와 관계 미적분을 주장합니다. 첫 번째 메커니즘은 주로 고전적 집합 이론(일부 개선 포함)을 기반으로 하고 두 번째 메커니즘은 1차 술어 미적분학의 고전적 논리 장치에 기반합니다.

엔티티 및 링크의 무결성. 마지막으로 관계형 데이터 모델의 필수 부분에서 모든 관계형 DBMS에서 지원되어야 하는 두 가지 기본 무결성 요구 사항이 수정되었습니다. 첫 번째 요구 사항은 엔티티 무결성 요구 사항... 관계형 데이터베이스에서 실제 세계의 개체 또는 엔터티는 관계 튜플에 해당합니다. 특히, 요구 사항은 모든 관계의 튜플이 이 관계의 다른 튜플과 구별될 수 있다는 것입니다. 즉, 모든 관계에는 기본 키가 있어야 합니다. 이전 섹션에서 보았듯이 이 요구 사항은 시스템에서 관계의 기본 속성을 위반하지 않으면 자동으로 충족됩니다. 두 번째 요구 사항은 참조에 의한 무결성 요구 사항그리고 좀 더 복잡합니다. 분명히 관계가 정규화되면 실제 세계의 복잡한 엔터티가 여러 관계의 여러 튜플 형태로 관계형 데이터베이스에 표현됩니다.

관계 연산 및 번호 매기기.

관계형 데이터 모델을 제안한 E.F. Codd는 또한 관계형 대수학을 사용하여 편리하게 작업할 수 있는 도구를 만들었습니다. 이 대수의 각 연산은 하나 이상의 테이블(관계)을 피연산자로 사용하고 결과적으로 새 테이블을 생성합니다. 테이블을 "자르기" 또는 "접착"할 수 있습니다(그림 3.3).

쌀. 3.3. 관계 대수의 일부 연산
관계형 대수의 모든 연산과 거의 모든 조합을 구현할 수 있는 데이터 조작 언어가 만들어졌습니다. 그 중 가장 일반적인 것은 SQL(Structured Query Language)과 QBE(Quere-By-Example)[,]입니다. 둘 다 매우 고급 언어로, 사용자가 데이터를 얻는 절차를 지정하지 않고 얻어야 하는 데이터를 지정하는 데 도움이 됩니다. 이러한 언어로 된 단일 쿼리를 사용하여 여러 테이블을 임시 테이블로 결합하고 필요한 행과 열을 잘라낼 수 있습니다(선택 및 프로젝션).

데이터베이스 언어 지원

데이터베이스 작업을 위해 일반적으로 데이터베이스 언어라고 하는 특수 언어가 사용됩니다.

첫 번째 데이터베이스에는 2개의 언어가 있었습니다.

1. SDL 데이터베이스 스키마에 대한 정의 언어.

2. 데이터 조작 언어 DML.

첫 번째는 데이터베이스의 논리적 구조를 정의하는 역할을 했고 두 번째는 데이터 조작, 즉 데이터베이스에 입력하고 삭제할 수 있는 일련의 연산자를 포함했습니다. 최신 DBMS에서는 일반적으로 데이터베이스 작업에 필요한 모든 도구가 포함된 하나의 언어가 지원됩니다. 이 언어를 사용하면 데이터베이스를 생성하고 사용자에게 데이터베이스를 제공할 수 있습니다.

지금까지 가장 일반적인 언어는

에스구조화

앙앙

이 언어는 데이터베이스 스키마를 지원하고 생성하며 이 데이터를 조작할 수 있습니다. 여기에는 데이터베이스의 무결성을 보장하는 데 필요한 모든 도구가 포함되어 있습니다. 이러한 무결성 제약 조건은 언어 수준에서 데이터베이스 무결성을 제어할 수 있는 특수 디렉터리에 포함되어 있습니다. SQL 언어의 특수 연산자는 소위 데이터베이스 보기를 정의합니다. 보기 - 데이터베이스에 저장된 ϶ᴛᴏ 쿼리입니다. 사용자에게 보기는 특정 데이터 사용자에 대한 데이터베이스 가시성을 제한하거나 확장할 수 있는 ϶ᴛᴏ 테이블입니다. SQL 언어에는 데이터베이스 개체에 대한 액세스 권한을 제공하는 특별한 피연산자가 포함되어 있습니다. 사용자마다 데이터 작업에 대한 권한이 다르기 때문에 이러한 권한은 언어 수준에서 지원되는 카탈로그인 특수 테이블에 설명되어 있습니다.

관계형 데이터베이스의 기본 개념은 데이터 유형, 도메인, 속성, 튜플, 기본 키, 관계입니다.

관계형 모델의 데이터 유형은 일반적으로 프로그래밍 언어의 데이터 유형과 동일하게 이해됩니다. 즉, 데이터는 문자, 숫자, 비트 문자열, 특수 숫자 데이터(돈) 및 특수 시간 데이터(시간, 날짜, 시간 간격).

가장 일반적인 형태에서 도메인은 이 도메인의 요소가 속하는 특정 기본 데이터 유형을 지정하여 결정되며, 도메인의 개념은 데이터베이스의 허용 가능한 복수 값으로 이해하는 것입니다. 도메인에 의미론적 부하가 있습니다. 데이터는 동일한 도메인에 속하는 경우에만 비교 가능한 것으로 간주됩니다.

튜플은 관계 스키마에서 각 속성 시드의 발생을 한 번 포함하는 데이터베이스 요소 쌍의 집합으로 이해하는 것이 일반적입니다.

관계 체계 - ϶ᴛᴏ 명명된 요소 쌍 집합. 그리고 안에

tuple = attribute name͵ 값, 즉 tuple은 주어진 유형의 명명된 값의 모음입니다.

관계 - ϶ᴛᴏ 어떤 하나의 스키마에 해당하는 튜플 세트, 즉 관계형 데이터베이스 - ϶ᴛᴏ 데이터베이스 구조의 관계 스키마 이름과 이름이 일치하는 관계 세트.

관계형 데이터베이스는 현재 가장 널리 보급되어 있지만 일반적으로 인정되는 장점과 함께 여러 가지 단점도 있습니다. 관계형 접근 방식의 장점은 다음과 같습니다.

대부분의 공통 주제 영역을 비교적 쉽게 모델링하고 정확한 형식 정의를 허용하면서 직관적인 상태를 유지하는 작은 추상화 세트의 존재;

주로 집합 이론과 수학적 논리를 기반으로 하고 데이터베이스 구성에 대한 관계형 접근을 위한 이론적 기반을 제공하는 간단하면서도 동시에 강력한 수학적 장치의 존재;

외부 메모리에 있는 데이터베이스의 특정 물리적 구성을 알 필요 없이 탐색 이외의 데이터 조작 가능성.

관계 시스템이 널리 보급되기까지는 오랜 시간이 걸렸습니다. 이 분야의 주요 이론적 결과는 70년대로 거슬러 올라가며 동시에 관계형 DBMS의 첫 번째 프로토타입이 등장했지만 오랫동안 이러한 시스템을 효과적으로 구현하는 것은 불가능하다고 여겨졌습니다. 그러나 위에서 언급한 장점과 관계형 데이터베이스를 구성하고 관리하기 위한 방법 및 알고리즘의 점진적인 축적으로 인해 80년대 중반에 관계형 시스템은 세계 시장에서 초기 DBMS를 사실상 축출하게 되었습니다.

현재, 관계형 DBMS에 대한 비판의 주요 주제는 효율성의 부족이 아니라 소위 비전통적인 영역에서 사용될 때 이러한 시스템 고유의 몇 가지 한계(단순함의 직접적인 결과)(가장 일반적인 예는 설계 자동화 시스템입니다. ) 매우 복잡한 데이터 구조가 필요합니다. 관계형 데이터베이스의 또 다른 자주 언급되는 단점은 도메인의 의미를 적절하게 반영할 수 없다는 것입니다. 다시 말해서, 관계 시스템에서 도메인의 의미론적 특성에 대한 지식을 표현하는 가능성은 매우 제한적입니다. 사후 관계 시스템 분야의 현대 연구는 주로 이러한 단점을 정확하게 제거하는 데 전념하고 있습니다.

관계형 데이터베이스의 기본 개념은 다음과 같습니다. 데이터 유형, 도메인, 속성, 튜플, 기본 키 및 관계.

개념 데이터 형식 관계형 데이터 모델에서는 프로그래밍 언어의 데이터 유형 개념에 완전히 적합합니다. 일반적으로 최신 관계형 데이터베이스는 문자, 숫자 데이터, 비트 문자열, 특수 숫자 데이터(예: "돈") 및 특수 "시간" 데이터(날짜, 시간, 시간 간격)를 저장할 수 있습니다. 추상 데이터 유형을 사용하여 관계형 시스템의 기능을 확장하는 접근 방식이 활발히 개발되고 있습니다(예: Ingres/Postgres 제품군의 시스템에는 이러한 기능이 있습니다).

관계형 모델 데이터 구조.관계형 데이터 모델은 테이블이나 관계의 형태로 데이터를 구성하고 표시합니다. 관계형수학에서 파생된 용어로 간단한 2차원 테이블을 나타냅니다. 데이터베이스 구축에 대한 관계형 접근 방식은 관계 이론의 용어를 사용합니다. 가장 단순한 2차원 테이블은 다음과 같이 정의됩니다. 태도.

테이블관계형 모델의 주요 데이터 구조 유형(객체)입니다. 테이블의 구조는 인구에 의해 결정됩니다. 열.테이블의 각 행에는 해당하는 하나의 값이 포함됩니다. 열.테이블에 동일한 행이 두 개 있을 수 없습니다. 총 라인 수에는 제한이 없습니다.

일부 데이터 항목과 일치 - 기인하다, 가장 간단한 데이터 구조입니다. 여러 항목, 그룹 또는 반복 그룹은 위에서 설명한 네트워크 및 계층 모델에서와 같이 테이블에 정의할 수 없습니다. 테이블의 각 열에는 다음이 있어야 합니다. 이름해당 데이터 요소(속성).

해당 속성의 값이 있는 테이블의 열이 호출됩니다. 도메인, 및 다른 속성의 값을 가진 문자열 - 튜플.

관계형 테이블 관계.그림에서. 도 9는 관계형 테이블-관계의 예시이다. 아르 자형... 형식적 정의 관계 R(관계형 테이블)은 도메인나, (열) 및 튜플 케이 j(선). 도메인 집합(Di)에 정의된 관계 R은 하위 집합입니다. 도메인의 데카르트(직접) 곱 D 1 * D 2 *… .. * D n

테이블 관계(그림 1 참조) 데이터 요소의 이름이 있는 열(속성(A 1, A 2, ...))이 포함되어 있습니다. d 속성의 값은 테이블의 내용 부분에 있으며 행과 열을 형성합니다. 하나의 열에 있는 많은 속성 값은 하나를 형성합니다. 도메인... 한 줄에 많은 속성 값이 하나를 형성합니다. 수행원 j에게. 태도 R은 정렬된 집합으로 구성됩니다. 튜플.

R = (Кj), J = 1- m Кj = (d 1j, d 2 j,… d nj),

여기서 n은 관계의 도메인 수입니다. 정의하다 관계의 차원;

j는 튜플의 번호입니다.

m은 호출된 관계의 총 튜플 수입니다. 공동 번호관계.

그림 9. 관계형 테이블 관계 그림

도메인. 가장 일반적인 형태에서 도메인은 도메인의 요소가 속하는 몇 가지 기본 데이터 유형과 데이터 유형의 요소에 적용되는 임의의 논리 표현식을 지정하여 정의됩니다. 이 부울 표현식이 true로 평가되면 데이터 항목은 도메인 항목입니다.

도메인 개념에 대한 가장 정확하고 직관적인 해석은 도메인을 주어진 유형의 허용 가능한 잠재적 값 집합으로 이해하는 것입니다. 예를 들어, 이 예에서 도메인 "이름"은 문자열의 기본 유형으로 정의되지만 그 값은 이름을 나타낼 수 있는 문자열만 포함할 수 있습니다(특히 이러한 문자열은 소프트 기호로 시작할 수 없음).

도메인 개념의 시맨틱 로드도 주목해야 합니다. 데이터는 동일한 도메인에 속하는 경우에만 비교할 수 있는 것으로 간주됩니다. 이 예에서 "Gap Numbers" 및 "Group Numbers" 도메인의 값은 정수 유형이지만 비교할 수 없습니다. Google V.7은 이미 도메인 개념을 지원하지만 대부분의 관계형 DBMS는 도메인 개념을 사용하지 않습니다.

관계 스키마, 데이터베이스 스키마. 관계 스키마는 명명된 쌍의 집합입니다(속성 이름, 도메인 이름(또는 도메인 개념이 지원되지 않는 경우 유형)). 관계 체계의 정도 또는 "arity"는 이 집합의 카디널리티입니다. EXAMPLE 비율의 차수는 6, 즉 6-ary이다. 한 관계의 모든 속성이 서로 다른 도메인에 정의되어 있는 경우 속성 이름을 지정하기 위해 해당 도메인의 이름을 사용하는 것이 합리적입니다(물론 이것은 편리한 이름 지정 방법일 뿐이며 도메인 및 속성의 개념). DB 스키마(구조적 의미에서)는 명명된 관계 스키마의 집합입니다.

관계형 테이블의 이름, 속성(밑줄이 그어진 키) 및 외래 키 정의를 나열하는 목록을 호출합니다. 관계형 데이터베이스 스키마.관계형 데이터베이스의 라이프사이클 단계 생성에 대한 예비 요약입니다. 예시:

작업자 [ 작업자 ID, 이름, 시간당 요금, 기술 유형, SVPV-ID]

외래 키: SKILL에서 참조하는 SKILL-TYPE

SVPV-ID 참조 WORKER

과제 [ 작업자 ID, 빌딩-ID, 시작 날짜, NUMBER-OF-DAYS]

외래 키: WORKER-ID 참조 WORKER

BVILDING에서 참조하는 BLDG-ID

비빌딩 [ 빌딩-ID, 주소, 유형, 수량 수준, 통계]

기술 [ 기술 유형, 보너스 요금, 주당 시간]

튜플, 관계. 주어진 관계 스키마에 해당하는 튜플은 쌍의 집합입니다(속성 이름, 관계 스키마에 속하는 각 속성 이름의 한 번 발생하는 값을 포함하는 값. "값"은 주어진 속성(또는 도메인의 개념은 지원되지 않습니다.) 따라서 튜플의 정도 또는 "arity", 즉 요소의 수는 해당 관계 체계의 "arity"와 일치합니다.

태도동일한 관계 스키마에 해당하는 튜플 세트입니다. 때로는 혼동을 피하기 위해 "스키마 관계"와 "인스턴스 관계"라고 하고, 때로 관계의 스키마를 관계의 제목이라고 하고, 튜플의 집합인 관계를 관계의 본체라고 합니다. 사실 관계 스키마의 개념은 프로그래밍 언어의 구조화된 데이터 유형 개념에 가장 가깝습니다. 관계 스키마를 별도로 정의한 다음 해당 스키마와 하나 이상의 관계를 정의하는 것은 매우 논리적입니다.

그러나 관계형 데이터베이스에서는 그렇지 않습니다. 이러한 데이터베이스에 있는 관계의 스키마 이름은 항상 해당 인스턴스 관계의 이름과 동일합니다. 기존 관계형 데이터베이스에서는 데이터베이스 스키마를 정의한 후 인스턴스 관계만 변경됩니다. 새 튜플이 여기에 나타날 수 있으며 기존 튜플을 삭제하거나 수정할 수 있습니다. 그러나 많은 구현에서는 데이터베이스 스키마 변경도 허용합니다. 즉, 새로운 관계 스키마를 정의하고 기존 관계 스키마를 수정합니다. 이것은 일반적으로 데이터베이스 스키마의 진화.

관계의 일상적인 표현은 테이블이며, 제목은 관계 다이어그램이고 행은 인스턴스 관계의 튜플입니다. 이 경우 속성 이름은 해당 테이블의 열 이름을 지정합니다. 따라서 때때로 그들은 "관계 속성"을 의미하는 "테이블 열"이라고 말합니다. 관계형 데이터베이스 구성 및 관리 도구의 실제 문제에 대해 설명할 때 이 공통 용어를 사용합니다. 이 용어는 대부분의 상용 관계형 DBMS에서 사용됩니다.

관계형 데이터베이스는 이름이 데이터베이스 스키마의 관계 스키마 이름과 동일한 관계 집합입니다.

보시다시피 관계형 데이터 모델의 기본 구조 개념(도메인 개념 제외)은 매우 간단하고 직관적인 해석을 가지고 있지만 관계형 데이터베이스 이론에서는 모두 절대적으로 형식적이고 정확하게 정의됩니다.

관계 테이블 키입니다.튜플은 내부에서 반복되지 않아야 합니다. 관계 테이블따라서 고유 식별자가 있어야 합니다. 기본 키.값이 테이블 행을 고유하게 식별하는 하나 이상의 속성은 다음과 같습니다. 열쇠 테이블.

기본 키는 호출됩니다. 단순한 , 하나의 속성으로 구성되거나 합성물,여러 속성으로 구성된 경우. 기본 키 외에도 관계에는 다음이 포함될 수 있습니다. 보조 키.

보조 키다른 튜플 문자열에서 값이 반복될 수 있는 키입니다. 동일한 보조 키 값을 가진 행 그룹을 검색하는 데 사용할 수 있습니다.

외부 키 -다른(또는 동일한) 테이블의 키인 한 테이블의 속성 집합입니다. 외래 키는 테이블 간의 중요한 관계를 제공합니다. 한 테이블의 데이터를 다른 테이블의 데이터와 연결하는 데 사용됩니다. 외래 키 속성은 해당하는 키 속성과 이름이 같을 필요가 없습니다.


비슷한 정보입니다.


관계형 데이터베이스 및 그 기능. 관계형 테이블 간의 관계 유형

관계형 데이터베이스 각각 특정 유형의 개체에 대한 정보를 포함하는 상호 연결된 테이블의 모음입니다. 테이블 행에는 하나의 개체(예: 제품, 고객)에 대한 데이터가 포함되어 있고 테이블 열에는 이러한 개체의 다양한 특성(예: 이름, 제품 코드, 고객 정보)이 설명되어 있습니다. 레코드, 즉 테이블의 행은 동일한 구조를 가지며 개체의 속성을 저장하는 필드로 구성됩니다. 각 필드, 즉 열은 개체의 한 가지 특성만 설명하며 엄격하게 정의된 데이터 형식을 갖습니다. 모든 레코드에는 동일한 필드가 있으며 개체의 다른 정보 속성만 표시됩니다.

관계형 데이터베이스에서 각 테이블에는 테이블의 각 행을 고유하게 식별하는 필드 또는 필드 조합인 기본 키가 있어야 합니다. 키가 여러 필드로 구성된 경우 복합 키라고 합니다. 키는 고유하고 항목을 고유하게 식별해야 합니다. 키 값을 사용하여 단일 레코드를 찾을 수 있습니다. 키는 데이터베이스의 정보를 구성하는 데에도 사용됩니다.

관계형 데이터베이스 테이블은 관계 정규화 요구 사항을 충족해야 합니다. 관계의 정규화는 중복을 제거하고 데이터베이스에 저장된 항목의 일관성을 보장하며 데이터베이스 유지 관리를 위한 인건비를 줄이는 테이블 형성에 대한 제약 조건의 공식 장치입니다.

그룹 번호, 전체 이름, 학생 학생 번호, 생년월일, 전문 셔플링, 교수 이름 필드가 포함된 Student 테이블을 만듭니다. 이러한 정보 저장 구성에는 다음과 같은 여러 가지 단점이 있습니다.

  • 정보의 중복(학생마다 전문 분야 및 교수진 이름이 반복됨)으로 인해 데이터베이스의 양이 증가합니다.
  • 테이블의 정보를 업데이트하는 절차는 각각을 편집해야 하기 때문에 어렵습니다.테이블 레코드.

테이블 정규화는 이러한 단점을 해결하기 위한 것입니다. 있다 관계의 세 가지 정상적인 형태.

첫 번째 정규형.관계형 테이블은 해당 행이 필드에 둘 이상의 값을 포함하지 않고 키 필드가 비어 있지 않은 경우에만 첫 번째 일반 형식으로 축소됩니다. 따라서 학생 테이블에서 학생 이름에 대한 정보를 가져와야 하는 경우 전체 이름 필드를 성, 이름, 패트로니믹 부분으로 나누어야 합니다.

두 번째 정규형... 관계형 테이블은 첫 번째 일반 형식의 요구 사항을 충족하고 기본 키에 포함되지 않은 모든 필드가 기본 키와 완전히 기능적으로 관련되어 있는 경우 두 번째 일반 형식으로 지정됩니다. 테이블을 두 번째 정규형으로 가져오려면 필드의 기능적 종속성을 결정해야 합니다. 필드의 기능적 종속성은 정보 객체의 인스턴스에서 설명 속성의 한 값만 키 속성의 특정 값에 해당할 때 종속입니다.

세 번째 정규형.테이블은 제2정규형의 요구사항을 충족하는 경우 제3정규형이며, 키가 아닌 필드는 다른 키가 아닌 필드에 기능적으로 종속되지 않습니다. 예를 들어, 학생 테이블(그룹 번호, 이름, 학년 번호, 생년월일, Starosta)에서 세 필드 - 성적 번호, 그룹 번호, Starosta는 전이 종속적입니다. 그룹 번호는 성적부 번호에 따라 다르며, Headman은 그룹 번호에 따라 다릅니다. 전이 종속성을 제거하려면 Student 테이블의 필드 일부를 다른 테이블인 Group으로 전송해야 합니다. 표는 학생(그룹 번호, 이름, 학년 번호, 생년월일), 그룹(그룹 번호, 교장)의 형식을 취합니다.

관계형 테이블에서는 다음 작업이 가능합니다.

  • 동일한 구조의 테이블을 연결합니다. 결과는 공통 ​​테이블입니다. 첫 번째가 첫 번째, 두 번째(연결)입니다.
  • 동일한 구조를 가진 테이블의 교차. 결과 - 두 테이블에 있는 레코드가 선택됩니다.
  • 동일한 구조의 테이블 빼기. 결과 - 빼기에 포함되지 않은 레코드가 선택됩니다.
  • 샘플(수평 부분 집합). 결과 - 특정 조건을 충족하는 레코드가 선택됩니다.
  • 투영(수직 하위 집합). 결과는 원래 테이블의 일부 필드를 포함하는 관계입니다.
  • 두 테이블의 데카르트 곱 결과 테이블의 레코드는 첫 번째 테이블의 각 레코드를 다른 테이블의 각 레코드와 결합하여 얻습니다.

관계형 테이블은 서로 관련될 수 있으므로 여러 테이블에서 동시에 데이터를 검색할 수 있습니다. 테이블은 궁극적으로 데이터베이스의 크기를 줄이기 위해 함께 연결됩니다. 동일한 열이 있는 경우 각 테이블 쌍의 관계가 보장됩니다.

다음과 같은 유형의 정보 링크가 있습니다.

  • 1-1;
  • 일대다;
  • 다대다.

일대일 커뮤니케이션첫 번째 테이블의 한 속성은 두 번째 테이블의 한 속성과만 일치하며 그 반대의 경우도 마찬가지라고 가정합니다.

일대다 관계첫 번째 테이블의 한 속성이 두 번째 테이블의 여러 속성에 해당한다고 가정합니다.

다대다 관계첫 번째 테이블의 한 속성이 두 번째 테이블의 여러 속성에 해당하고 그 반대의 경우도 마찬가지라고 가정합니다.

이 공유