mysql 테이블 만들어보기, 참조테이블 만들고, 활용해보기

Back-End/Data Base 2019. 4. 21. 22:00
728x90
반응형

 

먼저 데이터베이스에서는 자료의 삽입,삭제가 튜플(릴레이션의 행)단위로 이루어지기때문에 모든 속성의 도메인의 원자값을 유지하기 위해서 테이블을

무손실분해(제1 정규화)를 실시한다.

 

(만약, 원자값이 유지되지 않으면 1행에 있는 자료가 삭제될때, 학습목표인 '자바기초언어문법'도 삭제되어 2장,3장,4장,5장에서 학습목표를 확인할수없게

된다.)

 

자바 기초 언어 문법 -> 자바 기초 언어 문법 1, 자바 기초 언어 문법 2, 자바 기초 언어 문법 3, 자바 기초 언어 문법 4, 자바 기초 언어 문법 5로 분해

 

장별 학습 내용 -> 학습 단원, 학습 내용 으로 분해.

 

튜플을 식별할수 있는 기본키는 '학습 단원' 으로 설정함. (이 테이블에서는 모든 속성에 값이 중복된 값이 없으므로 사실 어떤 속성으로 해도 상관없음.)

'학습단원'이 식별하기 쉽고, 자료를 계속 삽입할때 중복값이 나올 염려가 없어서 '학습단원'으로 선정.

 

 

 

 

 

mysql에서 DELTE문을 사용한 결과 튜플단위로 자료가 삭제된다는것을 확인할 수 있었음.

 

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------

'JAVA학습일정' 테이블을 참조하는 테이블을 만들어보기.

 

참조테이블 생성 하고, 외래키 설정(학습단원으로 설정.... 'JAVA학습일정' 테이블의 기본키이기 때문..)

그리고 기존 테이블의 튜플(릴레이션의 행)이 삭제되면 참조 테이블의 튜플(릴레이션의 행)이 연쇄적으로 삭제되게 설정

 

 

 

 

 

DELETE문 사용해서 'JAVA학습일정' 테이블의 학습단원이 2장인 튜플을 삭제한 결과, 참조 테이블의 튜플도

연쇄적으로 삭제되었다는것을 알수있었다.

 

 

 

 

 

참조테이블을 활용해서 검색해보기.

 

'JAVA학습일정' 테이블에서 '학습시간' (JAVA단원별학습시간 테이블의 속성을 활용) 이 '45분' 인 '학습기간' 검색해보기

 

 

 

 

728x90
반응형

'Back-End > Data Base' 카테고리의 다른 글

19.04.27 데이터베이스에 얽힌 돈 이야기  (0) 2019.04.27
19.04.26 관계형 데이터베이스란?  (0) 2019.04.26
19.04.25 SQL 예제  (0) 2019.04.26
19.04.25 데이터베이스란?  (0) 2019.04.26
나의 Data Base 학습 플래닛  (0) 2019.04.17
: