관계형 데이터베이스. 인형용 관계형 데이터베이스

현대 컴퓨터 기술의 출현은 인간 활동의 모든 영역에서 정보 혁명을 가져왔습니다. 그러나 모든 정보가 글로벌 인터넷에서 불필요한 쓰레기가 되는 것을 방지하기 위해 자료를 분류하고 체계화하여 후속 처리를 위해 쉽게 찾고 제출할 수 있는 데이터베이스 시스템이 발명되었습니다. 관계형, 계층형, 네트워크 데이터베이스라는 세 가지 주요 유형이 있습니다.

기본 모델

데이터베이스의 출현으로 돌아가서, 이 프로세스는 프로그래밍 가능한 정보 처리 장비의 개발에서 시작되었다고 말할 가치가 있습니다. 따라서 현재 모델 수가 50개 이상에 도달한 것은 놀라운 일이 아니지만 주요 모델은 실제로 여전히 널리 사용되는 계층형, 관계형 및 네트워크입니다. 그들은 무엇인가?

계층형은 트리 구조를 가지며 서로 다른 수준의 데이터로 구성되며, 각 수준 사이에는 연결이 있습니다. 네트워크 데이터베이스 모델은 더 복잡한 패턴입니다. 그 구조는 계층적 구조와 유사하며 그 체계가 확장되고 개선되었습니다. 이들 간의 차이점은 계층적 모델의 하위 데이터는 하나의 상위 데이터와만 연결될 수 있는 반면, 네트워크 모델은 여러 개의 상위 데이터를 가질 수 있다는 것입니다. 관계형 데이터베이스의 구조는 훨씬 더 복잡합니다. 그러므로 좀 더 자세히 분석해야 한다.

관계형 데이터베이스의 기본 개념

이 모델은 1970년대 Edgar Codd 박사가 개발했습니다. 이는 데이터, 데이터 간의 관계, 데이터에 대해 수행되는 작업, 그리고 가장 중요하게는 데이터의 무결성을 보장하는 규칙을 설명하는 필드로 구성된 논리적으로 구조화된 테이블입니다. 모델을 관계형이라고 부르는 이유는 무엇입니까? 이는 데이터 간의 관계(라틴어 relatio에서 유래)를 기반으로 합니다. 이러한 유형의 데이터베이스에 대한 정의는 다양합니다. 관계형 정보 테이블은 네트워크나 계층적 모델보다 체계화하고 처리하기가 훨씬 쉽습니다. 어떻게 해야 하나요? 모델의 기능, 구조, 관계형 테이블의 속성을 아는 것만으로도 충분합니다.

기본 요소를 모델링하고 컴파일하는 과정

자신만의 DBMS를 만들려면 모델링 도구 중 하나를 사용하고, 작업해야 할 정보가 무엇인지 생각하고, 데이터 간의 관계형 단일 및 다중 관계와 테이블을 설계하고, 엔터티 셀을 채우고, 기본 키와 외래 키를 설정해야 합니다.

테이블 모델링 및 관계형 데이터베이스 설계는 Workbench, PhpMyAdmin, Case Studio, dbForge Studio와 같은 무료 도구를 사용하여 수행됩니다. 세부 설계 후에는 그래픽으로 준비된 관계형 모델을 저장하고 이를 이미 만들어진 SQL 코드로 변환해야 합니다. 이 단계에서는 데이터 정렬, 처리 및 체계화 작업을 시작할 수 있습니다.

관계형 모델과 관련된 기능, 구조 및 용어

각 소스는 해당 요소를 고유한 방식으로 설명하므로 혼란을 줄이기 위해 작은 힌트를 제공하고 싶습니다.

  • 관계테이블 = 엔터티;
  • 레이아웃 = 속성 = 필드 이름 = 엔터티 열 헤더;
  • 엔터티 인스턴스 = 튜플 = 레코드 = 테이블 문자열;
  • 속성 값 = 엔터티 셀 = 필드.

관계형 데이터베이스의 속성으로 넘어가려면 관계형 데이터베이스가 어떤 기본 구성 요소로 구성되어 있고 어떤 용도로 사용되는지 알아야 합니다.

  1. 본질. 관계형 데이터베이스에는 하나의 테이블이 있을 수도 있고, 저장된 데이터 덕분에 설명된 개체를 특성화하는 전체 테이블 집합이 있을 수도 있습니다. 고정된 수의 필드와 가변적인 수의 레코드가 있습니다. 관계형 데이터베이스 모델 테이블은 행, 속성 및 레이아웃으로 구성됩니다.
  2. 레코드는 설명되는 개체를 특징짓는 데이터를 표시하는 가변 개수의 줄입니다. 레코드 번호 매기기는 시스템에 의해 자동으로 수행됩니다.
  3. 속성은 엔터티의 열을 설명하는 데이터입니다.
  4. 필드. 엔터티 열을 나타냅니다. 해당 숫자는 테이블 생성 또는 수정 중에 설정되는 고정 값입니다.

이제 테이블의 구성 요소를 알았으므로 관계형 데이터베이스 모델의 속성으로 넘어갈 수 있습니다.

  • 관계형 데이터베이스 엔터티는 2차원입니다. 이 속성 덕분에 다양한 논리적, 수학적 연산을 쉽게 수행할 수 있습니다.
  • 관계형 테이블의 속성 값과 레코드의 순서는 임의적일 수 있습니다.
  • 하나의 관계형 테이블 내의 열에는 고유한 개별 이름이 있어야 합니다.
  • 엔터티 열의 모든 데이터는 고정된 길이와 동일한 유형을 갖습니다.
  • 모든 기록은 기본적으로 하나의 데이터 항목으로 간주됩니다.
  • 문자열의 구성 요소는 종류 중 하나입니다. 관계형 엔터티에는 동일한 행이 없습니다.

속성에 따르면 속성 값의 유형과 길이가 동일해야 한다는 것이 분명합니다. 속성값의 특징을 살펴보겠습니다.

관계형 데이터베이스 분야의 주요 특징

