- 데이터베이스와 현실 세계
- 데이터베이스 설계 단계
- 데이터 모델(Data Model)
- 컴퓨터에 저장할 데이터의 구조를 논리적으로 표현하기 위해 사용하는 지능적 도구
- 정보들의 구조를 기술하기 위해 사용되는 도구
- 데이터베이스의 정보 내용을 명세화
- 구성 요소
1. 데이터 구조(data structure): 데이터베이스에 표현될 대상으로서의 개체 타입과 이들간의 관계를 명세
2. 연산(operation): 데이터베이스에 표현된 개체 인스터스를 처리하는 작업에 대한 명세
3. 제약 조건(constraints): 데이터베이스에 허용될 수 있는 개체 인스턴스에 대한 논리적 제약을 명세
- 개념적(conceptual) 데이터 모델
- 사용자들이 이해할 수 있는 용어로 시스템을 기술
- 데이터베이스의 초기 명세서로 이용
- 사용자들과 개발자들 간의 합의를 나타냄
- 논리적(logic) 데이터 모델
- 데이터베이스 정의와 구조를 나타냄
- 사용 DBMS들에서 사용
- 물리적(physical)데이터 모델
- 논리적 데이터모델이 저장소에서 어떻게 표현되는지 나타냄
- 기본적 물리적 모델은 논리적 데이터 모델로부터 자동적으로 생성
- 데이터베이스 설계자와 관리자는 물리적 데이터 모델을 수정할 수 있다
- 발견(Discovery)
요구 사항들을 결정하는 과정
EX) 응용에 대한 요구 사항 발경
- 프로그램이 필요한 조직의 구성원과 상담
- 문서를 모음
- 컴퓨터 시스템을 분석하는 과정도 필요
- 최종 시스템에 포함되어야 할 객체와 동작들을 기술
- 객체와 동작을 기술하는데 사용되는 어휘를 결정
- 개념적 데이터 모델(conceptual data model)
- 데이터를 인식하는 방식에 대한 개념을 제공
- 데이터베이스의 초기 명세서로 사용
1. 개체-관계 모델
2. 객체지향 모델
- 개념적 스키마(conceptual schema)
- 개념적 데이터 모델을 이용하여 모델링한 정보의 구조와 의미
- 사용자와 정보 시스템 설계자들 사이의 의사소통 수단을 제공
- 개체-관계 모델링(ER: Entity-Relationship Model)
- 데이터를 개체, 애트리뷰트, 관계성으로 기술하는 고수준의 개념적 모델
- 응용 시스템의 데이터 요구 사항들을 명세
ER다이어그램: 개체-관계 모델을 그래프 방식으로 표현한 것
- 개체(Entity)
- 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 객체(object)
EX) 학번이 2022XXXX이고 이름이 홍길동인 학생
- 개체 클래스(Entity Class) (개체타입)
- 유사한 개체들의 구조에 대한 정의
- 같은 애트리뷰트로 표현되는 개체 인스턴스의 집합
EX) 학생, 교수, 과목, 사람
- 애트리뷰트(Attribute)
- 개체의 특성을 기술
- 각 개체는 공통적인 애트리뷰트들을 가지지만, 각 애트리뷰트에 대해서는 자신의 값을 가짐
1. 복합 애트리뷰트 vs 단순 애트리뷰트
2. 단일 값 애트리뷰트 vs 다중 값 애트리뷰트
3. 유도 애트리뷰트 vs 저장 애트리뷰트
- 단순 애트리뷰트(simple attribute)
더 이상 작은 구성요소로 분해할 수 없는 애트리뷰트
EX) otherUsers, number Rentals, balance,...
- 복합 애트리뷰트(composite attribute)
몇 개의 기본적인 단순 애트리뷰트들로 분해할 수 있는 애트리뷰트
EX) adress - street, city, state, zipcode로 이루어
- 단일 값 애트리뷰트(single-valued attribute)
특정 개체에 대해 하나의 값을 가짐
EX) lastName, firstName,...
- 다중 값 애트리뷰트(multivalued attribute)
어느 한 개체에 대해서는 몇 개의 값을 가짐
EX) OtherUsers 애트리뷰트 - 문자열의 집합 (한 고객의 계정을 같이 사용하는 사람들의 이름 집합)
- 유도된 애트리뷰트(drived attribute)
다른 관련된 애트리뷰트나 개체가 가지고 있는 값으로부터 유도된 또는 계산되어 나온 애트리뷰트 값을 가짐
EX) Customer의 numberRenentals애트리뷰트: 대여된 비디오의 숫자를 세는 것으로부터 유도
- 저장된 애트리뷰트(stored attribute)
- 애트리뷰트에 대한 제약조건
- 키(key)
- 개체 클래스들은 그 클래스의 키를 구성하는 애트리뷰트를 하나 이상 가지고 있다.
- 한 클래스의 각 개체들은 그 키에 대하여 유일한 키 값을 가져야 함
- 여러 개의 애트리뷰트로 구성된 키를 조합하여 키로 구성
- not null
- 애트리뷰트가 null값을 가지면 안된다는 제약 조건
- derived
- 선언된 애트리뷰트는 다른 어떤 정보로부터 유도된 또는 계산되어 나온 값
EX)
- ER 모델에 관련된 개념 : 관계성 ⭐
관계 타입은 대응되는 관계 집합에 참여하고 있는 개체들의 가능한 조합을 제한하는 제약 조건을 가짐
1. 카디널리티 비율 제약 조건
2. 참여 제약 조건
3. 구조적 제약 조건
- 카더널리티 제약 조건(Cardinality Ratio) ⭐
- 관계성의 개수를 규정
- 이진 관계의 카디널리티 비율은 개체가 참여할 수 있는 최대 관계 인스턴스들의 수를 명시
- 관계성의 각 역할에 적용
EX) 일대일 관계성 타입 - 모든 사람은 최대 한 명과 결혼 할 수 있다.
- 카더널리티 비율에 대한 4가지 기본 타입
1. 일대일(one-to-one): 최대 한 개의 관계된 객체를 가지게 됨
2. 일대대(one-to-many): 하나의 역할을 담당하는 한 개체는 여러 관계성을 가지지만, 상대편 역할을 담당하는 개체는 기껏해야 한 개의 관계성을 가짐
3. 다대일(many-to-one): 일대다와 같지만 반대의 경우
4. 다대다(many-to-many): 각 역할에서 하나의 개체는 여러 관계성을 가짐
EX) 일대다 관계성 타입
EX) 다대다 관계성 타입
- 참여 제약 조건(Participation) (최소 카디널리티 제약 조건) ⭐
- 한 개체의 존재가 관계성 타입을 통해 연관되어 있는 다른 개체에 의존하는지의 여부를 명시
- 각 개체가 참여할 수 있는 관계 인스턴스의 최소 수를 명시
1. 전체 참여
2. 부분 참여
- 구조적 제약 조건(Structural constraint) ⭐⭐⭐
- 정확하게 고차수의 관계 타입에 대한 구조적 제약 조건들을 쉽게 명시하는 방법
- 관계 타입 R에서 개체 타입 E의 각 참여마다 정수의 쌍(min,max)을 연계시키는 방법
=> 0<=min<=max / max>=1의 조건을 만족
- 정수의 쌍은 E의 각 개체 e에 대하여 e는 항상 R에 min과 max사이의 관계 인스턴스 수만큼 참여해야 한다는 것을 의미
=> Min=0일 경우: 부분 참여
=> Max=0일 경우: 전체 참여
EX)
- STUDENT: 최소 1개의 과목(전체참여 조건)/ 최대 5개의 과목 수강 가능
- COURSE: 최소 15명의 학생 수강/ 최대 60명의 학생 수
- Employee: 최소 0명 관리(부분참여 조건)/ 최대 1명 관리
- Department: 반드시 1명은 관리자가 있어야 함
- Employee: 모든 직원들은 부서에서 일을 해야 함(전체참여)(하나의 부서에서만 소속)
- Department: 최소 1명의 직원/ 최대는 제한 없
- 개체-관계성 다이어그램
- 인스턴스를 기술하지 않음
- 데이터 사전: 시스템을 명세하기 위해 텍스트 형태로 유지
EX)
- 왼쪽에서 오른쪽: 한 고객이 여러 개의 비디오 테이프를 대여할 수 있다.
- 오른쪽에서 왼쪽: 한 비디오 테이프는 한 고객에 의해서 대여될 수 있다.
- 한 고객은 여러 번의 대여 가능
- 한 번의 대여는 반드시 한 고객에만 해당
- 한 개의 비디오 테이프는 한 번의 대여에 연관
- 한 번의 대여는 반드시 하나의 비디오 테이프에만 관련되어야 함
- 약한 개체 클래스(week entity type)
- 자신의 키 애트리뷰트가 없는 개체
- 그들의 애트리뷰트 값들 중 하나를 통해 다른 개체 타입의 개체들과의 연계됨으로써 식별
- 소유자 개체 클래스(owner entity type): 이런 역할을 담당하는 다른 개체 타입
- 식별 관계(identifying relationship): 약한 개체 타입과 그 소유자 사이의 관계 타입
- 부분 키(partial key) (구별자): 동일한 소유자 개체에 연관된 약한 개체를 서로 구분할 수 있는 애트리뷰트들
- 관계 타입에서 역할
- 하나의 개체 타입이 어떤 관계 타입에 두번 이상 참여하는 경우에는 각 참여하는 개체가 담당하는 개체가 담당하는 역할의 의미를 구분하기 위해 역할 이름이 필수적
- 순환적 관계(자기참조 관계): 위와 같은 관계 타입
EX)
- 한 사람은 1명의 엄마의 자식일 수 있다.
- 한 사람은 0명 또는 그 이상의 자식의 엄마일 수 있다.
- 한 사람은 남편의 처일 수 있다.
- 한 사람은 처의 남편일 수 있다.
EX)
'3-2 > 데이터베이스 이해와 활용' 카테고리의 다른 글
6주차-SQL과 관계 대수 (0) | 2024.10.20 |
---|---|
4주차-논리적 데이터 모델 (1) | 2024.10.14 |
2주차-관계 데이터 모델 (1) | 2024.10.02 |
1주자-정보 관리와 데이터베이스 시스템 (0) | 2024.09.17 |