Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 02. 데이터 모델링.

Similar presentations


Presentation on theme: "Chapter 02. 데이터 모델링."— Presentation transcript:

1 chapter 02. 데이터 모델링

2 데이터 모델링(Data Modelling)
복잡한 실세계를 단순화하여 실세계에 존재하는 개체들을 식별하여 이들 객체와 객체 사이의 관계를 정의함으로써 컴퓨터상의 데이터베이스를 추상화된 개념으로 이해하기 쉽게 할 뿐만 아니라 사용자들 사이의 의사소통을 원활히 할 수 있도록 도와주는 도구 데이터 모델링

3 개체-관계(Entity-Relationship) 모델
현실 세계의 많은 데이터 중에서 관심의 대상이 되는 데이터를 언어보다 좀더 형식화된 다이어그램을 사용하여 표현한 것 1976년 Chen에 의해 제안 데이터에 대해 관리자, 사용자, 프로그래머들이 서로 다르게 인식되고 있는 뷰 들을 하나로 통합할 수 있는 단일화된 설계안을 만들기 위해서 사용. 서로 다른 뷰들을 충족시킬 수 있는 데이터 처리와 제약조건 등의 요구사항 들을 정의하기 위해 사용. 개체 관계 모델

4 구성 요소 개체(엔티티, Entity) 데이터 수집의 대상이 되는 정보 세계에 존재하는 사물(thing) 종류
개념적 개체 : 장소, 사건 등과 같은 눈에 보이지 않는 것 물리적 개체 : 물건 등과 같은 눈에 보이는 것. 즉 현실 세계에 존재하는 사물. 각 개체는 속성(attribute)으로 알려진 특성들로 정의. 개체 관계 다이어그램(ERD)에서 개체 집합은 직사각형으로 표시 학생(STUDENT) 개체 집합

5 속성(Attribute) 개체를 나타내는 특성
ERD에서 속성은 개체 집합을 나타내는 직사각형에 실선으로 연결된 타원형으로 표현 도메인(domain) 각 속성마다 가질 수 있는 값들의 범위 학생 개체 집합의 속성들

6 복합 속성(Composite Attribute)과 단순 속성(Simple Attribute) 단순 속성 복합 속성
더 이상 작은 구성 용소로 분해할 수 없는 속성 복합 속성 독립적인 의미를 좀더 기본적인 속성들로 분해할 수 있는 속성 복합 속성과 단순 속성

7 단일치 속성(single-valued attribute)과 다중치 속성(multi-valued attribute)
개체의 속성 중 주민등록번호, 또는 학번과 같이 반드시 하나의 값만 존재 하는 속성 다중치 속성(multi-valued attribute) 전화번호와 같이 집, 핸드폰, 회사 전화번호와 같이 여러 개의 값을 가질 수 있는 속성. 다중치 속성 변경 방법 1. 개체형 내에서 다중치 속성을 여러 개의 새로운 속성들로 분리. 2. 다중치 속성을 구성하는 속성들로 구성된 새로운 개체형 생성하고, 새로운 개체형과는 다대일 관계 설정.

8 개체의 키(Key) 개체의 속성 중 하나 또는 그 이상의 속성이 개체를 다른 개체와 구별할 수 있는 속성

9 유도 속성(Drived Attribute)과 저장 속성(Stored Attribute) 유도 속성
속성의 값이 다른 관련된 속성이나 개체가 가지고 있는 값으로부터 유도되 어 결정되는 속성 저장 속성 유도 속성을 결정하기 위해 사용된 속성 ERD에서 유도 속성은 점선으로 표시

10 관계(Relationship) 개체-관계 모델에서 개체 사이의 연관성을 표현하는 개념
ERD에서 개체들 사이의 관계는 마름모를 사용하여 표현 관계의 유형 일대일 관계

11 일대다 관계

12 다대다 관계

13 관계의 대응 개체 수(Cardinality, 카디날리티)
관계에 참여하는 하나의 개체에 대해 다른 개체 형에서 몇 개의 개체가 참여하는지를 나타내는 것 한 명의 학생이 1개 이상 6개 이하의 과목에 등록할 수 있다면 대응 개체 수는 (1, 6) 대응 개체 수는 (min, max)의 한 쌍의 값으로 표현하는데 여기서 min은 관계에 참여하는 개체의 최소 개수, max는 관계에 참여하는 최대 개수 의미

