본문 바로가기
Programming/DB

[DB] 데이터 모델링

by AI_Wooah 2022. 3. 7.

데이터베이스

릴레이션 , 엔티티= 테이블

동일한 데이터 베이스 안에는 같은 이름을 가지고있는

릴레이션은 존재할 수없다.

속성 = 릴레이션에서 rhksflgksmss rnp적인 정보 항목

추상화에서 field라고 생각하면됨 (한개의 행)

튜플 = 개체에 속한 구성원들 개개의 정보를 표현

후보키란 테이블에서 각 튜플을 구별하는데 사용되는 키

후보키중에 하나를 선택해서 튜플을 식벽하는데 쓰는것을 기본키

나머지는 대체키

모든 테이블에서 적어도 하나의 기본키가 존해한다.

복합키는 하나의 컬럼이 후보키의 역할을 하지 못하고 두개 이상의 컬럼이 합쳐져야 후보키의 역할을 하는 경우

외래키 상호 관련이 있는 테이블들 사이에서 데이터의 일관성을 보장해주는 수단이다.

외래키

제한, 연쇄, 널값으로 대체

현실세계 -> 개념적 모델 -> 소프트웨어

목적에 맞게끔 단순화 시켜야한다!

데이터 베이스 설계

현실세계에 존재하는 개체에 대한 정보, 데이터를 반영

개념적

-논리적 데이터베이스 설계 : 현실세계를 관찰,분석하여 개념적 모델을 만드는 과정 데이터 모델링 이라고한다, 중점적!!

-물리적 데이터베이스 설계 : 논리적 설계를 바탕으로 실제 데이터 베이스를 구축하기 위한 테이블,뷰 인덱스 등을 설계하고 반정규화를 시행하는 과정 특정 DBMS 제품을 염두에 두고 진행 (프로젝트할때)

요구사항분석-> 설계 ->구현-> 통합 및 테스트-> 유지보수

데이터 모델링 : 현실세계를 데이터의 관점에서 파악하여 ERD로 표현하는 단계

데이터모델링의 세가지 개념

엔티티

관계

속성

엔티티와 속성은 둘다 명사

차이점은 엔티티는 속성들의 집합으로 표현될수있다 속성은 엔티티를 표현해주는 것

식별자 (ex) 부서코드 등

데이터 베이스 용어 모델링용어

테이블 엔티티 컬럼,열 속성 튜플,행 인스턴스 기본키 주식별자 외래키 외래식별자

엔티티란? 업무의 관심대상이 되는 정보를 가지고 있거나 그에대한 정보를 알아야하는 유형, 무형의 사물이나 객체를 말함

ex) 고객 사원정보 부서 제품 주문서 성적표 입조건표 금전출납부 생산 계획 공정

엔티티 분류 유형,무형,문서,이력,코드(무형)로 나뉜다.

엔티티 특징 시스템 구축 대상이 되는 업무에서 필요하고 관리하고자 하는 정보이어야한다. ex )환자 엔티티는 2개 이상의 인스턴스가 존재해야 의미가 있다 ex) 과목 : 영어,수학,과학 엔티티는 반드시 하나 이상의 속성을 가져야한다. ex) 과목 : 과목코드. 과목명, 학점.. 이름은 엔티티이기 보다는 속성임. 엔티티의 명명 엔티티 : 명사이다. 약어를 사용하지 않아야한다. 단수명사를 사용해야한다. 엔티티는 유일해야한다. 속성 관리하고자 하는 더 이상 분리되지 않는 최소 단위의 데이터

속성이란 엔티티의 속성은 나중에 테이블의 컬럼에 대응된다

속성종류 기본: 업무 분석을 통해 현실세계로부터 얻어낸 속성 ex) 제품이름, 제조년월, 원가 설계속성 : 원래 현실세계에는 존재하지않지만 설계 과정에서 만들어진 속성 ex) 국가코드, 색깔코드, 일련번호 유도속성 .....못적음..

속성 명명규칙 의미가 분명히 드러나게 이름을 부여!!!!!!

