데이터 관리의 편의성을 증진시키기위해서 테이블을 분리 하는 것을 정규화 라고 한다
-> 변경사항이 발생했을때, 1곳만 변경가능하기 때문 == 응집도 높음 == 결합도 낮음 == 유지보수 용이 해진다.
특정 컬럼이 존재하지 않아도 해당 컬럼 값을 예상할 수 있을때 == "데이터 중복 발생"
이때 확인할 수 있는 것으로 DBMS의 1원칙을 생각할 수 있따.
DBMS 무결성 : "데이터 중복은 DB내에 없어야한다."
면접때 알고 있으면 좋은 내용
Q1) 정규화가 뭐에요?
데이터 중복을 피하기위해서 테이블을 분리하는 것입니다.
Q2) DB설계할때 가장 중요하게 생각한 것은 무엇인가요?
데이터의 중복 발생을 예방하는 것입니다.
그래서 정규화를 다양하게 진행했습니다.
Q3) 코딩 테스트
테이블 정규화 / JOIN 문법의 사용 / 서브쿼리
Q4) FK가 왜 상대 테이블의 PK여야하나요?
NAME으로 하면, 똑같은 이름을 가진 사용자를 구분할수 없기 때문,
만약 PK가 아닌 걸럼으로 설정하면, UNIQUE 하지 않아서 구분할 수 없기 때문입니다.
분리되어있는데(정규화가 되어있는데) 어떻게 불러와요?
대학교입학
학번 이름 과 동아리 전공
1 101
2 104
3 104
4 103
5 102
6 102
7 102
FK의 값을 보고 외부 테이블의 값을 끄어오는 SQL문법 == JOIN(조인)문 이라한다.
SELECT 동아리 FROM 대학교; >> 101
SELECT (JOIN으로 가져온 외부 테이블의 값) AS 동아리명 FROM 대학교;
>> 서브쿼리(쿼리문 안에 또 다른 쿼리문이 존재하는 형태)
web 페이지 에서 Error가 발생한다면 다른 페이지로 넘어갈 수 있다.
Error 페이지로 넘어갈때는 -> view에서 하는 방식 / controller에서 넘어가는 방식
view
-> view 페이지에서 유효성 검사로 별도의 페이지를 보여준다. == 옛날 방식이라고 한다.
controller
-> 새로운(Error)페이지를 작성하여 controller에서 Error페이지로 넘겨준다.
jsp에서 DB 연결했을 때 기억하면 좋은 내용
만약 JOIN을 했는데 데이터가 없다면
결과에 (rs) 포함을 시키지 않는다 >> java에서는 NPE(널포인트)를 방생 시킨다.
-> 상대가 NULL인 데이터도 JOIN 목록에 포함 시켜야할때
-> LEFT JOIN을 사용한다.
-> NULL을 출력하여 오류가 발생하는 구문이 있을 수 있기 때문에
NVL을 사용하여 NULL이라면 ''출력해를 지정해준다.
'국비 내용 정리 > HTML' 카테고리의 다른 글
국비 31일차 내용정리(JSTL, 커스텀태그) (0) | 2024.08.13 |
---|---|
국비 30일차 내용정리 2(JSP / controller의 역할) (0) | 2024.08.12 |
국비 29일차 내용정리 (0) | 2024.08.11 |
국비 내용정리 27일(JSP, 내장객체) (0) | 2024.08.07 |
국비 내용정리 26일(JSP, Servlet) (0) | 2024.08.06 |