필드 이름은 하나의 엔터티 내에서 고유해야 합니다. 관계형 데이터베이스 특성 또는 필드 유형은 엔터티 필드에 저장되는 데이터 범주를 설명합니다. 관계형 데이터베이스 필드는 문자 단위로 측정되는 고정된 크기를 가져야 합니다. 속성 값의 매개변수와 형식에 따라 해당 데이터가 수정되는 방식이 결정됩니다. "마스크"나 "입력 템플릿"과 같은 것도 있습니다. 속성 값에 대한 데이터 입력 구성을 정의하기 위한 것입니다. 필드에 잘못된 내용을 입력하면 오류 메시지가 표시되어야 합니다. 또한 필드 요소에는 데이터 입력의 정확성과 오류 없음을 확인하기 위한 조건인 일부 제한 사항이 적용됩니다. 반드시 데이터로 채워야 하는 필수 속성 값이 있습니다. 일부 속성 문자열은 NULL 값으로 채워질 수 있습니다. 필드 속성에는 빈 데이터가 허용됩니다. 오류 알림과 마찬가지로 시스템에 의해 자동으로 채워지는 값이 있습니다. 이것이 기본 데이터입니다. 색인화된 필드는 모든 데이터 검색 속도를 높이도록 설계되었습니다.

2차원 관계형 데이터베이스 테이블의 다이어그램

SQL을 사용하여 모델을 자세히 이해하려면 예제를 사용하여 다이어그램을 보는 것이 가장 좋습니다. 우리는 이미 관계형 데이터베이스가 무엇인지 알고 있습니다. 각 테이블의 레코드는 하나의 데이터 요소입니다. 데이터 중복을 방지하려면 정규화 작업을 수행해야 합니다.

관계형 엔터티 정규화를 위한 기본 규칙

1. 관계형 테이블의 필드 이름 값은 고유해야 하며 종류 중 하나여야 합니다(첫 번째 정규형 - 1NF).

2. 이미 1NF로 캐스트된 테이블의 경우 식별되지 않는 열의 이름은 테이블의 고유 식별자(2NF)에 종속되어야 합니다.

3. 이미 2NF에 있는 전체 테이블의 경우 각 비식별 필드는 다른 식별되지 않은 값(3NF 엔터티)의 요소에 종속될 수 없습니다.

데이터베이스: 테이블 간의 관계 관계

2개의 주요 관계형 테이블이 있습니다:

  • "하나-다". 1번 테이블의 하나의 키 레코드가 두 번째 엔터티의 여러 인스턴스에 해당하는 경우 발생합니다. 그려진 선의 한쪽 끝에 있는 열쇠 아이콘은 해당 엔터티가 선의 다른 쪽 끝에 있음을 나타내며 종종 무한대 기호로 표시됩니다.

  • "다대다" 관계는 한 엔터티의 여러 행과 다른 테이블의 여러 레코드 사이에 명시적인 논리적 상호 작용이 발생할 때 형성됩니다.
  • 두 엔터티 간에 일대일 연결이 발생하는 경우 이는 한 테이블의 키 식별자가 다른 엔터티에 존재하므로 테이블 중 하나를 제거해야 하며 중복된다는 의미입니다. 그러나 때로는 순전히 보안상의 이유로 프로그래머가 의도적으로 두 엔터티를 분리합니다. 따라서 가정적으로 일대일 관계가 존재할 수 있습니다.

관계형 데이터베이스에 키 존재

기본 및 보조 키는 잠재적인 데이터베이스 관계를 정의합니다. 데이터 모델의 관계 관계에는 잠재적 키가 하나만 있을 수 있으며 이것이 기본 키가 됩니다. 그는 같은 것입니다? 기본 키는 특정 행에 대한 데이터에 액세스할 수 있는 엔터티 열 또는 속성 집합입니다. 고유해야 하며 해당 필드에는 빈 값이 포함될 수 없습니다. 기본 키가 하나의 속성으로만 구성된 경우 단순 키라고 하고, 그렇지 않으면 구성 요소가 됩니다.

기본 키 외에 외래 키도 있습니다. 많은 사람들이 그들 사이의 차이점을 이해하지 못합니다. 예제를 사용하여 더 자세히 살펴보겠습니다. 따라서 "Dean's Office"와 "Students"라는 2개의 테이블이 있습니다. "Dean's Office" 엔터티에는 "학생 ID", "성명" 및 "그룹" 필드가 포함되어 있습니다. "학생" 테이블에는 "이름", "그룹", "GPA"와 같은 속성 값이 있습니다. 여러 학생의 학생 ID가 동일할 수 없으므로 이 필드가 기본 키가 됩니다. “Students” 테이블의 “Full name”과 “Group”은 여러 사람이 동일할 수 있으며, “Dean’s office” 엔터티의 학생 ID 번호를 참조하므로 외래 키로 사용할 수 있습니다.

관계형 데이터베이스 모델의 예

명확성을 위해 두 엔터티로 구성된 관계형 데이터베이스 모델의 간단한 예를 제공합니다. "Dean's Office"라는 테이블이 있습니다.

완전한 관계형 데이터베이스를 생성하려면 연결이 필요합니다. "IN-72"와 같이 "IN-41" 항목은 "Dean's Office" 표시에 두 번 이상 나타날 수 있으며, 드물게 학생의 성, 이름 및 부칭이 일치할 수 있으므로 이러한 필드를 만들 수 없습니다. 기본 키. "학생"이라는 엔터티를 보여드리겠습니다.

보시다시피 관계형 데이터베이스의 필드 유형은 완전히 다릅니다. 디지털 기록과 상징 기록이 모두 있습니다. 따라서 속성 설정에서 정수, 문자, vachar, 날짜 등의 값을 지정해야 합니다. "Dean's Office" 테이블에서 유일한 고유 값은 학생 ID입니다. 이 필드를 기본 키로 사용할 수 있습니다. "학생" 엔터티의 전체 이름, 그룹 및 전화번호는 학생 ID를 참조하는 외래 키로 사용될 수 있습니다. 연결이 설정되었습니다. 이는 일대일 관계 모델의 예입니다. 가정적으로 테이블 중 하나는 중복되어 하나의 엔터티로 쉽게 결합될 수 있습니다. 학생 ID 번호가 공개적으로 알려지는 것을 방지하기 위해 두 개의 테이블을 갖는 것이 전적으로 가능합니다.

데이터베이스(DB) -이는 특정 주제 영역과 관련된 구조화된 데이터의 명명된 집합으로, 컴퓨터를 사용하여 저장, 축적 및 처리하기 위한 것입니다.

