코딩공부/분석
[데이터 분석]데이터 모델링 이해
리버0827
2022. 11. 2. 14:45
728x90
반응형
1. 관계형 데이터 모델 이해
현실 세계와 데이터베이스 관계
데이터 모델링 | 내용 |
개념적 모델링 | 추상화 수준이 높고, 업무 중심적이고 포괄적인 수준의 모델링 진행 |
논리적 모델링 | 시스템으로 구축하고자 하는 업무에 대해 Key 속성, 관계 등을 정확하게 표현, 재사용성이 높음 |
물리적 모델링 | 실제로 데이터베이스에 이식할 수 있도록 성능, 물리적인 성격을 고려하여 설계 |
관계 데이터 모델이 큰 성공을 거둔 요인
- 바탕이 되는 데이터 구조로서 간단한 테이블(릴레이션)을 사용
- 중첩된 복잡한 구조가 없음
- 집합 위주로 데이터를 처리
- 숙련되지 않은 사용자도 쉽게 이해할 수 있음
- 표준 데이터베이스 응용에 대해 좋은 성능을 보임
- 다른 데이터 모델에 비해 이론이 잘 정립되어 있음
- 관계 데이터베이스 설계와 효율적인 질의 처리 면에서 뛰어난 장점을 가짐
관계 데이터 모델
- 관계 데이터 모델은 동일한 구조(릴레이션)의 관점에서 모든 데이터를 논리적으로 구성
- 선언적인 질의어를 통한 데이터 접근을 제공
- 응용 프로그램은 데이터베이스 내의 레코드들의 어떠한 순서와도 무관하게 작성됨
- 관계 데이터 모델의 목적은 높은 데이터 독립성을 제공하는 것
- 사용자는 원하는 데이터(What)만 명시하고, 어떻게 이 데이터를 찾을 것인가(How)는 명시할 필요가 없음
- 논리적으로 연관된 데이터를 연결하기 위해서 링크나 포인터를 사용하지 않음
기본적인 용어
- 릴레이션(relation) : 2차원의 테이블(스프레드 시트와 유사)
- 레코드(record) : 릴레이션의 각 행
- 튜플(tuple) : 레코드를 좀더 공식적으로 부르는 용어
- 애트리뷰트(attribute) : 릴레이션에서 이름을 가진 하나의 열
도메인(Domain)
- 한 애트리뷰트에 나타날 수 있는 값들의 집합
- 각 애트리뷰트의 도메인의 값들은 원자값
- 프로그래밍 언어의 데이터 타입과 유사함
- 동일한 도메인이 여러 애트리뷰트에서 사용될 수 있음
- 복합 애트리뷰트나 다치 애트리뷰트는 허용되지 않음
도메인 정의
- CREAT DOMAIN EMPNAME CHAR(10)
- CREAT DOMAIN EMPNO INTEGER
- CREAT DOMAIN DNO INTEGER
차수(degree)와 카디널리티(cardinality)
- 차수 : 한 릴레이션에 들어 있는 애트리뷰트(열)들의 수
- 유효한 릴레이션의 최소 차수는 1
- 카디널리티 : 릴레이션의 튜플(행) 수
- 유효한 릴레이션은 카디널리티 0을 가질 수 있음
- 릴레이션의 차수는 자주 바뀌지 않음
- 릴레이션의 '카디널리티'는 시간이 지남에 따라 계속해서 변함
공식적인 용어 | 자주 사용되는 용어 | 파일 시스템의 용어 |
릴레이션 | 테이블 | 파일 |
튜플 | 행/ 레코드 | 레코드 |
애트리뷰트 | 열 | 필드 |
널 값(null value)
- '알려지지 않음' 또는 '적용할 수 없음'을 나타내기 위해 널 값을 사용
- 예: 사원 릴레이션에 새로운 사원에 관한 튜플을 입력하는데, 신입사원의 DNO(부서번호)가 결정되지 않을 수 있음
- 널 값은 숫자 도메인의 0이나 문자열 도메인 공백문자 또는 공백문자열과 다름
- DBMS들마다 널 값을 나타내기 위해 서로 다른 기호를 사용함
릴레이션 스키마(relation schema)
- 릴레이션의 이름과 릴레이션의 애트리뷰트들의 집합
- 릴레이션을 위한 틀(framework)
- 표기법
- 릴레이션 이름(애트리뷰트1, 애트리뷰트2, ... 애트리뷰트N)
- 기본키 애트리뷰트에는 밑줄 표시
- 내포(intension)라고 함
릴레이션 인스턴스(relation instance)
- 릴레이션에 어느 시점에 들어 있는 튜플들의 집합
- 시간의 흐름에 따라 계속 변함
- 일반적으로 릴레이션에는 현재의 인스턴스만 저장됨
- 외연(extension)이라고 함
관계 데이터베이스(relational database) 스키마 : 하나 이상의 릴레이션 스키마들로 이루어짐
관계 데이터베이스 인스턴스 : 릴레이션 인스턴스들의 모임으로 구성됨
: 테이블은 데이터를 저장하는 객체로서 관계형 데이터베이스의 기본 단위이다
: 모든 자료는 테이블에 등록이 되고, 테이블로부터 원하는 자료를 꺼내 올 수 있다 (SQL이용)
: 테이블은 어느 특정한 주제와 목적으로 만들어지는 일종의 집합이다
테이블 구조
용어 | 설명 |
테이블 (Table) |
행과 칼럼의 2차원적인 구조를 가진 데이터의 저장 장소이며, 데이터 베이스의 가장 기본적인 구성요소 |
컬럼 / 열 (Column) |
2차원 구조를 가진 테이블에서 세로 방향으로 이루어진 하나하나의 특정 속성 (더이상 나눌 수 없는 특성) |
로우 / 행 (Row) |
2차원 구조를 가진 테이블에서 가로 방향으로 이루어진 연결된 데이터 (현장에서는 레코드라고도 한다) |
TABLE 관계
용어 | 설명 |
정규화(Normalization) | 테이블을 분할하여 데이터의 정합성을 확보하고, 불필요한 중복을 줄이는 프로세스 |
기본키 (Primary Key, 주 식별자) | 테이블에 존재하는 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 컬럼 |
외래키(Foreign Key, 외부 식별자) | 다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼 |
2. ERD 이해
ERD(Entity Realtionship Diagram)
- 테이블 간 서로의 상관관계를 그림으로 도식화한 것을 E-R 다이어그램이라고하며, 간략히 ERD라고 한다
- ERD의 구성요소는 엔터티(Entity), 관계(Relationship), 속성(Attrubute) 3가지이다.
- 현실 세계의 데이터는 이 3가지 구성요소로 모두 표현이 가능하다
논리 모델과 물리 모델
논리모델 | 물리모델 |
엔터티 | 테이블 |
속성 | 컬럼 |
식별자 - 주식별자 (기본키) | Primary Key |
식별자 - 보조 식별자 | Unique Index Non - Unique Index |
식별자 - 외부 식별자(외래키) | Foreign Key |
도메인 | Check Constraint |
데이터 관계
- 관계란 두 개의 엔터티 사이의 논리적인 연결 즉 엔터티와 엔터티가 존재의 형태나 행위로서 서로에게 영향을 주는 형태를 말한다
- 비즈니스에서 중요한 것(동사)을 표현
- 일반적으로 두 엔터티 사이에 존재하나, 한 엔터티 스스로 관계를 가질 수도 있음(recursive / reflexive relationship)
- 하나의 관계는 두 가지 관점을 가짐(Relationship membership)
- 양쪽 측면에서 역할 명을 지정할 수 있음
데이터 관계의 요소
1. 멤버쉽(Membership)
-
- 엔터티 간의 관계에 대한 구체적인 서술
2. 카디널리티(Cardinality)
3. 관계의 참여도(Optionality)
3. 키에 대한 이해
릴레이션 키
- 각 튜플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임
- 슈퍼키(superkey), 후보키(candidate key), 기본키(primary key), 대체키(alternate key), 외래키(foreign key)
슈퍼키
- 한 릴레이션 내의 특정 튜플을 고유하게 식별하는 하나의 대트리뷰트 또는 애트리뷰트들의 집합
- 예 : 신용카드 회사의 고객 릴레이션에서 (신용카드번호, 주소) 또는 (주민등록번호, 이름) 또는 (주민등록번호)
- 튜플들을 고유하게 식별하는데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있음
기본키
- 한 릴레이션에 후보키가 두 개 이상 있으면 설계자 또는 데이터베이스 관리자가 이들 중에서 하나를 기본키로 선정함
- 예 : 신용카드 회사의 고객 릴레이션에서 신용카드번호와 주민등록번호가 후보키가 될 수 있음, 이 중 신용카드 번호를 기본키로 선정
- 자연스러운 기본키를 찾을 수 없는 경우에는 레코드 번호와 같이 종종 인위적인 키 애트리뷰트를 릴레이션에 추가할 수 있음
기본키 선정 시 고려사항
- 애트리뷰트가 항상 고유한 값을 가질 것인가
- 애트리뷰트가 확실하게 널 값을 갖지 않을 것인가
- 애트리뷰트의 값이 변경될 가능성이 높은 애트리뷰트는 기본키로 선정하지 말 것
- 가능하면 작은 정수 값이나 짧은 문자열을 갖는 애트리뷰트
- 가능하면 복합 기본키를 피할 것
대체키
- 기본키가 아닌 후보키
- 예 : 신용카드 회사의 고객 릴레이션에서 신용카드번호를 기본키로 선정하면 주민등록번호는 대체키
외래키
- 어떤 릴레이션의 기본키를 참조하는 애트리뷰트
- 관계 데이터베이스에서 릴레이션들 간의 관계를 나타내기 위해서 사용됨
- 왜래키 애트리뷰트는 참조되는 릴레이션의 기본키와 동일한 도메인을 가져야 함
- 자신이 속한 릴레이션의 기본키의 구성요소가 되거나 되지 않을 수 있음
728x90
반응형