유디의 공간정보·개발일기

2. 0914_ Data modeler(계속), 논리모델, 정규화, sql 본문

DB Modeling

2. 0914_ Data modeler(계속), 논리모델, 정규화, sql

55yudi 2021. 9. 14. 16:53

예제1 ERD(계속)...

 

- 수강 엔티티와 과정 엔티티의 속성 추가,삭제

- 출석 엔티티 생성해서 수강엔티티와 1:N로 연결

- 출석 엔티티에 속성(출석일자) 추가하고 기본키로 지정

- 실선 : 식별관계 - 부모테이블의 PK가 자식테이블의 FK/PK가 되는 경우 --> 식별 체크

- 점선 : 비식별관계 - 부모테이블의 PK가 자식테이블의 일반속성이 되는 경우 --> 식별 체크 해제

- P : primary key --> 실선으로 표기

- F : foreign key --> 점선으로 표기

- PF : Primary/Foreign Keys

        It's part of the primary key and is also a foreign key to another table.

 

- ERD Schema

 

- 점선을 실선으로 바꾸고 싶으면 : 실선 더블클릭 - 식별 체크

 

- 출석 엔티티와 수강 엔티티

- target cardinality 설정

 

- source optional 체크 해제하면 동그라미가 사라진다.

 

- 과제1 실습하기

 


<mysql>

# 부서번호, 부서명, 부서장사번, 부서장명을 출력하시오.
# 부서번호, 부서명, 사원번호, 사원명이 출력됨
select *
from departments d
# join employees e on d.department_id = e.department_id;
# where d.department_id = e.department_id;
	join employees e on d.manager_id = e.employee_id;
select * from employees;
select count(*) from employees; # 전체 사원은 107명

# 사번, 이름, 부서명을 출력하시오.
# 두 개의 테이블을 조인해야 한다.
# 몇 개의 결과가 나왔는지 셀 때 : count(*)
select count(*) #e.employee_id, e.last_name, d.department_name
from employees e
	join departments d on e.department_id = d.department_id;

 전체 사원은 107명인데 이 쿼리는 106명의 결과 : 스티븐킹의 매니저가 없기 때문

 

- left join을 해줘야 전체 사원으로 출력된다.

left join departments d on e.department_id = d.department_id;

 

- outer join 


[논리모델, 정규화]

 

예제1 에서

- 도구 - 도메인 관리

추가 - 도메인 이름 적고 - 논리적 유형(데이터타입 지정) - 적용 - 저장

강사 엔티티를 더블클릭 - '강사번호' 컬럼 클릭 - 소스 유형에 추가했던 도메인으로 설정 - 적용/확인

논리형 모델에 도메인이 추가된 것을 볼 수 있다.

--> 관련된 엔티티끼리 도메인이 연결되어 변경되는 것을 볼 수 있다.

관계형 모델로 보면 데이터 타입이 VARCHAR2로 바뀐 것을 볼 수 있다.

- 도메인을 각각 적절한 데이터유형으로 만들어서 추가해주고

  엔티티를 더블클릭해서 데이터 유형에 소스유형을 추가해서 적용시켜주기

- 엔지니어링 하면 데이터유형으로 볼 수 있다.

 

- 영문으로 바꾸기

 논리적 모델에서 마우스 우클릭 - 논리적 모델에서 용어집 생성 클릭

 다음의 창이 나타난다.

약어(Abbreviation) 지정하기

다른 이름으로 저장 - glossary 파일 만들기

 

디자인명에서 마우스 우클릭 - 속성 - 이름지정 표준 - + 누르고 glossary 파일 열기

 

- 엑셀로 변환해서 꺼내와보기

  glossary파일 더블클릭 - 익스포트(파일유형은 엑셀) - 저장할 곳 지정해서 저장

  저장해 둔 파일에서 엑셀 파일 열어서 작업하면 된다.

- 약어란에 영문으로 작성

  다시 임포트 하기

  잘 떴당

  약어란에 안보이면 드래그하거나 스크롤을 내렸다 올리면 뜬다.

 

- 다시 관계형 모델로 엔지니어링 해보면 잘 반영되어 있다.

- 논리모델을 이미지파일/pdf파일로 저장해서 전체적인 구조를 이해하고 

  RDB 형태를 보면서 쿼리문을 작성할 때 참고하여 작성하면 용이하다.

 

- 디자인명에서 마우스우클릭 - 이름 지정 표준 - 템플리트

  열외래키의 {ref table}_ 지우기

 

- DDL 파일 생성하기

파일 - 익스포트 - DDL 파일 - 생성하기

DDL구문만 복사해서 오라클 디벨로퍼에서 스크립트실행(F5)

 

- 테이블 새로고침을 하면 잘 생성된 것을 볼 수 있다. (기존테이블들이랑 뒤죽박죽 섞임,,)

 

'DB Modeling' 카테고리의 다른 글

1. 0913_DB Modeling개요, ERD diagram  (0) 2021.09.13