본문 바로가기

오라클 데이터베이스

(15)
SQL 15일차[물리 모델링][반정규화] https://livesql.oracle.com/apex/f?p=590:1000 view scripts and tutorials 들어가면 테이블 샘플 다 만들어둠 , 참고하면 좋다 파티셔닝은 여기서 진행한다. 우리가 다운받은 dB는 express 버전으로 파티션기능을 사용할 수 없기때문에 슈퍼타입과 서브타입을 반정규화하는방법 2. 수직분할과 수평분할 수평분할 수평분할은 자주 참조되는 튜플에 대해서 파티션을 나눠서 관리한다. 이렇게 되면 필요한 튜플을 빠르게 조회할 수있다. 테이블 분할관점 데이터 모델링 수행을 수행하고 DB용량에 따른 대량의 데이터처리 패턴을 분석하여 트랜잭션이 컬럼단위로 집중조회하면 수직분할이고 로우 단위로 집중하면 수평분할한다. 테이블 수평 분할 테이블이 대량의 데이터를 가질 것으로 ..
SQL 14일차 [논리모델링][반정규화] 반정규화(역정규화) 4. PK분리 컬럼 차량번호를 통해서 차량들을 관리했지만 사용하다 보니 지역별로 조회를 할때가 많았다. 그래서 역정규화를 통해서 지역을 관리하는 컬럼을 추가 해주었다 이제 조회는 쉬워졌지만 삽입할때 차량번호를 substr을 통해 조작된 지역을 넣어줘야하기 때문에 관리의 불편함이 있다. 5. 테이블 복구를 위한 컬럼추가 어떤 테이블의 속성의 값을 변경하고 난 다음 이전의 값을 저장할 컬럼을 추가한다. 이렇게 쓰면 쓸데 없는 값을 많이 저장하게 되서 쓰지는 않는다. 반정규화 1. 관계병합(슈퍼 타입, 서브타입) 병합 학생의 직업이 학부생인지 대학원생인지에 따라 나누는 등 배타적관계에 해당하는 관계에서 구분코드를 사용해서 테이블을 분리하고 나면 조회를 할때 조인해서 검색해야하므로 성능저하의..
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에서는 =이 같다라는 표현이기 때문에 대입은 :=..