데이터베이스 빌딩 블록 이해
모든 집에는 부엌,적어도 하나의 욕실과 침실,현관,배관 시스템 및 기타 것들이 있습니다. 이러한 것들은 다른 집을 생산하기 위해 다른 방법과 다른 숫자로 배열 될 수 있습니다. 그래서 그것은 데이터베이스와 함께 있습니다. 모든 데이타베이스에는 공유지안에 있는 어느 것 있는다. 이 게시물에서,나는 모든 데이터베이스를 구성하는 빌딩 블록을 소개하고 그들이 조립하는 방법을 보여줍니다. 또한 빌딩 블록을 사용할 때 따라야 할 세 가지 규칙에 대해 설명합니다.
이 게시물에 제시된 자료는 데이터베이스와 상호 작용의 모든 종류의 사람에게 가치가 있어야한다,그러나 그것은 매우 초등학교 수준이다. 데이터베이스 디자인에 대한보다 포괄적 인 논의는 데이터베이스 디자인에 대한 직관적 인 접근 방식 인 내 기사를 참조하십시오.
미니 세계.
우리는 빌딩 블록에 도착하기 전에,의는 우리가 빌딩 블록을 이해하는 데 도움이 될 것입니다 때문에 용어 미니 세계를 이해하기 위해 잠시 시간을내어 보자.
데이터베이스는 미니 세계의 모델입니다. 미니 세계는 의료 사무실,소매업,도서관 또는 기타 여러 가지가 될 수 있습니다. 우리가 미니 세계에 대한 정보를 원할 때,우리는 그것을 모델링하는 데이터베이스로 향합니다.
의 당신이 약속을 위해 의사에게 갈 가정 해 봅시다. 당신은 약속이 접수 말할 때,접수 모델(데이터베이스)에서 약속을 찾기 위해 노력할 것입니다. 모형이 그것의 소형 세계에 현재이라고 지키면,너는 약속이 있는 것을 확인하 일 것인다. 마찬가지로,비즈니스가 지난 6 개월 동안 대량 고객 중 어느 고객이 주문하지 않았는지 알고 싶다면 미니 월드를 최신 상태로 유지하면 미니 월드의 모델로 전환 할 수 있습니다.
미니 월드는 전체 비즈니스이거나 은행 지점 또는 영업 부서와 같은 비즈니스의 일부일 수 있습니다.
데이터베이스 설계자가 가장 먼저 하는 일은 미니세계를 이해하는 것이다. 그리고 미니 세계를 이해하기 위해 디자이너는 데이터베이스를 조립할 빌딩 블록을 식별하는 것으로 시작합니다.
빌딩 블록
1. 엔티티
엔티티는 미니 세계에 존재하고 우리에게 관심있는 특성을 가진 것입니다. 예를 들어,학교 등록 미니 세계에는 학생 엔티티,코스 엔티티,강사 엔티티 등이 있습니다. 학생들은 이름,주소,성적 증명서 및 기타 관심있는 특성을 가지고 있습니다. 코스에는 제목,학점,수수료 등이 있습니다. 그리고 강사는 이름,주소,자격 등을 가지고 있습니다. 엔티티는 고유합니다. 각 학생은 고유 한 엔티티입니다;존과 메리 등이있다. 각 코스는 고유 한 엔티티이며 각 강사는 고유 한 엔티티입니다.
엔티티는 물리적 일 필요는 없습니다. 등록은 만지거나 보거나 냄새를 맡을 수는 없지만 학교 등록 미니 월드에 존재하며 등록 날짜,등록한 학생,등록한 과정 및 최종 성적과 같이 우리가 관심을 갖는 특성을 가지고 있습니다. 판매는 물리적 구성 요소가 없지만 당사가 관심을 갖는 특성(판매 날짜,고객,영업 사원,주문 합계,배송 방법,지불 조건 등)을 갖는 엔티티의 다른 예입니다.).
2. 엔티티 유형
동일한 유형의 엔티티는 하나의 엔티티 유형에 속합니다. 엔터티 형식은 해당 형식의 엔터티 집합입니다. 학생 엔터티 유형은 모든 학생의 집합입니다. 강좌 엔티티 유형은 모든 강좌의 집합이고 교수자 엔티티 유형은 모든 강좌의 집합입니다.
엔티티 유형은이 게시물에서 가장 중요한 개념입니다. 그들은 데이터베이스의 테이블이 됩니다.
3. 속성
엔티티의 속성은 우리가 관심을 갖는 해당 엔티티의 특성입니다. 이미 언급했듯이 학생의 속성에는 이름,주소,평점 등이 포함됩니다. 코스에는 이름,학점,그들이 속한 부서 등이 있습니다. 그리고 다른 엔티티 유형과 함께.
빌딩 블록 조립
이러한 빌딩 블록은 데이터베이스에 어떻게 표시됩니까? 각 엔터티 유형은 데이터베이스의 테이블로 표시됩니다. 이 테이블에서 개별 행은 고유 엔터티이고 열은 특성입니다. 다음은 신용 카드 엔터티 유형을 나타내는 테이블의 예입니다:빌딩 블록 규칙 빌딩 블록으로 작업할 때는 데이터베이스 객체로 작업하기 쉽도록 할 뿐만 아니라 데이터 이상을 방지하는 특정 규칙을 따르는 것이 중요합니다(데이터 이상은 이 게시물의 범위를 벗어나지만 내 기사인 데이터베이스 디자인에 대한 직관적인 접근법에서 자세히 설명합니다).
규칙 1:각 테이블은 하나의 엔티티 유형 만 나타내야합니다.
위의 학교 등록 미니 월드의 데이터베이스에는 다음 표가 필요합니다: 학생,코스,강사,등록 및 기타,해당 미니 세계에서 식별 된 각 엔티티 유형에 대해 하나씩. 의료 사무실 미니 세계의 데이터베이스에는 의사 테이블,환자 테이블,약속 테이블,약물 테이블 등이 필요합니다. 각 엔티티 유형에 대해 하나의 테이블.
이 규칙에는 예외가 있습니다. 준비,여기에 뇌 트위스터 온다: 두 엔티티 유형이 동일한 특성을 공유하고 엔티티 유형 중 하나의 엔티티가 다른 엔티티 유형의 엔티티(하나의 엔티티가 두 엔티티 유형의 멤버 임)인 경우 두 엔티티 유형을 하나의 테이블에 나타낼 수 있습니다. 고문은 교수이며 동일한 속성(교수/고문 이름,교수/고문 자격 및 기타)을 가지고 있기 때문에 교수 엔티티 유형과 어드바이저 엔티티 유형을 모두 하나의 테이블에 나타낼 수 있습니다. 그리고 다시: 모든 하위 폴더 엔터티도 폴더 엔터티이며 동일한 특성(폴더 제목,폴더 크기,폴더의 항목 수,상위 폴더 등)을 공유하므로 폴더 엔터티 형식과 하위 폴더 엔터티 유형을 모두 하나의 테이블에 나타낼 수 있습니다. 직원 및 관리자 엔터티는 동일한 속성을 가지며 관리자 엔터티도 직원 엔터티이기 때문에 직원 및 관리자 엔터티 유형을 모두 동일한 테이블에 나타낼 수 있습니다. 이 규칙에 대한 예외는 다른 블로그에서 더 자세히 조사됩니다.
그런데,이 규칙이 테이블 이름을 지정하는 적절한 방법이 단수 인 이유입니다. 테이블은 단일 엔터티 유형을 나타냅니다.
규칙 2:모든 열은 원자 적이어야합니다.
데이터베이스 테이블에 도시 및 주에 대한 열이 있지만 주소에 대한 열이 하나만 있는 이유를 궁금해 한 적이 있습니까? 어쩌면 당신은 왜 주소 번호에 대한 열,주소 거리 유형(넓은 길)에 대한 또 다른 열이없는 이유를 궁금해했을 것입니다.,도로,등.),아파트 번호에 대한 또 다른,등등. 왜 이러한 열은 일반적으로 모두 하나의 주소 열로 함께 일괄 처리됩니까? 이 모든 질문에 대한 답은 원자성에 대한 이해에 있습니다.
우리가 열이 원자라고 말할 때,우리는 더 세분화 될 수없고 여전히 의미를 유지한다는 것을 의미합니다. 열을 만들어 도시 및 주와 함께 거리 주소를 포함하는 메가 주소라고 부르겠습니다.그러나 해당 열의 일부(도시별 검색,주별 정렬,거리 주소 부분만 출력하는 등)에 대해 검색,정렬 및 기타 작업을 수행하기 때문에 해당 열의 세분화에는 고유 한 의미(거리 주소,도시 및 주)가 있다고 말할 수 있습니다. 그래서 메가 주소는 원자 적이 아닙니다. 더 나은 테이블이 될 것입니다:
이제 거리 주소 열은 어떻습니까? 거리 번호,거리 이름 및 거리 유형으로 더 세분화해야합니까? 우리가 그것의 구획에 뜻깊은 아무거나를 하지 않을 한-우리가 거리 수에 분류하지 않으면,모든 도로 또는 도로를 위해 수색,등-그때 란은 이다 것과 같이 원자 이다. 그러나 우리가 그 일을한다면,그 열은 원자 적이 지 않고 설명 된대로 세분화해야합니다.
규칙 3:열을 다중값으로 지정할 수 없습니다.
일부 엔터티 형식에는 다중값된 특성 또는 둘 이상의 값을 가질 수 있는 특성이 포함됩니다. 코스 테이블에는 필수 구성 요소라는 특성이 있을 수 있습니다. 코스 엔터티에 둘 이상의 필수 구성 요소가 있을 수 있으므로 필수 구성 요소 특성은 다중값 특성입니다. 코스 엔터티 형식에 대한 테이블을 만들 때는 필수 구성 요소 특성을 테이블의 열로 나타낼 수 없습니다. 다중값 속성을 적절하게 표현하려면 다른 테이블을 만들고 일대다 관계를 사용하여 원래 테이블과 연결해야 합니다.: 데이터베이스 설계에 대한 직관적인 접근 방식). 다중값 속성의 다른 예로는 직원의 부양 가족,의사의 자격 등이 있습니다.
규칙 3 은 주어진 엔티티(테이블의 행)에 대해 각 열에 하나의 값만있을 수 있다고 말합니다.
요약
이 게시물은 데이터베이스가 모델링하는 비즈니스 또는 기타 환경의 측면으로 미니 세계의 개념을 도입했습니다. 이 게시물은 또한 데이터베이스 테이블이 행이 동일한 유형의 개별 엔티티를 보유하고 열이 해당 엔티티의 속성을 나타내는 단일 엔티티 유형을 나타내는 것으로 설명했습니다. 테이블에 관한 세 가지 규칙이 도입되었습니다. 규칙 1 에는 테이블이 단일 엔터티 형식을 나타내야 한다고 명시되어 있습니다. 규칙의 예외는 두 엔터티 형식이 동일한 특성을 공유하고 한 엔터티 형식의 엔터티가 다른 엔터티 형식의 멤버인 경우입니다. 이 경우 두 엔티티 유형을 동일한 테이블에 나타낼 수 있습니다. 규칙 2 는 테이블의 모든 열이 원자 적이어야하므로 열을 세분화 할 수 없으며 미니 세계에서 의미를 유지할 수 없음을 의미합니다. 마지막으로 규칙 3 은 테이블의 열을 다중값으로 지정할 수 없으며,이는 지정된 엔터티(테이블의 행)에 대해 열당 하나의 값만 있을 수 있음을 의미합니다.
즐기십시오!2325>
Leave a Reply