14 존재 종속(existence-dependent)
보험 회사가 “이몽룡”이라는 사원과 그의 부양가족에게 보험 혜택을 준다고 할 때 “사원”, “부양_정보”라는 개체형들을 정의한다고 하자. “이몽룡”에게 “박하늘, 이그름, 이단비”라는 3명의 부양가족이 있다면 부양가족 3명은 “이몽룡”없이는 보험 혜택을 받을 수 없다. 다시 말해 부양가족 3명의 정보는 “부양_정보”에 존재하지만 “사원”과 연관지어 지는 경우에만 존재하게 되는데, 이를 존재 종속이라 한다. 만약 “이몽룡”이 직장을 그만 두어 “사원” 테이블에서 삭제되면 부양가족 3명도 함께 “부양_정보”로부터 삭제된다.

15 관계 참여 선택적(optional) 관계 의무적(mandatory) 관계
개체형의 개체는 관계를 이루는 다른 개체형에서의 개체와 연관이 없어도 되는 관계. 대응 개체 수(min, max)로도 표현하는 경우 min의 값이 0 의무적(mandatory) 관계 그 개체형의 모든 개체는 반드시 관계를 이루는 다른 개체형에서의 개체와 연관이 있어야 하는 것 의미 대응 개체 수(min, max)로도 표현하는 경우 min의 값이 1

16 관계 데이터 구조 1970년 Codd에 의해 개발 관계형 데이터 구조를 구성하는 용어
릴레이션(Relation) : 정보 저장의 기본 형태가 2차원 구조의 테이블 속성(attribute) : 테이블의 각 열을 의미 도메인(Domain) : 속성이 가질 수 있는 값들의 집합 투플(Tuple) : 테이블이 한 행을 구성하는 속성들의 집합      

17 릴레이션(Relation) 정의 특징 릴레이션은 행(row)과 열(column)로 구성되는 2차원 구조
릴레이션의 각 행은 하나의 개체를 나타내고, 릴레이션의 각 열은 개체의 각 속성 의미 관계형 모델에서는 행은 투플(tuple), 열은 속성(attribute)이라는  이름 사용 특징 1. 하나의 릴레이션에 있는 투플들은 모두 상이(distinct)해야 한다. 2. 하나의 릴레이션에서 투플들의 순서와 속성들의 순서는 아무런 의미가 없다. 3. 하나의 릴레이션에서 같은 이름을 가진 속성들이 있을 수 없다 4. 각 속성이 가질 수 있는 값들의 범위(도메인,domain)를 벗어나는 값을 가진 투플들이 존재할 수 없다. 5. 행과 열이 교차되는 곳은 원자값(atomic value)으로만 표현된다. 원자값은 논리적으로 더 이상 쪼개질 수 없는 값으로서, 여러 개의 값을 갖는 속성을 직접 표현하는 것이 불가능함을 의미한다.         - 수치형 (Numeric Type), 문자형 (Character Type) , 날짜형 (Date Type), 논리형 (Logical Type)

18 릴레이션을 구성하는 각 투플들을 데이터 값들에 의해 유일하게 식별할 수 있는 속성 후보키(Candidate Key)
릴레이션을 구성하는 각 투플들을 데이터 값들에 의해 유일하게 식별할 수 있는 속성 후보키(Candidate Key) 릴레이션의 한 속성 집합(K)이 릴레이션이 전체 속성 집합 A의 부분 집합이면서 유일성(uniqueness)과 최소성(minimality)을 만족하는 경우 속성 집합(K) 학번 속성 {이름, 학과} 속성 학생 학번 이름 학년 학과 100 홍길동 4 컴퓨터 200 이하늘 3 전기 300 임꺽정 1 400 송호준 500 박현진 2 음악

