본 글은 " 한빛미디어의 데이터베이스 설계와 구축 - 이춘식 저 " 책의 내용을 개인적인 스터디의 목적으로 정리한 것임을 밝힙니다.
* 데이터베이스 설계와 구축
1. 데이터 모델링 주요 개념
- 데이터 모델링 : 정보화 시스템을 구축하기 위해 어떤 데이터가 존재하는지 또는 업무에 필요한 정보는 무었인지 분석하는 방법
다시 말해 데이터 모델링이란 업무에 필요한 데이터를 시스템 구축 방법론을 사용하여 분석하고 설계하고 설계하여 정보화 시스템을 구축하는 것이다.
- 실제 업무 시스템을 구축하는 프로젝트에서 데이터베이스를 전문적으로 하는 이른바 DBA가 모델링을 전적으로 하는 경우는 거의 없으며
대부분 업무 시스템을 개발하는 어플리케이션 개발자가 데이터 모델링도 같이 하게 된다.
* 데이터 모델링을 진행할때 다음의 세가지 개념은 반드시 이해하여야 함.
1) 업무가 관여하는 어떤 것(Things)
2) 업무가 관여하는 어떤 것간의 관계(Relationships)
3) 어떤 것의 성격(Attributes)
* 엔티티타입
- 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 것으로 영속적으로 존재하는 단위, 또한 엔티티타입은 엔티티의 집합이라고 할 수 있고,
반대로 엔티티라는 것은 엔티티타입에 속한 인스턴스의 하나에 해당됨.
- 엔티티 타입은 정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념을 정의할 수 있는 것으로, 정보 시스템을 구현할 때 데이터베이스 테이블에
해당되는 데이터 모델링에서 가장 중요한 표기법임. 엔티티타입을 표시할 때 네모 박스 형태로 표시함.
예를 들어, 강사에는 이강사, 김강사, 박강사가 있는데, 이강사, 김강사, 박강사는 각각 강사라는 엔티티타입의 엔티티다.
1) 엔티티 타입의 특징 및 성질
- 반드시 시스템을 구축하고자 하는 업무에서 필요하고 관리하고자 하는 정보여야 함.
- 유일한 식별자(Unique Identifier)에 의해 식별 가능해야 함. 유일한 식별자는 그 엔티티만의 고유한 이름임. 만약 한 식별자가 두 개 이상의 엔티티를
나타내면 그 식별자는 설계가 잘못된 것임.
- 영속적으로 존재하는 엔티티의 집합이 되어야 함. 엔티티 타입의 특징중 "한 개"가 아니라 "두 개 이상"이라는 집합 개념은 아주 중요함. 두개 이상이라는 개념은
엔티티타입뿐만 아니라 엔티티타입간의 관계, 프로세스와의 관계 등 업무를 분석하고 설계하는 동안 설계자가 모든 업무에 대입해 보고 검증해야 할 중요한 개념임.
- 업무 프로세스(Business Process)는 그 엔티티타입을 반드시 이용해야 함.
- 엔티티타입에는 반드시 속성(Attributes)이 포함되어야 함.
- 엔티티 타입은 다른 엔티티타입과 최소 한 개 이상의 관계가 있어야 함.
* 엔티티 타입의 명명
- 가능하면 현업에서 사용하는 용어를 사용.
- 가능하면 약어를 사용하지 않음.
- 단수 명사를 사용.
- 엔티티타입에 부여되는 이름은 유일해야 함.
- 가급적 엔티티타입이 생성되는 의미에 따라 이름을 부여함.
* 속성
- 속성이란 "업무에 필요한 엔티티에서 관리하고자하는, 더 이상 분리되지 않는 최소의 데이터 단위임. 엔티티타입에는 두 개 이상의 엔티티가 존재하고 각각의 엔티티는 고유의 성격을
표현하는 속성 정보를 한 개 또는 그 이상을 가짐.
- 엔티티를 식별할 수 있는 속성을 PK(Primary Key)속성, 다른 엔티티와의 관계에서 포함된 속성을 FK(Foreign Key) 속성, 엔티티에 포함되어 있고 PK, FK에 포함되지 않는 속성을
일반속성이라고 함.
* 속성의 명명
1) 해당업무에서 사용하는 이름을 부여함.
2) 서술식 속성명은 사용하지 않음.
3) 약어 사용은 가급적 자제함.
4) 엔티티타입에서 유일하게 식별가능 하도록 지정.
* 식별자
- 식별자(Identifier)란 여러 개의 집합체를 담고 있는 하나의 엔티티타입에서 각각의 엔티티를 구분할 수 있는 결정자임.
모든 엔티티타입에는 반드시 하나 이상의 식별자가 있어야 함.
1) 식별자 구분
- 주식별자/보조 식별자 : 주식별자는 엔티티타입의 대표성을 나타내는 유일한 식별자이고, 보조 식별자는 주식별자를 대신하여 보조적으로
엔티티를 식별 할 수 있게 함.
주식별자나 보조 식별자 모두 엔티티타입의 엔티티를 유일하게 식별할 수 있게 하는 특징이 있음.
그러나 주식별자는 엔티티타입 하나에 한 개인 반면 보조 식별자는 엔티티타입 하나에 두 대 이상일 수 있음.
물리 테이블에서는 주식별자가 PK 역할을 하는 반면, 보조 식별자는 PK로 생성되지 않고 유니크 인덱스(Unique Index)로 지정되어 사용됨.
- 내부식별자/ 외부 식별자
- 단일 식별자 / 복합 식별자
- 원조 식별자/대리 식별자
* 관계
- 관계(Relationship)란 두개의 엔티티타입 사이의 논리적인 관계, 즉 엔티티와 엔티티가 존재의 형태나 행위로서 서로에게 영향을 주는 것을 말함.
즉 엔티티와 엔티티가 존재의 형내나 행위로서 서로에게 영향을 주는 것을 말함.
예를들어, 우리 신체에서 심장, 뇌, 간 등이 엔티티타입이라면 이를 연결해주는 혈관을 관계로 비유할 수 있음.
혈관이 막히면 신체 기관에 혈액을 공급하지 못해 사망하는 것처럼 데이터 모델의 관계가 제대로 되어 있지 않으면 실세계의 업무 흐름이 정확하게
데이터 모델에 표현되지 않아 데이터의 무결성을 깨드림.
- 관계의 명명 : 각각의 관계에는 두개의 멤버십이 있다. 또한 각각의 멤버십에 의해 두가지 관점으로 표현할 수 있음. 멤버십은 엔티티타입의 관계에 참여하는 것을 말함.
- 관계의 카디낼리티 : 두개의 엔티티타입간 관계에서 참여자의 수를 표현하는 것을 카디낼리티(Cardinality)라고 함. 가장 일반적인 카디낼리티 표현 방법은 1:M, 1:1, M:N이다.
데이터베이스모델링(반정규화 절차 1) (0) | 2020.05.08 |
---|---|
데이터베이스모델링(6) (0) | 2020.03.06 |
데이터베이스 모델링(3) (0) | 2020.03.01 |
데이터베이스 모델링 (2) (0) | 2020.02.29 |
No operation allowed after connection closed 오류 해결 (0) | 2019.10.14 |
댓글 영역