우리의 컴퓨터 기술의 출현현대성은 인간 활동의 모든 영역에서 정보 혁명을 기록했습니다. 그러나 전 세계 인터넷에서 모든 정보가 불필요한 쓰레기가되는 것을 방지하기 위해 자료를 분류하고 체계화 한 데이터베이스 시스템이 발명되어 후속 처리를 위해 자료를 쉽게 찾고 제시 할 수 있습니다. 관계형, 계층 적, 네트워크 데이터베이스의 세 가지 주요 유형이 있습니다.
기본 모델
데이터베이스의 기원으로 돌아 가면 가치가 있습니다.이 과정이 상당히 복잡하다고 말하면 프로그램 가능한 정보 처리 장비의 개발에서 비롯되었습니다. 따라서 현재 모델 수가 50 개 이상에 도달하는 것은 놀라운 일이 아니지만 주요 모델은 실제로 여전히 널리 사용되는 계층 적, 관계형 및 네트워크 모델입니다. 그들은 무엇인가?
계층 적 데이터베이스는 트리와 같은구조는 서로 다른 수준의 데이터로 구성되며 그 사이에는 연결이 있습니다. DB 네트워크 모델은 더 복잡한 패턴입니다. 그 구조는 계층 구조와 유사하며 체계가 확장되고 개선됩니다. 차이점은 계층 적 모델의 유전 데이터는 하나의 조상과 만 연결될 수있는 반면 네트워크 데이터는 여러 개를 가질 수 있다는 것입니다. 관계형 데이터베이스의 구조는 훨씬 더 복잡합니다. 따라서 더 자세히 분석해야합니다.
관계형 데이터베이스의 기본 개념
이 모델은 1970 년대에 개발되었습니다.Edgar Codd, 과학 박사. 데이터, 서로의 관계, 데이터에 대해 수행 된 작업, 가장 중요한 것은 무결성을 보장하는 규칙을 설명하는 필드가있는 논리적으로 구조화 된 테이블입니다. 모델을 관계형이라고하는 이유는 무엇입니까? 데이터 간의 관계 (lat. Relatio에서)를 기반으로합니다. 이 유형의 데이터베이스에 대한 많은 정의가 있습니다. 정보가있는 관계형 테이블은 네트워크 또는 계층 적 모델에서보다 구성 및 처리가 훨씬 쉽습니다. 어떻게 할 수 있습니까? 기능, 모델의 구조 및 관계형 테이블의 속성을 아는 것으로 충분합니다.
주요 요소를 모델링하고 작성하는 과정
자신 만의 DBMS를 생성하려면모델링 도구 중 하나를 사용하고, 작업에 필요한 정보를 생각하고, 테이블과 데이터 간의 관계형 단일 및 다중 관계를 설계하고, 엔터티 셀을 채우고, 기본 외래 키를 설정합니다.
테이블 모델링 및 관계형 디자인데이터베이스는 Workbench, PhpMyAdmin, Case Studio, dbForge Studio와 같은 무료 도구를 통해 생성됩니다. 세부 설계 후에는 그래픽으로 준비된 관계형 모델을 저장하고 미리 만들어진 SQL 코드로 변환해야합니다. 이 단계에서 데이터 정렬, 처리 및 시스템화 작업을 시작할 수 있습니다.
관계형 모델과 관련된 기능, 구조 및 용어
각 소스는 고유 한 방식으로 요소를 설명하므로 혼동을 줄이기 위해 작은 힌트를 제공하고 싶습니다.
- 관계형 레이블 = 엔티티;
- 레이아웃 = 속성 = 필드 이름 = 엔티티 열 헤더;
- 엔티티 인스턴스 = 튜플 = 레코드 = 테이블 행;
- 속성 값 = 엔티티 셀 = 필드.
관계형 데이터베이스의 속성을 얻으려면 그것이 어떤 기본 구성 요소로 구성되어 있고 무엇을위한 것인지 알아야합니다.
- 본질.관계형 데이터베이스에는 하나의 테이블이있을 수도 있고, 저장된 데이터로 인해 설명 된 개체를 특성화하는 전체 테이블 집합이있을 수도 있습니다. 고정 된 수의 필드와 가변적 인 수의 레코드가 있습니다. 관계형 데이터베이스 모델 테이블은 문자열, 속성 및 레이아웃으로 구성됩니다.
- 기록-설명 된 객체를 특징 짓는 데이터를 표시하는 가변 개수의 줄. 레코드는 시스템에 의해 자동으로 번호가 지정됩니다.
- 속성은 엔터티 열의 설명을 보여주는 데이터입니다.
- 들. 엔티티 열을 나타냅니다. 해당 번호는 테이블 생성 또는 수정 중에 설정되는 고정 값입니다.
이제 테이블의 구성 요소를 알았으므로 데이터베이스 관계형 모델의 속성으로 이동할 수 있습니다.
- 관계형 데이터베이스 엔티티는 2 차원입니다. 이 속성 덕분에 다양한 논리 및 수학 연산을 쉽게 수행 할 수 있습니다.
- 관계형 테이블에서 속성 및 레코드 값의 순서는 임의적 일 수 있습니다.
- 한 관계형 테이블 내의 열에는 고유 한 개별 이름이 있어야합니다.
- 엔티티 열의 모든 데이터는 고정 길이와 동일한 유형을 갖습니다.
- 모든 레코드는 본질적으로 하나의 데이터 항목으로 간주됩니다.
- 문자열의 구성 요소는 고유합니다. 관계형 엔터티에 중복 행이 없습니다.
관계형 DBMS의 속성에 따라 속성 값이 동일한 유형과 길이 여야한다는 것이 분명합니다. 속성 값의 특징을 고려해 보겠습니다.
관계형 데이터베이스 필드의 기본 특성
필드 이름은 내에서 고유해야합니다.하나의 엔티티. 관계형 데이터베이스 속성 또는 필드 유형은 엔티티 필드에 저장되는 카테고리 데이터를 설명합니다. 관계형 데이터베이스 필드의 문자 크기는 고정되어 있어야합니다. 속성 값의 매개 변수와 형식은 데이터가 수정되는 방식을 결정합니다. "마스크"또는 "입력 패턴"과 같은 것도 있습니다. 속성 값에 데이터 항목의 구성을 정의하기위한 것입니다. 필드에 올바르지 않은 데이터 유형을 쓸 때 오류 메시지가 발행되어야합니다. 또한 필드의 요소 (정확성 및 오류없는 데이터 입력을 확인하기위한 조건)에 일부 제한이 적용됩니다. 데이터로 모호하지 않게 채워야하는 필수 속성 값이 있습니다. 일부 속성 문자열은 NULL 값으로 채울 수 있습니다. 필드 속성에 빈 데이터를 입력 할 수 있습니다. 오류 알림과 마찬가지로 시스템에 의해 자동으로 채워지는 값이 있습니다. 이것이 기본 데이터입니다. 인덱싱 된 필드는 데이터 검색 속도를 높이기위한 것입니다.
2D 관계형 데이터베이스 테이블 스키마
속성 이름 1 | 속성 이름 2 | 속성 이름 3 | 속성 이름 4 | 속성 이름 5 |
Item_1_1 | Item_1_2 | Item_1_3 | Item_1_4 | Item_1_5 |
Item_2_1 | Item_2_2 | Item_2_3 | Item_2_4 | Item_2_5 |
Item_3_1 | Item_3_2 | Item_3_3 | Item_3_4 | Item_3_5 |
제어 시스템에 대한 자세한 이해SQL을 사용하는 모델은 스키마를 보는 가장 좋은 방법은 예입니다. 우리는 이미 관계형 데이터베이스가 무엇인지 알고 있습니다. 각 테이블의 레코드는 하나의 데이터 항목입니다. 데이터 중복을 방지하려면 정규화 작업을 수행해야합니다.
관계형 엔터티 정규화를위한 기본 규칙
1. 관계형 테이블에 대한 필드 이름의 값은 고유해야하며 종류 중 하나 여야합니다 (첫 번째 일반 형식은 1NF).
2. 이미 1NF로 축소 된 테이블의 경우 비 식별 열의 이름은 테이블의 고유 식별자 (2NF)에 종속되어야합니다.
3. 이미 2NF에있는 전체 테이블의 경우 각 비 식별 필드는 인식되지 않는 다른 값 (엔티티 3NF)의 요소에 의존 할 수 없습니다.
데이터베이스 : 테이블 간의 관계형 관계
관계형 테이블 관계에는 두 가지 주요 유형이 있습니다.
- 일대 다.테이블 # 1의 하나의 키 레코드가 두 번째 엔터티의 여러 인스턴스와 일치 할 때 발생합니다. 그려진 선의 한쪽 끝에있는 열쇠 아이콘은 엔티티가 "한 쪽"에 있음을 나타내며, 다른 쪽 끝은 종종 무한대 기호로 표시됩니다.
- 한 엔터티의 여러 행이 다른 테이블의 여러 레코드와 명시적인 논리적 상호 작용을 할 때 "다-다"관계가 형성됩니다.
- 두 엔티티 사이에연결 "일대일", 즉 한 테이블의 키 식별자가 다른 엔터티에있는 경우 테이블 중 하나를 제거해야하며 불필요합니다. 그러나 때로는 순전히 보안상의 이유로 프로그래머가 의도적으로 두 개체를 분리합니다. 따라서 가설 적으로 일대일 관계가 존재할 수 있습니다.
관계형 데이터베이스에 키의 존재
기본 및 보조 키는잠재적 인 데이터베이스 관계. 데이터 모델의 관계형 링크에는 잠재적 키가 하나만있을 수 있으며 이것이 기본 키가됩니다. 그는 같은 것입니다? 기본 키는 특정 행의 데이터에 액세스 할 수있는 항목 열 또는 속성 집합입니다. 고유하고 고유해야하며 해당 필드는 빈 값을 포함 할 수 없습니다. 기본 키가 하나의 속성으로 만 구성되어 있으면 단순이라고하고 그렇지 않으면 구성 요소가됩니다.
기본 키 외에도 외부(외래 키). 많은 사람들이 그들 사이의 차이점을 이해하지 못합니다. 예제를 사용하여 더 자세히 분석해 봅시다. 그래서 2 개의 테이블이 있습니다 : "학장실"과 "학생". "학장실"엔터티에는 "학생 ID", "성명"및 "그룹"필드가 있습니다. "학생"테이블에는 "이름", "그룹"및 "평균"과 같은 속성 값이 있습니다. 학생 ID는 여러 학생에 대해 동일 할 수 없으므로이 필드가 기본 키가됩니다. "Students"테이블의 "Full name"과 "Group"은 여러 사람에게 동일 할 수 있으며 "Dean 's office"엔티티의 학생 ID 번호를 참조하므로 외래 키로 사용할 수 있습니다.
관계형 데이터베이스 모델 예
명확성을 위해 두 개의 엔티티로 구성된 관계형 데이터베이스 모델의 간단한 예를 제공합니다. "Deanery"라는 테이블이 있습니다.
에센스 "Deanery" | ||
학생 아이디 | 성명 | 그룹 |
111 | 이바노프 올렉 페트로 비치 | IN-41 |
222 | 일리아 라자레프 | IN-72 |
333 | Konoplev Petr Vasilievich | IN-41 |
444 | 쿠 시네 레바 나탈리아이고 레브 나 | IN-72 |
연결하려면 연결해야합니다.본격적인 관계형 데이터베이스. "IN-72"와 같은 "IN-41"레코드는 "Dean 's office"플레이트에 두 번 이상 표시 될 수 있으며 드물게 학생의 성, 이름 및 후원이 일치 할 수 있으므로 이러한 필드는 기본 키를 만들었습니다. "Students"엔티티를 보여 봅시다.
"학생"테이블 | |||
성명 | 그룹 | 평균 점수 | 전화 번호 |
이바노프 올렉 페트로 비치 | IN-41 | 3,0 | 2-27-36 |
일리아 라자레프 | IN-72 | 3,8 | 2-36-82 |
Konoplev Petr Vasilievich | IN-41 | 3,9 | 2-54-78 |
쿠 시네 레바 나탈리아이고 레브 나 | IN-72 | 4,7 | 2-65-25 |
보시다시피 관계형 데이터베이스의 필드 유형은완전히 다릅니다. 디지털 항목과 기호 항목이 모두 있습니다. 따라서 정수, char, vachar, date 등의 값은 속성 설정에서 지정해야합니다. "학장실"테이블에서 학생 ID 만 고유 한 값입니다. 이 필드는 기본 키로 사용할 수 있습니다. "Students"엔티티의 전체 이름, 그룹 및 전화 번호는 학생 ID를 참조하는 외래 키로 간주 될 수 있습니다. 연결이 설정되었습니다. 이것은 일대일 관계 모델의 예입니다. 가설 적으로 테이블 중 하나는 불필요하며 쉽게 하나의 엔티티로 결합 될 수 있습니다. 학생 ID 번호가 일반적으로 알려지지 않도록하기 위해 두 개의 테이블이 존재하는 것은 매우 현실적입니다.