관계형 데이터베이스(RDB)데이터베이스 스키마의 스키마 관계 이름과 이름이 일치하는 관계 집합입니다.

기본 개념관계형 데이터베이스:

· 데이터 형식– 특정 열의 값 유형.

· 도메인(도메인) – 유효한 모든 속성 값의 집합입니다.

· 기인하다(속성) – 학생의 성, 주문 날짜, 직원의 성별 등과 같이 객체의 명명된 속성을 특성화하는 테이블 열 헤더입니다.

· 수행원– 논리적으로 관련된 속성의 값 집합을 나타내는 테이블 행.

· 태도(관계) – 학생, 주문, 직원, 주민 등과 같은 실제 객체에 대한 정보를 반영하는 테이블입니다.

· 기본 키(기본 키) – 각 레코드를 고유하게 식별하는 테이블의 필드(또는 필드 집합)입니다.

· 대체 키기본 키와 일치하지 않고 레코드 인스턴스를 고유하게 식별하는 필드(또는 필드 집합)입니다.

· 외부 키값이 다른 테이블의 기본 키의 기존 값과 일치하는 필드(또는 필드 집합)입니다. 두 테이블을 연결하면 첫 번째 테이블의 기본 키가 두 번째 테이블의 외래 키에 연결됩니다.

· 관계형 데이터 모델(RDM)- 데이터를 2차원 테이블 형식으로 구성합니다.

각 관계형 테이블에는 다음 속성이 있어야 합니다.

1. 각 테이블 레코드는 고유합니다. 필드의 값 세트는 반복되지 않습니다.

2. 행과 열의 교차점에 기록된 각 값은 원자성(분리 불가능)입니다.

3. 각 필드의 값은 동일한 유형이어야 합니다.

4. 각 필드에는 고유한 이름이 있습니다.

5. 항목의 순서는 중요하지 않습니다.

데이터베이스의 주요 요소:

필드- 데이터의 논리적 구성의 기본 단위입니다. 필드를 설명하는 데 다음 특성이 사용됩니다.

· 이름(예: 성, 이름, 후원자, 생년월일);

· 유형(예: 문자열, 문자, 숫자, 날짜);

· 길이(예: 바이트);

· 숫자의 소수 부분을 표시하기 위한 소수점 두 자리와 같은 숫자 데이터의 정밀도.

기록- 논리적으로 관련된 필드의 값 집합입니다.

색인– 테이블 간의 관계를 설정하는 데 사용되는 레코드 검색 작업 속도를 높이는 수단입니다. 인덱스가 사용되는 테이블을 인덱스라고 합니다. 인덱스 작업 시 분류의 기초가 되는 인덱스 구성에 주의를 기울여야 합니다. 단순 인덱스는 단일 필드 또는 단일 필드를 처리하는 부울 표현식으로 표현됩니다. 복합 인덱스는 다양한 기능을 사용할 수 있는 여러 필드로 표시됩니다. 테이블 인덱스는 인덱스 파일에 저장됩니다.


데이터 무결성– 이는 통신 분야의 데이터를 보호하는 수단으로, 테이블을 일관된(일관된) 상태로 유지할 수 있게 한다(즉, 상위 테이블에 해당 레코드가 없는 하위 테이블에 레코드가 존재하는 것을 허용하지 않음) 테이블).

요구– 데이터 샘플링 기준을 포함하는 하나 이상의 상호 연결된 테이블에 대해 공식화된 질문입니다. 쿼리는 구조화된 쿼리 언어인 SQL(Structured Query Language)을 사용하여 수행됩니다. 하나 이상의 테이블에서 데이터를 검색하면 뷰라는 레코드 집합이 생성될 수 있습니다.

데이터 프레젠테이션– 하나 이상의 테이블에서 데이터를 검색하기 위해 데이터베이스에 저장된 명명된 쿼리입니다.

뷰는 기본적으로 쿼리 결과로 생성된 임시 테이블입니다. 요청 자체는 별도의 파일, 보고서, 임시 테이블, 디스크의 테이블 등으로 전송될 수 있습니다.

보고서– 데이터베이스의 정보를 기반으로 문서를 설명하고 인쇄하는 것이 주요 목적인 시스템 구성 요소입니다.

RDB 작업의 일반적인 특징:

관계형 데이터 모델에 대한 가장 일반적인 해석은 거의 모든 책에서 이를 다양한 개선을 통해 재현한 Data의 해석인 것 같습니다. Date에 따르면 관계형 모델은 관계형 접근 방식의 다양한 측면을 설명하는 세 부분, 즉 구조적 부분, 조작 부분, 전체적인 부분으로 구성됩니다.

모델의 구조적 부분은 관계형 데이터베이스에 사용되는 유일한 데이터 구조가 정규화된 n항 관계임을 나타냅니다.

모델의 조작 부분은 관계형 데이터베이스를 조작하기 위한 두 가지 기본 메커니즘, 즉 관계 대수와 관계 미적분을 확인합니다. 첫 번째 메커니즘은 주로 고전 집합 이론(일부 개선 포함)을 기반으로 하며, 두 번째 메커니즘은 1차 술어 계산의 고전 논리 장치를 기반으로 합니다. 관계형 모델의 조작 부분의 주요 기능은 특정 관계형 데이터베이스 언어의 관계성에 대한 척도를 제공하는 것입니다. 언어가 관계형 대수 또는 관계형 계산보다 표현력과 힘이 덜하지 않으면 관계형이라고 합니다.


28. 알고리즘 언어. 번역가(통역사 및 컴파일러). 알고리즘 언어 기본. 프로그램 구조. 식별자. 변수. 운영자. 1차원 및 2차원 배열 처리. 사용자 기능. 서브루틴. 데이터 파일 작업.

고급 언어- 인간의 인식에 편리한 개념과 구조를 가진 프로그래밍 언어.

알고리즘 언어(알고리즘 언어) - 프로그래밍 언어 - 알고리즘 작성을 위해 설계된 인공(형식) 언어입니다. 프로그래밍 언어는 설명에 따라 정의되며 특수 프로그램(컴파일러 또는 인터프리터)의 형태로 구현됩니다. 알고리즘 언어의 예로는 Borland Pascal, C++, Basic 등이 있습니다.

