Download presentation
Presentation is loading. Please wait.
Published byMargaret Moody Modified 5년 전
1
DataBase Modeling DB 모델링 데이터베이스 모델링 정의 데이터베이스 설계과정 개념적 데이터베이스 모델링
(업무의 일반화 과정) 논리적 데이터베이스 모델링 (완벽한 정규화 과정) 물리적 데이터베이스 모델링 (데이터베이스 스키마 구축)
2
01 데이터베이스 모델링이란 데이터베이스 모델링이란 정보모델링 DataBase
데이터 모델링이라고도 하며, 다른 말로는 개체-관계 모델링이라고도 한다. 현실의 개념들을 체계적으로 수집하여 정보모델링을 통해 사용자의 정보요구사항을 조사하고, 이를 개체, 관계, 속성을 중심으로 명확하게 체계적으로 표현하고 문서화 하는 기법이다. 현실세계 데이터 모델링 정보모델링 개념 1 개념 2 개체 Entiy name 개체 Entiy name 개념 3 개념 n 일치 컴퓨터세계 데이터구조화 물리적으로 저장된 DataBase id name tel 개체 Entiy name 개체 Entiy name 1234 김승희 1235 김희석 1236 김미나 1237 김향화 - 개체 : 데이터베이스 내에 표현하고자 하는 유형/무형의 파일 시스템의 레코드에 해당되면 정보를 표현하는 논리적인 단위 - 관계 : 두 개 이상의 개체들 간의 연관성을 결정짓는 의미 있는 연결. - 속성 : 개체의 성질, 분류, 식별, 수량, 상태 등을 나타내는 세부의 관리 요소로써 관계형 데이터베이스에 사용되는 데이터의 최소단위
3
01 데이터베이스 모델링이란 모델링을 통해서 얻는 것 모델링의 권장 순서 모델링 고려사항 모델은 현실을 단순화 시키는 것
(추상화 레벨을 잘 결정해야 한다) 모델을 만들어 봄으로써 시스템의 이해를 돕는다. - 현재 또는 원하는 모습으로 가시화 - 업무에 대한 명세화 - 시스템을 구축하는 틀 제공 - 우리가 결정하는 것에 대한 문서화 좋은 모델은 현실을 잘 반영한 모델이다. 실시간접근성, 동시공유, 계속적인 변화 데이터 모델링을 위한 개념 정립 도메인 레벨 정의 개체집합의 후보 수집 개체집합의 선정 키 개체 집합의 단순화(통합) 하위개체집합에서 키 개체 집합 도출 관계 유무 판단 관계명 결정 속성의 결정 식별자 지정 정규화 다:다 관계의 해소 순환관계 해소 역할의 통합 서브타입과 슈퍼타입으로 나눔 관계의 통합 이력관리 모델링 고려사항 최대한 객관화 - 불확실한 업무를 확실하게 정의 - 단순한 설계 (다중 사용자 환경, 사용자 및 개발자 등의 관계자와의 통신 프로토콜) - 단순하면서도 성능을 최대한 이끌어내야 한다. - 현재뿐만 아니라 미래에 대한 충분한 고려 - 관계형 데이터베이스의 특성을 반영해야 한다. - 모델링의 접근 전략과 사고의 객관화 - 일의 순서를 정하는 것이 중요 데이터 모델링은 목표 시스템을 구축하기 위한 과정의 도구로 데이터 모델링도 여러 단계로 나뉘어 지는데 데이터 모델을 정확히 만들려면 각 단계가 모두 완벽해야 한다. (폭포수모델근간) 폭포수 모델 : 한번 떨어진 물이 거슬러 올라갈 수 없듯 각 개발단계에서 철저하게 검토하여 승인과정을 거친 후에 다음단계로 넘어가는 방법
4
02 데이터베이스 모델링 설계과정 프로젝트 진행과정 데이터베이스 설계 계획 분석 설계 요구 조건 분석 구현 테스트 유지보수
정보요구 조건 처리요구 조건 요구 조건 분석 구현 테스트 유지보수 요구 조건 명세 계획 : ISP(정보전략계획)과 유사하며, 외적 환경과 요구사항, 그리고 최상위 수준의 시스템 구분과 모델링을 통해 향후 데이터 베이스 구축방향제시 분석 : 각종문서들을 수집하거나 분석하고 인터뷰,관찰, 브래인 스토밍 등을 통해 데이터를 찾는 과정 - 사용자와 어플리케이션 범위 검증(대상범위,DB사용자 ) - 운영환경과 처리사항의 분석(트랜잭션 처리형태,발생빈도 등) - 질의서와 인터뷰(각 정보에 대한 가치평가와 정보등급평가) 개념적 데이터 모델링 : 데이터베이스 구현을 위한 사전단계로 업무관점의 개략적인 데이터 모델링에 해당된다 주제영역 파악, ERD(Entity Relationship Diagram) 논리적 데이터 모델링 : 개념적 설계에서 추출된 실체와 속성들의 관계를 구조적으로 설계하는 단계(스키마 설계) - Mapping Rule, 완벽한 정규화 물리적 데이터 모델링 : 논리적 데이터모델링에서 정의된 정규화된 모델을 개발 DBMS의 특성 및 효율적 DBMS가 되기 위한 데이터분산 등을 고려해 데이터 베이스 스키마를 구축하는 단계 - 개발 DMBS선정, 컬럼의 데이터타입과 사이즈선정. 데이터 사용량 분석과 사용자들의 업무 프로세스 분석, 역정규화, 인덱스설정 및 데이터 분산정의, 각종 데이터베이스 개체정의, 데이터베이스 선정 개념적 설계 정보 구조 개념적 데이터 모델 논리적 설계 논리적 데이터베이스 구조 논리적 데이터 모델 DBMS, 하드웨어 및 운영체제 특성 물리적 설계 물리적 데이터베이스 구조 물리적 데이터 모델 데이터베이스 구현
5
03 개념적 데이터베이스 모델링 개체-관계 모델(E-R Model)
데이터베이스 구현을 위한 사전단계로 업무관점의 개략적인 데이터 모델링에 해당된다. 개념 모델 단계에서는 달성해야 할 목적에 맞게 무엇(WHAT)을 해야 하는지에 초점을 두고 해야 함. (DBMS고려해서 설계하지 않아도 됨.). 업무 분석 시 발견되는 업무처리 내용 중 명사 또는 개념적 명사 중심으로 용어를 정리하고 반드시 의미 설명하여 개념설계가 이루어야함. ERD는 확인 및 Review의 효율성을 위해 현업에서 사용되는 용어를 선택하도록 노력해야 한다. 개념모델 단계의 산출물은 논리모델의 입력물로써 추적성이 용이한 문서가 되고 무결성 규칙이 유지되도록 산출물이 정리 되어야 한다. 학생과 교육과정 관계를 표현한 E-R Diagram 식별자 학생 학번 학생이름 등록 교육과정 과정 내용 과정코드 과정 명 전화번호 개체 속성 관계
6
03 개념적 데이터베이스 모델링 1.실제(Entity)
저장되고 관리되어야 할 정보(명사)로서 물리적은 DMBS의 테이블에 해당한다. Entity 이름은 단수형이고 유일하게 부여. 이름만으로도 의미 전달이 되도록 고심하여 명명. - 모든 Entity는 다수의 사용형태(Instance)를 가져야함. - 모든 Entyty의 사용형태는 Attribute에 특정한 값을 가져야 함. - 모든 인스턴스는 같은 엔터티 내에서 반드시 다른 인스턴스와 구별 가능한 식별자(UID)를 가져야함. - 식별자는 현존하지 않더라도 개념적으로 존재해야 함. 과목 학과 엔티티 자료구조 컴퓨터공학 오라클 전자공학 각각 인스턴스 jsp 통신공학 JAVA 경영정보학과 2.속성(Attribute) Entity내에서 관리되는 정보들의 항목으로서 Entity를 설명하는데 사용되는 명사로 컬럼명을 의미한다. Entity를 구성하는 요소가 되며, 하나의 Entity에는 고유 식별자를 포함한 하나 이상의 속성이 포함된다. 의미가 명확하고 길지 않으며 내용을 함축성 있게 표현. Entity명을 사용해서는 안됨. 단 하나의 Entity에만 속하도록 함. 가능한 한 최소단위까지 분할. 여러 값을 가지거나 반복되는 속성은 Entity로 분할. 추출값, 즉 Count 값이거나 Total값, 최대, 최소, 평균 등의 계산 값 등은 포함시키는 것은 낭비. 속성이 자신의 속성을 가질 수 있으면 Entity로 분류. *속성은 물리적인 단계에 앞서 각 속성의 값의 범위, 크기, 형식,NULL여부 등의 특성들을 기술해 주어야 한다.
7
03 개념적 데이터베이스 모델링 3. 식별자(Unique Identifer) 속성에는 식별자와 비 식별자가 있는데,
식별자는 한 Entity내에서 각각의 인스턴스를 유일하게 구분할 수 있는 단일 속성. 또는 속성 그룹으로 중복을 배제함을 의미하며 실제 무결성(ex. 사번, 주민등록번호 등.) 후보키 Candidate Identifer 실체 내에서 각각의 인스턴스를 유일하게 구분할 수 있는 속성으로 하나 이상의 속성으로 구성된다. 기본키 Primary Identifer 실제에서 각 인스턴스를 유일하게 식별하는데 가장 적합한 키로 위에서 정의한 후보키들 중에서 선택한 하나 속성의 그룹을 말한다. 부 식별자 Alternate Identifer 휴보 식별자 중 주 식별자로 선정되지 않는 식별자 외부 식별자 Foreign Identifer 두 식별자간의 관계형성을 통해 부모 실체의 주 식별자가 자식 실체에 전이된 식별자 대리 식별자 Surrogate key 복합키가 여러 개의 컬럼으로 구성된 경우 이를 대체하기 위해 인위적으로 정의한 컬럼 4.관계(Relational) Entity 관계 Entity 두 개의 실체간에 명명되어진 의미 있는 연결이며, 두 실체간에 업무적인 연관성을 나타낸다. 속성 속성 속성 속성
8
03 개념적 데이터베이스 모델링 4-1. 차수성의 정의 4-2. 선택성 사원 부서 소속 고객 상품 주문 부서 사원 소속
1) 일대일 1:1 사원 부서 소속 고객 상품 주문 Optinal (존재하지 않을 수 있는) Mandatory (반드시 존재 하는) 관계를 맺고 있는 두 실체의 레코드가 서로 하나씩 대응되는 관계 두 실체 간에 관계가 설정 되었을 때, 항상 두 실체의 인스턴스 간에 관계가 존재해하는지, 아니면 인스턴트에 대해 존재할 필요가 없는지 나타내는 부분. 2) 일대다 1:n 부서 사원 소속 * 관계 식별여부 파악 관계를 맺고 있는 두 에서 부모실체의 하나의 레코드가 자식 실체의 여러 레코드에 대응되는 관계(가장일반적) 사원번호 부서명 이름 부서코드 3) 다대다 n:m 주소 사원 부서 사원 부서 관리한다 소속 관계를 맺고 있는 두 실체에서 부모실체의 하나의 레코드가 자식 실체의 여러 레코드에 대응되며 반대로 자식레코드가 부모 실체의 여러 레코드에 관계를 맺음. 성별 입사일 위치 다대다 n:m는 논리적으로는 존재하지만, 물리적으로 존재하지 않는다. 그래서 교차실체=(행위실체)를 거쳐 1:n유형으로 해결함(역정규화)
9
04 논리적 데이터베이스 모델링 1. 관계형 모델의 개념 1-1. 부모테이블과 자식테이블 :
관계를 맺고 있는 두 테이블 중 반드시 부모테이블이고 반드시 하나는 자식테이블이다. 상 품 상품코드 상품명(AK) 규격 측정단위 회 원 회원코드 이름 주민번호(AK) 전화번호 1-2. 기본키(Primary Key)와 포린키(Foreign Key) : 부모테이블의 기본키가 자식테이블의 포린키로 전이 되어진다. 부모 혹은 자식테이블의 식별은 [주체관계파악] [부모테이블 테이터의 선정여부]로 한다. 1-3. 식별관계와 비 식별관계 : - 식별관계 : 부모테이블의 기본키가 자식테이블의 기본키(그룹)와 연결(전이) - 비식별관계 : 부모테이블의 기본키가 자식테이블의 일반속성과 연결(전이) 주문 상세 주문코드(FK) 상품코드(FK) 수량 단가 금액 주문 주문코드 회원코드(FK) 주문일자 주문총금액 * 식별관계 –교차실체 추가처리 – 데이터를 껀껀히 처리 * 비식별관계 – 몇단계거처 처리 – 데이터를 묶어서 처리
10
04 논리적 데이터베이스 모델링 2. Mapping Rule
E-R Diagram을 관계형 데이터베이스 이론에 의해 데이터 베이스 스키마로 변환 메핑 룰의 4단계 1. 단순 엔티티 테이블로 2. 속성 칼럼으로 3. 식별자 기본키로 4. 관계 포린키로 E-R Diagram 관계 스키마 개체 테이블 명 : 학생 속성 1.엔티티 → 테이블 식별자 2.속성- 칼럼 학생 학번 학생이름 전화번호 컬럼명 학번 학생이름 전화번호 식별자 PK 3.식별자- 기본키
11
04 논리적 데이터베이스 모델링 3. 정규화 데이터의 중복방지, 효율적으로 저장, 무결성 유지. 3-1. 1차 정규화 :
반복되는 그룹 속성이 존재할 경우 그 그룹을 분리하여 새로운 실체를 추가한 후 기존 실체와 1:n의 관계를 형성함으로써 속성들의 원래 제자리를 찾아주는 것. 컬럼명 B_id Title c_name price name 키코드 PK Data A-1 데이터베이스 서울 4000 저팔개 b-1 운영체제 부산 3500 허청 C-1 워드 인천 5000 이한나 A-2 경기 손오공 * Book 테이블 컬럼명 B_id Title c_name name 키코드 PK Data A-1 데이터베이스 서울 저팔개 b-1 운영체제 부산 허청 C-1 워드 인천 이한나 A-2 경기 손오공 Id B_id Price PK FK 101 A-1 4000 102 b-1 3500 103 C-1 5000 104 A-2 * Book 테이블 * danga 테이블
12
04 논리적 데이터베이스 모델링 3-2. 2차 정규화 : 복합키(composit primary key)로 구성된 경우가 2차 정규화의 대상이 되며 복합키 전체에 의존하지 않고 복합키의 일부분에만 종속되는 속성들이 존재할 경우(부분적함수 종속) * 학생 테이블 * 수강 테이블 학번(PK) 학생명 학과 학년 강민희 정보통신 4 김승희 방송통신 유연형 1 이상욱 3 이명희 컴퓨터 수강코드(PK) 교과목 학과 당당교수 111 네트워크연결 정보통신 김상태 222 오라클 방송통신 오미희 333 자바 신현섭 444 ASP 김희석 555 이동통신 컴퓨터 서광 기본키 학번(FK) 수강코드(FK) 등급 111 A 222 B 333 444 555 테이블명 기본키 학생 학번 수강 수강코드 성적 학번+수강코드 * 성적 테이블에서 학번과 수강코드 각각은 외부키이고, 학번과 수강코드가 결합되면 성적 테이블의 기본키가 된다. * 성적 테이블
13
04 논리적 데이터베이스 모델링 3-3. 3차 정규화 : 한 테이블 안의 키가 아닌 모든 컬럼들은 기본키에 의존한다.
만일 키가 아닌 컬럼에 종속되는 속성이 있다면 이를 제거해야한다. * 학생 테이블 * 수강 테이블 학번(PK) 학생명 학과 담당교수(FK) 강민희 정보통신 김상태 김승희 방송통신 유연형 이상욱 김희석 이명희 컴퓨터 서광 수강코드(PK) 교과목 당당교수(FK) 111 네트워크연결 김상태 222 오라클 오미희 333 자바 신현섭 444 ASP 김희석 555 이동통신 서광 교과목 당당교수 네트워크연결 김상태 오라클 오미희 자바 신현섭 ASP 김희석 이동통신 서광 학생과 수강테이블은 담당 교수를 교수 테이블에서 참조하여 사용할 수 있다. * 교수 테이블
14
05 물리적 데이터베이스 모델링 물리적 데이터 베이스 모델링
논리적인 데이터베이스 구조로부터 효율적이고 구현가능한 물리적 구조로 설계하는 것이다. 물리적 데이터베이스 모델링 단계 개발 DBMS 선정. 컬럼의 데이터 타입과 사이즈 정의 데이터 사용량 분석과 사용자들의 업무 프로세스 분석 역 정규화 각종 제약조건 정의 인덱스, View, Stored Procedure, Trigger등 각종 Object 정의 데이터베이스 생성 * 참고자료. 사이트 : - 데이터베이스 정보공유사이트 -머멘토(네이버블로그)
Similar presentations