Jam's story

[Oracle]days13 -데이터베이스 모델링 본문

Oracle

[Oracle]days13 -데이터베이스 모델링

애플쩀 2022. 4. 20. 16:57

프로젝트시, 요구분석서, er다이어그램이 필요하다 

1)요구분석서 

2)er 다이어그램 

3)스키마

 

개념적 db 모델링 단계 

- 요구 분석 후 개체 추출, 속성 추출 , 개체간의 관계 정의를 통해 er다이어그램 작성 

논리적 db 모델링 단계 

-er다이어그램을 매핑룰을 통해서 rdbms이론에 입각한 스키마를 설계하고 정규화 수행 과정 스키마정의 

물리적 db 모델링 단계 

-오라클/mysql/mssql - dbms 선정 

칼럼 데이터타입 크기 데이터 사용량 분석을 통해 효율적인 데베가 될 수 있도록 인덱스 정 

역정규화 

수행단계 

 

실제 데이터베이스가 생성 

 

 

db모델링 과정 

1.요구분석

2.요구분석 명 세서 작성

3.개념적모델링 

4.개념적 스키마 -er다이어그램 작성

 5.논리적 모델링 

6.매핑룰->논리적 스키마(관계형 데이터베이스 스키마)

7.정규화 

8.물리적 모델링 

9.물리적스키마

10.db구현

 

 

개념적db모델링 

사용자가 필요로 하는 데이터가 무엇? 어떤 데이터를 db에 저장해야 할지 분석

요구분석 , 현실세계의 수집된 정보들을 명확한 형태로 표현하는 단계 

 

er 다이어그램: 개체-관계 모델 

1)1976년 p.chen 제안

2)개체+관계 모델을 그래프 형식으로 알아보기 쉽게 표현 

개체 -직사각형 속성- 타원형 개체들간의 관계 -마름모 이들을 연결하는 링크 

개체 업무 수행을 위해 데이터로 관리되어져야 하는 사람 , 사물 ,장소 ,사건 
직사각형 
속성 실체의 성질, 분류 ,수량 ,상태 ,특성 ,특징 등을 나타내는 세부 항목 

기초속성: 원래 가지고 있는 속성
추출속성: 기초 속성을 가공처리 (계산) 해서 얻을 수 있는 속성 
예)주민등록번호(기초속성)->성별, 나이 ,생일 
자료의 중복성, 무결성 확보를 위해서 최소화 시켜서 사용
설계속성: 실제로는 실체에 존재하지 않으나 ,시스템에 효율성을 위해서 설계자가 임의로 부여하는 속성 
예) 주문상태 확인 
식별자 하나의 실체 내에서 각각의 인스턴스를 유일하게 구분할 수 있는 단일 속성 또는 속성그룹 
예) 사원 실체 (테이블)
사원 -행 =레코드 =각각의 인스턴스 
사원 
식별자가 없으면 데이터를 수정/삭제 제대로 못한다 

식별자의 종류 
1)후보키
실체에서 각각의 인스턴스를 구분할 수 있는 속성 
2)기본키
후보키중에 가장 대표적 키 
3)대체키(alternate key)
후보키- 기본키= 대체키
인덱스로 활용된다 .
4)복합키 
하나의 속성으로 기본키가 될 수 없는 경우 둘 이상의 속성을 묶어서 식별자(기본키)로 정의한 경우 
주의사항 
1.  복합키 중 어떤 속성을 먼저 둘 것인가?
2. 이유? 먼저오는 속성에 인덱스 ,유일성이 적용되기 때문에 성능 고려 
5)대리키
수정/삭제/검색
- 식별자가 너무 길거나 여러 개의 복합키로 구성되어 있는 경우 인위적으로 추가한 식별자(인공키).
복합키를 대신할 식별자 

관계        
      -  실체 ---- 실선 ----- 실체
      - 관계 차수
          ㄱ. 1:1 관계                            부서 1            부서장   1
          ㄴ. 1:다 관계 (  1:N )                부서  1            사원  N          
          ㄷ. 다:다 관계 ( N: M)              고객 N             상품 M               
               

 

사진출처: https://m.blog.naver.com/gongtong/150135598792
사진 출처 : https://m.blog.naver.com/gongtong/150135598792

 

[문제1] 다음은 현업 담담자와의 면담 자료이다. ( 요구 분석)
지금까지 알아본 개념을 바탕으로 다음에서 [실체]와 [주요 속성]을 추출해 다이어 그램을 그리시오.

