03-01 데이터모델링과데이터모델의개념 개체-관계모델 논리적데이터모델
학습목표 데이터모델링과데이터모델의개념을이해한다. 개념적데이터모델인개체 - 관계모델을이용해모델링을하는방법을익힌다. 개체 - 관계모델을개체 - 관계다이어그램으로작성하는방법을익힌다. 논리적데이터모델의종류와특징을이해한다. 2
01 데이터모델링과데이터모델의개념 3
01 데이터모델링과데이터모델의개념 데이터모델링 (data modeling) 현실세계에존재하는데이터를컴퓨터세계의데이터베이스로옮기는변환과정 데이터베이스설계의핵심과정 추상화 (abstraction) 4
01 데이터모델링과데이터모델의개념 2 단계데이터모델링 개념적데이터모델링 (conceptual modeling) 현실세계의중요데이터를추출하여개념세계로옮기는작업 논리적데이터모델링 (logical modeling) 개념세계의데이터를데이터베이스에저장하는구조로표현하는작업 5
01 데이터모델링과데이터모델의개념 데이터모델 (data model) 데이터모델링의결과물을표현하는도구 개념적데이터모델 사람의머리로이해할수있도록현실세계를개념적인형태로모델링하여 데이터베이스의개념적구조로표현하는도구 예 ) 개체-관계모델 논리적데이터모델 개념적구조를논리적형태로모델링하여데이터베이스의논리적구조로표현하는도구 예 ) 관계데이터모델 현실세계 개념적구조 논리적구조 6
01 데이터모델링과데이터모델의개념 7
02 개체 - 관계모델 개체 - 관계모델 (E-R model; Entity-Relationship model) 피터첸 (Peter Chen) 이제안한개념적데이터모델 개체와개체간의관계를이용해현실세계를개념적구조로표현 핵심요소 : 개체, 속성, 관계 개체 - 관계다이어그램 (E-R diagram) E-R 다이어그램 개체 - 관계모델을이용해현실세계를개념적으로모델링한결과물을그림으로표현한것 8
02 개체 - 관계모델 개체 (entity) 현실세계에서조직을운영하는데꼭필요한사람이나사물과같이구별되는모든것 저장할가치가있는중요데이터를가지고있는사람이나사물, 개념, 사건등 다른개체와구별되는이름을가지고있고, 각개체만의고유한특성이나상태, 즉속성을하나이상가지고있음 예 ) 서점에필요한개체 : 고객, 책 예 ) 학교에필요한개체 : 학과, 과목 파일구조의레코드 (record) 와대응됨 9
개체 02 개체 - 관계모델 E-R 다이어그램에서사각형으로표현하고사각형안에이름을표기 10
02 개체 - 관계모델 속성 (attribute) 개체나관계가가지고있는고유의특성 의미있는데이터의가장작은논리적단위 파일구조의필드 (field) 와대응됨 E-R 다이어그램에서타원으로표현하고타원안에이름을표기 11
02 개체 - 관계모델 개체타입 (entity type) 개체를고유의이름과속성들로정의한것 파일구조의레코드타입 (record type) 에대응됨 개체인스턴스 (entity instance) 개체를구성하고있는속성이실제값을가짐으로써실체화된개체 개체어커런스 (entity occurrence) 라고도함 파일구조의레코드인스턴스 (record instance) 에대응됨 개체집합 (entity set) 특정개체타입에대한개체인스턴스들을모아놓은것 12
02 개체 - 관계모델 13
02 개체 - 관계모델 속성의분류 14
02 개체 - 관계모델 단일값속성과다중값속성 단일값속성 (single-valued attribute) 값을하나만가질수있는속성 예 ) 고객개체의이름, 적립금속성 다중값속성 (multi-valued attribute) 값을여러개가질수있는속성 예 ) 고객개체의연락처속성 예 ) 책개체의저자속성 E-R 다이어그램에서이중타원으로표현 15
02 개체 - 관계모델 단일값속성과다중값속성 16
02 개체 - 관계모델 단순속성과복합속성 단순속성 (simple attribute) 의미를더는분해할수없는속성 예 ) 고객개체의적립금속성 예 ) 책개체의이름, ISBN, 가격속성 복합속성 (composite attribute) 의미를분해할수있는속성 예 ) 고객개체의주소속성 도, 시, 동, 우편번호등으로의미를세분화할수있음 예 ) 고객개체의생년월일속성 연, 월, 일로의미를세분화할수있음 17
02 개체 - 관계모델 단순속성과복합속성 18
02 개체 - 관계모델 유도속성 (derived attribute) 기존의다른속성의값에서유도되어결정되는속성 값이별도로저장되지않음 예 ) 책개체의가격과할인율속성으로계산되는판매가격속성 예 ) 고객개체의출생연도속성으로계산되는나이속성 E-R 다이어그램에서점선타원으로표현 19
02 개체 - 관계모델 널속성 (null attribute) 널값이허용되는속성 널 (null) 값 아직결정되지않거나모르는값또는존재하지않는값 공백이나 0과는의미가다름 예 ) 등급속성이널값 등급이아직결정되지않았음을의미 20
02 개체 - 관계모델 키속성 (key attribute) 각개체인스턴스를식별하는데사용되는속성 모든개체인스턴스의키속성값이다름 둘이상의속성들로구성되기도함 예 ) 고객개체의고객아이디속성 E-R 다이어그램에서밑줄로표현 21
03-02 데이터모델링과데이터모델의개념 개체-관계모델 논리적데이터모델
02 개체 - 관계모델 관계 (relationship) 개체와개체가맺고있는의미있는연관성 개체집합들사이의대응관계, 즉매핑 (mapping) 을의미 예 ) 고객개체와책개체간의구매관계 고객은책을구매한다 E-R 다이어그램에서마름모로표현 23
02 개체 - 관계모델 관계의유형 : 관계에참여하는개체타입의수기준 이항관계 : 개체타입두개가맺는관계 삼항관계 : 개체타입세개가맺는관계 순환관계 : 개체타입하나가자기자신과맺는관계 24
02 개체 - 관계모델 관계의유형 : 매핑카디널리티기준 일대일 (1:1) 관계 일대다 (1:n) 관계 다대다 (n:m) 관계 매핑카디널리티 (mapping cardinality) 관계를맺는두개체집합에서, 각개체인스턴스가연관성을맺고있는 상대개체집합의인스턴스개수 25
02 개체 - 관계모델 일대일 (1:1) 관계 개체 A의각개체인스턴스가개체 B의개체인스턴스하나와관계를맺을수있고, 개체 B의각개체인스턴스도개체 A의개체인스턴스하나와관계를맺을수있음 26
02 개체 - 관계모델 일대다 (1:n) 관계 개체 A의각개체인스턴스가개체 B의개체인스턴스여러개와관계를맺을수있지만, 개체 B의각개체인스턴스는개체 A의개체인스턴스하나와관계를맺을수있음 27
02 개체 - 관계모델 다대다 (n:m) 관계 개체 A의각개체인스턴스가개체 B의개체인스턴스여러개와관계를맺을수있고, 개체 B의각개체인스턴스도개체 A의개체인스턴스여러개와관계를맺을수있음 28
02 개체 - 관계모델 관계의참여특성 필수적참여 ( 전체참여 ) 모든개체인스턴스가관계에반드시참여해야하는것을의미 예 ) 고객개체가책개체와의구매관계에필수적으로참여 모든고객은책을반드시구매해야함 E-R 다이어그램에서이중선으로표현 선택적참여 ( 부분참여 ) 개체인스턴스중일부만관계에참여해도되는것을의미 예 ) 책개체가고객개체와의구매관계에선택적으로참여 고객이구매하지않은책이존재할수있음 29
02 개체 - 관계모델 관계의참여특성 30
02 개체 - 관계모델 관계의종속성 약한개체 (weak entity) 다른개체의존재여부에의존적인개체 오너개체 (owner entity) 다른개체의존재여부를결정하는개체 오너개체와약한개체는일반적으로일대다의관계를가지고, 약한개체는오너개체와의관계에필수적으로참여하는특징이있음 약한개체는오너개체의키를포함하여키를구성하는특징이있음 E-R 다이어그램에서약한개체는이중사각형으로표현하고약한개체가오너개체와맺는관계는이중마름모로표현 31
02 개체 - 관계모델 관계의종속성 예 ) 직원개체와부양가족개체사이의부양관계 직원개체는오너개체, 부양가족개체는약한개체 32
02 개체 - 관계모델 개체 - 관계다이어그램 사각형 : 개체를표현 마름모 : 관계를표현 타원 : 속성을표현 링크 ( 연결선 ) : 각요소를연결 레이블 : 일대일, 일대다, 다대다관계를표기 33
02 개체 - 관계모델 34
03 논리적데이터모델 논리적데이터모델의개념과특성 E-R 다이어그램으로표현된개념적구조를데이터베이스에저장할형태로표현한논리적구조 데이터베이스의논리적구조 = 데이터베이스스키마 (schema) 사용자가생각하는데이터베이스의모습또는구조 관계데이터모델, 계층데이터모델, 네트워크데이터모델등이있음 35
03 논리적데이터모델 관계데이터모델 일반적으로많이사용되는논리적데이터모델 데이터베이스의논리적구조가 2차원테이블형태임 36
03 논리적데이터모델 계층데이터모델 (hierarchical data model) 데이터베이스의논리적구조가트리 (tree) 형태임 루트역할을하는개체가존재하고사이클이존재하지않음 개체간에상하관계가성립 부모개체 / 자식개체 부모와자식개체는일대다 (1:n) 관계만허용됨 두개체사이에하나의관계만정의할수있음 다대다 (n:m) 관계를직접표현할수없음 개념적구조를모델링하기어려워구조가복잡해질수있음 데이터의삽입 삭제 수정 검색이쉽지않음 37
03 논리적데이터모델 계층데이터모델의예 주문고객 판매상품 38
03 논리적데이터모델 네트워크데이터모델 (network data model) 데이터베이스의논리적구조가네트워크, 즉그래프형태임 개체간에는일대다 (1:n) 관계만허용됨 오너 (owner) / 멤버 (member) 두개체사이에여러관계를정의할수있어이름으로구별함 다대다 (n:m) 관계를직접표현할수없음 구조가복잡하고데이터의삽입 삭제 수정 검색이쉽지않음 39
03 논리적데이터모델 네트워크데이터모델의예 주문 판매 담당 관리 소속 40
03-03 관계데이터모델의개념 관계데이터모델의제약
학습목표 관계데이터모델의기본용어를익힌다. 릴레이션을구성하는요소와특성을이해한다. 릴레이션에서키의역할과종류를알아본다. 무결성제약의의미와필요성을이해한다. 2
01 관계데이터모델의개념 관계데이터모델의기본개념 개념적구조를논리적구조로표현하는논리적데이터모델 하나의개체에대한데이터를하나의릴레이션에저장 3
01 관계데이터모델의개념 관계데이터모델의기본용어 릴레이션 (relation) 하나의개체에관한데이터를 2차원테이블의구조로저장한것 파일관리시스템관점에서파일 (file) 에대응 속성 (attribute) 릴레이션의열, 애트리뷰트 파일관리시스템관점에서필드 (field) 에대응 투플 (tuple) 릴레이션의행 파일관리시스템관점에서레코드 (record) 에대응 4
01 관계데이터모델의개념 관계데이터모델의기본용어 도메인 (domain) 하나의속성이가질수있는모든값의집합 속성값을입력및수정할때적합성의판단기준이됨 일반적으로속성의특성을고려한데이터타입으로정의 널 (null) 속성값을아직모르거나해당되는값이없음을표현 차수 (degree) 하나의릴레이션에서속성의전체개수 카디널리티 (cardicality) 하나의릴레이션에서투플의전체개수 5
01 관계데이터모델의개념 관계데이터모델의기본용어 < 고객릴레이션의차수는 6, 카디널리티는 4> 6
01 관계데이터모델의개념 릴레이션의구성 릴레이션스키마 (relation schema) 릴레이션의논리적구조 릴레이션의이름과릴레이션에포함된모든속성이름으로정의 예 ) 고객 ( 고객아이디, 고객이름, 나이, 등급, 직업, 적립금 ) 릴레이션내포 (relation intension) 라고도함 정적인특징이있음 ( 한번만들어지면거의변경이없음 ) 릴레이션인스턴스 (relation instance) 어느한시점에릴레이션에존재하는투플들의집합 릴레이션외연 (relation extension) 이라고도함 동적인특징이있음 7
01 관계데이터모델의개념 릴레이션의구성 8
01 관계데이터모델의개념 데이터베이스의구성 데이터베이스스키마 (database schema) 데이터베이스의전체구조 데이터베이스를구성하는릴레이션스키마의모음 데이터베이스인스턴스 (database instance) 데이터베이스를구성하는릴레이션인스턴스의모음 9
01 관계데이터모델의개념 릴레이션의특성 투플의유일성 하나의릴레이션에는동일한투플이존재할수없다. 투플의무순서 하나의릴레이션에서투플사이의순서는무의미하다. 속성의무순서 하나의릴레이션에서속성사이의순서는무의미하다. 속성의원자성 속성값으로원자값만사용할수있다. 10
01 관계데이터모델의개념 릴레이션의특성 11
키 (key) 01 관계데이터모델의개념 릴레이션에서투플들을유일하게구별하는속성또는속성들의집합 12
01 관계데이터모델의개념 키의특성 유일성 (uniqueness) 하나의릴레이션에서모든투플은서로다른키값을가져야함 최소성 (minimality) 꼭필요한최소한의속성들로만키를구성 13
01 관계데이터모델의개념 키의종류 슈퍼키 (super key) 유일성을만족하는속성또는속성들의집합 예 ) 고객릴레이션의슈퍼키 : 고객아이디, ( 고객아이디, 고객이름 ), ( 고객이름, 주소 ) 등 후보키 (candidate key) 유일성과최소성을만족하는속성또는속성들의집합 예 ) 고객릴레이션의후보키 : 고객아이디, ( 고객이름, 주소 ) 등 기본키 (primary key) 후보키중에서기본적으로사용하기위해선택한키 예 ) 고객릴레이션의기본키 : 고객아이디 14
01 관계데이터모델의개념 키의종류 대체키 (alternate key) 기본키로선택되지못한후보키 예 ) 고객릴레이션의대체키 : ( 고객이름, 주소 ) 기본키 15
01 관계데이터모델의개념 키의종류 16
01 관계데이터모델의개념 키의종류 외래키 (foreign key) 다른릴레이션의기본키를참조하는속성또는속성들의집합 릴레이션들간의관계를표현 참조하는릴레이션 : 외래키를가진릴레이션 참조되는릴레이션 : 외래키가참조하는기본키를가진릴레이션 17
01 관계데이터모델의개념 외래키속성과그것이참조하는기본키속성의이름은달라도되지만도메인은같아야한다. 18
01 관계데이터모델의개념 하나의릴레이션에는외래키가여러개존재할수도있고외래키를기본키로사용할수도있다. 19
01 관계데이터모델의개념 같은릴레이션의기본키를참조하는외래키도정의할수있다. 그리고외래키속성은널값을가질수도있다. 20
01 관계데이터모델의개념 키의특성과종류 특성 유일성 : 한릴레이션에서모든투플은서로다른키값을가져야함 최소성 : 꼭필요한최소한의속성들로만키를구성 수퍼키 : 유일성을만족하는속성또는속성들의집합 후보키 : 유일성과최소성을만족하는속성또는속성들의집합 종류 기본키 : 후보키중에서기본적으로사용하기위해선택한키 대체키 : 기본키로선택되지못한후보키 외래키 : 다른릴레이션의기본키를참조하는속성또는속성들의집합 21
02 관계데이터모델의제약 무결성제약조건 (integrity constraint) 데이터의무결성을보장하고일관된상태로유지하기위한규칙 무결성 : 데이터를결함이없는상태, 즉정확하고유효하게유지하는것 22
02 관계데이터모델의제약 개체무결성제약조건 (entity integrity constraint) 기본키를구성하는모든속성은널값을가질수없는규칙 23
02 관계데이터모델의제약 참조무결성제약조건 (referential integrity constraint) 외래키는참조할수없는값을가질수없는규칙 24
02 관계데이터모델의제약 외래키속성이널값을가진다고해서 참조무결성제약조건을위반한것은아니다. 25
Thank You