2013-12-18 2 views
0

데이터베이스를 수정하려고하지만 ER 모델을 논리적 모델로 변환하는 방법에 어려움을 겪고 있습니다.ER 모델을 논리적 모델로 변환

ER 다이어그램을 그릴 수는 있지만 논리적 모델로 변환 할 수 없습니다. 제발 저를 도와 줄 수 있습니까?

예 :

사람은 하나 이상의 자동차를 소유해야합니다. 자동차에는 정확히 한 명의 소유자가 있어야합니다. 나는 이것이 [1 : M] [m : m]이 될거라는 것을 이해하지만 누군가가 테이블로 번역하는 방법을 도와 줄 수 있습니까?

감사합니다.

답변

1

일반적으로 ERD를 만들어 논리적 모델을 나타냅니다. 그런 다음 DDL을 생성하거나 구성하여 실제 모델을 작성합니다. 물리적 모델은 데이터베이스 이름, 인덱스 등과 같은 정보를 더 많이 지정합니다. 반면 논리적 모델은 테이블, 열 이름, 비즈니스 규칙 등에 초점을 맞 춥니 다. 적어도 이것은 정보 공학 방법론에서 제시하는 접근 방식입니다.

데이터 모델링을 잘하려면 테이블 디자인의 기초와 3 가지 기본 형식을 이해해야합니다. 이것은 논리적 측면을 다룰 것입니다. 물리적 측면에서는 구문을 제외하고 각 특정 데이터베이스에 대해 배워야하는 측면이 많이 있습니다. 대규모 프로젝트에서는 DBA에게 맡기는 것이 일반적입니다. 많은 도구가 개발을위한 시작점이되어야하는 첫 번째 자르기 DDL (Data Definition Language)을 작성하여 프로그래머를 지원할 수 있습니다. 그러나 생산 및보다 심각한 구현을 위해서는 DBA에 대한 지식이 중요 할 것입니다.

심각한 프로젝트에 참여하기 전에 데이터 모델링에 대한 책을 읽어 보시기 바랍니다. 여기서 저는 신속한 답을 제공하려고 노력할 것입니다.

Rule1-A: A person must own one or more cars. 
Rule1-B: A car must be owned by 1 person. 

규칙 1-A는 '있어야 함'부분 때문에 이상합니다. 그러나 그림으로 알 수 있듯이 2 개의 테이블이 있습니다. 사람은 1 명, 자동차는 1 명입니다.

사람과 자동차 사이에는 1-M 관계가 있으므로이 관계는 한쪽을 가리키는 여러면에있는 열을 가짐으로써 나타냅니다. 즉, Car 테이블에 Person 테이블의 키를 배치합니다. Car 테이블에 실제로 속하지 않으므로이 열은 외래 키라고합니다. 이제는 규칙에 "반드시 있어야"함을 의미하므로이 열에는 null이 없어야합니다. SQL Server에 대한

샘플 DDL :

참고 : IDENTITY의 사용은 물론 선택 사항입니다.

CREATE TABLE [dbo].[Person] 
(
    PersonID int PRIMARY KEY IDENTITY NOT NULL, 
    OtherPersonColumns varchar(50) NULL 
); 
go 
CREATE TABLE [dbo].[Car] 
(
    CarID int IDENTITY NOT NULL, 
    OtherCarAttributes varchar(50) NULL, 
    PersonID_FK INT NOT NULL, 
    CONSTRAINT PersonMustHaveCar 
    FOREIGN KEY (PersonID_FK) 
    REFERENCES Person(PersonId) 
); 

각 테이블을 만들려면 무엇이 필요합니까? 여기에 사람이 자동차를 소유하고 있어야한다는 '이상한'규칙 때문에 사람의 속성뿐만 아니라 자동차의 속성도 필요합니다.

관련 문제