다 대 다 관계 : Access의 예제, SQL. 다 - 대 - 다 관계를 만드는 방법?

모든 데이터베이스 (데이터베이스 관리 시스템)테이블 사이에는 몇 가지 유형의 관계가 있습니다. 그 중 일대일, 일대 다, 다 대일 관계 (일부는이 두 가지 유형을 하나로 식별하는 경향이 있음)와 다 대다 관계입니다. Access 나 SQL과 같은 다양한 DBMS에 대한 후자의 설명과 적용 예가이 기사에서 논의됩니다.

정의

다 대다 관계는 다음과 같이 정의됩니다.다른 하나의 모든 인스턴스의 엔티티 중 하나의 인스턴스 중 하나와 일치해야합니다. 즉, 첫 번째 (두 번째) 테이블의 각 필드는 두 번째 (첫 번째) 테이블의 모든 필드와 연관됩니다.

제시된 다이어그램은 이러한 관계의 본질을 명확하게 보여줍니다.

다 - 대 - 다 관계

다 대 다 통신은 언제 사용할 수 있습니까?

다 대다 관계의 예는 학생의그룹 및 교사 그룹. 각 학생들은 여러 명의 교수들로부터 배운다. 그들은 여러 명의 학생들에게 강의를한다. 그림은 일대 다 및 다 대다의 차이점을 보여줍니다.

다 대 다 관계를 만드는 법

많은 경우 대다수의 통신은대규모 데이터베이스의 생성, 작은 시범 사례는 대개 교육 목적으로 만 사용되며, 실제 사례에서는 데이터베이스의 엔티티가 많아지고 상호 관계가 더 많을수록 다 대다 관계에 자주 참조 될 가능성이 커집니다.

다 - 대 - 다 관계를 만드는 방법?

이 관계의 예는기사의 과정에 추가되었지만, 그것이 무엇인지를 이해하는 것뿐만 아니라 구현 방법을 이해하는 것이 중요합니다. 이 프로세스의 세부 사항은 작업을 위해 선택한 데이터베이스에 따라 달라 지지만 원칙은 모두를 위해 유지됩니다.

Microsoft Access

Microsoft의 Office 소프트웨어꽤 오랫동안 소프트웨어 시장에 알려졌다. 그것은 Worfd 텍스트 편집기, Excel 스프레드 시트 프로세서 및 나머지 "office"라인과 함께 제공됩니다. 액세스 ( "액세스", 문자 변환 - "액세스"라고 읽음)를 통해 "동료"와 따로 얻을 수 있습니다. 물론 라이선스 소프트웨어를 구입하는 것이 좋지만, 웹상에서 발견 할 수있는 많은 해적판을 일반 파일이나 급류 배포판 형태로 비법이 아닙니다. "Microsoft Access"는 휴대용 어셈블리에서도 사용할 수 있습니다. 소프트웨어를 오랫동안 자주 사용하지 않는 경우 설치 및 PC 작업의 특수 기술이 필요하지 않은 선택이 가장 적합합니다.

많은 예제 SQL

문맥에서 볼 때 "Microsoft Access"는데이터베이스 관리 시스템. 그리고 가장 인기있는 것 중 하나. 이것은 관계형입니다. 즉, 작업 과정에서 집합 이론 및 1 차 논리를 참조하는 논리 데이터 모델을 기반으로합니다. Access에서의 다 대다 (many-to-many) 통신 (설명 중에 예제가 제공됨)은 매우 간단하게 구현됩니다. 그것을 고려하십시오.

두 개의 테이블이 있습니다.

새로운 것을 발명하지 않기 위해서,이것은 학생들의 사례 인 다 - 대 - 다 관계를 설명하기위한 것입니다. 테이블 "학생"과 테이블 "교사"를 만들어야합니다. 첫 번째와 마찬가지로 두 번째에는 기본 키가 있습니다. 이 두 엔티티의 인스턴스를 결합하려면 하나 이상의 테이블이 필요하며 필드는 첫 번째 테이블과 두 번째 테이블의 키입니다.

다른 예를 생각해 보면 : 축구 선수와 팀 (각 팀마다 최소한 한 명의 선수가 경기를했고 각 팀마다 11 명의 선수가 있었음) 건물 통신의 본질은 바뀌지 않을 것입니다. 또한 세 개의 테이블이 필요합니다. 이 중 "Footballers"와 "Teams"를 주력으로 사용하고 중간 단계를 하나씩 수행합니다.

데이터 스키마

Microsoft Access 데이터베이스의 테이블 간 연결"데이터 스키마"탭을 사용하여 구현됩니다. 결과 패널은 필요한 모든 엔터티를 추가합니다 (이 경우 세 개의 테이블 모두). 메인 ( "Students"와 "Teachers")과 중간 테이블 사이의 일대 다 관계를 통해 다 대다 관계를 생성 할 수 있습니다. 이렇게하려면 해당 기본 키를 연결해야합니다.

액세스 예제에서 다 대다 (many-to-many) 통신

위의 그림은 "데이터 스키마"(Relathionships) 탭의 모양을 보여줍니다. 패널에 추가 된 테이블의 수는 무제한입니다. 위치는 사용자가 조절할 수 있습니다.

SQL