19 기본 키(Pimary Key) 대체키(Alternate Key) 외래키(Foreign Key)
후보 키 중 하나의 속성만으로 릴레이션의 투플들을 유일하게 식별할 수 있는 키 대체키(Alternate Key) 기본 키를 제외한 나머지 후보키(Candidate Key) 외래키(Foreign Key) 하나 이상의 테이블을 연결하여 사용하는 경우 필요한 키 한 테이블의 속성들의 집합으로 그 값이 다른 테이블의 주키와 일치하거나 null 값인 키를 의미

20 릴레이션의 연결 공통된 속성을 공유하여 관계형 데이터베이스 내의 릴레이션들을 연결

21 도메인(Domain)과 속성(Attribute) 속성 값(Attribute Value)
개개의 속성이 가지는 데이터 값 관계형 모델에서 이러한 데이터 값들은 더 이상 분해할 수 없는 원자 값만을 허용 도메인 (Domain) 하나의 속성이 가질 수 있는 같은 타입의 모든 원자 값의 각 속성은 하나의 도메인에 대해서만 값을 사용할 수 있다.

22 제약 조건 개체 무결성(Entity Inetgrity) 참조 무결성(Referential Intigrity)
릴레이션의 개체들을 식별할 기본 키로 사용되는 속성이 튜플들을 유일하게 식별할 수 있도록 널 값(null)을 가질 수 없는 성질 참조 무결성(Referential Intigrity) 릴레이션은 참조할 수 없는 외래키의 값을 가져서는 안 된다는 것을 의미. 참조할 수 없는 외래키 값이란 널이 아니면서 참조된 릴레이션의 어떤 기본키의 값과도 일치하지 않는 값 의미.

23 관계 데이터 연산 데이터의 구조와 제약을 정의하는 것 뿐만 아니라 데이터를 조작하기 위한 연산 종류
관계 대수(relational algebra) 관계 해석(relational calculus)   관계 대수(relation algebra) 관계 대수는 E. F. Codd가 관계 데이터 모델을 처음 제안할 때 정의 이후 여러 형태로 확장되어 왔다. 관계 대수는 연산자를 사용하여 주어진 릴레이션들로부터 필요한 새로운 릴레이션을 생성한다. 관계 대수는 질의에 대한 결과를 생성하기 위해 수행해야 할 연산의 순서를 명시하는 절차적 언어다. 연산자의 종류 일반 집합 연산(set operations) 합집합(UNION), 교집합(INTERSECTION), 차집합(DIFFERENCE), 카티션 프로덕트(CARTESIAN PRODUCT) 순수 관계 연산 셀렉트(SELECT), 프로젝트(PROJECT), 조인(JOIN), 디비전(DIVISION)

24 카티션 프로덕트(CARTESIAN PRODUCT, X)
두 릴레이션의 조합 가능한 모든 릴레이션

25 셀렉트(SELECT, σ) 릴레이션으로부터 조건에 만족된 투플들을 선택하는 연산자
셀렉트 연산 결과 구성되는 릴레이션의 수평 부분 집합(horizontal subset)으로 데이터베이스 조작어의 조건절에 지정된 조건식(predicate)을 만족하는 릴레이션 내의 튜플의 집합이 된다. <선택조건>(테이블이름)

26 프로젝트(PROJECT, π) 프로젝트 연산은 릴레이션의 특정 속성만으로 구성된 새로운 릴레이션을 구하기 위한 연산
결과 릴레이션은 릴레이션을 수직으로 절단한 열(column)의 집합 프로젝트는 릴레이션의 수직적 부분 집합(vertical subset) 프로젝트 연산 결과로 만들어진 릴레이션에 똑같은 튜플이 중복되어 존재하는 경우 시스템은 그 중 하나만 제외하고 나머지는 모두 삭제 속성리스트(테이블이름)

27 조인(JOIN, ⋈ ) 두 릴레이션과 관련된 튜플을 하나의 튜플로 결합하는 연산
카티션 프로덕트(cartisian product) 연산의 결과에서 얻어진 릴레이션으로부터 조건에 맞는 튜플의 집합을 구하기 위한 연산 조인 연산은 연산자를 Ɵ로 표현하여 일반화하므로 Ɵ로 표현될 수 있는 조인을 세타 조인(Ɵ-join)이라 한다. θ가 “=”인 조인 : 동일 조인 또는 이퀴 조인(equijoin)

28 θ가 “N”인 조인 : 자연 조인(Natural Join )