알고리즘 언어의 기본 개념:

언어의 구성:

일반적인 구어는 기호, 단어, 구, 문장이라는 네 가지 기본 요소로 구성됩니다. 알고리즘 언어에는 유사한 요소가 포함되어 있으며, 단어만 기본 구성이라고 하고, 구문을 표현이라고 하며, 문장을 연산자라고 합니다.

기호, 기본 구성, 표현식 및 연산자는 계층 구조를 형성합니다. 기본 구성은 일련의 기호로 구성되기 때문입니다.

표현식는 기본 구조와 기호의 시퀀스입니다.

운영자- 일련의 표현, 기본 구조 및 기호.

언어 설명:

기호 설명은 해당 언어의 유효한 기호를 나열하는 것으로 구성됩니다. 기본 구조에 대한 설명은 형성 규칙을 의미합니다. 표현의 설명은 주어진 언어에서 의미를 갖는 표현의 형성에 대한 규칙입니다. 연산자에 대한 설명은 언어에서 허용되는 모든 유형의 연산자를 고려하여 구성됩니다. 각 언어 요소에 대한 설명은 구문과 의미로 제공됩니다.

구문론정의는 언어 요소를 구성하기 위한 규칙을 설정합니다.

의미론구문 정의가 제공된 언어 요소의 의미와 사용 규칙을 정의합니다.

언어 기호- 이것은 언어의 모든 텍스트가 작성되는 기본 분할 불가능한 기호입니다.

기본 구조- 독립적인 의미를 갖는 언어의 최소 단위입니다. 이는 언어의 기본 기호로 구성됩니다.

표현알고리즘 언어에서는 기본 구조와 기호로 구성되며 특정 값을 계산하는 규칙을 지정합니다.

운영자수행해야 하는 일부 작업에 대한 전체 설명을 지정합니다. 복잡한 작업을 설명하려면 일련의 명령문이 필요할 수 있습니다.

이 경우 연산자는 다음과 같이 결합됩니다. 복합 연산자또는 차단하다. 행위연산자에 의해 지정된 가 데이터에 대해 실행됩니다. 데이터 유형에 대한 정보를 제공하는 알고리즘 언어의 명령문을 선언 또는 실행 불가능한 명령문이라고 합니다. 단일 알고리즘으로 통합된 일련의 설명과 연산자는 알고리즘 언어로 프로그램을 구성합니다. 알고리즘 언어를 학습하는 과정에서는 학습 중인 알고리즘 언어에 대한 기술을 수행하는 언어와 알고리즘 언어를 구별하는 것이 필요합니다. 일반적으로 공부하는 언어를 단순히 언어라고 부르며, 공부하는 언어에 대한 설명이 제공되는 언어는 다음과 같습니다. 메타언어.

번역가 - (영어번역기 - 번역기)는 번역기 프로그램입니다. 고급 언어 중 하나로 작성된 프로그램을 기계 명령어로 구성된 프로그램으로 변환합니다.

고급 알고리즘 언어로 작성된 프로그램은 컴퓨터에서 직접 실행할 수 없습니다. 컴퓨터는 기계 명령의 언어만 이해합니다. 결과적으로, 알고리즘 언어로 된 프로그램은 특정 컴퓨터의 명령 언어로 번역(번역)되어야 합니다. 이러한 번역은 각 알고리즘 언어와 각 컴퓨터 유형에 대해 만들어진 특수 번역 프로그램에 의해 자동으로 수행됩니다.

방송에는 크게 두 가지 방법이 있습니다. 편집과 해석.

1.컴파일: 컴파일러(영어 컴파일러 - 컴파일러, 컬렉터)는 프로그램 전체를 읽고 번역하여 기계어로 완전한 버전의 프로그램을 생성한 후 실행합니다.

~에 편집전체 원본 프로그램은 즉시 일련의 기계 명령어로 변환됩니다. 그런 다음 결과 프로그램은 사용 가능한 소스 데이터가 있는 컴퓨터에서 실행됩니다. 이 방법의 장점은 번역이 한 번 수행되고 결과 프로그램의 (다중) 실행이 빠른 속도로 수행될 수 있다는 것입니다. 동시에 결과 프로그램은 번역 중에 하나의 언어 연산자가 수백 또는 수천 개의 명령으로 대체되기 때문에 컴퓨터 메모리에서 많은 공간을 차지할 수 있습니다. 또한, 방송프로그램의 디버깅 및 수정이 매우 어렵다.

2. 통역 : 통역사(영어 통역사 - 통역사, 통역사)는 프로그램을 한 줄씩 번역하고 실행합니다.

~에 해석소스 프로그램은 거의 변경되지 않고 컴퓨터 메모리에 저장됩니다. 인터프리터 프로그램은 소스 프로그램의 명령문을 한 번에 하나씩 디코딩하고 사용 가능한 데이터로 즉시 실행을 보장합니다. 해석된 프로그램은 컴퓨터 메모리에서 작은 공간을 차지하며 디버그 및 수정이 쉽습니다. 그러나 각 실행마다 모든 연산자의 해석이 새로 수행되므로 프로그램 실행이 매우 느립니다.

컴파일된 프로그램은 더 빠르게 실행되지만 해석된 프로그램은 수정 및 변경이 더 쉽습니다.

각 특정 언어는 작성된 목적에 따라 편집 또는 해석을 지향합니다. 예를 들어, Pascal은 일반적으로 프로그램 속도가 중요한 다소 복잡한 문제를 해결하는 데 사용됩니다. 따라서 이 언어는 일반적으로 컴파일러를 사용하여 구현됩니다.

반면에 BASIC은 프로그램을 한 줄씩 실행하는 것이 부인할 수 없는 이점을 갖는 초보 프로그래머를 위한 언어로 만들어졌습니다.

때로는 동일한 언어에 대한 컴파일러와 인터프리터가 모두 있는 경우도 있습니다. 이 경우 인터프리터를 사용하여 프로그램을 개발 및 테스트한 후 디버깅된 프로그램을 컴파일하여 실행 속도를 향상시킬 수 있습니다.