SQL에서 데이터베이스 설계 작업"액세스"보다 어렵습니다. maykrosoftovskih 제품이 완전히 사무실 환경에 적응되면, 거대한를 가지고 있으며, 각 릴리스와 모든 확장 기능을 업데이트하지만, 간단한 사용자 인터페이스, SQL 편리 동시에 - 별도의 비 절차 적 프로그래밍 언어이며, 다른 플랫폼에있는 당신은 데이터베이스로 작업 할 수 있습니다. 이 작업을위한 알려진 소프트웨어 : Oracle MySQL 및 DB2 (널리 사용되지만 그 종류는 아님). 각각의 언어에는 고유 한 미묘함과 뉘앙스가 있다는 사실에도 불구하고 SQL의 언어는 이들을 "통합"합니다. 적어도 그들 중 한 명과 함께 일하는 것을 배웠 으면, 다른 한 명과 대하는 것이 훨씬 쉬울 것입니다.

생성, 작성 및 직접 작용SQL의 기존 데이터베이스에서 특수 코드 또는 스크립트를 사용해야합니다. 그러나이 프로그래밍 언어의 예제가 아래에 제공 될 "다 대다 관계"섹션에 이미 도달 한 사람들은 적어도 SQL 언어 사용의 기본 명령과 원칙을 알고 있어야합니다.

다 대 다 관계를 만드는 원리

오랜 소개는 다소 당혹스럽고"안개", 그러나 사실 통신 구현 원칙은 동일하게 유지됩니다. 다 - 대 - 다 유형의 통신이 실제로 "Access"뿐만 아니라 SQL에서도 구현되기 위해서는 처음에 두 개의 기본 테이블과 하나의 중간 테이블을 작성해야합니다. 마찬가지로, 키의 경우도 있습니다 : 메인 엔티티는 메인 필드를 가지며, 각각의 필드는 링크 테이블에 쓰여집니다. 다 - 대다 SQL 통신이 근본적으로 "액세스"와 다른 것은 아닙니다.

많은 예에서 많은 것

통신 구현

스크립트에서 다 대다 (many-to-many) 통신을 구현하려면SQL은 기본 테이블의 원래 키와 유사한 외래 키 (외래 키)를 사용합니다. 작성 및 / 또는 편집 할 때 모든 필드와 함께 쓰여집니다.

다 대 다 통신의 역할

일반적으로 데이터베이스의 엔터티 간의 관계그것들은 저장된 정보의 무결성을 위해 사용됩니다. 모든 필요한 연결을 갖춘 잘 설계된 데이터베이스 만이 스토리지 보안과 작업 편의성을 보장하며 외부 영향 및 변경에 강하다는 구조입니다. 일반적으로 데이터베이스에 전체 조직, 회사 또는 회사에 대한 데이터가 포함되어 있으면 다른 인스턴스가있는 많은 엔터티가 포함됩니다.

SQL 다 대다 관계

그리고 이것은 데이터 스키마를 컴파일 할 때 ("Access") 스크립트를 작성하거나 ( "Oracle"또는 "DiBiTu"에서) 적어도 하나의 many-to-many 관계가있을 것입니다. "데이터베이스 조직"- DB King 과정을 수강하는 데 자주 사용되는 SQl의 예입니다.

왕의 데이터베이스

이 교육 데이터베이스는 King 's Corporation에 대한 정보입니다. 테이블 중 :

  • 회사 직원 - 코드가 들어 있습니다.직원, 그의 이름, 중간 이름 (외국 이름에 대한 오리엔테이션), 직원의 직위 및 직원 코드, 회사에 도착한 날짜, 연봉 및 수수료, 부서 코드 등이 포함됩니다.
  • 회사의 부서 - 테이블의 필드 사이에는 배치 코드뿐만 아니라 부서 코드와 코드 이름이 있습니다.
  • 배치의 코드와 도시 이름에 대한 정보를 입력하는 부서의 배치;
  • 회사의 직책 - 직무 코드와 정식 명칭의 두 필드가있는 작은 테이블;
  • 기업 - 구매자 분야 : 구매자의 주소, 도시 및 주, 우편 번호 및 지역 번호, 전화 번호, 관리자 서비스 구매자 코드, 구매자 신용 및 메모 (메모 및 메모)의 코드 및 이름;
  • 코드와 계약 날짜, 구매자 코드, 납기 및 계약의 총 금액을 포함하는 판매 계약;
  • 판매 행위 - 행위, 제품 코드, 가격, 구매 금액 및 총 구매 가격을 포함하는 행위 및 계약 코드의 코드.
  • 상품 - 제품의 코드와 이름;
  • 가격 - 제품 코드, 발표 가격, 가능한 최저 가격, 설립일 및 가격 취소 일.

작은 테이블은 두 개 또는 세 개의 필드가 없으며 일대일 또는 일대 다 관계로 최대 하나의 테이블과 연결됩니다.

다 대다 관계 유형

"직원"과 같은 척도 테이블기업 ","구매자 회사 ","판매 계약 "및"판매 행위 "는 여러 엔터티와 관련이 있으며, 일부는"중개자 "다 대 다 태도의 도움을받습니다. 왜냐하면 그것은 다른 테이블에서 빌린 많은 분야를 가지고 있으며 외부 키이기 때문입니다. 또한, "킹 코퍼레이션"의 데이터베이스의 규모와 상호 관계는 모든 관계가 불가분하게 상호 연관되어 서로 영향을 미치는 것과 같습니다. 그들 중 하나가 수반한다. 전체 데이터베이스의 struction의 무결성.

중요한 뉘앙스

many-to-many 연결을 구현할 때,어떤 DBMS가 사용되는지에 따라 관계가 만들어지는 키를 올바르게 결정하는 것이 매우 중요합니다. 잘못 구현 된 통신은 테이블의 무결성을 보장한다는 기본 목적을 달성하지 못하며 결과적으로 예상되는 편안함 대신에 사용자는 불편 함과 추가 문제를 받게됩니다. 특히 테이블을 채우고 데이터를 편집 할 때 나타납니다.

관련 뉴스