나는 교육센터의 관리자이다 우리는 여러 과정을 가르치는 데, 각 과정은 코드,이름 및 수강료를 갖고 있다. 
'VB'과 'Java' 는 인기 있는 과정이다. 과정들은 1일~4일간으로 기간은 다양하다. 박찬호와 박신양은 우리의 가장 
훌륭한 강사들이다. 우리는 각 강사의 이름과 전화번호를 필요로 한다. 학생들은 시간에 따라 여러 개의 과정을 이수할 수 있는 데  많은 학생들이 이렇게 하고 있다. 우리는 각 학생들의 이름과 전화번호를 알고 싶다.  

 

 

1. 실체: 과정,  강사, 학생, 직원 

2. 속성: 과정(과정코드 ,이름, 수강료 , 기간 ), 강사(강사코드 ,강사명 ,과목명 ) 

3. 식별자

4.관계 

       관계차수

       선택성 

엔티티와 속성 까지만

 

 

 

논리적 모델링을 하다보면 이러한 문제가 생기는데, 이것을 제거하는 것이 제 1정규화

 

식별관계와 비식별관계

기본키가 다른 테이블의 기본키로 ->식별 

기본키가 다른 테이블의 외부키로 ->비식별 

 

매핑룰

erd를 이용해서 관계 스키마를 생성하기 위해서 따르는 규칙을 매핑룰이라고 한다. 

개념적 모델링에서 도출한 실제타입과 관계타입 ->테이블 정의를 의미 ->관계스키마 

 

개념적 모델링(ERD)에서 도출된 개체 타입과 관계 타입의 테이블 정의를 의미하며 이를 관계 스키마라고 한다. 

Entity –> table(릴레이션)
Relation –> table(릴레이션)
Attribute –> column(속성)
Identifier –> key
Tuple –> row

 

정규화

정규화의 의미 ->관계스키마 생성 

잘못 설게된 관계 스키마를 더 작은 속성의 바람직한 스키마로 만들어 가는 과정 

 

목적:

데이터의 중복제거 ,

데이터 검색 ,수정 ,삭제 보다 쉽게 용이 

삽입 삭제 수정 이상의 발생방지 

 

정규화 종류 

 

제1정규화 

제2정규화

제3정규화

bcnf

제4정규화

제5정규화

 

 

함수적 종속성 

하나의 릴레이션을 구성하는 속성들의 부분 집합을 X와 Y라 할 때, 어느 시점에서든 릴레이션 내의 모든 투플을 대상으로 한 X 값에 대한 Y 값이 항상 하나면 "X가 Y를 함수적으로 결정한다" 또는 "Y가 X에 함수적으로 종속되어 있다"고 한다. 함수 종속 관계는 X → Y로 표현하고 X를 결정자, Y를 종속자라고 한다.

[네이버 지식백과] 함수 종속 (데이터베이스 개론, 2013. 6. 30., 김연희)

x->y  y는 x에 종속적이다. 

이상현상

관계 모델에서는 속성간에 존재하는 여러 종속 관계를 하나의 릴레이션에 표현하기 때문에

이상현상 발생, 즉 데이터의 중복으로 인하여 관계 연산을 처리할 때 

삽입이상

릴레이션에 새 데이터를 삽입하기 위해 원치 않는 불필요한 데이터도 함께 삽입해야 하는 문제를 삽입 이상(insertion anomaly)이라 한다. 

수정이상 

릴레이션의 중복된 투플들 중 일부만 수정하여 데이터가 불일치하게 되는 모순이 발생하는 것을 갱신 이상(update anomaly)이라 한다.

삭제이상 

릴레이션에서 투플을 삭제하면 꼭 필요한 데이터까지 함께 삭제하여 데이터가 손실되는 연쇄 삭제 현상을 삭제 이상(delete anomaly)이라 한다. 

 

삽입 이상

릴레이션에 새 데이터를 삽입하기 위해 원치 않는 불필요한 데이터도 함께 삽입해야 하는 문제를 삽입 이상(insertion anomaly)이라 한다. 예를 들어 아이디가 melon이고, 이름이 성원용, 등급이 gold인

terms.naver.com

이 사이트에 정리가 잘 되어있다고 한다 

 

 

 

 

'Oracle' 카테고리의 다른 글

[Oracle] days14- 조인문제  (0) 2022.04.21
[Oracle] days14- 정규화  (0) 2022.04.21
[Oracle ]days12 - join  (0) 2022.04.19
[Oracle] days11  (0) 2022.04.18
[Oracle] 달력만들기  (0) 2022.04.18
Comments