데이터베이스(DB)는 특정 주제 영역, 주제 또는 작업과 관련된 개체, 프로세스, 이벤트 또는 현상에 대한 정보 모음을 특정 규칙에 따라 구성하고 컴퓨터 메모리에 유지합니다. 이는 사용자의 정보 요구 사항을 제공하고 전체 또는 일부 데이터 컬렉션을 편리하게 저장할 수 있도록 구성됩니다.

관계형 데이터베이스는 상호 연결된 테이블 세트로, 각 테이블에는 특정 유형의 개체에 대한 정보가 포함되어 있습니다. 테이블의 각 행에는 하나의 객체(예: 자동차, 컴퓨터, 클라이언트)에 대한 데이터가 포함되고, 테이블의 열에는 이러한 객체의 다양한 특성(예: 엔진 번호, 프로세서 브랜드, 전화번호)이 포함됩니다. 회사 또는 고객의).

테이블의 행을 레코드라고 합니다. 모든 테이블 레코드는 동일한 구조를 가지고 있습니다. 즉, 개체 속성이 저장되는 필드(데이터 요소)로 구성됩니다(그림 1). 각 레코드 필드에는 개체의 한 가지 특성이 포함되어 있으며 지정된 데이터 유형(예: 텍스트 문자열, 숫자, 날짜)을 나타냅니다. 기본 키는 레코드를 식별하는 데 사용됩니다. 기본 키는 값의 조합이 테이블의 각 레코드를 고유하게 식별하는 테이블 필드 집합입니다.

쌀. 1. 테이블의 개체 이름

데이터베이스 관리 시스템(DBMS)은 데이터 작업에 사용됩니다. DBMS의 주요 기능:

데이터 정의(데이터베이스 구조 설명)

데이터 처리;

데이터 관리.

데이터베이스 구조의 개발은 데이터베이스를 설계할 때 해결해야 할 가장 중요한 작업입니다. 데이터베이스의 구조(테이블의 집합, 형식 및 관계)는 데이터베이스를 사용하여 애플리케이션을 만들 때 주요 디자인 결정 중 하나입니다. 개발자가 만든 데이터베이스 구조는 DBMS 데이터 정의 언어로 기술됩니다.

모든 DBMS를 사용하면 데이터에 대해 다음 작업을 수행할 수 있습니다.

테이블에 레코드 추가

테이블에서 레코드 제거

데이터베이스 테이블에 있는 하나 이상의 레코드에서 일부 필드의 값을 업데이트합니다.

지정된 조건을 충족하는 하나 이상의 레코드를 검색합니다.

이러한 작업을 수행하기 위해 쿼리 메커니즘이 사용됩니다. 쿼리를 실행한 결과는 특정 기준에 따라 선택된 레코드 집합이거나 테이블의 변경 사항입니다. 데이터베이스에 대한 쿼리는 이 목적을 위해 특별히 만들어진 언어, 즉 "구조적 쿼리 언어"(SQL - 구조적 쿼리 언어)로 구성됩니다.

데이터 거버넌스는 일반적으로 무단 액세스로부터 데이터를 보호하고, 다중 사용자 데이터 처리를 지원하고, 데이터 무결성과 일관성을 보장하는 것을 의미합니다.

데이터 모델은 데이터 구조 및 처리 작업의 집합입니다. 데이터 모델을 사용하면 개체의 구조와 개체 간에 설정된 관계를 시각적으로 표현할 수 있습니다. 데이터 모델 용어는 "데이터 요소"와 "바인딩 규칙"이라는 개념이 특징입니다. 데이터 요소는 모든 데이터 집합을 설명하고 연관 규칙은 데이터 요소를 상호 연결하기 위한 알고리즘을 정의합니다. 현재까지 다양한 데이터 모델이 개발되었지만 실제로는 세 가지 주요 모델이 사용됩니다. 계층적, 네트워크 및 관계형 데이터 모델이 있습니다. 따라서 그들은 계층적, 네트워크 및 관계형 DBMS에 대해 이야기합니다.

O 계층적 데이터 모델. 계층적으로 구성된 데이터는 일상생활에서 매우 흔합니다. 예를 들어, 고등 교육 기관의 구조는 다단계 계층 구조입니다. 계층적(트리) 데이터베이스는 순서가 지정된 요소 집합으로 구성됩니다. 이 모델에서는 초기 요소가 다른 요소를 생성하고 이러한 요소가 차례로 추가 요소를 생성합니다. 각 하위 요소에는 상위 요소가 하나만 있습니다.

조직 구조, 자료 목록, 책의 목차, 프로젝트 계획 및 기타 다양한 데이터 세트를 계층적 형태로 표시할 수 있습니다. 조상과 자손 사이의 연결 무결성은 자동으로 유지됩니다. 기본 규칙: 부모 없이는 자식이 존재할 수 없습니다.

이 모델의 가장 큰 단점은 설계 중에 데이터베이스의 기반이었던 계층 구조를 사용해야 한다는 것입니다. 데이터를 지속적으로 재구성해야 하는 필요성(종종 재구성이 불가능함)으로 인해 보다 일반적인 모델, 즉 네트워크 모델이 생성되었습니다.

O 네트워크 데이터 모델. 데이터 구성에 대한 네트워크 접근 방식은 계층적 접근 방식의 확장입니다. 이 모델은 생성된 각 요소가 둘 이상의 생성 요소를 가질 수 있다는 점에서 계층적 모델과 다릅니다. ■

네트워크 데이터베이스는 해당 조직의 데이터에 내재된 모든 종류의 관계를 직접적으로 나타낼 수 있기 때문에 이 데이터를 다양한 방식으로 탐색, 탐색 및 쿼리할 수 있습니다. 즉, 네트워크 모델이 하나의 계층에만 국한되지 않습니다. 그러나 네트워크 데이터베이스에 요청하려면 구조를 깊이 파고들어(이 데이터베이스의 스키마를 가지고 있어야 함) 데이터베이스를 탐색하기 위한 메커니즘을 개발해야 하는데, 이는 이 데이터베이스 모델의 중요한 단점입니다. .

O 관계형 데이터 모델. 관계형 데이터 모델의 기본 아이디어는 모든 데이터 세트를 2차원 테이블로 표현하는 것입니다. 가장 간단한 형태의 관계형 모델은 단일 2차원 테이블을 설명하지만, 대부분의 경우 모델은 여러 다른 테이블 간의 구조와 관계를 설명합니다.