관계란? 엔티티간의 의미있는 연결? 맞나? ex) 학생과 수강과목 두 엔티티가 관계가 있다는 의미는 상호 공유하는 속성이 있다는 의미이다.

상호관계가 있는 두 엔티티에서 공유하는 속성의 이름이 반드시 같을 필요는 없다.

카드널리티 두개의 엔티티간의 관계에서 참여자(인스턴스)의 수를 표현한것. 단일 : | 다중 : < 로 표현한다. ex) 한명의 학생이 여러가지 강의를 들을 수 있다.

1대1 관계는 명확하지않으면 잘 만들지 않는다. 1대1 관계에 있는 두 엔티티는 하나로 합칠수 있다. 1대1 관계가 나오면 다시하세요~

M:N관계는 아직 완성되지 않는 작업으로간주되며, M:N관계를 해소 하기 위한 추가작업이 필요하다. 이게 나와도 잘못된거다!

1:N관계로 대부분 구성된다. 관계의 참여도 관계가 있는 두 엔티티의 인스턴스 들이 항상 관계에 참여하는지 아니면 경우에 따라 관계에 참여하는지 여부 필수 : | 선택 : o

주 식별자는 (PK) 라고 달거나 위에 적는다 외래키는 (FK)라고 적는다

업무분석 프젝할때 힘듬~ 분석 단계의 중요성 (중요함!)

수집해야할 문서 업무 메뉴얼 다른업무 주체와의 업무과정에서 주고받는 문서들 출납부 등

인터뷰 필요성 문서들만 가지고는 업무를 충분히 파악 x 문서에서 붏명확한 점을 분명히 할수 있다. 실제 업무에서 중요한 정보와 그렇지 않은 정보를 분리할 필요가 있다 현재 업무의 문제점은 실무자들이 가장 잘 알고있다. 그러나..인터뷰는...어렵다....

인터뷰 대상 업무에 대해 충분히 숙지해야한다 질문하고 싶은 내용을 미리 문서로 작성한다. 가장 여유있는 시간에 하고 한시간 이내로 녹음을 해야함~ 메모 거의 분가능 인터뷰를 주도적으로 진행할 필요가있다

엔티티 정의 -> 속성분류 ->관계생성

엔티티 도출과정 1.업무 기술서에서 명사를 찾아 표시한다. 어려워요 짜증나요 하기 싫어요 ^_^ 2.표시한 명사들을 엔티티와 속성으로 분류한다.(엔티티후보풀) 3.포함 속성이 뭔지 분류 중복된 명사/유사의미의 명사를 하나로 정리 속성이 존재하지 않는 엔티티는 속성에 가깝다.

식별자 - primary key 회원 엔티티의 주식별자 선정하기 개인정보가 들어있는것은 식별자로 하면안된다 식별자 여부를 확인해보려면 테이블을 그려봐~ 상상속으로 고고싱

식별자 후보중에 주 식별자 정하기 복합속성(중복)으로 이루어진 주 식별자

  • 주식별자 검토 마땅한 주 식별자가 없는 경우 인위적으로 넣을수 있다. 인위적 식별자 문제점 인위적 주 식별자는 편리하지만 위험성도 있다. 위험성은 이미 똑같은것을 중복하게 해도 똑같은 값이 들어갈 수 있다. !!!!!확인 똑바로하고 정신차리고 잘 넣어야함!!!!!

두 엔티티간의 관계 만들기 문서로 부터 동사를 구분한다. ex) 고객에게 주문서를 발송한다. 고객, 발송한다 : 엔티티

부모,자식 엔티티 찾고 1대N관계로 만들어어어어어어 !!!다대다로 만들어진다면 중간에 엔티티를 하나 두면된다.!!! 외래 식별자 정하기

용어
- 관계의 카디널리티
: 관계에 참여할 가능성을 표현한 것

반응형

'Programming > DB' 카테고리의 다른 글

[DB] DDL, DML  (0) 2022.03.07
[DB] 식별자  (0) 2022.03.07
Database(ORACLE)  (0) 2022.03.07
[Oracle] DML-SELECT  (0) 2022.03.07
[Oracle] PRIMARY KEY(기본키) 제약조건  (0) 2022.03.07

댓글