나에게 있어 설계란,
개발을 요청하는 사람들이 자신의 생각을 효과적으로 정리할수 있게 해주는 틀
erd , ui 전반도 혼자할 건 아닌듯, 해봤자
내가 원하던 건 이게 아니었다
라고 하도하도 많이많이많이 해서 agile 나왔것지.
Entity Relationship Diagram, 우선 '논리 스키마'로 이해
wiki Data Modeling : Conceptual, logical and physical schemas 참고
개념 설계는 학교 조감도에서 크게 학교본관, 학교별관, 농구장, 축구장 등의 구성요소들을 표시하듯이 대상과 구성요소를 정의하는 것으로 우선 이해
논리 설계는 위와 같은 구성요소별 구체적인 속성값, 학교본관의 강의실, 교무실 등,들을 정의하는 단계로 이해
물리 설계는 강의실 설계도에 대응하여 특정 치수의 책상과 의자를 배치하듯이,특정 DBMS 업체별 아키텍처 특징이나 문법에 따라, tablespace 등을 고려하여 DDL을 작성하는 것으로 우선 이해
개념설계부터 하면 좋을 듯한데, 상대가 없으므로 논리&물리로 바로감
ERD 전문 툴의 경우, 사용하고자 하는 DBMS 종류를 설정하면 논리 설계에 대해 자동으로 물리설계가 지원됨. (Entity => Table)
가령, Entity Relationship Diagram을 작성하면 이에 대응하는 Table DDL을 자동 설계 및 작성해줌
draw.io도 ERD를 지원하나, 자동으로 DDL을 생성해주는 ERD 전문툴을 쓰면 효과적이다.
이번의 경우 DA#5가 주어짐, 인터넷 자료가 충분하지 않으므로 반드시 가이드를 사용할 것
!! 유의 !!
가이드에 따르면 Barker 표기법이 기본값이고 관계선은 IE로 바꾸어도 Entity 형태는 여전히 Barker notation을 따라 끝이 둥굴다.
그러나 참고하고자 하는 PostgreSQL Sample DataBase ERD의 경우, IE 표기법이므로을 엄격히 지키는 것으로 보인다. 내 수준엔 혼용보단 부득히 하게 일관되게 Barker를 사용한다.
* 화면창을 살펴보면 옵션이라는 탭이 여러곳에 존재한다. 운좋게 빨리 찾았다.
한편, wikipedia Entity–relationship model 챕터에서 barker, IE(Crow's foot notation) 외 여러 표기법(notation)에 대해서 소개한다.
* 최소의 ERD부터 시작, 그리고 제약조건 잘안지킴, 좀 DA#5랑 친해져야 겠다.
처음에는 1개의 article이 여러개의 board에 분류가능하고, board는 여러개의 article을 가지는 다대다로 접근했다. 그러나 이는 1개의 사건(plot)이 여러개의 Story로 분기가능한 상황에 보다 밀접할듯
사용자는 게시글을 작성하고, 주어진 board에 해당 article을 분류한다고 접근했다. board를 소유하기 보단
자동 스크립트 생성 기능 확인, db 연결해서 바로 넣고 싶은데, 설정 상 예측불가한 시행착오 보단, postgreSQL 자료형 등 손수 기입 결정
최적최적화된 자료형 설정이 DA의 주요한 관심사가 아닐까 하지만 나의 현 역량과 상황 상, 이러한 세부사항은 추후 db 연결과 자동 생성 시 반영
참고로,
postgreSQL sampledata의 ddl문을 보면 file 테이블의 film_id는 integer, 이를 사용하는 film_category의 film_id는 smallint이다.
모든 category가 쓰이지 않고, 일부만 쓰이는 데 초점을 맞추어 이렇게 자료형을 선언했으리라 생각한다.
아마도 안정성을 위해 시작과 끝에 모두 테이블 drop이 존재한다. 이를 지워야한다.
그리고 자동생성 스크립트에서 일부 구문은 중간에 에러로 떠서 멈추게 된다. drop 이더라도, 작동하게 if exist가 자동 생성안되서 그런듯하다. 다른 전문ERD 툴로 자동생성했을때와 성능차이를 볼 필요가 있다.
postgreSQL의 스키마 관련해서 user란 테이블이 postgreSQL 기본 테이블이름 중 하나라 publc.user로 만들어야 했다! 다른 article, board는 무관했음. 조금 껄끄럽지만, spring security의 user 객체명을 우선하여 지속사용
sql server 대신 postgresql
https://www.ibm.com/docs/ko/rational-build-forge/7.1.2?topic=setup-odbc-data-source-microsoft-sql-server
https://www.postgresql.org/ftp/odbc/versions/msi/
dbeaver를 활용한 DML 생성 및 제어 시 보다 편리하게 자동스크립트를 활용가능했다.
엑셀 사용할 줄아는 사람이면 SQL문법 DB별로 몰라도 소통가능할듯
찾아보면, 조인 자동스크립트도 있을듯
DA#5가 GUI & 한글 기반으로 클릭해보면서 해볼 건 많다. 친해지고 싶다.
근데 개별 옵션값 설정(Barker => IE) 시 예상치 못한 문제(Entity 모양은 여전히 Barker인 경우) 등에 대해서 대응할 인터넷 예시를 못찾았다.
이에 따라 평소 알던 WEB ERD 추가, 그리고 무료는 많이 알수록 좋으니까
무료 ERD툴 예시들 중 web 기반은 대체로 협업기능을 추가로 제공하여 누락을 최소화하기 좋다. QuickDBD의 경우, 자동 DDL 기능도 지원하는 것을 확인하였다.
UID로 이해
완전 나한테 딱 필요한 자료
https://brunch.co.kr/@supernova9/195
내 역량과 상황 상 추후 역으로 작성하면서 학습예정
툴은 피그마 부터 ppt 보다 나은 게 있것지, 대체로 공유잘되고, 상시업데이트일듯
https://www.samsungsds.com/kr/insights/figma.html
Jira Database Schema - goto
erd 이렇게 보여줘도 되는듯. 혼자 생각할때, erd도 대외비밀 아닌가했는데, 크랙커가 저 스키마를 사용가능할 정도로 침입했다는 것 자체가 파괴일듯,
나같으면 겨우 db에다가 select할게 아니라 들키기 전까지 한두개 심어둘듯