관계형 데이터 모델

따라서 정보시스템의 목적은 정보처리이다. 데이터~에 대한 사물현실 세계를 고려하여 사이객체 사이. 데이터베이스 이론에서는 데이터를 흔히 데이터라고 부릅니다. 속성 및사물 - 엔터티.객체, 속성, 연결은 I.S.의 기본 개념입니다.

객체(또는 본질)은 존재하는 것입니다. 구별 가능,즉, 하나의 유사한 객체를 다른 유사한 객체와 구별하는 이름과 방법이 있는 객체를 "무언가"라고 부를 수 있습니다. 예를 들어 모든 학교는 객체입니다. 객체는 사람, 학교 수업, 회사, 합금, 화합물 등이기도 합니다. 객체는 물질적 객체일 뿐만 아니라 현실 세계를 반영하는 보다 추상적인 개념일 수도 있습니다. 예를 들어 이벤트, 지역, 예술 작품 등이 있습니다. 서적(인쇄물이 아닌 작품), 연극 공연, 영화; 법적 규범, 철학적 이론 등

기인하다(또는 주어진)- 이것은 특정 개체를 특징짓고 개체의 특정 인스턴스에 대해 특정 숫자, 텍스트 또는 기타 값을 취하는 특정 표시기입니다. 정보 시스템은 특정 주제 영역과 관련하여 설계된 객체 세트로 작동합니다. 속성 값(데이터) 특정 개체의. 예를 들어, 학교에서 객체 집합으로 수업을 들어보겠습니다. 한 학급의 학생 수는 숫자 값을 갖는 기준입니다(한 학급은 28명, 다른 학급은 32명). 클래스 이름은 텍스트 값을 취하는 주어진 이름입니다(하나는 10A, 다른 하나는 9B 등).

관계형 데이터베이스의 개발은 60년대 후반에 시작되었으며, 이때 논의된 첫 번째 작품이 등장했습니다. 데이터베이스를 설계할 때 데이터를 표현하는 친숙하고 자연스러운 방법(소위 표 형식 데이터 논리 모델)을 사용할 수 있는 가능성.

관계형 데이터베이스 이론의 창시자는 1970년 6월 6일에 기사를 발표한 IBM 직원 E. Codd 박사로 간주됩니다. 대규모 공유 데이터 뱅크를 위한 데이터의 관계형 모델(대규모 집단 데이터 뱅크를 위한 관계형 데이터 모델). 이 기사에서는 "관계형 데이터 모델"이라는 용어를 처음으로 사용했습니다. 70년대 미국에서 E. Codd 박사가 개발한 관계형 데이터베이스 이론은 데이터를 효과적으로 구성하기 위한 규칙을 설명하는 강력한 수학적 기반을 갖추고 있습니다. E. Codd가 개발한 이론적 틀은 데이터베이스 설계 이론 개발의 기초가 되었습니다.

교육을 받은 수학자 E. Codd는 데이터 처리를 위해 집합론(합집합, 교차점, 차이, 데카르트 곱) 장치를 사용할 것을 제안했습니다. 그는 모든 데이터 세트가 수학에서 "관계"로 알려진 특별한 종류의 2차원 테이블 형태로 표현될 수 있음을 증명했습니다.

관계형데이터베이스는 모든 데이터가 데이터 값의 직사각형 테이블 형태로 사용자에게 제공되고 데이터베이스에 대한 모든 작업이 테이블을 사용한 조작으로 축소되는 데이터베이스로 간주됩니다.

테이블은 다음과 같이 구성됩니다. 열(필드)그리고 라인(레코드);데이터베이스 내에서 고유한 이름을 가집니다. 테이블반영하다 객체 유형현실 세계 (실재),그리고 그녀 각자 문자열은 특정 개체입니다.각 테이블 열은 개체의 특정 속성에 대한 값 모음입니다. 값은 개체 속성에 대해 가능한 모든 값 집합에서 선택됩니다. 도메인.

가장 일반적인 형태에서 도메인은 도메인의 요소가 속하는 일부 기본 데이터 유형과 데이터 요소에 적용되는 임의의 부울 표현식을 지정하여 정의됩니다. 데이터 항목에 대한 부울 조건을 평가하고 결과가 true인 경우 해당 항목은 도메인에 속합니다. 가장 간단한 경우, 도메인은 동일한 유형의 유효한 잠재적 값 집합으로 정의됩니다. 예를 들어, 모든 직원의 생년월일을 모아놓은 것이 '생년월일 도메인'이 되고, 모든 직원의 이름이 '직원 이름 도메인'이 됩니다. 생년월일 도메인에는 특정 시점 데이터 유형이 있어야 하고, 직원 이름 도메인에는 문자 데이터 유형이 있어야 합니다.

두 값이 동일한 도메인에서 나온 경우 두 값을 비교할 수 있습니다. 예를 들어 생년월일 도메인에서 두 개의 값을 가져오면 이를 비교하여 어느 직원이 나이가 더 많은지 확인할 수 있습니다. 값을 다른 도메인에서 가져온 경우 비교가 허용되지 않습니다. 왜냐하면 아마도 의미가 없기 때문입니다. 예를 들어, 직원의 이름과 생년월일을 비교해 보면 확실한 것은 없습니다.

각 열(필드)에는 이름이 있으며 일반적으로 테이블 상단에 기록됩니다. 특정 DBMS 내에서 테이블을 설계할 때 각 필드에 대해 해당 테이블을 선택할 수 있습니다. 유형,즉, 표시 규칙 세트를 정의하고 이 필드에 저장된 데이터에 대해 수행할 수 있는 작업을 결정합니다. 유형 세트는 DBMS마다 다를 수 있습니다.

필드 이름은 테이블에서 고유해야 하지만, 서로 다른 테이블에 동일한 이름의 필드가 있을 수 있습니다. 모든 테이블에는 하나 이상의 필드가 있어야 합니다. 필드는 생성 시 이름이 표시된 순서에 따라 테이블에 배치됩니다. 필드와 달리 문자열에는 이름이 없습니다. 테이블에서의 순서는 정의되지 않으며 그 수는 논리적으로 무제한입니다.

테이블의 행은 순서가 지정되어 있지 않으므로 위치에 따라 행을 선택할 수 없습니다. 행 중에 "첫 번째", "두 번째" 또는 "마지막"이 없습니다. 모든 테이블에는 하나 이상의 열이 있으며, 그 값은 각 행을 고유하게 식별합니다. 이러한 열(또는 열의 조합)을 기본 키. 테이블의 숫자 레코드에 인공 필드가 도입되는 경우가 많습니다. 예를 들어, 이러한 필드는 테이블에 있는 각 레코드의 고유성을 보장할 수 있는 순서 필드일 수 있습니다. 키에는 다음 속성이 있어야 합니다.

독창성.주어진 시간에 두 개의 서로 다른 관계 튜플은 키에 포함된 속성 조합에 대해 동일한 값을 갖지 않습니다. 즉, 동일한 식별 번호나 여권 번호를 가진 두 개의 행이 테이블에 있을 수 없습니다.

미니멀리즘.키에 포함된 어떤 속성도 고유성을 위반하지 않고는 키에서 제외될 수 없습니다. 즉, 여권번호와 주민등록번호가 모두 포함된 키를 생성해서는 안 된다는 의미입니다. 튜플을 고유하게 식별하려면 이러한 속성 중 하나를 사용하는 것으로 충분합니다. 또한 키에 고유하지 않은 속성을 포함해서는 안 됩니다. 즉, 식별 번호와 직원 이름의 조합을 키로 사용하는 것이 금지됩니다. 키에서 직원 이름을 제외하면 각 행을 계속 고유하게 식별할 수 있습니다.

모든 관계에는 최소한 하나의 가능한 키가 있습니다. 모든 속성의 전체가 고유성 조건을 충족하기 때문입니다. 이는 관계의 정의 자체에서 따릅니다.

가능한 키 중 하나가 무작위로 선택됩니다. 기본 키로.나머지 가능한 키는 다음과 같이 사용됩니다. 대체 키.예를 들어, 식별 번호를 기본 키로 선택하면 여권 번호가 대체 키가 됩니다.

테이블의 관계는 관계형 데이터 모델의 가장 중요한 요소입니다. 지원됩니다 외래 키.

관계형 데이터베이스 모델을 설명할 때 설명 수준(이론 또는 실제)과 시스템(Access, SQL Server, dBase)에 따라 동일한 개념에 대해 다른 용어가 사용되는 경우가 많습니다. 테이블에 2.3에는 사용된 용어가 요약되어 있습니다.

표 2.3.데이터베이스 용어

데이터베이스 이론____________ 관계형 데이터베이스_________ SQL Server __________

관계 테이블 테이블

튜플 레코드 행

속성필드_______________열

관계형 데이터베이스

관계형 데이터베이스데이터베이스에 저장되어야 하는 모든 정보를 포함하는 관계 집합입니다. 즉, 데이터베이스는 모든 데이터를 저장하는 데 필요한 테이블 집합을 나타냅니다. 관계형 데이터베이스의 테이블은 논리적으로 서로 관련되어 있습니다. 일반적으로 관계형 데이터베이스를 설계하기 위한 요구 사항은 몇 가지 규칙으로 축소될 수 있습니다.

О 각 테이블은 데이터베이스에서 고유한 이름을 가지며 동일한 유형의 행으로 구성됩니다.

O 각 테이블은 고정된 개수의 열과 값으로 구성됩니다. 단일 행 열에 둘 이상의 값을 저장할 수 없습니다. 예를 들어, 저자, 발행일, 발행부수 등에 대한 정보가 포함된 테이블이 있는 경우 저자 이름이 포함된 열에는 성이 두 개 이상 포함될 수 없습니다. 두 명 이상의 저자가 책을 쓴 경우 추가 표를 사용해야 합니다.

O 어떤 시점에도 테이블에는 서로 중복되는 두 개의 행이 없습니다. 테이블의 행을 고유하게 식별하려면 행의 값이 하나 이상 달라야 합니다.

О 각 열에는 테이블 내에서 고유한 이름이 할당됩니다. 이 열에 동일한 값(날짜, 성, 전화번호, 금액 등)이 배치되도록 특정 데이터 유형이 설정됩니다.

O 데이터베이스의 완전한 정보 내용은 데이터 자체의 명시적 값으로 표현되며, 이것이 유일한 표현 방법입니다. 예를 들어, 테이블 간의 관계는 관계를 인위적으로 정의하는 포인터를 기반으로 하는 것이 아니라 해당 열에 저장된 데이터를 기반으로 합니다.

О 데이터 처리 시 테이블의 모든 행이나 열에 자유롭게 접근할 수 있습니다. 테이블에 저장된 값은 데이터에 액세스하는 순서에 아무런 제한을 두지 않습니다. 열에 대한 설명,

관계형 데이터베이스키라고 하는 공유 데이터 필드를 통해 상호 연결된 여러 "플랫"(2차원) 테이블에 정보를 저장할 수 있습니다. 관계형 데이터베이스는 즉석 보고서(일반적으로 SQL을 통해)에 대한 보다 쉬운 액세스를 제공하고 중복 정보를 제거하여 향상된 데이터 신뢰성과 무결성을 제공합니다.

간단한 데이터베이스가 무엇인지는 누구나 알고 있습니다. 전화번호부, 제품 카탈로그, 사전은 모두 데이터베이스입니다. 플랫 파일, 계층적 또는 네트워크 구조, 관계형 테이블 등 구조화되거나 다른 방법으로 구성될 수 있습니다. 대부분의 경우 조직에서는 관계형 데이터베이스를 사용하여 정보를 저장합니다.

데이터베이스는 스프레드시트와 유사하게 열과 행으로 구성된 테이블 모음입니다. 각 줄에는 하나의 항목이 포함됩니다. 각 열에는 모든 행의 특정 데이터 조각에 대한 모든 인스턴스가 포함됩니다. 예를 들어, 일반적인 전화번호부는 전화번호, 발신자 이름, 발신자 주소가 포함된 열로 구성됩니다. 각 줄에는 번호, 이름, 주소가 포함되어 있습니다. 이 간단한 형식은 2차원 특성과 모든 데이터가 단일 파일에 저장된다는 사실로 인해 플랫 파일이라고 합니다.

