유디의 공간정보·개발일기
2. 0914_ Data modeler(계속), 논리모델, 정규화, sql 본문
예제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 |
---|