실제 DB는 어떻게 이루어 지는지 궁금하여 영상을 보고 공부를 하였다.
출처 : https://www.youtube.com/watch?v=GroeyzBNhfU
실무에서 프로젝트를 어떻게 시작을 하고 설계를 하는지 부터 다루어 보자
개발이라고 하면 흔히 6개의 단계로 이루어 지게 된다.
1. planning
2. analysis
3. design
4. implementation
5. testing and integration
6. maintenance
최초 인터뷰를 통해서 어떻게 어떤 기능을 원하는지에 대해서 정보를 얻고
업무 분석을 통해서 ideation회의를 하게 된다.
회의를 하면서 다이어그램, 기획서 등등이 작성이 된다.
보통 회의를 통해서 기획자들이 서비스 틀을 생각하게 된다.
이후 디자이너들이 UI/UX를 설계하고 개발자들은 DB를 설계를 한다.
설계가 모두 끝나면 인프라 설계를 하게된다.
인프라가 구축되면 구현 과정을 거친다.
이후 테스트 및 오픈 및 운영을 하게 된다.
앞서 말했듯이 이 과정은 정해진 순서가 아니라 상황에 따라서 유연하게 이루어 진다.
순서가 이런식으로 이루어 진다는 거지 실제 순서를 지킬 필요는 없다.
하지만 모델링은 매우 중요하다.
그러므로 최초 모델링할떄 정규화 하는 과정이 매우 중요하다.
sql시험을 보는 경우에는 1~3정규화 등등을 외워야 하지만
실무에서는 이런내용은 필요가 없다.
처음에는 한 테이블에 많은 정보를 담는것이 간단하다.
하지만 이 방법은 DB에 익숙해질수록 복잡하다고 한다.
foreign key
까지 설정을 하면 보통 정규화가 끝나게 된다.
foreign key란 다른 테이블을 참고하고 있는 key를 말한다.
예를들면 건물1이라는 테이블에 임대인이 A라는 데이터가 들어가 있다.
하지만 후에 건물1이 팔리고 A라는 임대인은 건물2라는 건물을 구매하게 되었다.
그런데 문제는 팔린 건물1에는 A라는 임대인의 정보가 들어있고 건물2에도 A라는 정보가 있기 떄문에
데이터의 중복이 일어나 정규화가 성립하지 않는다.
그러기 떄문에 임대인이라는 테이블을 따로 만들어서 건물 테이블에 임대인정보 데이터를 foreign key로 만들어 임대인 테이블과 연결해야 한다.
- 이 부분은 후에 실습을 통해서 자세히 다루어 보자!
1. PK가 가장 중요하다.
2. 적절한 정규화
3. 참조(데이터) 무결성을 위해 FK를 정의하자.
4. 서로 다른 성격의 컬럼들은 테이블을 분리하자
이정도만 지켜도 성공적인 모델링이 된다.
- 개발할 시스템이 이런 형태라고 생각을 해보자
Entites
Behavior(queries)
생성 테이블 및 컬럼
이 데이터들은 모두 회의를 거쳐서 나왔다고 가정한다.
- 나는 단순히 실습이기 떄문에!!
- 실제로 저 많은 데이터를 표현할수는 없기 떄문에 맛보기 용으로 조금이나마 작성을 해보았다.
일단 상황은 모든 사용자가 로그인이 되엇다고 가정을 하였다.
집주인이 물건을 올리면 물건이 데이터상에 나타날것이고
데이터 상에 있는 물건중 중개인이 중개인 등록을 통해서 중개인과 집주인이 매칭될 것이다.
이후 세입자가 물건을 검색하여 원하는 물건에 계약 신청을 하게 된다.
- 원하는 경우에는 관심물건으로 등록할수 있다.
계약신청이 되면 집주인에게 알림이 가고 모두 계약이라는 인스턴스에 참여하게 된다.
- 이 계약이라는 인스턴스에는 추가적으로 자료, 검증 이라는 정보를 제출할수도 있다.
이후 서로의 합의하에 계약서를 작성하게 된다.
`보면 알수 있듯이 굉장히 작게 표현을 해보았다.`
- building : 물건, Agent: 중개인
간단한 실습이다.
테이블을 두개 만들어서 서로 연간관계를 맺어 주는 것이다.
부동산이 삭제가 되면(팔리던가) 중개인도 사라져야 하기 떄문에 foreign key를 설정 해준 것이다.
- 추가적인 연관관계를 맺어준 것이다.
중개인과 또다른 item을 연결을 해주었고 item의 주인까지 지정을 해주었다.
더 추가적인 작업도 가능하지만
너무 복잡하고 내가 잘 못따라갈꺼 같아서 이쯤에서 마무리 하였다.
어떤 느낌인지를 얼추 알껏 같다는 느낌이 든다!!