이상적으로 모든 데이터베이스에는 고유 식별자 또는 키가 있는 열이 하나 이상 있습니다. 전화번호부를 생각해 보세요. 발신자 John Smith에 대한 항목이 여러 개 있을 수 있지만 전화번호는 반복되지 않습니다. 전화번호가 열쇠 역할을 합니다.

실제로 모든 것이 그렇게 간단하지 않습니다. 동일한 전화번호를 사용하는 두 명 이상의 사람이 전화번호부에 별도로 나열되어 전화번호가 두 개 이상의 위치에 표시되어 고유하지 않은 여러 키 문자열이 있을 수 있습니다.

데이터가 문제를 만든다

가장 간단한 데이터베이스에서는 각 레코드가 하나의 행을 차지합니다. 즉, 전화 회사는 각 회계 정보에 대해 별도의 열을 만들어야 합니다. 즉, 필요한 추가 가입자 수에 따라 "페어링된" 전화기의 두 번째 가입자용 하나, 세 번째 가입자용 또 다른 하나 등입니다.

이는 다른 곳에서는 사용되지 않더라도 데이터베이스의 모든 레코드에 이러한 추가 열이 모두 있어야 함을 의미합니다. 이는 또한 회사가 새로운 서비스를 제공할 때마다 데이터베이스를 재구성해야 함을 의미합니다. 톤 다이얼링 서비스가 도입되고 새 열이 추가됨에 따라 데이터베이스 구조가 변경됩니다. 발신자 ID, 통화 대기 등에 대한 지원이 도입되었으며 데이터베이스가 계속해서 재구축됩니다.

1960년대에는 대기업만이 데이터 관리를 위해 컴퓨터를 구입할 여유가 있었습니다. 더욱이 정적 데이터 모델과 Cobol과 같은 절차적 프로그래밍 언어로 구축된 데이터베이스는 유지 관리 비용이 많이 들고 항상 신뢰할 수는 없습니다. 절차적 언어는 컴퓨터가 작업을 완료하기 위해 거쳐야 하는 일련의 이벤트를 정의합니다. 이러한 시퀀스를 프로그래밍하는 것은 어려웠습니다. 특히 데이터베이스 구조를 변경하거나 새로운 유형의 보고서를 생성해야 하는 경우 더욱 그렇습니다.

강력한 연결

IBM San Jose Research Laboratory의 연구원인 Edgar Codd는 그의 주요 저작인 ACM의 통신을 위한 데이터 관계형 모델(A Relational Model of Data for Large Shared Data Banks, 1970년 6월)에서 관계형 데이터베이스의 개념을 기본적으로 만들고 설명했습니다.

Codd는 개발자가 데이터베이스를 별도의 관련 테이블로 분할하여 원본 데이터베이스와 동일한 모양을 유지하면서 성능을 향상시킬 수 있는 모델을 제안했습니다. 그 이후로 Codd는 관계형 데이터베이스 산업의 창시자로 여겨져 왔습니다.

이 모델은 다음과 같이 작동합니다. 전화 회사는 전화번호를 기본 키로 사용하여 마스터 테이블을 생성하고 이를 다른 기본 고객 정보와 함께 저장할 수 있습니다. 회사에서는 이 기본 키와 발신자 ID 지원, 통화 대기 등의 추가 서비스에 대한 열이 포함된 별도의 테이블을 정의할 수 있습니다. 그녀는 또한 각 항목이 전화번호와 통화 요금 데이터로 구성되는 통화 요금을 제어하기 위해 또 다른 테이블을 생성할 수도 있습니다.

최종 사용자는 데이터가 다른 테이블에 저장되어 있더라도 원하는 정보를 원하는 방식으로 쉽게 얻을 수 있습니다. 따라서 전화회사 고객센터 담당자는 가입자의 요금정보, 특별서비스 현황, 마지막 결제일자 등을 한 화면에 표시할 수 있다.

Codd는 관계형 데이터베이스에 대한 12가지 규칙을 공식화했는데, 그 중 대부분은 데이터 무결성, 업데이트 및 액세스와 관련되어 있습니다. 처음 두 개는 기술적인 지식이 없는 사용자에게도 상당히 명확합니다.

정보 규칙인 규칙 1은 관계형 데이터베이스의 모든 정보가 테이블에 저장된 값의 집합으로 표시됨을 지정합니다.

규칙 2인 액세스 보장 규칙은 테이블 이름, 기본 키 및 열 이름을 사용하여 관계형 데이터베이스의 모든 데이터 요소에 액세스할 수 있음을 지정합니다. 즉, 모든 데이터는 테이블에 저장되며, 필요한 데이터 항목이 위치한 테이블 이름, 기본 키, 컬럼만 알면 언제든지 조회할 수 있다.

Codd 작업의 핵심은 관계형 데이터베이스에 절차적 프로그래밍 언어보다는 선언적 프로그래밍 언어를 사용하도록 제안했다는 것입니다. SQL(Structured Query Language)과 같은 선언적 언어는 사용자에게 기본적으로 "특정 기준 세트를 충족하는 모든 레코드에서 다음 데이터 비트를 검색하고 싶습니다"라고 컴퓨터에 말할 수 있는 기능을 제공합니다. 컴퓨터 자체는 데이터베이스에서 이 정보를 얻기 위해 어떤 단계를 수행해야 하는지 "이해"합니다.

활발하게 사용되는 수많은 데이터베이스로 작업하기 위해 Oracle, Sybase, IBM, Informix 및 Microsoft와 같은 평판이 좋은 제조업체에서 만든 관계형 데이터베이스 관리 소프트웨어 시스템이 사용됩니다.

대부분의 SQL 구현은 특정 근사치 내에서만 상호 운용 가능하다고 할 수 있지만 국제 표준으로 승인된 이 메커니즘을 사용하면 복잡한 데이터베이스 기반 시스템을 만들 수 있습니다. 웹 사이트와 관계형 데이터베이스 간의 프로그래밍하기 쉬운 인터페이스를 통해 최종 사용자는 새로운 기록을 추가하고, 기존 기록을 업데이트하고, 온라인 거래 및 온라인 도서관 카탈로그 액세스와 같은 다양한 서비스에 대한 보고서를 생성할 수 있습니다.

관계형 모델

관계형 데이터베이스는 특정 키(이 경우 PhoneNumber 필드)를 통해 서로 관련된 테이블 집합을 사용합니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: