[23.10.20] 54일차
<<진도>>
[DB] MySQL
- ERD (Workbench)
- .sql (query, mysqldump)
- DB 평가
<<오늘의 팁>>
- Workbench의 ERD 제작툴에서 Entity는 ‘table’ 개념으로
- ERD 속성 중
UN : UnSigned(양수만)
NN : Not Null
- Workbench 기능으로 작성된 ERD를 MySQL DB로 바로만들 수 있다(but, MySQL DB로만)
- create 내에 index 설정 구문을 넣을 수도 있다
- 테이블 ,로 다중삭제 쿼리문 작성가능
* ERD (Entity Relationship Diagram)
데이터 수집, 분석 후 먼저 관계도를 그리고 나서 ERD를 제작한다.
[식별 관계]
table(entity) 사이의 관계를 나타내는 선
실선 : 식별
- (결속력) 강한 관계
- 외래키가 기본키에 참여
- 하나의 개체가 다른 개체없이 독립적으로 존재할 수 없음
점선 : 비식별 관계
- (결속력) 약한 관계
- 외래키가 기본키에 참여하지않음
- 객체가 독립적으로 존재
< emp의 ‘emp_no’를 dept가 가지고 쓰는 형태 >
[점선 1:n] 약한 관계
외래키 dept.emp_no 기본키로 사용되지 않았다. // 미사용시 null 처리
[실선 1:n] 강한 관계
dept의 외래키emp_no가 기본키로 사용
[ ERD -> DB화 ] Forward Engineer (비권장)
[확인]
emp :
dept :
[ DB -> ERD ] Reverse Engineer
employees DB의 table, view ERD
모두 실선 : 독립적이지 않음 외래키가 기본키로 사용됨
* query 쿼리
.sql 파일 : 스크립트 파일 = 실행파일 (실행될 쿼리들이 들어가있다.)
- 자주 쓰는 쿼리문들을 sql파일로 모아 저장했다가 실행가능
- mysql 접속 시 특정 DB를 선택해서 접속하는 문법도 가능하다(but, 명령어로 DB위치를 외부에 노출하므로 취약성이 높아질 수 있다)
mysql 접속후 sql파일로 쿼리 실행하고 싶으면 source 쿼리명.sql 입력
[query.sql]
[cmd]
** 디렉토리 경로가 파일과 일치해야한다. 하위경로가 추가 필요할 시
[ p201020\query.sql ] 입력
[MySQLdump]
: hello DB에 있는 모든 정보를 반대로 .sql 파일로(query로) 백업
해당 디렉토리에 파일 생성 (but, DB생성 관련은 없음)
[DB의 일부 테이블만 따로 DUMP를 뜰 수도 있다]
[sql파일안에 .dump 파일을 불러오는 형태] : employees.sql
sql에는 보통 명령어 쿼리들이 오고
/ .dump 파일에 데이터 정보들이 있어 불러오는 형태로 형성된다.
** +) 운영중인 DB에 복사본인 백업용 DB를 만드는 방법도 여러가지 있다