-
KOSTA 교육 28일차(Project-숙박업소 예매)Review 2020. 6. 21. 18:17
18.12.6(목)
배운 내용
- 프로젝트
1. 프로젝트
어제에 이은 프로젝트 진행 과정에 대해서 작성해보려 한다.
오늘은 오류처리, ER Diagram 작성, SQL문 작성을 진행하였다.
파악하지 못했던 오류를 발견했는데 바로 입실일과 방번호가 겹치면 데이터에 INSERT가 되지 않아야 하는데 중복으로 들어가는 현상을 발견하였다.
- 이 오류를 해결하기 위하여 PRIMARY컬럼값을 두개 동시에 선언함으로서
전부다 같다면 오류를 발생시키고 하나라도 다르면 입력될 수 있도록 조치하였다. - 추가로 FOREIGN KEY를 생성하여 타 테이블과 JOIN하였다.
다음은 ER Diagram을 작성하였다.
- 전체 총 7개 테이블이다.
- 각 테이블별 PRIMARY KEY, FOREIGN KEY를 가지고 있으며
예약 목록의 경우 방ID와 예약번호가 PRIMARY KEY이다.
이유는 두개가 같다면 예약이 되지 않아야 하기 때문에 PRIMARY KEY(방ID, 예약번호)로 두 컬럼을 동시에 선언하였다. - 각 테이블의 관계는 그림에서 나타낸 내용과 같다.
- 간단하게 설명하자면 ‘리뷰'는 회원관리와 숙소 동시에게 포함될 수도 있고 안될 수도 있으며, 포함되는 존재이기 때문에 저렇게 나타냈다.
- ‘예약목록’의 경우 예약시 무조건 예약 목록이 있어야 하며 예약이 예약목록을 포함하고 있고, 방이 있으나 예약목록이 없을 수도 있고 있을 수도 있으며, 방이 예약목록을 포함하고 있다.
다음으로 생성한 테이블로 SQL문을 작성해 보았다.
- 각 테이블별 JOIN을 이용하여 검색, 정보 등을 출력하였다.
- PL/SQL의 경우는 EXCEPTION을 활용하여 중복 시 예외발생을 실습해보았다.
- 나아가 프로시저를 활용하여 EXECUTE 값을 수정하고 예외를 발생했으며
COMMIT을 했을 때 만약 중복되는 값이 있으면 예약에는 데이터가 추가되지만 예약목록에는 추가가 안 될수도 있기 때문에 ROLLBACK과 SAVEPOINT를 주어 예외가 발생 안될 시로 돌아갈 수 있게 선언하였다.
오늘 교육 간 느낀점
기존에는 원래의 예제 테이블에 있는 데이터를 이용하여 SQL문을 작성하였는데 이번엔 내가 직접 설계하고 생성하고 입력한 데이터들을 직접 원하는대로 출력하는 재미가 쏠쏠했다. 또한 ER Diagram 작성하는 것이 생각보다 많이 어려웠고 포함관계를 정의하는 것이 어려웠다.
오늘까지 2주간 데이터베이스를 배우면서 쿼리문 위주로 교육받다보니 처음 데이터 모델링을 배운 후 바로 프로젝트에 적용하기 너무 어려웠다. 특히 데이터 무결성을 지키려면 생각보다 많은 작업들이 필요했고 실제로 데이터를 출력할 때 무결성의 중요성을 다시 한 번 느끼는 계기가 된 것 같다.
내일부턴 본격적으로 WEB을 배우는데 본격적으로 WEB을 배울 생각을 하니 벌써 설렌다.
잘가 DB! 나중에 또 보자!!'Review' 카테고리의 다른 글
KOSTA 교육 30일차(HTML5, 시맨틱 마크업, CSS, link, Font, 박스모델, 테이블&테두리 속성) (0) 2020.06.23 KOSTA 교육29일차(HTML, Tag, div, ol, ul, li, head, meta, body, form, h, input, type) (0) 2020.06.23 KOSTA 교육 27일차(Project-숙박업소 예매) (0) 2020.06.21 KOSTA 교육 26일차(데이터 모델링, SQL 필기평가) (0) 2020.06.21 KOSTA 교육 25일차(PL/SQL, 제어문, 반복문, EXCEPTION, CURSOR, PROCEDURE) (0) 2020.06.21