Jam's story
[Oracle]days13 -데이터베이스 모델링 본문
프로젝트시, 요구분석서, 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 |
[문제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 |