전체 글 (122) 썸네일형 리스트형 SQL13일차[논리모델링][정규화] 면접 질문 정규화 : 이상현상 제거 삽입 , 삭제, 수정, 문제 이상현상 1NF : 원자(중복성) 제거 2NF : 부분함수 종속제거 3NF : 이행함수 종속제거 답변: 간결하게 더이상추가질문 못하게 물어본것만 대답 추가질문하면 그거에 대해서 답변 정규화를 왜 해야할까? 정규화를 안하게 되면 insert delete update에 대해서 불편함이 발생한다. insert 할때 불필요한 값까지 넣어 줘야 한다. delete할때는 만약 하나의 과목을 한명의 수강생만 수강하고 있다면 수강생을 삭제하면 과목도 사라지게 된다 update 할때는 학생한건에 대해서만 수정하면 되는 부분을 수강하고 있는 과목까지 포함해서 바꿔야하니까 300건씩 수정해야한다 정규화 안한거의 장점 조회시 조인을 안하기 때문에 모든 컬럼을 가.. SQL 12일차 [모델링][속성][개념적설계] 역정규화는 무결성에 대한 책임이 따라붙는다 사원의 부서이동이 이력 속성을 만들때 고려사항 1. 엔티티가 관리할 대상인가? - >컬럼이 엔티티를 표현하는 의미를 갖는가? 2. 의미적으로 독립적인 최소 단위인가? ->한 도메인을 표현할수있는 최소단위의 컬럼인가? 3. 하나의 값만을 가지고 있는가? -> 여러개의 값을 통해서 의미를가지게 되면 원자성을 지킬 수없기때문이다. 4. 원본인가? 파생인가? -> 컬럼을 설계할때 기본 속성으로 있는 것인지 아니면 계산해서 들어가야하는 컬럼인지 분포도가 좋은 속성은 우선순위가 높다 --> 데이터가 적어야한다 분포도가 좋다 -> 식별성이 뛰어난 속성 , 값들이 반복되지 않는다 -> 이들은 기본키일 가능성이 많다 기본키는 중복 되지 않고 한 튜플을 단독으로 구별하기 때문이다.. SQL 11일차 [모델링] Aquerytool , ERDcloud도 있다 그것도 써보자 eXERD - > 이걸로 써보고 프로젝트 할때는 공유하기 좋은 위에 두개를 써보자 개념적 데이터베이스 모델링 테이블이 될 수있는애들 -> entity가 될수있는 애들 뽑고 , 속성을 뽑고 식별자가 될 수있는 애들 뽑음 그림 그려놓은거 논리적 데이터베이스 모델링 매핑룰, 기본키 , 관계->외래키로, 정규화 - > 테이블 쪼개기 1정규화 중복속성 제거 2정규화 중복키에 의존적인 애들 다 나가기 3정규화 기본키에 의존적이지 않은 애들 나가기 역정규화 join을 많이 해야하는 select 문의 성능을 올리기 위해서 join을 줄이면 무결성이 깨진다 물리적데이터베이스 모델링 DBMS선정 데이터 타입과 사이즈 정의 사용량 분석! -> 역정규화는 처음부터 .. SQL 10일차(0721) servlet 하네 web server 요청받기 요청 파악 웹페이지 제공 클라이언트 의 요청이 정적컨텐츠(해석의 주체가 클라이언트, 서버가 해석하지 않는 자원)라면 그냥 제공해준다 Apache WAS 동적컨텐츠 (JSP, Servlet,PHP,ASP등등) jdk에 의해서 컴파일되어 정적컨텐츠로 변환할 수 있는것 Apache-tocat안에 web server, WAS가 둘다 있음 마이크로소프트가 갖고 있는 웹서버 IIS Weblogic WebSphere 은 문제가 생기면 AS 가능ㅋㅋㅋ 로드 밸런싱 누가 가 부하를 나눌까? (웹서버)apache 나 nginx가 클라이언트와 서버 사이에서 로드 밸런싱을 해서 server에 연결하게 한다. 세션 공유가 안되서 토큰을 사용해서 공유한다. 어플리케이션 서버 tomcat , jboss.. SQL 9일차(0720) 커서 실행 후 반환 값 속성 뜻 SQL%FOUND sql문 실행후 반환된 행수가 1개 이상이다 (TRUE) SQL%NOTFOUND sql문 실행후 반환된 행수가 없다 (TRUE) SQL%ISOPEN 커서가 열려잇으면 TRUE - > 묵시적을 닫아서 항상 FALSE SQL%ROWCOUNT sql문 실행후 반영된 행의 수 (정수로 반환) 자바에서 JDBC를 통해서 sql문을 실행하면 무조건 commit이 되는 데 이걸 막기위해서 java코드로 commit(false)해줘야함 conn.setAutoCommit(false); 작업이 다끝나고 원하는 시점에 commit 하는 함수 conn.commit(); 자바에서 procedure에서 out 파라미터로 설정한거는 뭘 전달하는지 모르기때문에 getObject를 통.. SQL8일차(0719) 오라클 데이터 타입(이미지 쓸라면 아니면 파일 추가하려면) Data Type 특징 크기 BLOB 이미지, 동영상 128TB CLOB 대용량 문자 128TB NCLOB 유니코드 대용량 문자 128TB BFILE 대용량 이진파일, 운영체제 파일로저장 os파일사이즈 over(partition by)를 통해서 해결가능 select empno, ename, job, sum(sal) over(partition by job) --job을 그룹한 것에 맞춰서 집계함 결국 여러번씩 출력됌 from emp order by job; plsql 트리거, 함수, 프로시저, 등등 4가지 잘못건드리면 DB 다운됌 +표시를 눌러서 사용자를 누른다 프린트 결과창을 볼수 있다 oracle에서는 =이 같다라는 표현이기 때문에 대입은 :=.. sQL7일차(0718) JDBC 싱글톤 패턴으로 connection pool에서 DB에 연결된 연결 객체를 생성해 두었다가 갖다쓴다 HikariCP가 가장 성능이 좋음 https://hudi.blog/dbcp-and-hikaricp/ 데이터베이스 커넥션 풀 (Connection Pool)과 HikariCP 데이터베이스 커넥션 데이터베이스 커넥션 풀에 대해 알아보기 이전에 데이터베이스 커넥션이 무엇인지부터 알아봐야한다. 우리가 개발하는 웹 애플리케이션과 데이터베이스는 서로 다른 시 hudi.blog 현업에서는 성능개선을 위해서 connection 객체를 미리 생성해서 사용하고 반환하는 pool 방식을 선택한다. https://hudi.blog/dbcp-and-hikaricp/ spring 프로젝트 진행시 당연히 connectio.. sQL 6일차(0717) sequence 특징 자동으로 번호를 생성하는 객체 제약정보보기( 테이블명 대문자로 써야함) select * from user_constraints where table_name='BOARD'; 시퀀스 생성 공유객체: 전체 테이블에서 공유해서 사용한다. -->게시판마다 따로따로 사용하려면 시퀀스 객체를 각각 생성해주면 된다. create sequence board_num; 사용자계정에 시퀀스에 생성된것을 확인할수 있다. 시퀀스 번호 추출 ( 번호를 계속 올림) select board_num.nextval from dual; 시퀀스 현재 번호 추출 select board_num.currval from dual; MS-SQL의 테이블 종속적인 시퀀스 identity(1,1) ->1부터 1씩 증가 create.. 이전 1 2 3 4 5 6 7 8 ··· 16 다음