본문 바로가기

데이터베이스(DB)/Oracle
(32)
[Oracle] 인덱스 // 데이터베이스 상태 - 테이블 내의 레코드 순서는 개발자가 원하는 정렬 상태가 아니다. - order by 필요 - 어떤 데이터 검색 > 처음 ~ 끝까지 차례대로 검색 > Table full scan - 특정 컬럼 선택 > 별도의 테이블에 복사 > 미리 정렬★★★ > 인덱스 // 인덱스, Index - 검색을 빠른 속도로 하기 위해서 사용하는 도구 - 도서의 색인과 동일한 역할 > 수많은 내용 중 원하는 것을 빠르게 찾기 위한 도구 - SQL 명령 처리 속도를 빠르게 하기 위해서, 특정 컬럼에 대해 생성되는 도구 ~ create index 인덱스명 on 테이블명(컬럼명); - 장점: 검색 처리 속도를 향상시킨다. - 단점: 너무 많은 인덱스 사용은 전체적인 DB 성능을 저하시킨다. - 자동으로 인덱스..
[Oracle] 참조 레코드 삭제 // 레코드 삭제 > 관계 맺은 자식 테이블에서 참조가 있는 경우.. 1. 취소 2. 삭제 a. 본인 삭제 + 자식 삭제 b. 본인 삭제 + 자식 보존 > 완전완전 비권장 c. 본인 변형 + 자식 보존 > 보통 사용됨 d. 자식 테이블을 만들 때 외래키에 CASCADE 옵션 걸기 ~ create table tblScore( seq number references tblStudent(seq) on delete cascase ) - 2.-a. 본인 삭제 + 자식 삭제 delete from tblBonus where num = 1001; delete from tblInsa where name = '홍길동'; select * from tblInsa; - 2-c. 본인 변형 + 자식 보존 > 보통 사용됨 upda..
[Oracle] 일련번호 // 계층형 쿼리를 이용하여 일련번호 만들기 - 숫자 만들기 select level from dual connect by level
[Oracle] PL/SQL // ANSI-SQL - 비절차 지향 언어 - 순서가 없고 문장 간의 행동이 서로 독립적이다. - 문장 단위 구조 // PL/SQL - Oracle's Procedural Language Extension to SQL - ANSI-SQL에 절차 지향 언어의 기능을 추가한 SQL - ANSI-SQL + 프로그래밍 언어의 기능(변수, 자료형, 제어문, 메서드 ...) - ANSI-SQL의 환경과 거의 동일하게 구현 // 프로시저, Procedure - 메서드, 함수 ... - 순서가 있는 명령어(ANSI-SQL + PL/SQL)의 집합 - 장점 1. 단순화(모듈화) 2. 팀작업 원활 3. 저장 객체 > 공유 원활 4. 속도 향상★ - PL/SQL 프로시저 블럭 구조 > 4개의 키워드(블럭)으로 구성 a. d..
[Oracle] 복합키 // 복합키 - 두 개 이상의 속성을 묶음으로써 다른 속성과 구분 지어주는 방법 - 컬럼 수준에서는 기본키로 복합키를 선언할 수 없다. - 컬럼 수준에서는 복합키를 참조하는 외래키를 선언할 수 없다. - 주로 테이블 수준에서 복합키를 지정한다. --학생 create table tblStudent ( seq number primary key, --번호(PK) name varchar2(30) not null --학생명 ); --과목 create table tblSubject ( seq number primary key, --번호(PK) name varchar2(30) not null --과목명 ); --수강신청 create table tblRegister ( student_seq number referenc..
[Oracle] 데이터베이스 설계 // 데이터베이스 설계 1. 요구사항 수집 및 분석 2. 개념 데이터 모델링 3. 논리 데이터 모델링 4. 물리 데이터 모델링 5. 데이터베이스 구축 // 데이터 모델링 - 요구 분석을 기반으로 수집한 데이터를 분석하고 저장 구조를 생성한 후 도식화 하여 산출물(ERD)을 도출하는 것 - 데이터 저장을 위한 데이터 구조를 설계하는 작업 - DBMS 종류를 결정하지 않는다. a. 개념 데이터 모델링 : 간단하게 표현한 설계도 > 테이블 + 컬럼 + 관계 b. 논리 데이터 모델링 : 제대로 된 설계도 > 관계형 데이터베이스 성질 반영 > 속성 + 도메인 + 키 c. 물리 데이터 모델링 : 특정 DBMS 결정 > 오라클 선정 + 반영 > 물리적 설정 1. Entity, 엔티티 - 다른 엔티티와 분류될 수 있고..
[Oracle] 계층형 쿼리 // 계층형 쿼리, Hierarchical Query - 오라클 전용 - 레코드 관계가 서로 상하 수직구조일 때 사용 - 서로 다른 테이블 간의 관계가 수직 구조일 대 사용 - 자기 참조를 하는 테이블에서 사용(셀프 조인) - 트리 구조에 사용 - 사용 방법 1. 조인 2. 계층형 쿼리 ~ start with절 + connect by절 -계층형 쿼리 의사 컬럼 a. prior : 자기와 연관된 부모 레코드 참고 b. level : 세대수(depth) 1. join select c1.name as "부품명", c2.name as "부모부품명" from tblComputer c1 --자식부품 inner join tblComputer c2 --부모부품 on c2.seq = c1.pseq; 2. 계층형 쿼리 s..
[Oracle] Pseudo // pseudo, 의사컬럼 - 실제 컬럼이 아닌데 컬럼처럼 행동하는 요소 // rownum - 오라클 전용 - 행번호 > 레코드의 일련번호 - from절이 실행될 때 각 레코드에 일련번호를 할당한다.★★★★ - where절의 영향을 받으면 일련번호를 다시 정비한다.(reindexing) ★★★ ~ where rownum = 5 > null값 반환... > 반드시 1~ 조건의 범위로 사용해야 한다. - order by 전에 rownum이 매겨지기 때문에 order by를 할 경우 rownum이 뒤죽박죽 섞인다. > 서브쿼리 사용해야 함.. ~ select name, buseo, basicpay, rownum from (select name, buseo, basicpay, rownum from tblIns..