29 디비전(DIVISION, ÷) 두 릴레이션에 대해 A, B에 대해 B 릴레이션의 튜플에 관련된 모든 튜플들을 A 릴레이션으로부터 구하는 것

30 관계 해석(Relational Calculus)
특징 주어진 릴레이션에 의해 요구되는 릴레이션의 정의를 형식화하기 위한 표기법 제공 이를 사용하여 원하는 정보만을 선언하는 비절차적인 특징을 가진다. 종류 투플 관계 해석(Tuple Relational Calculus) 원하는 릴레이션을 튜플 해석식(Tuple Calculus Expression)으로 정의 도메인 관계 해석(Domain Relational Calculus) 사용자가 원하는 정보를 도메인 해석식으로 표현 튜플 해석식에서의 튜플 변수 대신 도메인 변수를 사용하는 것을 제외하고 튜플 해석식과 동일

31 함수적 종속성 (Functional Dependency: FD)
의미 속성들 사이의 관계(relationship)에 대한 제약 조건 속성 X의 값이 속성 Y의 값을 결정지으면, "속성 Y는 속성 X에 함수적으로 종속된다"고 함 표기

32 정규화 형태 릴레이션의 정규화는 실제 데이타 값이 아니라 개념적인 측면에서 다루어져야 함
릴레이션의 정규화는 실제 데이타 값이 아니라 개념적인 측면에서 다루어져야 함 실제 정규화 과정은 정규형의 순서와 다를 수 있음

33 제1정규형(1NF) 릴레이션에서 속성의 값은 속성의 도메인에 속하는 단일 값(원자 값, atomic Value)이어야 한다는 제약을 의미 다차값을 가지는 비정규형 릴레이션을 제1정규형으로 변환하는 방법 1. 각 다치값을 위해서 하나의 레코드를 생성하여 새로운 릴레이션 생성

34 2. 키가 되는 속성(학번)을 이용하여 두 개의 테이블로 분리
이름 학과 동아리 박하늘 컴퓨터학과 {영어회화반, 검도부} 홍길동 영문학과 {수화반, 합창반} 홍길순 음악학과  미술반 이몽룡 사회복지학과 검도부 최푸름 국어국문과 축구부 학번 이름 학과 박하늘 컴퓨터학과 홍길동 영문학과 홍길순 음악학과  이몽룡 사회복지학과 최푸름 국어국문과 학번 동아리 영어회화반 검도부 수화반 합창반 미술반 축구부

35 제 2정규형(2NF) 완전 함수적 종속성(full functional dependency)의 개념에 기반을 둔 것으로, 릴레이션 R이 1NF이고 키가 아닌 모든 속성이 기본키에 완전 함수적 종속이면 릴레이션 R은 2NF임. 완전 함수적 종속성 두 속성 A와 B 사이에 A → B의 함수적 종속성이 존재할 때, B가 A의 부분집합 A'에 함수적으로 종속되지 않는 것 의미 즉, A' → B가 성립되지 않아야 하며, 만약 A' → B가 성립하면 부분종속(partial dependency)이라고 부른다.

36 2NF는 모든 키가 아닌 컬럼은 기본 키 전체에 의존적이어야 한다. 기본 키의 일부분에 의존적이어서는 안 된다.
사번 프로젝트번호 부서 프로젝트 역활 고과율 1 a 전산 팀장 A b 조원 C c 부팀장 B 2 경리 3 기획 이 테이블에서 기본 키는 (사번+프로젝트번호)이다. 그런데 부서 컬럼은 사번에 의존적이다. 즉, 부서코드는 기본 키에 의족적이지 아니므로 제 2 정규화를 거처야 한다. 사번 프로젝트번호 프로젝트 역활 고과율 1 a 팀장 A b 조원 C c 부팀장 B 2 3 사번 부서 1 2 경리 3 기획

37 제 3정규형(3NF) 특징 추이적 종속성(transitive dependency)의 개념에 기반을 둔 정규형
키가 아닌 속성 값을 갱신하는 경우 불필요한 부작용(이상) 발생 없음 모든 이진 릴레이션(2NF)는 3NF에 속함 추이적 종속성 세 속성 사이에 존재하는 함수적 종속성 A, B, C가 한 테이블 내의 세 속성이고 A → B와 B → C의 함수적 종속성이 존재하면, 함수적 종속성 A → C가 성립하는 것 의미

