비전공자 공부일기/:: DB - SQL
-
[ORACLE/MYSQL] 3줄의 데이터만 조회하기비전공자 공부일기/:: DB - SQL 2021. 10. 11. 13:46
SQL 코테를 풀다보면 '조건에 맞는 3줄의 데이터만 출력하세요' 라는 문장이 많이 보인다. 혹은 '가장 ~~한 데이터를 보여주세요' 라는 말이 나오기도 한다. 모두 조회된 전체 값 중에 일부 조건을 만족하는 상위 랭크를 구해야 된다는 점이 같다. 이 때 쓸 수 있는 것들 (1) MY SQL SELECT * FROM TABLE_NM WHERE COLUMN_NM NOT IN (서브쿼리) ORDER BY COLUMN_NM LIMIT 3 (2) ORACLE SELECT * FROM TABLE_NM WHERE COLUMN_NM NOT IN (서브쿼리) ORDER BY COLUMN_NM FETCH FIRST 3 ROWS ONLY (3) ORACLE SELECT * FROM TABLE_NM WHERE COLUMN_..
-
[한기교] SQL 활용 필기(16) - 트리거비전공자 공부일기/:: DB - SQL 2020. 5. 5. 12:21
ㅁ 무결성의 의미 - 정밀성, 정확성, 정당성 - 허가 받은 사용자가 수행하는 갱신 작업에서 의미적 오류를 방지 - 의미적 제약의 개념 ㅁ 무결성 서브 시스템 - 사용자 요청> 보안 시스템> 갱신연산> 무결성 서브시스템> 갱신> 정확한 DB - 무결성 규정을 유지 관리 - 데이터베이스의 무결성을 유지 - 트랜잭션이 수행하는 갱신 연산이 무결성 규정을 위반하지 않는가를 감시 --- 위반 시에는 거부, 보고, 취소 / 복귀를 수행함 ㅁ 무결성 규정 대상 - 도메인 : 형식, 타입, 범위 - 기본키, 외래키 : 개체 무결성(Entity Integrity), 참조 무결성(Referencial Integrity) - 종속성 (묵시적 제약조건) : 함수 종속, 다치 종속, 조인..
-
[한기교] SQL 활용 필기(15) - 저장 프로시저와 사용자 정의 함수(다시듣기)비전공자 공부일기/:: DB - SQL 2020. 5. 5. 12:10
ㅁ 프로시저의 개념 : 자주 자용되는 질의문들을 하나로 묶어서 저장해두고 필요할 때 마다 명령문처럼 실행할 수 있도록 해주는 개념 : 범용 언어의 프로시저 / 함수와 유사한 개념 ㅁ 일반 질의문과의 차이점 1) 일반 질의문 - 사용자 또는 응용 프로그램이 실행하고자 하는 SQL문을 DBMS에 전송하고 그 결과를 받음 - 대량의 복잡한 질의문들이 반복적으로 입력되면 그만큼 시스템에 부담이 됨 - DBMS에도 처리해야 하는 일이 늘어나 시스템에 더 큰 부담이 됨 2) 프로시저 - 프로시저 내용은 DBMS에 포함되어 있고 실행 방안도 미리 작성되어 있음 - 사용자나 응용 프로그램은 프로시저 이름과 매개변수 값(필요 시)만을 전송하면 됨 - 복잡한 SQL문의 단순화 ㅁ 프로시저 생성 구문 CREATE [PROC..
-
[한기교] SQL 활용 필기(14) - 사용자 관리비전공자 공부일기/:: DB - SQL 2020. 5. 5. 11:49
ㅁ 보안 : 불법적인 데이터 폭로, 변경, 파괴로부터 데이터베이스를 보호하는 것 ㅁ 보안에 대한 통제 1) 법적, 윤리적 통제 --- 심리적 보안 2) 행정, 관리적 통제 --- 오용을 탐지하고 방지 3) 물리적 통제 --- 적극적, 물리적 보안으로 위반을 예방, 탐지 4) 기술적 통제 --- 하드웨어 통제 --- 소프트웨어 통제 --- 데이터베이스 통제 -> DBMS 보안 서브 시스템 -> 접근 제어 ㅁ 접근 제어 : 권한이 부여되지 않은 데이터의 검색이나 변경을 방지 1) 직접 접근 제어 - 사용자 신분증 확인(ID) - 신분증 본인 확인을 위한 인증(PASSWORD) - 요청 데이터 객체에 대한 요청 연산 권한(권한 부여) 2) 간접 접근 제어 - 한 장소에서 다른 장소로의 데이터 흐름..
-
[한기교] SQL 활용 필기(13) - 인덱스와 뷰비전공자 공부일기/:: DB - SQL 2020. 5. 5. 07:48
ㅁ 인덱스의 개념 - 검색 성능을 향상 시키기 위한 부가적인 자료 구조 - QL 명령문의 검색 속도를 향상시키기 위해 칼럼에 대해 생성하는 객체 - 포인트를 이용하여 테이블에 저장된 데이터를 랜덤 액세스하기 위한 목적으로 사용 * 객체지향 프로그래밍의 참조변수처럼 값이 아닌 주소값을 저장하는 개념 ㅁ 인덱스가 효율적인 경우 - WHERE 절이나 조인 조건절에서 자주 사용되는 칼럼의 경우 - 전체 데이터중에서 10~15%이내의 데이터를 검색하는 경우 - 두 개 이상의 칼럼이 WHERE절이나 조인 조건에서 자주 사용되는 경우 - 테이블에 저장된 데이터의 변경이 드문 경우 --- 색인은 부가적인 자료구조이므로, 데이터 삽입 시 비효율적일 수 있음 --- 인덱스는 실제 데이터가 아닌 값이 ..
-
[한기교] SQL 활용 필기(12) - 순위 계산비전공자 공부일기/:: DB - SQL 2020. 5. 5. 07:38
ㅁ Top 함수 : 질의 결과 튜플 수의 제한하는 함수 - Top(n) --- 질의 결과는 ORDER BY 절의 이용하여 정렬할 수 있음 --- ORDER BY 정렬 기준에서 특정 등수 / 비율까지만 보고 싶은 경우 SELECT TOP(n) 속성명 … ORDER BY 속성명 - WITH TIES : 동률이 있을 때 모두 보고 싶은 경우 SELECT TOP(n) WITH TIES 속성명 … ORDER BY 속성명 - Top(n) PERCENT : 정렬 기준 특정 비율까지만 보고 싶은 경우 --- 상위 n%까지만을 출력 --- WITH TIES와도 같이 쓸 수 있음 SELECT TOP(n) PERCENT [WITH TIES] 속성명 … ORDER BY 속성명 ㅁ RANK 함수 - TOP()..
-
[한기교] SQL 활용 필기(11) - 집합연산자, 집단연산자비전공자 공부일기/:: DB - SQL 2020. 5. 4. 14:44
ㅁ 집합 연산자의 개념 : 테이블을 구성하는 튜플 집합에 대한 테이블의 부분집합을 반환하는 연산자 ㅁ 집합 연산자의 종류 - UNION : 합집합 - INTERSECT : 교집합 - EXCEPT : 차집합 (Oracle에서는 MINUS로 사용) ㅁ UNION과 UNION ALL - 집합 연산자를 대상 테이블을 집합으로 봄 - 따라서 결과도 집합임 (중복을 허용하지 않음) - 필요에 따라서 중복된 결과도 보고 싶은 경우 (UNION ALL을 사용) ㅁ 합병 호환성 - ∪, ∩, - 연산의 피연산자(릴레이션)들이 지켜야 할 제약 조건 ㅁ 합병 호환성의 불일치 - 두 질의 결과는 합병 호환성을 만족하지 않음 - 합병 호환성이 만족되지 않는 두 테이블의 합집합 구하기 : ..
-
[한기교] SQL 활용 필기(10) - 중첩 질의문비전공자 공부일기/:: DB - SQL 2020. 5. 4. 14:08
ㅁ 중첩 질의문의 개념 - 하나의 SQL문의 결과를 다른 SQL문에 전달함 - 두 개의 SQL문을 하나의 SQL로 처리함 - 이론적으로 중첩 질의문은 조인 구문과 표현능력이 동일함 - SQL문 안에 SQL문이 포함되어 있음 ㅁ 조인 질의문과 중첩 질의문 이론적으로 중첩 질의문은 조인 구문과 표현능력이 동일. 따라서 중첩 질의문의 필요성 = 조인의 필요성 상황에 따라 취향에 따라(?) 조인 or 중첩 질의문이 더 편한 경우가 있기 때문에 사용 중첩 질의문이 좀더 직관적인 너낌적인 너낌 ㅁ 중첩 질의문의 표현 : SQL문 안에 SQL문이 포함되어 있음 ㅁ 단일행 서브 쿼리와 다중행 서브 쿼리 - 단일행 서브 쿼리 : 서브 쿼리의 결과로 하나의 튜플만이 반환됨 - 다..
-
[한기교] SQL 활용 필기(9) - JOIN비전공자 공부일기/:: DB - SQL 2020. 5. 4. 12:52
ㅁ 조인 JOIN의 개념 : 하나의 SQL 질의문에 의해서 여러 테이블에 저장된 데이터를 한번에 조회할 수 있는 기능 두 개 이상의 테이블을 '결합'한다는 의미 ㅁ SQL에서 간단한 조인 표기법 1) FROM절에 조인에 참여하는 두 테이블을 기록 (점. 으로 구분) 2) WHERE절에 조인 조건을 기술 (ex) 사원 정보: EMPLOYEE 부서 정보: DEPARTMENT 조인 조건: EMPLOYEE.DNO = DEPARTMENT.DNO ㅁ 조인문 작성시 규칙 1) 테이블 이름.컬럼 이름 : 서로 다른 두 테이블의 컬럼(속성)명이 같을 경우, 어느 속성이 어느 테이블에 있는 것인지 DBMS가 알 수 없음 ---> 컬럼 이름 앞에 테이블 이름을 접두사로 사용 / 테이블 이름..
-
[한기교] SQL 활용 필기(8) - 트랜잭션, TCL비전공자 공부일기/:: DB - SQL 2020. 5. 3. 16:21
트랜잭션 ㅁ 트랜젝션의 개념 : 논리적인 일의 단위 => 일반적으로 하나의 SQL은 하나의 트랜젝션이지만, 여러 개의 SQL문들이 합쳐져서 하나의 트랜젝션이 될 수도 있다 ㅁ 동시성 실생활에서는 항공기 예약, 은행, 신용카드 처리, 대형마트 등 대규모 데이터베이스를 수많은 사용자들이 동시에/여러부분에 접근한다 ===> 동시성 ㅁ 트랜잭션 단위 동시성 제어 : 동시에 수행되는 트랜잭션들이 데이터베이스에 미치는 영향 = 이들을 순차적으로 수행하였을 때 데이터베이스에 미치는 영향과 같도록 보장 - 다수 사용자가 데이터베이스를 동시에 접근하도록 허용하면서 데이터베이스의 일관성 유지 - 여러 사용자나 여러 응용 프로그램들이 동시에 수행되어도 서로 간섭하지 못하도록 보장함 ㅁ 트랜잭션 단위 회복 :..