[포스코x코딩온] 스마트팩토리 4주차 회고 | 데이터모델링

이남웅·2023년 4월 13일
0

이번주부터는 C++를 마치고 데이터베이스 교육에 들어갔다. 처음에는 무작정 데이터베이스 프로그램을 바로 시작하지 않고 데이터베이스에 대한 이론적인 내용을 먼저 배우고 있다. 지금까지 배운 데이터베이스의 이론적인 내용을 정리하였다.

1. 데이터, 정보, 지식

데이터, 정보, 지식은 비슷비슷해 보이지만 서로 계층적인 구조를 갖는다.

데이터(Data): 관찰의 결과로 나타난 정략적 혹은 정석적인 값
정보(Information): 유의미하게 가공한 데이터
지식(Knowledge): 가치 있는 정보

지식이 존재할려면 정보가 모여야 하고, 그러한 정보는 데이터를 통해서 얻는다.

우리는 여기서 데이터베이스의 사용하는 이유를 찾을 수 있다.

2. ER Mode (ER Diagram)

ER Model은 개념적 모델링에 사용하는 모델로 1976년 Peter Chen이 개발하여 하였다.

개체(Entity): 단독으로 존재하는 객체
속성(Attribute): 개체의 특성을 나타내는 속성
관계(Relation): 개체간 관계

개체를 ER Diagram으로 표시할 때에는 직사각형으로 표시한다. 개체의 이름은 단순 명사를 사용해야하고, 구체적이고, 간결하고, 유일해야 한다.

이러한 개체는 데이터를 가진 여러 속성을 갖게 되는데, 속성은 타원을 사용하여 표시한다. 개체와 속성을 연결할 때에는 실선을 사용하여 연결한다. 속성의 이름은 단순 명사를 사용해야 하고 하나의 개체에서는 같은 속성은 사용하지 못한다. 이러한 속성중 다른 개체들과 중복되지 않는 고유한 값을 가진 속성이 존재한다면 그 속성의 이름은 밑줄을 표시한다. 이러한 속성중 더 이상 나누어 지지 않는 속성이면 단순 속성, 독립적인 의미를 갖도록 나눌 수 있는 속성은 복합속성이라고 한다. 만약 속성값중 하나의 값만 가진다면 단일 값 속성, 여러 값을 갖는 다면 다중 값 속성이라고 한다. 다중 값 속성은 타원 2개를 사용하여 표시한다.

개체가 여러개가 존재한다면 개체 사이의 연관성을 나타내는 관계를 사용할 수 있다. 관계는 마름모를 사용하여 표시하고 관계의 이름은 동사를 사용한다.

개체는 직사각형으로 표시
개체의 이름은 단순명사, 구체적, 간결하고, 유일하게

개체는 여러한 속성을 가짐
속성은 타원으로 표시하고, 개체와 실선으로 연결
개체의 이름은 단순명사, 중복 속성은 사용불가
다른 개체들과 중복되지 않는 고유한 속성은 밑줄 표시
단순 속성: 더 이상 나누어 지지 않는 속성, 복합속성: 독립적인 의미를 갖도록 나눌 수 있는 속성
단일 값 속성: 속성값중 하나의 값만 가지는 속성, 다중 값 : 여러 값을 갖는 속성

개체끼리 연관성이 있다면 관계를 사용
관계의 이름은 동사를 사용

3. ER Model 제약조건

여러 속성의 집합으로 표현된 개체간의 관계를 관계성으로 표현하기 위해서는 두 가지의 제약조건을 통해 표현한다.

1. 카디널리티 제약조건 (Cardinality Constraint)

카디널리티 제약조건은 1:1 관계, 1:N 관계, N:M 관계가 존재한다. 제약조건을 표시할 때에는 실선위에 관계 대응 수를 표시한다.

1:1 관계는 각 개체가 1:1로 대응되는 관계이다. 위의 사진은 보면 점원은 하나의 사원번호를 갖게되므로 서로 1:1로 대응하는 관계이다.
1:N 관계는 하나의 개체가 여러 개의 개체를 대응하는 관계이다. 사장은 여러 점원을 고용한다. 마트에는 한명의 사장만이 존재하므로 여러 개의 개체가 한 개체에 대응하는 관계이다.
N:M 관계는 여러 개의 개체가 여러 개의 개체를 대응하는 관계이다. 여러명의 점원은 여러명의 손님을 계산해주므로 여러 개의 개체가 여러 개의 개체를 대응하는 관계이다.

1:1관계: 하나의 개체가 하나의 개체에 대응
1:N관계: 하나의 개체가 여러 개체에 대응
N:M관계: 여러 개체가 여러 개체에 대응

2. 참여 제약조건 (Participation Constraint)

참여 제약조건은 두 개체 중 한 개체가 다른 하나의 개체에 의존하는 지를 표현하는 제약조건이다.

위의 사진을 보면 회사는 점원을 고용한다. 점원은 회사에 반드시 소속되어야 하므로 전체 참여에 해당한다. 두 개의 실선으로 표현한다. 하지만 회사에 점원은 있을 수도 있고, 없을 수도 있다. 부분 참여이므로 한 개의 실선으로 표현한다.

전체 참여: 한 개체는 다른 개체를 반드시 관계를 맺어야 한다. 두개의 실선으로 표현한다.
부분 참여: 개체와 선택적으로 참여하는 형태. 한 개의 실선으로 표현한다.

다음주에는 포스텍 애플 디벨로퍼 아카데미 교육에 참가하게 되었다. 애플쪽에서 주최하는 교육인데 애플을 정말 좋아하는지라 정말 많은 기대가 된다. 다음주에는 포항에 내려가서 받은 교육에 대한 내용으로 블로그를 작성할 것 같다.

0개의 댓글