38 3NF는 키가 이난 컬럼은, 다른 키가 아닌 컬럼에 의존적이어서는 안된다.
사번 프로젝트번호 프로젝트 역활 고과율 1 a 팀장 A b 조원 C c 부팀장 B 2 3 고과율 컬럼은 프로젝트 역할에 따라 변한다. 즉, 고과율은 키가 아닌 프로젝트 역할 컬럼에 의존적이다. 사번 프로젝트번호 프로젝트 역활 1 a 팀장 b 조원 c 부팀장 2 3 프로젝트역활 고과율 팀장 A 조원 C 부팀장 B

39 i . 복수의 후보키를 가지고 있고, 3NF의 약점 ii . 후보키들이 복합 애트리뷰트들로 구성되며,
iii . 후보키들이 서로 중첩되는 경우  적용 불가능

40 BCNF 기본 키가 둘 이상의 속성으로 구성된 합성키이고, 합성키가 둘 이상 존재할 경우에 발생되는 이상현상을 방지하기 위해서 고안 모든 결정자가 후보키일 경우 릴레이션은 BCNF형 릴레이션 R이 BCNF에 속하면 R은 제1, 제2, 제3 정규형에 속함 강한 제3정규형(strong 3NF) 예(3NF) : 과목 릴레이션 과목 (학번,과목,교수) 후보키 : (학번,과목), (학번,교수) 기본키 : (학번,과목) 함수종속 : (학번,과목)  교수 , 교수  과목 과목 학번 과목 100 프로그래밍 자료구조 200 교수 P1 P2 P3 300 P4

41 ⇒ 해결 : 과목 ⇒ 교수, 지도과목 릴레이션으로 분해
3NF(수강과목 릴레이션)에서의 이상 삽입이상 교수 P5가 자료구조를 담당한다는 사실의 삽입은 수강 학생이 있어야 가능 삭제이상 100번 학생이 자료구조를 취소하여 투플을 삭제하면 P2가 담당교수라는 정보도 삭제됨 갱신이상 P1이 프로그래밍 대신 자료구조를 담당하게 되면 P1이 나타난 모든 투플을 변경하여야 함 ⇒ 원인 : 교수가 결정자이나 후보키가 아님 ⇒ 해결 : 과목 ⇒ 교수, 지도과목 릴레이션으로 분해 수강 학번 100 200 교수 P1 P2 P3 300 P4 지도과목 과목 프로그래밍 자료구조 교수 P1 P2 P3 P4

42 제 4정규형 의미 릴레이션 R에서 MVD A B가 존재할 때 R의 모든 속성들이 A에 함수적 종속(FD)이면 R은 4NF (즉, R의 모든 애트리뷰트 X에 대해 A → X 이고 A가 후보키) 릴레이션 R이 BCNF에 속하고 모든 MVD(다치종속성)가 FD이면 R은 4NF 릴레이션 R이 4NF이라면 MVD가 없거나, MDV A B|C가 있을 경우 A에 대응되는 B와 C의 값은 하나씩 이어야 하며 이때 A는 후보키라는것 의미 3NF 테이블은 의존적인 다 대 다 관계를 가질 수 없다.

43 학생 수강과목 동아리 홍길동 심리학 타임반 영화감상반 컴퓨터 교양영어 이몽룡 영어회화반 유도반 프로그래밍 기초
학생등록 학생 수강과목 동아리 홍길동 심리학 타임반 영화감상반 컴퓨터 교양영어 이몽룡 영어회화반 유도반 프로그래밍 기초  BCNF ∵(키에 속하지 않는 결정자 속성이 없음) 기본키: (학생, 수강과목, 동아리) MVD 학생 교수|교재 수강등록 동아리등록 학생 수강과목 홍길동 심리학 컴퓨터 교양영어 이몽룡 프로그램의기초 학생 동아리 홍길동 타임반 영화감상반 이몽룡


Download ppt "Chapter 02. 데이터 모델링."

Similar presentations


Ads by Google